ARGoS  3
A parallel, multi-engine simulator for swarm robotics
plugins/robots/generic/control_interface/ci_leds_actuator.h
Go to the documentation of this file.
00001 
00007 #ifndef CCI_LEDS_ACTUATOR_H
00008 #define CCI_LEDS_ACTUATOR_H
00009 
00010 namespace argos {
00011    class CCI_LEDsActuator;
00012 }
00013 
00014 #include <argos3/core/control_interface/ci_actuator.h>
00015 #include <argos3/core/utility/datatypes/color.h>
00016 
00017 namespace argos {
00018 
00019    class CCI_LEDsActuator : public CCI_Actuator {
00020 
00021    public:
00022 
00023       typedef std::vector<CColor> TSettings;
00024 
00025    public:
00026 
00027       CCI_LEDsActuator() {}
00028 
00029       virtual ~CCI_LEDsActuator() {}
00030 
00034       inline size_t GetNumLEDs() const {
00035          return m_tSettings.size();
00036       }
00037 
00046       virtual void SetSingleColor(UInt32 un_led_number,
00047                                   const CColor& c_color);
00048       
00057       virtual void SetAllColors(const CColor& c_color);
00058 
00069       virtual void SetAllColors(const TSettings& c_colors);
00070 
00078       virtual void SetSingleIntensity(UInt32 un_led_number,
00079                                       UInt8 un_intensity);
00080 
00087       virtual void SetAllIntensities(UInt8 un_intensity);
00088 
00089 #ifdef ARGOS_WITH_LUA
00090       virtual void CreateLuaState(lua_State* pt_lua_state);
00091 #endif
00092 
00093    protected:
00094 
00095       TSettings m_tSettings;
00096 
00097    };
00098 
00099 }
00100 
00101 #endif