周立功CAN盒驱动C#调用方式
来源:互联网 发布:通信达软件 编辑:程序博客网 时间:2024/06/06 15:12
#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
- 周立功CAN盒驱动C#调用方式
- 周立功 CAN PCI接口卡C#语言示例
- C#周立功CANET
- CAN总线分析仪 CANOpen J1939 USBCAN usb转CAN卡can模块 周立功
- C#周立功CANET-200T(新)
- C# 调用Device驱动
- 周立功工程模板头文件中CAN模块缺失CANRID寄存器错误
- 周立功笔试
- 周立功-采访笔录
- 单片机工具书-周立功
- 嵌入式-周立功
- 周立功键盘
- C#线程函数调用方式
- C#异步调用WebService方式
- C#不同方式调用webservice
- 浅谈C#方法调用方式
- C#调用c++ dll 方式
- C#调用摄像头的方式
- c# 线程同步: 详解lock,monitor,同步事件和等待句柄以及mutex
- swt tree spinner Group使用
- 将mit-μAMPS的ns扩展代码(LEACH)移植到ns-2.33
- 异步窗体实现操作进度(ProgressWindow)
- DELPHI 消息处理
- 周立功CAN盒驱动C#调用方式
- 华清远见嵌入式开发
- 开独立网店应注意哪些事项
- 能监控之监控SQL语句
- 终于快要打官司了
- 呵呵~
- 测试
- 关于ERP管理方面的随想
- ARM汇编 beq和bne