#region CAN接受和发送数据定义
        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
        public struct PVCI_CAN_OBJ
        {
            public uint ID;
            public uint TimeStamp;
            public byte TimeFlag;
            public byte SendType;
            public byte RemoteFlag;
            public byte ExternFlag;
            public byte DataLen;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
            public byte[] data;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Reserved;
        }
        #endregion

#region 其他CAN函数数据定义
        public struct PVCI_ERR_INFO
        {
            public uint ErrCode;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Passive_ErrData;
            public byte ArLost_ErrData;
        }

public struct _VCI_BOARD_INFO
        {
            public ushort hw_Version;
            public ushort fw_Version;
            public ushort dr_Version;
            public ushort in_Version;
            public ushort irq_Num;
            public byte can_Num;

[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
            public byte[] str_Serial_Num;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 40)]
            public byte[] str_hw_Type;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
            public ushort[] Reserved;
        }
        #endregion

#region DLL连接
        //调用接受设备动态连接库
        [DllImport(“ControlCAN.dll”, EntryPoint = “VCI_Receive”, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
        public static extern uint VCI_Receive(int DevType, int DevIndex, int CANIndex, [Out] PVCI_CAN_OBJ[] pReceive, uint Len, int WaitTime);

//调用报错动态连接库
        [DllImport(“ControlCAN.dll”, EntryPoint = “VCI_ReadErrInfo”, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
        public static extern int VCI_ReadErrInfo(int DevType, int DevIndex, int CANIndex,  PVCI_ERR_INFO pErrInfo);

/关闭设备连接库/
        [DllImport(“ControlCAN.dll”, EntryPoint = “VCI_CloseDevice”, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
        public static extern bool VCI_CloseDevice(int DevType, int DevIndex);

/CAN启动CAN连接库/
        [DllImport(“ControlCAN.dll”, EntryPoint = “VCI_StartCAN”, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
        public static extern int VCI_StartCAN(int DevType, int DevIndex, int CANIndex);

/CAN发送连接库/
        [DllImport(“ControlCAN.dll”, EntryPoint = “VCI_Transmit”, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
        public static extern uint VCI_Transmit(int DevType, int DevIndex, int CANIndex, PVCI_CAN_OBJ[] pSend, uint Len);
        #endregion

作者:leonid112
来源:CSDN
原文:https://blog.csdn.net/leonid112/article/details/5987555
版权声明:本文为博主原创文章,转载请附上博文链接!

周立功CAN盒驱动C#调用方式相关推荐

  1. 基于QT编写的周立功CAN,可进行uds、bootloder的上位机开发

    基于QT编写的解析周立功CAN 1.介绍 应用场景:需要将CAN数据传输到上位机. 可以进行界面显示,做一些基于can的演示系统等 2.封装的模块 1.CanComm.c 中间层 封装通信函数 封装了 ...

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

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

  3. Qt编写的CAN通信调试工具源代码支持吉阳光电CAN盒和致远周立功USB转CAN卡,带多线程接收 可完成标准和扩展CAN帧YID发送和接收

    Qt编写的CAN通信调试工具源代码支持吉阳光电CAN盒和致远周立功USB转CAN卡,带多线程接收 可完成标准和扩展CAN帧YID发送和接收,带配置参数自动保存,定时发送,帧类型选择,文本和十六进制等. ...

  4. Qt编写的CAN通信调试工具源代码支持吉阳光电CAN盒和致远周立功USB转CAN卡,带多线程接收 可完成标准和扩展CAN帧YID发送和接收,带配置参数自动保存,定时发送,帧类型选择,文本和十六进制等

    Qt编写的CAN通信调试工具源代码支持吉阳光电CAN盒和致远周立功USB转CAN卡,带多线程接收 可完成标准和扩展CAN帧YID发送和接收,带配置参数自动保存,定时发送,帧类型选择,文本和十六进制等. ...

  5. Python调用周立功CAN接口卡接口库函数

    偶尔会用到周立功CAN接口卡,于是试着使用Python调用其接口函数.查阅CAN测试软件与接口函数使用手册,只讲述了VC和VB的调用方法.在这里通过ctypes模块导入动态链接库并访问动态链接库中的函 ...

  6. Python调用周立功CAN接口卡接口库函数(接收数据)

    上篇博文<Python调用周立功CAN接口卡接口库函数>仅做了发送数据例程,有网友在测试接收时出现了问题,在此给出自己的接收数据代码. 在此需要强调的是,因为经济水平有限,自己所使用的CA ...

  7. labview can通讯上位机,调用周立功库文件

    labview can通讯上位机,调用周立功库文件. 能够基本通讯,可供学习参考. 适合小白上手,后期可以根据自己需求更改 ID:6917618516632702

  8. 调用python-can库使用周立功CAN接口卡发送数据

    查阅python-can文档,知晓其支持部分周立功CAN接口卡,故写例程验证数据的发送.另外,使用的python版本为3.4,在安装python-can时提示找不到windows-curses对应版本 ...

  9. java 调用ecanvci,CANoe CAN总线适配低价解决方案支持所有USBCAN(周立功CAN、PCAN、Kvaser、ValueCAN、NI CAN)...

    在汽车通信领域CAN总线使用非常广泛,最强大的工具有Vector Case(10WRMB).Pcan(2KRMB),ZLGCAN(1.5KRMB),KVASER(2KRMB).ValueCAN(4KR ...

最新文章

  1. 04 java 基础:数据类型
  2. 一个震撼的交互型3D可视化R包 - 可直接转ggplot2图为3D
  3. 10打开没有反应_118个遇水反应化学品清单及高压反应釜操作经验
  4. 【maven】maven jar 包 冲突 的解决方式
  5. 为什么php md5,为什么php md5()总是与python的不同哈希.md5()如果使用汉字?
  6. Hadoop处理HDF文件
  7. mysql_safe作用_mysqld_safe
  8. mysql 追加水印_php 使用GD库为页面增加水印示例代码
  9. 使用Spring Boot开发邮件系统
  10. 吴恩达 深度学习 2021版 笔记
  11. ASA K8升级到K9
  12. 基于单片机的语音小车设计
  13. DRP:分销链上的精灵(转)
  14. Python学习路线(课程大纲+Python视频教程+下载地址)
  15. matlab中匿名(Anonymous)函数及bsxfun函数
  16. 计算机上点开硬盘有声音,打开计算机电源后,硬盘持续发出哔哔声的原因是什么?原因分析和解决方案介绍...
  17. STM32开发板串口 ISP 方式下载程序
  18. Elasticsearch:使用反向地理编码在地图上显示自定义区域统计数据
  19. Homebrew更换国内镜像源(中科大、阿里、清华)
  20. replace c语言,C中如何实现replace函数功能

热门文章

  1. 使用关键字like进行模糊查询
  2. Docker 入门教程(一) - Docker Tutorial
  3. 记一次用python selenium 通过chrome+chromedriver 实现公司内网上网自动登入认证、上班自动登入打卡python脚本笔记
  4. LINQS、xp、xb等开源项目的来龙去脉。
  5. 七牛 - 网络资源上传文件
  6. 单片机c语言篮球比分_单片机和C语言的篮球计时计分器设计
  7. RadioButton前面的小圆圈颜色设置
  8. 指针及其应用4——结构体指针
  9. 药品通用名和商品名称数据库下载
  10. 线程wait和notify方法