zoukankan      html  css  js  c++  java
  • DBC格式解析(数据部分)

    dbc格式说明:DBC Format
     
    实战:
    我们先来看一段数据
    BO_ 1024 VOLTAGE01: 8 BMS2
     SG_ V01 : 7|16@0+ (0.001,0) [0|0] "" Vector__XXX
     SG_ V02 : 23|16@0+ (0.001,0) [0|0] "Unit2" Vector__XXX
     SG_ V04 : 42|16@0+ (0.001,0) [0|0] "Unit3" Vector__XXX
     SG_ V03 : 28|12@0+ (0.001,0) [0|0] "" Vector__XXX

    SG_ V01 : 7|16@0+

    此处的7是起始位置,

    |16表示数据长度是16位

    @0表示是Motorola格式(Intel格式是1),+表示是无符号数据

    关于7的起始位置,和Intel格式或者是Motorola格式是有关的,如果是Intel格式,起始位通常是0。

    (0.001,0)

    应该是说结果应该乘以0.001,通常两个字节表示的数字可能是一个很大的整数,起始我们是需要浮点数的,这样通过乘以这个0.001就能得到正确的数字。

    0表示偏移量。偏移量是干什么用的呢,比如我们计算温度的时候,用无符号型数据,但是温度有零下,怎么表示呢,我们用0这个偏移量,比如(0.5,-40)就表示得这个数据乘以0.5,再减去40,这样就能表示零下40度的数据,精度是0.5度。两个字节最大能表示255,乘以0.5大概剩下127.5,然后减掉40,就得出,我们数据的范围是从(-40度到87.5度)这样的数据范围显然是无法满足我们的要求的,所以可能要1个半字节甚至2个字节才能表达完整的温度,或者牺牲精度为代价。

    [0,0]

    是表示最大值和最小值,定义一个范围,通常不用管

    用下面两幅图来说明起始位置,也许能帮助理解

    起始位置是7:

    起始位置是0:

    起始这个是和大端小端是相关的,起始位置是7,应该是大端(单片机),起始位置是0,应该是小端(PC)。可以理解成高低位在前还是在后。

  • 相关阅读:
    vue监听多个变量的方法
    Unicode与JavaScript详解
    两个数组合并的方法
    第13章 事件
    第12章 DOM2和DOM3
    IIS发布WebService的一些常见问题
    Openlayers修改矢量要素并且可捕捉
    Openlayers修改矢量要素
    openlayers画图形返回范围
    前台html与后台php通信(上传文件)
  • 原文地址:https://www.cnblogs.com/easyc/p/7081498.html
Copyright © 2011-2022 走看看