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::JournalCommandMessage&,
00054 ModbusRTU::JournalCommandRetMessage&> JournalCommandSlot;
00055
00056 typedef sigc::slot<ModbusRTU::mbErrCode,
00057 ModbusRTU::SetDateTimeMessage&,
00058 ModbusRTU::SetDateTimeRetMessage&> SetDateTimeSlot;
00059
00060 typedef sigc::slot<ModbusRTU::mbErrCode,
00061 ModbusRTU::RemoteServiceMessage&,
00062 ModbusRTU::RemoteServiceRetMessage&> RemoteServiceSlot;
00063
00064 typedef sigc::slot<ModbusRTU::mbErrCode,
00065 ModbusRTU::FileTransferMessage&,
00066 ModbusRTU::FileTransferRetMessage&> FileTransferSlot;
00067
00069 void connectReadCoil( ReadCoilSlot sl );
00070
00072 void connectReadInputStatus( ReadInputStatusSlot sl );
00073
00075 void connectReadOutput( ReadOutputSlot sl );
00076
00078 void connectReadInput( ReadInputSlot sl );
00079
00081 void connectForceSingleCoil( ForceSingleCoilSlot sl );
00082
00084 void connectWriteSingleOutput( WriteSingleOutputSlot sl );
00085
00087 void connectDiagnostics( DiagnosticsSlot sl );
00088
00090 void connectForceCoils( ForceCoilsSlot sl );
00091
00093 void connectWriteOutput( WriteOutputSlot sl );
00094
00096 void connectJournalCommand( JournalCommandSlot sl );
00097
00099 void connectSetDateTime( SetDateTimeSlot sl );
00100
00102 void connectRemoteService( RemoteServiceSlot sl );
00103
00105 void connectFileTransfer( FileTransferSlot sl );
00106
00107 virtual void sigterm( int signo ){}
00108
00109 protected:
00110 ReadCoilSlot slReadCoil;
00111 ReadInputStatusSlot slReadInputStatus;
00112 ReadOutputSlot slReadOutputs;
00113 ReadInputSlot slReadInputs;
00114 ForceCoilsSlot slForceCoils;
00115 WriteOutputSlot slWriteOutputs;
00116 ForceSingleCoilSlot slForceSingleCoil;
00117 WriteSingleOutputSlot slWriteSingleOutputs;
00118 DiagnosticsSlot slDiagnostics;
00119 JournalCommandSlot slJournalCommand;
00120 SetDateTimeSlot slSetDateTime;
00121 RemoteServiceSlot slRemoteService;
00122 FileTransferSlot slFileTransfer;
00123 };
00124
00125 #endif // ModbusServerSlot_H_
00126