uniset-algorithms  0.2
Открытые члены | Открытые статические члены | Открытые атрибуты | Статические открытые данные | Защищенные данные | Друзья
Класс 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().

{
    try
    {
      gr->update();
    }
    catch(...){}

    updateNoReserv(uin);
    updateReadyForLoading(uin);
}
void UnionGroups::updateF ( UniversalInterface *  ui)

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

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

{
    long F = gr->getF();

    // сперва у самой группы сохраняем
    try
    {
        if( f_as != DefaultObjectId )
        {
            uin->saveValue(f_as,F,UniversalIO::AnalogInput);
        }
    }
    catch( Exception& ex )
    {
        UnionGroups::dlog[Debug::CRIT] <<  "(updateF): " << ex << endl;
    }

    for( GroupList::iterator it=glst.begin(); it!=glst.end(); ++it )
    {
        if( (*it)->f_as == DefaultObjectId )
            continue;

        for( int i=0; i<3; i++ )
        {
            try
            {
                uin->saveValue((*it)->f_as,F,UniversalIO::AnalogInput);
                break;
            }
            catch( Exception& ex )
            {
                UnionGroups::dlog[Debug::CRIT] <<  "(updateF): " << ex << endl;
            }
            msleep(100);
        }
    }
}
void UnionGroups::updateFdev ( UniversalInterface *  ui)

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

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

{
    bool Fdev = gr->isFdev();

    // сперва у самой группы сохраняем
    try
    {
        if( fdev_c != DefaultObjectId )
        {
            uin->setState(fdev_c,Fdev);
        }
    }
    catch( Exception& ex )
    {
        UnionGroups::dlog[Debug::CRIT] <<  "(updateFdev): " << ex << endl;
    }

    for( GroupList::iterator it=glst.begin(); it!=glst.end(); ++it )
    {
        if( (*it)->fdev_c == DefaultObjectId )
            continue;

        for( int i=0; i<3; i++ )
        {
            try
            {
                uin->setState((*it)->fdev_c,Fdev);
                break;
            }
            catch( Exception& ex )
            {
                UnionGroups::dlog[Debug::CRIT] <<  "(updateFdev): " << ex << endl;
            }
            msleep(100);
        }
    }  
}
void UnionGroups::updateNoReserv ( UniversalInterface *  ui)

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

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

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

{
    bool res = gr->isNoReserv();

    // сперва у самой группы сохраняем
    try
    {
        if( noReserv_s != DefaultObjectId )
        {
            uin->saveState(noReserv_s,res,UniversalIO::DigitalInput);
        }
    }
    catch( Exception& ex )
    {
        UnionGroups::dlog[Debug::CRIT] <<  "(updateNoReserv): " << ex << endl;
    }

    for( GroupList::iterator it=glst.begin(); it!=glst.end(); ++it )
    {
        if( (*it)->noReserv_s == DefaultObjectId )
            continue;

        for( int i=0; i<3; i++ )
        {
            try
            {
                uin->saveState((*it)->noReserv_s,res,UniversalIO::DigitalInput);
                break;
            }
            catch( Exception& ex )
            {
                UnionGroups::dlog[Debug::CRIT] <<  "(updateNoReserv): " << ex << endl;
            }
            msleep(100);
        }
    }
}
void UnionGroups::updateP ( UniversalInterface *  ui)

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

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

{
    long P = gr->getP();

    // сперва у самой группы сохраняем
    try
    {
        if( P_as != DefaultObjectId )
        {
            uin->saveValue(P_as,P,UniversalIO::AnalogInput);
        }
    }
    catch( Exception& ex )
    {
        UnionGroups::dlog[Debug::CRIT] <<  "(updateP): " << ex << endl;
    }

    for( GroupList::iterator it=glst.begin(); it!=glst.end(); ++it )
    {
        if( (*it)->P_as == DefaultObjectId )
            continue;

        for( int i=0; i<3; i++ )
        {
            try
            {
                uin->saveValue( (*it)->P_as,P,UniversalIO::AnalogInput);
                break;
            }
            catch( Exception& ex )
            {
                UnionGroups::dlog[Debug::CRIT] <<  "(updateP): " << ex << endl;
            }
            msleep(100);
        }
    }
}
void UnionGroups::updateReadyForLoading ( UniversalInterface *  uin)

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

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

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

