|
UniSet
2.6.0
|
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 //----------------------------------------------------------------------------- 00014 namespace uniset 00015 { 00016 // ------------------------------------------------------------------------- 00020 class ModbusRTUMaster: 00021 public ModbusClient 00022 { 00023 public: 00024 00025 ModbusRTUMaster( ComPort* com ); 00026 ModbusRTUMaster( const std::string& dev, bool use485 = false, bool tr_ctl = false ); 00027 virtual ~ModbusRTUMaster(); 00028 00029 virtual void cleanupChannel() override 00030 { 00031 if( port ) port->cleanupChannel(); 00032 } 00033 00034 void setSpeed( ComPort::Speed s ); 00035 void setSpeed( const std::string& s ); 00036 ComPort::Speed getSpeed(); 00037 00038 void setParity( ComPort::Parity parity ); 00039 void setCharacterSize( ComPort::CharacterSize csize ); 00040 void setStopBits( ComPort::StopBits sBit ); 00041 00042 int getTimeout(); 00043 00044 protected: 00045 00052 virtual size_t getNextData( unsigned char* buf, size_t len ) override; 00053 00055 virtual void setChannelTimeout( timeout_t msec ) override; 00056 00057 virtual ModbusRTU::mbErrCode sendData( unsigned char* buf, size_t len ) override; 00058 00060 virtual ModbusRTU::mbErrCode query( ModbusRTU::ModbusAddr addr, ModbusRTU::ModbusMessage& msg, 00061 ModbusRTU::ModbusMessage& reply, timeout_t timeout ) override; 00062 00063 00064 std::string dev; 00065 ComPort* port; 00066 bool myport; 00067 00068 private: 00069 }; 00070 // ------------------------------------------------------------------------- 00071 } // end of namespace uniset 00072 // ------------------------------------------------------------------------- 00073 #endif // ModbusRTUMaster_H_ 00074 // -------------------------------------------------------------------------
1.7.6.1