只有在跨字节的情况下,才区分大端和小端模式
跨字节,即信号长度大于8位时
原始值*加权+偏移量=物理值
物理值:仪表盘显示的值
原始值:信号值
案例1:
比如想要发动机转速显示为4000rpm,那么要发送的原始值是多少呢,加权为0.25,偏移量是0
原始值*0.25+0=4000
原始值=16000 转换成十进制是3E 80 在信号的layout里面查看到转速占3 4字节的位置
此时就要关注信号的模式是大端还是小端
大端模式 那么要发送的信号为 00 00 3E 80 00 00 00 00
小端模式 那么要发送的信号为 00 00 80 3E 00 00 00 00
案例2:
想要仪表盘的车速显示为120km/h,加权为0.5,偏移量为0,车速在信号中占4 5字节的位置
先算出原始值,120=原始值*0.5+0
原始值=2400 换算成十六进制 为9 60,不够的高位补0 完整的数据就是09 60
如果是大端模式,那么要发送的数据为 00 00 00 00 09 60 00 00
如果是小端模式,那么要发送的数据位 00 00 00 00 60 09 00 00
总结:
跨字节的时候,才考虑大端小端 模式是整车厂定义好的,不能修改
1.大端模式 摩托罗拉motorola模式 原始值不变,直接发送
2.小端模式 intel模式,原始值的高低位要调换再发送