1pub 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}