|
uniset-algorithms 0.2
|
00001 // ------------------------------------------------------------------------------------------ 00002 #ifndef UnionGroups_H_ 00003 #define UnionGroups_H_ 00004 // ------------------------------------------------------------------------------------------ 00005 #include <list> 00006 #include <UniXML.h> 00007 #include <DebugStream.h> 00008 #include "SEESGroup.h" 00009 // ------------------------------------------------------------------------------------------ 00010 class UnionGroups; 00011 typedef std::list<UnionGroups*> GroupList; 00012 // ------------------------------------------------------------------------------------------ 00017 class UnionGroups 00018 { 00019 public: 00020 00021 UnionGroups( xmlNode* cnode ); 00022 UnionGroups( int gnum ); 00023 ~UnionGroups(); 00024 00025 UniSetTypes::ObjectId noReserv_s; 00026 UniSetTypes::ObjectId readyForLoading_s; 00029 UniSetTypes::ObjectId P_as; 00030 UniSetTypes::ObjectId U_as; 00031 UniSetTypes::ObjectId f_as; 00032 UniSetTypes::ObjectId fdev_c; 00033 UniSetTypes::ObjectId Udev_c; 00034 UniSetTypes::ObjectId ReservPower_as; 00035 UniSetTypes::ObjectId requiredReserv_s; 00037 void addGroup( UnionGroups* gr ); 00038 void clearGroup(); 00039 void clear(); 00040 void updateP(UniversalInterface* ui); 00041 void updateU(UniversalInterface* ui); 00042 void updateF(UniversalInterface* ui); 00043 void updateFdev(UniversalInterface* ui); 00044 void updateUdev(UniversalInterface* ui); 00045 void updateReservPower(UniversalInterface* ui); 00046 void updateNoReserv(UniversalInterface* ui); 00047 void updateReadyForLoading(UniversalInterface* uin); 00049 void step( UniversalInterface* uin ); 00050 void update( UniversalInterface* uin ); 00051 SEESGroup* gr; 00052 00053 void sensorInfo( UniSetTypes::SensorMessage *sm ); 00054 void askSensors( UniversalInterface* uin, UniversalIO::UIOCommand cmd ); 00055 inline bool isRequiredReserv(){ return in_requiredReserv_s; } 00056 00057 static DebugStream dlog; 00058 static void init_dlog( DebugStream& dlog ); 00059 00060 protected: 00061 // т.к. группы могут объединятся (работать на одну шину) 00062 // вводим список содеражищий список групп входящих в эту 00063 // он используется для обновления всех "датчиков" по группам, 00064 // которые выставляются по главной группе 00065 GroupList glst; 00066 00067 std::string myname; 00068 bool in_requiredReserv_s; 00070 friend std::ostream& operator<<(std::ostream& os, const GroupList& l ); 00071 friend std::ostream& operator<<(std::ostream& os, GroupList* l ); 00072 }; 00073 // ------------------------------------------------------------------------------------------ 00074 #endif // UnionGroups_H_
1.7.4