11 #include <epicsTypes.h>    13 #include <epicsThread.h>    14 #include <epicsInterrupt.h>    20 #include <epicsExport.h>    24 #define DataTxCtrl_done 0x100000    25 #define DataTxCtrl_run  0x080000    26 #define DataTxCtrl_trig 0x040000    27 #define DataTxCtrl_ena  0x020000    28 #define DataTxCtrl_mode 0x010000    29 #define DataTxCtrl_len_mask 0x0007fc    30 #define DataTxCtrl_len_max  DataTxCtrl_len_mask    33                  volatile epicsUInt8* bufcontrol,
    34                  volatile epicsUInt8* buffer
    56     SCOPED_LOCK(dataGuard);
    73         throw std::runtime_error(
"Buffer Tx not enabled");
    79         throw std::runtime_error(
"Buffer Tx not running or done");
    91                        const epicsUInt8 *ubuf
    97         throw std::out_of_range(
"Tx buffer is too long");
   102     SCOPED_LOCK(dataGuard);
   110     for(index=0; index<len; index+=4) {
   111         be_iowrite32(&dataBuf[index], *(epicsUInt32*)(&ubuf[index]) );
 
#define DataTxCtrl_len_max
INLINE void nat_iowrite32(volatile void *addr, epicsUInt32 val)
INLINE epicsUInt32 nat_ioread32(volatile void *addr)
#define be_iowrite32(A, D)
virtual epicsUInt32 lenMax() const OVERRIDE FINAL
virtual void dataTxEnable(bool) OVERRIDE FINAL
#define DataTxCtrl_len_mask
virtual bool dataTxEnabled() const OVERRIDE FINAL
Is card configured for buffer transmission? 
virtual void dataSend(epicsUInt32 len, const epicsUInt8 *buf) OVERRIDE FINAL
Transmit a byte array. 
virtual bool dataRTS() const OVERRIDE FINAL
Is card ready to send a buffer? 
mrmDataBufTx(const std::string &n, volatile epicsUInt8 *bufcontrol, volatile epicsUInt8 *buffer)