PEAK can USB tool ,這個東西在國內用的可能不是太多,最近在做項目所以有用到這個東西。所以針對這個東西的開發做一點介紹。
實際使用過程中其實還是比較好用的,所以我們在后面的開發中打算使用它做我們的調試平臺隨之而來的問題就是需要制作上位機,好在官方給的例程中有提供各種編輯器的版本。
具體api可以在https://www.peak-system.com/Packages.306.0.html
下載到,我就不添加附件了。
官方庫中的標準庫已經寫的很完善了,我今天主要針對C#的版本的做一下介紹
打開工程
將界面上不要的控件刪除掉變成如下:(可以根據自己的是需求,這里我主要不適用幀過濾喝參數配置所有將這兩項刪除掉,其他項保留)將界面中一些關鍵參數漢化一下即可。
將底層的代碼中涉及到的報錯的代碼都可以刪除掉。注意不要先從代碼中刪除,會在涉及界面中報錯的,要從設計界面中刪除和控件屬性去修改屬性出錯的概率相對小一點。
代碼修改:
如圖所示,將故障代碼刪除掉,且將所有的需要的控件都保留之后,對界面做一些簡單的處理,基本上界面就是你自己想要的樣子了。
界面處理完了,之后就基本上是做一些發送和接收的數據處理。
在實際的使用過程中我們使用CAN做簡單的上位機的時候大多時候只是需要控制發送數據,什么時候發送和接收數據處理這兩個問題。
發送相對好解決,只需要定義發送事件即可,可以定時發送或者是控件控制發送這個沒有什么好說的只需要按照程序中提供的發送函數進行發送即可我這里只是在定義了一個簡答的發送函數(有才華的你可以放開腦洞想像怎么樣才能更好玩)
private void Send_data1_Click(object sender, EventArgs e)
{
TPCANStatus stsResult;
TPCANMsg CANMsg;
CANMsg = new TPCANMsg();
CANMsg.DATA = new byte[8];
CANMsg.ID = 0x2812f456;
CANMsg.LEN = 8;
CANMsg.MSGTYPE = TPCANMessageType.PCAN_MESSAGE_EXTENDED ;
CANMsg.DATA[0] = 0x11;
CANMsg.DATA[1] = 0x11;
CANMsg.DATA[2] = 0x11;
CANMsg.DATA[3] = 0x11;
CANMsg.DATA[4] = 0x11;
CANMsg.DATA[5] = 0x11;
CANMsg.DATA[6] = 0x11;
CANMsg.DATA[7] = 0x11;
stsResult = PCANBasic.Write(m_PcanHandle, ref CANMsg);
if (stsResult == TPCANStatus.PCAN_ERROR_OK)
IncludeTextMessage("Message was successfully SENT");
else
MessageBox.Show(GetFormatedError(stsResult));
}
接收處理,既是將有用的的數據從繁瑣的can報文中提取出來以一種友善的方式顯示出來。like this
大概提一提數據處理的一個邏輯,首先我定義的是事件觸發讀取(來一包數據自己觸發讀取解析一次)然后再在最后處理過程函數中增加一個自己定義數據解析函數:
可以通過幀ID進行判斷,然后再處理相關的數據,顯示在什么地方你自己說了算。
最后附上我的工程打開CSDN搜索peak can C#二次開發.rar
-
上位機
+關注
關注
27文章
942瀏覽量
54840
發布評論請先 登錄
相關推薦
評論