ModbusServerSlot.h
00001
00002 #ifndef ModbusServerSlot_H_
00003 #define ModbusServerSlot_H_
00004
00005 #include <sigc++/sigc++.h>
00006 #include "ModbusTypes.h"
00007 #include "ModbusServer.h"
00008
00010 class ModbusServerSlot
00011 {
00012 public:
00013 ModbusServerSlot();
00014 virtual ~ModbusServerSlot();
00015
00016 typedef sigc::slot<ModbusRTU::mbErrCode,
00017 ModbusRTU::ReadCoilMessage&,
00018 ModbusRTU::ReadCoilRetMessage&> ReadCoilSlot;
00019
00020 typedef sigc::slot<ModbusRTU::mbErrCode,
00021 ModbusRTU::ReadInputStatusMessage&,
00022 ModbusRTU::ReadInputStatusRetMessage&> ReadInputStatusSlot;
00023
00024 typedef sigc::slot<ModbusRTU::mbErrCode,
00025 ModbusRTU::ReadOutputMessage&,
00026 ModbusRTU::ReadOutputRetMessage&> ReadOutputSlot;
00027
00028 typedef sigc::slot<ModbusRTU::mbErrCode,
00029 ModbusRTU::ReadInputMessage&,
00030 ModbusRTU::ReadInputRetMessage&> ReadInputSlot;
00031
00032 typedef sigc::slot<ModbusRTU::mbErrCode,
00033 ModbusRTU::ForceSingleCoilMessage&,
00034 ModbusRTU::ForceSingleCoilRetMessage&> ForceSingleCoilSlot;
00035
00036 typedef sigc::slot<ModbusRTU::mbErrCode,
00037 ModbusRTU::WriteSingleOutputMessage&,
00038 ModbusRTU::WriteSingleOutputRetMessage&> WriteSingleOutputSlot;
00039
00040 typedef sigc::slot<ModbusRTU::mbErrCode,
00041 ModbusRTU::ForceCoilsMessage&,
00042 ModbusRTU::ForceCoilsRetMessage&> ForceCoilsSlot;
00043
00044 typedef sigc::slot<ModbusRTU::mbErrCode,
00045 ModbusRTU::WriteOutputMessage&,
00046 ModbusRTU::WriteOutputRetMessage&> WriteOutputSlot;
00047
00048 typedef sigc::slot<ModbusRTU::mbErrCode,
00049 ModbusRTU::DiagnosticMessage&,
00050 ModbusRTU::DiagnosticRetMessage&> DiagnosticsSlot;
00051
00052 typedef sigc::slot<ModbusRTU::mbErrCode,
00053 ModbusRTU::MEIMessageRDI&,
00054 ModbusRTU::MEIMessageRetRDI&> MEIRDISlot;
00055
00056 typedef sigc::slot<ModbusRTU::mbErrCode,
00057 ModbusRTU::JournalCommandMessage&,
00058 ModbusRTU::JournalCommandRetMessage&> JournalCommandSlot;
00059
00060 typedef sigc::slot<ModbusRTU::mbErrCode,
00061 ModbusRTU::SetDateTimeMessage&,
00062 ModbusRTU::SetDateTimeRetMessage&> SetDateTimeSlot;
00063
00064 typedef sigc::slot<ModbusRTU::mbErrCode,
00065 ModbusRTU::RemoteServiceMessage&,
00066 ModbusRTU::RemoteServiceRetMessage&> RemoteServiceSlot;
00067
00068 typedef sigc::slot<ModbusRTU::mbErrCode,
00069 ModbusRTU::FileTransferMessage&,
00070 ModbusRTU::FileTransferRetMessage&> FileTransferSlot;
00071
00073 void connectReadCoil( ReadCoilSlot sl );
00074
00076 void connectReadInputStatus( ReadInputStatusSlot sl );
00077
00079 void connectReadOutput( ReadOutputSlot sl );
00080
00082 void connectReadInput( ReadInputSlot sl );
00083
00085 void connectForceSingleCoil( ForceSingleCoilSlot sl );
00086
00088 void connectWriteSingleOutput( WriteSingleOutputSlot sl );
00089
00091 void connectDiagnostics( DiagnosticsSlot sl );
00092
00094 void connectMEIRDI( MEIRDISlot sl );
00095
00097 void connectForceCoils( ForceCoilsSlot sl );
00098
00100 void connectWriteOutput( WriteOutputSlot sl );
00101
00103 void connectJournalCommand( JournalCommandSlot sl );
00104
00106 void connectSetDateTime( SetDateTimeSlot sl );
00107
00109 void connectRemoteService( RemoteServiceSlot sl );
00110
00112 void connectFileTransfer( FileTransferSlot sl );
00113
00114 virtual void sigterm( int signo ){}
00115
00116 protected:
00117 ReadCoilSlot slReadCoil;
00118 ReadInputStatusSlot slReadInputStatus;
00119 ReadOutputSlot slReadOutputs;
00120 ReadInputSlot slReadInputs;
00121 ForceCoilsSlot slForceCoils;
00122 WriteOutputSlot slWriteOutputs;
00123 ForceSingleCoilSlot slForceSingleCoil;
00124 WriteSingleOutputSlot slWriteSingleOutputs;
00125 DiagnosticsSlot slDiagnostics;
00126 MEIRDISlot slMEIRDI;
00127 JournalCommandSlot slJournalCommand;
00128 SetDateTimeSlot slSetDateTime;
00129 RemoteServiceSlot slRemoteService;
00130 FileTransferSlot slFileTransfer;
00131 };
00132
00133 #endif // ModbusServerSlot_H_
00134