ARGoS  3
A parallel, multi-engine simulator for swarm robotics
lua_controller.h
Go to the documentation of this file.
1 
7 #include <argos3/core/control_interface/ci_controller.h>
8 #include <argos3/core/utility/math/rng.h>
9 
10 extern "C" {
11 #include <lua.h>
12 }
13 
14 namespace argos {
15 
16  class CLuaController : public CCI_Controller {
17 
18  public:
19 
21 
22  virtual ~CLuaController();
23 
24  virtual void Init(TConfigurationNode& t_tree);
25 
26  virtual void ControlStep();
27 
28  virtual void Reset();
29 
30  virtual void Destroy();
31 
32  inline lua_State* GetLuaState() {
33  return m_ptLuaState;
34  }
35 
36  virtual void SetLuaScript(const std::string& str_script,
37  TConfigurationNode& t_tree);
38 
39  virtual void SetLuaScript(const std::string& str_script);
40 
41  virtual void CreateLuaState();
42 
43  virtual void SensorReadingsToLuaState();
44 
45  virtual void ParametersToLuaState(TConfigurationNode& t_tree);
46 
47  inline bool IsOK() const {
48  return m_bIsOK;
49  }
50 
51  std::string GetErrorMessage();
52 
53  private:
54 
55  lua_State* m_ptLuaState;
56  std::string m_strScriptFileName;
57  bool m_bScriptActive;
58  bool m_bIsOK;
59  CRandom::CRNG* m_pcRNG;
60 
61  };
62 
63 }
argos
The namespace containing all the ARGoS related code.
Definition: ci_actuator.h:12
argos::CLuaController::GetLuaState
lua_State * GetLuaState()
Definition: lua_controller.h:32
argos::CLuaController::GetErrorMessage
std::string GetErrorMessage()
Definition: lua_controller.cpp:212
argos::TConfigurationNode
ticpp::Element TConfigurationNode
The ARGoS configuration XML node.
Definition: argos_configuration.h:27
argos::CRandom::CRNG
The RNG.
Definition: rng.h:90
argos::CLuaController::Destroy
virtual void Destroy()
The default implementation of this method does nothing.
Definition: lua_controller.cpp:92
argos::CLuaController::Reset
virtual void Reset()
Resets the state of the controller to what it was right after Init() was executed.
Definition: lua_controller.cpp:78
argos::CLuaController::CreateLuaState
virtual void CreateLuaState()
Definition: lua_controller.cpp:146
argos::CLuaController::IsOK
bool IsOK() const
Definition: lua_controller.h:47
argos::CLuaController::SetLuaScript
virtual void SetLuaScript(const std::string &str_script, TConfigurationNode &t_tree)
Definition: lua_controller.cpp:104
argos::CLuaController
Definition: lua_controller.h:16
argos::CLuaController::~CLuaController
virtual ~CLuaController()
Definition: lua_controller.cpp:27
argos::CLuaController::ParametersToLuaState
virtual void ParametersToLuaState(TConfigurationNode &t_tree)
Definition: lua_controller.cpp:191
argos::CLuaController::ControlStep
virtual void ControlStep()
Executes a control step.
Definition: lua_controller.cpp:64
argos::CLuaController::Init
virtual void Init(TConfigurationNode &t_tree)
Initializes the controller.
Definition: lua_controller.cpp:33
argos::CLuaController::SensorReadingsToLuaState
virtual void SensorReadingsToLuaState()
Definition: lua_controller.cpp:175
argos::CLuaController::CLuaController
CLuaController()
Definition: lua_controller.cpp:17
argos::CCI_Controller
The basic interface for a robot controller.
Definition: ci_controller.h:30