#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. LeetCode实战:螺旋矩阵
  2. [Android] Git组件化部署
  3. 白话Elasticsearch60-数据建模实战_Join datatype 父子关系数据建模
  4. SAP同一公司不同工厂间物料转储方案比较
  5. dropout的原理
  6. 游戏服务端的逻辑分服与物理分服
  7. 漫画:Bitmap算法 整合版
  8. 【转】TeeChart的用法
  9. 数据结构之并查集:并查集的介绍与Python代码实现——18
  10. Android 系统(38)---Android抓取各种log的方法
  11. 铁路12306网站App服务时间延长 退票业务可24小时全天候办理
  12. 国内主流设计作品分享社区,用作品动世界
  13. POJ-1681 Painter's Problem 高消
  14. 纪念贴:历史会证明今天是不是开创新历史的一天
  15. dlopen失败一例:路径字串多一个回车,导致文件找不到
  16. AKKA:大数据下的并发编程模型
  17. Java之美[从蛮荒到撬动地球]之设计模式二
  18. 十大经典排序算法(冒泡、选择、插入、希尔、快排..........)
  19. linux dd 错,dd命令错误写入设备上没有剩余空间[关闭](dd command error writing No space left on device [closed])...
  20. 这样充满青春活力的微信公众号图文排版,你见过吗?

热门文章

  1. 机器视觉引导定位系统,工业视觉定位检测
  2. 规划过程组-项目管理-PMP
  3. [ 常用工具篇 ] 还在嫌截图麻烦?快来使用 Win10 原生的截图工具 Snipping Tool 吧
  4. 代数合并同类项计算机步骤,代数式(合并同类项)
  5. div层调整zindex属性无效原因分析及解决方法
  6. 【HTML5新特性】
  7. 【OpenGL】绘制一个点
  8. 诊所病例信息管理系统(Java+Web+SSH+MYSQL)
  9. 基于新浪微博的男女性择偶观数据分析
  10. Jackson,Gson,Fastjson 的对比