13 #include <waveformRecord.h> 14 #include <menuFtype.h> 21 long add_record_waveform(dbCommon *pcom)
23 waveformRecord *prec=(waveformRecord*)pcom;
26 return add_record_property<epicsInt8[1]>(pcom, &prec->inp);
28 return add_record_property<epicsUInt8[1]>(pcom, &prec->inp);
30 return add_record_property<epicsInt16[1]>(pcom, &prec->inp);
32 return add_record_property<epicsUInt16[1]>(pcom, &prec->inp);
34 return add_record_property<epicsInt32[1]>(pcom, &prec->inp);
36 return add_record_property<epicsUInt32[1]>(pcom, &prec->inp);
38 return add_record_property<float[1]>(pcom, &prec->inp);
40 return add_record_property<double[1]>(pcom, &prec->inp);
43 printf(
"%s: Ftype not supported\n", prec->name);
50 readop(waveformRecord* prec)
53 scopedLock<mrf::Object> g(*priv->
O);
54 prec->nord = priv->
P->get((
T*)prec->bptr, prec->nelm);
57 static long read_waveform(waveformRecord* prec)
59 if (!prec->dpvt) {(void)recGblSetSevr(prec, COMM_ALARM, INVALID_ALARM);
return -1; }
64 readop<epicsInt8>(prec);
break;
66 readop<epicsUInt8>(prec);
break;
68 readop<epicsInt16>(prec);
break;
70 readop<epicsUInt16>(prec);
break;
72 readop<epicsInt32>(prec);
break;
74 readop<epicsUInt32>(prec);
break;
76 readop<float>(prec);
break;
78 readop<double>(prec);
break;
81 printf(
"%s: Ftype not supported\n", prec->name);
86 }
CATCH(S_dev_badArgument)
98 writeop(waveformRecord* prec)
101 scopedLock<mrf::Object> g(*priv->
O);
102 priv->
P->set((
const T*)prec->bptr, prec->nord);
105 static long write_waveform(waveformRecord* prec)
107 if (!prec->dpvt) {(void)recGblSetSevr(prec, COMM_ALARM, INVALID_ALARM);
return -1; }
113 writeop<epicsInt8>(prec);
break;
115 writeop<epicsUInt8>(prec);
break;
117 writeop<epicsInt16>(prec);
break;
118 case menuFtypeUSHORT:
119 writeop<epicsUInt16>(prec);
break;
121 writeop<epicsInt32>(prec);
break;
123 writeop<epicsUInt32>(prec);
break;
125 writeop<float>(prec);
break;
126 case menuFtypeDOUBLE:
127 writeop<double>(prec);
break;
128 case menuFtypeSTRING:
130 printf(
"%s: Ftype not supported\n", prec->name);
135 }
CATCH(S_dev_badArgument)
139 &add_record_waveform,
140 &del_record_property,
145 #include <epicsExport.h>
mrf::auto_ptr< mrf::property< T > > P
OBJECT_DSET(WFIn, &add_record_waveform, &del_record_property, &init_record_empty, &read_waveform, NULL)