UniSet  1.4.0
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 // -------------------------------------------------------------------------