周立功CAN卡C#二次开发心得

  • 二次开发说明
  • 1、整体说明
  • 2、二次开发之解析CAN报文
  • 2.1解析状态值
    • 2.1.1 筛选ID
    • 2.1.2 解析状字节、位的状态值
    • 2.1.3 示例代码
  • 2.1解析数值值
    • 2.2.1 筛选ID
    • 2.2.2 解析值
    • 2.2.3 示例代码

二次开发说明

最近自学C#,且工作有涉及CAN,就从周立功官网下载了二次开发文档、C#案例。进行改造,以下是相关心得

1、整体说明

周立功官网提供各种开发环境的案例,如c++、c#,已经写好了初始化的的各种流程,如果不是二次开发高级的应用,直接在“timer_rec_Tick”方法的最后插入自己的二次开发函数。
备注:timer_rec_Tick函数就是设置一个定时器,每隔一定时间来处理相关的函数,比如每隔一段时间从“VCI_Receive”处理接收的CAN数据)

2、二次开发之解析CAN报文

解析CAN报文,指根据CAN协议的某一ID的定义来解析相关参数,比如根据报文来实时解析车速,查看某个状态值如左前门是否打开。
所要做的就是在周立功官网给的案例的VCI_Receive的VCI_Receive的最后插入二次开发的自定义函数CanTranslateTxt(obj.ID,obj.Data),解析ID(obj.ID)和对应的数据(obj.Data)。即每隔一定时间解析“VCI_Receive”函数传递的"VCI_CAN_OBJ "中的CAN 帧结构体中的ID和数据。

