uniset-algorithms 0.2
SEES_SK.h
00001 
00002 // --------------------------------------------------------------------------
00003 /*
00004  DO NOT EDIT THIS FILE. IT IS AUTOGENERATED FILE.
00005  ALL YOUR CHANGES WILL BE LOST.
00006  
00007  НЕ РЕДАКТИРУЙТЕ ЭТОТ ФАЙЛ. ЭТОТ ФАЙЛ СОЗДАН АВТОМАТИЧЕСКИ.
00008  ВСЕ ВАШИ ИЗМЕНЕНИЯ БУДУТ ПОТЕРЯНЫ.
00009 */ 
00010 // --------------------------------------------------------------------------
00011 // generate timestamp: 2013-01-24
00012 // -----------------------------------------------------------------------------
00013 #ifndef SEES_SK_H_
00014 #define SEES_SK_H_
00015 // -----------------------------------------------------------------------------
00016 #include "ObjectsManager.h"
00017 #include "LT_Object.h"
00018 #include "UniXML.h"
00019 #include "Trigger.h"
00020 // -----------------------------------------------------------------------------
00021 class SEES_SK:
00022     public ObjectsManager,
00023     public LT_Object
00024 {
00025     public:
00026         SEES_SK( UniSetTypes::ObjectId id, xmlNode* node=UniSetTypes::conf->getNode("SEES") );
00027         SEES_SK();
00028         virtual ~SEES_SK();
00029 
00030         
00031 
00032         bool alarm( UniSetTypes::ObjectId sid, bool state );
00033         bool getState( UniSetTypes::ObjectId sid );
00034         bool getValue( UniSetTypes::ObjectId sid );
00035         void setValue( UniSetTypes::ObjectId sid, long value );
00036         void setState( UniSetTypes::ObjectId sid, bool state );
00037         void askState( UniSetTypes::ObjectId sid, UniversalIO::UIOCommand, UniSetTypes::ObjectId node = UniSetTypes::conf->getLocalNode() );
00038         void askValue( UniSetTypes::ObjectId sid, UniversalIO::UIOCommand, UniSetTypes::ObjectId node = UniSetTypes::conf->getLocalNode() );
00039         void updateValues();
00040         void setMsg( UniSetTypes::ObjectId code, bool state );
00041 
00042 
00043         // Используемые идентификаторы
00044         const UniSetTypes::ObjectId state_as;       
00045         UniSetTypes::ObjectId node_state_as;
00046         const UniSetTypes::ObjectId DG_Start_s;         
00047         UniSetTypes::ObjectId node_DG_Start_s;
00048         const UniSetTypes::ObjectId DG_Stop_s;      
00049         UniSetTypes::ObjectId node_DG_Stop_s;
00050         const UniSetTypes::ObjectId QG_On_s;        
00051         UniSetTypes::ObjectId node_QG_On_s;
00052         const UniSetTypes::ObjectId QG_Off_s;       
00053         UniSetTypes::ObjectId node_QG_Off_s;
00054         const UniSetTypes::ObjectId lmpDG_ON_c;         
00055         UniSetTypes::ObjectId node_lmpDG_ON_c;
00056         const UniSetTypes::ObjectId lmpDG_OFF_c;        
00057         UniSetTypes::ObjectId node_lmpDG_OFF_c;
00058         const UniSetTypes::ObjectId lmpQG_ON_c;         
00059         UniSetTypes::ObjectId node_lmpQG_ON_c;
00060         const UniSetTypes::ObjectId lmpQG_OFF_c;        
00061         UniSetTypes::ObjectId node_lmpQG_OFF_c;
00062         const UniSetTypes::ObjectId DG_RemoteControl_s;         
00063         UniSetTypes::ObjectId node_DG_RemoteControl_s;
00064         const UniSetTypes::ObjectId QG_RemoteControl_s;         
00065         UniSetTypes::ObjectId node_QG_RemoteControl_s;
00066         const UniSetTypes::ObjectId CtlMode_Auto_s;         
00067         UniSetTypes::ObjectId node_CtlMode_Auto_s;
00068         const UniSetTypes::ObjectId postID;         
00069         UniSetTypes::ObjectId node_postID;
00070         const UniSetTypes::ObjectId Leader_f;       
00071         UniSetTypes::ObjectId node_Leader_f;
00072         const UniSetTypes::ObjectId Priority_s;         
00073         UniSetTypes::ObjectId node_Priority_s;
00074         const UniSetTypes::ObjectId Reserv_f;       
00075         UniSetTypes::ObjectId node_Reserv_f;
00076         const UniSetTypes::ObjectId CtlMode_f;      
00077         UniSetTypes::ObjectId node_CtlMode_f;
00078         const UniSetTypes::ObjectId ControlMode_f;      
00079         UniSetTypes::ObjectId node_ControlMode_f;
00080         const UniSetTypes::ObjectId CtlMode_QG_bs;      
00081         UniSetTypes::ObjectId node_CtlMode_QG_bs;
00082         const UniSetTypes::ObjectId cmd_OnReserv_f;         
00083         UniSetTypes::ObjectId node_cmd_OnReserv_f;
00084         const UniSetTypes::ObjectId cmd_OffReserv_f;        
00085         UniSetTypes::ObjectId node_cmd_OffReserv_f;
00086         const UniSetTypes::ObjectId Reset_s;        
00087         UniSetTypes::ObjectId node_Reset_s;
00088         const UniSetTypes::ObjectId Protection_f;       
00089         UniSetTypes::ObjectId node_Protection_f;
00090         const UniSetTypes::ObjectId NoPower_S;      
00091         UniSetTypes::ObjectId node_NoPower_S;
00092         const UniSetTypes::ObjectId Overload95_S;       
00093         UniSetTypes::ObjectId node_Overload95_S;
00094         const UniSetTypes::ObjectId Overload20_S;       
00095         UniSetTypes::ObjectId node_Overload20_S;
00096         const UniSetTypes::ObjectId Overload105_S;      
00097         UniSetTypes::ObjectId node_Overload105_S;
00098         const UniSetTypes::ObjectId Fault_S;        
00099         UniSetTypes::ObjectId node_Fault_S;
00100         const UniSetTypes::ObjectId InfoCode_as;        
00101         UniSetTypes::ObjectId node_InfoCode_as;
00102         const UniSetTypes::ObjectId DG_Start_C;         
00103         UniSetTypes::ObjectId node_DG_Start_C;
00104         const UniSetTypes::ObjectId DG_Stop_C;      
00105         UniSetTypes::ObjectId node_DG_Stop_C;
00106         const UniSetTypes::ObjectId QG_On_C;        
00107         UniSetTypes::ObjectId node_QG_On_C;
00108         const UniSetTypes::ObjectId QG_Off_C;       
00109         UniSetTypes::ObjectId node_QG_Off_C;
00110         const UniSetTypes::ObjectId OnControl_C;        
00111         UniSetTypes::ObjectId node_OnControl_C;
00112         const UniSetTypes::ObjectId Reset_C;        
00113         UniSetTypes::ObjectId node_Reset_C;
00114         const UniSetTypes::ObjectId NotAlone_C;         
00115         UniSetTypes::ObjectId node_NotAlone_C;
00116         const UniSetTypes::ObjectId NoPower_C;      
00117         UniSetTypes::ObjectId node_NoPower_C;
00118         const UniSetTypes::ObjectId Ping_C;         
00119         UniSetTypes::ObjectId node_Ping_C;
00120         
00121 
00122         // Используемые идентификаторы сообщений
00123         
00124         const UniSetTypes::ObjectId mid_starting;   
00125         UniSetTypes::ObjectId node_mid_starting;
00126         bool m_mid_starting;                            
00127         bool prev_m_mid_starting;                   
00129         const UniSetTypes::ObjectId mid_stopping;   
00130         UniSetTypes::ObjectId node_mid_stopping;
00131         bool m_mid_stopping;                            
00132         bool prev_m_mid_stopping;                   
00134         const UniSetTypes::ObjectId mid_endStarting;    
00135         UniSetTypes::ObjectId node_mid_endStarting;
00136         bool m_mid_endStarting;                             
00137         bool prev_m_mid_endStarting;                    
00139         const UniSetTypes::ObjectId mid_endStopping;    
00140         UniSetTypes::ObjectId node_mid_endStopping;
00141         bool m_mid_endStopping;                             
00142         bool prev_m_mid_endStopping;                    
00144         const UniSetTypes::ObjectId mid_BlockedRun;     
00145         UniSetTypes::ObjectId node_mid_BlockedRun;
00146         bool m_mid_BlockedRun;                          
00147         bool prev_m_mid_BlockedRun;                     
00149         const UniSetTypes::ObjectId mid_SetReserv;  
00150         UniSetTypes::ObjectId node_mid_SetReserv;
00151         bool m_mid_SetReserv;                           
00152         bool prev_m_mid_SetReserv;                  
00154         const UniSetTypes::ObjectId mid_NotReserv;  
00155         UniSetTypes::ObjectId node_mid_NotReserv;
00156         bool m_mid_NotReserv;                           
00157         bool prev_m_mid_NotReserv;                  
00159         const UniSetTypes::ObjectId mid_SetReserv_Failure;  
00160         UniSetTypes::ObjectId node_mid_SetReserv_Failure;
00161         bool m_mid_SetReserv_Failure;                           
00162         bool prev_m_mid_SetReserv_Failure;                  
00164         const UniSetTypes::ObjectId mid_NotOn;  
00165         UniSetTypes::ObjectId node_mid_NotOn;
00166         bool m_mid_NotOn;                           
00167         bool prev_m_mid_NotOn;                  
00169         const UniSetTypes::ObjectId mid_NotOff;     
00170         UniSetTypes::ObjectId node_mid_NotOff;
00171         bool m_mid_NotOff;                          
00172         bool prev_m_mid_NotOff;                     
00174         const UniSetTypes::ObjectId mid_QG_NotOn;   
00175         UniSetTypes::ObjectId node_mid_QG_NotOn;
00176         bool m_mid_QG_NotOn;                            
00177         bool prev_m_mid_QG_NotOn;                   
00179         const UniSetTypes::ObjectId mid_QG_NotOff;  
00180         UniSetTypes::ObjectId node_mid_QG_NotOff;
00181         bool m_mid_QG_NotOff;                           
00182         bool prev_m_mid_QG_NotOff;                  
00184         const UniSetTypes::ObjectId mid_QG_NotOn_LocalControl;  
00185         UniSetTypes::ObjectId node_mid_QG_NotOn_LocalControl;
00186         bool m_mid_QG_NotOn_LocalControl;                           
00187         bool prev_m_mid_QG_NotOn_LocalControl;                  
00189         const UniSetTypes::ObjectId mid_QG_NotOff_LocalControl;     
00190         UniSetTypes::ObjectId node_mid_QG_NotOff_LocalControl;
00191         bool m_mid_QG_NotOff_LocalControl;                          
00192         bool prev_m_mid_QG_NotOff_LocalControl;                     
00194         const UniSetTypes::ObjectId mid_ProtectionNotReset;     
00195         UniSetTypes::ObjectId node_mid_ProtectionNotReset;
00196         bool m_mid_ProtectionNotReset;                          
00197         bool prev_m_mid_ProtectionNotReset;                     
00199         const UniSetTypes::ObjectId mid_Diesel_NotOn;   
00200         UniSetTypes::ObjectId node_mid_Diesel_NotOn;
00201         bool m_mid_Diesel_NotOn;                            
00202         bool prev_m_mid_Diesel_NotOn;                   
00204         const UniSetTypes::ObjectId mid_Diesel_NotOff;  
00205         UniSetTypes::ObjectId node_mid_Diesel_NotOff;
00206         bool m_mid_Diesel_NotOff;                           
00207         bool prev_m_mid_Diesel_NotOff;                  
00209         const UniSetTypes::ObjectId mid_Generator_NotOn;    
00210         UniSetTypes::ObjectId node_mid_Generator_NotOn;
00211         bool m_mid_Generator_NotOn;                             
00212         bool prev_m_mid_Generator_NotOn;                    
00214         const UniSetTypes::ObjectId mid_Generator_NotOff;   
00215         UniSetTypes::ObjectId node_mid_Generator_NotOff;
00216         bool m_mid_Generator_NotOff;                            
00217         bool prev_m_mid_Generator_NotOff;                   
00219         const UniSetTypes::ObjectId mid_NA_State;   
00220         UniSetTypes::ObjectId node_mid_NA_State;
00221         bool m_mid_NA_State;                            
00222         bool prev_m_mid_NA_State;                   
00224         const UniSetTypes::ObjectId mid_BadOperation;   
00225         UniSetTypes::ObjectId node_mid_BadOperation;
00226         bool m_mid_BadOperation;                            
00227         bool prev_m_mid_BadOperation;                   
00229         const UniSetTypes::ObjectId mid_NotFinished;    
00230         UniSetTypes::ObjectId node_mid_NotFinished;
00231         bool m_mid_NotFinished;                             
00232         bool prev_m_mid_NotFinished;                    
00234         const UniSetTypes::ObjectId mid_NotDischarge;   
00235         UniSetTypes::ObjectId node_mid_NotDischarge;
00236         bool m_mid_NotDischarge;                            
00237         bool prev_m_mid_NotDischarge;                   
00239         const UniSetTypes::ObjectId mid_NotAccept;  
00240         UniSetTypes::ObjectId node_mid_NotAccept;
00241         bool m_mid_NotAccept;                           
00242         bool prev_m_mid_NotAccept;                  
00244         const UniSetTypes::ObjectId mid_ReservBadAction;    
00245         UniSetTypes::ObjectId node_mid_ReservBadAction;
00246         bool m_mid_ReservBadAction;                             
00247         bool prev_m_mid_ReservBadAction;                    
00249         const UniSetTypes::ObjectId mid_OnReservBadAction;  
00250         UniSetTypes::ObjectId node_mid_OnReservBadAction;
00251         bool m_mid_OnReservBadAction;                           
00252         bool prev_m_mid_OnReservBadAction;                  
00254         const UniSetTypes::ObjectId mid_ProtectionOn;   
00255         UniSetTypes::ObjectId node_mid_ProtectionOn;
00256         bool m_mid_ProtectionOn;                            
00257         bool prev_m_mid_ProtectionOn;                   
00259         const UniSetTypes::ObjectId mid_ProtectionOff;  
00260         UniSetTypes::ObjectId node_mid_ProtectionOff;
00261         bool m_mid_ProtectionOff;                           
00262         bool prev_m_mid_ProtectionOff;                  
00264         const UniSetTypes::ObjectId mid_SetReserv_Att;  
00265         UniSetTypes::ObjectId node_mid_SetReserv_Att;
00266         bool m_mid_SetReserv_Att;                           
00267         bool prev_m_mid_SetReserv_Att;                  
00270         // Текущее значение и предыдущее значение
00271         long in_state_as;
00272         long prev_in_state_as;
00273         bool in_DG_Start_s;
00274         bool prev_in_DG_Start_s;
00275         bool in_DG_Stop_s;
00276         bool prev_in_DG_Stop_s;
00277         bool in_QG_On_s;
00278         bool prev_in_QG_On_s;
00279         bool in_QG_Off_s;
00280         bool prev_in_QG_Off_s;
00281         long out_lmpDG_ON_c;
00282         long prev_out_lmpDG_ON_c;
00283         long out_lmpDG_OFF_c;
00284         long prev_out_lmpDG_OFF_c;
00285         long out_lmpQG_ON_c;
00286         long prev_out_lmpQG_ON_c;
00287         long out_lmpQG_OFF_c;
00288         long prev_out_lmpQG_OFF_c;
00289         bool in_DG_RemoteControl_s;
00290         bool prev_in_DG_RemoteControl_s;
00291         bool in_QG_RemoteControl_s;
00292         bool prev_in_QG_RemoteControl_s;
00293         bool in_CtlMode_Auto_s;
00294         bool prev_in_CtlMode_Auto_s;
00295         long out_postID;
00296         long prev_out_postID;
00297         bool in_Leader_f;
00298         bool prev_in_Leader_f;
00299         long in_Priority_s;
00300         long prev_in_Priority_s;
00301         bool out_Reserv_f;
00302         bool prev_out_Reserv_f;
00303         long in_CtlMode_f;
00304         long prev_in_CtlMode_f;
00305         long out_ControlMode_f;
00306         long prev_out_ControlMode_f;
00307         long out_CtlMode_QG_bs;
00308         long prev_out_CtlMode_QG_bs;
00309         bool in_cmd_OnReserv_f;
00310         bool prev_in_cmd_OnReserv_f;
00311         bool in_cmd_OffReserv_f;
00312         bool prev_in_cmd_OffReserv_f;
00313         bool in_Reset_s;
00314         bool prev_in_Reset_s;
00315         bool out_Protection_f;
00316         bool prev_out_Protection_f;
00317         bool in_NoPower_S;
00318         bool prev_in_NoPower_S;
00319         bool in_Overload95_S;
00320         bool prev_in_Overload95_S;
00321         bool in_Overload20_S;
00322         bool prev_in_Overload20_S;
00323         bool in_Overload105_S;
00324         bool prev_in_Overload105_S;
00325         bool in_Fault_S;
00326         bool prev_in_Fault_S;
00327         long in_InfoCode_as;
00328         long prev_in_InfoCode_as;
00329         bool out_DG_Start_C;
00330         bool prev_out_DG_Start_C;
00331         bool out_DG_Stop_C;
00332         bool prev_out_DG_Stop_C;
00333         bool out_QG_On_C;
00334         bool prev_out_QG_On_C;
00335         bool out_QG_Off_C;
00336         bool prev_out_QG_Off_C;
00337         bool out_OnControl_C;
00338         bool prev_out_OnControl_C;
00339         bool out_Reset_C;
00340         bool prev_out_Reset_C;
00341         bool out_NotAlone_C;
00342         bool prev_out_NotAlone_C;
00343         bool out_NoPower_C;
00344         bool prev_out_NoPower_C;
00345         bool out_Ping_C;
00346         bool prev_out_Ping_C;
00347         
00348 
00349         // --- public variables ---
00350         
00351         
00352         // --- end of public variables ---
00353 
00354     protected:
00355         // --- protected variables ---
00356         
00357         
00358         // ---- end of protected variables ----
00359 
00360         
00361         virtual void callback();
00362         virtual void processingMessage( UniSetTypes::VoidMessage* msg );
00363         virtual void sysCommand( UniSetTypes::SystemMessage* sm );
00364         virtual void askSensors( UniversalIO::UIOCommand cmd ){}
00365         virtual void sensorInfo( UniSetTypes::SensorMessage* sm ){}
00366         virtual void timerInfo( UniSetTypes::TimerMessage* tm ){}
00367         virtual void sigterm( int signo );
00368         virtual bool activateObject();
00369         virtual void testMode( bool state );
00370         void updatePreviousValues();
00371         void checkSensors();
00372         void updateOutputs( bool force );
00373 
00374         void preAskSensors( UniversalIO::UIOCommand cmd );
00375         void preSensorInfo( UniSetTypes::SensorMessage* sm );
00376         void preTimerInfo( UniSetTypes::TimerMessage* tm );
00377         void waitSM( int wait_msec, UniSetTypes::ObjectId testID = UniSetTypes::DefaultObjectId );
00378 
00379         void resetMsg();
00380         Trigger trResetMsg;
00381         PassiveTimer ptResetMsg;
00382         int resetMsgTime;
00383 
00384         // Выполнение очередного шага программы
00385         virtual void step()=0;
00386 
00387         int sleep_msec; 
00388         bool active;
00389 
00390         UniSetTypes::ObjectId smTestID; 
00392         // управление датчиком "сердцебиения"
00393         PassiveTimer ptHeartBeat;               
00394         UniSetTypes::ObjectId idHeartBeat;      
00395         int maxHeartBeat;                       
00397         xmlNode* confnode;
00399         int getIntProp(const std::string name) { return UniSetTypes::conf->getIntProp(confnode, name); }
00401         inline const std::string getProp(const std::string name) { return UniSetTypes::conf->getProp(confnode, name); }
00402 
00403         int smReadyTimeout;     
00404         bool activated;
00405         int activateTimeout;    
00406         PassiveTimer ptStartUpTimeout;  
00407         int askPause; 
00409         IOController_i::SensorInfo si;
00410 
00411 
00412     private:
00413         
00414         // --- private variables ---
00415         // --- end of private variables ---
00416 
00417         
00418 
00419         bool end_private; // вспомогательное поле (для внутреннего использования при генерировании кода)
00420 };
00421 
00422 // -----------------------------------------------------------------------------
00423 #endif // SEES_SK_H_