|
UniSet
2.0.0
|
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
1.7.6.1