工具分享:通過滑塊拉取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.pswp.cn/pingmian/79812.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/79812.shtml
英文地址,請注明出處:http://en.pswp.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 年春天,我們見證了…