ARGoS
3
A parallel, multi-engine simulator for swarm robotics
|
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