static long init_record_mbbo( mbboRecord *pior) { struct instio *pinstio; PARPROP *pp = NULL; void *pval; if( pior->out.type != INST_IO) { errlogPrintf( "%s: mbbo INP field type should be INST_IO\n", pior->name); return( S_db_badField); } /* parse device dependent option string and set data pointer */ pinstio = &(pior->out.value.instio); if( ( pp = CAENx527ParseDevArgs( pinstio->string)) == NULL) { errlogPrintf( "%s: Invalid device parameters: \"%s\"\n", pior->name, pinstio->string); return(2); } pior->dpvt = pp; strcpy( pp->PVname, pior->name); /* Initialize the value from value in the crate */ pval = CAENx527GetChParVal( pp); if( pval == NULL) return( 3); pior->val = CAENx527mbbi2state( pp); pior->rval = CAENx527mbbi2state( pp); pp->hvchan->epicsenabled = 1; return( 0); }
static long read_mbbi( mbbiRecord *pior) { #if SCAN_SERVER == 0 void *pval; #endif PARPROP *pp = NULL; pp = (PARPROP *)pior->dpvt; if( pp == NULL || pp->hvchan->epicsenabled == 0 || pp->hvchan->hvcrate->connected == 0) return( 3); #if SCAN_SERVER == 0 pval = CAENx527GetChParVal( pp); if( pval == NULL) return( 3); #endif pior->val = CAENx527mbbi2state( pp); pior->udf = FALSE; PDEBUG(5) printf( "DEBUG: get %s = %o %hd\n", pp->pname, (short)(pp->pval.l), pior->val); return( 2); }
static long read_longin( longinRecord *pior) { #if SCAN_SERVER == 0 void *pval; #endif PARPROP *pp; pp = (PARPROP *)pior->dpvt; if( pp == NULL || pp->hvchan->epicsenabled == 0 || pp->hvchan->hvcrate->connected == 0) return( 3); #if SCAN_SERVER == 0 pval = CAENx527GetChParVal( pp); if( pval == NULL) return( 3); #endif pior->val = (long)(pp->pval.l); pior->udf = FALSE; PDEBUG(5) printf( "DEBUG: get %s = %ld\n", pp->pname, (long)(pior->val)); return( 0); }