1 #ifndef asynPortClient_H     2 #define asynPortClient_H     9 #include <epicsString.h>    11 #include <asynDriver.h>    12 #include <asynInt32.h>    13 #include <asynInt32SyncIO.h>    14 #include <asynUInt32Digital.h>    15 #include <asynUInt32DigitalSyncIO.h>    16 #include <asynFloat64.h>    17 #include <asynFloat64SyncIO.h>    18 #include <asynOctet.h>    19 #include <asynOctetSyncIO.h>    20 #include <asynInt8Array.h>    21 #include <asynInt8ArraySyncIO.h>    22 #include <asynInt16Array.h>    23 #include <asynInt16ArraySyncIO.h>    24 #include <asynInt32Array.h>    25 #include <asynInt32ArraySyncIO.h>    26 #include <asynFloat32Array.h>    27 #include <asynFloat32ArraySyncIO.h>    28 #include <asynFloat64Array.h>    29 #include <asynFloat64ArraySyncIO.h>    30 #include <asynGenericPointer.h>    31 #include <asynGenericPointerSyncIO.h>    33 #include <asynEnumSyncIO.h>    34 #include <asynOption.h>    35 #include <asynOptionSyncIO.h>    36 #include <asynCommonSyncIO.h>    37 #include <asynDrvUser.h>    40 #define DEFAULT_TIMEOUT 1.0    47     asynParamClient(
const char *portName, 
int addr, 
const char* asynInterfaceType, 
const char *drvInfo, 
double timeout);
    50         { timeout_ = timeout; };
    51     void report(FILE *fp, 
int details);
    57         return asynInterfaceType_;
    84         pInterface_ = (asynInt32 *)pasynInterface_->pinterface;
    85         if (pasynInt32SyncIO->connect(portName, addr, &pasynUserSyncIO_, drvInfo)) 
    86             throw std::runtime_error(std::string(
"pasynInt32SyncIO->connect failed"));
    90         pInterface_ = (asynInt32 *)pasynInterface_->pinterface;
    91         if (pasynInt32SyncIO->connect(portName, addr, &pasynUserSyncIO_, drvInfo)) 
    92             throw std::runtime_error(std::string(
"pasynInt32SyncIO->connect failed"));
    96         if (pInterface_ && interruptPvt_)
    97             pInterface_->cancelInterruptUser(pasynInterface_->drvPvt, pasynUser_, interruptPvt_);
    98         pasynInt32SyncIO->disconnect(pasynUserSyncIO_); 
   102     virtual asynStatus 
