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

275 lines
7.2 KiB

4 years ago
  1. unit ControlCAN;
  2. interface
  3. uses
  4. WinTypes;
  5. const
  6. DLL_NAME = 'ControlCAN.dll';//��̬������
  7. type
  8. //--------------------------------------����ZLG�������������-----------------
  9. //�����������ݽṹ
  10. //USB-CAN�����������忨��Ϣ���������͡�
  11. VCI_BOARD_INFO = Record
  12. hw_Version : WORD;
  13. fw_Version : WORD;
  14. dr_Version : WORD;
  15. in_Version : WORD;
  16. irq_Num : WORD;
  17. can_Num : BYTE;
  18. str_Serial_Num : array[0..19] of CHAR;
  19. str_hw_Type : array[0..39] of CHAR;
  20. Reserved : array[0..3] of WORD;
  21. END;
  22. PVCI_BOARD_INFO=^VCI_BOARD_INFO;
  23. //����CAN��Ϣ֡���������͡�
  24. VCI_CAN_OBJ = Record
  25. ID : UINT;
  26. TimeStamp : UINT;
  27. TimeFlag : BYTE;
  28. SendType : BYTE;
  29. RemoteFlag : BYTE;//�Ƿ���Զ��֡
  30. ExternFlag : BYTE;//�Ƿ�����չ֡
  31. DataLen : BYTE;
  32. Data : array[0..7] of BYTE;
  33. Reserved : array[0..2] of BYTE;
  34. END;
  35. PVCI_CAN_OBJ = ^VCI_CAN_OBJ;
  36. //����CAN������״̬���������͡�
  37. VCI_CAN_STATUS = Record
  38. ErrInterrupt : UCHAR;
  39. regMode : UCHAR;
  40. regStatus : UCHAR;
  41. regALCapture : UCHAR;
  42. regECCapture : UCHAR;
  43. regEWLimit : UCHAR;
  44. regRECounter : UCHAR;
  45. regTECounter : UCHAR;
  46. Reserved : DWORD;
  47. END;
  48. PVCI_CAN_STATUS = ^VCI_CAN_STATUS;
  49. //����������Ϣ���������͡�
  50. VCI_ERR_INFO = Record
  51. ErrCode : UINT;
  52. Passive_ErrData : array[0..2] of BYTE;
  53. ArLost_ErrData : BYTE;
  54. END;
  55. PVCI_ERR_INFO = ^VCI_ERR_INFO;
  56. //������ʼ��CAN����������
  57. VCI_INIT_CONFIG = Record
  58. AccCode : DWORD;
  59. AccMask : DWORD;
  60. Reserved : DWORD;
  61. Filter : UCHAR;
  62. Timing0 : UCHAR;
  63. Timing1 : UCHAR;
  64. Mode : UCHAR;
  65. END;
  66. PVCI_INIT_CONFIG = ^VCI_INIT_CONFIG;
  67. //���붯̬�⺯��
  68. function VCI_OpenDevice ( DevType : DWORD;
  69. DevIndex : DWORD;
  70. Reserved : DWORD) : DWORD;
  71. stdcall;
  72. external DLL_NAME;
  73. function VCI_CloseDevice ( DevType : DWORD;
  74. DevIndex : DWORD) : DWORD;
  75. stdcall;
  76. external DLL_NAME;
  77. function VCI_InitCAN ( DevType : DWORD;
  78. DevIndex : DWORD;
  79. CANIndex : DWORD;
  80. pInitConfig : PVCI_INIT_CONFIG) : DWORD;
  81. stdcall;
  82. external DLL_NAME;
  83. function VCI_ReadBoardInfo ( DevType : DWORD;
  84. DevIndex : DWORD;
  85. pInfo : PVCI_BOARD_INFO) : DWORD;
  86. stdcall;
  87. external DLL_NAME;
  88. function VCI_ReadErrInfo ( DevType : DWORD;
  89. DevIndex : DWORD;
  90. CANIndex : DWORD;
  91. pErrInfo : PVCI_ERR_INFO) : DWORD;
  92. stdcall;
  93. external DLL_NAME;
  94. function VCI_ReadCANStatus ( DevType : DWORD;
  95. DevIndex : DWORD;
  96. CANIndex : DWORD;
  97. pCANStatus : PVCI_CAN_STATUS) : DWORD;
  98. stdcall;
  99. external DLL_NAME;
  100. function VCI_GetReference ( DevType : DWORD;
  101. DevIndex : DWORD;
  102. CANIndex : DWORD;
  103. RefType : DWORD;
  104. pData : Pointer) : DWORD;
  105. stdcall;
  106. external DLL_NAME;
  107. function VCI_SetReference ( DevType : DWORD;
  108. DevIndex : DWORD;
  109. CANIndex : DWORD;
  110. RefType : DWORD;
  111. pData : Pointer) : DWORD;
  112. stdcall;
  113. external DLL_NAME;
  114. function VCI_GetReceiveNum ( DevType : DWORD;
  115. DevIndex : DWORD;
  116. CANIndex : DWORD) : ULONG;
  117. stdcall;
  118. external DLL_NAME;
  119. function VCI_ClearBuffer ( DevType : DWORD;
  120. DevIndex : DWORD;
  121. CANIndex : DWORD) : DWORD;
  122. stdcall;
  123. external DLL_NAME;
  124. function VCI_StartCAN ( DevType : DWORD;
  125. DevIndex : DWORD;
  126. CANIndex : DWORD) : DWORD;
  127. stdcall;
  128. external DLL_NAME;
  129. function VCI_ResetCAN ( DevType : DWORD;
  130. DevIndex : DWORD;
  131. CANIndex : DWORD) : DWORD;
  132. stdcall;
  133. external DLL_NAME;
  134. function VCI_Transmit ( DevType : DWORD;
  135. DevIndex : DWORD;
  136. CANIndex : DWORD;
  137. pSend : PVCI_CAN_OBJ;
  138. Len : ULONG) : ULONG;
  139. stdcall;
  140. external DLL_NAME;
  141. function VCI_Receive ( DevType : DWORD;
  142. DevIndex : DWORD;
  143. CANIndex : DWORD;
  144. pReceive : PVCI_CAN_OBJ;
  145. Len : ULONG;
  146. WaitTime : integer) : ULONG;
  147. stdcall;
  148. external DLL_NAME;
  149. //------------------------�������������ݽṹ����--------------------------------
  150. type
  151. //USB-CAN�����������忨��Ϣ����������1����������VCI_FindUsbDevice����������
  152. VCI_BOARD_INFO1 = Record
  153. hw_Version : WORD;
  154. fw_Version : WORD;
  155. dr_Version : WORD;
  156. in_Version : WORD;
  157. irq_Num : WORD;
  158. can_Num : BYTE;
  159. reserved : BYTE;
  160. str_Serial_Num : array[0..7] of CHAR;
  161. str_hw_Type : array[0..15] of CHAR;
  162. str_USB_Serial : array[0..3,0..3] of CHAR;
  163. END;
  164. PVCI_BOARD_INFO1=^VCI_BOARD_INFO1;
  165. //���峣����������
  166. VCI_REF_NORMAL = Record
  167. Mode : UCHAR; //����ģʽ
  168. Filter : UCHAR; //�˲���ʽ
  169. AccCode : DWORD; //�����˲�������
  170. AccMask : DWORD; //�����˲�������
  171. kBaudRate : UCHAR; //�����������ţ�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
  172. Timing0 : UCHAR;
  173. Timing1 : UCHAR;
  174. CANRX_EN : UCHAR; //�������
  175. UARTBAUD : UCHAR; //�������
  176. END;
  177. PVCI_REF_NORMAL = ^VCI_REF_NORMAL;
  178. //���岨�������ò�������
  179. VCI_BAUD_TYPE = Record
  180. Baud : DWORD; //�洢������ʵ��ֵ
  181. SJW : UCHAR; //ͬ����ת���ȣ�ȡֵ1-4
  182. BRP : UCHAR; //Ԥ��Ƶֵ��ȡֵ1-64
  183. SAM : UCHAR; //�����㣬ȡֵ0=����һ�Σ�1=��������
  184. PHSEG2_SEL : UCHAR; //��λ������2ѡ��λ��ȡֵ0=����λ������1ʱ������,1=�ɱ���
  185. PRSEG : UCHAR; //����ʱ���Σ�ȡֵ1-8
  186. PHSEG1 : UCHAR; //��λ������1��ȡֵ1-8
  187. PHSEG2 : UCHAR; //��λ������2��ȡֵ1-8
  188. END;
  189. PVCI_BAUD_TYPE = ^VCI_BAUD_TYPE;
  190. //����Reference��������
  191. VCI_REF_STRUCT = Record
  192. RefNormal : VCI_REF_NORMAL;
  193. Reserved : UCHAR;
  194. BaudType : VCI_BAUD_TYPE;
  195. END;
  196. PVCI_REF_STRUCT = ^VCI_REF_STRUCT;
  197. //���붯̬�⺯��
  198. function VCI_GetReference2 ( DevType : DWORD;
  199. DevIndex : DWORD;
  200. CANIndex : DWORD;
  201. Reserved : DWORD;
  202. pRefStruct : PVCI_REF_STRUCT) : DWORD;
  203. stdcall;
  204. external DLL_NAME;
  205. function VCI_SetReference2 ( DevType : DWORD;
  206. DevIndex : DWORD;
  207. CANIndex : DWORD;
  208. RefType : DWORD;
  209. pRefStruct : Pointer) : DWORD;
  210. stdcall;
  211. external DLL_NAME;
  212. function VCI_ResumeConfig ( DevType : DWORD;
  213. DevIndex : DWORD;
  214. CANIndex : DWORD) : DWORD;
  215. stdcall;
  216. external DLL_NAME;
  217. function VCI_ConnectDevice ( DevType : DWORD;
  218. DevIndex : DWORD) : DWORD;
  219. stdcall;
  220. external DLL_NAME;
  221. function VCI_UsbDeviceReset ( DevType : DWORD;
  222. DevIndex : DWORD;
  223. Reserved : DWORD) : DWORD;
  224. stdcall;
  225. external DLL_NAME;
  226. function VCI_FindUsbDevice ( pInfo : PVCI_BOARD_INFO1) : DWORD;
  227. stdcall;
  228. external DLL_NAME;
  229. implementation
  230. end.