GuiPM.h
00001 #ifndef _GUIPM_H
00002 #define _GUIPM_H
00003
00004 #include <ProxyManager.h>
00005 #include "USignals.h"
00006
00007 class CheckedSignal;
00008 class ConfirmSignal;
00009
00015 class GuiPM : public ProxyManager
00016 {
00017 private:
00018 bool connected_;
00019
00020 public:
00021 GuiPM( UniSetTypes::ObjectId id, UniSetTypes::ObjectId alive_sensor_id, UniSetTypes::ObjectId confirm_sensor_id, int auto_confirm_time);
00022 virtual ~GuiPM();
00023
00027 bool poll();
00028
00029 bool connected();
00032 void askSensor(const UniSetTypes::ObjectId id, const UniSetTypes::ObjectId node, const UniversalIO::UIOCommand cmd) throw();
00034 long getValue(const UniSetTypes::ObjectId id, const UniSetTypes::ObjectId node);
00036 void saveValue(const long value, const UniSetTypes::ObjectId id, const UniSetTypes::ObjectId node);
00038 void send(UniSetTypes::ObjectId name, UniSetTypes::TransportMessage& msg);
00040 UniversalIO::IOTypes getIOType(UniSetTypes::ObjectId id, UniSetTypes::ObjectId node);
00041
00042 sigc::signal<void, UniversalIO::UIOCommand> signal_ask_sensors;
00043 sigc::signal<void, UniSetTypes::SensorMessage*> signal_sensor_info;
00044 sigc::signal<void> signal_startup;
00045 sigc::signal<void> signal_connected;
00046 sigc::signal<void> signal_disconnected;
00048 CheckedSignal* signal_checked;
00049 ConfirmSignal* signal_confirm;
00051 USignals::SigController _signals;
00053 protected:
00054 void processingMessage( UniSetTypes::VoidMessage* msg );
00055 void askSensors( UniversalIO::UIOCommand cmd );
00056 void sysCommand( UniSetTypes::SystemMessage* sm );
00057 void sensorInfo( UniSetTypes::SensorMessage* sm );
00058 void timerInfo( UniSetTypes::TimerMessage* tm );
00059 void startUp();
00060 void watchDog();
00061 bool connectionTimeOut();
00063 private:
00064 bool auto_confirm();
00065 UniSetTypes::ObjectId alive_sensor_id_;
00066 UniSetTypes::ObjectId confirm_sensor_id_;
00067 long alive_value_;
00068
00069 long timeout_;
00070 sigc::connection to_connection_;
00071 };
00072
00073 inline bool
00074 GuiPM::connected()
00075 {
00076 return connected_;
00077 }
00078 #endif