自制【CAN数据解析小工具】

来源:互联网 发布:杭州知味观点心价格表 编辑:程序博客网 时间:2024/06/18 01:36

          一步步对照协议解析CAN数据的过程是痛苦的,为了以后方便调试,同时练练手,自制了这么个小工具,在此做个笔记。

       上大学时学过一学期的vb6,那时是为了应付考试做了一个双色球选号的工具,当时VB6给我的感觉就是很丑很像上个世纪的东西(事实确实是这样- -!),并不难,因为当时轻轻松松就做了一个小软件。如今工作中需要,开始查资料,做上位机用什么众说纷纭,基于以前学过一丢丢便下定决心用vb6,虽然有很多人说过时了,但我还是觉得先做个试试,有个做上位机的过程,知道该从哪方面着手,以后再学其他的肯定就水到渠成了,就好比一开始学习51,再学习更高级的单片机,同理。先是在网上找了个vb6的教学视频大致看了看,因为有以前的基础,所以基本的也就是遛一遛就懂了,后来又从网上查资料时发现vb6有个“MSDN”的东西,就是有关各种控件语法的帮助文档,就立刻安装上了,发现真是个好东西,瞬间感觉自己发现了新大陆,里面有各种控件的属性解释还有方法的使用,还有语言的参考等等,真是太实用方便了,以后有什么不懂就可以直接按F1查。

       熟悉了基本的知识后,那么就开始规划下要实现什么功能。在实现功能的过程中发现了很多问题,有什么不懂的就百度,百度真是解决了我太多的问题,太感谢有那么多热心的前辈。

 一、功能

1.解析*.dbc文件 

                    



2.解析由CANTest        保存的CAN数据(txt文件),翻译成可以直接看懂的数据

                   


3.显示某个帧ID的帧内容的实时曲线图

                

4.可以把信息框接收的CAN数据翻译后保存为txt文件



5.发送数据进行调试

其中可以单独发送一帧,或者可以循环发送,但是需要提前编写好内容

二、问题总结

        1.手头上这个CAN卡是 广成的USBCAN  II,通过翻看自带驱动文件夹中的一些说明文档,发现只要把他们的.dll文件(动态链接库)包含在vb6项目中并声明函数,就可以直接调用,非常方便,就像单片机中的.c和.h文件。更重要的是,驱动文件夹中还有他们的上位机例程,通过例程发现调用函数发送数据接收数据原来如此简单,真是一开始想多了。。。
        2.第一步收发CAN数据解决了,接下来是解析CAN数据。如何解析,如何知道接收的这些CAN数据到底什么含义?当然是根据协议解析,协议自己定的。dbc文件可以定义某帧ID哪些位是什么含义,是什么单位,系数多少,偏移量多少等等,那么我们就可以把实时接收到的CAN数据与dbc文件中的CAN数据作对比,就可以知道最终结果了。
        3.下面又碰到个问题,如何解析dbc文件,.dbc文件可以用记事本打开,打开后会发现它是有规律可循,就会发现那些位置是表示类名,哪些是单位,哪些是系数等等,知道了这些,就可以通过在vb6中已记事本方式读取这个dbc文件,然后再把所有的有效数据提取保存,为以后对比计算结果用。



  最后附图工具主界面:




0 0
原创粉丝点击