ARGoS  3
A parallel, multi-engine simulator for swarm robotics
plugins/robots/generic/control_interface/ci_range_and_bearing_actuator.h
Go to the documentation of this file.
00001 
00007 #ifndef CI_RANGE_AND_BEARING_ACTUATOR_H
00008 #define CI_RANGE_AND_BEARING_ACTUATOR_H
00009 
00010 namespace argos {
00011    class CCI_RangeAndBearingActuator;
00012 }
00013 
00014 #include <argos3/core/control_interface/ci_actuator.h>
00015 #include <argos3/core/utility/datatypes/byte_array.h>
00016 
00017 namespace argos {
00018 
00019    class CCI_RangeAndBearingActuator : public CCI_Actuator {
00020 
00021    public:
00022 
00023       virtual ~CCI_RangeAndBearingActuator() {}
00024 
00025       inline size_t GetSize() const {
00026          return m_cData.Size();
00027       }
00028 
00029       void SetData(const CByteArray& c_data);
00030 
00031       inline void SetData(size_t un_idx,
00032                           UInt8 un_value) {
00033          m_cData[un_idx] = un_value;
00034       }
00035 
00036       inline void ClearData() {
00037          m_cData.Zero();
00038       }
00039 
00040 #ifdef ARGOS_WITH_LUA
00041       virtual void CreateLuaState(lua_State* pt_lua_state);
00042 #endif
00043 
00044    protected:
00045 
00046       CByteArray m_cData;
00047 
00048    };
00049 
00050 }
00051 
00052 #endif