当前位置: 首页 > news >正文

工具分享:通过滑块拉取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.xdnf.cn/news/326107.html

相关文章:

  • Python小酷库系列:Box,更为完善的dict属性化访问扩展库
  • 技术视界 | 青龙机器人训练地形详解(一):如何创建一个地形
  • HTB - Eureka记录
  • 数智管理学(八)
  • 《饶议科学》阅读笔记
  • 【Lanqiao】数位翻转
  • 2021年下半年试题四:论微服务架构及其应用
  • SQL Server 中的 GO 及其与其他数据库的对比
  • Spark-Core(双Value类型)
  • C++对象注册系统(1)实现原理
  • 应用 | AI 自动化某讯会议转录与摘要生成系统
  • Android开发-视图基础
  • Facebook的元宇宙新次元:社交互动如何改变?
  • 2021年CVPR文章【Polygonal Building Segmentation by Frame Field Learning】环境搭建
  • 《Python星球日记》 第47天:聚类与KMeans
  • Kotlin zip 函数的作用和使用场景
  • 镜像和容器的管理
  • Qwen2.5模型结构
  • QT编程练习20250507
  • 【PostgreSQL数据分析实战:从数据清洗到可视化全流程】7.1 主流可视化工具对比(Tableau/Matplotlib/Python库)
  • FreeCAD傻瓜教程-涡轮蜗杆的快速绘制FCGear工作台的使用方法
  • 算法专题四:前缀和
  • 【北京迅为】iTOP-4412精英版使用手册-第八章 Android 4.4系统编译
  • neo4j多跳查询,未只获取到收尾两个节点,待继续
  • 智能运维实战|数据库卡慢处置的一次关键事件
  • 尚硅谷-硅谷甄选项目记录
  • Facebook隐私设置详解:如何保护你的个人信息
  • 【漫话机器学习系列】245.权重衰减(Weight Decay)
  • SR触发器为什么能够消抖
  • Vue 项目中长按保存图片功能实现指南