コード例 #1
0
ファイル: devBiSoftRaw.c プロジェクト: A2-Collaboration/epics
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;
}
コード例 #2
0
ファイル: devMbbiDirectSoftRaw.c プロジェクト: ukaea/epics
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;
}
コード例 #3
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;
}
コード例 #4
0
ファイル: devLsiSoft.c プロジェクト: A2-Collaboration/epics
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;
}
コード例 #5
0
ファイル: devD212.c プロジェクト: LongWei83/CSNS-RCS-RF-IOC
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;
}
コード例 #6
0
ファイル: devEventSoft.c プロジェクト: epicsdeb/epics-base
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;
}
コード例 #7
0
ファイル: recGbl.c プロジェクト: ukaea/epics
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);
    }
}