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