工具分享:通过滑块拉取CAN报文信号数值自动发送报文

0. 概述

CAN报文发送工具使用wxpython进行开发,配套Excel模板可以通过修改Excel自定义界面展示的信号名称和信号的属性;同时,工具支持导入现场采集的报文数据自动按照配套Excel模板定义的报文发送周期进行模拟发送。

由于是我好几年前开发的作品,一些开发细节也记得不是很清楚了,只能通过看源代码回忆一些,如果你也是做通讯这块开发的,希望我开发这个工具的思路对你有帮助。

如果市面上存在已有的类似功能的工具,那纯属技术巧合,谢谢理解。

1. 工具功能及使用介绍

下载压缩包之后,就可以看到 can_tool_model.xlsx 这个文件。

在这里插入图片描述

这个文件分为三个sheet页签,介绍如下:

  1. 界面调参:主要是针对不同用户的电脑屏幕大小,出于界面间距美观的角度,允许用户通过设置“面板宽度”属性改变CAN信号所占界面的比例大小(每个CAN信号都放置在一个面板上)。
  2. 参数配置:允许用户设置工具界面显示的CAN信号名称和规定CAN信号允许发送的初始值。
  3. 报文定义:详细定义CAN信号的属性,包括:帧格式、帧ID、字节顺序、分辨率、偏移量、有效值范围、报文发送周期(ms)。出于界面美观和用户实际操作角度考虑(我记不清当时设置这个需求的真实场景/(ㄒoㄒ)/~~),新增“单位比例”属性,允许用户对信号在有效值范围内的大小进行压缩,例如转速信号的有效数值范围是0-1000,如果“单位比例”设置为10,那么转速信号所在的滑块数值范围就是0-100(目前滑块每次移动都是1)。

在这里插入图片描述

工具的主界面如下所示:

在这里插入图片描述

1.1 工具支持同时连接4个CAN设备

工具支持同时连接4个CAN盒(或设备),但是这个功能我没有测试过,支持的CAN通讯设备数量可以通过源代码进行增加。

注意:这个工具有个bug还没解决就是如果你已经有一个正在运行或打开的工具界面(或后台程序),但是你用同一个.exe(或python代码)又打开了这个源代码在相同位置的工具,那么后面打开的工具的使用可能有bug(因为同一时刻共享的文件或缓存是一样的),最理想的处理方式是检测到已经存在工具的后台程序就应该在用户点击源代码位置相同的这个工具时直接禁用,保证同一时刻只存在一个工具的后台程序运行。但是如果你将工具的源代码备份成4份,打开的.exe是不同的4个,那么我理解“工具支持同时连接4个CAN盒(或设备)”这个需求是可以满足的。

在这里插入图片描述

1.2 工具支持双路CAN

工具支持双通道CAN盒或两路CAN口的设备,CAN接口的个数可以通过修改源代码进行增加。

在这里插入图片描述

1.3 工具支持配置多种波特率

工具支持250Kbps和500Kbps两种常用的波特率,波特率可以通过修改源代码进行增加。

在这里插入图片描述

1.4 工具支持中断报文发送

工具支持通过”勾选“或取消”勾选“选择所需发送的信号,在测试过程中也可以通过取消”勾选“中止多个信号的报文继续发送。通过can_tool_model.xlsx 这个文件的“参数配置”页签添加的信号都会显示在界面上,自动默认是属于需要发送报文的信号。

在这里插入图片描述

1.5 工具支持导入现场采集的报文数据自动测试

工具支持通过导入名称为auto_msg_data.xlsx 的Excel文件方式自动提取Excel的信号数值进行报文发送。

注意:工具只能识别命名为 auto_msg_data.xlsx 的Excel文件是自动提取信号数值发送报文的模板文件。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python】os模块

os 模块是 Python 标准库中用于与操作系统交互的核心模块,提供了许多操作文件和目 录的函数。 1. 基本介绍 os 模块提供了以下主要功能: 文件和目录操作路径操作进程管理环境变量访问 import os2. 常用功能分类 2.1 文件和目录操作 函数/方法描述o…

ai agent(智能体)开发 python3基础11: java 调用python waitfor卡死,导致深入理解操作系统进程模型和IPC机制

java 调用python waitfor 卡死 导致浏览器无法自动关闭,java ,python双发无限等待 根源在于还是没有理解 进程之间标准输入输出到底是什么含义 系统进程与跨语言调用的核心机制 在跨语言调用(如Java调用Python)时,理…

Kubernetes(k8s)学习笔记(九)--搭建多租户系统

