|
uniset-algorithms
0.2
|
00001 #ifndef CPanelMode_H_ 00002 #define CPanelMode_H_ 00003 // ------------------------------------------------------------------------------------------ 00004 #include <string> 00005 #include <sstream> 00006 #include <MessageType.h> 00007 // ------------------------------------------------------------------------------------------ 00008 class CPanel; 00009 00010 class CPanelMode 00011 { 00012 public: 00013 static CPanelMode* Instance(); 00014 void Destroy(); 00015 virtual ~CPanelMode(); 00016 00017 virtual void timerInfo( UniSetTypes::TimerMessage *tm, CPanel* cp){} 00018 virtual void sensorInfo(UniSetTypes::SensorMessage *sm, CPanel* cp){} 00019 virtual bool activate( CPanel* cp){ return true; } 00020 virtual bool disactivate( CPanel* cp){ return true; } 00021 virtual void step(CPanel* cp){} 00022 00023 virtual const std::string modeName(){ return "???Mode"; } 00024 virtual std::ostringstream& modeInfo( std::ostringstream& os ){ return os; } 00025 00026 protected: 00027 CPanelMode(); 00028 void changeMode( CPanelMode* m, CPanel* cp ); 00029 void allLamp( UniSetTypes::LampCommand l, CPanel* cp ); 00030 void setLamp( UniSetTypes::LampCommand l, CPanel* cp ); 00031 void setCtlON( bool state, CPanel* cp ); 00032 void askTimer( CPanel* cp, short timerid, long timeMS, short ticks=-1 ); 00033 00034 private: 00035 static CPanelMode* inst; 00036 }; 00037 // --------------------------------------------------------------------------- 00038 class CPanelOffMode: 00039 public CPanelMode 00040 { 00041 public: 00042 static CPanelOffMode* Instance(); 00043 void Destroy(); 00044 virtual ~CPanelOffMode(); 00045 00046 // -------- 00047 void step(CPanel* cp); 00048 virtual bool activate(CPanel* cp); 00049 // virtual bool disactivate(); 00050 virtual const std::string modeName(){ return "CPanelOffMode";} 00051 00052 protected: 00053 CPanelOffMode(); 00054 00055 private: 00056 static CPanelOffMode* inst; 00057 }; 00058 // --------------------------------------------------------------------------- 00059 class CPanelOnMode: 00060 public CPanelMode 00061 { 00062 public: 00063 static CPanelOnMode* Instance(); 00064 void Destroy(); 00065 virtual ~CPanelOnMode(); 00066 00067 // -------- 00068 virtual void step(CPanel* cp); 00069 virtual bool activate( CPanel* cp ); 00070 virtual bool disactivate(CPanel* cp); 00071 virtual void timerInfo( UniSetTypes::TimerMessage *tm, CPanel* cp); 00072 virtual void sensorInfo(UniSetTypes::SensorMessage *sm, CPanel* cp); 00073 virtual const std::string modeName(){ return "CPanelOnMode";} 00074 00075 protected: 00076 CPanelOnMode(); 00077 00078 00079 private: 00080 static CPanelOnMode* inst; 00081 }; 00082 00083 // --------------------------------------------------------------------------- 00084 class CPanelUnknownMode: 00085 public CPanelMode 00086 { 00087 public: 00088 static CPanelUnknownMode* Instance(); 00089 void Destroy(); 00090 virtual ~CPanelUnknownMode(); 00091 00092 // -------- 00093 void step(CPanel* cp); 00094 virtual bool activate(CPanel* cp); 00095 virtual const std::string modeName(){ return "CPanelUnknownMode"; } 00096 00097 protected: 00098 CPanelUnknownMode(); 00099 00100 private: 00101 static CPanelUnknownMode* inst; 00102 }; 00103 // --------------------------------------------------------------------------- 00104 class CPanelFailedMode: 00105 public CPanelMode 00106 { 00107 public: 00108 static CPanelFailedMode* Instance(); 00109 void Destroy(); 00110 virtual ~CPanelFailedMode(); 00111 00112 // -------- 00113 void step(CPanel* cp); 00114 virtual bool activate(CPanel* cp); 00115 virtual bool disactivate(CPanel* cp); 00116 virtual const std::string modeName(){ return "CPanelFailedMode"; } 00117 00118 protected: 00119 CPanelFailedMode(); 00120 00121 private: 00122 static CPanelFailedMode* inst; 00123 }; 00124 00125 // --------------------------------------------------------------------------- 00126 #endif // CPanelMode_H_ 00127 // ---------------------------------------------------------------------------
1.7.6.1