UniSet  1.4.0
include/PassiveLProcessor.h
00001 #ifndef PassiveLProcessor_H_
00002 #define PassiveLProcessor_H_
00003 // --------------------------------------------------------------------------
00004 #include <map>
00005 #include "UniSetTypes.h"
00006 #include "UniSetObject_LT.h"
00007 #include "Extensions.h"
00008 #include "SharedMemory.h"
00009 #include "UniversalInterface.h"
00010 #include "SMInterface.h"
00011 #include "LProcessor.h"
00012 // --------------------------------------------------------------------------
00014 class PassiveLProcessor:
00015     public UniSetObject_LT,
00016     protected LProcessor
00017 {
00018     public:
00019 
00020         PassiveLProcessor( std::string schema, UniSetTypes::ObjectId objId, 
00021                             UniSetTypes::ObjectId shmID, SharedMemory* ic=0 );
00022         virtual ~PassiveLProcessor();
00023 
00024         enum Timers
00025         {
00026             tidStep
00027         };
00028 
00029     protected:
00030         PassiveLProcessor(){};
00031 
00032         virtual void step();
00033         virtual void getInputs();
00034         virtual void setOuts();
00035 
00036         virtual void processingMessage( UniSetTypes::VoidMessage *msg );
00037         void sysCommand( UniSetTypes::SystemMessage *msg );
00038         void sensorInfo( UniSetTypes::SensorMessage*sm );
00039         void timerInfo( UniSetTypes::TimerMessage *tm );
00040         void askSensors( UniversalIO::UIOCommand cmd ); 
00041 //      void initOutput();
00042 
00043         // действия при завершении работы
00044         virtual void sigterm( int signo );
00045 
00046         SMInterface* shm;
00047 
00048     private:
00049         PassiveTimer ptHeartBeat;
00050         UniSetTypes::ObjectId sidHeartBeat;
00051         int maxHeartBeat;
00052         IOController::AIOStateList::iterator aitHeartBeat;
00053 };
00054 // ---------------------------------------------------------------------------
00055 #endif