创新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.

99 lines
2.6 KiB

4 years ago
  1. //ControlCAN.h for matlab
  2. //20200613
  3. #ifndef CONTROLCAN_H
  4. #define CONTROLCAN_H
  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. #define STATUS_OK 1
  11. #define STATUS_ERR 0
  12. //for matlab
  13. typedef unsigned char BYTE;
  14. typedef char CHAR;
  15. typedef unsigned char UCHAR;
  16. typedef int INT;
  17. typedef unsigned int UINT;
  18. typedef unsigned short USHORT;
  19. typedef unsigned long ULONG;
  20. typedef unsigned long DWORD;
  21. typedef struct _VCI_BOARD_INFO{
  22. USHORT hw_Version;
  23. USHORT fw_Version;
  24. USHORT dr_Version;
  25. USHORT in_Version;
  26. USHORT irq_Num;
  27. BYTE can_Num;
  28. CHAR str_Serial_Num[20];
  29. CHAR str_hw_Type[40];
  30. USHORT Reserved[4];
  31. } VCI_BOARD_INFO,*PVCI_BOARD_INFO;
  32. typedef struct _VCI_CAN_OBJ{
  33. UINT ID;
  34. UINT TimeStamp;
  35. BYTE TimeFlag;
  36. BYTE SendType;
  37. BYTE RemoteFlag;
  38. BYTE ExternFlag;
  39. BYTE DataLen;
  40. BYTE Data[8];
  41. BYTE Reserved[3];
  42. }VCI_CAN_OBJ,*PVCI_CAN_OBJ;
  43. typedef struct _VCI_INIT_CONFIG{
  44. DWORD AccCode;
  45. DWORD AccMask;
  46. DWORD Reserved;
  47. UCHAR Filter;
  48. UCHAR Timing0;
  49. UCHAR Timing1;
  50. UCHAR Mode;
  51. }VCI_INIT_CONFIG,*PVCI_INIT_CONFIG;
  52. typedef struct _VCI_FILTER_RECORD{
  53. DWORD ExtFrame;
  54. DWORD Start;
  55. DWORD End;
  56. }VCI_FILTER_RECORD,*PVCI_FILTER_RECORD;
  57. #define EXTERNC extern "C"
  58. EXTERNC DWORD __stdcall VCI_OpenDevice(DWORD DeviceType,DWORD DeviceInd,DWORD Reserved);
  59. EXTERNC DWORD __stdcall VCI_CloseDevice(DWORD DeviceType,DWORD DeviceInd);
  60. EXTERNC DWORD __stdcall VCI_InitCAN(DWORD DeviceType, DWORD DeviceInd, DWORD CANInd, PVCI_INIT_CONFIG pInitConfig);
  61. EXTERNC DWORD __stdcall VCI_ReadBoardInfo(DWORD DeviceType,DWORD DeviceInd,PVCI_BOARD_INFO pInfo);
  62. //EXTERNC DWORD __stdcall VCI_SetReference(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,DWORD RefType,PVOID pData);
  63. EXTERNC DWORD __stdcall VCI_SetReference(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,DWORD RefType,void *pData);
  64. EXTERNC ULONG __stdcall VCI_GetReceiveNum(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd);
  65. EXTERNC DWORD __stdcall VCI_ClearBuffer(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd);
  66. EXTERNC DWORD __stdcall VCI_StartCAN(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd);
  67. EXTERNC DWORD __stdcall VCI_ResetCAN(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd);
  68. EXTERNC ULONG __stdcall VCI_Transmit(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,PVCI_CAN_OBJ pSend,ULONG Len);
  69. EXTERNC ULONG __stdcall VCI_Receive(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,PVCI_CAN_OBJ pReceive,ULONG Len,INT WaitTime);
  70. #define EXTERNC extern "C"
  71. EXTERNC DWORD __stdcall VCI_UsbDeviceReset(DWORD DevType,DWORD DevIndex,DWORD Reserved);
  72. EXTERNC DWORD __stdcall VCI_FindUsbDevice2(PVCI_BOARD_INFO pInfo);
  73. #endif