Vector软件CANdb++的信号起始位Bug

问题现象

前几天导入DBC文件发现不对劲,怎么生成代码的起始地址都怪怪的,检查下工程里面的配置,还真的是这样,一路查到输入文件——DBC文件,发现是DBC文件就有错误:一些CAN报文之后8字节长度,也就是64位,有些信号起始位都跑到70+甚至100+去了,能正常就怪了。

1b151e7fac3348a0b347c0f40d1879d0.png

于是找来提供DBC文件的同事确认原因,同事重新在通讯工具当中下载下来,发现并没有这个问题,我也重新下载一份,也没有这个问题。这就让我很疑惑了,我并没有修改过DBC文件,只是使用软件CANdb++打开查看过,这不应该会导致如此大的差异。

问题分析

我用重新下载“没有信号起始位问题的DBC文件”和之前下载“有信号起始位问题的DBC文件”进行记事本格式对比,居然没有一丁点差异!

原来我没有对“有信号起始位问题的DBC文件”进行保存,点击保存之后就有差异了,差异也跟CANdb++显示的一致——这么说是我打开之后不小心改到的了?

我又重新下载一份DBC文件进行试验,详细回忆着自己在这期间对DBC文件干了什么,看看我做了什么样的操作会导致不小心修改掉。

发现在进入信号定义之后,跳转Signal选项卡时偶尔会弹出这个对话框,意思就是有信号在报文里面的位置重叠了。我打开报文layout查看,发现还真是这么回事。用记事本格式打开,发现CANdb++的layout的显示跟记事本格式打开居然不一致!

e4d7365273f04019b378f131a0acd190.png

在尝试几次之后我确定,就是在“进入信号定义之后,跳转Signal选项卡”这个操作,会导致信号在报文的起始位被CANdb++修改掉——这是个Bug!!

譬如我这个信号原来在layout里面是这样出现的。

e32fe581c96a4d3185aef176298d7e37.png

做过“进入信号定义之后,跳转Signal选项卡”这个操作之后,回去layout里面变成了这样。

57e48bca9ac24da09c9fbf22ccbf60f8.png

起始位从7变成了8。

1f822457c570474f9cae9fb1076a5464.png

解决办法

我逐渐摸出问题出现的规律,它的出现要同时符合3个条件:

1、数据分布要跨字节,这意味着它不一定需要大于8字节,只需要跨字节就能满足。

2、信号需要为Motorola字节序。

3、使用CANdb++软件打开之后,刚好做过“进入信号定义之后,跳转其他选项卡”操作,不一定要跳转Signal选项卡。

针对问题的出现方式,制定出2种对策:

1、设计时规避跨字节信号或者Motorola字节序,这种会限制设计的发挥,不太推荐。

2、使用CANdb++软件打开DBC文件之后,无论做过任何操作,都不要保存,保证输入文件维持在输入时的状态。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/930019.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

初始Python篇(6)—— 字符串

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏: Python 目录 字符串的常见操作 格式化字符串 占位符 f-string 字符串的 format 方法 字符串的编码与解码 与数据验证相关的方法 …

【Axure视频教程】中继器表格——筛选后的条件判断

今天教大家在Axure制作中继器表格筛选以及筛选后条件交互的原型模板,我们可以在输入框里输入员工姓名,点击查询按钮后可以筛选出对应的数据,筛选后会进行条件判断,如果筛选不到任何数据,就会显示提示弹窗。这个原型模板…

白鲸开源即将在Doris Summit Asia 2024展示新议题!

一年一度的 Apache Doris 峰会再次启航,Doris Summit Asia 2024 现已开启报名,将于 2024 年 12 月 14 日在深圳正式举办。此次峰会,将对实时极速、存算分离、湖仓一体、半结构化数据分析、向量索引、异步物化视图等诸多特性进行全方位解读&am…

【Matlab】将所有打开的图像批量保存为JPG格式

将Matlab中所有打开的图像批量保存为JPG格式 前言一、实现步骤1. 获取所有打开的图像句柄2. 遍历并保存图像 总结 前言 在使用Matlab进行数据分析或图像处理时,我们经常会生成多个图像以便观察和比较。有时,为了方便分享或存档,我们需要将这…

python使用openpyxl处理excel

文章目录 一、写在前面1、安装openpyxl2、认识excel窗口 二、基本使用1、打开excel2、获取sheet表格3、获取sheet表格 尺寸4、获取单元格数据5、获取区域单元格数据6、sheet.iter_rows()方法7、修改单元格的值8、向表格中插入行数据9、实战:合并多个excel 三、获取E…

OpenStack-Glance组件

Glance Glance使用磁盘格式和容器格式基础配置镜像转换 Glance 是 OpenStack 的镜像服务,负责存储、发现和管理虚拟机镜像。它允许用户创建和共享镜像,用于启动虚拟机实例。 Glance 的主要功能 (1)虚拟机镜像的管理 支持镜像的上…

chrome使用问题记录

