UniSet  2.24.2
MBTCPTestServer.h
1 #ifndef MBTCPTestServer_H_
2 #define MBTCPTestServer_H_
3 // -------------------------------------------------------------------------
4 #include <string>
5 #include <atomic>
6 #include <ostream>
7 #include <unordered_set>
8 #include "modbus/ModbusTCPServerSlot.h"
9 // -------------------------------------------------------------------------
12 {
13  public:
14  MBTCPTestServer( const std::unordered_set<uniset::ModbusRTU::ModbusAddr>& vaddr, const std::string& inetaddr, int port = 502, bool verbose = false );
15  ~MBTCPTestServer();
16 
17  inline void setVerbose( bool state )
18  {
19  verbose = state;
20  }
21 
22  inline void setReply( uint32_t val )
23  {
24  replyVal = val;
25  }
26 
27  void execute();
28  void setLog( std::shared_ptr<DebugStream> dlog );
29 
30  inline bool isRunning()
31  {
32  return ( sslot && sslot->isActive() );
33  }
34 
35  inline void disableExchange( bool set = true )
36  {
37  disabled = set;
38  }
39 
40  inline bool getForceSingleCoilCmd()
41  {
42  return forceSingleCoilCmd;
43  }
44  inline int16_t getLastWriteOutputSingleRegister()
45  {
46  return lastWriteOutputSingleRegister;
47  }
48  inline uniset::ModbusRTU::ForceCoilsMessage getLastForceCoilsQ()
49  {
50  return lastForceCoilsQ;
51  }
52  inline uniset::ModbusRTU::WriteOutputMessage getLastWriteOutput()
53  {
54  return lastWriteOutputQ;
55  }
56 
57  friend std::ostream& operator<<(std::ostream& os, const MBTCPTestServer* m );
58 
59  inline float getF2TestValue()
60  {
61  return f2_test_value;
62  }
63 
64  protected:
65  // действия при завершении работы
66  void sigterm( int signo );
67 
69  uniset::ModbusRTU::mbErrCode readCoilStatus( uniset::ModbusRTU::ReadCoilMessage& query,
72  uniset::ModbusRTU::mbErrCode readInputStatus( uniset::ModbusRTU::ReadInputStatusMessage& query,
74 
76  uniset::ModbusRTU::mbErrCode readOutputRegisters( uniset::ModbusRTU::ReadOutputMessage& query,
78 
80  uniset::ModbusRTU::mbErrCode readInputRegisters( uniset::ModbusRTU::ReadInputMessage& query,
82 
84  uniset::ModbusRTU::mbErrCode forceSingleCoil( uniset::ModbusRTU::ForceSingleCoilMessage& query,
86 
88  uniset::ModbusRTU::mbErrCode forceMultipleCoils( uniset::ModbusRTU::ForceCoilsMessage& query,
90 
91 
93  uniset::ModbusRTU::mbErrCode writeOutputRegisters( uniset::ModbusRTU::WriteOutputMessage& query,
95 
99 
100 
101  uniset::ModbusRTU::mbErrCode diagnostics( uniset::ModbusRTU::DiagnosticMessage& query,
103 
104  uniset::ModbusRTU::mbErrCode read4314( uniset::ModbusRTU::MEIMessageRDI& query,
106 
108  uniset::ModbusRTU::mbErrCode journalCommand( uniset::ModbusRTU::JournalCommandMessage& query,
110 
112  uniset::ModbusRTU::mbErrCode setDateTime( uniset::ModbusRTU::SetDateTimeMessage& query,
114 
116  uniset::ModbusRTU::mbErrCode remoteService( uniset::ModbusRTU::RemoteServiceMessage& query,
118 
119  uniset::ModbusRTU::mbErrCode fileTransfer( uniset::ModbusRTU::FileTransferMessage& query,
121 
122 
125  std::unordered_set<uniset::ModbusRTU::ModbusAddr> vaddr;
127  bool verbose;
128  uint32_t replyVal;
129  bool forceSingleCoilCmd;
130  int16_t lastWriteOutputSingleRegister;
131  uniset::ModbusRTU::ForceCoilsMessage lastForceCoilsQ;
132  uniset::ModbusRTU::WriteOutputMessage lastWriteOutputQ;
133  float f2_test_value = {0.0};
134 
135 #if 0
136  typedef std::map<uniset::ModbusRTU::mbErrCode, unsigned int> ExchangeErrorMap;
137  ExchangeErrorMap errmap;
138  uniset::ModbusRTU::mbErrCode prev;
139 
140 
141  // можно было бы сделать unsigned, но аналоговые датчики у нас имеют
142  // тип long. А это число передаётся в графику в виде аналогового датчика
143  long askCount;
146  typedef std::map<int, std::string> FileList;
147  FileList flist;
148 #endif
149 
150  private:
151  bool disabled;
152  std::string myname;
153 };
154 // -------------------------------------------------------------------------
155 #endif // MBTCPTestServer_H_
156 // -------------------------------------------------------------------------
Definition: MBTCPTestServer.h:12
uniset::ModbusRTU::mbErrCode writeOutputSingleRegister(uniset::ModbusRTU::WriteSingleOutputMessage &query, uniset::ModbusRTU::WriteSingleOutputRetMessage &reply)
Definition: MBTCPTestServer.cc:331
uniset::ModbusTCPServerSlot * sslot
Definition: MBTCPTestServer.h:124
uniset::ModbusRTU::mbErrCode remoteService(uniset::ModbusRTU::RemoteServiceMessage &query, uniset::ModbusRTU::RemoteServiceRetMessage &reply)
Definition: MBTCPTestServer.cc:417
uniset::ModbusRTU::mbErrCode writeOutputRegisters(uniset::ModbusRTU::WriteOutputMessage &query, uniset::ModbusRTU::WriteOutputRetMessage &reply)
Definition: MBTCPTestServer.cc:308
uniset::ModbusRTU::mbErrCode forceMultipleCoils(uniset::ModbusRTU::ForceCoilsMessage &query, uniset::ModbusRTU::ForceCoilsRetMessage &reply)
Definition: MBTCPTestServer.cc:293
uniset::ModbusRTU::mbErrCode readCoilStatus(uniset::ModbusRTU::ReadCoilMessage &query, uniset::ModbusRTU::ReadCoilRetMessage &reply)
Definition: MBTCPTestServer.cc:109
void execute()
Definition: MBTCPTestServer.cc:97
uniset::ModbusRTU::mbErrCode journalCommand(uniset::ModbusRTU::JournalCommandMessage &query, uniset::ModbusRTU::JournalCommandRetMessage &reply)
Definition: MBTCPTestServer.cc:362
uniset::ModbusRTU::mbErrCode setDateTime(uniset::ModbusRTU::SetDateTimeMessage &query, uniset::ModbusRTU::SetDateTimeRetMessage &reply)
Definition: MBTCPTestServer.cc:402
uniset::ModbusRTU::mbErrCode forceSingleCoil(uniset::ModbusRTU::ForceSingleCoilMessage &query, uniset::ModbusRTU::ForceSingleCoilRetMessage &reply)
Definition: MBTCPTestServer.cc:346
uniset::ModbusRTU::mbErrCode readInputStatus(uniset::ModbusRTU::ReadInputStatusMessage &query, uniset::ModbusRTU::ReadInputStatusRetMessage &reply)
Definition: MBTCPTestServer.cc:157
uniset::ModbusRTU::mbErrCode readInputRegisters(uniset::ModbusRTU::ReadInputMessage &query, uniset::ModbusRTU::ReadInputRetMessage &reply)
Definition: MBTCPTestServer.cc:205
std::unordered_set< uniset::ModbusRTU::ModbusAddr > vaddr
Definition: MBTCPTestServer.h:125
uniset::ModbusRTU::mbErrCode readOutputRegisters(uniset::ModbusRTU::ReadOutputMessage &query, uniset::ModbusRTU::ReadOutputRetMessage &reply)
Definition: MBTCPTestServer.cc:250
Definition: ModbusTCPServerSlot.h:16
Definition: ModbusTypes.h:1118
Definition: ModbusTypes.h:1176
Definition: ModbusTypes.h:1575
Definition: ModbusTypes.h:1603
Definition: ModbusTypes.h:727
Definition: ModbusTypes.h:804
Definition: ModbusTypes.h:937
Definition: ModbusTypes.h:1310
Definition: ModbusTypes.h:1333
Definition: ModbusTypes.h:1188
Definition: ModbusTypes.h:1243
Definition: ModbusTypes.h:347
Definition: ModbusTypes.h:378
Definition: ModbusTypes.h:636
Definition: ModbusTypes.h:666
Definition: ModbusTypes.h:447
Definition: ModbusTypes.h:548
Definition: ModbusTypes.h:577
Definition: ModbusTypes.h:1456
Definition: ModbusTypes.h:1489
Definition: ModbusTypes.h:1398
Definition: ModbusTypes.h:1436
Definition: ModbusTypes.h:844
Definition: ModbusTypes.h:898
Definition: ModbusTypes.h:1033