10#include "ModbusRTUErrors.h"
28 typedef uint8_t ModbusByte;
29 const size_t BitsPerByte = 8;
30 typedef uint8_t ModbusAddr;
31 typedef uint16_t ModbusData;
32 const uint8_t BitsPerData = 16;
33 typedef uint16_t ModbusCRC;
37 enum SlaveFunctionCode
40 fnReadCoilStatus = 0x01,
41 fnReadInputStatus = 0x02,
42 fnReadOutputRegisters = 0x03,
43 fnReadInputRegisters = 0x04,
44 fnForceSingleCoil = 0x05,
45 fnWriteOutputSingleRegister = 0x06,
47 fnForceMultipleCoils = 0x0F,
48 fnWriteOutputRegisters = 0x10,
49 fnReadFileRecord = 0x14,
50 fnWriteFileRecord = 0x15,
53 fnRemoteService = 0x53,
54 fnJournalCommand = 0x65,
59 enum DiagnosticsSubFunction
67 dgClearCounters = 0x0A,
70 dgBusExceptCount = 0x0D,
71 dgMsgSlaveCount = 0x0E,
72 dgNoNoResponseCount = 0x0F,
73 dgSlaveNAKCount = 0x10,
74 dgSlaveBusyCount = 0x11,
75 dgBusCharOverrunCount = 0x12,
77 dgClearOverrunCounter = 0x14
90 RegID genRegID(
const ModbusRTU::ModbusData r,
const uint8_t fn );
94 ssize_t szRequestDiagnosticData( DiagnosticsSubFunction f );
100 rdiProductCode = 0x1,
101 rdiMajorMinorRevision = 0x2,
103 rdiProductName = 0x4,
105 rdiUserApplicationName = 0x6
111 enum RDIRequestDeviceID
114 rdevBasicDevice = 0x1,
115 rdevRegularDevice = 0x2,
116 rdevExtentedDevice = 0x3,
117 rdevSpecificDevice = 0x4,
121 std::string rdi2str(
int id );
137 const uint8_t MBErrMask = 0x80;
139 uint16_t SWAPSHORT( uint16_t x );
142 ModbusCRC checkCRC( ModbusByte* start,
size_t len );
143 const size_t szCRC =
sizeof(ModbusCRC);
146 std::ostream& mbPrintMessage(std::ostream& os, ModbusByte* b,
size_t len );
148 ModbusAddr str2mbAddr(
const std::string& val );
149 ModbusData str2mbData(
const std::string& val );
150 std::string dat2str(
const ModbusData dat );
151 std::string addr2str(
const ModbusAddr addr );
152 std::string b2str(
const ModbusByte b );
154 float dat2f(
const ModbusData dat1,
const ModbusData dat2 );
155 size_t numBytes(
const size_t nbits );
163 data =
new ModbusRTU::ModbusData[sz];
171 ModbusRTU::ModbusData* data;
175 bool isWriteFunction( SlaveFunctionCode c );
176 bool isReadFunction( SlaveFunctionCode c );
185 } __attribute__((packed));
189 std::ostream& operator<<(std::ostream& os,
const ModbusHeader& m );
190 std::ostream& operator<<(std::ostream& os,
const ModbusHeader* m );
194 ModbusRTU::ModbusData
tID;
195 ModbusRTU::ModbusData
pID;
196 ModbusRTU::ModbusData
len;
202 } __attribute__((packed));
204 std::ostream& operator<<(std::ostream& os,
const MBAPHeader& m );
219 inline ModbusByte func()
const
223 inline ModbusAddr addr()
const
227 inline ModbusRTU::ModbusData tID()
const
231 inline ModbusRTU::ModbusData pID()
const
235 inline ModbusRTU::ModbusData aduLen()
const
241 ModbusRTU::ModbusData len()
const;
243 void makeMBAPHeader( ModbusRTU::ModbusData tID,
bool noCRC =
true, ModbusRTU::ModbusData pID = 0 );
245 ModbusRTU::ModbusData pduLen()
const;
246 ModbusCRC pduCRC(
size_t len )
const;
247 static size_t maxSizeOfMessage();
253 ModbusByte
data[MAXLENPACKET + szCRC];
257 } __attribute__((packed));
259 std::ostream& operator<<(std::ostream& os,
const ModbusMessage& m );
260 std::ostream& operator<<(std::ostream& os,
const ModbusMessage* m );
266 ModbusByte ecode = { erNoError };
267 ModbusCRC crc = { 0 };
275 ErrorRetMessage( ModbusAddr _from, ModbusByte _func, ModbusByte ecode );
285 return sizeof(ModbusByte) + szCRC;
298 const DataBits& operator=(
const ModbusByte& r);
300 operator ModbusByte();
303 bool operator[](
const size_t i )
307 void set(
int n,
bool s )
312 std::bitset<BitsPerByte> b;
315 std::ostream& operator<<(std::ostream& os,
DataBits& m );
316 std::ostream& operator<<(std::ostream& os,
DataBits* m );
324 const DataBits16& operator=(
const ModbusData& r);
326 operator ModbusData();
327 ModbusData mdata()
const;
329 bool operator[](
const size_t i )
333 void set(
int n,
bool s )
338 std::bitset<BitsPerData> b;
341 std::ostream& operator<<(std::ostream& os,
DataBits16& m );
342 std::ostream& operator<<(std::ostream& os,
DataBits16* m );
348 ModbusData start = { 0 };
349 ModbusData count = { 0 };
350 ModbusCRC crc = { 0 };
365 return sizeof(ModbusData) * 2 + szCRC;
368 } __attribute__((packed));
392 return sizeof(ModbusByte);
397 ModbusCRC crc = { 0 };
415 bool setBit( uint8_t dnum, uint8_t bnum,
bool state );
431 return ( (
int)
bcnt >= MAXPDULEN );
448 ModbusData start = { 0 };
449 ModbusData count = { 0 };
450 ModbusCRC crc = { 0 };
467 return sizeof(ModbusData) * 2 + szCRC;
470 } __attribute__((packed));
492 return sizeof(ModbusByte);
497 ModbusCRC crc = { 0 };
515 bool setBit( uint8_t dnum, uint8_t bnum,
bool state );
531 return ( (
int)
bcnt >= MAXPDULEN );
549 ModbusData start = { 0 };
550 ModbusData count = { 0 };
551 ModbusCRC crc = { 0 };
566 return sizeof(ModbusData) * 2 + szCRC;
569 } __attribute__((packed));
579 ModbusData
data[MAXLENPACKET /
sizeof(ModbusData)];
591 return sizeof(ModbusByte);
596 ModbusCRC crc = { 0 };
613 return (
count *
sizeof(ModbusData) >= MAXLENPACKET );
637 ModbusData start = { 0 };
638 ModbusData count = { 0 };
639 ModbusCRC crc = { 0 };
654 return sizeof(ModbusData) * 2 + szCRC;
657 } __attribute__((packed));
668 ModbusData
data[MAXLENPACKET /
sizeof(ModbusData)];
680 return sizeof(ModbusByte);
685 ModbusCRC crc = { 0 };
702 return (
count *
sizeof(ModbusData) >= MAXLENPACKET );
732 ModbusByte
data[MAXLENPACKET -
sizeof(ModbusData) * 2 -
sizeof(ModbusByte)];
748 int addBit(
bool state );
750 bool setBit( uint8_t nbit,
bool state );
752 inline size_t last()
const
766 inline bool isFull()
const
768 return ( (
int)
bcnt >= MAXPDULEN );
772 ForceCoilsMessage(
const ModbusMessage& m );
773 ForceCoilsMessage& operator=(
const ModbusMessage& m );
774 void init(
const ModbusMessage& m );
785 return sizeof(ModbusData) * 2 +
sizeof(ModbusByte);
796 } __attribute__((packed));
807 ModbusCRC crc = { 0 };
833 return sizeof(ModbusData) * 2 +
sizeof(ModbusCRC);
849 ModbusData
data[MAXLENPACKET /
sizeof(ModbusData) -
sizeof(ModbusData) * 2 -
sizeof(ModbusByte)];
857 bool addData( ModbusData d );
859 inline bool isFull()
const
861 return (
quant >= MAXDATALEN );
878 return sizeof(ModbusData) * 2 +
sizeof(ModbusByte);
889 } __attribute__((packed));
906 ModbusCRC crc = { 0 };
927 return sizeof(ModbusData) * 2 +
sizeof(ModbusCRC);
945 return (
data & 0xFF00);
966 return sizeof(ModbusData);
978 } __attribute__((packed));
991 ModbusCRC crc = { 0 };
996 return (
data & 0xFF00);
1022 return 2 *
sizeof(ModbusData) +
sizeof(ModbusCRC);
1057 return sizeof(ModbusData);
1069 } __attribute__((packed));
1082 ModbusCRC crc = { 0 };
1108 return 2 *
sizeof(ModbusData) +
sizeof(ModbusCRC);
1119 ModbusData subf = { 0 };
1120 ModbusData
data[MAXLENPACKET /
sizeof(ModbusData)];
1131 return sizeof(ModbusData);
1136 ModbusCRC crc = { 0 };
1139 DiagnosticMessage( ModbusAddr _from, DiagnosticsSubFunction subf, ModbusData d = 0 );
1154 return ( 1 +
count >= MAXDATALEN );
1210 return sizeof(ModbusByte) * 3;
1216 return sizeof(ModbusByte) * 3 + szCRC;
1220 bool checkFormat()
const;
1222 } __attribute__((packed));
1224 std::ostream& operator<<(std::ostream& os,
MEIMessageRDI& m );
1225 std::ostream& operator<<(std::ostream& os,
MEIMessageRDI* m );
1231 RDIObjectInfo( ModbusByte
id,
const std::string& v ): id(
id), val(v) {}
1232 RDIObjectInfo( ModbusByte
id,
const ModbusByte* dat, ModbusByte len );
1238 using RDIObjectList = std::list<RDIObjectInfo>;
1251 RDIObjectList dlist;
1252 ModbusCRC crc = { 0 };
1266 return sizeof(ModbusByte) * 6;
1279 bool addData( ModbusByte
id,
const std::string& value );
1288 return ( bcnt >= MAXPDULEN );
1297 size_t bcnt = { 0 };
1300 std::ostream& operator<<(std::ostream& os, MEIMessageRetRDI& m );
1301 std::ostream& operator<<(std::ostream& os, MEIMessageRetRDI* m );
1302 std::ostream& operator<<(std::ostream& os, RDIObjectList& dl );
1303 std::ostream& operator<<(std::ostream& os, RDIObjectList* dl );
1313 ModbusCRC crc = { 0 };
1322 return sizeof(ModbusByte) * 4 + szCRC;
1325 } __attribute__((packed));
1340 ModbusData
data[MAXLENPACKET /
sizeof(ModbusData)];
1351 bool setData( ModbusByte* b,
int len );
1359 return (
count >= MAXDATALEN );
1387 void set( ModbusData cmd, ModbusData ecode );
1407 ModbusCRC crc = { 0 };
1419 bool checkFormat()
const;
1424 return sizeof(ModbusByte) * 7 + szCRC;
1427 } __attribute__((packed));
1460 ModbusByte
data[MAXLENPACKET -
sizeof(ModbusByte)];
1476 return sizeof(ModbusByte);
1482 } __attribute__((packed));
1492 ModbusByte
data[MAXLENPACKET -
sizeof(ModbusByte)];
1502 bool setData( ModbusByte* b,
int len );
1535 } __attribute__((packed));
1556 return sizeof(ModbusByte);
1592 return sizeof(ModbusData) * 2 + szCRC;
1595 } __attribute__((packed));
1606 static const size_t MaxDataLen = MAXLENPACKET -
sizeof(ModbusData) * 3 -
sizeof(ModbusByte) * 2;
1613 ModbusByte data[MaxDataLen];
1620 ModbusCRC crc = { 0 };
1621 static size_t szHead()
1623 return sizeof(ModbusByte);
1633 bool set( ModbusData
numfile, ModbusData file_num_packets, ModbusData
packet, ModbusByte* b, ModbusByte len );
1645 std::ostream& operator<<(std::ostream& os, FileTransferRetMessage& m );
1646 std::ostream& operator<<(std::ostream& os, FileTransferRetMessage* m );
Definition Calibration.h:27
Definition ModbusTypes.h:319
Definition ModbusTypes.h:293
Definition ModbusTypes.h:159
Definition ModbusTypes.h:1118
size_t szData() const
Definition ModbusTypes.cc:2400
bool isFull() const
Definition ModbusTypes.h:1151
static size_t szHead()
Definition ModbusTypes.h:1129
bool addData(ModbusData d)
Definition ModbusTypes.cc:2342
ModbusMessage transport_msg()
Definition ModbusTypes.cc:2357
ModbusData data[MAXLENPACKET/sizeof(ModbusData)]
Definition ModbusTypes.h:1120
static size_t getDataLen(const ModbusMessage &m)
Definition ModbusTypes.cc:2314
void clear()
Definition ModbusTypes.cc:2351
size_t count
Definition ModbusTypes.h:1168
Definition ModbusTypes.h:1176
Definition ModbusTypes.h:265
static size_t szData()
Definition ModbusTypes.h:283
ModbusMessage transport_msg()
Definition ModbusTypes.cc:342
Definition ModbusTypes.h:1575
static size_t szData()
Definition ModbusTypes.h:1590
ModbusCRC crc
Definition ModbusTypes.h:1578
ModbusMessage transport_msg()
Definition ModbusTypes.cc:3421
ModbusData numpacket
Definition ModbusTypes.h:1577
ModbusData numfile
Definition ModbusTypes.h:1576
Definition ModbusTypes.h:1603
bool set(ModbusData numfile, ModbusData file_num_packets, ModbusData packet, ModbusByte *b, ModbusByte len)
Definition ModbusTypes.cc:3527
void clear()
Definition ModbusTypes.cc:3542
ModbusByte bcnt
Definition ModbusTypes.h:1608
ModbusData packet
Definition ModbusTypes.h:1611
ModbusData numfile
Definition ModbusTypes.h:1609
ModbusMessage transport_msg()
Definition ModbusTypes.cc:3562
ModbusByte dlen
Definition ModbusTypes.h:1612
ModbusData numpacks
Definition ModbusTypes.h:1610
size_t szData() const
Definition ModbusTypes.cc:3556
Definition ModbusTypes.h:727
static size_t szHead()
Definition ModbusTypes.h:782
ModbusData quant
Definition ModbusTypes.h:729
ModbusMessage transport_msg()
Definition ModbusTypes.cc:1406
ModbusData start
Definition ModbusTypes.h:728
ModbusByte bcnt
Definition ModbusTypes.h:730
size_t szData() const
Definition ModbusTypes.cc:1495
static size_t getDataLen(const ModbusMessage &m)
Definition ModbusTypes.cc:1500
bool checkFormat() const
Definition ModbusTypes.cc:1490
bool getData(uint8_t dnum, DataBits &d)
Definition ModbusTypes.cc:1387
bool addData(DataBits d)
Definition ModbusTypes.cc:1349
ModbusCRC crc
Definition ModbusTypes.h:733
ModbusByte data[MAXLENPACKET - sizeof(ModbusData) *2 - sizeof(ModbusByte)]
Definition ModbusTypes.h:732
Definition ModbusTypes.h:804
ModbusData quant
Definition ModbusTypes.h:806
void set(ModbusData start, ModbusData quant)
Definition ModbusTypes.cc:1572
ModbusData start
Definition ModbusTypes.h:805
static size_t szData()
Definition ModbusTypes.h:831
ModbusMessage transport_msg()
Definition ModbusTypes.cc:1578
Definition ModbusTypes.h:937
static size_t getDataLen(const ModbusMessage &m)
Definition ModbusTypes.cc:1944
bool checkFormat() const
Definition ModbusTypes.cc:1934
static size_t szHead()
Definition ModbusTypes.h:964
ModbusData data
Definition ModbusTypes.h:939
size_t szData() const
Definition ModbusTypes.cc:1939
ModbusData start
Definition ModbusTypes.h:938
bool cmd()
Definition ModbusTypes.h:943
ModbusMessage transport_msg()
Definition ModbusTypes.cc:1880
ModbusCRC crc
Definition ModbusTypes.h:940
Definition ModbusTypes.h:988
ModbusData data
Definition ModbusTypes.h:990
ModbusMessage transport_msg()
Definition ModbusTypes.cc:2004
ModbusData start
Definition ModbusTypes.h:989
void set(ModbusData start, bool cmd)
Definition ModbusTypes.cc:1997
bool cmd() const
Definition ModbusTypes.h:994
static size_t szData()
Definition ModbusTypes.h:1020
Definition ModbusTypes.h:1310
static size_t szData()
Definition ModbusTypes.h:1320
ModbusData cmd
Definition ModbusTypes.h:1311
ModbusData num
Definition ModbusTypes.h:1312
Definition ModbusTypes.h:1333
size_t szData() const
Definition ModbusTypes.cc:2902
bool isFull() const
Definition ModbusTypes.h:1357
ModbusData data[MAXLENPACKET/sizeof(ModbusData)]
Definition ModbusTypes.h:1340
ModbusMessage transport_msg()
Definition ModbusTypes.cc:2855
bool setData(ModbusByte *b, int len)
Definition ModbusTypes.cc:2825
void clear()
Definition ModbusTypes.cc:2848
size_t count
Definition ModbusTypes.h:1373
ModbusByte bcnt
Definition ModbusTypes.h:1334
Definition ModbusTypes.h:1384
Definition ModbusTypes.h:1188
ModbusMessage transport_msg()
Definition ModbusTypes.cc:2472
static size_t szData()
Definition ModbusTypes.h:1214
ModbusCRC crc
Definition ModbusTypes.h:1193
ModbusByte devID
Definition ModbusTypes.h:1190
static size_t szHead()
Definition ModbusTypes.h:1208
ModbusByte objID
Definition ModbusTypes.h:1191
ModbusByte type
Definition ModbusTypes.h:1189
Definition ModbusTypes.h:1243
ModbusByte objNum
Definition ModbusTypes.h:1249
ModbusByte objID
Definition ModbusTypes.h:1248
void clear()
Definition ModbusTypes.cc:2688
bool addData(ModbusByte id, const std::string &value)
Definition ModbusTypes.cc:2675
ModbusByte mf
Definition ModbusTypes.h:1247
ModbusByte conformity
Definition ModbusTypes.h:1246
static size_t szHead()
Definition ModbusTypes.h:1264
size_t szData() const
Definition ModbusTypes.cc:2731
ModbusMessage transport_msg()
Definition ModbusTypes.cc:2694
bool isFull() const
Definition ModbusTypes.h:1286
ModbusByte type
Definition ModbusTypes.h:1244
ModbusByte devID
Definition ModbusTypes.h:1245
Definition ModbusTypes.h:211
ModbusByte data[MAXLENPACKET+szCRC]
Definition ModbusTypes.h:253
size_t dlen
Definition ModbusTypes.h:256
Definition ModbusTypes.h:1229
Definition ModbusTypes.h:347
ModbusMessage transport_msg()
Definition ModbusTypes.cc:387
static size_t szData()
Definition ModbusTypes.h:363
Definition ModbusTypes.h:378
bool isFull() const
Definition ModbusTypes.h:429
bool addData(DataBits d)
Definition ModbusTypes.cc:640
size_t szData() const
Definition ModbusTypes.cc:694
bool getData(uint8_t bnum, DataBits &d) const
Definition ModbusTypes.cc:649
void clear()
Definition ModbusTypes.cc:660
static int szHead()
Definition ModbusTypes.h:390
static size_t getDataLen(const ModbusMessage &m)
Definition ModbusTypes.cc:611
ModbusMessage transport_msg()
Definition ModbusTypes.cc:666
bool setBit(uint8_t dnum, uint8_t bnum, bool state)
Definition ModbusTypes.cc:627
ModbusByte data[MAXLENPACKET]
Definition ModbusTypes.h:380
ModbusByte bcnt
Definition ModbusTypes.h:379
Definition ModbusTypes.h:1530
ModbusByte reftype
Definition ModbusTypes.h:1531
ModbusData numrec
Definition ModbusTypes.h:1533
ModbusData reglen
Definition ModbusTypes.h:1534
ModbusData numfile
Definition ModbusTypes.h:1532
Definition ModbusTypes.h:1528
static size_t getDataLen(const ModbusMessage &m)
Definition ModbusTypes.cc:3395
size_t count
Definition ModbusTypes.h:1566
static size_t szHead()
Definition ModbusTypes.h:1554
ModbusByte bcnt
Definition ModbusTypes.h:1537
size_t szData() const
Definition ModbusTypes.cc:3389
bool checkFormat() const
Definition ModbusTypes.cc:3351
ModbusCRC crc
Definition ModbusTypes.h:1541
SubRequest data[MAXLENPACKET/sizeof(SubRequest) - sizeof(ModbusByte)]
Definition ModbusTypes.h:1540
Definition ModbusTypes.h:548
ModbusMessage transport_msg()
Definition ModbusTypes.cc:923
static size_t szData()
Definition ModbusTypes.h:564
Definition ModbusTypes.h:577
size_t szData() const
Definition ModbusTypes.cc:1109
bool isFull() const
Definition ModbusTypes.h:611
static size_t szHead()
Definition ModbusTypes.h:588
size_t count
Definition ModbusTypes.h:627
ModbusMessage transport_msg()
Definition ModbusTypes.cc:1063
static size_t getDataLen(const ModbusMessage &m)
Definition ModbusTypes.cc:1029
ModbusByte bcnt
Definition ModbusTypes.h:578
void clear()
Definition ModbusTypes.cc:1056
bool addData(ModbusData d)
Definition ModbusTypes.cc:1046
ModbusData data[MAXLENPACKET/sizeof(ModbusData)]
Definition ModbusTypes.h:579
Definition ModbusTypes.h:1456
size_t szData() const
Definition ModbusTypes.cc:3244
ModbusByte data[MAXLENPACKET - sizeof(ModbusByte)]
Definition ModbusTypes.h:1460
static size_t szHead()
Definition ModbusTypes.h:1474
ModbusCRC crc
Definition ModbusTypes.h:1461
ModbusByte bcnt
Definition ModbusTypes.h:1457
static size_t getDataLen(const ModbusMessage &m)
Definition ModbusTypes.cc:3249
Definition ModbusTypes.h:1489
bool isFull() const
Definition ModbusTypes.h:1508
ModbusByte data[MAXLENPACKET - sizeof(ModbusByte)]
Definition ModbusTypes.h:1492
ModbusMessage transport_msg()
Definition ModbusTypes.cc:3307
void clear()
Definition ModbusTypes.cc:3294
bool setData(ModbusByte *b, int len)
Definition ModbusTypes.cc:3276
ModbusByte bcnt
Definition ModbusTypes.h:1490
size_t szData() const
Definition ModbusTypes.cc:3301
size_t count
Definition ModbusTypes.h:1522
Definition ModbusTypes.h:1398
static size_t szData()
Definition ModbusTypes.h:1422
ModbusByte year
Definition ModbusTypes.h:1404
ModbusByte mon
Definition ModbusTypes.h:1403
ModbusMessage transport_msg()
Definition ModbusTypes.cc:3118
ModbusByte century
Definition ModbusTypes.h:1405
ModbusByte hour
Definition ModbusTypes.h:1399
ModbusByte sec
Definition ModbusTypes.h:1401
ModbusByte min
Definition ModbusTypes.h:1400
ModbusByte day
Definition ModbusTypes.h:1402
Definition ModbusTypes.h:1436
ModbusMessage transport_msg()
Definition ModbusTypes.cc:3192
Definition ModbusTypes.h:844
static size_t szHead()
Definition ModbusTypes.h:875
ModbusMessage transport_msg()
Definition ModbusTypes.cc:1641
bool checkFormat() const
Definition ModbusTypes.cc:1738
ModbusByte bcnt
Definition ModbusTypes.h:847
ModbusData start
Definition ModbusTypes.h:845
ModbusCRC crc
Definition ModbusTypes.h:850
size_t szData() const
Definition ModbusTypes.cc:1744
ModbusData quant
Definition ModbusTypes.h:846
ModbusData data[MAXLENPACKET/sizeof(ModbusData) - sizeof(ModbusData) *2 - sizeof(ModbusByte)]
Definition ModbusTypes.h:849
static size_t getDataLen(const ModbusMessage &m)
Definition ModbusTypes.cc:1749
Definition ModbusTypes.h:898
static size_t szData()
Definition ModbusTypes.h:925
ModbusMessage transport_msg()
Definition ModbusTypes.cc:1837
void set(ModbusData start, ModbusData quant)
Definition ModbusTypes.cc:1831
ModbusData start
Definition ModbusTypes.h:899
ModbusData quant
Definition ModbusTypes.h:900
Definition ModbusTypes.h:1033
ModbusCRC crc
Definition ModbusTypes.h:1036
ModbusMessage transport_msg()
Definition ModbusTypes.cc:2051
bool checkFormat()
Definition ModbusTypes.cc:2105
size_t szData() const
Definition ModbusTypes.cc:2111
ModbusData data
Definition ModbusTypes.h:1035
static size_t szHead()
Definition ModbusTypes.h:1055
static size_t getDataLen(const ModbusMessage &m)
Definition ModbusTypes.cc:2116
ModbusData start
Definition ModbusTypes.h:1034
Definition ModbusTypes.h:1079
static size_t szData()
Definition ModbusTypes.h:1106
ModbusMessage transport_msg()
Definition ModbusTypes.cc:2182
ModbusData data
Definition ModbusTypes.h:1081
ModbusData start
Definition ModbusTypes.h:1080
void set(ModbusData start, ModbusData data)
Definition ModbusTypes.cc:2175