read(epicsInt32 *value) { 
   103         return pasynInt32SyncIO->read(pasynUserSyncIO_, value, timeout_);
   107     virtual asynStatus 
write(epicsInt32 value) { 
   108         return pasynInt32SyncIO->write(pasynUserSyncIO_, value, timeout_); 
   113     virtual asynStatus 
getBounds(epicsInt32 *low, epicsInt32 *high) { 
   114         return pasynInt32SyncIO->getBounds(pasynUserSyncIO_, low, high); 
   120         if(interruptPvt_!=NULL) 
return asynError;
   121         if (!userPvt) userPvt=
this;
   122         return pInterface_->registerInterruptUser(pasynInterface_->drvPvt, pasynUser_,
   123                                                   pCallback, userPvt, &interruptPvt_); 
   126     asynInt32 *pInterface_;
   140     : 
asynParamClient(portName, addr, asynUInt32DigitalType, drvInfo, timeout) {
   141         pInterface_ = (asynUInt32Digital *)pasynInterface_->pinterface;
   142         if (pasynUInt32DigitalSyncIO->connect(portName, addr, &pasynUserSyncIO_, drvInfo))
   143             throw std::runtime_error(std::string(
"pasynInt32SyncIO->connect failed"));
   146     : 
asynParamClient(portName, addr, asynUInt32DigitalType, drvInfo, timeout) {
   147         pInterface_ = (asynUInt32Digital *)pasynInterface_->pinterface;
   148         if (pasynUInt32DigitalSyncIO->connect(portName, addr, &pasynUserSyncIO_, drvInfo))
   149             throw std::runtime_error(std::string(
"pasynInt32SyncIO->connect failed"));
   153         pasynUInt32DigitalSyncIO->disconnect(pasynUserSyncIO_); 
   158     virtual asynStatus 
read(epicsUInt32 *value, epicsUInt32 mask) { 
   159         return pasynUInt32DigitalSyncIO->read(pasynUserSyncIO_, value, mask, timeout_); 
   164     virtual asynStatus 
write(epicsUInt32 value, epicsUInt32 mask){ 
   165         return pasynUInt32DigitalSyncIO->write(pasynUserSyncIO_, value, mask, timeout_); 
   170     virtual asynStatus 
setInterrupt(epicsUInt32 mask, interruptReason reason) { 
   171         return pasynUInt32DigitalSyncIO->setInterrupt(pasynUserSyncIO_, mask, reason, timeout_); 
   176         return pasynUInt32DigitalSyncIO->clearInterrupt(pasynUserSyncIO_, mask, timeout_); 
   181     virtual asynStatus 
getInterrupt(epicsUInt32 *mask, interruptReason reason) { 
   182         return pasynUInt32DigitalSyncIO->getInterrupt(pasynUserSyncIO_, mask, reason, timeout_); 
   188     virtual asynStatus 
registerInterruptUser(interruptCallbackUInt32Digital pCallback, epicsUInt32 mask, 
void* userPvt=0) { 
   189         if (!userPvt) userPvt=
this;
   190         return pInterface_->registerInterruptUser(pasynInterface_->drvPvt, pasynUser_,
   191                                                   pCallback, 
this, mask, &interruptPvt_); 
   194     asynUInt32Digital *pInterface_;
   209         pInterface_ = (asynFloat64 *)pasynInterface_->pinterface;
   210         if (pasynFloat64SyncIO->connect(portName, addr, &pasynUserSyncIO_, drvInfo))
   211             throw std::runtime_error(std::string(
"pasynFloat64SyncIO->connect failed"));
   215         pInterface_ = (asynFloat64 *)pasynInterface_->pinterface;
   216         if (pasynFloat64SyncIO->connect(portName, addr, &pasynUserSyncIO_, drvInfo))
   217             throw std::runtime_error(std::string(
"pasynFloat64SyncIO->connect failed"));
   221         pasynFloat64SyncIO->disconnect(pasynUserSyncIO_); 
   225     virtual asynStatus 
read(epicsFloat64 *value) {
   226         return pasynFloat64SyncIO->read(pasynUserSyncIO_, value, timeout_); 
   230     virtual asynStatus 
write(epicsFloat64 value) { 
   231         return pasynFloat64SyncIO->write(pasynUserSyncIO_, value, timeout_); 
   237         if (!userPvt) userPvt=
this;
   238         return pInterface_->registerInterruptUser(pasynInterface_->drvPvt, pasynUser_,
   239                                                   pCallback, userPvt, &interruptPvt_); 
   242     asynFloat64 *pInterface_;
   257         pInterface_ = (asynOctet *)pasynInterface_->pinterface;
   258         if (pasynOctetSyncIO->connect(portName, addr, &pasynUserSyncIO_, drvInfo)) 
   259             throw std::runtime_error(std::string(
"pasynOctetSyncIO->connect failed"));
   263         pInterface_ = (asynOctet *)pasynInterface_->pinterface;
   264         if (pasynOctetSyncIO->connect(portName, addr, &pasynUserSyncIO_, drvInfo)) 
   265             throw std::runtime_error(std::string(
"pasynOctetSyncIO->connect failed"));
   269         pasynOctetSyncIO->disconnect(pasynUserSyncIO_); 
   275     virtual asynStatus 
write(
const char *buffer, 
size_t bufferLen, 
size_t *nActual) { 
   276         return pasynOctetSyncIO->write(pasynUserSyncIO_, buffer, bufferLen, timeout_, nActual); 
   280     virtual asynStatus 
write(
const char *buffer) {
   281         size_t bufferLen = strlen(buffer);
   283         return pasynOctetSyncIO->write(pasynUserSyncIO_, buffer, bufferLen, timeout_, &nActual); 
   290     virtual asynStatus 
read(
char *buffer, 
size_t bufferLen, 
size_t *nActual, 
int *eomReason) {
   291         return pasynOctetSyncIO->read(pasynUserSyncIO_, buffer, bufferLen, timeout_, nActual, eomReason); 
   301     virtual asynStatus 
writeRead(
const char *writeBuffer, 
size_t writeBufferLen, 
char *readBuffer, 
size_t readBufferLen, 
   302                                  size_t *nBytesOut, 
size_t *nBytesIn, 
int *eomReason) { 
   303         return pasynOctetSyncIO->writeRead(pasynUserSyncIO_, writeBuffer, writeBufferLen, readBuffer, readBufferLen,
   304                                            timeout_, nBytesOut, nBytesIn, eomReason); 
   308         return pasynOctetSyncIO->flush(pasynUserSyncIO_); 
   314         return pasynOctetSyncIO->setInputEos(pasynUserSyncIO_, eos, eosLen); 
   320     virtual asynStatus 
getInputEos(
char *eos, 
int eosSize, 
int *eosLen) { 
   321         return pasynOctetSyncIO->getInputEos(pasynUserSyncIO_, eos, eosSize, eosLen); 
   327         return pasynOctetSyncIO->setOutputEos(pasynUserSyncIO_, eos, eosLen); 
   334         return pasynOctetSyncIO->getOutputEos(pasynUserSyncIO_, eos, eosSize, eosLen); 
   340         if (!userPvt) userPvt=
this;
   341         return pInterface_->registerInterruptUser(pasynInterface_->drvPvt, pasynUser_,
   342                                                   pCallback, userPvt, &interruptPvt_); 
   345     asynOctet *pInterface_;
   359     : 
asynParamClient(portName, addr, asynInt8ArrayType, drvInfo, timeout) {
   360         pInterface_ = (asynInt8Array *)pasynInterface_->pinterface;
   361         if (pasynInt8ArraySyncIO->connect(portName, addr, &pasynUserSyncIO_, drvInfo)) 
   362             throw std::runtime_error(std::string(
"pasynInt8ArraySyncIO->connect failed"));
   365     : 
asynParamClient(portName, addr, asynInt8ArrayType, drvInfo, timeout) {
   366         pInterface_ = (asynInt8Array *)pasynInterface_->pinterface;
   367         if (pasynInt8ArraySyncIO->connect(portName, addr, &pasynUserSyncIO_, drvInfo)) 
   368             throw std::runtime_error(std::string(
"pasynInt8ArraySyncIO->connect failed"));
   372         pasynInt8ArraySyncIO->disconnect(pasynUserSyncIO_);
   378     virtual asynStatus 
read(epicsInt8 *value, 
size_t nElements, 
size_t *nIn) {
   379         return pasynInt8ArraySyncIO->read(pasynUserSyncIO_, value, nElements, nIn, timeout_);
   384     virtual asynStatus 
write(epicsInt8 *value, 
size_t nElements) {
   385         return pasynInt8ArraySyncIO->write(pasynUserSyncIO_, value, nElements, timeout_);
   391         if (!userPvt) userPvt=
this;
   392         return pInterface_->registerInterruptUser(pasynInterface_->drvPvt, pasynUser_,
   393                                                       pCallback, userPvt, &interruptPvt_); 
   396     asynInt8Array *pInterface_;
   410     : 
asynParamClient(portName, addr, asynInt16ArrayType, drvInfo, timeout) {
   411         pInterface_ = (asynInt16Array *)pasynInterface_->pinterface;
   412         if (pasynInt16ArraySyncIO->connect(portName, addr, &pasynUserSyncIO_, drvInfo)) 
   413             throw std::runtime_error(std::string(
"pasynInt16ArraySyncIO->connect failed"));
   416     : 
asynParamClient(portName, addr, asynInt16ArrayType, drvInfo, timeout) {
   417         pInterface_ = (asynInt16Array *)pasynInterface_->pinterface;
   418         if (pasynInt16ArraySyncIO->connect(portName, addr, &pasynUserSyncIO_, drvInfo)) 
   419             throw std::runtime_error(std::string(
"pasynInt16ArraySyncIO->connect failed"));
   423         pasynInt16ArraySyncIO->disconnect(pasynUserSyncIO_);
   429     virtual asynStatus 
read(epicsInt16 *value, 
size_t nElements, 
size_t *nIn) {
   430         return pasynInt16ArraySyncIO->read(pasynUserSyncIO_, value, nElements, nIn, timeout_);
   435     virtual asynStatus 
write(epicsInt16 *value, 
size_t nElements) {
   436         return pasynInt16ArraySyncIO->write(pasynUserSyncIO_, value, nElements, timeout_);
   442         if (!userPvt) userPvt=
this;
   443         return pInterface_->registerInterruptUser(pasynInterface_->drvPvt, pasynUser_,
   444                                                        pCallback, userPvt, &interruptPvt_); 
   447     asynInt16Array *pInterface_;
   461     : 
asynParamClient(portName, addr, asynInt32ArrayType, drvInfo, timeout) {
   462         pInterface_ = (asynInt32Array *)pasynInterface_->pinterface;
   463         if (pasynInt32ArraySyncIO->connect(portName, addr, &pasynUserSyncIO_, drvInfo)) 
   464             throw std::runtime_error(std::string(
"pasynInt32ArraySyncIO->connect failed"));
   467     : 
asynParamClient(portName, addr, asynInt32ArrayType, drvInfo, timeout) {
   468         pInterface_ = (asynInt32Array *)pasynInterface_->pinterface;
   469         if (pasynInt32ArraySyncIO->connect(portName, addr, &pasynUserSyncIO_, drvInfo)) 
   470             throw std::runtime_error(std::string(
"pasynInt32ArraySyncIO->connect failed"));
   474         pasynInt32ArraySyncIO->disconnect(pasynUserSyncIO_);
   480     virtual asynStatus 
read(epicsInt32 *value, 
size_t nElements, 
size_t *nIn) {
   481         return pasynInt32ArraySyncIO->read(pasynUserSyncIO_, value, nElements, nIn, timeout_);
   486     virtual asynStatus 
write(epicsInt32 *value, 
size_t nElements) {
   487         return pasynInt32ArraySyncIO->write(pasynUserSyncIO_, value, nElements, timeout_);
   493         if (!userPvt) userPvt=
this;
   494         return pInterface_->registerInterruptUser(pasynInterface_->drvPvt, pasynUser_,
   495                                                   pCallback, userPvt, &interruptPvt_); 
   498     asynInt32Array *pInterface_;
   512     : 
asynParamClient(portName, addr, asynFloat32ArrayType, drvInfo, timeout) {
   513         pInterface_ = (asynFloat32Array *)pasynInterface_->pinterface;
   514         if (pasynFloat32ArraySyncIO->connect(portName, addr, &pasynUserSyncIO_, drvInfo)) 
   515             throw std::runtime_error(std::string(
"pasynFloat64ArraySyncIO->connect failed"));
   518     : 
asynParamClient(portName, addr, asynFloat32ArrayType, drvInfo, timeout) {
   519         pInterface_ = (asynFloat32Array *)pasynInterface_->pinterface;
   520         if (pasynFloat32ArraySyncIO->connect(portName, addr, &pasynUserSyncIO_, drvInfo)) 
   521             throw std::runtime_error(std::string(
"pasynFloat64ArraySyncIO->connect failed"));
   525         pasynFloat32ArraySyncIO->disconnect(pasynUserSyncIO_);
   531     virtual asynStatus 
read(epicsFloat32 *value, 
size_t nElements, 
size_t *nIn) {
   532         return pasynFloat32ArraySyncIO->read(pasynUserSyncIO_, value, nElements, nIn, timeout_);
   537     virtual asynStatus 
write(epicsFloat32 *value, 
size_t nElements) {
   538         return pasynFloat32ArraySyncIO->write(pasynUserSyncIO_, value, nElements, timeout_);
   544         if (!userPvt) userPvt=
this;
   545         return pInterface_->registerInterruptUser(pasynInterface_->drvPvt, pasynUser_,
   546                                                   pCallback, userPvt, &interruptPvt_); 
   549     asynFloat32Array *pInterface_;
   563     : 
asynParamClient(portName, addr, asynFloat64ArrayType, drvInfo, timeout) {
   564         pInterface_ = (asynFloat64Array *)pasynInterface_->pinterface;
   565         if (pasynFloat64ArraySyncIO->connect(portName, addr, &pasynUserSyncIO_, drvInfo)) 
   566             throw std::runtime_error(std::string(
"pasynFloat64ArraySyncIO->connect failed"));
   569     : 
asynParamClient(portName, addr, asynFloat64ArrayType, drvInfo, timeout) {
   570         pInterface_ = (asynFloat64Array *)pasynInterface_->pinterface;
   571         if (pasynFloat64ArraySyncIO->connect(portName, addr, &pasynUserSyncIO_, drvInfo)) 
   572             throw std::runtime_error(std::string(
"pasynFloat64ArraySyncIO->connect failed"));
   576         pasynFloat64ArraySyncIO->disconnect(pasynUserSyncIO_);
   582     virtual asynStatus 
read(epicsFloat64 *value, 
size_t nElements, 
size_t *nIn) {
   583         return pasynFloat64ArraySyncIO->read(pasynUserSyncIO_, value, nElements, nIn, timeout_);
   588     virtual asynStatus 
write(epicsFloat64 *value, 
size_t nElements) {
   589         return pasynFloat64ArraySyncIO->write(pasynUserSyncIO_, value, nElements, timeout_);
   595         if (!userPvt) userPvt=
this;
   596         return pInterface_->registerInterruptUser(pasynInterface_->drvPvt, pasynUser_,
   597                                                   pCallback, userPvt, &interruptPvt_); 
   600     asynFloat64Array *pInterface_;
   614     : 
asynParamClient(portName, addr, asynGenericPointerType, drvInfo, timeout) {
   615         pInterface_ = (asynGenericPointer *)pasynInterface_->pinterface;
   616         if (pasynGenericPointerSyncIO->connect(portName, addr, &pasynUserSyncIO_, drvInfo)) 
   617             throw std::runtime_error(std::string(
"pasynGenericPointerSyncIO->connect failed"));
   620     : 
asynParamClient(portName, addr, asynGenericPointerType, drvInfo, timeout) {
   621         pInterface_ = (asynGenericPointer *)pasynInterface_->pinterface;
   622         if (pasynGenericPointerSyncIO->connect(portName, addr, &pasynUserSyncIO_, drvInfo)) 
   623             throw std::runtime_error(std::string(
"pasynGenericPointerSyncIO->connect failed"));
   627         pasynGenericPointerSyncIO->disconnect(pasynUserSyncIO_);
   631     virtual asynStatus 
read(
void *pointer) {
   632         return pasynGenericPointerSyncIO->read(pasynUserSyncIO_, pointer, timeout_);
   636     virtual asynStatus 
write(
void *pointer) {
   637         return pasynGenericPointerSyncIO->write(pasynUserSyncIO_, pointer, timeout_);
   643         if (!userPvt) userPvt=
this;
   644         return pInterface_->registerInterruptUser(pasynInterface_->drvPvt, pasynUser_,
   645                                                   pCallback, userPvt, &interruptPvt_); 
   648     asynGenericPointer *pInterface_;
   663         pInterface_ = (asynOption *)pasynInterface_->pinterface;
   664         if (pasynOptionSyncIO->connect(portName, addr, &pasynUserSyncIO_, drvInfo)) 
   665             throw std::runtime_error(std::string(
"pasynOptionSyncIO->connect failed"));
   669         pInterface_ = (asynOption *)pasynInterface_->pinterface;
   670         if (pasynOptionSyncIO->connect(portName, addr, &pasynUserSyncIO_, drvInfo)) 
   671             throw std::runtime_error(std::string(
"pasynOptionSyncIO->connect failed"));
   675         pasynOptionSyncIO->disconnect(pasynUserSyncIO_);
   681     virtual asynStatus 
getOption(
const char *key, 
char *value, 
int maxChars) {
   682         return pasynOptionSyncIO->getOption(pasynUserSyncIO_, key, value, maxChars, timeout_);
   687     virtual asynStatus 
setOption(
const char *key, 
const char *value) {
   688         return pasynOptionSyncIO->setOption(pasynUserSyncIO_, key, value, timeout_);
   691     asynOption *pInterface_;
   706         pInterface_ = (asynEnum *)pasynInterface_->pinterface;
   707         if (pasynEnumSyncIO->connect(portName, addr, &pasynUserSyncIO_, drvInfo)) 
   708             throw std::runtime_error(std::string(
"pasynEnumSyncIO->connect failed"));
   712         pInterface_ = (asynEnum *)pasynInterface_->pinterface;
   713         if (pasynEnumSyncIO->connect(portName, addr, &pasynUserSyncIO_, drvInfo)) 
   714             throw std::runtime_error(std::string(
"pasynEnumSyncIO->connect failed"));
   718         pasynEnumSyncIO->disconnect(pasynUserSyncIO_);
   726     virtual asynStatus 
read(
char *strings[], 
int values[], 
int severities[], 
size_t nElements, 
size_t *nIn) {
   727         return pasynEnumSyncIO->read(pasynUserSyncIO_, strings, values, severities, nElements, nIn, timeout_);
   734     virtual asynStatus 
write(
char *strings[], 
int values[], 
int severities[], 
size_t nElements) {
   735         return pasynEnumSyncIO->write(pasynUserSyncIO_, strings, values, severities, nElements, timeout_);
   738     asynEnum *pInterface_;
   753         pInterface_ = (asynCommon *)pasynInterface_->pinterface;
   754         if (pasynCommonSyncIO->connect(portName, addr, &pasynUserSyncIO_, drvInfo)) 
   755             throw std::runtime_error(std::string(
"pasynCommonSyncIO->connect failed"));
   759         pInterface_ = (asynCommon *)pasynInterface_->pinterface;
   760         if (pasynCommonSyncIO->connect(portName, addr, &pasynUserSyncIO_, drvInfo)) 
   761             throw std::runtime_error(std::string(
"pasynCommonSyncIO->connect failed"));
   765         pasynCommonSyncIO->disconnect(pasynUserSyncIO_);
   770     virtual void report(FILE *fp, 
int details) {
   771         pasynCommonSyncIO->report(pasynUserSyncIO_, fp, details);
   775         return pasynCommonSyncIO->connectDevice(pasynUserSyncIO_);
   779         return pasynCommonSyncIO->disconnectDevice(pasynUserSyncIO_);
   782     asynCommon *pInterface_;
   791     void report(FILE *fp, 
int details);
   792     asynStatus write(std::string paramName, epicsInt32 value, 
int addr=0);
   793     asynStatus read(std::string paramName, epicsInt32 *value, 
int addr=0);
   794     asynStatus write(std::string paramName, epicsFloat64 value, 
int addr=0);
   795     asynStatus read(std::string paramName, epicsFloat64 *value, 
int addr=0);
   796     asynStatus write(std::string paramName, 
const char *value, 
int addr=0);
   797     asynStatus read(std::string paramName, 
char *value, 
size_t bufferLen, 
int addr=0);
 Class for asyn port clients to communicate on the asynCommon interface.
Definition: asynPortClient.h:743
virtual asynStatus getOption(const char *key, char *value, int maxChars)
Get an option from the port driver.
Definition: asynPortClient.h:681
asynUInt32DigitalClient(const char *portName, int addr, const char *drvInfo, double timeout=DEFAULT_TIMEOUT)
Constructor for asynUInt32DigitalClient class.
Definition: asynPortClient.h:139
virtual asynStatus read(epicsFloat32 *value, size_t nElements, size_t *nIn)
Reads an epicsFloat32 array from the port driver.
Definition: asynPortClient.h:531
char * getAsynInterfaceType()
Definition: asynPortClient.h:55
char * getPortName()
Definition: asynPortClient.h:52
Class for asyn port clients to communicate on the asynInt32 interface.
Definition: asynPortClient.h:74
virtual asynStatus registerInterruptUser(interruptCallbackFloat64Array pCallback, void *userPvt=0)
Registers an interruptCallbackFloat64Array function that the driver will call when there is a new val...
Definition: asynPortClient.h:594
virtual asynStatus write(epicsInt32 *value, size_t nElements)
Writes an epicsInt32 array to the port driver.
Definition: asynPortClient.h:486
Class for asyn port clients to communicate on the asynInt16Array interface.
Definition: asynPortClient.h:401
void setTimeout(double timeout)
Definition: asynPortClient.h:49
Base class for asyn port drivers; handles most of the bookkeeping for writing an asyn port driver wit...
Definition: asynPortDriver.h:44
virtual asynStatus read(epicsFloat64 *value, size_t nElements, size_t *nIn)
Reads an epicsFloat64 array from the port driver.
Definition: asynPortClient.h:582
virtual asynStatus read(epicsInt16 *value, size_t nElements, size_t *nIn)
Reads an epicsInt16 array from the port driver.
Definition: asynPortClient.h:429
double timeout_
Definition: asynPortClient.h:63
virtual asynStatus write(const char *buffer)
Writes a char buffer to the port driver.
Definition: asynPortClient.h:280
virtual asynStatus write(epicsFloat64 *value, size_t nElements)
Writes an epicsFloat64 array to the port driver.
Definition: asynPortClient.h:588
Base class for asyn port clients; handles most of the bookkeeping for writing an asyn port client wit...
Definition: asynPortClient.h:45
virtual asynStatus getInterrupt(epicsUInt32 *mask, interruptReason reason)
Gets the current interrupt mask for the specified reason from the driver.
Definition: asynPortClient.h:181
virtual asynStatus disconnect()
Calls the disconnect method in the driver disconnects from the port device.
Definition: asynPortClient.h:778
virtual ~asynInt32ArrayClient()
Destructor for asynInt32Array class.
Definition: asynPortClient.h:473
virtual ~asynGenericPointerClient()
Destructor for asynGenericPointer class.
Definition: asynPortClient.h:626
virtual ~asynInt32Client()
Destructor for asynInt32Client class.
Definition: asynPortClient.h:95
virtual asynStatus write(epicsInt16 *value, size_t nElements)
Writes an epicsInt16 array to the port driver.
Definition: asynPortClient.h:435
Class for asyn port clients to communicate on the asynInt8Array interface.
Definition: asynPortClient.h:350
asynEnumClient(const char *portName, const char *drvInfo, int addr=0, double timeout=DEFAULT_TIMEOUT)
Definition: asynPortClient.h:710
virtual asynStatus registerInterruptUser(interruptCallbackInt32 pCallback, void *userPvt=0)
Registers an interruptCallbackInt32 function that the driver will call when there is a new value.
Definition: asynPortClient.h:119
asynUser * pasynUserSyncIO_
Definition: asynPortClient.h:61
void * drvPvt
Definition: asynPortClient.h:68
Class for asyn port clients to communicate on the asynFloat32Array interface.
Definition: asynPortClient.h:503
Class for asyn port clients to communicate on the asynInt32Array interface.
Definition: asynPortClient.h:452
char * asynInterfaceType_
Definition: asynPortClient.h:66
void * interruptPvt_
Definition: asynPortClient.h:69
virtual void report(FILE *fp, int details)
Calls the report method in the driver.
Definition: asynPortClient.h:770
virtual asynStatus registerInterruptUser(interruptCallbackInt16Array pCallback, void *userPvt=0)
Registers an interruptCallbackInt16Array function that the driver will call when there is a new value...
Definition: asynPortClient.h:441
virtual asynStatus getOutputEos(char *eos, int eosSize, int *eosLen)
Gets the output end-of-string terminator from the driver.
Definition: asynPortClient.h:333
asynFloat32ArrayClient(const char *portName, int addr, const char *drvInfo, double timeout=DEFAULT_TIMEOUT)
Constructor for asynFloat32Array class.
Definition: asynPortClient.h:511
virtual ~asynUInt32DigitalClient()
Destructor for asynInt32Client class.
Definition: asynPortClient.h:152
virtual asynStatus read(epicsFloat64 *value)
Reads an epicsFloat64 value from the port driver.
Definition: asynPortClient.h:225
asynInt8ArrayClient(const char *portName, int addr, const char *drvInfo, double timeout=DEFAULT_TIMEOUT)
Constructor for asynInt8Array class.
Definition: asynPortClient.h:358
virtual ~asynEnumClient()
Destructor for asynEnum class.
Definition: asynPortClient.h:717
virtual asynStatus write(epicsUInt32 value, epicsUInt32 mask)
Writes an epicsUInt32 value to the port driver.
Definition: asynPortClient.h:164
virtual asynStatus registerInterruptUser(interruptCallbackFloat64 pCallback, void *userPvt=0)
Registers an interruptCallbackFloat64 function that the driver will call when there is a new value.
Definition: asynPortClient.h:236
Class for asyn port clients to communicate on the asynEnum interface.
Definition: asynPortClient.h:696
Class for asyn port clients to communicate on the asynFloat64Array interface.
Definition: asynPortClient.h:554
Class for asyn port clients to communicate on the asynGenericPointer interface.
Definition: asynPortClient.h:605
virtual asynStatus read(epicsInt32 *value)
Reads an epicsInt32 value from the port driver.
Definition: asynPortClient.h:102
asynInterface * pasynInterface_
Definition: asynPortClient.h:62
virtual asynStatus read(epicsUInt32 *value, epicsUInt32 mask)
Reads an epicsUInt32 value from the port driver.
Definition: asynPortClient.h:158
virtual asynStatus connect()
Calls the connect method in the driver which attempts to connect to the port device.
Definition: asynPortClient.h:774
virtual asynStatus write(void *pointer)
Writes a generic pointer to the port driver.
Definition: asynPortClient.h:636
virtual asynStatus read(epicsInt32 *value, size_t nElements, size_t *nIn)
Reads an epicsInt32 array from the port driver.
Definition: asynPortClient.h:480
virtual ~asynOctetClient()
Destructor for asynOctetClient class.
Definition: asynPortClient.h:268
virtual asynStatus setOption(const char *key, const char *value)
Sets an option in the port driver.
Definition: asynPortClient.h:687
std::map< std::string, asynParamClient * > paramMap_t
Definition: asynPortClient.h:785
asynCommonClient(const char *portName, const char *drvInfo, int addr=0, double timeout=DEFAULT_TIMEOUT)
Definition: asynPortClient.h:757
asynInt32Client(const char *portName, int addr, const char *drvInfo, double timeout=DEFAULT_TIMEOUT)
Constructor for asynInt32Client class.
Definition: asynPortClient.h:82
virtual asynStatus registerInterruptUser(interruptCallbackInt8Array pCallback, void *userPvt=0)
Registers an interruptCallbackInt8Array function that the driver will call when there is a new value.
Definition: asynPortClient.h:390
virtual ~asynFloat64ArrayClient()
Destructor for asynFloat64Array class.
Definition: asynPortClient.h:575
asynOctetClient(const char *portName, const char *drvInfo, int addr=0, double timeout=DEFAULT_TIMEOUT)
Definition: asynPortClient.h:261
virtual ~asynOptionClient()
Destructor for asynOption class.
Definition: asynPortClient.h:674
asynEnumClient(const char *portName, int addr, const char *drvInfo, double timeout=DEFAULT_TIMEOUT)
Constructor for asynEnum class.
Definition: asynPortClient.h:704
virtual asynStatus registerInterruptUser(interruptCallbackFloat32Array pCallback, void *userPvt=0)
Registers an interruptCallbackFloat32Array function that the driver will call when there is a new val...
Definition: asynPortClient.h:543
virtual ~asynFloat32ArrayClient()
Destructor for asynFloat32Array class.
Definition: asynPortClient.h:524
asynGenericPointerClient(const char *portName, const char *drvInfo, int addr=0, double timeout=DEFAULT_TIMEOUT)
Definition: asynPortClient.h:619
virtual ~asynInt16ArrayClient()
Destructor for asynInt16Array class.
Definition: asynPortClient.h:422
Definition: asynPortClient.h:787
Class for asyn port clients to communicate on the asynFloat64 interface.
Definition: asynPortClient.h:199
asynUInt32DigitalClient(const char *portName, const char *drvInfo, int addr=0, double timeout=DEFAULT_TIMEOUT)
Definition: asynPortClient.h:145
asynFloat64ArrayClient(const char *portName, int addr, const char *drvInfo, double timeout=DEFAULT_TIMEOUT)
Constructor for asynFloat64Array class.
Definition: asynPortClient.h:562
asynFloat64Client(const char *portName, const char *drvInfo, int addr=0, double timeout=DEFAULT_TIMEOUT)
Definition: asynPortClient.h:213
Class for asyn port clients to communicate on the asynUInt32Digital interface.
Definition: asynPortClient.h:131
virtual asynStatus registerInterruptUser(interruptCallbackOctet pCallback, void *userPvt=0)
Registers an interruptCallbackOctet function that the driver will call when there is a new value.
Definition: asynPortClient.h:339
virtual asynStatus writeRead(const char *writeBuffer, size_t writeBufferLen, char *readBuffer, size_t readBufferLen, size_t *nBytesOut, size_t *nBytesIn, int *eomReason)
Writes a char buffer to the port driver and reads the response as an atomic operation.
Definition: asynPortClient.h:301
virtual asynStatus write(epicsInt32 value)
Writes an epicsInt32 value to the port driver.
Definition: asynPortClient.h:107
char * portName_
Definition: asynPortClient.h:64
asynInt32ArrayClient(const char *portName, int addr, const char *drvInfo, double timeout=DEFAULT_TIMEOUT)
Constructor for asynInt32Array class.
Definition: asynPortClient.h:460
virtual asynStatus read(epicsInt8 *value, size_t nElements, size_t *nIn)
Reads an epicsInt8 array from the port driver.
Definition: asynPortClient.h:378
asynGenericPointerClient(const char *portName, int addr, const char *drvInfo, double timeout=DEFAULT_TIMEOUT)
Constructor for asynGenericPointer class.
Definition: asynPortClient.h:613
virtual asynStatus write(const char *buffer, size_t bufferLen, size_t *nActual)
Writes a char buffer to the port driver.
Definition: asynPortClient.h:275
virtual ~asynCommonClient()
Destructor for asynCommon class.
Definition: asynPortClient.h:764
asynInt32ArrayClient(const char *portName, const char *drvInfo, int addr=0, double timeout=DEFAULT_TIMEOUT)
Definition: asynPortClient.h:466
virtual asynStatus getInputEos(char *eos, int eosSize, int *eosLen)
Gets the input end-of-string terminator from the driver.
Definition: asynPortClient.h:320
char * drvInfo_
Definition: asynPortClient.h:67
asynInt16ArrayClient(const char *portName, const char *drvInfo, int addr=0, double timeout=DEFAULT_TIMEOUT)
Definition: asynPortClient.h:415
asynOptionClient(const char *portName, const char *drvInfo, int addr=0, double timeout=DEFAULT_TIMEOUT)
Definition: asynPortClient.h:667
asynUser * pasynUser_
Definition: asynPortClient.h:60
virtual ~asynInt8ArrayClient()
Destructor for asynInt8Array class.
Definition: asynPortClient.h:371
asynFloat64ArrayClient(const char *portName, const char *drvInfo, int addr=0, double timeout=DEFAULT_TIMEOUT)
Definition: asynPortClient.h:568
asynOptionClient(const char *portName, int addr, const char *drvInfo, double timeout=DEFAULT_TIMEOUT)
Constructor for asynOption class.
Definition: asynPortClient.h:661
virtual asynStatus write(char *strings[], int values[], int severities[], size_t nElements)
Writes enum strings, values, and severities to the port driver.
Definition: asynPortClient.h:734
int addr_
Definition: asynPortClient.h:65
virtual asynStatus setInputEos(const char *eos, int eosLen)
Sets the input end-of-string terminator in the driver.
Definition: asynPortClient.h:313
virtual asynStatus write(epicsFloat32 *value, size_t nElements)
Writes an epicsFloat32 array to the port driver.
Definition: asynPortClient.h:537
virtual asynStatus read(void *pointer)
Reads an generic pointer from the port driver.
Definition: asynPortClient.h:631
asynOctetClient(const char *portName, int addr, const char *drvInfo, double timeout=DEFAULT_TIMEOUT)
Constructor for asynOctetClient class.
Definition: asynPortClient.h:255
virtual asynStatus registerInterruptUser(interruptCallbackInt32Array pCallback, void *userPvt=0)
Registers an interruptCallbackInt32Array function that the driver will call when there is a new value...
Definition: asynPortClient.h:492
asynCommonClient(const char *portName, int addr, const char *drvInfo, double timeout=DEFAULT_TIMEOUT)
Constructor for asynCommon class.
Definition: asynPortClient.h:751
virtual asynStatus write(epicsFloat64 value)
Writes an epicsFloat64 value to the port driver.
Definition: asynPortClient.h:230
virtual ~asynFloat64Client()
Destructor for asynFloat64Client class.
Definition: asynPortClient.h:220
#define DEFAULT_TIMEOUT
Definition: asynPortClient.h:40
asynInt8ArrayClient(const char *portName, const char *drvInfo, int addr=0, double timeout=DEFAULT_TIMEOUT)
Definition: asynPortClient.h:364
asynInt16ArrayClient(const char *portName, int addr, const char *drvInfo, double timeout=DEFAULT_TIMEOUT)
Constructor for asynInt16Array class.
Definition: asynPortClient.h:409
virtual asynStatus setInterrupt(epicsUInt32 mask, interruptReason reason)
Sets the interrupt mask for the specified interrupt reason in the driver.
Definition: asynPortClient.h:170
virtual asynStatus flush()
Flushes the input buffer in the port driver.
Definition: asynPortClient.h:307
virtual asynStatus read(char *strings[], int values[], int severities[], size_t nElements, size_t *nIn)
Reads enum strings, values, and severities from the port driver.
Definition: asynPortClient.h:726
asynInt32Client(const char *portName, const char *drvInfo, int addr=0, double timeout=DEFAULT_TIMEOUT)
Definition: asynPortClient.h:88
virtual asynStatus write(epicsInt8 *value, size_t nElements)
Writes an epicsInt8 array to the port driver.
Definition: asynPortClient.h:384
virtual asynStatus registerInterruptUser(interruptCallbackGenericPointer pCallback, void *userPvt=0)
Registers an interruptCallbackGenericPointer function that the driver will call when there is a new v...
Definition: asynPortClient.h:642
Class for asyn port clients to communicate on the asynOctet interface.
Definition: asynPortClient.h:247
Class for asyn port clients to communicate on the asynOption interface.
Definition: asynPortClient.h:653
virtual asynStatus registerInterruptUser(interruptCallbackUInt32Digital pCallback, epicsUInt32 mask, void *userPvt=0)
Registers an interruptCallbackUInt32Digital function that the driver will call when there is a new va...
Definition: asynPortClient.h:188
asynFloat64Client(const char *portName, int addr, const char *drvInfo, double timeout=DEFAULT_TIMEOUT)
Constructor for asynFloat64Client class.
Definition: asynPortClient.h:207
virtual asynStatus getBounds(epicsInt32 *low, epicsInt32 *high)
Returns the lower and upper limits of the range of values from the port driver.
Definition: asynPortClient.h:113
asynFloat32ArrayClient(const char *portName, const char *drvInfo, int addr=0, double timeout=DEFAULT_TIMEOUT)
Definition: asynPortClient.h:517
virtual asynStatus clearInterrupt(epicsUInt32 mask)
Clears the interrupt mask in the driver.
Definition: asynPortClient.h:175
virtual asynStatus setOutputEos(const char *eos, int eosLen)
Sets the output end-of-string terminator in the driver.
Definition: asynPortClient.h:326
virtual asynStatus read(char *buffer, size_t bufferLen, size_t *nActual, int *eomReason)
Reads a char buffer from the port driver.
Definition: asynPortClient.h:290