uniset-algorithms  0.2
Diesel.h
00001 #ifndef Diesel_H_
00002 #define Diesel_H_
00003 // -----------------------------------------------------------------------------
00004 #include <TriggerOutput.h>
00005 #include <TriggerOR.h>
00006 #include <ObjectsManager.h>
00007 #include "ObjectMode.h" 
00008 #include "DebugStream.h" 
00009 #include "A2D.h"
00010 #include "Diesel_SK.h"
00011 // ------------------------------------------------------------------------------
00013 class Diesel:
00014     public Diesel_SK
00015 {
00016     public:
00017         Diesel( unsigned int num, const std::string qname, ObjectsManager* master, xmlNode* node );
00018         ~Diesel();
00019 
00020         virtual char* getName();
00021         bool isProtection();
00022         bool isOnMode();
00023         inline ObjectMode getMode(){ return (ObjectMode)in_state_as; }
00024 
00025         ObjectsManager* master;
00026 
00028 //      TriggerOutput<Diesel, UniSetTypes::ObjectId, bool>* msg;
00029 
00030         friend std::ostream& operator<<(std::ostream& os, Diesel& am );
00031         friend std::ostream& operator<<(std::ostream& os, Diesel* am );
00032 
00033         inline unsigned int getNumber(){ return num; }
00034         
00035         static DebugStream dlog;
00036         static void init_dlog( DebugStream& dlog );
00037 
00038     protected:
00039         Diesel();
00040 
00041         virtual void step();
00042         virtual void sensorInfo( UniSetTypes::SensorMessage *sm );
00043         virtual void askSensors( UniversalIO::UIOCommand cmd );
00044         virtual void sigterm( int signo );
00045 
00046         UniSetTypes::uniset_mutex valmutex;
00047 
00048     private:
00049         unsigned int num;
00050         A2D a2d;
00051 };
00052 // ------------------------------------------------------------------------------------------
00053 #endif // Diesel_H_
00054 // ------------------------------------------------------------------------------------------
00055