如何让你的程序支持lua脚本

最近做了一个控制机械臂的程序,使用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)
相关推荐
AI原吾8 分钟前
掌握Python-uinput:打造你的输入设备控制大师
开发语言·python·apython-uinput
机器视觉知识推荐、就业指导9 分钟前
Qt/C++事件过滤器与控件响应重写的使用、场景的不同
开发语言·数据库·c++·qt
毕设木哥10 分钟前
25届计算机专业毕设选题推荐-基于python的二手电子设备交易平台【源码+文档+讲解】
开发语言·python·计算机·django·毕业设计·课程设计·毕设
珞瑜·11 分钟前
Matlab R2024B软件安装教程
开发语言·matlab
weixin_4554461711 分钟前
Python学习的主要知识框架
开发语言·python·学习
孤寂大仙v17 分钟前
【C++】STL----list常见用法
开发语言·c++·list
她似晚风般温柔7891 小时前
Uniapp + Vue3 + Vite +Uview + Pinia 分商家实现购物车功能(最新附源码保姆级)
开发语言·javascript·uni-app
咩咩大主教1 小时前
C++基于select和epoll的TCP服务器
linux·服务器·c语言·开发语言·c++·tcp/ip·io多路复用
FuLLovers2 小时前
2024-09-13 冯诺依曼体系结构 OS管理 进程
linux·开发语言
everyStudy3 小时前
JS中判断字符串中是否包含指定字符
开发语言·前端·javascript