ModbusRTUSlaveSlot.h
00001
00002 #ifndef ModbusRTUSlaveSlot_H_
00003 #define ModbusRTUSlaveSlot_H_
00004
00005 #include <string>
00006 #include <sigc++/sigc++.h>
00007 #include "ModbusRTUSlave.h"
00008 #include "ModbusServerSlot.h"
00009
00015 class ModbusRTUSlaveSlot:
00016 public ModbusRTUSlave,
00017 public ModbusServerSlot
00018 {
00019 public:
00020 ModbusRTUSlaveSlot( ComPort* com );
00021 ModbusRTUSlaveSlot( const std::string dev, bool use485=false, bool tr_ctl=false );
00022 virtual ~ModbusRTUSlaveSlot();
00023
00024 virtual void sigterm( int signo );
00025
00026 inline ComPort* getComPort(){ return port; }
00027
00028 protected:
00029
00030 virtual ModbusRTU::mbErrCode readCoilStatus( ModbusRTU::ReadCoilMessage& query,
00031 ModbusRTU::ReadCoilRetMessage& reply );
00032
00033 virtual ModbusRTU::mbErrCode readInputStatus( ModbusRTU::ReadInputStatusMessage& query,
00034 ModbusRTU::ReadInputStatusRetMessage& reply );
00035
00036 virtual ModbusRTU::mbErrCode readOutputRegisters( ModbusRTU::ReadOutputMessage& query,
00037 ModbusRTU::ReadOutputRetMessage& reply );
00038
00039 virtual ModbusRTU::mbErrCode readInputRegisters( ModbusRTU::ReadInputMessage& query,
00040 ModbusRTU::ReadInputRetMessage& reply );
00041
00042 virtual ModbusRTU::mbErrCode forceSingleCoil( ModbusRTU::ForceSingleCoilMessage& query,
00043 ModbusRTU::ForceSingleCoilRetMessage& reply );
00044
00045 virtual ModbusRTU::mbErrCode writeOutputSingleRegister( ModbusRTU::WriteSingleOutputMessage& query,
00046 ModbusRTU::WriteSingleOutputRetMessage& reply );
00047
00048 virtual ModbusRTU::mbErrCode forceMultipleCoils( ModbusRTU::ForceCoilsMessage& query,
00049 ModbusRTU::ForceCoilsRetMessage& reply );
00050
00051 virtual ModbusRTU::mbErrCode writeOutputRegisters( ModbusRTU::WriteOutputMessage& query,
00052 ModbusRTU::WriteOutputRetMessage& reply );
00053
00054 virtual ModbusRTU::mbErrCode diagnostics( ModbusRTU::DiagnosticMessage& query,
00055 ModbusRTU::DiagnosticRetMessage& reply );
00056
00057 virtual ModbusRTU::mbErrCode journalCommand( ModbusRTU::JournalCommandMessage& query,
00058 ModbusRTU::JournalCommandRetMessage& reply );
00059
00060 virtual ModbusRTU::mbErrCode setDateTime( ModbusRTU::SetDateTimeMessage& query,
00061 ModbusRTU::SetDateTimeRetMessage& reply );
00062
00063 virtual ModbusRTU::mbErrCode remoteService( ModbusRTU::RemoteServiceMessage& query,
00064 ModbusRTU::RemoteServiceRetMessage& reply );
00065
00066 virtual ModbusRTU::mbErrCode fileTransfer( ModbusRTU::FileTransferMessage& query,
00067 ModbusRTU::FileTransferRetMessage& reply );
00068
00069 private:
00070 };
00071
00072 #endif // ModbusRTUSlaveSlot_H_
00073