Kvaser CANLIB: Welcome to Kvaser CANLIB!
linlib.h
Go to the documentation of this file.
1 
14 #ifndef __LINLIB_H
15 #define __LINLIB_H
16 
24 typedef int LinHandle;
25 
29 #define linINVALID_HANDLE ((LinHandle)(-1))
30 
31 
37 typedef enum {
38  linOK = 0,
39  linERR_NOMSG = -1,
44  linERR_PARAM = -7,
46  linERR_NOMEM = -9,
55  linERR_DRIVER = -18,
57  linERR_NOCARD = -20,
63 } LinStatus;
67 // sizeof(LinMessageInfo) should be 68 for correct alignment
68 #include <pshpack1.h>
69 
84 typedef struct {
95  unsigned long timestamp;
96 
101  unsigned long synchBreakLength;
102 
107  unsigned long frameLength;
108 
113  unsigned long bitrate;
114 
119  unsigned char checkSum;
120 
125  unsigned char idPar;
126 
127  unsigned short z;
128 
133  unsigned long synchEdgeTime[4];
134 
139  unsigned long byteTime[8];
141 
142 #include <poppack.h>
143 
144 
153 #define LIN_TX 1
154 #define LIN_RX 2
155 #define LIN_WAKEUP_FRAME 4
156 #define LIN_NODATA 8
157 #define LIN_CSUM_ERROR 16
158 #define LIN_PARITY_ERROR 32
159 #define LIN_SYNCH_ERROR 64
160 #define LIN_BIT_ERROR 128
161 
184 #define linCHANNELDATA_CARD_FIRMWARE_REV 9
185 
191 #define LINERROR(f) ((f) & (LIN_NODATA | LIN_CSUM_ERROR | LIN_SYNCH_ERROR | LIN_BIT_ERROR))
192 
193 
194 // Define LINLIBAPI unless it's done already.
195 // (linlib.c provides its own definition of LINLIBAPI before including this file.)
196 //
197 #ifndef LINLIBAPI
198 # if defined(__BORLANDC__)
199 # define LINLIBAPI __stdcall
200 # elif defined(_MSC_VER) || defined(__MWERKS__) || defined(__GNUC__)
201 # define LINLIBAPI __stdcall
202 # endif
203 #endif
204 
205 #ifdef __cplusplus
206 extern "C" {
207 #endif
208 
217 void LINLIBAPI linInitializeLibrary(void);
218 
225 void LINLIBAPI linUnloadLibrary(void);
226 
227 
263 LinStatus LINLIBAPI linGetTransceiverData(int channel, unsigned char eanNo[8],
264  unsigned char serNo[8], int *ttype);
265 
288 LinHandle LINLIBAPI linOpenChannel(int channel, int flags);
289 
290 
295 #define LIN_MASTER 1
296 #define LIN_SLAVE 2
297 
312 LinStatus LINLIBAPI linClose(LinHandle h);
313 
349  unsigned char *bootVerMajor,
350  unsigned char *bootVerMinor,
351  unsigned char *bootVerBuild,
352  unsigned char *appVerMajor,
353  unsigned char *appVerMinor,
354  unsigned char *appVerBuild);
355 
356 
357 
379 LinStatus LINLIBAPI linGetChannelData(int channel, int item, void *buffer, size_t bufsize);
380 
396 LinStatus LINLIBAPI linSetBitrate(LinHandle h, unsigned int bps);
397 
411 LinStatus LINLIBAPI linBusOn(LinHandle h);
412 
425 LinStatus LINLIBAPI linBusOff(LinHandle h);
426 
439 unsigned long LINLIBAPI linReadTimer(LinHandle h);
440 
461 LinStatus LINLIBAPI linWriteMessage(LinHandle h, unsigned int id, const void *msg,
462  unsigned int dlc);
463 
477 LinStatus LINLIBAPI linRequestMessage(LinHandle h, unsigned int id);
478 
505 LinStatus LINLIBAPI linReadMessage(LinHandle h, unsigned int *id, void *msg,
506  unsigned int *dlc, unsigned int *flags,
507  LinMessageInfo *msgInfo);
508 
538 LinStatus LINLIBAPI linReadMessageWait(LinHandle h, unsigned int *id, void *msg,
539  unsigned int *dlc, unsigned int *flags,
540  LinMessageInfo *msgInfo, unsigned long timeout);
541 
560 LinStatus LINLIBAPI linUpdateMessage(LinHandle h, unsigned int id, const void *msg,
561  unsigned int dlc);
562 
563 
587 LinStatus LINLIBAPI linSetupIllegalMessage(LinHandle h, unsigned int id,
588  unsigned int cFlags, unsigned int delay);
589 
598 #define LIN_MSG_DISTURB_CSUM 1
599 
603 #define LIN_MSG_DISTURB_PARITY 2
604 
615 #define LIN_MSG_USE_STANDARD_PARITY 0x04
616 
619 #define LIN_MSG_USE_ENHANCED_PARITY 0x08
620 
654 LinStatus LINLIBAPI linSetupLIN(LinHandle h, unsigned int lFlags, unsigned int bps);
655 
656 
669 #define LIN_ENHANCED_CHECKSUM 1
670 
676 #define LIN_VARIABLE_DLC 2
677 
696 LinStatus LINLIBAPI linWriteWakeup(LinHandle h, unsigned int count,
697  unsigned int interval);
698 
699 
712 LinStatus LINLIBAPI linClearMessage(LinHandle h, unsigned int id);
713 
756 LinStatus LINLIBAPI linWriteSync(LinHandle h, unsigned long timeout);
757 
769 LinStatus LINLIBAPI linGetCanHandle(LinHandle h, unsigned int *canHandle);
770 
771 #ifdef __cplusplus
772 }
773 #endif
774 
775 
776 #endif // __LINLIB_H
Library not initialized.
Definition: linlib.h:49
Definition: linlib.h:43
Function not supported in this version.
Definition: linlib.h:62
LinStatus linWriteWakeup(LinHandle h, unsigned int count, unsigned int interval)
Definition: linlib.h:84
LinStatus
Definition: linlib.h:37
LinStatus linRequestMessage(LinHandle h, unsigned int id)
LinStatus linGetFirmwareVersion(LinHandle h, unsigned char *bootVerMajor, unsigned char *bootVerMinor, unsigned char *bootVerBuild, unsigned char *appVerMajor, unsigned char *appVerMinor, unsigned char *appVerBuild)
LinStatus linSetBitrate(LinHandle h, unsigned int bps)
LinHandle linOpenChannel(int channel, int flags)
Specified hardware not found. This error is reported when the LIN transceiver isn&#39;t powered up...
Definition: linlib.h:45
LinStatus linClearMessage(LinHandle h, unsigned int id)
unsigned long bitrate
Definition: linlib.h:113
Function not supported in this version.
Definition: linlib.h:61
The LIN interface response wasn&#39;t the expected one.
Definition: linlib.h:54
void linInitializeLibrary(void)
int canHandle
Definition: canlib.h:40
The card was removed or not inserted.
Definition: linlib.h:57
LinStatus linUpdateMessage(LinHandle h, unsigned int id, const void *msg, unsigned int dlc)
LinStatus linGetTransceiverData(int channel, unsigned char eanNo[8], unsigned char serNo[8], int *ttype)
Can&#39;t get handle.
Definition: linlib.h:50
LinStatus linBusOn(LinHandle h)
LinStatus linWriteMessage(LinHandle h, unsigned int id, const void *msg, unsigned int dlc)
unsigned long linReadTimer(LinHandle h)
CAN driver type not supported.
Definition: linlib.h:55
No messages available.
Definition: linlib.h:39
LinStatus linGetChannelData(int channel, int item, void *buffer, size_t bufsize)
There was an error response from the LIN interface.
Definition: linlib.h:53
Definition: linlib.h:41
Error in parameter.
Definition: linlib.h:44
No channels avaliable.
Definition: linlib.h:47
LinStatus linWriteSync(LinHandle h, unsigned long timeout)
DeviceIOControl failed; use the Win32 GetLastError API to get the real (WIn32) error code...
Definition: linlib.h:56
LinStatus linReadMessage(LinHandle h, unsigned int *id, void *msg, unsigned int *dlc, unsigned int *flags, LinMessageInfo *msgInfo)
LinStatus linGetCanHandle(LinHandle h, unsigned int *canHandle)
Definition: linlib.h:52
LinStatus linReadMessageWait(LinHandle h, unsigned int *id, void *msg, unsigned int *dlc, unsigned int *flags, LinMessageInfo *msgInfo, unsigned long timeout)
The license is not valid.
Definition: linlib.h:58
LinStatus linSetupIllegalMessage(LinHandle h, unsigned int id, unsigned int cFlags, unsigned int delay)
Definition: linlib.h:42
LinStatus linSetupLIN(LinHandle h, unsigned int lFlags, unsigned int bps)
void linUnloadLibrary(void)
int LinHandle
Definition: linlib.h:24
Handle is invalid.
Definition: linlib.h:51
OK - no error.
Definition: linlib.h:38
unsigned long frameLength
Definition: linlib.h:107
LinStatus linBusOff(LinHandle h)
unsigned long synchBreakLength
Definition: linlib.h:101
Definition: linlib.h:40
Timeout occurred.
Definition: linlib.h:48
unsigned long timestamp
Definition: linlib.h:95
unsigned short z
Dummy for alignment.
Definition: linlib.h:127
Out of memory.
Definition: linlib.h:46
Internal error in the driver.
Definition: linlib.h:59
unsigned char checkSum
Definition: linlib.h:119
unsigned char idPar
Definition: linlib.h:125
Access denied.
Definition: linlib.h:60