UObject_SK.h
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_