如何使用LUA脚本动态解析外部智能设备的通信协议

有一个项目,需要通过串口或者TCP/IP读取一些设备的运行参数,例如温湿度、发电机等,通信协议一般是MODBUS或者电总协议的帧格式协议。为了使程序使用更多的设备,打算用LUA来解析通信协议。这样子在设备在不同的应用场合时,只需要更新或者增加LUA脚本就可以接入新的设备类型。

实现思路

1. 每个唯一LUA文件对应特定设备的协议接入,在协议里完成数据帧的发送、接收、校验,并得到设备的运行参数,最后返回C应用程序。

2. 要解决的问题:

              1)数据的发送、CRC校验是在C程序那边完成的,所以需要解决如何将数组(表)传递给C。

              2)LUA的函数解析完了之后,如何将设备的参数返回到C,C如何得到LUA返回的参数。参数是多个,且数量不定,内容不定,可能是整形、可能是字符串。

 

3. 经过搜索网上一些资料,做了一个简单测试程序,基本实现了上述的问题。剩下的就是完善和移植到现有C系统中了。实现例子:

          1)https://blog.youkuaiyun.com/shjhuang/article/details/104273145

          2)https://blog.youkuaiyun.com/shjhuang/article/details/104275278

         以上只是实现的方法,最终的程序还要继续完善,如有机会再发布。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黄大刀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值