ci_proximity_sensor.cpp
Go to the documentation of this file.
1 
7 #include "ci_proximity_sensor.h"
8 
9 #ifdef ARGOS_WITH_LUA
10 #include <argos3/core/wrappers/lua/lua_utility.h>
11 #endif
12 
13 namespace 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 }
static void CloseRobotStateTable(lua_State *pt_state)
Closes a table in the robot state.
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.
const std::vector< Real > & GetReadings() const
std::vector< Real > m_tReadings
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...
The namespace containing all the ARGoS related code.
Definition: ci_actuator.h:12