uniset-algorithms 0.2
PriorityController.h
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 // -----------------------------------------------------------------------------