查看: 2|回复: 0

CAN发送 lua

[复制链接]

15

主题

0

回帖

57

积分

管理员

积分
57
发表于 6 小时前 | 显示全部楼层 |阅读模式
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)



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注公众号

相关侵权、举报、投诉及建议等,请发 E-mail:admin@discuz.vip

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖
关注公众号
返回顶部