10#include "ModbusRTUErrors.h"
27 typedef uint8_t ModbusByte;
28 const size_t BitsPerByte = 8;
29 typedef uint8_t ModbusAddr;
30 typedef uint16_t ModbusData;
31 const uint8_t BitsPerData = 16;
32 typedef uint16_t ModbusCRC;
36 enum SlaveFunctionCode
39 fnReadCoilStatus = 0x01,
40 fnReadInputStatus = 0x02,
41 fnReadOutputRegisters = 0x03,
42 fnReadInputRegisters = 0x04,
43 fnForceSingleCoil = 0x05,
44 fnWriteOutputSingleRegister = 0x06,
46 fnForceMultipleCoils = 0x0F,
47 fnWriteOutputRegisters = 0x10,
48 fnReadFileRecord = 0x14,
49 fnWriteFileRecord = 0x15,
52 fnRemoteService = 0x53,
53 fnJournalCommand = 0x65,
58 enum DiagnosticsSubFunction
66 dgClearCounters = 0x0A,
69 dgBusExceptCount = 0x0D,
70 dgMsgSlaveCount = 0x0E,
71 dgNoNoResponseCount = 0x0F,
72 dgSlaveNAKCount = 0x10,
73 dgSlaveBusyCount = 0x11,
74 dgBusCharOverrunCount = 0x12,
76 dgClearOverrunCounter = 0x14
89 RegID genRegID(
const ModbusRTU::ModbusData r,
const uint8_t fn );
93 ssize_t szRequestDiagnosticData( DiagnosticsSubFunction f );
100 rdiMajorMinorRevision = 0x2,
102 rdiProductName = 0x4,
104 rdiUserApplicationName = 0x6
110 enum RDIRequestDeviceID
113 rdevBasicDevice = 0x1,
114 rdevRegularDevice = 0x2,
115 rdevExtentedDevice = 0x3,
116 rdevSpecificDevice = 0x4,
120 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 );
160 DataGuard(
size_t sz ):
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 );
214 ModbusMessage( ModbusMessage&& ) =
default;
215 ModbusMessage& operator=(ModbusMessage&& ) =
default;
216 ModbusMessage(
const ModbusMessage& ) =
default;
217 ModbusMessage& operator=(
const ModbusMessage& ) =
default;
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 );
263 struct ErrorRetMessage:
266 ModbusByte ecode = { erNoError };
267 ModbusCRC crc = { 0 };
277 ErrorRetMessage( ModbusAddr _from, ModbusByte _func, ModbusByte ecode );
278 static void make_to( ModbusAddr
addr, ModbusByte _func, ModbusByte ecode,
ModbusMessage& m );
289 return sizeof(ModbusByte) + szCRC;
298 DataBits( ModbusByte b );
299 DataBits( std::string s );
302 const DataBits& operator=(
const ModbusByte& r);
304 operator ModbusByte();
307 bool operator[] (
const size_t i )
const
311 void set(
int n,
bool s )
316 std::bitset<BitsPerByte> b;
319 std::ostream& operator<<(std::ostream& os,
DataBits& m );
320 std::ostream& operator<<(std::ostream& os,
DataBits* m );
324 DataBits16( ModbusData d );
325 DataBits16(
const std::string& s );
328 const DataBits16& operator=(
const ModbusData& r);
330 operator ModbusData();
331 ModbusData mdata()
const;
333 bool operator[](
const size_t i )
const
337 void set(
int n,
bool s )
346 std::bitset<BitsPerData> b;
349 std::ostream& operator<<(std::ostream& os,
DataBits16& m );
350 std::ostream& operator<<(std::ostream& os,
DataBits16* m );
372 bool setBit( uint8_t dnum, uint8_t bnum,
bool state );
396 bool getByBitNum( uint16_t num,
bool& state )
const;
405 bool getBit( uint8_t dnum, uint8_t bnum,
bool& state )
const;
413 return ( (
size_t)
bcnt >=
sizeof(
data) );
416 std::ostream& operator<<(std::ostream& os,
BitsBuffer& m );
417 std::ostream& operator<<(std::ostream& os,
BitsBuffer* m );
420 struct ReadCoilMessage:
423 ModbusData start = { 0 };
424 ModbusData count = { 0 };
425 ModbusCRC crc = { 0 };
428 ReadCoilMessage( ModbusAddr
addr, ModbusData start, ModbusData count );
429 static void make_to( ModbusAddr
addr, ModbusData start, ModbusData count,
ModbusMessage& m );
445 return sizeof(ModbusData) * 2 + szCRC;
448 } __attribute__((packed));
455 struct ReadCoilRetMessage:
471 return sizeof(ModbusByte);
476 ModbusCRC crc = { 0 };
489 std::ostream& operator<<(std::ostream& os, ReadCoilRetMessage& m );
490 std::ostream& operator<<(std::ostream& os, ReadCoilRetMessage* m );
493 struct ReadInputStatusMessage:
496 ModbusData start = { 0 };
497 ModbusData count = { 0 };
498 ModbusCRC crc = { 0 };
501 ReadInputStatusMessage( ModbusAddr
addr, ModbusData start, ModbusData count );
502 static void make_to( ModbusAddr
addr, ModbusData start, ModbusData count,
ModbusMessage& m );
519 return sizeof(ModbusData) * 2 + szCRC;
522 } __attribute__((packed));
528 struct ReadInputStatusRetMessage:
534 ReadInputStatusRetMessage& operator=(
const ModbusMessage& m );
544 return sizeof(ModbusByte);
549 ModbusCRC crc = { 0 };
562 std::ostream& operator<<(std::ostream& os, ReadInputStatusRetMessage& m );
563 std::ostream& operator<<(std::ostream& os, ReadInputStatusRetMessage* m );
567 struct ReadOutputMessage:
570 ModbusData start = { 0 };
571 ModbusData count = { 0 };
572 ModbusCRC crc = { 0 };
575 ReadOutputMessage( ModbusAddr
addr, ModbusData start, ModbusData count );
576 static void make_to( ModbusAddr
addr, ModbusData start, ModbusData count,
ModbusMessage& m );
591 return sizeof(ModbusData) * 2 + szCRC;
594 } __attribute__((packed));
600 struct ReadOutputRetMessage:
604 ModbusData
data[MAXLENPACKET /
sizeof(ModbusData)];
619 return sizeof(ModbusByte);
624 ModbusCRC crc = { 0 };
641 return (
count *
sizeof(ModbusData) >= MAXLENPACKET );
663 struct ReadInputMessage:
666 ModbusData start = { 0 };
667 ModbusData count = { 0 };
668 ModbusCRC crc = { 0 };
671 ReadInputMessage( ModbusAddr
addr, ModbusData start, ModbusData count );
672 static void make_to( ModbusAddr
addr, ModbusData start, ModbusData count,
ModbusMessage& m );
687 return sizeof(ModbusData) * 2 + szCRC;
690 } __attribute__((packed));
697 struct ReadInputRetMessage:
701 ModbusData
data[MAXLENPACKET /
sizeof(ModbusData)];
716 return sizeof(ModbusByte);
721 ModbusCRC crc = { 0 };
738 return (
count *
sizeof(ModbusData) >= MAXLENPACKET );
762 struct ForceCoilsMessage:
769 ModbusByte
data[MAXLENPACKET -
sizeof(ModbusData) * 2 -
sizeof(ModbusByte)];
786 int addBit(
bool state );
788 bool setBit( uint8_t nbit,
bool state );
790 inline size_t last()
const
804 inline bool isFull()
const
806 return ( (
int)bcnt >= MAXPDULEN );
810 ForceCoilsMessage(
const ModbusMessage& m );
811 ForceCoilsMessage& operator=(
const ModbusMessage& m );
812 void init(
const ModbusMessage& m );
813 static ModbusCRC getCrc(
const ModbusMessage& m );
814 static ModbusCRC calcCRC(
const ModbusMessage& m );
825 return sizeof(ModbusData) * 2 +
sizeof(ModbusByte);
834 } __attribute__((packed));
840 struct ForceCoilsRetMessage:
845 ModbusCRC crc = { 0 };
861 static void make_to( ModbusAddr _from, ModbusData start, ModbusData count,
ModbusMessage& m );
864 void set( ModbusData start, ModbusData quant );
875 return sizeof(ModbusData) * 2 +
sizeof(ModbusCRC);
884 struct WriteOutputMessage:
891 ModbusData
data[MAXLENPACKET /
sizeof(ModbusData) -
sizeof(ModbusData) * 2 -
sizeof(ModbusByte)];
900 bool addData( ModbusData d );
902 inline bool isFull()
const
904 return ( quant >= MAXDATALEN );
923 return sizeof(ModbusData) * 2 +
sizeof(ModbusByte);
932 } __attribute__((packed));
939 struct WriteOutputRetMessage:
951 ModbusCRC crc = { 0 };
960 static void make_to( ModbusAddr _from, ModbusData start, ModbusData quant,
ModbusMessage& m );
963 void set( ModbusData start, ModbusData quant );
974 return sizeof(ModbusData) * 2 +
sizeof(ModbusCRC);
982 struct ForceSingleCoilMessage:
992 return (
data & 0xFF00);
997 static void make_to( ModbusAddr addr, ModbusData ref,
bool state,
ModbusMessage& m );
1017 return sizeof(ModbusData);
1027 } __attribute__((packed));
1035 struct ForceSingleCoilRetMessage:
1040 ModbusCRC crc = { 0 };
1045 return (
data & 0xFF00);
1060 static void make_to( ModbusAddr addr, ModbusData start,
bool cmd,
ModbusMessage& m );
1063 void set( ModbusData start,
bool cmd );
1074 return 2 *
sizeof(ModbusData) +
sizeof(ModbusCRC);
1083 struct WriteSingleOutputMessage:
1093 static void make_to( ModbusAddr addr, ModbusData start, ModbusData data,
ModbusMessage& m );
1113 return sizeof(ModbusData);
1123 } __attribute__((packed));
1131 struct WriteSingleOutputRetMessage:
1136 ModbusCRC crc = { 0 };
1152 static void make_to( ModbusAddr addr, ModbusData start, ModbusData data,
ModbusMessage& m );
1155 void set( ModbusData start, ModbusData data );
1166 return 2 *
sizeof(ModbusData) +
sizeof(ModbusCRC);
1174 struct DiagnosticMessage:
1177 ModbusData subf = { 0 };
1178 ModbusData
data[MAXLENPACKET /
sizeof(ModbusData)];
1192 return sizeof(ModbusData);
1197 ModbusCRC crc = { 0 };
1200 DiagnosticMessage( ModbusAddr _from, DiagnosticsSubFunction subf, ModbusData d = 0 );
1215 return ( 1 +
count >= MAXDATALEN );
1236 struct DiagnosticRetMessage:
1237 public DiagnosticMessage
1240 DiagnosticRetMessage(
const DiagnosticMessage& m );
1241 DiagnosticRetMessage( ModbusAddr a, DiagnosticsSubFunction subf, ModbusData d = 0 );
1248 struct MEIMessageRDI:
1258 MEIMessageRDI( ModbusAddr addr, ModbusByte devID, ModbusByte objID );
1259 static void make_to( ModbusAddr addr, ModbusByte devID, ModbusByte objID,
ModbusMessage& m );
1277 return sizeof(ModbusByte) * 3;
1283 return sizeof(ModbusByte) * 3 + szCRC;
1287 bool checkFormat()
const;
1289 } __attribute__((packed));
1291 std::ostream& operator<<(std::ostream& os,
MEIMessageRDI& m );
1292 std::ostream& operator<<(std::ostream& os,
MEIMessageRDI* m );
1295 struct RDIObjectInfo
1297 RDIObjectInfo(): id(0), val(
"") {}
1298 RDIObjectInfo( ModbusByte
id,
const std::string& v ): id(
id), val(v) {}
1299 RDIObjectInfo( ModbusByte
id,
const ModbusByte* dat, ModbusByte len );
1305 using RDIObjectList = std::list<RDIObjectInfo>;
1308 struct MEIMessageRetRDI:
1318 RDIObjectList dlist;
1319 ModbusCRC crc = { 0 };
1335 return sizeof(ModbusByte) * 6;
1348 bool addData( ModbusByte
id,
const std::string& value );
1357 return ( bcnt >= MAXPDULEN );
1367 size_t bcnt = { 0 };
1370 std::ostream& operator<<(std::ostream& os, MEIMessageRetRDI& m );
1371 std::ostream& operator<<(std::ostream& os, MEIMessageRetRDI* m );
1372 std::ostream& operator<<(std::ostream& os, RDIObjectList& dl );
1373 std::ostream& operator<<(std::ostream& os, RDIObjectList* dl );
1378 struct JournalCommandMessage:
1383 ModbusCRC crc = { 0 };
1394 return sizeof(ModbusData) * 2 + szCRC;
1397 } __attribute__((packed));
1403 struct JournalCommandRetMessage:
1412 ModbusData
data[MAXLENPACKET /
sizeof(ModbusData)];
1415 JournalCommandRetMessage( ModbusAddr _from );
1423 bool setData( ModbusByte* b,
int len );
1431 return (
count >= MAXDATALEN );
1458 struct JournalCommandRetOK:
1459 public JournalCommandRetMessage
1462 JournalCommandRetOK( ModbusAddr _from );
1463 void set( ModbusData cmd, ModbusData ecode );
1464 static void set( JournalCommandRetMessage& m, ModbusData cmd, ModbusData ecode );
1472 struct SetDateTimeMessage:
1483 ModbusCRC crc = { 0 };
1503 return sizeof(ModbusByte) * 7 + szCRC;
1506 } __attribute__((packed));
1513 struct SetDateTimeRetMessage:
1514 public SetDateTimeMessage
1525 SetDateTimeRetMessage( ModbusAddr _from );
1526 SetDateTimeRetMessage(
const SetDateTimeMessage& query );
1527 static void cpy( SetDateTimeRetMessage& reply,
const SetDateTimeMessage& query );
1536 struct RemoteServiceMessage:
1542 ModbusByte
data[MAXLENPACKET -
sizeof(ModbusByte)];
1560 return sizeof(ModbusByte);
1566 } __attribute__((packed));
1571 struct RemoteServiceRetMessage:
1576 ModbusByte
data[MAXLENPACKET -
sizeof(ModbusByte)];
1578 RemoteServiceRetMessage( ModbusAddr _from );
1586 bool setData( ModbusByte* b,
int len );
1614 struct ReadFileRecordMessage:
1623 } __attribute__((packed));
1646 return sizeof(ModbusByte);
1663 struct FileTransferMessage:
1672 static void make_to( ModbusAddr addr, ModbusByte numfile, ModbusByte numpacket,
ModbusMessage& m );
1687 return sizeof(ModbusData) * 2 + szCRC;
1690 } __attribute__((packed));
1696 struct FileTransferRetMessage:
1701 static const size_t MaxDataLen = MAXLENPACKET -
sizeof(ModbusData) * 3 -
sizeof(ModbusByte) * 2;
1708 ModbusByte data[MaxDataLen];
1713 FileTransferRetMessage& operator=(
const ModbusMessage& m );
1718 ModbusCRC crc = { 0 };
1719 static size_t szHead()
1721 return sizeof(ModbusByte);
1731 bool set( ModbusData numfile, ModbusData file_num_packets, ModbusData
packet, ModbusByte* b, ModbusByte len );
1744 std::ostream& operator<<(std::ostream& os, FileTransferRetMessage& m );
1745 std::ostream& operator<<(std::ostream& os, FileTransferRetMessage* m );
Определения Calibration.h:27
Определения ModbusTypes.h:353
bool getData(uint8_t dnum, DataBits &d) const
Определения ModbusTypes.cc:683
bool setByBitNum(uint16_t num, bool state)
Определения ModbusTypes.cc:656
ModbusByte data[MAXPDULEN]
Определения ModbusTypes.h:355
bool isFull() const
Определения ModbusTypes.h:411
bool addData(DataBits d)
Определения ModbusTypes.cc:674
bool getByBitNum(uint16_t num, bool &state) const
Определения ModbusTypes.cc:694
void clear()
Определения ModbusTypes.cc:713
ModbusByte bcnt
Определения ModbusTypes.h:354
bool getBit(uint8_t dnum, uint8_t bnum, bool &state) const
Определения ModbusTypes.cc:701
bool setBit(uint8_t dnum, uint8_t bnum, bool state)
Определения ModbusTypes.cc:643
Определения ModbusTypes.h:323
Определения ModbusTypes.h:297
Определения ModbusTypes.h:1176
size_t szData() const
Определения ModbusTypes.cc:2825
bool isFull() const
Определения ModbusTypes.h:1212
ModbusMessage transport_msg() const
Определения ModbusTypes.cc:2777
static size_t szHead()
Определения ModbusTypes.h:1190
bool addData(ModbusData d)
Определения ModbusTypes.cc:2762
ModbusData data[MAXLENPACKET/sizeof(ModbusData)]
Определения ModbusTypes.h:1178
static size_t getDataLen(const ModbusMessage &m)
Определения ModbusTypes.cc:2734
void clear()
Определения ModbusTypes.cc:2771
size_t count
Определения ModbusTypes.h:1230
Определения ModbusTypes.h:1238
Определения ModbusTypes.h:265
ModbusMessage transport_msg() const
Определения ModbusTypes.cc:354
static size_t szData()
Определения ModbusTypes.h:287
Определения ModbusTypes.h:1665
static size_t szData()
Определения ModbusTypes.h:1685
ModbusMessage transport_msg() const
Определения ModbusTypes.cc:4004
ModbusCRC crc
Определения ModbusTypes.h:1668
ModbusData numpacket
Определения ModbusTypes.h:1667
ModbusData numfile
Определения ModbusTypes.h:1666
Определения ModbusTypes.h:1698
bool set(ModbusData numfile, ModbusData file_num_packets, ModbusData packet, ModbusByte *b, ModbusByte len)
Определения ModbusTypes.cc:4149
void clear()
Определения ModbusTypes.cc:4164
ModbusByte bcnt
Определения ModbusTypes.h:1703
ModbusData packet
Определения ModbusTypes.h:1706
ModbusMessage transport_msg() const
Определения ModbusTypes.cc:4184
ModbusData numfile
Определения ModbusTypes.h:1704
ModbusByte dlen
Определения ModbusTypes.h:1707
ModbusData numpacks
Определения ModbusTypes.h:1705
size_t szData() const
Определения ModbusTypes.cc:4178
Определения ModbusTypes.h:764
static size_t szHead()
Определения ModbusTypes.h:822
ModbusData quant
Определения ModbusTypes.h:766
ModbusData start
Определения ModbusTypes.h:765
ModbusByte bcnt
Определения ModbusTypes.h:767
bool getData(uint8_t dnum, DataBits &d) const
Определения ModbusTypes.cc:1615
size_t szData() const
Определения ModbusTypes.cc:1743
ModbusMessage transport_msg() const
Определения ModbusTypes.cc:1649
static size_t getDataLen(const ModbusMessage &m)
Определения ModbusTypes.cc:1748
static bool checkFormat(const ModbusMessage &m)
Определения ModbusTypes.cc:1738
bool addData(DataBits d)
Определения ModbusTypes.cc:1577
ModbusCRC crc
Определения ModbusTypes.h:770
ModbusByte data[MAXLENPACKET - sizeof(ModbusData) *2 - sizeof(ModbusByte)]
Определения ModbusTypes.h:769
Определения ModbusTypes.h:842
ModbusData quant
Определения ModbusTypes.h:844
ModbusMessage transport_msg() const
Определения ModbusTypes.cc:1840
void set(ModbusData start, ModbusData quant)
Определения ModbusTypes.cc:1834
ModbusData start
Определения ModbusTypes.h:843
static size_t szData()
Определения ModbusTypes.h:873
void init(const ModbusMessage &m)
Определения ModbusTypes.cc:1804
Определения ModbusTypes.h:984
static size_t getDataLen(const ModbusMessage &m)
Определения ModbusTypes.cc:2277
static size_t szHead()
Определения ModbusTypes.h:1015
ModbusData data
Определения ModbusTypes.h:986
ModbusData start
Определения ModbusTypes.h:985
ModbusMessage transport_msg() const
Определения ModbusTypes.cc:2201
bool cmd() const
Определения ModbusTypes.h:990
static bool checkFormat(const ModbusMessage &m)
Определения ModbusTypes.cc:2267
static size_t szData()
Определения ModbusTypes.cc:2272
ModbusCRC crc
Определения ModbusTypes.h:987
Определения ModbusTypes.h:1037
ModbusData data
Определения ModbusTypes.h:1039
ModbusData start
Определения ModbusTypes.h:1038
void set(ModbusData start, bool cmd)
Определения ModbusTypes.cc:2345
ModbusMessage transport_msg() const
Определения ModbusTypes.cc:2352
bool cmd() const
Определения ModbusTypes.h:1043
void init(const ModbusMessage &m)
Определения ModbusTypes.cc:2324
static size_t szData()
Определения ModbusTypes.h:1072
Определения ModbusTypes.h:1380
static size_t szData()
Определения ModbusTypes.h:1392
ModbusData cmd
Определения ModbusTypes.h:1381
ModbusData num
Определения ModbusTypes.h:1382
Определения ModbusTypes.h:1405
size_t szData() const
Определения ModbusTypes.cc:3400
bool isFull() const
Определения ModbusTypes.h:1429
ModbusData data[MAXLENPACKET/sizeof(ModbusData)]
Определения ModbusTypes.h:1412
bool setData(ModbusByte *b, int len)
Определения ModbusTypes.cc:3308
void clear()
Определения ModbusTypes.cc:3331
ModbusMessage transport_msg() const
Определения ModbusTypes.cc:3353
size_t count
Определения ModbusTypes.h:1449
ModbusByte bcnt
Определения ModbusTypes.h:1406
Определения ModbusTypes.h:1460
Определения ModbusTypes.h:1250
ModbusMessage transport_msg() const
Определения ModbusTypes.cc:2912
static size_t szData()
Определения ModbusTypes.h:1281
ModbusCRC crc
Определения ModbusTypes.h:1255
ModbusByte devID
Определения ModbusTypes.h:1252
static size_t szHead()
Определения ModbusTypes.h:1275
ModbusByte objID
Определения ModbusTypes.h:1253
ModbusByte type
Определения ModbusTypes.h:1251
Определения ModbusTypes.h:1310
ModbusMessage transport_msg() const
Определения ModbusTypes.cc:3158
ModbusByte objNum
Определения ModbusTypes.h:1316
ModbusByte objID
Определения ModbusTypes.h:1315
void clear()
Определения ModbusTypes.cc:3137
bool addData(ModbusByte id, const std::string &value)
Определения ModbusTypes.cc:3124
ModbusByte mf
Определения ModbusTypes.h:1314
ModbusByte conformity
Определения ModbusTypes.h:1313
static size_t szHead()
Определения ModbusTypes.h:1333
size_t szData() const
Определения ModbusTypes.cc:3199
bool isFull() const
Определения ModbusTypes.h:1355
ModbusByte type
Определения ModbusTypes.h:1311
ModbusByte devID
Определения ModbusTypes.h:1312
Определения ModbusTypes.h:211
ModbusByte data[MAXLENPACKET+szCRC]
Определения ModbusTypes.h:253
size_t dlen
Определения ModbusTypes.h:256
Определения ModbusTypes.h:1296
Определения ModbusTypes.h:422
ModbusMessage transport_msg() const
Определения ModbusTypes.cc:408
static size_t szData()
Определения ModbusTypes.h:443
Определения ModbusTypes.h:458
ModbusMessage transport_msg() const
Определения ModbusTypes.cc:776
size_t szData() const
Определения ModbusTypes.cc:770
static int szHead()
Определения ModbusTypes.h:469
static size_t getDataLen(const ModbusMessage &m)
Определения ModbusTypes.cc:756
Определения ModbusTypes.h:1618
ModbusByte reftype
Определения ModbusTypes.h:1619
ModbusData numrec
Определения ModbusTypes.h:1621
ModbusData reglen
Определения ModbusTypes.h:1622
ModbusData numfile
Определения ModbusTypes.h:1620
Определения ModbusTypes.h:1616
static size_t getDataLen(const ModbusMessage &m)
Определения ModbusTypes.cc:3978
size_t count
Определения ModbusTypes.h:1656
static size_t szHead()
Определения ModbusTypes.h:1644
ModbusByte bcnt
Определения ModbusTypes.h:1625
size_t szData() const
Определения ModbusTypes.cc:3972
bool checkFormat() const
Определения ModbusTypes.cc:3919
ModbusCRC crc
Определения ModbusTypes.h:1629
SubRequest data[MAXLENPACKET/sizeof(SubRequest) - sizeof(ModbusByte)]
Определения ModbusTypes.h:1628
Определения ModbusTypes.h:569
ModbusMessage transport_msg() const
Определения ModbusTypes.cc:1057
static size_t szData()
Определения ModbusTypes.h:589
Определения ModbusTypes.h:602
size_t szData() const
Определения ModbusTypes.cc:1287
bool isFull() const
Определения ModbusTypes.h:639
static size_t szHead()
Определения ModbusTypes.h:616
size_t count
Определения ModbusTypes.h:656
static size_t getDataLen(const ModbusMessage &m)
Определения ModbusTypes.cc:1192
ModbusByte bcnt
Определения ModbusTypes.h:603
void clear()
Определения ModbusTypes.cc:1219
bool addData(ModbusData d)
Определения ModbusTypes.cc:1209
ModbusMessage transport_msg() const
Определения ModbusTypes.cc:1243
ModbusData data[MAXLENPACKET/sizeof(ModbusData)]
Определения ModbusTypes.h:604
Определения ModbusTypes.h:1538
size_t szData() const
Определения ModbusTypes.cc:3797
ModbusByte data[MAXLENPACKET - sizeof(ModbusByte)]
Определения ModbusTypes.h:1542
static size_t szHead()
Определения ModbusTypes.h:1558
ModbusCRC crc
Определения ModbusTypes.h:1543
ModbusByte bcnt
Определения ModbusTypes.h:1539
static size_t getDataLen(const ModbusMessage &m)
Определения ModbusTypes.cc:3802
bool isFull() const
Определения ModbusTypes.h:1592
ModbusByte data[MAXLENPACKET - sizeof(ModbusByte)]
Определения ModbusTypes.h:1576
void clear()
Определения ModbusTypes.cc:3847
bool setData(ModbusByte *b, int len)
Определения ModbusTypes.cc:3829
ModbusByte bcnt
Определения ModbusTypes.h:1574
size_t szData() const
Определения ModbusTypes.cc:3854
ModbusMessage transport_msg() const
Определения ModbusTypes.cc:3860
size_t count
Определения ModbusTypes.h:1610
Определения ModbusTypes.h:1474
static size_t szData()
Определения ModbusTypes.h:1501
ModbusByte year
Определения ModbusTypes.h:1480
ModbusByte mon
Определения ModbusTypes.h:1479
ModbusByte century
Определения ModbusTypes.h:1481
ModbusByte hour
Определения ModbusTypes.h:1475
ModbusByte sec
Определения ModbusTypes.h:1477
ModbusMessage transport_msg() const
Определения ModbusTypes.cc:3632
ModbusByte min
Определения ModbusTypes.h:1476
ModbusByte day
Определения ModbusTypes.h:1478
ModbusMessage transport_msg() const
Определения ModbusTypes.cc:3727
Определения ModbusTypes.h:886
static bool checkFormat(const ModbusMessage &m)
Определения ModbusTypes.cc:2027
static size_t szHead()
Определения ModbusTypes.h:920
ModbusByte bcnt
Определения ModbusTypes.h:889
ModbusData start
Определения ModbusTypes.h:887
ModbusCRC crc
Определения ModbusTypes.h:892
size_t szData() const
Определения ModbusTypes.cc:2036
ModbusData quant
Определения ModbusTypes.h:888
ModbusMessage transport_msg() const
Определения ModbusTypes.cc:1926
ModbusData data[MAXLENPACKET/sizeof(ModbusData) - sizeof(ModbusData) *2 - sizeof(ModbusByte)]
Определения ModbusTypes.h:891
static size_t getDataLen(const ModbusMessage &m)
Определения ModbusTypes.cc:2041
Определения ModbusTypes.h:941
static size_t szData()
Определения ModbusTypes.h:972
void set(ModbusData start, ModbusData quant)
Определения ModbusTypes.cc:2129
void init(const ModbusMessage &m)
Определения ModbusTypes.cc:2084
ModbusMessage transport_msg() const
Определения ModbusTypes.cc:2135
ModbusData start
Определения ModbusTypes.h:942
ModbusData quant
Определения ModbusTypes.h:943
Определения ModbusTypes.h:1085
static bool checkFormat(const ModbusMessage &m)
Определения ModbusTypes.cc:2487
ModbusCRC crc
Определения ModbusTypes.h:1088
static size_t szData()
Определения ModbusTypes.cc:2493
ModbusData data
Определения ModbusTypes.h:1087
ModbusMessage transport_msg() const
Определения ModbusTypes.cc:2422
static size_t szHead()
Определения ModbusTypes.h:1111
static size_t getDataLen(const ModbusMessage &m)
Определения ModbusTypes.cc:2498
ModbusData start
Определения ModbusTypes.h:1086
Определения ModbusTypes.h:1133
static size_t szData()
Определения ModbusTypes.h:1164
ModbusData data
Определения ModbusTypes.h:1135
ModbusData start
Определения ModbusTypes.h:1134
void init(const ModbusMessage &m)
Определения ModbusTypes.cc:2550
ModbusMessage transport_msg() const
Определения ModbusTypes.cc:2579
void set(ModbusData start, ModbusData data)
Определения ModbusTypes.cc:2572