ARGoS  3
A parallel, multi-engine simulator for swarm robotics
plugins/robots/foot-bot/control_interface/ci_footbot_turret_actuator.cpp
Go to the documentation of this file.
00001 
00007 #include "ci_footbot_turret_actuator.h"
00008 
00009 #ifdef ARGOS_WITH_LUA
00010 #include <argos3/core/wrappers/lua/lua_utility.h>
00011 #endif
00012 
00013 namespace argos {
00014 
00015    /****************************************/
00016    /****************************************/
00017 
00018     const CRange<SInt32> CCI_FootBotTurretActuator::SPEED_RANGE(-4,4);
00019     const CRange<Real>   CCI_FootBotTurretActuator::NORMALIZED_SPEED_RANGE(-1.0,1.0);
00020 
00021    /****************************************/
00022    /****************************************/
00023 
00024 #ifdef ARGOS_WITH_LUA
00025    int LuaTurretSetRotation(lua_State* pt_lua_state) {
00026       /* Check parameters */
00027       if(lua_gettop(pt_lua_state) != 1) {
00028          return luaL_error(pt_lua_state, "robot.turret.set_rotation() expects 1 argument");
00029       }
00030       luaL_checktype(pt_lua_state, 1, LUA_TNUMBER);
00031       /* Perform action */
00032       CLuaUtility::GetDeviceInstance<CCI_FootBotTurretActuator>(pt_lua_state, "turret")->
00033          SetRotation(CRadians(lua_tonumber(pt_lua_state, 1)));
00034       return 0;
00035    }
00036 #endif
00037 
00038 #ifdef ARGOS_WITH_LUA
00039    int LuaTurretSetRotationSpeed(lua_State* pt_lua_state) {
00040       /* Check parameters */
00041       if(lua_gettop(pt_lua_state) != 1) {
00042          return luaL_error(pt_lua_state, "robot.turret.set_rotation_speed() expects 1 argument");
00043       }
00044       luaL_checktype(pt_lua_state, 1, LUA_TNUMBER);
00045       /* Perform action */
00046       CLuaUtility::GetDeviceInstance<CCI_FootBotTurretActuator>(pt_lua_state, "turret")->
00047          SetRotationSpeed(lua_tonumber(pt_lua_state, 1));
00048       return 0;
00049    }
00050 #endif
00051 
00052 #ifdef ARGOS_WITH_LUA
00053    int LuaTurretSetSpeedControlMode(lua_State* pt_lua_state) {
00054       /* Check parameters */
00055       if(lua_gettop(pt_lua_state) != 0) {
00056          return luaL_error(pt_lua_state, "robot.turret.set_speed_control_mode() expects no arguments");
00057       }
00058       /* Perform action */
00059       CLuaUtility::GetDeviceInstance<CCI_FootBotTurretActuator>(pt_lua_state, "turret")->
00060          SetSpeedControlMode();
00061       return 0;
00062    }
00063 #endif
00064 
00065 #ifdef ARGOS_WITH_LUA
00066    int LuaTurretSetPositionControlMode(lua_State* pt_lua_state) {
00067       /* Check parameters */
00068       if(lua_gettop(pt_lua_state) != 0) {
00069          return luaL_error(pt_lua_state, "robot.turret.set_position_control_mode() expects no arguments");
00070       }
00071       /* Perform action */
00072       CLuaUtility::GetDeviceInstance<CCI_FootBotTurretActuator>(pt_lua_state, "turret")->
00073          SetPositionControlMode();
00074       return 0;
00075    }
00076 #endif
00077 
00078 #ifdef ARGOS_WITH_LUA
00079    int LuaTurretSetPassiveMode(lua_State* pt_lua_state) {
00080       /* Check parameters */
00081       if(lua_gettop(pt_lua_state) != 0) {
00082          return luaL_error(pt_lua_state, "robot.turret.set_passive_mode() expects no arguments");
00083       }
00084       /* Perform action */
00085       CLuaUtility::GetDeviceInstance<CCI_FootBotTurretActuator>(pt_lua_state, "turret")->
00086          SetPassiveMode();
00087       return 0;
00088    }
00089 #endif
00090 
00091    /****************************************/
00092    /****************************************/
00093 
00094 #ifdef ARGOS_WITH_LUA
00095    void CCI_FootBotTurretActuator::CreateLuaState(lua_State* pt_lua_state) {
00096       CLuaUtility::OpenRobotStateTable(pt_lua_state, "turret");
00097       CLuaUtility::AddToTable(pt_lua_state, "_instance", this);
00098       CLuaUtility::AddToTable(pt_lua_state, "set_rotation", &LuaTurretSetRotation);
00099       CLuaUtility::AddToTable(pt_lua_state, "set_rotation_speed", &LuaTurretSetRotationSpeed);
00100       CLuaUtility::AddToTable(pt_lua_state, "set_position_control_mode", &LuaTurretSetPositionControlMode);
00101       CLuaUtility::AddToTable(pt_lua_state, "set_speed_control_mode", &LuaTurretSetSpeedControlMode);
00102       CLuaUtility::AddToTable(pt_lua_state, "set_passive_mode", &LuaTurretSetPassiveMode);
00103       CLuaUtility::CloseRobotStateTable(pt_lua_state);
00104    }
00105 #endif
00106 
00107    /****************************************/
00108    /****************************************/
00109 
00110 }