UniSet  1.4.0
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 // -------------------------------------------------------------------------