UniSet  2.24.2
MBTCPServer.h
1 #ifndef MBTCPServer_H_
2 #define MBTCPServer_H_
3 // -------------------------------------------------------------------------
4 #include <unordered_set>
5 #include <string>
6 #include "modbus/ModbusTCPServerSlot.h"
7 
8 // -------------------------------------------------------------------------
11 {
12  public:
13  MBTCPServer( const std::unordered_set<uniset::ModbusRTU::ModbusAddr>& myaddr, const std::string& inetaddr, int port = 502, bool verbose = false );
14  ~MBTCPServer();
15 
16  inline void setVerbose( bool state )
17  {
18  verbose = state;
19  }
20 
21  inline void setReply( long val )
22  {
23  replyVal = val;
24  }
25 
26  inline uniset::timeout_t setAfterSendPause( uniset::timeout_t msec )
27  {
28  return sslot->setAfterSendPause(msec);
29  }
30 
31  void execute();
32  void setLog( std::shared_ptr<DebugStream>& dlog );
33 
34  void setMaxSessions( size_t max );
35 
36  protected:
37  // действия при завершении работы
38  void sigterm( int signo );
39 
41  uniset::ModbusRTU::mbErrCode readCoilStatus( uniset::ModbusRTU::ReadCoilMessage& query,
44  uniset::ModbusRTU::mbErrCode readInputStatus( uniset::ModbusRTU::ReadInputStatusMessage& query,
46 
48  uniset::ModbusRTU::mbErrCode readOutputRegisters( uniset::ModbusRTU::ReadOutputMessage& query,
50 
52  uniset::ModbusRTU::mbErrCode readInputRegisters( uniset::ModbusRTU::ReadInputMessage& query,
54 
56  uniset::ModbusRTU::mbErrCode forceSingleCoil( uniset::ModbusRTU::ForceSingleCoilMessage& query,
58 
60  uniset::ModbusRTU::mbErrCode forceMultipleCoils( uniset::ModbusRTU::ForceCoilsMessage& query,
62 
63 
65  uniset::ModbusRTU::mbErrCode writeOutputRegisters( uniset::ModbusRTU::WriteOutputMessage& query,
67 
71 
72 
73  uniset::ModbusRTU::mbErrCode diagnostics( uniset::ModbusRTU::DiagnosticMessage& query,
75 
76  uniset::ModbusRTU::mbErrCode read4314( uniset::ModbusRTU::MEIMessageRDI& query,
78 
80  uniset::ModbusRTU::mbErrCode journalCommand( uniset::ModbusRTU::JournalCommandMessage& query,
82 
84  uniset::ModbusRTU::mbErrCode setDateTime( uniset::ModbusRTU::SetDateTimeMessage& query,
86 
88  uniset::ModbusRTU::mbErrCode remoteService( uniset::ModbusRTU::RemoteServiceMessage& query,
90 
91  uniset::ModbusRTU::mbErrCode fileTransfer( uniset::ModbusRTU::FileTransferMessage& query,
93 
94 
97  std::unordered_set<uniset::ModbusRTU::ModbusAddr> vaddr;
99  bool verbose = { false };
100  long replyVal = { -1 };
101 #if 0
102  typedef std::unordered_map<uniset::ModbusRTU::mbErrCode, unsigned int> ExchangeErrorMap;
103  ExchangeErrorMap errmap;
104  uniset::ModbusRTU::mbErrCode prev;
105 
106 
107  // можно было бы сделать unsigned, но аналоговые датчики у нас имеют
108  // тип long. А это число передаётся в графику в виде аналогового датчика
109  long askCount;
112  typedef std::unordered_map<int, std::string> FileList;
113  FileList flist;
114 #endif
115 
116  private:
117 
118 };
119 // -------------------------------------------------------------------------
120 #endif // MBTCPServer_H_
121 // -------------------------------------------------------------------------
Definition: MBTCPServer.h:11
uniset::ModbusRTU::mbErrCode readOutputRegisters(uniset::ModbusRTU::ReadOutputMessage &query, uniset::ModbusRTU::ReadOutputRetMessage &reply)
Definition: MBTester/mbtcpserver.cc:210
uniset::ModbusRTU::mbErrCode readCoilStatus(uniset::ModbusRTU::ReadCoilMessage &query, uniset::ModbusRTU::ReadCoilRetMessage &reply)
Definition: MBTester/mbtcpserver.cc:85
uniset::ModbusRTU::mbErrCode writeOutputRegisters(uniset::ModbusRTU::WriteOutputMessage &query, uniset::ModbusRTU::WriteOutputRetMessage &reply)
Definition: MBTester/mbtcpserver.cc:261
uniset::ModbusRTU::mbErrCode remoteService(uniset::ModbusRTU::RemoteServiceMessage &query, uniset::ModbusRTU::RemoteServiceRetMessage &reply)
Definition: MBTester/mbtcpserver.cc:345
uniset::ModbusRTU::mbErrCode setDateTime(uniset::ModbusRTU::SetDateTimeMessage &query, uniset::ModbusRTU::SetDateTimeRetMessage &reply)
Definition: MBTester/mbtcpserver.cc:333
void execute()
Definition: MBTester/mbtcpserver.cc:76
uniset::ModbusRTU::mbErrCode journalCommand(uniset::ModbusRTU::JournalCommandMessage &query, uniset::ModbusRTU::JournalCommandRetMessage &reply)
Definition: MBTester/mbtcpserver.cc:296
uniset::ModbusRTU::mbErrCode writeOutputSingleRegister(uniset::ModbusRTU::WriteSingleOutputMessage &query, uniset::ModbusRTU::WriteSingleOutputRetMessage &reply)
Definition: MBTester/mbtcpserver.cc:273
uniset::ModbusRTU::mbErrCode readInputRegisters(uniset::ModbusRTU::ReadInputMessage &query, uniset::ModbusRTU::ReadInputRetMessage &reply)
Definition: MBTester/mbtcpserver.cc:168
uniset::ModbusRTU::mbErrCode forceSingleCoil(uniset::ModbusRTU::ForceSingleCoilMessage &query, uniset::ModbusRTU::ForceSingleCoilRetMessage &reply)
Definition: MBTester/mbtcpserver.cc:284
uniset::ModbusRTU::mbErrCode forceMultipleCoils(uniset::ModbusRTU::ForceCoilsMessage &query, uniset::ModbusRTU::ForceCoilsRetMessage &reply)
Definition: MBTester/mbtcpserver.cc:250
std::unordered_set< uniset::ModbusRTU::ModbusAddr > vaddr
Definition: MBTCPServer.h:97
uniset::ModbusRTU::mbErrCode readInputStatus(uniset::ModbusRTU::ReadInputStatusMessage &query, uniset::ModbusRTU::ReadInputStatusRetMessage &reply)
Definition: MBTester/mbtcpserver.cc:130
uniset::ModbusTCPServerSlot * sslot
Definition: MBTCPServer.h:96
timeout_t setAfterSendPause(timeout_t msec)
Definition: ModbusServer.cc:115
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