static long initAiAverage(aiRecord *pr) { devInt32Pvt *pPvt; int status; status = initCommon((dbCommon *)pr, &pr->inp, NULL, interruptCallbackAverage, NULL, 0, NULL, NULL, NULL); if (status != INIT_OK) return status; pPvt = pr->dpvt; status = pPvt->pint32->registerInterruptUser( pPvt->int32Pvt,pPvt->pasynUser, interruptCallbackAverage,pPvt,&pPvt->registrarPvt); if(status!=asynSuccess) { printf("%s devAsynInt32 registerInterruptUser %s\n", pr->name,pPvt->pasynUser->errorMessage); } /* Don't call getBounds if we already have non-zero values from * parseLinkMask */ if ((pPvt->deviceLow == 0) && (pPvt->deviceHigh == 0)) { pasynInt32SyncIO->getBounds(pPvt->pasynUserSync, &pPvt->deviceLow, &pPvt->deviceHigh); } convertAi(pr, 1); return INIT_OK; }
static long initAi(aiRecord *pr) { devInt32Pvt *pPvt; asynStatus status; status = initCommon((dbCommon *)pr,&pr->inp, processCallbackInput,interruptCallbackInput); if(status != asynSuccess) return 0; pPvt = pr->dpvt; /* Don't call getBounds if we already have non-zero values from * parseLinkMask */ if ((pPvt->deviceLow == 0) && (pPvt->deviceHigh == 0)) { pasynInt32SyncIO->getBounds(pPvt->pasynUserSync, &pPvt->deviceLow, &pPvt->deviceHigh); } convertAi(pr, 1); return 0; }