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

145 lines
6.6 KiB

4 years ago
  1. Attribute VB_Name = "ControlCAN"
  2. '�豸����˵����
  3. 'USB_CAN:3 ---- ��ͨ��USB-CAN������
  4. 'USB_CAN2:4 ---- ˫ͨ��USB-CAN������
  5. '------------------����ZLG�������������-----------------------
  6. '������Ҫ�õ������ݽṹ
  7. 'USB-CAN�����������忨��Ϣ���������͡�
  8. Public Type VCI_BOARD_INFO
  9. hw_Version As Integer
  10. fw_Version As Integer
  11. dr_Version As Integer
  12. in_Version As Integer
  13. irq_num As Integer
  14. can_num As Byte
  15. str_Serial_Num(19) As Byte
  16. str_hw_Type(39) As Byte
  17. str_Usb_Serial(3) As Byte
  18. End Type
  19. '����CAN��Ϣ֡���������͡�
  20. Public Type VCI_CAN_OBJ
  21. ID As Long
  22. TimeStamp As Long 'ʱ����ʶ
  23. TimeFlag As Byte '�Ƿ�ʹ��ʱ����ʶ
  24. SendType As Byte '���ͱ�־��������δ��
  25. RemoteFlag As Byte '�Ƿ���Զ��֡
  26. ExternFlag As Byte '�Ƿ�����չ֡
  27. DataLen As Byte
  28. data(7) As Byte
  29. reserved(2) As Byte
  30. End Type
  31. '����CAN������״̬���������͡�
  32. Public Type VCI_CAN_STATUS
  33. ErrInterrupt As Byte
  34. regMode As Byte
  35. regStatus As Byte
  36. regALCapture As Byte
  37. regECCapture As Byte
  38. regEWLimit As Byte
  39. regRECounter As Byte
  40. regTECounter As Byte
  41. reserved As Long
  42. End Type
  43. '����������Ϣ���������͡�
  44. Public Type VCI_ERR_INFO
  45. ErrCode As Long
  46. Passive_ErrData(2) As Byte
  47. ArLost_ErrData As Byte
  48. End Type
  49. '������ʼ��CAN����������
  50. Public Type VCI_INIT_CONFIG
  51. AccCode As Long
  52. AccMask As Long
  53. InitFlag As Long
  54. Filter As Byte '0,1��������֡��2��׼֡�˲���3����չ֡�˲���
  55. Timing0 As Byte
  56. Timing1 As Byte
  57. Mode As Byte 'ģʽ��0��ʾ����ģʽ��1��ʾֻ��ģʽ,2�Բ�ģʽ
  58. End Type
  59. '��������
  60. '-----------------------------����ZLG���---------------------------------
  61. '����ֵ˵����=1�����ɹ���=0����ʧ�ܣ�=-1Ӳ�����������豸δ�򿪣�
  62. Declare Function VCI_OpenDevice Lib "ControlCAN.dll" (ByVal DevType As Long, ByVal DevIndex As Long, ByVal reserved As Long) As Long
  63. Declare Function VCI_CloseDevice Lib "ControlCAN.dll" (ByVal DevType As Long, ByVal DevIndex As Long) As Long
  64. Declare Function VCI_InitCAN Lib "ControlCAN.dll" (ByVal DevType As Long, ByVal DevIndex As Long, ByVal CANIndex As Long, ByRef pInitConfig As VCI_INIT_CONFIG) As Long
  65. Declare Function VCI_ReadBoardInfo Lib "ControlCAN.dll" (ByVal DevType As Long, ByVal DevIndex As Long, ByRef pInfo As VCI_BOARD_INFO) As Long
  66. Declare Function VCI_ReadErrInfo Lib "ControlCAN.dll" (ByVal DevType As Long, ByVal DevIndex As Long, ByVal CANIndex As Long, ByRef pErrInfo As VCI_ERR_INFO) As Long
  67. Declare Function VCI_ReadCANStatus Lib "ControlCAN.dll" (ByVal DevType As Long, ByVal DevIndex As Long, ByVal CANIndex As Long, ByRef pCANStatus As VCI_CAN_STATUS) As Long
  68. Declare Function VCI_GetReference Lib "ControlCAN.dll" (ByVal DevType As Long, ByVal DevIndex As Long, ByVal CANIndex As Long, ByVal reserved As Long, ByRef data As Byte) As Long
  69. Declare Function VCI_SetReference Lib "ControlCAN.dll" (ByVal DevType As Long, ByVal DevIndex As Long, ByVal CANIndex As Long, ByVal RefType As Long, ByRef data As Byte) As Long
  70. Declare Function VCI_GetReceiveNum Lib "ControlCAN.dll" (ByVal DevType As Long, ByVal DevIndex As Long, ByVal CANIndex As Long) As Long
  71. Declare Function VCI_ClearBuffer Lib "ControlCAN.dll" (ByVal DevType As Long, ByVal DevIndex As Long, ByVal CANIndex As Long) As Long
  72. Declare Function VCI_StartCAN Lib "ControlCAN.dll" (ByVal DevType As Long, ByVal DevIndex As Long, ByVal CANIndex As Long) As Long
  73. Declare Function VCI_ResetCAN Lib "ControlCAN.dll" (ByVal DevType As Long, ByVal DevIndex As Long, ByVal CANIndex As Long) As Long
  74. Declare Function VCI_Receive Lib "ControlCAN.dll" (ByVal DevType As Long, ByVal DevIndex As Long, ByVal CANIndex As Long, ByRef pReceive As VCI_CAN_OBJ, ByVal Length As Long, ByVal WaitTime As Integer) As Long
  75. '����ֵΪʵ�ʷ���֡����������-1����ʾ�豸����
  76. Declare Function VCI_Transmit Lib "ControlCAN.dll" (ByVal DevType As Long, ByVal DevIndex As Long, ByVal CANIndex As Long, ByRef pSend As VCI_CAN_OBJ, ByVal Length As Long) As Long
  77. '-------------------------------�������������ݽṹ����---------------------------------
  78. 'USB-CAN�����������忨��Ϣ����������1�������ݽṹ��VCI_FindUsbDevice������
  79. Public Type VCI_BOARD_INFO1
  80. hw_Version As Integer
  81. fw_Version As Integer
  82. dr_Version As Integer
  83. in_Version As Integer
  84. irq_num As Integer
  85. can_num As Byte
  86. reserved As Byte
  87. str_Serial_Num(7) As Byte
  88. str_hw_Type(15) As Byte
  89. str_Usb_Serial(3, 3) As Byte
  90. End Type
  91. '���峣����������
  92. Public Type VCI_REF_NORMAL
  93. Mode As Byte '����ģʽ
  94. Filter As Byte '�˲���ʽ
  95. AccCode As Long '�����˲�������
  96. AccMask As Long '�����˲�������
  97. kBaudRate As Byte '�����������ţ�0-SelfDefine,1-5Kbps(δ��),2-18����Ϊ��10kbps,20kbps,40kbps,50kbps,80kbps,100kbps,125kbps,200kbps,250kbps,400kbps,500kbps,666kbps,800kbps,1000kbps,33.33kbps,66.66kbps,83.33kbps
  98. Timing0 As Byte
  99. Timing1 As Byte
  100. CANRX_EN As Byte '�������
  101. UARTBAUD As Byte '�������
  102. End Type
  103. '���岨�������ò�������
  104. Public Type VCI_BAUD_TYPE
  105. Baud As Long '�洢������ʵ��ֵ
  106. SJW As Byte 'ͬ����ת���ȣ�ȡֵ1-4
  107. BRP As Byte 'Ԥ��Ƶֵ��ȡֵ1-64
  108. SAM As Byte '�����㣬ȡֵ0=����һ�Σ�1=��������
  109. PHSEG2_SEL As Byte '��λ������2ѡ��λ��ȡֵ0=����λ������1ʱ������,1=�ɱ���
  110. PRSEG As Byte '����ʱ���Σ�ȡֵ1-8
  111. PHSEG1 As Byte '��λ������1��ȡֵ1-8
  112. PHSEG2 As Byte '��λ������2��ȡֵ1-8
  113. End Type
  114. '����Reference��������
  115. Public Type VCI_REF_STRUCT
  116. RefNormal As VCI_REF_NORMAL
  117. reserved As Byte
  118. BaudType As VCI_BAUD_TYPE
  119. End Type
  120. Declare Function VCI_GetReference2 Lib "ControlCAN.dll" (ByVal DevType As Long, ByVal DevIndex As Long, ByVal CANIndex As Long, ByVal reserved As Long, ByRef pRefStruct As VCI_REF_STRUCT) As Long
  121. Declare Function VCI_SetReference2 Lib "ControlCAN.dll" (ByVal DevType As Long, ByVal DevIndex As Long, ByVal CANIndex As Long, ByVal RefType As Long, ByRef data As Byte) As Long
  122. Declare Function VCI_ResumeConfig Lib "ControlCAN.dll" (ByVal DevType As Long, ByVal DevIndex As Long) As Long
  123. Declare Function VCI_ConnectDevice Lib "ControlCAN.dll" (ByVal DevType As Long, ByVal DevIndex As Long) As Long
  124. Declare Function VCI_UsbDeviceReset Lib "ControlCAN.dll" (ByVal DevType As Long, ByVal DevIndex As Long, ByVal reserved As Long) As Long
  125. Declare Function VCI_FindUsbDevice Lib "ControlCAN.dll" (ByRef pInfo As VCI_BOARD_INFO1) As Long
  126. '�����