ModbusTCPServerSlot.h
00001
00002 #ifndef ModbusTCPServerSlot_H_
00003 #define ModbusTCPServerSlot_H_
00004
00005 #include <string>
00006 #include <cc++/socket.h>
00007 #include "ModbusTCPServer.h"
00008 #include "ModbusServerSlot.h"
00009
00011 class ModbusTCPServerSlot:
00012 public ModbusServerSlot,
00013 public ModbusTCPServer
00014 {
00015 public:
00016 ModbusTCPServerSlot( ost::InetAddress &ia, int port=502 );
00017 virtual ~ModbusTCPServerSlot();
00018
00019 virtual void sigterm( int signo );
00020
00021 protected:
00022
00023 virtual ModbusRTU::mbErrCode readCoilStatus( ModbusRTU::ReadCoilMessage& query,
00024 ModbusRTU::ReadCoilRetMessage& reply );
00025
00026 virtual ModbusRTU::mbErrCode readInputStatus( ModbusRTU::ReadInputStatusMessage& query,
00027 ModbusRTU::ReadInputStatusRetMessage& reply );
00028
00029 virtual ModbusRTU::mbErrCode readOutputRegisters( ModbusRTU::ReadOutputMessage& query,
00030 ModbusRTU::ReadOutputRetMessage& reply );
00031
00032 virtual ModbusRTU::mbErrCode readInputRegisters( ModbusRTU::ReadInputMessage& query,
00033 ModbusRTU::ReadInputRetMessage& reply );
00034
00035 virtual ModbusRTU::mbErrCode forceSingleCoil( ModbusRTU::ForceSingleCoilMessage& query,
00036 ModbusRTU::ForceSingleCoilRetMessage& reply );
00037
00038 virtual ModbusRTU::mbErrCode writeOutputSingleRegister( ModbusRTU::WriteSingleOutputMessage& query,
00039 ModbusRTU::WriteSingleOutputRetMessage& reply );
00040
00041 virtual ModbusRTU::mbErrCode forceMultipleCoils( ModbusRTU::ForceCoilsMessage& query,
00042 ModbusRTU::ForceCoilsRetMessage& reply );
00043
00044 virtual ModbusRTU::mbErrCode writeOutputRegisters( ModbusRTU::WriteOutputMessage& query,
00045 ModbusRTU::WriteOutputRetMessage& reply );
00046
00047 virtual ModbusRTU::mbErrCode diagnostics( ModbusRTU::DiagnosticMessage& query,
00048 ModbusRTU::DiagnosticRetMessage& reply );
00049
00050 virtual ModbusRTU::mbErrCode journalCommand( ModbusRTU::JournalCommandMessage& query,
00051 ModbusRTU::JournalCommandRetMessage& reply );
00052
00053 virtual ModbusRTU::mbErrCode setDateTime( ModbusRTU::SetDateTimeMessage& query,
00054 ModbusRTU::SetDateTimeRetMessage& reply );
00055
00056 virtual ModbusRTU::mbErrCode remoteService( ModbusRTU::RemoteServiceMessage& query,
00057 ModbusRTU::RemoteServiceRetMessage& reply );
00058
00059 virtual ModbusRTU::mbErrCode fileTransfer( ModbusRTU::FileTransferMessage& query,
00060 ModbusRTU::FileTransferRetMessage& reply );
00061
00062 private:
00063
00064 };
00065
00066 #endif // ModbusTCPServerSlot_H_
00067