美文网首页工作生活
何不利用结构化解析

何不利用结构化解析

作者: ww4u | 来源:发表于2019-07-03 13:13 被阅读0次
  • 在设计分布式应用时总会绕不开调用接口
  • 而接口必然绕不开指令格式,编码方式等
  • 一旦有了接口,就会衍生出两套附属的一些方法,例如客户端的SDK,以及设备端的解析等
  • 互联网上通用的数据交换方式有XML和JSON
  • 传统仪器领域定义了SCPI
  • 所完成的都是数据的包装和拆包
  • 在嵌入式中常用的指令方式:指令 <参数>,设计会引起相当复杂的指令系统和参数系统,约大型的系统,命令和参数约复杂(功能稍微全面的设备都拥有动辄千页的编程手册)
  • 采用结构化接口的好处
    • 命令格式统一:名称-数值对
    • 解析简单:名-值对应,一目了然
    • 自注释: 参数有明确的命名和含义
  • 缺点
    • 信息冗余:采用名称的方式,有固定的信息结构
    • 手动调试不不方便:需要根据格式进行封包和拆解
  • 利用Lua来进行拆包
    • 利用Lua的解释器对输入进行解释省去了手动的词法,语法分析
    lua_State *pState = luaL_newstate();

    ret = luaL_loadstring( pState, "width=10 height=20");
    ret = lua_pcall( pState, 0, 0, 0 );
    ret = lua_getglobal( pState, "width" );
    ret = lua_getglobal( pState, "height" );

    int isNum;
    int width = lua_tonumberx( pState, -2, &isNum );
    int height = lua_tonumberx( pState, -1, &isNum );

    lua_close( pState );

相关文章

网友评论

    本文标题:何不利用结构化解析

    本文链接:https://www.haomeiwen.com/subject/irkqhctx.html