EPICS Base 7.0.8.0
Loading...
Searching...
No Matches
aiRecord.h
Go to the documentation of this file.
1
7#ifndef INC_aiRecord_H
8#define INC_aiRecord_H
9
10#include "epicsTypes.h"
11#include "link.h"
12#include "epicsMutex.h"
13#include "ellLib.h"
14#include "devSup.h"
15#include "epicsTime.h"
16
17/* Declare Device Support Entry Table */
18struct aiRecord;
19typedef struct aidset {
20 dset common;
21 long (*read_ai)(struct aiRecord *prec);
22 long (*special_linconv)(struct aiRecord *prec, int after);
23} aidset;
24#define HAS_aidset
25
26#include "callback.h"
27
29typedef struct aiRecord {
30 char name[61];
31 char desc[41];
32 char asg[29];
33 epicsEnum16 scan;
34 epicsEnum16 pini;
35 epicsInt16 phas;
36 char evnt[40];
37 epicsInt16 tse;
38 DBLINK tsel;
39 epicsEnum16 dtyp;
40 epicsInt16 disv;
41 epicsInt16 disa;
42 DBLINK sdis;
46 epicsUInt8 disp;
47 epicsUInt8 proc;
48 epicsEnum16 stat;
49 epicsEnum16 sevr;
50 char amsg[40];
51 epicsEnum16 nsta;
52 epicsEnum16 nsev;
53 char namsg[40];
54 epicsEnum16 acks;
55 epicsEnum16 ackt;
56 epicsEnum16 diss;
57 epicsUInt8 lcnt;
58 epicsUInt8 pact;
59 epicsUInt8 putf;
60 epicsUInt8 rpro;
61 struct asgMember *asp;
63 struct processNotifyRecord *ppnr;
64 struct scan_element *spvt;
65 struct typed_rset *rset;
67 void *dpvt;
69 struct lockRecord *lset;
70 epicsEnum16 prio;
71 epicsUInt8 tpro;
72 epicsUInt8 bkpt;
73 epicsUInt8 udf;
74 epicsEnum16 udfs;
76 epicsUInt64 utag;
77 DBLINK flnk;
78 epicsFloat64 val;
79 DBLINK inp;
80 epicsInt16 prec;
81 epicsEnum16 linr;
82 epicsFloat64 eguf;
83 epicsFloat64 egul;
84 char egu[16];
85 epicsFloat64 hopr;
86 epicsFloat64 lopr;
87 epicsFloat64 aoff;
88 epicsFloat64 aslo;
89 epicsFloat64 smoo;
90 epicsFloat64 hihi;
91 epicsFloat64 lolo;
92 epicsFloat64 high;
93 epicsFloat64 low;
94 epicsEnum16 hhsv;
95 epicsEnum16 llsv;
96 epicsEnum16 hsv;
97 epicsEnum16 lsv;
98 epicsFloat64 hyst;
99 epicsFloat64 aftc;
100 epicsFloat64 adel;
101 epicsFloat64 mdel;
102 epicsFloat64 lalm;
103 epicsFloat64 afvl;
104 epicsFloat64 alst;
105 epicsFloat64 mlst;
106 epicsFloat64 eslo;
107 epicsFloat64 eoff;
108 epicsUInt32 roff;
109 void * pbrk;
110 epicsInt16 init;
111 epicsInt16 lbrk;
112 epicsInt32 rval;
113 epicsInt32 oraw;
114 DBLINK siol;
115 epicsFloat64 sval;
116 DBLINK siml;
117 epicsEnum16 simm;
118 epicsEnum16 sims;
119 epicsEnum16 oldsimm;
120 epicsEnum16 sscn;
121 epicsFloat64 sdly;
123} aiRecord;
124
125typedef enum {
126 aiRecordNAME = 0,
127 aiRecordDESC = 1,
128 aiRecordASG = 2,
129 aiRecordSCAN = 3,
130 aiRecordPINI = 4,
131 aiRecordPHAS = 5,
132 aiRecordEVNT = 6,
133 aiRecordTSE = 7,
134 aiRecordTSEL = 8,
135 aiRecordDTYP = 9,
136 aiRecordDISV = 10,
137 aiRecordDISA = 11,
138 aiRecordSDIS = 12,
139 aiRecordMLOK = 13,
140 aiRecordMLIS = 14,
141 aiRecordBKLNK = 15,
142 aiRecordDISP = 16,
143 aiRecordPROC = 17,
144 aiRecordSTAT = 18,
145 aiRecordSEVR = 19,
146 aiRecordAMSG = 20,
147 aiRecordNSTA = 21,
148 aiRecordNSEV = 22,
149 aiRecordNAMSG = 23,
150 aiRecordACKS = 24,
151 aiRecordACKT = 25,
152 aiRecordDISS = 26,
153 aiRecordLCNT = 27,
154 aiRecordPACT = 28,
155 aiRecordPUTF = 29,
156 aiRecordRPRO = 30,
157 aiRecordASP = 31,
158 aiRecordPPN = 32,
159 aiRecordPPNR = 33,
160 aiRecordSPVT = 34,
161 aiRecordRSET = 35,
162 aiRecordDSET = 36,
163 aiRecordDPVT = 37,
164 aiRecordRDES = 38,
165 aiRecordLSET = 39,
166 aiRecordPRIO = 40,
167 aiRecordTPRO = 41,
168 aiRecordBKPT = 42,
169 aiRecordUDF = 43,
170 aiRecordUDFS = 44,
171 aiRecordTIME = 45,
172 aiRecordUTAG = 46,
173 aiRecordFLNK = 47,
174 aiRecordVAL = 48,
175 aiRecordINP = 49,
176 aiRecordPREC = 50,
177 aiRecordLINR = 51,
178 aiRecordEGUF = 52,
179 aiRecordEGUL = 53,
180 aiRecordEGU = 54,
181 aiRecordHOPR = 55,
182 aiRecordLOPR = 56,
183 aiRecordAOFF = 57,
184 aiRecordASLO = 58,
185 aiRecordSMOO = 59,
186 aiRecordHIHI = 60,
187 aiRecordLOLO = 61,
188 aiRecordHIGH = 62,
189 aiRecordLOW = 63,
190 aiRecordHHSV = 64,
191 aiRecordLLSV = 65,
192 aiRecordHSV = 66,
193 aiRecordLSV = 67,
194 aiRecordHYST = 68,
195 aiRecordAFTC = 69,
196 aiRecordADEL = 70,
197 aiRecordMDEL = 71,
198 aiRecordLALM = 72,
199 aiRecordAFVL = 73,
200 aiRecordALST = 74,
201 aiRecordMLST = 75,
202 aiRecordESLO = 76,
203 aiRecordEOFF = 77,
204 aiRecordROFF = 78,
205 aiRecordPBRK = 79,
206 aiRecordINIT = 80,
207 aiRecordLBRK = 81,
208 aiRecordRVAL = 82,
209 aiRecordORAW = 83,
210 aiRecordSIOL = 84,
211 aiRecordSVAL = 85,
212 aiRecordSIML = 86,
213 aiRecordSIMM = 87,
214 aiRecordSIMS = 88,
215 aiRecordOLDSIMM = 89,
216 aiRecordSSCN = 90,
217 aiRecordSDLY = 91,
218 aiRecordSIMPVT = 92
219} aiFieldIndex;
220
221#ifdef GEN_SIZE_OFFSET
222
223#include <epicsExport.h>
224#include <cantProceed.h>
225#ifdef __cplusplus
226extern "C" {
227#endif
228static int aiRecordSizeOffset(dbRecordType *prt)
229{
230 aiRecord *prec = 0;
231
232 if (prt->no_fields != 93) {
233 cantProceed("IOC build or installation error:\n"
234 " The aiRecord defined in the DBD file has %d fields,\n"
235 " but the record support code was built with 93.\n",
236 prt->no_fields);
237 }
238 prt->papFldDes[aiRecordNAME]->size = sizeof(prec->name);
239 prt->papFldDes[aiRecordNAME]->offset = (unsigned short)offsetof(aiRecord, name);
240 prt->papFldDes[aiRecordDESC]->size = sizeof(prec->desc);
241 prt->papFldDes[aiRecordDESC]->offset = (unsigned short)offsetof(aiRecord, desc);
242 prt->papFldDes[aiRecordASG]->size = sizeof(prec->asg);
243 prt->papFldDes[aiRecordASG]->offset = (unsigned short)offsetof(aiRecord, asg);
244 prt->papFldDes[aiRecordSCAN]->size = sizeof(prec->scan);
245 prt->papFldDes[aiRecordSCAN]->offset = (unsigned short)offsetof(aiRecord, scan);
246 prt->papFldDes[aiRecordPINI]->size = sizeof(prec->pini);
247 prt->papFldDes[aiRecordPINI]->offset = (unsigned short)offsetof(aiRecord, pini);
248 prt->papFldDes[aiRecordPHAS]->size = sizeof(prec->phas);
249 prt->papFldDes[aiRecordPHAS]->offset = (unsigned short)offsetof(aiRecord, phas);
250 prt->papFldDes[aiRecordEVNT]->size = sizeof(prec->evnt);
251 prt->papFldDes[aiRecordEVNT]->offset = (unsigned short)offsetof(aiRecord, evnt);
252 prt->papFldDes[aiRecordTSE]->size = sizeof(prec->tse);
253 prt->papFldDes[aiRecordTSE]->offset = (unsigned short)offsetof(aiRecord, tse);
254 prt->papFldDes[aiRecordTSEL]->size = sizeof(prec->tsel);
255 prt->papFldDes[aiRecordTSEL]->offset = (unsigned short)offsetof(aiRecord, tsel);
256 prt->papFldDes[aiRecordDTYP]->size = sizeof(prec->dtyp);
257 prt->papFldDes[aiRecordDTYP]->offset = (unsigned short)offsetof(aiRecord, dtyp);
258 prt->papFldDes[aiRecordDISV]->size = sizeof(prec->disv);
259 prt->papFldDes[aiRecordDISV]->offset = (unsigned short)offsetof(aiRecord, disv);
260 prt->papFldDes[aiRecordDISA]->size = sizeof(prec->disa);
261 prt->papFldDes[aiRecordDISA]->offset = (unsigned short)offsetof(aiRecord, disa);
262 prt->papFldDes[aiRecordSDIS]->size = sizeof(prec->sdis);
263 prt->papFldDes[aiRecordSDIS]->offset = (unsigned short)offsetof(aiRecord, sdis);
264 prt->papFldDes[aiRecordMLOK]->size = sizeof(prec->mlok);
265 prt->papFldDes[aiRecordMLOK]->offset = (unsigned short)offsetof(aiRecord, mlok);
266 prt->papFldDes[aiRecordMLIS]->size = sizeof(prec->mlis);
267 prt->papFldDes[aiRecordMLIS]->offset = (unsigned short)offsetof(aiRecord, mlis);
268 prt->papFldDes[aiRecordBKLNK]->size = sizeof(prec->bklnk);
269 prt->papFldDes[aiRecordBKLNK]->offset = (unsigned short)offsetof(aiRecord, bklnk);
270 prt->papFldDes[aiRecordDISP]->size = sizeof(prec->disp);
271 prt->papFldDes[aiRecordDISP]->offset = (unsigned short)offsetof(aiRecord, disp);
272 prt->papFldDes[aiRecordPROC]->size = sizeof(prec->proc);
273 prt->papFldDes[aiRecordPROC]->offset = (unsigned short)offsetof(aiRecord, proc);
274 prt->papFldDes[aiRecordSTAT]->size = sizeof(prec->stat);
275 prt->papFldDes[aiRecordSTAT]->offset = (unsigned short)offsetof(aiRecord, stat);
276 prt->papFldDes[aiRecordSEVR]->size = sizeof(prec->sevr);
277 prt->papFldDes[aiRecordSEVR]->offset = (unsigned short)offsetof(aiRecord, sevr);
278 prt->papFldDes[aiRecordAMSG]->size = sizeof(prec->amsg);
279 prt->papFldDes[aiRecordAMSG]->offset = (unsigned short)offsetof(aiRecord, amsg);
280 prt->papFldDes[aiRecordNSTA]->size = sizeof(prec->nsta);
281 prt->papFldDes[aiRecordNSTA]->offset = (unsigned short)offsetof(aiRecord, nsta);
282 prt->papFldDes[aiRecordNSEV]->size = sizeof(prec->nsev);
283 prt->papFldDes[aiRecordNSEV]->offset = (unsigned short)offsetof(aiRecord, nsev);
284 prt->papFldDes[aiRecordNAMSG]->size = sizeof(prec->namsg);
285 prt->papFldDes[aiRecordNAMSG]->offset = (unsigned short)offsetof(aiRecord, namsg);
286 prt->papFldDes[aiRecordACKS]->size = sizeof(prec->acks);
287 prt->papFldDes[aiRecordACKS]->offset = (unsigned short)offsetof(aiRecord, acks);
288 prt->papFldDes[aiRecordACKT]->size = sizeof(prec->ackt);
289 prt->papFldDes[aiRecordACKT]->offset = (unsigned short)offsetof(aiRecord, ackt);
290 prt->papFldDes[aiRecordDISS]->size = sizeof(prec->diss);
291 prt->papFldDes[aiRecordDISS]->offset = (unsigned short)offsetof(aiRecord, diss);
292 prt->papFldDes[aiRecordLCNT]->size = sizeof(prec->lcnt);
293 prt->papFldDes[aiRecordLCNT]->offset = (unsigned short)offsetof(aiRecord, lcnt);
294 prt->papFldDes[aiRecordPACT]->size = sizeof(prec->pact);
295 prt->papFldDes[aiRecordPACT]->offset = (unsigned short)offsetof(aiRecord, pact);
296 prt->papFldDes[aiRecordPUTF]->size = sizeof(prec->putf);
297 prt->papFldDes[aiRecordPUTF]->offset = (unsigned short)offsetof(aiRecord, putf);
298 prt->papFldDes[aiRecordRPRO]->size = sizeof(prec->rpro);
299 prt->papFldDes[aiRecordRPRO]->offset = (unsigned short)offsetof(aiRecord, rpro);
300 prt->papFldDes[aiRecordASP]->size = sizeof(prec->asp);
301 prt->papFldDes[aiRecordASP]->offset = (unsigned short)offsetof(aiRecord, asp);
302 prt->papFldDes[aiRecordPPN]->size = sizeof(prec->ppn);
303 prt->papFldDes[aiRecordPPN]->offset = (unsigned short)offsetof(aiRecord, ppn);
304 prt->papFldDes[aiRecordPPNR]->size = sizeof(prec->ppnr);
305 prt->papFldDes[aiRecordPPNR]->offset = (unsigned short)offsetof(aiRecord, ppnr);
306 prt->papFldDes[aiRecordSPVT]->size = sizeof(prec->spvt);
307 prt->papFldDes[aiRecordSPVT]->offset = (unsigned short)offsetof(aiRecord, spvt);
308 prt->papFldDes[aiRecordRSET]->size = sizeof(prec->rset);
309 prt->papFldDes[aiRecordRSET]->offset = (unsigned short)offsetof(aiRecord, rset);
310 prt->papFldDes[aiRecordDSET]->size = sizeof(prec->dset);
311 prt->papFldDes[aiRecordDSET]->offset = (unsigned short)offsetof(aiRecord, dset);
312 prt->papFldDes[aiRecordDPVT]->size = sizeof(prec->dpvt);
313 prt->papFldDes[aiRecordDPVT]->offset = (unsigned short)offsetof(aiRecord, dpvt);
314 prt->papFldDes[aiRecordRDES]->size = sizeof(prec->rdes);
315 prt->papFldDes[aiRecordRDES]->offset = (unsigned short)offsetof(aiRecord, rdes);
316 prt->papFldDes[aiRecordLSET]->size = sizeof(prec->lset);
317 prt->papFldDes[aiRecordLSET]->offset = (unsigned short)offsetof(aiRecord, lset);
318 prt->papFldDes[aiRecordPRIO]->size = sizeof(prec->prio);
319 prt->papFldDes[aiRecordPRIO]->offset = (unsigned short)offsetof(aiRecord, prio);
320 prt->papFldDes[aiRecordTPRO]->size = sizeof(prec->tpro);
321 prt->papFldDes[aiRecordTPRO]->offset = (unsigned short)offsetof(aiRecord, tpro);
322 prt->papFldDes[aiRecordBKPT]->size = sizeof(prec->bkpt);
323 prt->papFldDes[aiRecordBKPT]->offset = (unsigned short)offsetof(aiRecord, bkpt);
324 prt->papFldDes[aiRecordUDF]->size = sizeof(prec->udf);
325 prt->papFldDes[aiRecordUDF]->offset = (unsigned short)offsetof(aiRecord, udf);
326 prt->papFldDes[aiRecordUDFS]->size = sizeof(prec->udfs);
327 prt->papFldDes[aiRecordUDFS]->offset = (unsigned short)offsetof(aiRecord, udfs);
328 prt->papFldDes[aiRecordTIME]->size = sizeof(prec->time);
329 prt->papFldDes[aiRecordTIME]->offset = (unsigned short)offsetof(aiRecord, time);
330 prt->papFldDes[aiRecordUTAG]->size = sizeof(prec->utag);
331 prt->papFldDes[aiRecordUTAG]->offset = (unsigned short)offsetof(aiRecord, utag);
332 prt->papFldDes[aiRecordFLNK]->size = sizeof(prec->flnk);
333 prt->papFldDes[aiRecordFLNK]->offset = (unsigned short)offsetof(aiRecord, flnk);
334 prt->papFldDes[aiRecordVAL]->size = sizeof(prec->val);
335 prt->papFldDes[aiRecordVAL]->offset = (unsigned short)offsetof(aiRecord, val);
336 prt->papFldDes[aiRecordINP]->size = sizeof(prec->inp);
337 prt->papFldDes[aiRecordINP]->offset = (unsigned short)offsetof(aiRecord, inp);
338 prt->papFldDes[aiRecordPREC]->size = sizeof(prec->prec);
339 prt->papFldDes[aiRecordPREC]->offset = (unsigned short)offsetof(aiRecord, prec);
340 prt->papFldDes[aiRecordLINR]->size = sizeof(prec->linr);
341 prt->papFldDes[aiRecordLINR]->offset = (unsigned short)offsetof(aiRecord, linr);
342 prt->papFldDes[aiRecordEGUF]->size = sizeof(prec->eguf);
343 prt->papFldDes[aiRecordEGUF]->offset = (unsigned short)offsetof(aiRecord, eguf);
344 prt->papFldDes[aiRecordEGUL]->size = sizeof(prec->egul);
345 prt->papFldDes[aiRecordEGUL]->offset = (unsigned short)offsetof(aiRecord, egul);
346 prt->papFldDes[aiRecordEGU]->size = sizeof(prec->egu);
347 prt->papFldDes[aiRecordEGU]->offset = (unsigned short)offsetof(aiRecord, egu);
348 prt->papFldDes[aiRecordHOPR]->size = sizeof(prec->hopr);
349 prt->papFldDes[aiRecordHOPR]->offset = (unsigned short)offsetof(aiRecord, hopr);
350 prt->papFldDes[aiRecordLOPR]->size = sizeof(prec->lopr);
351 prt->papFldDes[aiRecordLOPR]->offset = (unsigned short)offsetof(aiRecord, lopr);
352 prt->papFldDes[aiRecordAOFF]->size = sizeof(prec->aoff);
353 prt->papFldDes[aiRecordAOFF]->offset = (unsigned short)offsetof(aiRecord, aoff);
354 prt->papFldDes[aiRecordASLO]->size = sizeof(prec->aslo);
355 prt->papFldDes[aiRecordASLO]->offset = (unsigned short)offsetof(aiRecord, aslo);
356 prt->papFldDes[aiRecordSMOO]->size = sizeof(prec->smoo);
357 prt->papFldDes[aiRecordSMOO]->offset = (unsigned short)offsetof(aiRecord, smoo);
358 prt->papFldDes[aiRecordHIHI]->size = sizeof(prec->hihi);
359 prt->papFldDes[aiRecordHIHI]->offset = (unsigned short)offsetof(aiRecord, hihi);
360 prt->papFldDes[aiRecordLOLO]->size = sizeof(prec->lolo);
361 prt->papFldDes[aiRecordLOLO]->offset = (unsigned short)offsetof(aiRecord, lolo);
362 prt->papFldDes[aiRecordHIGH]->size = sizeof(prec->high);
363 prt->papFldDes[aiRecordHIGH]->offset = (unsigned short)offsetof(aiRecord, high);
364 prt->papFldDes[aiRecordLOW]->size = sizeof(prec->low);
365 prt->papFldDes[aiRecordLOW]->offset = (unsigned short)offsetof(aiRecord, low);
366 prt->papFldDes[aiRecordHHSV]->size = sizeof(prec->hhsv);
367 prt->papFldDes[aiRecordHHSV]->offset = (unsigned short)offsetof(aiRecord, hhsv);
368 prt->papFldDes[aiRecordLLSV]->size = sizeof(prec->llsv);
369 prt->papFldDes[aiRecordLLSV]->offset = (unsigned short)offsetof(aiRecord, llsv);
370 prt->papFldDes[aiRecordHSV]->size = sizeof(prec->hsv);
371 prt->papFldDes[aiRecordHSV]->offset = (unsigned short)offsetof(aiRecord, hsv);
372 prt->papFldDes[aiRecordLSV]->size = sizeof(prec->lsv);
373 prt->papFldDes[aiRecordLSV]->offset = (unsigned short)offsetof(aiRecord, lsv);
374 prt->papFldDes[aiRecordHYST]->size = sizeof(prec->hyst);
375 prt->papFldDes[aiRecordHYST]->offset = (unsigned short)offsetof(aiRecord, hyst);
376 prt->papFldDes[aiRecordAFTC]->size = sizeof(prec->aftc);
377 prt->papFldDes[aiRecordAFTC]->offset = (unsigned short)offsetof(aiRecord, aftc);
378 prt->papFldDes[aiRecordADEL]->size = sizeof(prec->adel);
379 prt->papFldDes[aiRecordADEL]->offset = (unsigned short)offsetof(aiRecord, adel);
380 prt->papFldDes[aiRecordMDEL]->size = sizeof(prec->mdel);
381 prt->papFldDes[aiRecordMDEL]->offset = (unsigned short)offsetof(aiRecord, mdel);
382 prt->papFldDes[aiRecordLALM]->size = sizeof(prec->lalm);
383 prt->papFldDes[aiRecordLALM]->offset = (unsigned short)offsetof(aiRecord, lalm);
384 prt->papFldDes[aiRecordAFVL]->size = sizeof(prec->afvl);
385 prt->papFldDes[aiRecordAFVL]->offset = (unsigned short)offsetof(aiRecord, afvl);
386 prt->papFldDes[aiRecordALST]->size = sizeof(prec->alst);
387 prt->papFldDes[aiRecordALST]->offset = (unsigned short)offsetof(aiRecord, alst);
388 prt->papFldDes[aiRecordMLST]->size = sizeof(prec->mlst);
389 prt->papFldDes[aiRecordMLST]->offset = (unsigned short)offsetof(aiRecord, mlst);
390 prt->papFldDes[aiRecordESLO]->size = sizeof(prec->eslo);
391 prt->papFldDes[aiRecordESLO]->offset = (unsigned short)offsetof(aiRecord, eslo);
392 prt->papFldDes[aiRecordEOFF]->size = sizeof(prec->eoff);
393 prt->papFldDes[aiRecordEOFF]->offset = (unsigned short)offsetof(aiRecord, eoff);
394 prt->papFldDes[aiRecordROFF]->size = sizeof(prec->roff);
395 prt->papFldDes[aiRecordROFF]->offset = (unsigned short)offsetof(aiRecord, roff);
396 prt->papFldDes[aiRecordPBRK]->size = sizeof(prec->pbrk);
397 prt->papFldDes[aiRecordPBRK]->offset = (unsigned short)offsetof(aiRecord, pbrk);
398 prt->papFldDes[aiRecordINIT]->size = sizeof(prec->init);
399 prt->papFldDes[aiRecordINIT]->offset = (unsigned short)offsetof(aiRecord, init);
400 prt->papFldDes[aiRecordLBRK]->size = sizeof(prec->lbrk);
401 prt->papFldDes[aiRecordLBRK]->offset = (unsigned short)offsetof(aiRecord, lbrk);
402 prt->papFldDes[aiRecordRVAL]->size = sizeof(prec->rval);
403 prt->papFldDes[aiRecordRVAL]->offset = (unsigned short)offsetof(aiRecord, rval);
404 prt->papFldDes[aiRecordORAW]->size = sizeof(prec->oraw);
405 prt->papFldDes[aiRecordORAW]->offset = (unsigned short)offsetof(aiRecord, oraw);
406 prt->papFldDes[aiRecordSIOL]->size = sizeof(prec->siol);
407 prt->papFldDes[aiRecordSIOL]->offset = (unsigned short)offsetof(aiRecord, siol);
408 prt->papFldDes[aiRecordSVAL]->size = sizeof(prec->sval);
409 prt->papFldDes[aiRecordSVAL]->offset = (unsigned short)offsetof(aiRecord, sval);
410 prt->papFldDes[aiRecordSIML]->size = sizeof(prec->siml);
411 prt->papFldDes[aiRecordSIML]->offset = (unsigned short)offsetof(aiRecord, siml);
412 prt->papFldDes[aiRecordSIMM]->size = sizeof(prec->simm);
413 prt->papFldDes[aiRecordSIMM]->offset = (unsigned short)offsetof(aiRecord, simm);
414 prt->papFldDes[aiRecordSIMS]->size = sizeof(prec->sims);
415 prt->papFldDes[aiRecordSIMS]->offset = (unsigned short)offsetof(aiRecord, sims);
416 prt->papFldDes[aiRecordOLDSIMM]->size = sizeof(prec->oldsimm);
417 prt->papFldDes[aiRecordOLDSIMM]->offset = (unsigned short)offsetof(aiRecord, oldsimm);
418 prt->papFldDes[aiRecordSSCN]->size = sizeof(prec->sscn);
419 prt->papFldDes[aiRecordSSCN]->offset = (unsigned short)offsetof(aiRecord, sscn);
420 prt->papFldDes[aiRecordSDLY]->size = sizeof(prec->sdly);
421 prt->papFldDes[aiRecordSDLY]->offset = (unsigned short)offsetof(aiRecord, sdly);
422 prt->papFldDes[aiRecordSIMPVT]->size = sizeof(prec->simpvt);
423 prt->papFldDes[aiRecordSIMPVT]->offset = (unsigned short)offsetof(aiRecord, simpvt);
424 prt->rec_size = sizeof(*prec);
425 return 0;
426}
427epicsExportRegistrar(aiRecordSizeOffset);
428
429#ifdef __cplusplus
430}
431#endif
432#endif /* GEN_SIZE_OFFSET */
433
434#endif /* INC_aiRecord_H */
Routines for code that can't continue or return after an error.
LIBCOM_API void cantProceed(EPICS_PRINTF_FMT(const char *errorMessage),...) EPICS_PRINTF_STYLE(1
Suspend this thread, the caller cannot continue or return.
Device support routines.
A doubly-linked list library.
Exporting IOC objects.
#define epicsExportRegistrar(fun)
Declare a registrar function for exporting.
APIs for the epicsMutex mutual exclusion semaphore.
struct epicsMutexParm * epicsMutexId
An identifier for an epicsMutex for use with the C API.
Definition epicsMutex.h:49
EPICS time-stamps (epicsTimeStamp), epicsTime C++ class and C functions for handling wall-clock times...
The core data types used by epics.
List header type.
Definition ellLib.h:57
Declaration of ai record type.
Definition aiRecord.h:29
epicsCallback * simpvt
Sim. Mode Private.
Definition aiRecord.h:122
epicsEnum16 simm
Simulation Mode.
Definition aiRecord.h:117
epicsEnum16 linr
Linearization.
Definition aiRecord.h:81
epicsFloat64 val
Current EGU Value.
Definition aiRecord.h:78
struct lockRecord * lset
Lock Set.
Definition aiRecord.h:69
epicsUInt8 udf
Undefined.
Definition aiRecord.h:73
epicsFloat64 aftc
Alarm Filter Time Constant.
Definition aiRecord.h:99
struct typed_rset * rset
Address of RSET.
Definition aiRecord.h:65
char namsg[40]
New Alarm Message.
Definition aiRecord.h:53
epicsEnum16 stat
Alarm Status.
Definition aiRecord.h:48
DBLINK siml
Simulation Mode Link.
Definition aiRecord.h:116
DBLINK siol
Simulation Input Link.
Definition aiRecord.h:114
epicsUInt8 proc
Force Processing.
Definition aiRecord.h:47
epicsFloat64 mdel
Monitor Deadband.
Definition aiRecord.h:101
epicsEnum16 llsv
Lolo Severity.
Definition aiRecord.h:95
struct dbRecordType * rdes
Address of dbRecordType.
Definition aiRecord.h:68
epicsInt16 lbrk
LastBreak Point.
Definition aiRecord.h:111
epicsFloat64 lolo
Lolo Alarm Limit.
Definition aiRecord.h:91
epicsFloat64 eslo
Raw to EGU Slope.
Definition aiRecord.h:106
epicsEnum16 hhsv
Hihi Severity.
Definition aiRecord.h:94
epicsFloat64 high
High Alarm Limit.
Definition aiRecord.h:92
epicsEnum16 sevr
Alarm Severity.
Definition aiRecord.h:49
epicsUInt32 roff
Raw Offset.
Definition aiRecord.h:108
char name[61]
Record Name.
Definition aiRecord.h:30
epicsEnum16 lsv
Low Severity.
Definition aiRecord.h:97
epicsFloat64 eoff
Raw to EGU Offset.
Definition aiRecord.h:107
epicsInt32 oraw
Previous Raw Value.
Definition aiRecord.h:113
struct processNotify * ppn
pprocessNotify
Definition aiRecord.h:62
struct scan_element * spvt
Scan Private.
Definition aiRecord.h:64
epicsInt16 tse
Time Stamp Event.
Definition aiRecord.h:37
epicsFloat64 sdly
Sim. Mode Async Delay.
Definition aiRecord.h:121
epicsFloat64 alst
Last Value Archived.
Definition aiRecord.h:104
char amsg[40]
Alarm Message.
Definition aiRecord.h:50
epicsFloat64 sval
Simulation Value.
Definition aiRecord.h:115
epicsInt16 init
Initialized?
Definition aiRecord.h:110
epicsEnum16 acks
Alarm Ack Severity.
Definition aiRecord.h:54
epicsInt32 rval
Current Raw Value.
Definition aiRecord.h:112
ELLLIST mlis
Monitor List.
Definition aiRecord.h:44
epicsFloat64 eguf
Engineer Units Full.
Definition aiRecord.h:82
epicsEnum16 oldsimm
Prev. Simulation Mode.
Definition aiRecord.h:119
void * pbrk
Ptrto brkTable.
Definition aiRecord.h:109
epicsEnum16 udfs
Undefined Alarm Sevrty.
Definition aiRecord.h:74
DBLINK inp
Input Specification.
Definition aiRecord.h:79
epicsFloat64 smoo
Smoothing.
Definition aiRecord.h:89
epicsTimeStamp time
Time.
Definition aiRecord.h:75
DBLINK tsel
Time Stamp Link.
Definition aiRecord.h:38
epicsEnum16 sscn
Sim. Mode Scan.
Definition aiRecord.h:120
char evnt[40]
Event Name.
Definition aiRecord.h:36
epicsInt16 disa
Disable.
Definition aiRecord.h:41
epicsUInt8 disp
Disable putField.
Definition aiRecord.h:46
epicsEnum16 scan
Scan Mechanism.
Definition aiRecord.h:33
epicsFloat64 aslo
Adjustment Slope.
Definition aiRecord.h:88
DBLINK flnk
Forward Process Link.
Definition aiRecord.h:77
epicsMutexId mlok
Monitor lock.
Definition aiRecord.h:43
epicsUInt8 lcnt
Lock Count.
Definition aiRecord.h:57
struct asgMember * asp
Access Security Pvt.
Definition aiRecord.h:61
epicsUInt8 pact
Record active.
Definition aiRecord.h:58
epicsInt16 disv
Disable Value.
Definition aiRecord.h:40
void * dpvt
Device Private.
Definition aiRecord.h:67
epicsFloat64 lalm
Last Value Alarmed.
Definition aiRecord.h:102
epicsUInt8 tpro
Trace Processing.
Definition aiRecord.h:71
struct processNotifyRecord * ppnr
pprocessNotifyRecord
Definition aiRecord.h:63
epicsInt16 phas
Scan Phase.
Definition aiRecord.h:35
epicsEnum16 ackt
Alarm Ack Transient.
Definition aiRecord.h:55
epicsUInt8 rpro
Reprocess
Definition aiRecord.h:60
epicsEnum16 prio
Scheduling Priority.
Definition aiRecord.h:70
epicsFloat64 aoff
Adjustment Offset.
Definition aiRecord.h:87
epicsInt16 prec
Display Precision.
Definition aiRecord.h:80
epicsEnum16 dtyp
Device Type.
Definition aiRecord.h:39
epicsFloat64 hyst
Alarm Deadband.
Definition aiRecord.h:98
epicsUInt64 utag
Time Tag.
Definition aiRecord.h:76
epicsFloat64 low
Low Alarm Limit.
Definition aiRecord.h:93
epicsEnum16 nsev
New Alarm Severity.
Definition aiRecord.h:52
epicsEnum16 hsv
High Severity.
Definition aiRecord.h:96
epicsFloat64 adel
Archive Deadband.
Definition aiRecord.h:100
epicsFloat64 afvl
Alarm Filter Value.
Definition aiRecord.h:103
epicsEnum16 nsta
New Alarm Status.
Definition aiRecord.h:51
epicsFloat64 hihi
Hihi Alarm Limit.
Definition aiRecord.h:90
epicsUInt8 putf
dbPutField process
Definition aiRecord.h:59
ELLLIST bklnk
Backwards link tracking.
Definition aiRecord.h:45
epicsFloat64 mlst
Last Val Monitored.
Definition aiRecord.h:105
epicsUInt8 bkpt
Break Point.
Definition aiRecord.h:72
char asg[29]
Access Security Group.
Definition aiRecord.h:32
unambiguous_dset * dset
DSET address.
Definition aiRecord.h:66
epicsFloat64 egul
Engineer Units Low.
Definition aiRecord.h:83
char egu[16]
Engineering Units.
Definition aiRecord.h:84
DBLINK sdis
Scanning Disable.
Definition aiRecord.h:42
epicsEnum16 pini
Process at iocInit.
Definition aiRecord.h:34
char desc[41]
Descriptor.
Definition aiRecord.h:31
epicsFloat64 hopr
High Operating Range.
Definition aiRecord.h:85
epicsEnum16 sims
Simulation Mode Severity.
Definition aiRecord.h:118
epicsFloat64 lopr
Low Operating Range.
Definition aiRecord.h:86
epicsEnum16 diss
Disable Alarm Sevrty.
Definition aiRecord.h:56
Definition devSup.h:141
EPICS time stamp, for use from C code.
Definition epicsTime.h:42
Link Support Entry Table.
Definition dbLink.h:59
Definition recSup.h:68