UniSet  2.8.0
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  virtual void cleanupChannel() override
39  {
40  if(port) port->cleanupChannel();
41  }
42 
43  virtual void terminate() override;
44  virtual bool isActive() const override;
45 
46  protected:
47 
48  virtual ModbusRTU::mbErrCode realReceive( const std::unordered_set<ModbusRTU::ModbusAddr>& vmbaddr, timeout_t msecTimeout ) override;
49 
50  // realisation (see ModbusServer.h)
51  virtual size_t getNextData( unsigned char* buf, int len ) override;
52  virtual void setChannelTimeout( timeout_t msec ) override;
53  virtual ModbusRTU::mbErrCode sendData( unsigned char* buf, int len ) override;
54 
55  std::string dev;
57  bool myport;
58 
59  private:
60 
61  };
62  // -------------------------------------------------------------------------
63 } // end of namespace uniset
64 // -------------------------------------------------------------------------
65 #endif // ModbusRTUSlave_H_
66 // -------------------------------------------------------------------------
Definition: CommonEventLoop.h:14
virtual ModbusRTU::mbErrCode realReceive(const std::unordered_set< ModbusRTU::ModbusAddr > &vmbaddr, timeout_t msecTimeout) override
Definition: ModbusRTUSlave.cc:154
ComPort * port
Definition: ModbusRTUSlave.h:56
Definition: ComPort.h:29
virtual void setChannelTimeout(timeout_t msec) override
Definition: ModbusRTUSlave.cc:116
Definition: ModbusServer.h:32
std::string dev
Definition: ModbusRTUSlave.h:55
Definition: ModbusRTUSlave.h:26
virtual size_t getNextData(unsigned char *buf, int len) override
Definition: ModbusRTUSlave.cc:110