UniSet  2.7.0
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: ModbusTypes.h:1436
Definition: ModbusTypes.h:1013
Definition: ModbusTypes.h:824
Definition: ModbusTypes.h:1469
timeout_t setAfterSendPause(timeout_t msec)
Definition: ModbusServer.cc:115
uniset::ModbusRTU::mbErrCode journalCommand(uniset::ModbusRTU::JournalCommandMessage &query, uniset::ModbusRTU::JournalCommandRetMessage &reply)
Definition: mbtcpserver.cc:296
Definition: ModbusTypes.h:327
uniset::ModbusRTU::mbErrCode readCoilStatus(uniset::ModbusRTU::ReadCoilMessage &query, uniset::ModbusRTU::ReadCoilRetMessage &reply)
Definition: mbtcpserver.cc:85
Definition: ModbusTypes.h:784
uniset::ModbusRTU::mbErrCode writeOutputSingleRegister(uniset::ModbusRTU::WriteSingleOutputMessage &query, uniset::ModbusRTU::WriteSingleOutputRetMessage &reply)
Definition: mbtcpserver.cc:273
Definition: ModbusTypes.h:878
void execute()
Definition: mbtcpserver.cc:76
Definition: ModbusTypes.h:1555
Definition: ModbusTypes.h:1098
Definition: ModbusTypes.h:1168
Definition: ModbusTypes.h:646
Definition: ModbusTCPServerSlot.h:13
Definition: ModbusTypes.h:1583
Definition: ModbusTypes.h:1156
uniset::ModbusRTU::mbErrCode forceSingleCoil(uniset::ModbusRTU::ForceSingleCoilMessage &query, uniset::ModbusRTU::ForceSingleCoilRetMessage &reply)
Definition: mbtcpserver.cc:284
Definition: MBTCPServer.h:10
uniset::ModbusRTU::mbErrCode readOutputRegisters(uniset::ModbusRTU::ReadOutputMessage &query, uniset::ModbusRTU::ReadOutputRetMessage &reply)
Definition: mbtcpserver.cc:210
uniset::ModbusRTU::mbErrCode forceMultipleCoils(uniset::ModbusRTU::ForceCoilsMessage &query, uniset::ModbusRTU::ForceCoilsRetMessage &reply)
Definition: mbtcpserver.cc:250
uniset::ModbusRTU::mbErrCode writeOutputRegisters(uniset::ModbusRTU::WriteOutputMessage &query, uniset::ModbusRTU::WriteOutputRetMessage &reply)
Definition: mbtcpserver.cc:261
uniset::ModbusRTU::mbErrCode readInputRegisters(uniset::ModbusRTU::ReadInputMessage &query, uniset::ModbusRTU::ReadInputRetMessage &reply)
Definition: mbtcpserver.cc:168
Definition: ModbusTypes.h:358
uniset::ModbusRTU::mbErrCode setDateTime(uniset::ModbusRTU::SetDateTimeMessage &query, uniset::ModbusRTU::SetDateTimeRetMessage &reply)
Definition: mbtcpserver.cc:333
Definition: ModbusTypes.h:427
uniset::ModbusRTU::mbErrCode readInputStatus(uniset::ModbusRTU::ReadInputStatusMessage &query, uniset::ModbusRTU::ReadInputStatusRetMessage &reply)
Definition: mbtcpserver.cc:130
Definition: ModbusTypes.h:1223
Definition: ModbusTypes.h:707
uniset::ModbusTCPServerSlot * sslot
Definition: MBTCPServer.h:96
Definition: ModbusTypes.h:1290
Definition: ModbusTypes.h:616
Definition: ModbusTypes.h:557
Definition: ModbusTypes.h:528
Definition: ModbusTypes.h:1378
Definition: ModbusTypes.h:917
std::unordered_set< uniset::ModbusRTU::ModbusAddr > vaddr
Definition: MBTCPServer.h:97
Definition: ModbusTypes.h:1416
uniset::ModbusRTU::mbErrCode remoteService(uniset::ModbusRTU::RemoteServiceMessage &query, uniset::ModbusRTU::RemoteServiceRetMessage &reply)
Definition: mbtcpserver.cc:345
Definition: ModbusTypes.h:1313