|
UniSet
2.2.1
|
00001 // ------------------------------------------------------------------------- 00002 #ifndef ModbusRTUMaster_H_ 00003 #define ModbusRTUMaster_H_ 00004 // ------------------------------------------------------------------------- 00005 #include <string> 00006 #include "Mutex.h" 00007 #include "Debug.h" 00008 #include "Configuration.h" 00009 #include "PassiveTimer.h" 00010 #include "ComPort.h" 00011 #include "ModbusTypes.h" 00012 #include "ModbusClient.h" 00013 // ------------------------------------------------------------------------- 00017 class ModbusRTUMaster: 00018 public ModbusClient 00019 { 00020 public: 00021 00022 ModbusRTUMaster( ComPort* com ); 00023 ModbusRTUMaster( const std::string& dev, bool use485 = false, bool tr_ctl = false ); 00024 virtual ~ModbusRTUMaster(); 00025 00026 virtual void cleanupChannel() override 00027 { 00028 if( port ) port->cleanupChannel(); 00029 } 00030 00031 void setSpeed( ComPort::Speed s ); 00032 void setSpeed( const std::string& s ); 00033 ComPort::Speed getSpeed(); 00034 00035 void setParity( ComPort::Parity parity ); 00036 void setCharacterSize( ComPort::CharacterSize csize ); 00037 void setStopBits( ComPort::StopBits sBit ); 00038 00039 int getTimeout(); 00040 00041 protected: 00042 00049 virtual size_t getNextData( unsigned char* buf, int len ) override; 00050 00052 virtual void setChannelTimeout( timeout_t msec ) override; 00053 00054 virtual ModbusRTU::mbErrCode sendData( unsigned char* buf, int len ) override; 00055 00057 virtual ModbusRTU::mbErrCode query( ModbusRTU::ModbusAddr addr, ModbusRTU::ModbusMessage& msg, 00058 ModbusRTU::ModbusMessage& reply, timeout_t timeout ) override; 00059 00060 00061 std::string dev; 00062 ComPort* port; 00063 bool myport; 00064 00065 private: 00066 }; 00067 // ------------------------------------------------------------------------- 00068 #endif // ModbusRTUMaster_H_ 00069 // -------------------------------------------------------------------------
1.7.6.1