UniSet @VERSION@
ModbusTCPTestServer.h
1/*
2 * Simplified ModbusTCPServer helper for tests (based on Utilities/MBTester).
3 */
4#ifndef TESTS_MODBUS_TCP_TEST_SERVER_H_
5#define TESTS_MODBUS_TCP_TEST_SERVER_H_
6
7#include <unordered_set>
8#include <string>
9#include <random>
10#include "modbus/ModbusTCPServerSlot.h"
11
12namespace uniset
13{
15 {
16 public:
17 ModbusTCPServerTest( const std::unordered_set<ModbusRTU::ModbusAddr>& myaddr,
18 const std::string& inetaddr,
19 int port = 502,
20 bool verbose = false );
22
23 void setVerbose( bool state );
24 void setReply( long val );
25 void setRandomReply( long min, long max );
26 void setFreezeReply( const std::unordered_map<uint16_t, uint16_t>& );
27 void setMaxSessions( size_t max );
28
29 bool execute();
30 void stop();
31 bool isActive() const;
32
33 protected:
34 ModbusRTU::mbErrCode readCoilStatus( const ModbusRTU::ReadCoilMessage& query,
36 ModbusRTU::mbErrCode readInputStatus( const ModbusRTU::ReadInputStatusMessage& query,
38 ModbusRTU::mbErrCode readOutputRegisters( const ModbusRTU::ReadOutputMessage& query,
40 ModbusRTU::mbErrCode readInputRegisters( const ModbusRTU::ReadInputMessage& query,
42 ModbusRTU::mbErrCode forceSingleCoil( const ModbusRTU::ForceSingleCoilMessage& query,
44 ModbusRTU::mbErrCode forceMultipleCoils( const ModbusRTU::ForceCoilsMessage& query,
46 ModbusRTU::mbErrCode writeOutputRegisters( const ModbusRTU::WriteOutputMessage& query,
48 ModbusRTU::mbErrCode writeOutputSingleRegister( const ModbusRTU::WriteSingleOutputMessage& query,
50 ModbusRTU::mbErrCode diagnostics( const ModbusRTU::DiagnosticMessage& query,
52 ModbusRTU::mbErrCode read4314( const ModbusRTU::MEIMessageRDI& query,
54 ModbusRTU::mbErrCode journalCommand( const ModbusRTU::JournalCommandMessage& query,
56 ModbusRTU::mbErrCode setDateTime( const ModbusRTU::SetDateTimeMessage& query,
58 ModbusRTU::mbErrCode remoteService( const ModbusRTU::RemoteServiceMessage& query,
60 ModbusRTU::mbErrCode fileTransfer( const ModbusRTU::FileTransferMessage& query,
62
64 std::unordered_set<ModbusRTU::ModbusAddr> vaddr;
65 bool verbose;
66 long replyVal;
67 std::unordered_map<uint16_t, uint16_t> reglist;
68 std::random_device rnd;
69 std::unique_ptr<std::mt19937> gen;
70 std::unique_ptr<std::uniform_int_distribution<>> rndgen;
71 };
72} // namespace uniset
73
74#endif // TESTS_MODBUS_TCP_TEST_SERVER_H_
Definition ModbusTCPServerSlot.h:16
Definition ModbusTCPTestServer.h:15
Definition AccessConfig.h:30
Definition ModbusTypes.h:1176
Definition ModbusTypes.h:1238
Definition ModbusTypes.h:1665
Definition ModbusTypes.h:1698
Definition ModbusTypes.h:764
Definition ModbusTypes.h:842
Definition ModbusTypes.h:984
Definition ModbusTypes.h:1380
Definition ModbusTypes.h:1405
Definition ModbusTypes.h:1250
Definition ModbusTypes.h:1310
Definition ModbusTypes.h:422
Definition ModbusTypes.h:458
Definition ModbusTypes.h:665
Definition ModbusTypes.h:699
Definition ModbusTypes.h:495
Definition ModbusTypes.h:569
Definition ModbusTypes.h:602
Definition ModbusTypes.h:1538
Definition ModbusTypes.h:1573
Definition ModbusTypes.h:1474
Definition ModbusTypes.h:1515
Definition ModbusTypes.h:886
Definition ModbusTypes.h:941
Definition ModbusTypes.h:1085