ARGoS 3
A parallel, multi-engine simulator for swarm robotics
ci_proximity_sensor.cpp
Go to the documentation of this file.
1
8
9#ifdef ARGOS_WITH_LUA
10#include <argos3/core/wrappers/lua/lua_utility.h>
11#endif
12
13namespace argos {
14
15 /****************************************/
16 /****************************************/
17
18 const std::vector<Real>& CCI_ProximitySensor::GetReadings() const {
19 return m_tReadings;
20 }
21
22 /****************************************/
23 /****************************************/
24
25#ifdef ARGOS_WITH_LUA
26 void CCI_ProximitySensor::CreateLuaState(lua_State* pt_lua_state) {
27 CLuaUtility::OpenRobotStateTable(pt_lua_state, "proximity");
28 for(size_t i = 0; i < m_tReadings.size(); ++i) {
29 CLuaUtility::AddToTable(pt_lua_state, i+1, m_tReadings[i]);
30 }
32 }
33#endif
34
35 /****************************************/
36 /****************************************/
37
38#ifdef ARGOS_WITH_LUA
39 void CCI_ProximitySensor::ReadingsToLuaState(lua_State* pt_lua_state) {
40 lua_getfield(pt_lua_state, -1, "proximity");
41 for(size_t i = 0; i < m_tReadings.size(); ++i) {
42 lua_pushnumber(pt_lua_state, i+1 );
43 lua_pushnumber(pt_lua_state, m_tReadings[i]);
44 lua_settable (pt_lua_state, -3 );
45 }
46 lua_pop(pt_lua_state, 1);
47 }
48#endif
49
50
51 /****************************************/
52 /****************************************/
53
54}
The namespace containing all the ARGoS related code.
Definition ci_actuator.h:12
static void AddToTable(lua_State *pt_state, const std::string &str_key, void *pt_data)
Adds a pointer to a chunk of data with the given string key to the table located at the top of the st...
static void OpenRobotStateTable(lua_State *pt_state, const std::string &str_key)
Opens a table in the robot state, creating it if it does not exist.
static void CloseRobotStateTable(lua_State *pt_state)
Closes a table in the robot state.
std::vector< Real > m_tReadings
const std::vector< Real > & GetReadings() const