7 #ifndef INC_compressRecord_H
8 #define INC_compressRecord_H
17 #ifndef compressALG_NUM_CHOICES
28 #define compressALG_NUM_CHOICES 6
31 #ifndef bufferingALG_NUM_CHOICES
38 #define bufferingALG_NUM_CHOICES 2
74 struct asgMember *
asp;
76 struct processNotifyRecord *
ppnr;
116 compressRecordNAME = 0,
117 compressRecordDESC = 1,
118 compressRecordASG = 2,
119 compressRecordSCAN = 3,
120 compressRecordPINI = 4,
121 compressRecordPHAS = 5,
122 compressRecordEVNT = 6,
123 compressRecordTSE = 7,
124 compressRecordTSEL = 8,
125 compressRecordDTYP = 9,
126 compressRecordDISV = 10,
127 compressRecordDISA = 11,
128 compressRecordSDIS = 12,
129 compressRecordMLOK = 13,
130 compressRecordMLIS = 14,
131 compressRecordBKLNK = 15,
132 compressRecordDISP = 16,
133 compressRecordPROC = 17,
134 compressRecordSTAT = 18,
135 compressRecordSEVR = 19,
136 compressRecordAMSG = 20,
137 compressRecordNSTA = 21,
138 compressRecordNSEV = 22,
139 compressRecordNAMSG = 23,
140 compressRecordACKS = 24,
141 compressRecordACKT = 25,
142 compressRecordDISS = 26,
143 compressRecordLCNT = 27,
144 compressRecordPACT = 28,
145 compressRecordPUTF = 29,
146 compressRecordRPRO = 30,
147 compressRecordASP = 31,
148 compressRecordPPN = 32,
149 compressRecordPPNR = 33,
150 compressRecordSPVT = 34,
151 compressRecordRSET = 35,
152 compressRecordDSET = 36,
153 compressRecordDPVT = 37,
154 compressRecordRDES = 38,
155 compressRecordLSET = 39,
156 compressRecordPRIO = 40,
157 compressRecordTPRO = 41,
158 compressRecordBKPT = 42,
159 compressRecordUDF = 43,
160 compressRecordUDFS = 44,
161 compressRecordTIME = 45,
162 compressRecordUTAG = 46,
163 compressRecordFLNK = 47,
164 compressRecordVAL = 48,
165 compressRecordINP = 49,
166 compressRecordRES = 50,
167 compressRecordALG = 51,
168 compressRecordBALG = 52,
169 compressRecordNSAM = 53,
170 compressRecordN = 54,
171 compressRecordIHIL = 55,
172 compressRecordILIL = 56,
173 compressRecordHOPR = 57,
174 compressRecordLOPR = 58,
175 compressRecordPREC = 59,
176 compressRecordEGU = 60,
177 compressRecordOFF = 61,
178 compressRecordNUSE = 62,
179 compressRecordOUSE = 63,
180 compressRecordBPTR = 64,
181 compressRecordSPTR = 65,
182 compressRecordWPTR = 66,
183 compressRecordINPN = 67,
184 compressRecordCVB = 68,
185 compressRecordINX = 69
186 } compressFieldIndex;
188 #ifdef GEN_SIZE_OFFSET
199 if (prt->no_fields != 70) {
201 " The compressRecord defined in the DBD file has %d fields,\n"
202 " but the record support code was built with 70.\n",
205 prt->papFldDes[compressRecordNAME]->size =
sizeof(prec->
name);
206 prt->papFldDes[compressRecordNAME]->offset = (
unsigned short)((
char *)&prec->
name - (
char *)prec);
207 prt->papFldDes[compressRecordDESC]->size =
sizeof(prec->
desc);
208 prt->papFldDes[compressRecordDESC]->offset = (
unsigned short)((
char *)&prec->
desc - (
char *)prec);
209 prt->papFldDes[compressRecordASG]->size =
sizeof(prec->
asg);
210 prt->papFldDes[compressRecordASG]->offset = (
unsigned short)((
char *)&prec->
asg - (
char *)prec);
211 prt->papFldDes[compressRecordSCAN]->size =
sizeof(prec->
scan);
212 prt->papFldDes[compressRecordSCAN]->offset = (
unsigned short)((
char *)&prec->
scan - (
char *)prec);
213 prt->papFldDes[compressRecordPINI]->size =
sizeof(prec->
pini);
214 prt->papFldDes[compressRecordPINI]->offset = (
unsigned short)((
char *)&prec->
pini - (
char *)prec);
215 prt->papFldDes[compressRecordPHAS]->size =
sizeof(prec->
phas);
216 prt->papFldDes[compressRecordPHAS]->offset = (
unsigned short)((
char *)&prec->
phas - (
char *)prec);
217 prt->papFldDes[compressRecordEVNT]->size =
sizeof(prec->
evnt);
218 prt->papFldDes[compressRecordEVNT]->offset = (
unsigned short)((
char *)&prec->
evnt - (
char *)prec);
219 prt->papFldDes[compressRecordTSE]->size =
sizeof(prec->
tse);
220 prt->papFldDes[compressRecordTSE]->offset = (
unsigned short)((
char *)&prec->
tse - (
char *)prec);
221 prt->papFldDes[compressRecordTSEL]->size =
sizeof(prec->
tsel);
222 prt->papFldDes[compressRecordTSEL]->offset = (
unsigned short)((
char *)&prec->
tsel - (
char *)prec);
223 prt->papFldDes[compressRecordDTYP]->size =
sizeof(prec->
dtyp);
224 prt->papFldDes[compressRecordDTYP]->offset = (
unsigned short)((
char *)&prec->
dtyp - (
char *)prec);
225 prt->papFldDes[compressRecordDISV]->size =
sizeof(prec->
disv);
226 prt->papFldDes[compressRecordDISV]->offset = (
unsigned short)((
char *)&prec->
disv - (
char *)prec);
227 prt->papFldDes[compressRecordDISA]->size =
sizeof(prec->
disa);
228 prt->papFldDes[compressRecordDISA]->offset = (
unsigned short)((
char *)&prec->
disa - (
char *)prec);
229 prt->papFldDes[compressRecordSDIS]->size =
sizeof(prec->
sdis);
230 prt->papFldDes[compressRecordSDIS]->offset = (
unsigned short)((
char *)&prec->
sdis - (
char *)prec);
231 prt->papFldDes[compressRecordMLOK]->size =
sizeof(prec->
mlok);
232 prt->papFldDes[compressRecordMLOK]->offset = (
unsigned short)((
char *)&prec->
mlok - (
char *)prec);
233 prt->papFldDes[compressRecordMLIS]->size =
sizeof(prec->
mlis);
234 prt->papFldDes[compressRecordMLIS]->offset = (
unsigned short)((
char *)&prec->
mlis - (
char *)prec);
235 prt->papFldDes[compressRecordBKLNK]->size =
sizeof(prec->
bklnk);
236 prt->papFldDes[compressRecordBKLNK]->offset = (
unsigned short)((
char *)&prec->
bklnk - (
char *)prec);
237 prt->papFldDes[compressRecordDISP]->size =
sizeof(prec->
disp);
238 prt->papFldDes[compressRecordDISP]->offset = (
unsigned short)((
char *)&prec->
disp - (
char *)prec);
239 prt->papFldDes[compressRecordPROC]->size =
sizeof(prec->
proc);
240 prt->papFldDes[compressRecordPROC]->offset = (
unsigned short)((
char *)&prec->
proc - (
char *)prec);
241 prt->papFldDes[compressRecordSTAT]->size =
sizeof(prec->
stat);
242 prt->papFldDes[compressRecordSTAT]->offset = (
unsigned short)((
char *)&prec->
stat - (
char *)prec);
243 prt->papFldDes[compressRecordSEVR]->size =
sizeof(prec->
sevr);
244 prt->papFldDes[compressRecordSEVR]->offset = (
unsigned short)((
char *)&prec->
sevr - (
char *)prec);
245 prt->papFldDes[compressRecordAMSG]->size =
sizeof(prec->
amsg);
246 prt->papFldDes[compressRecordAMSG]->offset = (
unsigned short)((
char *)&prec->
amsg - (
char *)prec);
247 prt->papFldDes[compressRecordNSTA]->size =
sizeof(prec->
nsta);
248 prt->papFldDes[compressRecordNSTA]->offset = (
unsigned short)((
char *)&prec->
nsta - (
char *)prec);
249 prt->papFldDes[compressRecordNSEV]->size =
sizeof(prec->
nsev);
250 prt->papFldDes[compressRecordNSEV]->offset = (
unsigned short)((
char *)&prec->
nsev - (
char *)prec);
251 prt->papFldDes[compressRecordNAMSG]->size =
sizeof(prec->
namsg);
252 prt->papFldDes[compressRecordNAMSG]->offset = (
unsigned short)((
char *)&prec->
namsg - (
char *)prec);
253 prt->papFldDes[compressRecordACKS]->size =
sizeof(prec->
acks);
254 prt->papFldDes[compressRecordACKS]->offset = (
unsigned short)((
char *)&prec->
acks - (
char *)prec);
255 prt->papFldDes[compressRecordACKT]->size =
sizeof(prec->
ackt);
256 prt->papFldDes[compressRecordACKT]->offset = (
unsigned short)((
char *)&prec->
ackt - (
char *)prec);
257 prt->papFldDes[compressRecordDISS]->size =
sizeof(prec->
diss);
258 prt->papFldDes[compressRecordDISS]->offset = (
unsigned short)((
char *)&prec->
diss - (
char *)prec);
259 prt->papFldDes[compressRecordLCNT]->size =
sizeof(prec->
lcnt);
260 prt->papFldDes[compressRecordLCNT]->offset = (
unsigned short)((
char *)&prec->
lcnt - (
char *)prec);
261 prt->papFldDes[compressRecordPACT]->size =
sizeof(prec->
pact);
262 prt->papFldDes[compressRecordPACT]->offset = (
unsigned short)((
char *)&prec->
pact - (
char *)prec);
263 prt->papFldDes[compressRecordPUTF]->size =
sizeof(prec->
putf);
264 prt->papFldDes[compressRecordPUTF]->offset = (
unsigned short)((
char *)&prec->
putf - (
char *)prec);
265 prt->papFldDes[compressRecordRPRO]->size =
sizeof(prec->
rpro);
266 prt->papFldDes[compressRecordRPRO]->offset = (
unsigned short)((
char *)&prec->
rpro - (
char *)prec);
267 prt->papFldDes[compressRecordASP]->size =
sizeof(prec->
asp);
268 prt->papFldDes[compressRecordASP]->offset = (
unsigned short)((
char *)&prec->
asp - (
char *)prec);
269 prt->papFldDes[compressRecordPPN]->size =
sizeof(prec->
ppn);
270 prt->papFldDes[compressRecordPPN]->offset = (
unsigned short)((
char *)&prec->
ppn - (
char *)prec);
271 prt->papFldDes[compressRecordPPNR]->size =
sizeof(prec->
ppnr);
272 prt->papFldDes[compressRecordPPNR]->offset = (
unsigned short)((
char *)&prec->
ppnr - (
char *)prec);
273 prt->papFldDes[compressRecordSPVT]->size =
sizeof(prec->
spvt);
274 prt->papFldDes[compressRecordSPVT]->offset = (
unsigned short)((
char *)&prec->
spvt - (
char *)prec);
275 prt->papFldDes[compressRecordRSET]->size =
sizeof(prec->
rset);
276 prt->papFldDes[compressRecordRSET]->offset = (
unsigned short)((
char *)&prec->
rset - (
char *)prec);
277 prt->papFldDes[compressRecordDSET]->size =
sizeof(prec->
dset);
278 prt->papFldDes[compressRecordDSET]->offset = (
unsigned short)((
char *)&prec->
dset - (
char *)prec);
279 prt->papFldDes[compressRecordDPVT]->size =
sizeof(prec->
dpvt);
280 prt->papFldDes[compressRecordDPVT]->offset = (
unsigned short)((
char *)&prec->
dpvt - (
char *)prec);
281 prt->papFldDes[compressRecordRDES]->size =
sizeof(prec->
rdes);
282 prt->papFldDes[compressRecordRDES]->offset = (
unsigned short)((
char *)&prec->
rdes - (
char *)prec);
283 prt->papFldDes[compressRecordLSET]->size =
sizeof(prec->
lset);
284 prt->papFldDes[compressRecordLSET]->offset = (
unsigned short)((
char *)&prec->
lset - (
char *)prec);
285 prt->papFldDes[compressRecordPRIO]->size =
sizeof(prec->
prio);
286 prt->papFldDes[compressRecordPRIO]->offset = (
unsigned short)((
char *)&prec->
prio - (
char *)prec);
287 prt->papFldDes[compressRecordTPRO]->size =
sizeof(prec->
tpro);
288 prt->papFldDes[compressRecordTPRO]->offset = (
unsigned short)((
char *)&prec->
tpro - (
char *)prec);
289 prt->papFldDes[compressRecordBKPT]->size =
sizeof(prec->
bkpt);
290 prt->papFldDes[compressRecordBKPT]->offset = (
unsigned short)((
char *)&prec->
bkpt - (
char *)prec);
291 prt->papFldDes[compressRecordUDF]->size =
sizeof(prec->
udf);
292 prt->papFldDes[compressRecordUDF]->offset = (
unsigned short)((
char *)&prec->
udf - (
char *)prec);
293 prt->papFldDes[compressRecordUDFS]->size =
sizeof(prec->
udfs);
294 prt->papFldDes[compressRecordUDFS]->offset = (
unsigned short)((
char *)&prec->
udfs - (
char *)prec);
295 prt->papFldDes[compressRecordTIME]->size =
sizeof(prec->
time);
296 prt->papFldDes[compressRecordTIME]->offset = (
unsigned short)((
char *)&prec->
time - (
char *)prec);
297 prt->papFldDes[compressRecordUTAG]->size =
sizeof(prec->
utag);
298 prt->papFldDes[compressRecordUTAG]->offset = (
unsigned short)((
char *)&prec->
utag - (
char *)prec);
299 prt->papFldDes[compressRecordFLNK]->size =
sizeof(prec->
flnk);
300 prt->papFldDes[compressRecordFLNK]->offset = (
unsigned short)((
char *)&prec->
flnk - (
char *)prec);
301 prt->papFldDes[compressRecordVAL]->size =
sizeof(prec->
val);
302 prt->papFldDes[compressRecordVAL]->offset = (
unsigned short)((
char *)&prec->
val - (
char *)prec);
303 prt->papFldDes[compressRecordINP]->size =
sizeof(prec->
inp);
304 prt->papFldDes[compressRecordINP]->offset = (
unsigned short)((
char *)&prec->
inp - (
char *)prec);
305 prt->papFldDes[compressRecordRES]->size =
sizeof(prec->
res);
306 prt->papFldDes[compressRecordRES]->offset = (
unsigned short)((
char *)&prec->
res - (
char *)prec);
307 prt->papFldDes[compressRecordALG]->size =
sizeof(prec->
alg);
308 prt->papFldDes[compressRecordALG]->offset = (
unsigned short)((
char *)&prec->
alg - (
char *)prec);
309 prt->papFldDes[compressRecordBALG]->size =
sizeof(prec->
balg);
310 prt->papFldDes[compressRecordBALG]->offset = (
unsigned short)((
char *)&prec->
balg - (
char *)prec);
311 prt->papFldDes[compressRecordNSAM]->size =
sizeof(prec->
nsam);
312 prt->papFldDes[compressRecordNSAM]->offset = (
unsigned short)((
char *)&prec->
nsam - (
char *)prec);
313 prt->papFldDes[compressRecordN]->size =
sizeof(prec->
n);
314 prt->papFldDes[compressRecordN]->offset = (
unsigned short)((
char *)&prec->
n - (
char *)prec);
315 prt->papFldDes[compressRecordIHIL]->size =
sizeof(prec->
ihil);
316 prt->papFldDes[compressRecordIHIL]->offset = (
unsigned short)((
char *)&prec->
ihil - (
char *)prec);
317 prt->papFldDes[compressRecordILIL]->size =
sizeof(prec->
ilil);
318 prt->papFldDes[compressRecordILIL]->offset = (
unsigned short)((
char *)&prec->
ilil - (
char *)prec);
319 prt->papFldDes[compressRecordHOPR]->size =
sizeof(prec->
hopr);
320 prt->papFldDes[compressRecordHOPR]->offset = (
unsigned short)((
char *)&prec->
hopr - (
char *)prec);
321 prt->papFldDes[compressRecordLOPR]->size =
sizeof(prec->
lopr);
322 prt->papFldDes[compressRecordLOPR]->offset = (
unsigned short)((
char *)&prec->
lopr - (
char *)prec);
323 prt->papFldDes[compressRecordPREC]->size =
sizeof(prec->
prec);
324 prt->papFldDes[compressRecordPREC]->offset = (
unsigned short)((
char *)&prec->
prec - (
char *)prec);
325 prt->papFldDes[compressRecordEGU]->size =
sizeof(prec->
egu);
326 prt->papFldDes[compressRecordEGU]->offset = (
unsigned short)((
char *)&prec->
egu - (
char *)prec);
327 prt->papFldDes[compressRecordOFF]->size =
sizeof(prec->
off);
328 prt->papFldDes[compressRecordOFF]->offset = (
unsigned short)((
char *)&prec->
off - (
char *)prec);
329 prt->papFldDes[compressRecordNUSE]->size =
sizeof(prec->
nuse);
330 prt->papFldDes[compressRecordNUSE]->offset = (
unsigned short)((
char *)&prec->
nuse - (
char *)prec);
331 prt->papFldDes[compressRecordOUSE]->size =
sizeof(prec->
ouse);
332 prt->papFldDes[compressRecordOUSE]->offset = (
unsigned short)((
char *)&prec->
ouse - (
char *)prec);
333 prt->papFldDes[compressRecordBPTR]->size =
sizeof(prec->
bptr);
334 prt->papFldDes[compressRecordBPTR]->offset = (
unsigned short)((
char *)&prec->
bptr - (
char *)prec);
335 prt->papFldDes[compressRecordSPTR]->size =
sizeof(prec->
sptr);
336 prt->papFldDes[compressRecordSPTR]->offset = (
unsigned short)((
char *)&prec->
sptr - (
char *)prec);
337 prt->papFldDes[compressRecordWPTR]->size =
sizeof(prec->
wptr);
338 prt->papFldDes[compressRecordWPTR]->offset = (
unsigned short)((
char *)&prec->
wptr - (
char *)prec);
339 prt->papFldDes[compressRecordINPN]->size =
sizeof(prec->
inpn);
340 prt->papFldDes[compressRecordINPN]->offset = (
unsigned short)((
char *)&prec->
inpn - (
char *)prec);
341 prt->papFldDes[compressRecordCVB]->size =
sizeof(prec->
cvb);
342 prt->papFldDes[compressRecordCVB]->offset = (
unsigned short)((
char *)&prec->
cvb - (
char *)prec);
343 prt->papFldDes[compressRecordINX]->size =
sizeof(prec->
inx);
344 prt->papFldDes[compressRecordINX]->offset = (
unsigned short)((
char *)&prec->
inx - (
char *)prec);
345 prt->rec_size =
sizeof(*prec);
double * wptr
Working Buffer Ptr.
struct dbRecordType * rdes
Address of dbRecordType.
epicsEnum16 nsta
New Alarm Status.
epicsEnum16 alg
Compression Algorithm.
unambiguous_dset * dset
DSET address.
epicsUInt32 nsam
Number of Values.
DBLINK tsel
Time Stamp Link.
epicsFloat64 cvb
Compress Value Buffer.
epicsInt16 disv
Disable Value.
epicsFloat64 hopr
High Operating Range.
epicsUInt8 pact
Record active.
struct typed_rset * rset
Address of RSET.
struct scan_element * spvt
Scan Private.
LIBCOM_API void cantProceed(const char *errorMessage,...) EPICS_PRINTF_STYLE(1
Suspend this thread, the caller cannot continue or return.
State string "FIFO Buffer".
ELLLIST bklnk
Backwards link tracking.
epicsEnum16 prio
Scheduling Priority.
The core data types used by epics.
double * bptr
Buffer Pointer.
epicsEnum16 acks
Alarm Ack Severity.
void * dpvt
Device Private.
State string "Average".
struct processNotify * ppn
pprocessNotify
epicsUInt8 proc
Force Processing.
epicsInt16 prec
Display Precision.
Routines for code that can't continue or return after an error.
State string "LIFO Buffer".
epicsUInt32 inx
Compressed Array Inx.
State string "Circular Buffer".
DBLINK inp
Input Specification.
epicsMutexId mlok
Monitor lock.
EPICS time stamp, for use from C code.
A doubly-linked list library.
DBLINK sdis
Scanning Disable.
compressALG
Enumerated type from menu compressALG.
Declaration of compress record type.
ELLLIST mlis
Monitor List.
char egu[16]
Engineering Units.
epicsInt32 inpn
Number of elements in Working Buffer.
epicsEnum16 nsev
New Alarm Severity.
epicsEnum16 pini
Process at iocInit.
epicsEnum16 sevr
Alarm Severity.
epicsUInt8 rpro
Reprocess.
State string "N to 1 Low Value".
epicsUInt8 putf
dbPutField process
bufferingALG
Enumerated type from menu bufferingALG.
epicsEnum16 ackt
Alarm Ack Transient.
char namsg[40]
New Alarm Message.
epicsUInt32 n
N to 1 Compression.
epicsUInt32 ouse
Old Number Used.
APIs for the epicsMutex mutual exclusion semaphore.
epicsEnum16 balg
Buffering Algorithm.
epicsUInt8 bkpt
Break Point.
struct lockRecord * lset
Lock Set.
epicsEnum16 scan
Scan Mechanism.
epicsEnum16 dtyp
Device Type.
epicsEnum16 stat
Alarm Status.
epicsInt16 phas
Scan Phase.
epicsUInt64 utag
Time Tag.
epicsUInt8 lcnt
Lock Count.
State string "N to 1 Median".
struct processNotifyRecord * ppnr
pprocessNotifyRecord
State string "N to 1 High Value".
epicsEnum16 diss
Disable Alarm Sevrty.
#define epicsExportRegistrar(fun)
Declare a registrar function for exporting.
struct asgMember * asp
Access Security Pvt.
epicsUInt8 tpro
Trace Processing.
epicsInt16 tse
Time Stamp Event.
epicsFloat64 ihil
Init High Interest Lim.
epicsUInt32 nuse
Number Used.
State string "N to 1 Average".
EPICS time-stamps (epicsTimeStamp), epicsTime C++ class and C functions for handling wall-clock times...
char amsg[40]
Alarm Message.
epicsEnum16 udfs
Undefined Alarm Sevrty.
epicsUInt8 disp
Disable putField.
char asg[29]
Access Security Group.
epicsFloat64 ilil
Init Low Interest Lim.
char name[61]
Record Name.
double * sptr
Summing Buffer Ptr.
struct epicsMutexParm * epicsMutexId
An identifier for an epicsMutex for use with the C API.
epicsFloat64 lopr
Low Operating Range.
DBLINK flnk
Forward Process Link.