UniSet
1.4.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 // ------------------------------------------------------------------------- 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(){ if( port ) port->cleanupChannel(); } 00027 00028 void setSpeed( ComPort::Speed s ); 00029 void setSpeed( const std::string s ); 00030 ComPort::Speed getSpeed(); 00031 00032 void setParity( ComPort::Parity parity ); 00033 void setCharacterSize( ComPort::CharacterSize csize ); 00034 void setStopBits( ComPort::StopBits sBit ); 00035 00036 int getTimeout(); 00037 00038 protected: 00039 00046 virtual int getNextData( unsigned char* buf, int len ); 00047 00049 virtual void setChannelTimeout( timeout_t msec ); 00050 00051 virtual ModbusRTU::mbErrCode sendData( unsigned char* buf, int len ); 00052 00054 virtual ModbusRTU::mbErrCode query( ModbusRTU::ModbusAddr addr, ModbusRTU::ModbusMessage& msg, 00055 ModbusRTU::ModbusMessage& reply, timeout_t timeout ); 00056 00057 00058 std::string dev; 00059 ComPort* port; 00060 bool myport; 00061 00062 private: 00063 }; 00064 // ------------------------------------------------------------------------- 00065 #endif // ModbusRTUMaster_H_ 00066 // -------------------------------------------------------------------------