创新can调试器Linux版
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

104 lines
2.8 KiB

4 years ago
  1. #ifndef CONTROLCAN_H
  2. #define CONTROLCAN_H
  3. ////文件版本:v2.02 20190609
  4. //接口卡类型定义
  5. #define VCI_USBCAN1 3
  6. #define VCI_USBCAN2 4
  7. #define VCI_USBCAN2A 4
  8. #define VCI_USBCAN_E_U 20
  9. #define VCI_USBCAN_2E_U 21
  10. //函数调用返回状态值
  11. #define STATUS_OK 1
  12. #define STATUS_ERR 0
  13. #define USHORT unsigned short int
  14. #define BYTE unsigned char
  15. #define CHAR char
  16. #define UCHAR unsigned char
  17. #define UINT unsigned int
  18. #define DWORD unsigned int
  19. #define PVOID void*
  20. #define ULONG unsigned int
  21. #define INT int
  22. #define UINT32 UINT
  23. #define LPVOID void*
  24. #define BOOL BYTE
  25. #define TRUE 1
  26. #define FALSE 0
  27. //1.ZLGCAN系列接口卡信息的数据类型。
  28. typedef struct _VCI_BOARD_INFO{
  29. USHORT hw_Version;
  30. USHORT fw_Version;
  31. USHORT dr_Version;
  32. USHORT in_Version;
  33. USHORT irq_Num;
  34. BYTE can_Num;
  35. CHAR str_Serial_Num[20];
  36. CHAR str_hw_Type[40];
  37. USHORT Reserved[4];
  38. } VCI_BOARD_INFO,*PVCI_BOARD_INFO;
  39. //2.定义CAN信息帧的数据类型。
  40. typedef struct _VCI_CAN_OBJ{
  41. UINT ID;
  42. UINT TimeStamp;
  43. BYTE TimeFlag;
  44. BYTE SendType;
  45. BYTE RemoteFlag;//是否是远程帧
  46. BYTE ExternFlag;//是否是扩展帧
  47. BYTE DataLen;
  48. BYTE Data[8];
  49. BYTE Reserved[3];
  50. }VCI_CAN_OBJ,*PVCI_CAN_OBJ;
  51. //3.定义初始化CAN的数据类型
  52. typedef struct _INIT_CONFIG{
  53. DWORD AccCode;
  54. DWORD AccMask;
  55. DWORD Reserved;
  56. UCHAR Filter;
  57. UCHAR Timing0;
  58. UCHAR Timing1;
  59. UCHAR Mode;
  60. }VCI_INIT_CONFIG,*PVCI_INIT_CONFIG;
  61. ///////// new add struct for filter /////////
  62. typedef struct _VCI_FILTER_RECORD{
  63. DWORD ExtFrame; //是否为扩展帧
  64. DWORD Start;
  65. DWORD End;
  66. }VCI_FILTER_RECORD,*PVCI_FILTER_RECORD;
  67. #ifdef __cplusplus
  68. #define EXTERN_C extern "C"
  69. #else
  70. #define EXTERN_C
  71. #endif
  72. EXTERN_C DWORD VCI_OpenDevice(DWORD DeviceType,DWORD DeviceInd,DWORD Reserved);
  73. EXTERN_C DWORD VCI_CloseDevice(DWORD DeviceType,DWORD DeviceInd);
  74. EXTERN_C DWORD VCI_InitCAN(DWORD DeviceType, DWORD DeviceInd, DWORD CANInd, PVCI_INIT_CONFIG pInitConfig);
  75. EXTERN_C DWORD VCI_ReadBoardInfo(DWORD DeviceType,DWORD DeviceInd,PVCI_BOARD_INFO pInfo);
  76. EXTERN_C DWORD VCI_SetReference(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,DWORD RefType,PVOID pData);
  77. EXTERN_C ULONG VCI_GetReceiveNum(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd);
  78. EXTERN_C DWORD VCI_ClearBuffer(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd);
  79. EXTERN_C DWORD VCI_StartCAN(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd);
  80. EXTERN_C DWORD VCI_ResetCAN(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd);
  81. EXTERN_C ULONG VCI_Transmit(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,PVCI_CAN_OBJ pSend,UINT Len);
  82. EXTERN_C ULONG VCI_Receive(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,PVCI_CAN_OBJ pReceive,UINT Len,INT WaitTime);
  83. EXTERN_C DWORD VCI_UsbDeviceReset(DWORD DevType,DWORD DevIndex,DWORD Reserved);
  84. EXTERN_C DWORD VCI_FindUsbDevice2(PVCI_BOARD_INFO pInfo);
  85. #endif