本代码是一款基于 Python 开发的 TestBase VCI CANFD 报文收发测试demo,采用多线程架构实现发送与接收任务的并行处理。该demo具备通道管理、周期性报文发送、实时报文接收等功能,适用于 TestBaseVCI CAN/CANFD 总线通信的开发调试与自动化测试场景。
关键词:Python调用,TestBase VCI,报文收发
核心模块说明
- BasicStructure.py:定义常用驱动接口的输入与输出参数结构体,确保数据交互规范统一
- TestBaseVCI.py:对底层 VCI 驱动接口进行 Python 封装,提供简洁易用的调用方式
- TestGetDriverConfig.py:实现对当前系统中已识别 VCI 设备通道的枚举与配置查询功能
- TestGetRxService.py:主程序入口,集成周期性报文发送与实时接收统计功能
使用方法
1. 环境准备
- 下载 SDK
-
- 访问以下链接,下载 [TestBaseVCI硬件驱动接口二次开发SDK]https://intework.hirain.com/docs/VBA-ruan-jian-API-jie-kou-wen-dang-xia-zai
- 解压文件
-
- 解压缩 `TestBaseVCI硬件驱动接口二次开发SDK.zip`
- 查看安装说明
-
- 打开根目录下的 `readme.md` 文件,按照文档指引完成 VCI 驱动安装
- 驱动位置
-
- 驱动程序位于 `/Bin` 目录下,请根据操作系统选择合适的版本
2. 启动程序

进入 /Examples/TestBaseVCI_Python 目录,在该路径下打开命令行工具(CMD),输入命令:python TestGetRxService.py,程序将自动运行并显示可用通道信息。
3. 通道映射规则

用户需结合实际硬件连接情况,参考程序打印的通道信息,确定目标CAN通道对应的通道编号,并分别输入发送通道号与接收通道号。
4. 多线程工作模式

输入通道号后,程序将启动两个并发线程:
- 发送线程:在指定通道上周期性发送预设报文(默认模拟多个 ID)
- 接收线程:在另一通道上持续监听总线,并动态输出接收统计信息(如报文总数、错误帧数等)
5. 输出示例

上图运行过程中,控制台将持续刷新接收数据统计。
6. 安全退出程序
按下快捷键 Ctrl + C 触发中断信号,程序将调用 exit_process( ) 清理资源并优雅退出,避免线程残留或资源泄漏。