33 #define GEN_SIZE_OFFSET 34 #include "fanoutRecord.h" 35 #undef GEN_SIZE_OFFSET 42 #define initialize NULL 44 static long process(
struct dbCommon *);
46 #define get_value NULL 47 #define cvt_dbaddr NULL 48 #define get_array_info NULL 49 #define put_array_info NULL 50 #define get_units NULL 51 #define get_precision NULL 52 #define get_enum_str NULL 53 #define get_enum_strs NULL 54 #define put_enum_str NULL 55 #define get_graphic_double NULL 56 #define get_control_double NULL 57 #define get_alarm_double NULL 81 static long init_record(
struct dbCommon *pcommon,
int pass)
83 struct fanoutRecord *
prec = (
struct fanoutRecord *)pcommon;
87 recGblInitConstantLink(&prec->sell,
DBF_USHORT, &prec->seln);
91 static long process(
struct dbCommon *pcommon)
93 struct fanoutRecord *
prec = (
struct fanoutRecord *)pcommon;
102 dbGetLink(&prec->sell,
DBR_USHORT, &prec->seln, 0, 0);
105 switch (prec->selm) {
108 for (i = 0; i <
NLINKS; i++, plink++) {
109 dbScanFwdLink(plink);
113 case fanoutSELM_Specified:
114 i = seln + prec->offs;
115 if (i < 0 || i >= NLINKS) {
119 plink = &prec->lnk0 +
i;
120 dbScanFwdLink(plink);
123 case fanoutSELM_Mask:
125 if (i < -15 || i > 15) {
131 seln = (i >= 0) ? seln >> i : seln << -i;
135 for (i = 0; i < NLINKS; i++, seln >>= 1, plink++) {
137 dbScanFwdLink(plink);
144 recGblGetTimeStamp(prec);
147 events = recGblResetAlarms(prec);
149 db_post_events(prec, &prec->val, events);
150 if (prec->seln != oldn)
unsigned short epicsUInt16
epicsExportAddress(rset, fanoutRSET)
Miscellaneous macro definitions.
#define get_control_double
#define get_graphic_double