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
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