1. http自动跳转https问题 step1. 地址栏输入: chrome://net-internals/#hsts step2. 找到底部Delete domain security policies一栏,输入想处理的域名,点击delete。 注意:输入域名时去掉前缀http step3. 搞定了,再…

EasyNVR中HTTP-FLV协议无法播放怎么解决?

在科技日新月异的今天,摄像头作为公共安全领域的重要一环,其技术的不断提升正显著地改变着社会的安全格局。从最初的简单监控到如今的高清智能分析,我们可以对特定区域进行实时监控和记录,为社会的安全稳定提供了强有力的保障。 问…

【H2O2|全栈】MySQL的基本操作(三)

目录 前言 开篇语 准备工作 案例准备 多表查询 笛卡尔积 等值连接 外连接 内连接 自连接 子查询 存在和所有 含于 分页查询 建表语句 结束语 前言 开篇语 本篇继续讲解MySQL的一些基础的操作——数据字段的查询中的多表查询和分页查询,与单表查询…

电子商务人工智能指南 2/6 - 需求预测和库存管理

介绍 81% 的零售业高管表示, AI 至少在其组织中发挥了中等至完全的作用。然而,78% 的受访零售业高管表示,很难跟上不断发展的 AI 格局。 近年来,电子商务团队加快了适应新客户偏好和创造卓越数字购物体验的需求。采用 AI 不再是一…

使用国内镜像源加速Qt“更新/安装”的方法

QT更新/安装时,国外源下载很慢,国内镜像源也因网络环境的不同而速度各异,下文给出国内镜像源的配置方法。 一、命令行 1、切换对应目录,更新器默认目录是 C:\Qt 2、文件名镜像源 安装示例: .\qt-unified-windows-x…

深度学习作业十 BPTT

目录 习题6-1P 推导RNN反向传播算法BPTT. 习题6-2 推导公式(6.40)和公式(6.41)中的梯度. 习题6-3 当使用公式(6.50)作为循环神经网络的状态更新公式时, 分析其可能存在梯度爆炸的原因并给出解决方法. 习题6-2P 设计简单RNN模型&#xff0…

Css、less和Sass(SCSS)的区别详解

文章目录 Css、less和Sass(SCSS)的区别详解一、引言二、CSS 简介1.1、CSS 示例 三、Less 简介2.1、Less 特性2.2、Less 示例 四、Sass(SCSS)简介3.1、Sass 特性3.2、SCSS 示例 五、总结 Css、less和Sass(SCSS&#xff…

WebHID API演示Demo教程:设备列表,设备连接,数据读写

1. 简介 WebHID API允许网页应用直接与HID(人机接口设备)进行通信。本教程将演示如何创建一个基础的WebHID应用,实现以下功能: 显示和获取HID设备列表连接/断开HID设备读取设备数据向设备发送数据 2. 兼容性和前提条件 2.1 浏览…

R语言机器学习论文(六):总结

文章目录 介绍参考文献介绍 本文采用R语言对来自进行数据描述、数据预处理、特征筛选和模型构建。 最后我们获得了一个能有效区分乳腺组织的随机森林预测模型,它的性能非常好,这意味着它可能拥有非常好的临床价值。 在本文中,我们利用R语言对来自美国加州大学欧文分校的B…

三、代码管理-Git

文章目录 前言一、Git1. Git 与 SVN 区别2. Git 入门3. 客户端工具4. 主流Git仓库 二、GitLab1. 介绍2. 适合的场景 二、GitHub1. 介绍2. 适合的场景 三、Gitee1. 介绍2. 适合的场景 四、GitCode1. 介绍2. 适合的场景 五、总结 前言 代码托管‌ Git作为目前最为流行的版本控制…

基于51单片机的智能公交车报站系统GPS定位语音播报智能安全检测人数统计

功能描述 1.LCD12864可显示当前年月日,星期,时间, 当前站名,经纬度,是否连接GPS,自动/手动模式, 2.自带GPS定位,可实时显示经纬度; 3.通过DS1302时钟芯片,获…

【数据库系列】Spring Data Neo4j Cypher 查询使用进阶指南

在 Neo4j 中,Cypher 查询语句并不像 MySQL 的 mapper XML 那样直接支持拆分和组织。然而,你可以使用一些策略来管理和重用 Cypher 查询,使其更易于维护和组织。以下是几种方法: 1. 使用 Spring Data Neo4j 的 Repository 接口 通过定义多个查询方法,可以将复杂查询分解为…

UIlicious - 自动化端到端测试

在现代软件开发中,测试自动化已然成为产品交付质量的基石。而端到端测试(E2E),作为验证整个应用流畅运行的关键,常常是测试工作中最具挑战性的一环。这时,一款简单高效的自动化测试工具——UIlicious&#…

OpenHarmony-3.HDF框架(2)

OpenHarmony HDF 平台驱动 1.平台驱动概述 系统平台驱动框架是系统驱动框架的重要组成部分,它基于HDF驱动框架、操作系统适配层(OSAL, operating system abstraction layer)以及驱动配置管理机制,为各类平台设备驱动的实现提供标准模型。 系统平台驱动(…