K8s 多租户管理 多租户是指在同一集群中隔离多个用户或团队,以避免他们之间的资源冲突和误操作。在K8s中,多租户管理的核心目标是在保证安全性的同时,提高资源利用率和运营效率。 在K8s中,该操作可以通过命名空间(Nam…

同质化的旅游内核

湘西凤凰古城、北京非常有文艺氛围的方家胡同都在被改造翻新为现代的其他城市范式式的样式。 什么意思呢?很多古城的老房子,从外面看,很古老、很漂亮,但是进去以后,完全不是那么回事,整座房子已经被完全掏…

鸿蒙开发——3.ArkTS声明式开发:构建第一个ArkTS应用

鸿蒙开发——3.ArkTS声明式开发:构建第一个ArkTS应用 一、创建ArkTS工程二、ArkTS工程目录结构(Stage模型)三、构建第一个页面四、构建第二个页面五、实现页面之间的跳转六、模拟器运行 一、创建ArkTS工程 1、若首次打开DevEco Studio,请点击…

C语言初阶:数组

目录 0.数组要讲的知识点 1.一维数组的创建和初始化 1.1 数组的创建: 1.2数组实例: 1.3 数组的初识化: 例子: 2.一维数组的使用 例子: 总结: 3.一维数组在内存中的存储 4.二维数组的创建和初始化 4.…

UE5 Daz头发转Blender曲线再导出ABC成为Groom

先安装Daz to Blender Import插件 【神器】 --DAZ一键导入blender插件的详细安装和使用,自带骨骼绑定和控制器,多姿势动画,Importer桥接插件_哔哩哔哩_bilibili 然后安装DAZHairConverter插件 一分钟将DAZ头发转化成Blender粒子毛发_哔哩哔…

浅聊find_package命令的搜索模式(Search Modes)

背景 find_package应该算是我们使用最多的cmake命令了。但是它是如何找到上游库的.cmake文件的? 根据官方文档,整理下find_package涉及到的搜索模式。 搜索模式 find_package涉及到的搜索模式有两种:模块模式(Module mode)和配置模式(Conf…

什么是先验?(CVPR25)Detail-Preserving Latent Diffusion for Stable Shadow Removal论文阅读

文章目录 先验(Prior)是什么?1. 先验的数学定义2. 先验在深度生成模型中的角色3. 为什么需要先验?4. 先验的常见类型5. 如何选择或构造先验?6. 小结 先验(Prior)是什么? 在概率统计…

【视觉基础模型-SAM系列-2】SAM2: Segment Anything in Images and Videos

论文链接:SAM 2: Segment Anything in Images and Videos 代码链接:https://github.com/facebookresearch/sam2?tabreadme-ov-file 作者:Nikhila Ravi, Valentin Gabeur, Yuan-Ting Hu, Ronghang Hu, Chaitanya Ryali, Tengyu Ma, Haitham…

OpenShift AI - 模型注册管理

《OpenShift / RHEL / DevSecOps 汇总目录》 说明:本文已经在 OpenShift 4.18 OpenShift AI 2.19 的环境中验证 文章目录 启用模型注册管理功能安装管理数据库启用模型注册功能 注册模型部署模型归档模型归档模型和模型版本恢复归档模型 模型注册表访问权限管理参考…

【背包dp----01背包】例题三------(标准的01背包+变种01背包1【恰好装满背包体积 产生的 最大价值】)

【模板】01背包 题目链接 题目描述 : 输入描述: 输出描述: 示例1 输入 3 5 2 10 4 5 1 4输出 14 9说明 装第一个和第三个物品时总价值最大,但是装第二个和第三个物品可以使得背包恰好装满且总价值最大。 示例2 输入 3 8 12 6 11 8 6 8输出 8 0说明 装第三个物…

Node.js 的 child_process 模块详解

Node.js 的 child_process 模块提供了创建子进程的能力,使 Node.js 应用能够执行系统命令、运行其他程序或脚本。这个模块非常强大,可以帮助我们实现很多复杂的功能。 1. exec - 执行 shell 命令 exec 方法用于执行 shell 命令,并缓冲任何产生的输出。 特点 创建 shell 来…

进程与线程详细介绍

目录 一 进程概念 二 进程的组成 2.1 PCB 2.2 数据段 2.3 程序段 三 进程的五大特点 四 进程的创建与销毁 五 线程概念 六 线程特征 七 进程与线程的区别与联系 区别 联系 一 进程概念 进程是程序的一次执行过程,是操作系统进行资源分配和调度的基本单位…

如何在服务器后台运行Python脚本,并配置虚拟环境与GPU支持

使用Conda虚拟环境在服务器后台运行Python脚本,并检查GPU分配 在服务器开发环境中,我们需要确保Python脚本运行在指定的Conda虚拟环境中,并且确认是否正确分配了GPU资源。本文将通过一个完整的start.sh脚本,完成以下功能&#xff…

前端取经路——工程化渡劫:八戒的构建之道

大家好,我是老十三,一名前端开发工程师。前端工程化就像八戒的钉耙,看似简单却能降妖除魔。在本文中,我将带你探索前端工程化的九大难题,从模块化组织到CI/CD流程,从代码规范到自动化测试,揭示这些工具背后的核心原理。无论你是初学者还是资深工程师,这些构建之道都能帮…

Ubuntu 安装 Keepalived

Keepalived 是什么 Keepalived 是一个用于实现高可用性(High Availability, HA)的服务,是一款基于 VRRP 协议的高可用软件,常用于主备切换和虚拟IP漂移,在服务故障时自动实现故障转移。 Keepalived 的核心功能 功能说…

DHCP理解

文章目录 DHCP理解DHCP的核心作用DHCP默认端口DHCP的工作原理(4个步骤)图示说明(含中继代理)DHCP Discover(客户端发现阶段)DHCP Offer(服务器提供阶段)DHCP Request(客户…

云计算-容器云-部署CICD-jenkins连接gitlab

安装 Jenkins 将Jenkins部署到default命名空间下。要求完成离线插件的安装,设置Jenkins的登录信息和授权策略。 上传BlueOcean.tar.gz包 [root@k8s-master-node1 ~]#tar -zxvf BlueOcean.tar.gz [root@k8s-master-node1 ~]#cd BlueOcean/images/ vim /etc/docker/daemon.json…

AI 大模型新浪潮:从 DeepSeek-Prover 到 Qwen3,再到 DeepSeek-R2,迈向自动推理的新时代20250507

🧠 AI 大模型新浪潮:从 DeepSeek-Prover 到 Qwen3,再到 DeepSeek-R2,迈向自动推理的新时代 🚀 引言:大模型,不止是语言处理器,而是思维建构者 在 2025 年春天,我们见证了…