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