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),invert(false){}
00046
00047 UniSetTypes::ObjectId sid;
00048 UniversalIO::IOTypes iotype;
00049 bool invert;
00050 };
00051
00052 typedef std::list<OutputInfo> OutputList;
00053 OutputList lst;
00055 UniSetTypes::ObjectId inID;
00056 UniversalIO::IOTypes inIOType;
00057 UniSetTypes::LampCommand inState;
00059 private:
00060 };
00061
00062 #endif // Multiplexer_H_
00063