添加电池测试功能

This commit is contained in:
CSSC-WORK\murmur 2023-09-20 16:17:13 +08:00
parent bf5b2f9691
commit aec5e8b9e7

57
电池测试.lua Normal file
View File

@ -0,0 +1,57 @@
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)