Класс UnionGroups

#include <UnionGroups.h>

Граф связей класса UnionGroups:

Collaboration graph
[см. легенду]

Полный список членов класса

Открытые члены

 UnionGroups (xmlNode *cnode)
 UnionGroups (int gnum)
void addGroup (UnionGroups *gr)
void clearGroup ()
void clear ()
void updateP (UniversalInterface *ui)
void updateU (UniversalInterface *ui)
void updateF (UniversalInterface *ui)
void updateFdev (UniversalInterface *ui)
void updateUdev (UniversalInterface *ui)
void updateReservPower (UniversalInterface *ui)
void updateNoReserv (UniversalInterface *ui)
void updateReadyForLoading (UniversalInterface *uin)
void step (UniversalInterface *uin)
void update (UniversalInterface *uin)
void sensorInfo (UniSetTypes::SensorMessage *sm)
void askSensors (UniversalInterface *uin, UniversalIO::UIOCommand cmd)
bool isRequiredReserv ()

Открытые статические члены

static void init_dlog (DebugStream &dlog)

Открытые атрибуты

UniSetTypes::ObjectId noReserv_s
UniSetTypes::ObjectId readyForLoading_s
UniSetTypes::ObjectId P_as
UniSetTypes::ObjectId U_as
UniSetTypes::ObjectId f_as
UniSetTypes::ObjectId fdev_c
UniSetTypes::ObjectId Udev_c
UniSetTypes::ObjectId ReservPower_as
UniSetTypes::ObjectId requiredReserv_s
SEESGroupgr

Статические открытые данные

static DebugStream dlog

Защищенные данные

GroupList glst
std::string myname
bool in_requiredReserv_s

Друзья

std::ostream & operator<< (std::ostream &os, const GroupList &l)
std::ostream & operator<< (std::ostream &os, GroupList *l)


Подробное описание

Просто пока временный класс вынесенный в отдельный файл, что бы не "загромождать" SEESControl

Методы

void UnionGroups::update ( UniversalInterface *  uin  ) 

общее обновление

Перекрестные ссылки updateNoReserv() и updateReadyForLoading().

00161 {
00162     try
00163     {
00164       gr->update();
00165     }
00166     catch(...){}
00167 
00168     updateNoReserv(uin);
00169     updateReadyForLoading(uin);
00170 }

void UnionGroups::updateF ( UniversalInterface *  ui  ) 

обновление информации(датчиков) Частоты

Перекрестные ссылки f_as и SEESGroup::getF().

00249 {
00250     long F = gr->getF();
00251 
00252     // сперва у самой группы сохраняем
00253     try
00254     {
00255         if( f_as != DefaultObjectId )
00256         {
00257             uin->saveValue(f_as,F,UniversalIO::AnalogInput);
00258         }
00259     }
00260     catch( Exception& ex )
00261     {
00262         UnionGroups::dlog[Debug::CRIT] <<  "(updateF): " << ex << endl;
00263     }
00264 
00265     for( GroupList::iterator it=glst.begin(); it!=glst.end(); ++it )
00266     {
00267         if( (*it)->f_as == DefaultObjectId )
00268             continue;
00269 
00270         for( int i=0; i<3; i++ )
00271         {
00272             try
00273             {
00274                 uin->saveValue((*it)->f_as,F,UniversalIO::AnalogInput);
00275                 break;
00276             }
00277             catch( Exception& ex )
00278             {
00279                 UnionGroups::dlog[Debug::CRIT] <<  "(updateF): " << ex << endl;
00280             }
00281             msleep(100);
00282         }
00283     }
00284 }

void UnionGroups::updateFdev ( UniversalInterface *  ui  ) 

обновление информации(датчиков) "отклонение частоты"

Перекрестные ссылки fdev_c и SEESGroup::isFdev().

00287 {
00288     bool Fdev = gr->isFdev();
00289 
00290     // сперва у самой группы сохраняем
00291     try
00292     {
00293         if( fdev_c != DefaultObjectId )
00294         {
00295             uin->setState(fdev_c,Fdev);
00296         }
00297     }
00298     catch( Exception& ex )
00299     {
00300         UnionGroups::dlog[Debug::CRIT] <<  "(updateFdev): " << ex << endl;
00301     }
00302 
00303     for( GroupList::iterator it=glst.begin(); it!=glst.end(); ++it )
00304     {
00305         if( (*it)->fdev_c == DefaultObjectId )
00306             continue;
00307 
00308         for( int i=0; i<3; i++ )
00309         {
00310             try
00311             {
00312                 uin->setState((*it)->fdev_c,Fdev);
00313                 break;
00314             }
00315             catch( Exception& ex )
00316             {
00317                 UnionGroups::dlog[Debug::CRIT] <<  "(updateFdev): " << ex << endl;
00318             }
00319             msleep(100);
00320         }
00321     }  
00322 }

