UniSet  2.0.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 "UInterface.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, const std::string& prefix="lproc" );
00022         virtual ~PassiveLProcessor();
00023 
00024         enum Timers
00025         {
00026             tidStep
00027         };
00028 
00029     protected:
00030         PassiveLProcessor():shm(0),maxHeartBeat(0){};
00031 
00032         virtual void step();
00033         virtual void getInputs();
00034         virtual void setOuts();
00035 
00036         void sysCommand( const UniSetTypes::SystemMessage *msg ) override;
00037         void sensorInfo( const UniSetTypes::SensorMessage*sm ) override;
00038         void timerInfo( const UniSetTypes::TimerMessage *tm ) override;
00039         void askSensors( const UniversalIO::UIOCommand cmd );
00040 //        void initOutput();
00041 
00042         // действия при завершении работы
00043         virtual void sigterm( int signo ) override;
00044         void initIterators();
00045         virtual bool activateObject() override;
00046 
00047         SMInterface* shm;
00048 
00049     private:
00050         PassiveTimer ptHeartBeat;
00051         UniSetTypes::ObjectId sidHeartBeat;
00052         int maxHeartBeat;
00053         IOController::IOStateList::iterator itHeartBeat;
00054         UniSetTypes::uniset_mutex mutex_start;
00055 };
00056 // ---------------------------------------------------------------------------
00057 #endif