0. 概述
CAN报文发送工具使用wxpython进行开发,配套Excel模板可以通过修改Excel自定义界面展示的信号名称和信号的属性;同时,工具支持导入现场采集的报文数据自动按照配套Excel模板定义的报文发送周期进行模拟发送。
由于是我好几年前开发的作品,一些开发细节也记得不是很清楚了,只能通过看源代码回忆一些,如果你也是做通讯这块开发的,希望我开发这个工具的思路对你有帮助。
如果市面上存在已有的类似功能的工具,那纯属技术巧合,谢谢理解。
1. 工具功能及使用介绍
下载压缩包之后,就可以看到 can_tool_model.xlsx 这个文件。
这个文件分为三个sheet页签,介绍如下:
- 界面调参:主要是针对不同用户的电脑屏幕大小,出于界面间距美观的角度,允许用户通过设置“面板宽度”属性改变CAN信号所占界面的比例大小(每个CAN信号都放置在一个面板上)。
- 参数配置:允许用户设置工具界面显示的CAN信号名称和规定CAN信号允许发送的初始值。
- 报文定义:详细定义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文件是自动提取信号数值发送报文的模板文件。