UniSet  1.4.0
ModbusRTUMaster.h
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 // -------------------------------------------------------------------------