ARGoS  3
A parallel, multi-engine simulator for swarm robotics
plugins/robots/foot-bot/control_interface/ci_footbot_range_and_bearing_actuator.h
Go to the documentation of this file.
00001 
00037 #ifndef CCI_FOOTBOT_RANGE_AND_BEARING_ACTUATOR_H
00038 #define CCI_FOOTBOT_RANGE_AND_BEARING_ACTUATOR_H
00039 
00040 /* To avoid dependency problems when including */
00041 namespace argos {
00042    class CCI_FootBotRangeAndBearingActuator;
00043 }
00044 
00045 #include <string>
00046 #include <vector>
00047 #include <iostream>
00048 
00049 #include <argos3/core/control_interface/ci_actuator.h>
00050 #include <argos3/plugins/robots/foot-bot/control_interface/ci_range_and_bearing_sensor.h>
00051 
00052 namespace argos {
00053 
00054    class CCI_FootBotRangeAndBearingActuator : public CCI_Actuator {
00055 
00056    public:
00057 
00058       CCI_FootBotRangeAndBearingActuator() :
00059          m_bBufferFree(true) {
00060       }
00061 
00062       virtual ~CCI_FootBotRangeAndBearingActuator() {
00063       }
00064 
00065       /* Checks if the last packet has been sent already. */
00066       inline bool IsLastPacketSent() const {
00067          return m_bBufferFree;
00068       }
00069 
00070       /* Set the data to send. This will be ignored if the last packet has not been sent yet. */
00071       virtual void SetData(const SRABPacket::TData& t_data) = 0;
00072 
00073    protected:
00074 
00075       bool m_bBufferFree;
00076 
00077    };
00078 
00079 }
00080 
00081 #endif