UniSet  2.6.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 // -------------------------------------------------------------------------
00010 namespace uniset
00011 {
00012 
00018 class ModbusRTUSlaveSlot:
00019     public ModbusRTUSlave,
00020     public ModbusServerSlot
00021 {
00022     public:
00023         ModbusRTUSlaveSlot( ComPort* com );
00024         ModbusRTUSlaveSlot( const std::string& dev, bool use485 = false, bool tr_ctl = false );
00025         virtual ~ModbusRTUSlaveSlot();
00026 
00027         virtual void sigterm( int signo );
00028 
00029         inline ComPort* getComPort()
00030         {
00031             return port;
00032         }
00033 
00034     protected:
00035 
00036         virtual ModbusRTU::mbErrCode readCoilStatus( ModbusRTU::ReadCoilMessage& query,
00037                                                      ModbusRTU::ReadCoilRetMessage& reply );
00038 
00039         virtual ModbusRTU::mbErrCode readInputStatus( ModbusRTU::ReadInputStatusMessage& query,
00040                                                       ModbusRTU::ReadInputStatusRetMessage& reply );
00041 
00042         virtual ModbusRTU::mbErrCode readOutputRegisters( ModbusRTU::ReadOutputMessage& query,
00043                                                           ModbusRTU::ReadOutputRetMessage& reply );
00044 
00045         virtual ModbusRTU::mbErrCode readInputRegisters( ModbusRTU::ReadInputMessage& query,
00046                                                          ModbusRTU::ReadInputRetMessage& reply );
00047 
00048         virtual ModbusRTU::mbErrCode forceSingleCoil( ModbusRTU::ForceSingleCoilMessage& query,
00049                                                       ModbusRTU::ForceSingleCoilRetMessage& reply );
00050 
00051         virtual ModbusRTU::mbErrCode writeOutputSingleRegister( ModbusRTU::WriteSingleOutputMessage& query,
00052                 ModbusRTU::WriteSingleOutputRetMessage& reply );
00053 
00054         virtual ModbusRTU::mbErrCode forceMultipleCoils( ModbusRTU::ForceCoilsMessage& query,
00055                                                          ModbusRTU::ForceCoilsRetMessage& reply );
00056 
00057         virtual ModbusRTU::mbErrCode writeOutputRegisters( ModbusRTU::WriteOutputMessage& query,
00058                 ModbusRTU::WriteOutputRetMessage& reply );
00059 
00060         virtual ModbusRTU::mbErrCode diagnostics( ModbusRTU::DiagnosticMessage& query,
00061                                                   ModbusRTU::DiagnosticRetMessage& reply );
00062 
00063         virtual ModbusRTU::mbErrCode read4314( ModbusRTU::MEIMessageRDI& query,
00064                                                ModbusRTU::MEIMessageRetRDI& reply );
00065 
00066         virtual ModbusRTU::mbErrCode journalCommand( ModbusRTU::JournalCommandMessage& query,
00067                                                      ModbusRTU::JournalCommandRetMessage& reply );
00068 
00069         virtual ModbusRTU::mbErrCode setDateTime( ModbusRTU::SetDateTimeMessage& query,
00070                                                   ModbusRTU::SetDateTimeRetMessage& reply );
00071 
00072         virtual ModbusRTU::mbErrCode remoteService( ModbusRTU::RemoteServiceMessage& query,
00073                                                     ModbusRTU::RemoteServiceRetMessage& reply );
00074 
00075         virtual ModbusRTU::mbErrCode fileTransfer( ModbusRTU::FileTransferMessage& query,
00076                                                    ModbusRTU::FileTransferRetMessage& reply );
00077 
00078     private:
00079 };
00080 // -------------------------------------------------------------------------
00081 } // end of namespace uniset
00082 // -------------------------------------------------------------------------
00083 #endif // ModbusRTUSlaveSlot_H_
00084 // -------------------------------------------------------------------------