{
    bool ready = gr->isReadyForLoading();

    // сперва у самой группы сохраняем
    try
    {
        if( readyForLoading_s != DefaultObjectId )
        {
            uin->saveState(readyForLoading_s,ready,UniversalIO::DigitalInput);
        }
    }
    catch( Exception& ex )
    {
        UnionGroups::dlog[Debug::CRIT] <<  "(updateReadyForLoading): " << ex << endl;
    }

    for( GroupList::iterator it=glst.begin(); it!=glst.end(); ++it )
    {
        if( (*it)->readyForLoading_s == DefaultObjectId )
            continue;

        for( int i=0; i<3; i++ )
        {
            try
            {
                uin->saveState( (*it)->readyForLoading_s,ready,UniversalIO::DigitalInput);
                break;
            }
            catch( Exception& ex )
            {
                UnionGroups::dlog[Debug::CRIT] <<  "(updateReadyForLoading): " << ex << endl;
            }
            msleep(100);
        }
    }
}
void UnionGroups::updateReservPower ( UniversalInterface *  ui)

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

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

{
    long Preserv = gr->getReservPower();

    // сперва у самой группы сохраняем
    try
    {
        if( ReservPower_as != DefaultObjectId )
        {
            uin->saveValue(ReservPower_as,Preserv,UniversalIO::AnalogInput);
        }
    }
    catch( Exception& ex )
    {
        UnionGroups::dlog[Debug::CRIT] <<  "(updateReservPower): " << ex << endl;
    }

    for( GroupList::iterator it=glst.begin(); it!=glst.end(); ++it )
    {
        if( (*it)->ReservPower_as == DefaultObjectId )
            continue;

        for( int i=0; i<3; i++ )
        {
            try
            {
                uin->saveValue((*it)->ReservPower_as,Preserv,UniversalIO::AnalogInput);
                break;
            }
            catch( Exception& ex )
            {
                UnionGroups::dlog[Debug::CRIT] <<  "(updateReservPower): " << ex << endl;
            }
            msleep(100);
        }
    }   
}
void UnionGroups::updateU ( UniversalInterface *  ui)

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

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

{
    long U = gr->getU();

    // сперва у самой группы сохраняем
    try
    {
        if( U_as != DefaultObjectId )
        {
            uin->saveValue(U_as,U,UniversalIO::AnalogInput);
        }
    }
    catch( Exception& ex )
    {
        UnionGroups::dlog[Debug::CRIT] <<  "(updateU): " << ex << endl;
    }

    for( GroupList::iterator it=glst.begin(); it!=glst.end(); ++it )
    {
        if( (*it)->U_as == DefaultObjectId )
            continue;

        for( int i=0; i<3; i++ )
        {
            try
            {
                uin->saveValue((*it)->U_as,U,UniversalIO::AnalogInput);
                break;
            }
            catch( Exception& ex )
            {
                UnionGroups::dlog[Debug::CRIT] <<  "(updateU): " << ex << endl;
            }
            msleep(100);
        }
    }
}
void UnionGroups::updateUdev ( UniversalInterface *  ui)

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

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

{
    bool Udev = gr->isUdev();

    // сперва у самой группы сохраняем
    try
    {
        if( Udev_c != DefaultObjectId )
        {
            uin->setState(Udev_c,Udev);
        }
    }
    catch( Exception& ex )
    {
        UnionGroups::dlog[Debug::CRIT] <<  "(updateUdev): " << ex << endl;
    }

    for( GroupList::iterator it=glst.begin(); it!=glst.end(); ++it )
    {
        if( (*it)->Udev_c == DefaultObjectId )
            continue;

        for( int i=0; i<3; i++ )
        {
            try
            {
                uin->setState((*it)->Udev_c,Udev);
                break;
            }
            catch( Exception& ex )
            {
                UnionGroups::dlog[Debug::CRIT] <<  "(updateUdev): " << ex << endl;
            }
            msleep(100);
        }
    }
}

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

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().


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