00001
00007 #include "ci_pan_tilt_camera_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
00020
00021
00022
00023 int LuaSetPan(lua_State* pt_lua_state) {
00024
00025 if(lua_gettop(pt_lua_state) != 1) {
00026 return luaL_error(pt_lua_state, "robot.pan_tilt_camera.set_pan() expects 1 argument");
00027 }
00028 luaL_checktype(pt_lua_state, 1, LUA_TNUMBER);
00029
00030 CLuaUtility::GetDeviceInstance<CCI_PanTiltCameraActuator>(pt_lua_state, "pan_tilt_camera")->
00031 SetPan(CRadians(lua_tonumber(pt_lua_state, 1)));
00032 return 0;
00033 }
00034 #endif
00035
00036
00037
00038
00039 #ifdef ARGOS_WITH_LUA
00040
00041
00042
00043
00044 int LuaSetTilt(lua_State* pt_lua_state) {
00045
00046 if(lua_gettop(pt_lua_state) != 1) {
00047 return luaL_error(pt_lua_state, "robot.pan_tilt_camera.set_tilt() expects 1 argument");
00048 }
00049 luaL_checktype(pt_lua_state, 1, LUA_TNUMBER);
00050
00051 CLuaUtility::GetDeviceInstance<CCI_PanTiltCameraActuator>(pt_lua_state, "pan_tilt_camera")->
00052 SetTilt(CRadians(lua_tonumber(pt_lua_state, 1)));
00053 return 0;
00054 }
00055 #endif
00056
00057
00058
00059
00060 #ifdef ARGOS_WITH_LUA
00061 void CCI_PanTiltCameraActuator::CreateLuaState(lua_State* pt_lua_state) {
00062 CLuaUtility::OpenRobotStateTable(pt_lua_state, "pan_tilt_camera");
00063 CLuaUtility::AddToTable(pt_lua_state, "_instance", this);
00064 CLuaUtility::AddToTable(pt_lua_state, "set_pan", &LuaSetPan);
00065 CLuaUtility::AddToTable(pt_lua_state, "set_tilt", &LuaSetTilt);
00066 CLuaUtility::CloseRobotStateTable(pt_lua_state);
00067 }
00068 #endif
00069
00070
00071
00072
00073 }