uniset-algorithms 0.2
Multiplexer.h
00001 // -----------------------------------------------------------------------------
00002 #ifndef Multiplexer_H_
00003 #define Multiplexer_H_
00004 // -----------------------------------------------------------------------------
00005 #include <list>
00006 #include <UniSetTypes.h>
00007 #include "Multiplexer_SK.h"
00008 // -----------------------------------------------------------------------------
00024 class Multiplexer:
00025     public Multiplexer_SK
00026 {
00027     public:
00028         Multiplexer( UniSetTypes::ObjectId id, xmlNode* cnode );
00029         virtual ~Multiplexer();
00030 
00031         static DebugStream dlog;
00032         static void init_dlog( DebugStream& dlog );
00033     
00034     protected:
00035         virtual void step();
00036         virtual void sigterm( int signo );
00037         void setOut();
00038 #ifdef ASKMODE
00039         virtual void askSensors( UniversalIO::UIOCommand cmd );
00040         virtual void sensorInfo( UniSetTypes::SensorMessage* sm );
00041         virtual void sysCommand( UniSetTypes::SystemMessage* sm );
00042 #endif
00043         struct OutputInfo
00044         {
00045             OutputInfo():sid(UniSetTypes::DefaultObjectId){}
00046 
00047             UniSetTypes::ObjectId sid;
00048             UniversalIO::IOTypes iotype;    
00049         };
00050 
00051         typedef std::list<OutputInfo> OutputList; 
00052         OutputList lst; 
00054         UniSetTypes::ObjectId inID;         
00055         UniversalIO::IOTypes inIOType;      
00056         UniSetTypes::LampCommand inState;       
00058     private:
00059 };
00060 // -----------------------------------------------------------------------------
00061 #endif // Multiplexer_H_
00062 // -----------------------------------------------------------------------------