user_script/电池测试.lua
2023-09-20 16:17:13 +08:00

57 lines
1.8 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

function getBattInfo(str)
local a1,a2,a3,a4,a5,a6,a7,a8,a9,b1,b2,b3,b4,b5,b6,b7,b8= string.unpack(">hhhhhhhhhhhhhhhhh",str)
local rst = ""
.."实际电压 "..(a1/100).."V\r\n"
.."电芯数量 "..a2.."\r\n"
.."电量 "..a3.."%\r\n"
.."容量 "..(a4/100).."AH\r\n"
.."输出电流 "..(a5/100).."A\r\n"
.."充电电流 "..(a6/100).."A\r\n"
.."温度1 "..a7.."\r\n"
.."温度2 "..a8.."\r\n"
.."温度3 "..a9.."\r\n"
.."电芯1电压 "..(b1/1000).."V\r\n"
.."电芯2电压 "..(b2/1000).."V\r\n"
.."电芯3电压 "..(b3/1000).."V\r\n"
.."电芯4电压 "..(b4/1000).."V\r\n"
.."电芯5电压 "..(b5/1000).."V\r\n"
.."电芯6电压 "..(b6/1000).."V\r\n"
.."电芯7电压 "..(b7/1000).."V\r\n"
.."电芯8电压 "..(b8/1000).."V\r\n"
apiAddPoint((a1/100),8)
apiAddPoint(a3,9)
return rst
end
function getinfo(data)
local info = "\r\n长度:["..string.len(data).."]字节\r\n原始数据:\r\n"..data:toHex()
print(info)
--按换行符切开,防止粘包
local udata = data:split(string.char(0x01)..string.char(0x03)..string.char(0x3a))
--每包都处理一遍
for i=1,#udata do
if #udata[i]>10 then
local rst = "\r\n------电池信息------\r\n"..getBattInfo(udata[i]).."\r\n"
print(rst)
end
end
end
--注册串口接收函数
apiSetCb("uart",getinfo)
--发送数据中间间隔时间单位ms
local sendDelay = 1000*60
local cmd="01030000001D85C3"
sys.taskInit(function ()
while true do
log.info("发送指令",apiSendUartData(cmd:fromHex()),cmd)
sys.wait(sendDelay)
end
end)