Skip to content
/ llcom Public

🛠功能强大的串口工具。支持Lua自动化处理、串口调试、WinUSB、串口曲线、TCP测试、MQTT测试、编码转换、乱码恢复等功能

License

Notifications You must be signed in to change notification settings

chenxuuu/llcom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

9343b27 · Jul 13, 2019
Jun 24, 2019
Jul 13, 2019
Jul 13, 2019
Jun 26, 2019
Apr 16, 2019
Apr 16, 2019
Jul 13, 2019
Jul 13, 2019
Jul 3, 2019
Jun 25, 2019
Jun 25, 2019
Jun 26, 2019
Jul 2, 2019

Repository files navigation

LLCOM

icon

Build Status Build status MIT code-size

可运行lua脚本的高自由度串口调试工具。

下载

release页面稳定版:GitHub

CI自动构建,快照版:Appveyor Artifacts

功能列表

  • 其他串口调试功能具有的功能
  • 收发日志清晰明了,同时显示HEX值与实际字符串
  • 自动保存串口与Lua脚本日志,并附带时间
  • 串口断开后,如果再次连接,会自动重连
  • 发送的数据可被用户自定义的Lua脚本提前处理
  • 右侧快捷发送栏,快捷发送条目数量不限制
  • 可独立运行Lua脚本,并拥有定时器与协程任务特性(移植自合宙Luat Task架构

screen screen2 screen3

特色功能示范

使用Lua脚本提前处理待发送的数据

  1. 结尾加上换行回车
return uartData.."\r\n"
  1. 发送16进制数据
return uartData:fromHex()

此脚本可将形如30313233发送数据,处理为0123的结果

  1. 更多玩法等你发现
json = require("JSON")
t = uartData:split(",")
return JSON:encode({
    key1 = t[1],
    key2 = t[2],
    key3 = t[3],
})

此脚本可将形如a,b,c发送数据,处理为{"key1":"a","key2":"b","key3":"c"}的结果

此处理脚本,同样对右侧快捷发送区域有效。

独立的Lua脚本自动处理串口收发

右侧的Lua脚本调试区域,可直接运行你写的串口测试脚本,如软件自带的:

--注册串口接收函数
uartReceive = function (data)
    log.info("uartReceive",data)
    sys.publish("UART",data)--发布消息
end

--新建任务,等待接收到消息再继续运行
sys.taskInit(function()
    while true do
        local _,udata = sys.waitUntil("UART")--等待消息
        log.info("task waitUntil",udata)
        local sendResult = apiSendUartData("ok!")--发送串口消息
        log.info("uart send",sendResult)
    end
end)

--新建任务,每休眠1000ms继续一次
sys.taskInit(function()
    while true do
        sys.wait(1000)--等待1000ms
        log.info("task wait",os.time())
    end
end)

--1000ms循环定时器
sys.timerLoopStart(log.info,1000,"timer test")

使用此功能,你可以完成大部分的自动化串口调试操作。

接口文档

接口文档可以在这个页面查看

已知问题与待添加的功能(请大家反馈,谢谢!)

  • bug:快速大量lua任务回调会有概率性报错(主分支)
  • bug:使用nlua作为框架时,会在调用协程代码时报错(nlua分支代码)
  • bug:使用vJine.Lua作为框架时,会出现加载失败的情况,原因不明(主分支)
  • bug:某些条件下(比如Air720重启),COM口消失后不会被释放,导致无法再次开启该COM口,只能重启软件

常见问题

升级的时候要替换哪几个文件?

点升级就行了,一键升级

开源

如果各位大佬不觉得麻烦的话,欢迎对本项目进行pr或直接重构。

本项目在前期只是为了实现功能,代码相当零散,所以不太适合阅读我的源码进行学习,等我有空的时候会重构代码。

本项目采用Apache 2.0协议,如有借用,请保留指向该项目的链接。