UniSet 2.32.1
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// -------------------------------------------------------------------------
15namespace 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 Calibration.h:27