peak_can_sys/
bindings.rs

1/* automatically generated by rust-bindgen 0.59.1 */
2
3pub const PEAK_NONEBUS: u32 = 0;
4pub const PEAK_ISABUS1: u32 = 33;
5pub const PEAK_ISABUS2: u32 = 34;
6pub const PEAK_ISABUS3: u32 = 35;
7pub const PEAK_ISABUS4: u32 = 36;
8pub const PEAK_ISABUS5: u32 = 37;
9pub const PEAK_ISABUS6: u32 = 38;
10pub const PEAK_ISABUS7: u32 = 39;
11pub const PEAK_ISABUS8: u32 = 40;
12pub const PEAK_DNGBUS1: u32 = 49;
13pub const PEAK_PCIBUS1: u32 = 65;
14pub const PEAK_PCIBUS2: u32 = 66;
15pub const PEAK_PCIBUS3: u32 = 67;
16pub const PEAK_PCIBUS4: u32 = 68;
17pub const PEAK_PCIBUS5: u32 = 69;
18pub const PEAK_PCIBUS6: u32 = 70;
19pub const PEAK_PCIBUS7: u32 = 71;
20pub const PEAK_PCIBUS8: u32 = 72;
21pub const PEAK_PCIBUS9: u32 = 1033;
22pub const PEAK_PCIBUS10: u32 = 1034;
23pub const PEAK_PCIBUS11: u32 = 1035;
24pub const PEAK_PCIBUS12: u32 = 1036;
25pub const PEAK_PCIBUS13: u32 = 1037;
26pub const PEAK_PCIBUS14: u32 = 1038;
27pub const PEAK_PCIBUS15: u32 = 1039;
28pub const PEAK_PCIBUS16: u32 = 1040;
29pub const PEAK_USBBUS1: u32 = 81;
30pub const PEAK_USBBUS2: u32 = 82;
31pub const PEAK_USBBUS3: u32 = 83;
32pub const PEAK_USBBUS4: u32 = 84;
33pub const PEAK_USBBUS5: u32 = 85;
34pub const PEAK_USBBUS6: u32 = 86;
35pub const PEAK_USBBUS7: u32 = 87;
36pub const PEAK_USBBUS8: u32 = 88;
37pub const PEAK_USBBUS9: u32 = 1289;
38pub const PEAK_USBBUS10: u32 = 1290;
39pub const PEAK_USBBUS11: u32 = 1291;
40pub const PEAK_USBBUS12: u32 = 1292;
41pub const PEAK_USBBUS13: u32 = 1293;
42pub const PEAK_USBBUS14: u32 = 1294;
43pub const PEAK_USBBUS15: u32 = 1295;
44pub const PEAK_USBBUS16: u32 = 1296;
45pub const PEAK_PCCBUS1: u32 = 97;
46pub const PEAK_PCCBUS2: u32 = 98;
47pub const PEAK_LANBUS1: u32 = 2049;
48pub const PEAK_LANBUS2: u32 = 2050;
49pub const PEAK_LANBUS3: u32 = 2051;
50pub const PEAK_LANBUS4: u32 = 2052;
51pub const PEAK_LANBUS5: u32 = 2053;
52pub const PEAK_LANBUS6: u32 = 2054;
53pub const PEAK_LANBUS7: u32 = 2055;
54pub const PEAK_LANBUS8: u32 = 2056;
55pub const PEAK_LANBUS9: u32 = 2057;
56pub const PEAK_LANBUS10: u32 = 2058;
57pub const PEAK_LANBUS11: u32 = 2059;
58pub const PEAK_LANBUS12: u32 = 2060;
59pub const PEAK_LANBUS13: u32 = 2061;
60pub const PEAK_LANBUS14: u32 = 2062;
61pub const PEAK_LANBUS15: u32 = 2063;
62pub const PEAK_LANBUS16: u32 = 2064;
63pub const PEAK_ERROR_OK: u32 = 0;
64pub const PEAK_ERROR_XMTFULL: u32 = 1;
65pub const PEAK_ERROR_OVERRUN: u32 = 2;
66pub const PEAK_ERROR_BUSLIGHT: u32 = 4;
67pub const PEAK_ERROR_BUSHEAVY: u32 = 8;
68pub const PEAK_ERROR_BUSWARNING: u32 = 8;
69pub const PEAK_ERROR_BUSPASSIVE: u32 = 262144;
70pub const PEAK_ERROR_BUSOFF: u32 = 16;
71pub const PEAK_ERROR_ANYBUSERR: u32 = 262172;
72pub const PEAK_ERROR_QRCVEMPTY: u32 = 32;
73pub const PEAK_ERROR_QOVERRUN: u32 = 64;
74pub const PEAK_ERROR_QXMTFULL: u32 = 128;
75pub const PEAK_ERROR_REGTEST: u32 = 256;
76pub const PEAK_ERROR_NODRIVER: u32 = 512;
77pub const PEAK_ERROR_HWINUSE: u32 = 1024;
78pub const PEAK_ERROR_NETINUSE: u32 = 2048;
79pub const PEAK_ERROR_ILLHW: u32 = 5120;
80pub const PEAK_ERROR_ILLNET: u32 = 6144;
81pub const PEAK_ERROR_ILLCLIENT: u32 = 7168;
82pub const PEAK_ERROR_ILLHANDLE: u32 = 7168;
83pub const PEAK_ERROR_RESOURCE: u32 = 8192;
84pub const PEAK_ERROR_ILLPARAMTYPE: u32 = 16384;
85pub const PEAK_ERROR_ILLPARAMVAL: u32 = 32768;
86pub const PEAK_ERROR_UNKNOWN: u32 = 65536;
87pub const PEAK_ERROR_ILLDATA: u32 = 131072;
88pub const PEAK_ERROR_ILLMODE: u32 = 524288;
89pub const PEAK_ERROR_CAUTION: u32 = 33554432;
90pub const PEAK_ERROR_INITIALIZE: u32 = 67108864;
91pub const PEAK_ERROR_ILLOPERATION: u32 = 134217728;
92pub const PEAK_NONE: u32 = 0;
93pub const PEAK_PEAKCAN: u32 = 1;
94pub const PEAK_ISA: u32 = 2;
95pub const PEAK_DNG: u32 = 3;
96pub const PEAK_PCI: u32 = 4;
97pub const PEAK_USB: u32 = 5;
98pub const PEAK_PCC: u32 = 6;
99pub const PEAK_VIRTUAL: u32 = 7;
100pub const PEAK_LAN: u32 = 8;
101pub const PEAK_DEVICE_ID: u32 = 1;
102pub const PEAK_5VOLTS_POWER: u32 = 2;
103pub const PEAK_RECEIVE_EVENT: u32 = 3;
104pub const PEAK_MESSAGE_FILTER: u32 = 4;
105pub const PEAK_API_VERSION: u32 = 5;
106pub const PEAK_CHANNEL_VERSION: u32 = 6;
107pub const PEAK_BUSOFF_AUTORESET: u32 = 7;
108pub const PEAK_LISTEN_ONLY: u32 = 8;
109pub const PEAK_LOG_LOCATION: u32 = 9;
110pub const PEAK_LOG_STATUS: u32 = 10;
111pub const PEAK_LOG_CONFIGURE: u32 = 11;
112pub const PEAK_LOG_TEXT: u32 = 12;
113pub const PEAK_CHANNEL_CONDITION: u32 = 13;
114pub const PEAK_HARDWARE_NAME: u32 = 14;
115pub const PEAK_RECEIVE_STATUS: u32 = 15;
116pub const PEAK_CONTROLLER_NUMBER: u32 = 16;
117pub const PEAK_TRACE_LOCATION: u32 = 17;
118pub const PEAK_TRACE_STATUS: u32 = 18;
119pub const PEAK_TRACE_SIZE: u32 = 19;
120pub const PEAK_TRACE_CONFIGURE: u32 = 20;
121pub const PEAK_CHANNEL_IDENTIFYING: u32 = 21;
122pub const PEAK_CHANNEL_FEATURES: u32 = 22;
123pub const PEAK_BITRATE_ADAPTING: u32 = 23;
124pub const PEAK_BITRATE_INFO: u32 = 24;
125pub const PEAK_BITRATE_INFO_FD: u32 = 25;
126pub const PEAK_BUSSPEED_NOMINAL: u32 = 26;
127pub const PEAK_BUSSPEED_DATA: u32 = 27;
128pub const PEAK_IP_ADDRESS: u32 = 28;
129pub const PEAK_LAN_SERVICE_STATUS: u32 = 29;
130pub const PEAK_ALLOW_STATUS_FRAMES: u32 = 30;
131pub const PEAK_ALLOW_RTR_FRAMES: u32 = 31;
132pub const PEAK_ALLOW_ERROR_FRAMES: u32 = 32;
133pub const PEAK_INTERFRAME_DELAY: u32 = 33;
134pub const PEAK_ACCEPTANCE_FILTER_11BIT: u32 = 34;
135pub const PEAK_ACCEPTANCE_FILTER_29BIT: u32 = 35;
136pub const PEAK_IO_DIGITAL_CONFIGURATION: u32 = 36;
137pub const PEAK_IO_DIGITAL_VALUE: u32 = 37;
138pub const PEAK_IO_DIGITAL_SET: u32 = 38;
139pub const PEAK_IO_DIGITAL_CLEAR: u32 = 39;
140pub const PEAK_IO_ANALOG_VALUE: u32 = 40;
141pub const PEAK_FIRMWARE_VERSION: u32 = 41;
142pub const PEAK_ATTACHED_CHANNELS_COUNT: u32 = 42;
143pub const PEAK_ATTACHED_CHANNELS: u32 = 43;
144pub const PEAK_DEVICE_NUMBER: u32 = 1;
145pub const PEAK_PARAMETER_OFF: u32 = 0;
146pub const PEAK_PARAMETER_ON: u32 = 1;
147pub const PEAK_FILTER_CLOSE: u32 = 0;
148pub const PEAK_FILTER_OPEN: u32 = 1;
149pub const PEAK_FILTER_CUSTOM: u32 = 2;
150pub const PEAK_CHANNEL_UNAVAILABLE: u32 = 0;
151pub const PEAK_CHANNEL_AVAILABLE: u32 = 1;
152pub const PEAK_CHANNEL_OCCUPIED: u32 = 2;
153pub const PEAK_CHANNEL_VIEW: u32 = 3;
154pub const LOG_FUNCTION_DEFAULT: u32 = 0;
155pub const LOG_FUNCTION_ENTRY: u32 = 1;
156pub const LOG_FUNCTION_PARAMETERS: u32 = 2;
157pub const LOG_FUNCTION_LEAVE: u32 = 4;
158pub const LOG_FUNCTION_WRITE: u32 = 8;
159pub const LOG_FUNCTION_READ: u32 = 16;
160pub const LOG_FUNCTION_ALL: u32 = 65535;
161pub const TRACE_FILE_SINGLE: u32 = 0;
162pub const TRACE_FILE_SEGMENTED: u32 = 1;
163pub const TRACE_FILE_DATE: u32 = 2;
164pub const TRACE_FILE_TIME: u32 = 4;
165pub const TRACE_FILE_OVERWRITE: u32 = 128;
166pub const FEATURE_FD_CAPABLE: u32 = 1;
167pub const FEATURE_DELAY_CAPABLE: u32 = 2;
168pub const FEATURE_IO_CAPABLE: u32 = 4;
169pub const SERVICE_STATUS_STOPPED: u32 = 1;
170pub const SERVICE_STATUS_RUNNING: u32 = 4;
171pub const MAX_LENGTH_HARDWARE_NAME: u32 = 33;
172pub const MAX_LENGTH_VERSION_STRING: u32 = 18;
173pub const PEAK_MESSAGE_STANDARD: u32 = 0;
174pub const PEAK_MESSAGE_RTR: u32 = 1;
175pub const PEAK_MESSAGE_EXTENDED: u32 = 2;
176pub const PEAK_MESSAGE_FD: u32 = 4;
177pub const PEAK_MESSAGE_BRS: u32 = 8;
178pub const PEAK_MESSAGE_ESI: u32 = 16;
179pub const PEAK_MESSAGE_ERRFRAME: u32 = 64;
180pub const PEAK_MESSAGE_STATUS: u32 = 128;
181pub const PEAK_MODE_STANDARD: u32 = 0;
182pub const PEAK_MODE_EXTENDED: u32 = 2;
183pub const PEAK_BAUD_1M: u32 = 20;
184pub const PEAK_BAUD_800K: u32 = 22;
185pub const PEAK_BAUD_500K: u32 = 28;
186pub const PEAK_BAUD_250K: u32 = 284;
187pub const PEAK_BAUD_125K: u32 = 796;
188pub const PEAK_BAUD_100K: u32 = 17199;
189pub const PEAK_BAUD_95K: u32 = 49998;
190pub const PEAK_BAUD_83K: u32 = 34091;
191pub const PEAK_BAUD_50K: u32 = 18223;
192pub const PEAK_BAUD_47K: u32 = 5140;
193pub const PEAK_BAUD_33K: u32 = 35631;
194pub const PEAK_BAUD_20K: u32 = 21295;
195pub const PEAK_BAUD_10K: u32 = 26415;
196pub const PEAK_BAUD_5K: u32 = 32639;
197pub const PEAK_TYPE_ISA: u32 = 1;
198pub const PEAK_TYPE_ISA_SJA: u32 = 9;
199pub const PEAK_TYPE_ISA_PHYTEC: u32 = 4;
200pub const PEAK_TYPE_DNG: u32 = 2;
201pub const PEAK_TYPE_DNG_EPP: u32 = 3;
202pub const PEAK_TYPE_DNG_SJA: u32 = 5;
203pub const PEAK_TYPE_DNG_SJA_EPP: u32 = 6;
204pub type BYTE = ::std::os::raw::c_uchar;
205pub type CHAR = ::std::os::raw::c_char;
206pub type WORD = ::std::os::raw::c_ushort;
207pub type DWORD = ::std::os::raw::c_ulong;
208pub type UINT64 = ::std::os::raw::c_ulonglong;
209pub type LPSTR = *mut CHAR;
210#[doc = ""]
211#[repr(C)]
212#[derive(Debug, Copy, Clone)]
213pub struct tagCANTPMsg {
214    pub ID: DWORD,
215    pub MSGTYPE: BYTE,
216    pub LEN: BYTE,
217    pub DATA: [BYTE; 8usize],
218}
219
220#[doc = ""]
221pub type CANTPMsg = tagCANTPMsg;
222#[repr(C)]
223#[derive(Debug, Copy, Clone)]
224pub struct tagCANTPTimestamp {
225    pub millis: DWORD,
226    pub millis_overflow: WORD,
227    pub micros: WORD,
228}
229
230pub type CANTPTimestamp = tagCANTPTimestamp;
231#[repr(C)]
232#[derive(Debug, Copy, Clone)]
233pub struct tagCANTPMsgFD {
234    pub ID: DWORD,
235    pub MSGTYPE: BYTE,
236    pub DLC: BYTE,
237    pub DATA: [BYTE; 64usize],
238}
239
240pub type CANTPMsgFD = tagCANTPMsgFD;
241#[repr(C)]
242#[derive(Debug, Copy, Clone)]
243pub struct tagCANTPChannelInformation {
244    pub channel_handle: WORD,
245    pub device_type: BYTE,
246    pub controller_number: BYTE,
247    pub device_features: DWORD,
248    pub device_name: [::std::os::raw::c_char; 33usize],
249    pub device_id: DWORD,
250    pub channel_condition: DWORD,
251}
252
253pub type CANTPChannelInformation = tagCANTPChannelInformation;
254unsafe extern "C" {
255    #[doc = " <summary>"]
256    #[doc = " Initializes a CAN Channel"]
257    #[doc = " </summary>"]
258    #[doc = " <param name=\"Channel\">\"The handle of a CAN Channel\"</param>"]
259    #[doc = " <param name=\"Btr0Btr1\">\"The speed for the communication (BTR0BTR1 code)\"</param>"]
260    #[doc = " <param name=\"HwType\">\"Non-PnP: The type of hardware and operation mode\"</param>"]
261    #[doc = " <param name=\"IOPort\">\"Non-PnP: The I/O address for the parallel port\"</param>"]
262    #[doc = " <param name=\"Interrupt\">\"Non-PnP: Interrupt number of the parallel port\"</param>"]
263    #[doc = " <returns>\"A CANTPStatus error code\"</returns>"]
264    pub fn CAN_Initialize(
265        Channel: WORD,
266        Btr0Btr1: WORD,
267        HwType: BYTE,
268        IOPort: DWORD,
269        Interrupt: WORD,
270    ) -> DWORD;
271}
272unsafe extern "C" {
273    #[doc = " <example>f_clock=80000000,nom_brp=10,nom_tseg1=5,nom_tseg2=2,nom_sjw=1,data_brp=4,data_tseg1=7,data_tseg2=2,data_sjw=1</example>"]
274    #[doc = " <returns>\"A CANTPStatus error code\"</returns>"]
275    pub fn CAN_InitializeFD(Channel: WORD, BitrateFD: LPSTR) -> DWORD;
276}
277unsafe extern "C" {
278    #[doc = " <summary>"]
279    #[doc = " Uninitializes one or all CAN Channels initialized by CAN_Initialize"]
280    #[doc = " </summary>"]
281    #[doc = " <remarks>Giving the CANTPHandle value \"PEAK_NONEBUS\","]
282    #[doc = " uninitialize all initialized channels</remarks>"]
283    #[doc = " <param name=\"Channel\">\"The handle of a CAN Channel\"</param>"]
284    #[doc = " <returns>\"A CANTPStatus error code\"</returns>"]
285    pub fn CAN_Uninitialize(Channel: WORD) -> DWORD;
286}
287unsafe extern "C" {
288    #[doc = " <summary>"]
289    #[doc = " Resets the receive and transmit queues of the CAN Channel"]
290    #[doc = " </summary>"]
291    #[doc = " <remarks>"]
292    #[doc = " A reset of the CAN controller is not performed."]
293    #[doc = " </remarks>"]
294    #[doc = " <param name=\"Channel\">\"The handle of a CAN Channel\"</param>"]
295    #[doc = " <returns>\"A CANTPStatus error code\"</returns>"]
296    pub fn CAN_Reset(Channel: WORD) -> DWORD;
297}
298unsafe extern "C" {
299    #[doc = " <summary>"]
300    #[doc = " Gets the current status of a CAN Channel"]
301    #[doc = " </summary>"]
302    #[doc = " <param name=\"Channel\">\"The handle of a CAN Channel\"</param>"]
303    #[doc = " <returns>\"A CANTPStatus error code\"</returns>"]
304    pub fn CAN_GetStatus(Channel: WORD) -> DWORD;
305}
306unsafe extern "C" {
307    #[doc = " <summary>"]
308    #[doc = " Reads a CAN message from the receive queue of a CAN Channel"]
309    #[doc = " </summary>"]
310    #[doc = " <param name=\"Channel\">\"The handle of a CAN Channel\"</param>"]
311    #[doc = " <param name=\"MessageBuffer\">\"A CANTPMsg structure buffer to store the CAN message\"</param>"]
312    #[doc = " <param name=\"TimestampBuffer\">\"A CANTPTimestamp structure buffer to get"]
313    #[doc = " the reception time of the message. If this value is not desired, this parameter"]
314    #[doc = " should be passed as NULL\"</param>"]
315    #[doc = " <returns>\"A CANTPStatus error code\"</returns>"]
316    pub fn CAN_Read(
317        Channel: WORD,
318        MessageBuffer: *mut CANTPMsg,
319        TimestampBuffer: *mut CANTPTimestamp,
320    ) -> DWORD;
321}
322unsafe extern "C" {
323    #[doc = " <summary>"]
324    #[doc = " Reads a CAN message from the receive queue of a FD capable CAN Channel"]
325    #[doc = " </summary>"]
326    #[doc = " <param name=\"Channel\">\"The handle of a FD capable CAN Channel\"</param>"]
327    #[doc = " <param name=\"MessageBuffer\">\"A CANTPMsgFD structure buffer to store the CAN message\"</param>"]
328    #[doc = " <param name=\"TimestampBuffer\">\"A CANTPTimestampFD buffer to get"]
329    #[doc = " the reception time of the message. If this value is not desired, this parameter"]
330    #[doc = " should be passed as NULL\"</param>"]
331    #[doc = " <returns>\"A CANTPStatus error code\"</returns>"]
332    pub fn CAN_ReadFD(
333        Channel: WORD,
334        MessageBuffer: *mut CANTPMsgFD,
335        TimestampBuffer: *mut UINT64,
336    ) -> DWORD;
337}
338unsafe extern "C" {
339    #[doc = " <summary>"]
340    #[doc = " Transmits a CAN message"]
341    #[doc = " </summary>"]
342    #[doc = " <param name=\"Channel\">\"The handle of a CAN Channel\"</param>"]
343    #[doc = " <param name=\"MessageBuffer\">\"A CANTPMsg buffer with the message to be sent\"</param>"]
344    #[doc = " <returns>\"A CANTPStatus error code\"</returns>"]
345    pub fn CAN_Write(Channel: WORD, MessageBuffer: *mut CANTPMsg) -> DWORD;
346}
347unsafe extern "C" {
348    #[doc = " <summary>"]
349    #[doc = " Transmits a CAN message over a FD capable CAN Channel"]
350    #[doc = " </summary>"]
351    #[doc = " <param name=\"Channel\">\"The handle of a FD capable CAN Channel\"</param>"]
352    #[doc = " <param name=\"MessageBuffer\">\"A CANTPMsgFD buffer with the message to be sent\"</param>"]
353    #[doc = " <returns>\"A CANTPStatus error code\"</returns>"]
354    pub fn CAN_WriteFD(Channel: WORD, MessageBuffer: *mut CANTPMsgFD) -> DWORD;
355}
356unsafe extern "C" {
357    #[doc = " <summary>"]
358    #[doc = " Configures the reception filter."]
359    #[doc = " </summary>"]
360    #[doc = " <remarks>The message filter will be expanded with every call to"]
361    #[doc = " this function. If it is desired to reset the filter, please use"]
362    #[doc = " the CAN_SetValue function</remarks>"]
363    #[doc = " <param name=\"Channel\">\"The handle of a CAN Channel\"</param>"]
364    #[doc = " <param name=\"FromID\">\"The lowest CAN ID to be received\"</param>"]
365    #[doc = " <param name=\"ToID\">\"The highest CAN ID to be received\"</param>"]
366    #[doc = " <param name=\"Mode\">\"Message type, Standard (11-bit identifier) or"]
367    #[doc = " Extended (29-bit identifier)\"</param>"]
368    #[doc = " <returns>\"A CANTPStatus error code\"</returns>"]
369    pub fn CAN_FilterMessages(Channel: WORD, FromID: DWORD, ToID: DWORD, Mode: BYTE) -> DWORD;
370}
371unsafe extern "C" {
372    #[doc = " <summary>"]
373    #[doc = " Retrieves a CAN Channel value"]
374    #[doc = " </summary>"]
375    #[doc = " <remarks>Parameters can be present or not according with the kind"]
376    #[doc = " of Hardware (CAN Channel) being used. If a parameter is not available,"]
377    #[doc = " a PEAK_ERROR_ILLPARAMTYPE error will be returned</remarks>"]
378    #[doc = " <param name=\"Channel\">\"The handle of a CAN Channel\"</param>"]
379    #[doc = " <param name=\"Parameter\">\"The CANTPParameter parameter to get\"</param>"]
380    #[doc = " <param name=\"Buffer\">\"Buffer for the parameter value\"</param>"]
381    #[doc = " <param name=\"BufferLength\">\"Size in bytes of the buffer\"</param>"]
382    #[doc = " <returns>\"A CANTPStatus error code\"</returns>"]
383    pub fn CAN_GetValue(
384        Channel: WORD,
385        Parameter: BYTE,
386        Buffer: *mut ::std::os::raw::c_void,
387        BufferLength: DWORD,
388    ) -> DWORD;
389}
390unsafe extern "C" {
391    #[doc = " <summary>"]
392    #[doc = " Configures or sets a CAN Channel value"]
393    #[doc = " </summary>"]
394    #[doc = " <remarks>Parameters can be present or not according with the kind"]
395    #[doc = " of Hardware (CAN Channel) being used. If a parameter is not available,"]
396    #[doc = " a PEAK_ERROR_ILLPARAMTYPE error will be returned</remarks>"]
397    #[doc = " <param name=\"Channel\">\"The handle of a CAN Channel\"</param>"]
398    #[doc = " <param name=\"Parameter\">\"The CANTPParameter parameter to set\"</param>"]
399    #[doc = " <param name=\"Buffer\">\"Buffer with the value to be set\"</param>"]
400    #[doc = " <param name=\"BufferLength\">\"Size in bytes of the buffer\"</param>"]
401    #[doc = " <returns>\"A CANTPStatus error code\"</returns>"]
402    pub fn CAN_SetValue(
403        Channel: WORD,
404        Parameter: BYTE,
405        Buffer: *mut ::std::os::raw::c_void,
406        BufferLength: DWORD,
407    ) -> DWORD;
408}
409unsafe extern "C" {
410    #[doc = " <summary>"]
411    #[doc = " Returns a descriptive text of a given CANTPStatus error"]
412    #[doc = " code, in any desired language"]
413    #[doc = " </summary>"]
414    #[doc = " <remarks>The current languages available for translation are:"]
415    #[doc = " Neutral (0x00), German (0x07), English (0x09), Spanish (0x0A),"]
416    #[doc = " Italian (0x10) and French (0x0C)</remarks>"]
417    #[doc = " <param name=\"Error\">\"A CANTPStatus error code\"</param>"]
418    #[doc = " <param name=\"Language\">\"Indicates a 'Primary language ID'\"</param>"]
419    #[doc = " <param name=\"Buffer\">\"Buffer for a null terminated char array\"</param>"]
420    #[doc = " <returns>\"A CANTPStatus error code\"</returns>"]
421    pub fn CAN_GetErrorText(Error: DWORD, Language: WORD, Buffer: LPSTR) -> DWORD;
422}