void UnionGroups::updateNoReserv ( UniversalInterface *  ui  ) 

обновление информации(датчико) "нет резерва"

Перекрестные ссылки noReserv_s.

Используется в update().

00401 {
00402     bool res = gr->isNoReserv();
00403 
00404     // сперва у самой группы сохраняем
00405     try
00406     {
00407         if( noReserv_s != DefaultObjectId )
00408         {
00409             uin->saveState(noReserv_s,res,UniversalIO::DigitalInput);
00410         }
00411     }
00412     catch( Exception& ex )
00413     {
00414         UnionGroups::dlog[Debug::CRIT] <<  "(updateNoReserv): " << ex << endl;
00415     }
00416 
00417     for( GroupList::iterator it=glst.begin(); it!=glst.end(); ++it )
00418     {
00419         if( (*it)->noReserv_s == DefaultObjectId )
00420             continue;
00421 
00422         for( int i=0; i<3; i++ )
00423         {
00424             try
00425             {
00426                 uin->saveState((*it)->noReserv_s,res,UniversalIO::DigitalInput);
00427                 break;
00428             }
00429             catch( Exception& ex )
00430             {
00431                 UnionGroups::dlog[Debug::CRIT] <<  "(updateNoReserv): " << ex << endl;
00432             }
00433             msleep(100);
00434         }
00435     }
00436 }

void UnionGroups::updateP ( UniversalInterface *  ui  ) 

обновление информации(датчиков) Мощности

Перекрестные ссылки SEESGroup::getP() и P_as.

00173 {
00174     long P = gr->getP();
00175 
00176     // сперва у самой группы сохраняем
00177     try
00178     {
00179         if( P_as != DefaultObjectId )
00180         {
00181             uin->saveValue(P_as,P,UniversalIO::AnalogInput);
00182         }
00183     }
00184     catch( Exception& ex )
00185     {
00186         UnionGroups::dlog[Debug::CRIT] <<  "(updateP): " << ex << endl;
00187     }
00188 
00189     for( GroupList::iterator it=glst.begin(); it!=glst.end(); ++it )
00190     {
00191         if( (*it)->P_as == DefaultObjectId )
00192             continue;
00193 
00194         for( int i=0; i<3; i++ )
00195         {
00196             try
00197             {
00198                 uin->saveValue( (*it)->P_as,P,UniversalIO::AnalogInput);
00199                 break;
00200             }
00201             catch( Exception& ex )
00202             {
00203                 UnionGroups::dlog[Debug::CRIT] <<  "(updateP): " << ex << endl;
00204             }
00205             msleep(100);
00206         }
00207     }
00208 }

void UnionGroups::updateReadyForLoading ( UniversalInterface *  uin  ) 

обновление информаии о "готовности СЭС"

Перекрестные ссылки SEESGroup::isReadyForLoading() и readyForLoading_s.

Используется в update().

00503 {
00504     bool ready = gr->isReadyForLoading();
00505 
00506     // сперва у самой группы сохраняем
00507     try
00508     {
00509         if( readyForLoading_s != DefaultObjectId )
00510         {
00511             uin->saveState(readyForLoading_s,ready,UniversalIO::DigitalInput);
00512         }
00513     }
00514     catch( Exception& ex )
00515     {
00516         UnionGroups::dlog[Debug::CRIT] <<  "(updateReadyForLoading): " << ex << endl;
00517     }
00518 
00519     for( GroupList::iterator it=glst.begin(); it!=glst.end(); ++it )
00520     {
00521         if( (*it)->readyForLoading_s == DefaultObjectId )
00522             continue;
00523 
00524         for( int i=0; i<3; i++ )
00525         {
00526             try
00527             {
00528                 uin->saveState( (*it)->readyForLoading_s,ready,UniversalIO::DigitalInput);
00529                 break;
00530             }
00531             catch( Exception& ex )
00532             {
00533                 UnionGroups::dlog[Debug::CRIT] <<  "(updateReadyForLoading): " << ex << endl;
00534             }
00535             msleep(100);
00536         }
00537     }
00538 }

void UnionGroups::updateReservPower ( UniversalInterface *  ui  ) 

обновление информации(датчиков) "резерв мощности"

Перекрестные ссылки SEESGroup::getReservPower() и ReservPower_as.

