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, userPvt, 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);
#define DEFAULT_TIMEOUT
Definition: asynPortClient.h:40
std::map< std::string, asynParamClient * > paramMap_t
Definition: asynPortClient.h:785
Class for asyn port clients to communicate on the asynCommon interface.
Definition: asynPortClient.h:743
asynCommonClient(const char *portName, const char *drvInfo, int addr=0, double timeout=DEFAULT_TIMEOUT)
Definition: asynPortClient.h:757
virtual asynStatus connect()
Calls the connect method in the driver which attempts to connect to the port device.
Definition: asynPortClient.h:774
virtual asynStatus disconnect()
Calls the disconnect method in the driver disconnects from the port device.
Definition: asynPortClient.h:778
virtual ~asynCommonClient()
Destructor for asynCommon class.
Definition: asynPortClient.h:764
virtual void report(FILE *fp, int details)
Calls the report method in the driver.
Definition: asynPortClient.h:770
asynCommonClient(const char *portName, int addr, const char *drvInfo, double timeout=DEFAULT_TIMEOUT)
Constructor for asynCommon class.
Definition: asynPortClient.h:751
Class for asyn port clients to communicate on the asynEnum interface.
Definition: asynPortClient.h:696
asynEnumClient(const char *portName, const char *drvInfo, int addr=0, double timeout=DEFAULT_TIMEOUT)
Definition: asynPortClient.h:710
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
asynEnumClient(const char *portName, int addr, const char *drvInfo, double timeout=DEFAULT_TIMEOUT)
Constructor for asynEnum class.
Definition: asynPortClient.h:704
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
virtual ~asynEnumClient()
Destructor for asynEnum class.
Definition: asynPortClient.h:717
Class for asyn port clients to communicate on the asynFloat32Array interface.
Definition: asynPortClient.h:503
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
asynFloat32ArrayClient(const char *portName, int addr, const char *drvInfo, double timeout=DEFAULT_TIMEOUT)
Constructor for asynFloat32Array class.
Definition: asynPortClient.h:511
virtual asynStatus write(epicsFloat32 *value, size_t nElements)
Writes an epicsFloat32 array to the port driver.
Definition: asynPortClient.h:537
virtual ~asynFloat32ArrayClient()
Destructor for asynFloat32Array class.
Definition: asynPortClient.h:524
asynFloat32ArrayClient(const char *portName, const char *drvInfo, int addr=0, double timeout=DEFAULT_TIMEOUT)
Definition: asynPortClient.h:517
virtual asynStatus read(epicsFloat32 *value, size_t nElements, size_t *nIn)
Reads an epicsFloat32 array from the port driver.
Definition: asynPortClient.h:531
Class for asyn port clients to communicate on the asynFloat64Array interface.
Definition: asynPortClient.h:554
virtual asynStatus write(epicsFloat64 *value, size_t nElements)
Writes an epicsFloat64 array to the port driver.
Definition: asynPortClient.h:588
asynFloat64ArrayClient(const char *portName, const char *drvInfo, int addr=0, double timeout=DEFAULT_TIMEOUT)
Definition: asynPortClient.h:568
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 read(epicsFloat64 *value, size_t nElements, size_t *nIn)
Reads an epicsFloat64 array from the port driver.
Definition: asynPortClient.h:582
asynFloat64ArrayClient(const char *portName, int addr, const char *drvInfo, double timeout=DEFAULT_TIMEOUT)
Constructor for asynFloat64Array class.
Definition: asynPortClient.h:562
virtual ~asynFloat64ArrayClient()
Destructor for asynFloat64Array class.
Definition: asynPortClient.h:575
Class for asyn port clients to communicate on the asynFloat64 interface.
Definition: asynPortClient.h:199
asynFloat64Client(const char *portName, const char *drvInfo, int addr=0, double timeout=DEFAULT_TIMEOUT)
Definition: asynPortClient.h:213
virtual ~asynFloat64Client()
Destructor for asynFloat64Client class.
Definition: asynPortClient.h:220
virtual asynStatus read(epicsFloat64 *value)
Reads an epicsFloat64 value from the port driver.
Definition: asynPortClient.h:225
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
asynFloat64Client(const char *portName, int addr, const char *drvInfo, double timeout=DEFAULT_TIMEOUT)
Constructor for asynFloat64Client class.
Definition: asynPortClient.h:207
virtual asynStatus write(epicsFloat64 value)
Writes an epicsFloat64 value to the port driver.
Definition: asynPortClient.h:230
Class for asyn port clients to communicate on the asynGenericPointer interface.
Definition: asynPortClient.h:605
asynGenericPointerClient(const char *portName, int addr, const char *drvInfo, double timeout=DEFAULT_TIMEOUT)
Constructor for asynGenericPointer class.
Definition: asynPortClient.h:613
virtual asynStatus read(void *pointer)
Reads an generic pointer from the port driver.
Definition: asynPortClient.h:631
virtual asynStatus write(void *pointer)
Writes a generic pointer to the port driver.
Definition: asynPortClient.h:636
virtual ~asynGenericPointerClient()
Destructor for asynGenericPointer class.
Definition: asynPortClient.h:626
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
asynGenericPointerClient(const char *portName, const char *drvInfo, int addr=0, double timeout=DEFAULT_TIMEOUT)
Definition: asynPortClient.h:619
Class for asyn port clients to communicate on the asynInt16Array interface.
Definition: asynPortClient.h:401
virtual asynStatus write(epicsInt16 *value, size_t nElements)
Writes an epicsInt16 array to the port driver.
Definition: asynPortClient.h:435
asynInt16ArrayClient(const char *portName, int addr, const char *drvInfo, double timeout=DEFAULT_TIMEOUT)
Constructor for asynInt16Array class.
Definition: asynPortClient.h:409
asynInt16ArrayClient(const char *portName, const char *drvInfo, int addr=0, double timeout=DEFAULT_TIMEOUT)
Definition: asynPortClient.h:415
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 ~asynInt16ArrayClient()
Destructor for asynInt16Array class.
Definition: asynPortClient.h:422
virtual asynStatus read(epicsInt16 *value, size_t nElements, size_t *nIn)
Reads an epicsInt16 array from the port driver.
Definition: asynPortClient.h:429
Class for asyn port clients to communicate on the asynInt32Array interface.
Definition: asynPortClient.h:452
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
virtual ~asynInt32ArrayClient()
Destructor for asynInt32Array class.
Definition: asynPortClient.h:473
asynInt32ArrayClient(const char *portName, const char *drvInfo, int addr=0, double timeout=DEFAULT_TIMEOUT)
Definition: asynPortClient.h:466
virtual asynStatus write(epicsInt32 *value, size_t nElements)
Writes an epicsInt32 array to the port driver.
Definition: asynPortClient.h:486
asynInt32ArrayClient(const char *portName, int addr, const char *drvInfo, double timeout=DEFAULT_TIMEOUT)
Constructor for asynInt32Array class.
Definition: asynPortClient.h:460
virtual asynStatus read(epicsInt32 *value, size_t nElements, size_t *nIn)
Reads an epicsInt32 array from the port driver.
Definition: asynPortClient.h:480
Class for asyn port clients to communicate on the asynInt32 interface.
Definition: asynPortClient.h:74
virtual asynStatus read(epicsInt32 *value)
Reads an epicsInt32 value from the port driver.
Definition: asynPortClient.h:102
asynInt32Client(const char *portName, const char *drvInfo, int addr=0, double timeout=DEFAULT_TIMEOUT)
Definition: asynPortClient.h:88
asynInt32Client(const char *portName, int addr, const char *drvInfo, double timeout=DEFAULT_TIMEOUT)
Constructor for asynInt32Client class.
Definition: asynPortClient.h:82
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
virtual ~asynInt32Client()
Destructor for asynInt32Client class.
Definition: asynPortClient.h:95
virtual asynStatus write(epicsInt32 value)
Writes an epicsInt32 value to the port driver.
Definition: asynPortClient.h:107
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
Class for asyn port clients to communicate on the asynInt8Array interface.
Definition: asynPortClient.h:350
virtual asynStatus read(epicsInt8 *value, size_t nElements, size_t *nIn)
Reads an epicsInt8 array from the port driver.
Definition: asynPortClient.h:378
asynInt8ArrayClient(const char *portName, const char *drvInfo, int addr=0, double timeout=DEFAULT_TIMEOUT)
Definition: asynPortClient.h:364
virtual ~asynInt8ArrayClient()
Destructor for asynInt8Array class.
Definition: asynPortClient.h:371
asynInt8ArrayClient(const char *portName, int addr, const char *drvInfo, double timeout=DEFAULT_TIMEOUT)
Constructor for asynInt8Array class.
Definition: asynPortClient.h:358
virtual asynStatus write(epicsInt8 *value, size_t nElements)
Writes an epicsInt8 array to the port driver.
Definition: asynPortClient.h:384
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
Class for asyn port clients to communicate on the asynOctet interface.
Definition: asynPortClient.h:247
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(const char *buffer, size_t bufferLen, size_t *nActual)
Writes a char buffer to the port driver.
Definition: asynPortClient.h:275
virtual asynStatus setOutputEos(const char *eos, int eosLen)
Sets the output end-of-string terminator in the driver.
Definition: asynPortClient.h:326
asynOctetClient(const char *portName, const char *drvInfo, int addr=0, double timeout=DEFAULT_TIMEOUT)
Definition: asynPortClient.h:261
virtual asynStatus getOutputEos(char *eos, int eosSize, int *eosLen)
Gets the output end-of-string terminator from the driver.
Definition: asynPortClient.h:333
virtual asynStatus write(const char *buffer)
Writes a char buffer to the port driver.
Definition: asynPortClient.h:280
asynOctetClient(const char *portName, int addr, const char *drvInfo, double timeout=DEFAULT_TIMEOUT)
Constructor for asynOctetClient class.
Definition: asynPortClient.h:255
virtual ~asynOctetClient()
Destructor for asynOctetClient class.
Definition: asynPortClient.h:268
virtual asynStatus setInputEos(const char *eos, int eosLen)
Sets the input end-of-string terminator in the driver.
Definition: asynPortClient.h:313
virtual asynStatus getInputEos(char *eos, int eosSize, int *eosLen)
Gets the input end-of-string terminator from the driver.
Definition: asynPortClient.h:320
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
virtual asynStatus flush()
Flushes the input buffer in the port driver.
Definition: asynPortClient.h:307
Class for asyn port clients to communicate on the asynOption interface.
Definition: asynPortClient.h:653
asynOptionClient(const char *portName, int addr, const char *drvInfo, double timeout=DEFAULT_TIMEOUT)
Constructor for asynOption class.
Definition: asynPortClient.h:661
virtual asynStatus setOption(const char *key, const char *value)
Sets an option in the port driver.
Definition: asynPortClient.h:687
asynOptionClient(const char *portName, const char *drvInfo, int addr=0, double timeout=DEFAULT_TIMEOUT)
Definition: asynPortClient.h:667
virtual asynStatus getOption(const char *key, char *value, int maxChars)
Get an option from the port driver.
Definition: asynPortClient.h:681
virtual ~asynOptionClient()
Destructor for asynOption class.
Definition: asynPortClient.h:674
Base class for asyn port clients; handles most of the bookkeeping for writing an asyn port client wit...
Definition: asynPortClient.h:45
void * interruptPvt_
Definition: asynPortClient.h:69
char * portName_
Definition: asynPortClient.h:64
int addr_
Definition: asynPortClient.h:65
char * asynInterfaceType_
Definition: asynPortClient.h:66
double timeout_
Definition: asynPortClient.h:63
asynUser * pasynUserSyncIO_
Definition: asynPortClient.h:61
asynUser * pasynUser_
Definition: asynPortClient.h:60
char * getAsynInterfaceType()
Definition: asynPortClient.h:55
void * drvPvt
Definition: asynPortClient.h:68
asynInterface * pasynInterface_
Definition: asynPortClient.h:62
char * drvInfo_
Definition: asynPortClient.h:67
char * getPortName()
Definition: asynPortClient.h:52
void setTimeout(double timeout)
Definition: asynPortClient.h:49
Definition: asynPortClient.h:787
Base class for asyn port drivers; handles most of the bookkeeping for writing an asyn port driver wit...
Definition: asynPortDriver.h:98
Class for asyn port clients to communicate on the asynUInt32Digital interface.
Definition: asynPortClient.h:131
virtual asynStatus clearInterrupt(epicsUInt32 mask)
Clears the interrupt mask in the driver.
Definition: asynPortClient.h:175
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
asynUInt32DigitalClient(const char *portName, const char *drvInfo, int addr=0, double timeout=DEFAULT_TIMEOUT)
Definition: asynPortClient.h:145
virtual asynStatus read(epicsUInt32 *value, epicsUInt32 mask)
Reads an epicsUInt32 value from the port driver.
Definition: asynPortClient.h:158
virtual ~asynUInt32DigitalClient()
Destructor for asynInt32Client class.
Definition: asynPortClient.h:152
virtual asynStatus setInterrupt(epicsUInt32 mask, interruptReason reason)
Sets the interrupt mask for the specified interrupt reason in the driver.
Definition: asynPortClient.h:170
asynUInt32DigitalClient(const char *portName, int addr, const char *drvInfo, double timeout=DEFAULT_TIMEOUT)
Constructor for asynUInt32DigitalClient class.
Definition: asynPortClient.h:139
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 write(epicsUInt32 value, epicsUInt32 mask)
Writes an epicsUInt32 value to the port driver.
Definition: asynPortClient.h:164