/**************************************************************************** * Define private interface asynUInt32Digital methods ****************************************************************************/ static asynStatus writeUInt32(void* ppvt,asynUser* pasynUser,epicsUInt32 value,epicsUInt32 mask) { asynStatus sts; Port* pport = (Port*)ppvt; Inst* pinst = (Inst*)pasynUser->drvUser; asynPrint(pasynUser,ASYN_TRACE_FLOW,"drvLove::writeUInt32\n"); sts = pinst->write(pinst,(epicsInt32*)&value); if( ISNOTOK(sts) ) { epicsSnprintf(pasynUser->errorMessage,pasynUser->errorMessageSize,"%s error %s",pport->name,pport->pasynUser->errorMessage); return( sts ); } lockPort(pport,pasynUser); sts = executeCommand(pport,pasynUser); unlockPort(pport,pasynUser); if( ISNOTOK(sts) ) { epicsSnprintf(pasynUser->errorMessage,pasynUser->errorMessageSize,"%s error %s",pport->name,pport->pasynUser->errorMessage); return( sts ); } sts = processWriteResponse(pport); if( ISNOTOK(sts) ) { epicsSnprintf(pasynUser->errorMessage,pasynUser->errorMessageSize,"%s error %s",pport->name,pport->pasynUser->errorMessage); return( sts ); } return( asynSuccess ); }