如何让你的程序支持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)
相关推荐
阿凡达蘑菇灯7 分钟前
langgraph---条件边
开发语言·前端·javascript
Han.miracle16 分钟前
Java的多线程——多线程(3)线程安全
java·开发语言·jvm·学习·安全·线程·多线程
周杰伦_Jay36 分钟前
【主流开发语言深度对比】Python/Go/Java/JS/Rust/C++评测
开发语言·python·golang
ldmd28442 分钟前
Go语言实战:入门篇-5:函数、服务接口和Swagger UI
开发语言·后端·golang
光子物联单片机1 小时前
C语言基础开发入门系列(八)C语言指针的理解与实战
c语言·开发语言·stm32·单片机·mcu
是苏浙1 小时前
零基础入门C语言之文件操作
c语言·开发语言
盈电智控1 小时前
体力劳动反而更难被AI取代?物联网科技如何守护最后的劳动阵地
开发语言·人工智能·python
隔壁阿布都1 小时前
Spring Boot中的Optional如何使用
开发语言·spring boot·python
小龙报1 小时前
《C语言疑难点 --- C语内存函数专题》
c语言·开发语言·c++·创业创新·学习方法·业界资讯·visual studio
国服第二切图仔2 小时前
Rust开发实战之简单游戏开发(piston游戏引擎)
开发语言·rust·游戏引擎