UniSet  2.24.2
ModbusRTUSlave.h
1 // -------------------------------------------------------------------------
2 #ifndef ModbusRTUSlave_H_
3 #define ModbusRTUSlave_H_
4 // -------------------------------------------------------------------------
5 #include <string>
6 #include <unordered_set>
7 #include "Mutex.h"
8 #include "Debug.h"
9 #include "Configuration.h"
10 #include "PassiveTimer.h"
11 #include "ComPort.h"
12 #include "ModbusTypes.h"
13 #include "ModbusServer.h"
14 // -------------------------------------------------------------------------
15 namespace uniset
16 {
27  public ModbusServer
28  {
29  public:
30  ModbusRTUSlave( const std::string& dev, bool use485 = false, bool tr_ctl = false );
31  ModbusRTUSlave( ComPort* com );
32  virtual ~ModbusRTUSlave();
33 
34  void setSpeed( ComPort::Speed s );
35  void setSpeed( const std::string& s );
36  ComPort::Speed getSpeed();
37 
38  void setParity( ComPort::Parity p );
39  void setParity( const std::string& p );
40 
41  void setStopBits( ComPort::StopBits b );
42  void setCharSize( ComPort::CharacterSize s );
43 
44  virtual void cleanupChannel() override
45  {
46  if(port) port->cleanupChannel();
47  }
48 
49  virtual void terminate() override;
50  virtual bool isActive() const override;
51 
52  protected:
53 
54  virtual ModbusRTU::mbErrCode realReceive( const std::unordered_set<ModbusRTU::ModbusAddr>& vmbaddr, timeout_t msecTimeout ) override;
55 
56  // realisation (see ModbusServer.h)
57  virtual size_t getNextData( unsigned char* buf, int len ) override;
58  virtual void setChannelTimeout( timeout_t msec ) override;
59  virtual ModbusRTU::mbErrCode sendData( unsigned char* buf, int len ) override;
60 
61  std::string dev;
63  bool myport;
64 
65  private:
66 
67  };
68  // -------------------------------------------------------------------------
69 } // end of namespace uniset
70 // -------------------------------------------------------------------------
71 #endif // ModbusRTUSlave_H_
72 // -------------------------------------------------------------------------
Definition: ComPort.h:30
Definition: ModbusRTUSlave.h:28
virtual void setChannelTimeout(timeout_t msec) override
Definition: ModbusRTUSlave.cc:138
std::string dev
Definition: ModbusRTUSlave.h:61
ComPort * port
Definition: ModbusRTUSlave.h:62
virtual size_t getNextData(unsigned char *buf, int len) override
Definition: ModbusRTUSlave.cc:132
virtual ModbusRTU::mbErrCode realReceive(const std::unordered_set< ModbusRTU::ModbusAddr > &vmbaddr, timeout_t msecTimeout) override
Definition: ModbusRTUSlave.cc:176
Definition: ModbusServer.h:33
Definition: CommonEventLoop.h:15