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文章
930浏览量
54707
发布评论请先 登录
相关推荐
评论