initial
This commit is contained in:
117
lib/ControlCAN.h
Normal file
117
lib/ControlCAN.h
Normal file
@@ -0,0 +1,117 @@
|
||||
#ifndef CONTROLCAN_H
|
||||
#define CONTROLCAN_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
// Windows 类型定义
|
||||
#ifndef _WINDEF_
|
||||
typedef unsigned char BYTE;
|
||||
typedef unsigned short USHORT;
|
||||
typedef unsigned int UINT;
|
||||
typedef unsigned long DWORD;
|
||||
typedef void* PVOID;
|
||||
typedef char CHAR;
|
||||
typedef int INT;
|
||||
typedef unsigned long ULONG;
|
||||
#endif
|
||||
|
||||
// 设备类型定义
|
||||
#define VCI_USBCAN2 4 // USBCAN-2A/2C/CANalyst-II 系列
|
||||
|
||||
// 设备信息结构体
|
||||
typedef struct _VCI_BOARD_INFO {
|
||||
USHORT hw_Version; // 硬件版本
|
||||
USHORT fw_Version; // 固件版本
|
||||
USHORT dr_Version; // 驱动版本
|
||||
USHORT in_Version; // 接口库版本
|
||||
USHORT irq_Num; // 保留
|
||||
BYTE can_Num; // CAN 通道数量
|
||||
CHAR str_Serial_Num[20]; // 序列号
|
||||
CHAR str_hw_Type[40]; // 硬件类型
|
||||
USHORT Reserved[4];
|
||||
} VCI_BOARD_INFO, *PVCI_BOARD_INFO;
|
||||
|
||||
// CAN 帧结构体
|
||||
typedef struct _VCI_CAN_OBJ {
|
||||
UINT ID; // CAN ID
|
||||
UINT TimeStamp; // 时间戳
|
||||
BYTE TimeFlag; // 时间标志
|
||||
BYTE SendType; // 发送类型:0=正常,1=单次
|
||||
BYTE RemoteFlag; // 远程帧标志:0=数据帧,1=远程帧
|
||||
BYTE ExternFlag; // 帧格式:0=标准帧,1=扩展帧
|
||||
BYTE DataLen; // 数据长度
|
||||
BYTE Data[8]; // 数据
|
||||
BYTE Reserved[3];
|
||||
} VCI_CAN_OBJ, *PVCI_CAN_OBJ;
|
||||
|
||||
// 初始化配置结构体
|
||||
typedef struct _VCI_INIT_CONFIG {
|
||||
DWORD AccCode; // 验收码
|
||||
DWORD AccMask; // 屏蔽码
|
||||
DWORD Reserved;
|
||||
BYTE Filter; // 滤波方式
|
||||
BYTE Timing0; // 波特率定时器0
|
||||
BYTE Timing1; // 波特率定时器1
|
||||
BYTE Mode; // 工作模式
|
||||
} VCI_INIT_CONFIG, *PVCI_INIT_CONFIG;
|
||||
|
||||
// 滤波范围结构体
|
||||
typedef struct _VCI_FILTER_RECORD {
|
||||
DWORD ExtFrame; // 帧类型:0=标准,1=扩展
|
||||
DWORD Start; // 起始 ID
|
||||
DWORD End; // 结束 ID
|
||||
} VCI_FILTER_RECORD, *PVCI_FILTER_RECORD;
|
||||
|
||||
// 函数声明
|
||||
#ifdef _MSC_VER
|
||||
#define EXPORT_API __declspec(dllimport)
|
||||
#else
|
||||
#define EXPORT_API
|
||||
#endif
|
||||
|
||||
// 打开设备
|
||||
EXPORT_API DWORD __stdcall VCI_OpenDevice(DWORD DeviceType, DWORD DeviceInd, DWORD Reserved);
|
||||
|
||||
// 关闭设备
|
||||
EXPORT_API DWORD __stdcall VCI_CloseDevice(DWORD DeviceType, DWORD DeviceInd);
|
||||
|
||||
// 初始化 CAN
|
||||
EXPORT_API DWORD __stdcall VCI_InitCAN(DWORD DeviceType, DWORD DeviceInd, DWORD CANInd, PVCI_INIT_CONFIG pInitConfig);
|
||||
|
||||
// 启动 CAN
|
||||
EXPORT_API DWORD __stdcall VCI_StartCAN(DWORD DeviceType, DWORD DeviceInd, DWORD CANInd);
|
||||
|
||||
// 复位 CAN
|
||||
EXPORT_API DWORD __stdcall VCI_ResetCAN(DWORD DeviceType, DWORD DeviceInd, DWORD CANInd);
|
||||
|
||||
// 发送数据
|
||||
EXPORT_API DWORD __stdcall VCI_Transmit(DWORD DeviceType, DWORD DeviceInd, DWORD CANInd, PVCI_CAN_OBJ pSend, DWORD Len);
|
||||
|
||||
// 接收数据
|
||||
EXPORT_API DWORD __stdcall VCI_Receive(DWORD DeviceType, DWORD DeviceInd, DWORD CANInd, PVCI_CAN_OBJ pReceive, DWORD Len, INT WaitTime);
|
||||
|
||||
// 获取接收数量
|
||||
EXPORT_API DWORD __stdcall VCI_GetReceiveNum(DWORD DeviceType, DWORD DeviceInd, DWORD CANInd);
|
||||
|
||||
// 清除缓冲区
|
||||
EXPORT_API DWORD __stdcall VCI_ClearBuffer(DWORD DeviceType, DWORD DeviceInd, DWORD CANInd);
|
||||
|
||||
// 读取设备信息
|
||||
EXPORT_API DWORD __stdcall VCI_ReadBoardInfo(DWORD DeviceType, DWORD DeviceInd, PVCI_BOARD_INFO pInfo);
|
||||
|
||||
// 查找 USB 设备
|
||||
EXPORT_API DWORD __stdcall VCI_FindUsbDevice2(PVCI_BOARD_INFO pInfo);
|
||||
|
||||
// 复位 USB 设备
|
||||
EXPORT_API DWORD __stdcall VCI_UsbDeviceReset(DWORD DeviceType, DWORD DeviceInd, DWORD Reserved);
|
||||
|
||||
// 设置参数
|
||||
EXPORT_API DWORD __stdcall VCI_SetReference(DWORD DeviceType, DWORD DeviceInd, DWORD CANInd, DWORD RefType, PVOID pData);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // CONTROLCAN_H
|
||||
Reference in New Issue
Block a user