最近做了一个控制机械臂的程序,使用C语言开发的,调试的时候总是需要修改代码来调整运动轨迹,
总是要编译,实在烦人
不过有个方法就是使用lua来调试运动逻辑
代码如下
static int lua_up(lua_State*l)
{
size_t step=luaL_checkinteger(l,1);
//向上动作
up(step);
return 0;
}
static int lua_down(lua_State*l)
{
size_t step=luaL_checkinteger(l,1);
//向下动作
down(step);
return 0;
}
static int lua_left(lua_State*l)
{
size_t step=luaL_checkinteger(l,1);
//向左动作
left(step);
return 0;
}
static int lua_right(lua_State*l)
{
size_t step=luaL_checkinteger(l,1);
//向右动作
right(step);
return 0;
}
lua_State* initLua()
{
lua_State *L;
L=luaL_newstate();
luaL_openlibs(L);
lua_checkstack(L,1000);
lua_register(L,"go_left",lua_left);
lua_register(L,"go_right",lua_rigit);
lua_register(L,"go_up",lua_up);
lua_register(L,"go_down",lua_down);
return L;
}
lua_State* LoadScript(char *file)
{
lua_State* L=initLua();
if(luaL_loadfile(L,file)||lua_pcall(L,0,0,0))
{
lua_pop(L,1);
lua_close(L);
return NULL;
}
return L;
}
int main(int argc,char **argv)
{
loadScript(argv[1]);
}
编译需要链接lua库,之后运行程序的时候,指定一个lua脚本就可以了,以下是示例
--main.lua
--向左走10步
go_left(10)
--向下走100步
go_down(100)
--向耐听走15步
go_right(15)