UniSet
1.4.0
|
00001 // ----------------------------------------------------------------------------- 00002 #ifndef UObject_SK_H_ 00003 #define UObject_SK_H_ 00004 // ----------------------------------------------------------------------------- 00005 #include "UniSetObject.h" 00006 #include "LT_Object.h" 00007 #include "UniXML.h" 00008 #include "Trigger.h" 00009 #include "SMInterface.h" 00010 // ----------------------------------------------------------------------------- 00011 class UObject_SK: 00012 public UniSetObject, 00013 public LT_Object 00014 { 00015 public: 00016 UObject_SK( UniSetTypes::ObjectId id, xmlNode* node=UniSetTypes::conf->getNode("UObject"), 00017 UniSetTypes::ObjectId shmID = UniSetTypes::DefaultObjectId ); 00018 UObject_SK(); 00019 virtual ~UObject_SK(); 00020 00021 00022 00023 bool alarm( UniSetTypes::ObjectId sid, bool state ); 00024 bool getState( UniSetTypes::ObjectId sid ); 00025 void setValue( UniSetTypes::ObjectId sid, long value ); 00026 void setState( UniSetTypes::ObjectId sid, bool state ); 00027 void askState( UniSetTypes::ObjectId sid, UniversalIO::UIOCommand ); 00028 void askValue( UniSetTypes::ObjectId sid, UniversalIO::UIOCommand ); 00029 void askThreshold ( UniSetTypes::ObjectId sensorId, UniSetTypes::ThresholdId tid, 00030 UniversalIO::UIOCommand cmd, 00031 CORBA::Long lowLimit, CORBA::Long hiLimit, CORBA::Long sensibility, 00032 UniSetTypes::ObjectId backid = UniSetTypes::DefaultObjectId ); 00033 00034 void updateValues(); 00035 void setInfo( UniSetTypes::ObjectId code, bool state ); 00036 00037 protected: 00038 00039 virtual void callback(); 00040 virtual void processingMessage( UniSetTypes::VoidMessage* msg ); 00041 virtual void sysCommand( UniSetTypes::SystemMessage* sm ); 00042 virtual void askSensors( UniversalIO::UIOCommand cmd ); 00043 virtual void sensorInfo( UniSetTypes::SensorMessage* sm ){}; 00044 virtual void timerInfo( UniSetTypes::TimerMessage* tm ){}; 00045 virtual void sigterm( int signo ); 00046 virtual bool activateObject(); 00047 virtual void testMode( bool state ); 00048 void updatePreviousValues(); 00049 void checkSensors(); 00050 void updateOutputs( bool force ); 00051 bool checkTestMode(); 00052 void preSensorInfo( UniSetTypes::SensorMessage* sm ); 00053 void preTimerInfo( UniSetTypes::TimerMessage* tm ); 00054 void waitSM( int wait_msec ); 00055 00056 void resetMsg(); 00057 Trigger trResetMsg; 00058 PassiveTimer ptResetMsg; 00059 int resetMsgTime; 00060 00061 // Выполнение очередного шага программы 00062 virtual void step()=0; 00063 00064 int sleep_msec; 00065 bool active; 00066 bool isTestMode; 00067 Trigger trTestMode; 00068 UniSetTypes::ObjectId idTestMode_S; 00069 UniSetTypes::ObjectId idLocalTestMode_S; 00070 bool in_TestMode_S; 00071 bool in_LocalTestMode_S; 00072 00073 xmlNode* confnode; 00074 SMInterface shm; 00075 int smReadyTimeout; 00076 bool activated; 00077 int activateTimeout; 00078 PassiveTimer ptStartUpTimeout; 00081 private: 00082 00083 IOController_i::SensorInfo si; 00084 }; 00085 00086 // ----------------------------------------------------------------------------- 00087 #endif // UObject_SK_H_