static long read_bi(biRecord *prec) { if (!dbGetLink(&prec->inp, DBR_ULONG, &prec->rval, 0, 0) && prec->tsel.type == CONSTANT && prec->tse == epicsTimeEventDeviceTime) dbGetTimeStamp(&prec->inp, &prec->time); return 0; }
static long read_mbbi(mbbiDirectRecord *prec) { if (!dbGetLink(&prec->inp, DBR_LONG, &prec->rval, 0, 0)) { prec->rval &= prec->mask; if (prec->tsel.type == CONSTANT && prec->tse == epicsTimeEventDeviceTime) dbGetTimeStamp(&prec->inp, &prec->time); } return 0; }
static long read_bi(biRecord *prec) { if (!dbGetLink(&prec->inp, DBR_USHORT, &prec->val, 0, 0)) { if (prec->inp.type != CONSTANT) prec->udf = FALSE; if (prec->tsel.type == CONSTANT && prec->tse == epicsTimeEventDeviceTime) dbGetTimeStamp(&prec->inp, &prec->time); } return 2; }
static long read_string(lsiRecord *prec) { long status = dbGetLinkLS(&prec->inp, prec->val, prec->sizv, &prec->len); if (!status && prec->tsel.type == CONSTANT && prec->tse == epicsTimeEventDeviceTime) dbGetTimeStamp(&prec->inp, &prec->time); return status; }
static long read_xwf(struct waveformRecord *pwf) { int numRead = pwf->nelm; float *pDest; float a[2048]={0.0}; int i; for(i=0;i<2048;i++) { a[i]=i*22.5/2047-2.5; } pDest=pwf->bptr; memcpy(pDest,&a[0],2048*sizeof(float)); if(numRead>0){ pwf->nord=numRead; if(pwf->tsel.type==CONSTANT && pwf->tse==epicsTimeEventDeviceTime) dbGetTimeStamp(&pwf->inp,&pwf->time); } return 0; }
static long read_event(eventRecord *prec) { long status; char newEvent[MAX_STRING_SIZE]; if (prec->inp.type != CONSTANT) { status = dbGetLink(&prec->inp, DBR_STRING, newEvent, 0, 0); if (status) return status; if (strcmp(newEvent, prec->val) != 0) { strcpy(prec->val, newEvent); prec->epvt = eventNameToHandle(prec->val); } } prec->udf = FALSE; if (prec->tsel.type == CONSTANT && prec->tse == epicsTimeEventDeviceTime) dbGetTimeStamp(&prec->inp, &prec->time); return 0; }
void recGblGetTimeStamp(void *pvoid) { dbCommon* prec = (dbCommon*)pvoid; struct link *plink = &prec->tsel; if (plink->type != CONSTANT) { struct pv_link *ppv_link = &plink->value.pv_link; if (ppv_link->pvlMask & pvlOptTSELisTime) { if (dbGetTimeStamp(plink, &prec->time)) errlogPrintf("recGblGetTimeStamp: dbGetTimeStamp failed, %s.TSEL = %s\n", prec->name, ppv_link->pvname); return; } dbGetLink(&prec->tsel, DBR_SHORT, &prec->tse, 0, 0); } if (prec->tse != epicsTimeEventDeviceTime) { if (epicsTimeGetEvent(&prec->time, prec->tse)) errlogPrintf("recGblGetTimeStamp: epicsTimeGetEvent failed, %s.TSE = %d\n", prec->name, prec->tse); } }