-
Notifications
You must be signed in to change notification settings - Fork 216
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
回调报错: System.NullReferenceException: 未将对象引用设置到对象的实例。 在 llcom.LuaEnv.LuaRunEnv.runTigger() #165
Comments
遇到了相同的问题。我好像不少脚本都会遇到,就是时间一长就会有,我有一个查询的很快的脚本,就会遇到的非常频繁。 报错如下: [15:29:32:3125][I]-[sys] core loaded! 我的LUA脚本如下: local captureArray = {
"\x60\x40", -- 帧头,例如55和A7
}
-- 注册串口接收函数
apiSetCb("uart", function (data)
sys.publish("UART", data) -- 发布消息
end)
-- 将字符串转换为十六进制表示
local function toHex(str)
return (str:gsub('.', function (c)
return string.format('%02X ', string.byte(c))
end))
end
-- 获取当前时间戳
local function getTime()
return os.date("%Y-%m-%d %H:%M:%S")
end
-- 新建任务,等待接收到消息再继续运行
sys.taskInit(function()
while true do
-- 等待消息,超时1000ms
local _, data = sys.waitUntil("UART", 1000)
if data then
local timestamp = getTime()
local hexData = toHex(data)
-- 遍历捕捉数组
for _, captureStr in ipairs(captureArray) do
-- 在接收到的数据中查找完全匹配的字符串
local matchPos = data:find(captureStr, 1, true)
if matchPos then
local capturedData = data:sub(matchPos, matchPos + #captureStr - 1)
print("Timestamp:", timestamp)
print("Matched data (hex):", toHex(capturedData))
print("Matched at position:", matchPos)
print("Complete frame (hex):", hexData)
end
end
else
-- 超时处理
-- print("No data received within 1000ms")
end
end
end) |
版本也是1.1.3.3 |
xlua的bug,暂时没法修,很难搞 限制在某个特定cpu核心执行的话,感觉会影响程序性能? |
虽然不知道原因,但是可以试试看,看看我小改的这份还会不会出现这种问题? |
可以去xlua那边提个issue🤣 |
xlua本身是有多线程支持的,可以先试试楼上我发的那个版本,我编译的xlua
…---原始邮件---
发件人: ***@***.***>
发送时间: 2024年6月4日(周二) 下午2:38
收件人: ***@***.***>;
抄送: ***@***.******@***.***>;
主题: Re: [chenxuuu/llcom] 回调报错: System.NullReferenceException: 未将对象引用设置到对象的实例。 在 llcom.LuaEnv.LuaRunEnv.runTigger() (Issue #165)
可以去xlua那边提个issue🤣
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: ***@***.***>
|
感谢大大抽空帮助!新编译的程序还是会出现这个bug,但是貌似频率变低了?没有仔细测试出现的概率。 |
还是等2.0版本吧,llcom-next会换用nlua,xlua这个问题已经很久了 |
这bug快两年了,一直没有找到原因,基本只能把锅给到xlua了 |
试试这个还会出现报错吗 |
llcom.zip 目前我这里复现不了,各位可以帮忙测试下,看看这两个版本的效果是什么样的 |
我觉得这样改应该就不会有问题了 |
描述一下这个bug / Describe the bug
我在以9600波特率接收非字符串数据”FD 0F 00 00 00 00 00 00 25 FB 00 10 00 00 00 00 06 30 FE“时会时不时报出以下错误
[20:34:08:9734]回调报错:
System.NullReferenceException: 未将对象引用设置到对象的实例。
在 llcom.LuaEnv.LuaRunEnv.runTigger()
以下是我的LUA代码,当只有uartReceive=function(data) end时也有该问题
复现步骤 / To Reproduce
接收我描述的二进制数据
预期的行为 / Expected behavior
应该能被正确解析
截图 / Screenshots
日志 / Logs
[20:37:37:4981][I]-[电流:366 mA, 电机电压:5514 mV, 速度:0 RPM, 电池电压:8806 mV, 充电电压:40 mV, 充电电流:24 mA, 占空比:61, 错误码:0]
[20:37:37:7984][I]-[电流:396 mA, 电机电压:5532 mV, 速度:0 RPM, 电池电压:8709 mV, 充电电压:40 mV, 充电电流:0 mA, 占空比:62, 错误码:0]
[20:37:37:8983]回调报错:
System.NullReferenceException: 未将对象引用设置到对象的实例。
在 llcom.LuaEnv.LuaRunEnv.runTigger()
[20:37:37:9982][I]-[电流:335 mA, 电机电压:5477 mV, 速度:0 RPM, 电池电压:9279 mV, 充电电压:32 mV, 充电电流:0 mA, 占空比:57, 错误码:0]
[20:37:38:3981][I]-[电流:396 mA, 电机电压:5502 mV, 速度:0 RPM, 电池电压:9583 mV, 充电电压:40 mV, 充电电流:0 mA, 占空比:56, 错误码:0]
[20:37:38:6981][I]-[电流:396 mA, 电机电压:5520 mV, 速度:0 RPM, 电池电压:9605 mV, 充电电压:40 mV, 充电电流:24 mA, 占空比:56, 错误码:0]
[20:37:38:7990][I]-[电流:366 mA, 电机电压:5520 mV, 速度:0 RPM, 电池电压:9620 mV, 充电电压:40 mV, 充电电流:0 mA, 占空比:55, 错误码:0]
[20:37:38:8977][I]-[电流:396 mA, 电机电压:5520 mV, 速度:0 RPM, 电池电压:9605 mV, 充电电压:40 mV, 充电电流:0 mA, 占空比:56, 错误码:0]
[20:37:38:9976][I]-[电流:396 mA, 电机电压:5532 mV, 速度:0 RPM, 电池电压:9612 mV, 充电电压:40 mV, 充电电流:0 mA, 占空比:55, 错误码:0]
[20:37:39:2976][I]-[电流:335 mA, 电机电压:5416 mV, 速度:0 RPM, 电池电压:9612 mV, 充电电压:40 mV, 充电电流:0 mA, 占空比:56, 错误码:0]
[20:37:39:3964][I]-[电流:0 mA, 电机电压:4050 mV, 速度:0 RPM, 电池电压:9634 mV, 充电电压:32 mV, 充电电流:0 mA, 占空比:0, 错误码:0]
[20:37:39:4954]回调报错:
System.NullReferenceException: 未将对象引用设置到对象的实例。
在 llcom.LuaEnv.LuaRunEnv.runTigger()
系统 / System
Win10企业版
软件版本 / Version
1.1.3.3
验证
The text was updated successfully, but these errors were encountered: