UniSet  1.7.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::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 // -------------------------------------------------------------------------