周立功CAN盒驱动C#调用方式
#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#调用方式相关推荐
- 基于QT编写的周立功CAN,可进行uds、bootloder的上位机开发
基于QT编写的解析周立功CAN 1.介绍 应用场景:需要将CAN数据传输到上位机. 可以进行界面显示,做一些基于can的演示系统等 2.封装的模块 1.CanComm.c 中间层 封装通信函数 封装了 ...
- Python基于周立功盒子的二次开发的封装和调用
Python基于周立功盒子的二次开发的封装和调用 一.介绍 前面我们介绍如何拿到官网给的例程并使用起来,但在使用的过程中,我们发现官网给的例子非常的冗长,可读性不好,于是我进行分解和封装,使得 ...
- Qt编写的CAN通信调试工具源代码支持吉阳光电CAN盒和致远周立功USB转CAN卡,带多线程接收 可完成标准和扩展CAN帧YID发送和接收
Qt编写的CAN通信调试工具源代码支持吉阳光电CAN盒和致远周立功USB转CAN卡,带多线程接收 可完成标准和扩展CAN帧YID发送和接收,带配置参数自动保存,定时发送,帧类型选择,文本和十六进制等. ...
- Qt编写的CAN通信调试工具源代码支持吉阳光电CAN盒和致远周立功USB转CAN卡,带多线程接收 可完成标准和扩展CAN帧YID发送和接收,带配置参数自动保存,定时发送,帧类型选择,文本和十六进制等
Qt编写的CAN通信调试工具源代码支持吉阳光电CAN盒和致远周立功USB转CAN卡,带多线程接收 可完成标准和扩展CAN帧YID发送和接收,带配置参数自动保存,定时发送,帧类型选择,文本和十六进制等. ...
- Python调用周立功CAN接口卡接口库函数
偶尔会用到周立功CAN接口卡,于是试着使用Python调用其接口函数.查阅CAN测试软件与接口函数使用手册,只讲述了VC和VB的调用方法.在这里通过ctypes模块导入动态链接库并访问动态链接库中的函 ...
- Python调用周立功CAN接口卡接口库函数(接收数据)
上篇博文<Python调用周立功CAN接口卡接口库函数>仅做了发送数据例程,有网友在测试接收时出现了问题,在此给出自己的接收数据代码. 在此需要强调的是,因为经济水平有限,自己所使用的CA ...
- labview can通讯上位机,调用周立功库文件
labview can通讯上位机,调用周立功库文件. 能够基本通讯,可供学习参考. 适合小白上手,后期可以根据自己需求更改 ID:6917618516632702
- 调用python-can库使用周立功CAN接口卡发送数据
查阅python-can文档,知晓其支持部分周立功CAN接口卡,故写例程验证数据的发送.另外,使用的python版本为3.4,在安装python-can时提示找不到windows-curses对应版本 ...
- java 调用ecanvci,CANoe CAN总线适配低价解决方案支持所有USBCAN(周立功CAN、PCAN、Kvaser、ValueCAN、NI CAN)...
在汽车通信领域CAN总线使用非常广泛,最强大的工具有Vector Case(10WRMB).Pcan(2KRMB),ZLGCAN(1.5KRMB),KVASER(2KRMB).ValueCAN(4KR ...
最新文章
- LeetCode实战:螺旋矩阵
- [Android] Git组件化部署
- 白话Elasticsearch60-数据建模实战_Join datatype 父子关系数据建模
- SAP同一公司不同工厂间物料转储方案比较
- dropout的原理
- 游戏服务端的逻辑分服与物理分服
- 漫画:Bitmap算法 整合版
- 【转】TeeChart的用法
- 数据结构之并查集:并查集的介绍与Python代码实现——18
- Android 系统(38)---Android抓取各种log的方法
- 铁路12306网站App服务时间延长 退票业务可24小时全天候办理
- 国内主流设计作品分享社区,用作品动世界
- POJ-1681 Painter's Problem 高消
- 纪念贴:历史会证明今天是不是开创新历史的一天
- dlopen失败一例:路径字串多一个回车,导致文件找不到
- AKKA:大数据下的并发编程模型
- Java之美[从蛮荒到撬动地球]之设计模式二
- 十大经典排序算法(冒泡、选择、插入、希尔、快排..........)
- linux dd 错,dd命令错误写入设备上没有剩余空间[关闭](dd command error writing No space left on device [closed])...
- 这样充满青春活力的微信公众号图文排版,你见过吗?