00363 {
00364     long Preserv = gr->getReservPower();
00365 
00366     // сперва у самой группы сохраняем
00367     try
00368     {
00369         if( ReservPower_as != DefaultObjectId )
00370         {
00371             uin->saveValue(ReservPower_as,Preserv,UniversalIO::AnalogInput);
00372         }
00373     }
00374     catch( Exception& ex )
00375     {
00376         UnionGroups::dlog[Debug::CRIT] <<  "(updateReservPower): " << ex << endl;
00377     }
00378 
00379     for( GroupList::iterator it=glst.begin(); it!=glst.end(); ++it )
00380     {
00381         if( (*it)->ReservPower_as == DefaultObjectId )
00382             continue;
00383 
00384         for( int i=0; i<3; i++ )
00385         {
00386             try
00387             {
00388                 uin->saveValue((*it)->ReservPower_as,Preserv,UniversalIO::AnalogInput);
00389                 break;
00390             }
00391             catch( Exception& ex )
00392             {
00393                 UnionGroups::dlog[Debug::CRIT] <<  "(updateReservPower): " << ex << endl;
00394             }
00395             msleep(100);
00396         }
00397     }   
00398 }

void UnionGroups::updateU ( UniversalInterface *  ui  ) 

обновление информации(датчиков) Напряжения

Перекрестные ссылки SEESGroup::getU() и U_as.

00211 {
00212     long U = gr->getU();
00213 
00214     // сперва у самой группы сохраняем
00215     try
00216     {
00217         if( U_as != DefaultObjectId )
00218         {
00219             uin->saveValue(U_as,U,UniversalIO::AnalogInput);
00220         }
00221     }
00222     catch( Exception& ex )
00223     {
00224         UnionGroups::dlog[Debug::CRIT] <<  "(updateU): " << ex << endl;
00225     }
00226 
00227     for( GroupList::iterator it=glst.begin(); it!=glst.end(); ++it )
00228     {
00229         if( (*it)->U_as == DefaultObjectId )
00230             continue;
00231 
00232         for( int i=0; i<3; i++ )
00233         {
00234             try
00235             {
00236                 uin->saveValue((*it)->U_as,U,UniversalIO::AnalogInput);
00237                 break;
00238             }
00239             catch( Exception& ex )
00240             {
00241                 UnionGroups::dlog[Debug::CRIT] <<  "(updateU): " << ex << endl;
00242             }
00243             msleep(100);
00244         }
00245     }
00246 }

void UnionGroups::updateUdev ( UniversalInterface *  ui  ) 

обновление информации(датчиков) "отклонение напряжения"

Перекрестные ссылки SEESGroup::isUdev() и Udev_c.

00325 {
00326     bool Udev = gr->isUdev();
00327 
00328     // сперва у самой группы сохраняем
00329     try
00330     {
00331         if( Udev_c != DefaultObjectId )
00332         {
00333             uin->setState(Udev_c,Udev);
00334         }
00335     }
00336     catch( Exception& ex )
00337     {
00338         UnionGroups::dlog[Debug::CRIT] <<  "(updateUdev): " << ex << endl;
00339     }
00340 
00341     for( GroupList::iterator it=glst.begin(); it!=glst.end(); ++it )
00342     {
00343         if( (*it)->Udev_c == DefaultObjectId )
00344             continue;
00345 
00346         for( int i=0; i<3; i++ )
00347         {
00348             try
00349             {
00350                 uin->setState((*it)->Udev_c,Udev);
00351                 break;
00352             }
00353             catch( Exception& ex )
00354             {
00355                 UnionGroups::dlog[Debug::CRIT] <<  "(updateUdev): " << ex << endl;
00356             }
00357             msleep(100);
00358         }
00359     }
00360 }


Данные класса

UniSetTypes::ObjectId UnionGroups::f_as

(выходной): частота на шинах

Используется в updateF().

UniSetTypes::ObjectId UnionGroups::fdev_c

(выходной): отклонение частоты

Используется в updateFdev().

текущее состояние датчика

UniSetTypes::ObjectId UnionGroups::noReserv_s

датчик отсутсвия резерва в группе

Используется в updateNoReserv().

UniSetTypes::ObjectId UnionGroups::P_as

(выходной): мощность на шинах

Используется в updateP().

UniSetTypes::ObjectId UnionGroups::readyForLoading_s

датчик "неготовности" группы к принятию нагрузки По сути. Нет работающих на шины ДГ

Используется в updateReadyForLoading().

UniSetTypes::ObjectId UnionGroups::requiredReserv_s

(входной): требуется запуск резерва (внешний датчик)

UniSetTypes::ObjectId UnionGroups::ReservPower_as

(выходной): текущий резерв мощности

Используется в updateReservPower().

UniSetTypes::ObjectId UnionGroups::U_as

(выходной): напряжение на шинах

Используется в updateU().

UniSetTypes::ObjectId UnionGroups::Udev_c

(выходной): отклонение напряжения

Используется в updateUdev().


Объявления и описания членов классов находятся в файлах:

Документация по uniset-algorithms. Последние изменения: Fri Dec 12 14:27:17 2014. Создано системой  doxygen 1.5.9