unsafe private void timer_rec_Tick(object sender, EventArgs e){#region 官网代码已省略//.......官网代码已省略#endregion////二次开发//CanTranslateTxt(obj.ID,obj.Data);                  //二次开发函数}Marshal.FreeHGlobal(pt);}

2.1解析状态值

状态值是指报文的开关量,比如某个门是否开启,雨刮是否工作。是根据协议ID的某个字节的某个位的不同值来显示对应的状态。

2.1.1 筛选ID

采用 switch cese函数:

 switch (_ID){case 0xABC:      //ABC为ID    #region //........插入自定义函数,#endregionbreak;default:break;}

2.1.2 解析状字节、位的状态值

根据参数值在CAN协议中的描述,第几字节,第几位,来处理:
如:判断byte1,bit4~3 值是否为0x1函数为:

(Data[1] >> 3 &0x3)==0x1; //  >> 3&0x3为提取出bit4~3的值

2.1.3 示例代码

unsafe public void CanTranslateTxt(uint _ID,byte* Data){switch (_ID){case 0x10FEF721:          // 0x10FEF721 为要解析的ID                if (((Data[1]>>1)&0x01)==1)    //判断byte1的bit1位的值{textBox3.Text = "打开";}break;default:break;}}

2.1解析数值值

数值值是指某一参数的数值是多少,比如车速是多少、油量是多少。
是根据协议ID的某些字节的某些位的不同值乘上精度再加上偏移计算出值。

2.2.1 筛选ID

采用 switch cese函数:

 switch (_ID){case 0xABC:      //ABC为ID    #region //........插入自定义函数,#endregionbreak;default:break;}

2.2.2 解析值

根据协议ID的某些字节的某些位的不同值乘上精度再加上偏移计算出值。如CAN协议规定某个参为byte1,精度0.1,偏移10;

Data[1]  * 0.1 +10;

2.2.3 示例代码

switch (_ID){case 0x0CFE6C17:            //0x0CFE6C17为要解析的IDtextBox4.Text =((Data[6] +Data[7]*256)/256).ToString();          //intel 格式,byte7~6,精度:1/256,偏移:0break;default:break;}

以上完整原码和周立功官网案例的注释,下载地址:
源码下载地址
感兴趣的同学可以去下载。

C#周立功CAN卡二次开发心得相关推荐

  1. Python基于周立功盒子的二次开发的准备工作

    Python基于周立功盒子的二次开发的准备工作 一.基本介绍     基于周立功的二次开发是python通过调用zlgcan.dll,来实现CAN卡的通讯收发报文的,在python中通过ctypes模 ...

  2. Python基于周立功盒子的二次开发的封装和调用

    Python基于周立功盒子的二次开发的封装和调用 一.介绍     前面我们介绍如何拿到官网给的例程并使用起来,但在使用的过程中,我们发现官网给的例子非常的冗长,可读性不好,于是我进行分解和封装,使得 ...

  3. 仰邦控制卡Python接口_仰邦控制卡二次开发中转义是什么意思?

    展开全部 仰邦控制卡中的转义是指:根据仰邦的协议,上位机向控制卡发送一帧636f707962616964757a686964616f31333337613239数据,在这一帧数据中除开帧头和帧尾部分, ...

  4. 基于Qt的金橙子打标卡二次开发

    激光加工行业中经常会用到不规则图形的加工,这时用金橙子的软件就不能满足我们的需求,需要对金橙子软件进行二次开发,在金橙子开发Demo中只有基于MFC的例子和C#的例子. 为把架构做成硬件无关,先定义一 ...

  5. EQ控制卡二次开发(火凤凰、蓝精灵异步单双色控制卡卡)

    在工业信息化行业,少不了生产可视化的模块,其中应用最多的是采用LED屏的方式,通过软件控制屏幕展示相关的生产计划完成状态,工位的状态,产线的运行状态,以及相关自动化设备的状态等,这就要求通信实时性,准 ...

  6. 广州周立功CanTest卡使用教程一

    网上有不少Can采集平台,包括Ardunio,Can卡,也有不少人用Freescale自己DIY一个平台,这些都是相当不错,并且都有成熟的代码,这里介绍在汽车诊断软件领域普遍都会选择的Can卡使用. ...

  7. (2)mifare卡读写器开发心得『转』--整理重发贴

    发信人: yaoji104 发表时间: 2002-12-16 16:24:49 ------------------------------------------------------------ ...

  8. (3)mifare卡读写器开发心得『转』--整理重发贴

    发信人: gmcccode 发表时间: 2002-12-30 18:22:02 ------------------------------------------------------------ ...

  9. (7)mifare卡读写器开发心得『转』--整理重发贴

    发信人: srz 发表时间: 2003-04-15 14:03:04 ----------------------------------------------------------------- ...

  10. Python基于周立功盒子接收特定报文信号并实时绘制折线图(一)

    Python基于周立功盒子接收特定报文信号并实时绘制折线图(一) 一.背景     为了节省成本,最大限度利用资源,放弃了用Vector的盒子,采用周立功盒子来做二次开发,以方便来进行压力测试 二.需 ...

最新文章

  1. gen_cam_par_area_scan_division和gen_cam_par_area_scan_polynomial区别
  2. string用法总结
  3. qt与mysql的增删改查_Qt数据库与QTableWidget结合的增删改查
  4. 细胞膜内流体应力分析
  5. java最后一个注解@SuppressWarnings
  6. download first at netease music
  7. ORACLE和MYSQL函数
  8. 【JFreeChart】JFreeChart—输出组合图表
  9. 存储型xss漏洞怎么解决_FinDOMXSS:一款针对DOM型XSS漏洞的快速扫描工具
  10. supersu_SuperSU已从Play商店中删除,这是替代使用的方法
  11. [转]Xdebug----Failed loading
  12. 基本配置2-被忽悠进了CentOS 6
  13. java控制硬件_厨师都开始用Python和Java了,现在C语言还值得我们学习吗?
  14. mysql-mmm官方安装指南翻译
  15. 从caffemodel中导出参数
  16. 平面应变四节点matlab,matlab-四节点四边形等参元的刚度矩阵计算程序.doc
  17. JAVA的教师档案管理系统_教师档案管理信息系统
  18. gradle教程_Gradle教程
  19. 自制XILINX FPGA JTAG下载器
  20. 影创发布首款头手6DoF MR眼镜鸿鹄,搭载高通骁龙XR2平台

热门文章

  1. yyuc php,yyuc框架介绍
  2. python教程ppt第五章_Python 3基础教程 第5章面向对象编程.ppt
  3. STC8PROG - Linux下的 STC8G STC8H 烧录工具
  4. Product Key Algorithm
  5. 软考中级软件设计师教程(第5版)知识点笔记第一章计算机系统知识持续更新中...
  6. 小说站源码(带自动采集开源小说网站源码)
  7. 数字信号处理及其MATLAB实现总结
  8. SPPnet论文总结
  9. 移动开发之微信小程序——资料集合
  10. 扩展GridView控件(3) - 根据按钮的CommandName设置其客户端属性