ARGoS
3
A parallel, multi-engine simulator for swarm robotics
|
00001 00007 #include "ci_footbot_distance_scanner_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 #ifdef ARGOS_WITH_LUA 00019 int LuaDistanceScannerEnable(lua_State* pt_lua_state) { 00020 /* Check parameters */ 00021 if(lua_gettop(pt_lua_state) != 0) { 00022 return luaL_error(pt_lua_state, "robot.distance_scanner.enable() expects no arguments"); 00023 } 00024 /* Perform action */ 00025 CLuaUtility::GetDeviceInstance<CCI_FootBotDistanceScannerActuator>(pt_lua_state, "distance_scanner")->Enable(); 00026 return 0; 00027 } 00028 00029 int LuaDistanceScannerDisable(lua_State* pt_lua_state) { 00030 /* Check parameters */ 00031 if(lua_gettop(pt_lua_state) != 0) { 00032 return luaL_error(pt_lua_state, "robot.distance_scanner.disable() expects no arguments"); 00033 } 00034 /* Perform action */ 00035 CLuaUtility::GetDeviceInstance<CCI_FootBotDistanceScannerActuator>(pt_lua_state, "distance_scanner")->Disable(); 00036 return 0; 00037 } 00038 00039 int LuaDistanceScannerSetAngle(lua_State* pt_lua_state) { 00040 /* Check parameters */ 00041 if(lua_gettop(pt_lua_state) != 1) { 00042 return luaL_error(pt_lua_state, "robot.distance_scanner.set_angle() expects 1 argument"); 00043 } 00044 luaL_checktype(pt_lua_state, 1, LUA_TNUMBER); 00045 /* Perform action */ 00046 CLuaUtility::GetDeviceInstance<CCI_FootBotDistanceScannerActuator>(pt_lua_state, "distance_scanner")->SetAngle(CRadians(lua_tonumber(pt_lua_state, 1))); 00047 return 0; 00048 } 00049 00050 int LuaDistanceScannerSetRPM(lua_State* pt_lua_state) { 00051 /* Check parameters */ 00052 if(lua_gettop(pt_lua_state) != 1) { 00053 return luaL_error(pt_lua_state, "robot.distance_scanner.set_rpm() expects 1 argument"); 00054 } 00055 luaL_checktype(pt_lua_state, 1, LUA_TNUMBER); 00056 /* Perform action */ 00057 CLuaUtility::GetDeviceInstance<CCI_FootBotDistanceScannerActuator>(pt_lua_state, "distance_scanner")->SetRPM(lua_tonumber(pt_lua_state, 1)); 00058 return 0; 00059 } 00060 #endif 00061 00062 /****************************************/ 00063 /****************************************/ 00064 00065 #ifdef ARGOS_WITH_LUA 00066 void CCI_FootBotDistanceScannerActuator::CreateLuaState(lua_State* pt_lua_state) { 00067 CLuaUtility::OpenRobotStateTable (pt_lua_state, "distance_scanner" ); 00068 CLuaUtility::AddToTable (pt_lua_state, "_instance", this ); 00069 CLuaUtility::AddToTable (pt_lua_state, "enable", &LuaDistanceScannerEnable ); 00070 CLuaUtility::AddToTable (pt_lua_state, "disable", &LuaDistanceScannerDisable ); 00071 CLuaUtility::AddToTable (pt_lua_state, "set_angle", &LuaDistanceScannerSetAngle); 00072 CLuaUtility::AddToTable (pt_lua_state, "set_rpm", &LuaDistanceScannerSetRPM ); 00073 CLuaUtility::CloseRobotStateTable(pt_lua_state ); 00074 } 00075 #endif 00076 00077 /****************************************/ 00078 /****************************************/ 00079 00080 }