|
|
function MakeRawCanCmd(ichannid, uid, bvalues, datalen) --设备自带的can
-- if 1 then print("当前can指令下发无效") return end
local int8_array = {}
-- 通过按位运算和掩码获取每个字节的值
for i = 1, 4 do
iDo = 4 - i
local byte_value = bit32.band(bit32.rshift(uid, (iDo) * 8), 0xFF)
--local byte_value = (uid >> ((i - 1) * 8)) & 0xFF
table.insert(int8_array, byte_value)
end
for i, value in ipairs(bvalues) do
--print(string.format("Index %d: %d", i, value))
if i <= datalen then
table.insert(int8_array, value)
end
end
strcmd = ThefitPublic.int_table_to_hex_string(int8_array)
--print(strcmd)
Dataloader.redisMq:rpush(ConstDefine.RdsMq .. 'RawCan_' .. ichannid, strcmd)
end
----------------调用,如果是扩展帧需要自己加0x80000000
local Data ={
0x11,0x22,
0x00,0x33,
0x00,0xAA,
0x00,0x00
}
MakeRawCanCmd(4,0x0400FF99+0x80000000,Data,8)
|
|