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文件是自動提取信號數值發送報文的模板文件。