|
UniSet
2.6.0
|
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 // -------------------------------------------------------------------------
1.7.6.1