11 #include <epicsExport.h> 14 #define BUF_RX ":BUFRX" 15 #define BUF_TX ":BUFTX" 28 std::string bufRxName(dev_name);
29 std::string bufTxName(dev_name);
32 errlogPrintf(
"mrmBufInit ERROR: NULL device name!\n");
37 errlogPrintf(
"mrmBufInit ERROR: failed to allocate memory for buffer info!\n");
46 errlogPrintf(
"mrmBufInit WARNING: failed to find object '%s'\n", bufRxName.c_str());
53 errlogPrintf(
"mrmBufInit WARNING: failed to find object '%s'\n", bufTxName.c_str());
59 errlogPrintf(
"mrmBufInit: ERROR: failed to find both objects!\n");
70 errlogPrintf(
"mrmBufRxSupported ERROR: NULL data parameter!\n");
84 errlogPrintf(
"mrmBufTxSupported ERROR: NULL data parameter!\n");
98 if(data && data->
bufRx) {
102 if(data && data->
bufTx) {
111 if(data && data->
bufRx) {
115 if(data && data->
bufTx) {
125 errlogPrintf(
"mrmBufMaxLen: ERROR: transfer structure not initialized!\n");
131 }
catch(std::exception &e) {
132 errlogPrintf(
"mrmBufMaxLen: EXCEPTION: %s\n", e.what());
142 errlogPrintf(
"mrmBufSend: ERROR: transfer structure not initialized!\n");
148 }
catch(std::exception &e) {
149 errlogPrintf(
"mrmBufSend: EXCEPTION: %s\n", e.what());
159 errlogPrintf(
"mrmBufRegCallback: ERROR: receive structure not initialized!\n");
165 }
catch(std::exception &e) {
166 errlogPrintf(
"mrmBufRegCallback: EXCEPTION: %s\n", e.what());
epicsStatus mrmBufRxSupported(mrmBufferInfo_t *data)
Checks whether receive buffer is supported.
epicsStatus mrmBufEnable(mrmBufferInfo_t *data)
Disable buffer sending logic.
void(* mrmBufRecievedCallback)(void *arg, epicsStatus status, epicsUInt32 length, const epicsUInt8 *buffer)
Buffer received callback function.
epicsStatus mrmBufRegCallback(mrmBufferInfo *data, mrmBufRecievedCallback callback, void *pass)
Register data receive callback function.
epicsStatus mrmBufTxSupported(mrmBufferInfo_t *data)
Checks whether transferring buffer is supported.
static Object * getObject(const std::string &name)
C interface for data buffer sending and receiving.
epicsStatus mrmBufSend(mrmBufferInfo *data, epicsUInt32 len, epicsUInt8 *buf)
Send buffer data.
virtual epicsUInt32 lenMax() const OVERRIDE FINAL
virtual void dataTxEnable(bool) OVERRIDE FINAL
mrmBufferInfo_t * mrmBufInit(const char *dev_name)
Initialize buffer data structure.
epicsStatus mrmBufMaxLen(mrmBufferInfo *data, epicsUInt32 *maxLength)
Get maximum supported buffer length.
virtual void dataRxEnable(bool)=0
virtual void dataSend(epicsUInt32 len, const epicsUInt8 *buf) OVERRIDE FINAL
Transmit a byte array.
epicsStatus mrmBufDisable(mrmBufferInfo_t *data)
Disable buffer sending logic.
virtual void dataRxAddReceive(dataBufComplete fptr, void *arg=0)=0
Register to receive data buffers.