硬汉嵌入式论坛

 找回密码
 立即注册
查看: 474|回复: 10
收起左侧

[UART] lua 完成串口帧结构解析及命令处理

[复制链接]

2

主题

36

回帖

42

积分

新手上路

中国梦我的梦

积分
42
发表于 2025-9-2 22:24:20 | 显示全部楼层 |阅读模式
现在产品供应的甲方比较多,各家核心算法一致,只是串口协议不一致,每次创建一个协议就需要再开一个程序分支,程序版本越来越多。请问能不能用lua编写协议解析脚本程序,完成协议帧结构解析及应用层协议命令处理?实现核心程序对多个脚本程序的功能。
回复

使用道具 举报

25

主题

78

回帖

153

积分

初级会员

积分
153
发表于 2025-9-2 22:43:56 | 显示全部楼层
用那个解析很慢吧,直接参考一下CAN的DBC文件自己做个配置文件就可以,帧识别码,信号类型,信号长度,信号起始位,信号偏移,等等,就可以了啊
回复

使用道具 举报

0

主题

65

回帖

65

积分

初级会员

积分
65
发表于 2025-9-3 09:15:32 | 显示全部楼层
用 lua 也要每个协议写相应脚本
不如你每个协议对应一个 c 文件,然后你的程序编译时包含所有协议 c 文件,然后用一个参数选择使用哪个协议
bootloader 使用默认协议,譬如我是选择 cdbus/cdnet 协议,以便配置选择 app 的客户指定的协议
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
118335
QQ
发表于 2025-9-3 09:28:41 | 显示全部楼层
完全没问题,LUA控制串口解析绰绰有余。

可以集成海量协议,特别是第3方使用或者后续升级。
回复

使用道具 举报

2

主题

36

回帖

42

积分

新手上路

中国梦我的梦

积分
42
 楼主| 发表于 2025-9-3 10:47:52 | 显示全部楼层
zbq 发表于 2025-9-2 22:43
用那个解析很慢吧,直接参考一下CAN的DBC文件自己做个配置文件就可以,帧识别码,信号类型,信号长度,信号 ...

感谢,产品还有双can口可以使用这个方案。看了下串口没有现成的dbc串口方案,不敢自己写。
回复

使用道具 举报

2

主题

36

回帖

42

积分

新手上路

中国梦我的梦

积分
42
 楼主| 发表于 2025-9-3 10:53:03 | 显示全部楼层
dukelec 发表于 2025-9-3 09:15
用 lua 也要每个协议写相应脚本
不如你每个协议对应一个 c 文件,然后你的程序编译时包含所有协议 c 文件 ...

感谢。这也是个思路。
回复

使用道具 举报

2

主题

36

回帖

42

积分

新手上路

中国梦我的梦

积分
42
 楼主| 发表于 2025-9-3 10:53:49 | 显示全部楼层
eric2013 发表于 2025-9-3 09:28
完全没问题,LUA控制串口解析绰绰有余。

可以集成海量协议,特别是第3方使用或者后续升级。

谢谢老大。心里有底了。
回复

使用道具 举报

0

主题

45

回帖

45

积分

新手上路

积分
45
发表于 2025-9-3 11:06:34 | 显示全部楼层
完全不需要上lua啊。直接使用条件编译就 可以
回复

使用道具 举报

2

主题

56

回帖

62

积分

初级会员

积分
62
发表于 2025-9-4 21:03:06 | 显示全部楼层
实现是完全没问题的,但是就做这个功能,有点不合算 ,我这自由串口就是实现类似功能的
ll.png
回复

使用道具 举报

2

主题

36

回帖

42

积分

新手上路

中国梦我的梦

积分
42
 楼主| 发表于 2025-9-4 21:07:02 | 显示全部楼层
了无 发表于 2025-9-3 11:06
完全不需要上lua啊。直接使用条件编译就 可以

机载设备,增加协议会改变程序,升级程序流程比较麻烦。
回复

使用道具 举报

2

主题

36

回帖

42

积分

新手上路

中国梦我的梦

积分
42
 楼主| 发表于 2025-9-4 21:12:49 | 显示全部楼层
eric2013 发表于 2025-9-3 09:28
完全没问题,LUA控制串口解析绰绰有余。

可以集成海量协议,特别是第3方使用或者后续升级。

老大,lua底层操作文件系统用的是标准IO,我用的fatfs,是不是意味着我需要重新实现底层标准的IO,H7 tool是怎么做的。我原本计划是用fatfs读到buf后,然后再用lua_load_buf这个函数。不知道老大的方法是什么?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-9-26 18:23 , Processed in 0.054090 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表