|
@@ -0,0 +1,128 @@
|
|
|
+#ifndef MINGW_CONTROLCAN_H
|
|
|
+#define MINGW_CONTROLCAN_H
|
|
|
+
|
|
|
+
|
|
|
+#ifdef IV_WIN
|
|
|
+
|
|
|
+//接口卡类型定义
|
|
|
+#define VCI_USBCAN1 3
|
|
|
+#define VCI_USBCAN2 4
|
|
|
+#define VCI_USBCAN2A 4
|
|
|
+
|
|
|
+#define VCI_USBCAN_E_U 20
|
|
|
+#define VCI_USBCAN_2E_U 21
|
|
|
+
|
|
|
+//函数调用返回状态值
|
|
|
+#define STATUS_OK 1
|
|
|
+#define STATUS_ERR 0
|
|
|
+
|
|
|
+//类型定义,如果显示重复定义,注释即可。
|
|
|
+//QT中需要定义
|
|
|
+
|
|
|
+typedef unsigned char BYTE;
|
|
|
+typedef char CHAR;
|
|
|
+typedef unsigned char UCHAR;
|
|
|
+typedef int INT;
|
|
|
+typedef unsigned int UINT;
|
|
|
+typedef unsigned short USHORT;
|
|
|
+typedef unsigned long ULONG;
|
|
|
+typedef unsigned long DWORD;
|
|
|
+
|
|
|
+typedef void * PVOID;
|
|
|
+
|
|
|
+
|
|
|
+/*------------------------------------------------兼容ZLG的函数及数据类型------------------------------------------------*/
|
|
|
+//1.ZLGCAN系列接口卡信息的数据类型。
|
|
|
+typedef struct _VCI_BOARD_INFO{
|
|
|
+ USHORT hw_Version;
|
|
|
+ USHORT fw_Version;
|
|
|
+ USHORT dr_Version;
|
|
|
+ USHORT in_Version;
|
|
|
+ USHORT irq_Num;
|
|
|
+ BYTE can_Num;
|
|
|
+ CHAR str_Serial_Num[20];
|
|
|
+ CHAR str_hw_Type[40];
|
|
|
+ USHORT Reserved[4];
|
|
|
+} VCI_BOARD_INFO,*PVCI_BOARD_INFO;
|
|
|
+
|
|
|
+//2.定义CAN信息帧的数据类型。
|
|
|
+typedef struct _VCI_CAN_OBJ{
|
|
|
+ UINT ID;
|
|
|
+ UINT TimeStamp;
|
|
|
+ BYTE TimeFlag;
|
|
|
+ BYTE SendType;
|
|
|
+ BYTE RemoteFlag;//是否是远程帧
|
|
|
+ BYTE ExternFlag;//是否是扩展帧
|
|
|
+ BYTE DataLen;
|
|
|
+ BYTE Data[8];
|
|
|
+ BYTE Reserved[3];
|
|
|
+}VCI_CAN_OBJ,*PVCI_CAN_OBJ;
|
|
|
+
|
|
|
+//3.定义初始化CAN的数据类型
|
|
|
+typedef struct _VCI_INIT_CONFIG{
|
|
|
+ DWORD AccCode;
|
|
|
+ DWORD AccMask;
|
|
|
+ DWORD Reserved;
|
|
|
+ UCHAR Filter;
|
|
|
+ UCHAR Timing0;
|
|
|
+ UCHAR Timing1;
|
|
|
+ UCHAR Mode;
|
|
|
+}VCI_INIT_CONFIG,*PVCI_INIT_CONFIG;
|
|
|
+
|
|
|
+///////// new add struct for filter /////////
|
|
|
+typedef struct _VCI_FILTER_RECORD{
|
|
|
+ DWORD ExtFrame; //是否为扩展帧
|
|
|
+ DWORD Start;
|
|
|
+ DWORD End;
|
|
|
+}VCI_FILTER_RECORD,*PVCI_FILTER_RECORD;
|
|
|
+
|
|
|
+
|
|
|
+#define EXTERNC extern "C"
|
|
|
+
|
|
|
+typedef DWORD (*pVCI_OpenDevice)(DWORD DeviceType,DWORD DeviceInd,DWORD Reserved);
|
|
|
+typedef DWORD (*pVCI_CloseDevice)(DWORD DeviceType,DWORD DeviceInd);
|
|
|
+typedef DWORD (*pVCI_InitCAN)(DWORD DeviceType, DWORD DeviceInd, DWORD CANInd, PVCI_INIT_CONFIG pInitConfig);
|
|
|
+
|
|
|
+typedef DWORD (*pVCI_ReadBoardInfo)(DWORD DeviceType,DWORD DeviceInd,PVCI_BOARD_INFO pInfo);
|
|
|
+
|
|
|
+typedef DWORD (*pVCI_SetReference)(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,DWORD RefType,PVOID pData);
|
|
|
+//QT中请定义:
|
|
|
+//EXTERNC DWORD __stdcall VCI_SetReference(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,DWORD RefType,void *pData);
|
|
|
+
|
|
|
+typedef ULONG (*pVCI_GetReceiveNum)(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd);
|
|
|
+typedef DWORD (*pVCI_ClearBuffer)(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd);
|
|
|
+
|
|
|
+typedef DWORD (*pVCI_StartCAN)(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd);
|
|
|
+typedef DWORD (*pVCI_ResetCAN)(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd);
|
|
|
+
|
|
|
+typedef ULONG (*pVCI_Transmit)(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,PVCI_CAN_OBJ pSend,ULONG Len);
|
|
|
+typedef ULONG (*pVCI_Receive)(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,PVCI_CAN_OBJ pReceive,ULONG Len,INT WaitTime);
|
|
|
+
|
|
|
+
|
|
|
+/*------------------------------------------------其他补充函数及数据结构描述------------------------------------------------*/
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+typedef DWORD (*pVCI_UsbDeviceReset)(DWORD DevType,DWORD DevIndex,DWORD Reserved);
|
|
|
+typedef DWORD (*pVCI_FindUsbDevice2)(PVCI_BOARD_INFO pInfo);
|
|
|
+
|
|
|
+
|
|
|
+extern pVCI_OpenDevice VCI_OpenDevice;
|
|
|
+extern pVCI_CloseDevice VCI_CloseDevice;
|
|
|
+extern pVCI_InitCAN VCI_InitCAN;
|
|
|
+extern pVCI_ReadBoardInfo VCI_ReadBoardInfo;
|
|
|
+extern pVCI_SetReference VCI_SetReference;
|
|
|
+extern pVCI_GetReceiveNum VCI_GetReceiveNum;
|
|
|
+extern pVCI_ClearBuffer VCI_ClearBuffer;
|
|
|
+extern pVCI_StartCAN VCI_StartCAN;
|
|
|
+extern pVCI_ResetCAN VCI_ResetCAN;
|
|
|
+extern pVCI_Transmit VCI_Transmit;
|
|
|
+extern pVCI_Receive VCI_Receive;
|
|
|
+extern pVCI_UsbDeviceReset VCI_UsbDeviceReset;
|
|
|
+extern pVCI_FindUsbDevice2 VCI_FindUsbDevice2;
|
|
|
+
|
|
|
+void LoadVCILibrary();
|
|
|
+
|
|
|
+#endif
|
|
|
+
|
|
|
+#endif // MINGW_CONTROLCAN_H
|