|
uniset-algorithms
0.2
|
00001 #ifndef PriorityController_H_ 00002 #define PriorityController_H_ 00003 // ----------------------------------------------------------------------------- 00004 #include <string> 00005 #include <list> 00006 #include <map> 00007 #include <UniXML.h> 00008 #include <Debug.h> 00009 #include "PriorityController_SK.h" 00010 // ----------------------------------------------------------------------------- 00049 class PriorityController: 00050 public PriorityController_SK 00051 { 00052 public: 00053 PriorityController( UniSetTypes::ObjectId id, xmlNode* cnode, DebugStream& dlog ); 00054 virtual ~PriorityController(); 00055 00056 struct PInfo 00057 { 00058 UniSetTypes::ObjectId id; 00059 long priority; 00060 }; 00061 00062 typedef std::list<PInfo> PriorityList; 00063 00064 struct SelectInfo 00065 { 00066 PriorityList plist; 00067 UniSetTypes::ObjectId id; 00068 bool state; 00069 std::string name; 00070 }; 00071 00072 00073 typedef std::map<UniSetTypes::ObjectId,SelectInfo> ItemList; 00074 00075 protected: 00076 virtual void step(){} 00077 virtual void sensorInfo( UniSetTypes::SensorMessage* sm ); 00078 virtual void askSensors( UniversalIO::UIOCommand cmd ); 00079 00080 DebugStream& dlog; 00081 ItemList lst; 00082 00083 PriorityList defaultList; // список датчиков для выставления приоритета по умолчанию 00084 00085 private: 00086 }; 00087 // ----------------------------------------------------------------------------- 00088 #endif // PriorityController_H_ 00089 // -----------------------------------------------------------------------------
1.7.6.1