kvlclib.h
Go to the documentation of this file.
1 /*
2 * Copyright 2017 by Kvaser AB, Molndal, Sweden
3 * http://www.kvaser.com
4 *
5 * This software is dual licensed under the following two licenses:
6 * BSD-new and GPLv2.You may use either one. See the included
7 * COPYING file for details.
8 *
9 * License: BSD-new
10 * ==============================================================================
11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions are met:
13 * * Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer.
15 * * Redistributions in binary form must reproduce the above copyright
16 * notice, this list of conditions and the following disclaimer in the
17 * documentation and/or other materials provided with the distribution.
18 * * Neither the name of the <organization> nor the
19 * names of its contributors may be used to endorse or promote products
20 * derived from this software without specific prior written permission.
21 *
22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
26 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
27 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
28 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
29 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
30 * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
31 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32 * POSSIBILITY OF SUCH DAMAGE.
33 *
34 *
35 * License: GPLv2
36 * ==============================================================================
37 * This program is free software; you can redistribute it and/or modify
38 * it under the terms of the GNU General Public License as published by
39 * the Free Software Foundation; either version 2 of the License, or
40 * (at your option) any later version.
41 *
42 * This program is distributed in the hope that it will be useful,
43 * but WITHOUT ANY WARRANTY; without even the implied warranty of
44 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
45 * GNU General Public License for more details.
46 *
47 * You should have received a copy of the GNU General Public License
48 * along with this program; if not, write to the Free Software
49 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
50 *
51 *
52 * IMPORTANT NOTICE:
53 * ==============================================================================
54 * This source code is made available for free, as an open license, by Kvaser AB,
55 * for use with its applications. Kvaser AB does not accept any liability
56 * whatsoever for any third party patent or other immaterial property rights
57 * violations that may result from any usage of this source code, regardless of
58 * the combination of source code and various applications that it can be used
59 * in, or with.
60 *
61 * -----------------------------------------------------------------------------
62 */
63 
84 #ifndef KVLCLIB_H
85 #define KVLCLIB_H
86 
87 #include <stdint.h>
88 #include <stddef.h>
89 #define WINAPI
90 
91 #include "kvaDbLib.h"
92 
93 #ifdef __cplusplus
94 extern "C" {
95 #endif // __cplusplus
96 
97 
102 typedef int KvlcStatus;
103 typedef void *KvlcHandle;
104 typedef uint64_t time_uint64;
105 typedef int64_t time_int64;
106 typedef int64_t int64;
107 typedef uint64_t uint64;
119 #define kvlcOK ((KvlcStatus) 0)
120 #define kvlcFail ((KvlcStatus)-1)
121 #define kvlcERR_PARAM ((KvlcStatus)-2)
122 #define kvlcEOF ((KvlcStatus)-3)
123 #define kvlcERR_NOT_IMPLEMENTED ((KvlcStatus)-4)
124 #define kvlcERR_FILE_ERROR ((KvlcStatus)-5)
125 #define kvlcERR_FILE_EXISTS ((KvlcStatus)-6)
126 #define kvlcERR_INTERNAL_ERROR ((KvlcStatus)-7)
127 #define kvlcERR_NULL_POINTER ((KvlcStatus)-8)
128 #define kvlcERR_FILE_TOO_LARGE ((KvlcStatus)-10)
129 #define kvlcERR_TYPE_MISMATCH ((KvlcStatus)-11)
130 #define kvlcERR_NO_FREE_HANDLES ((KvlcStatus)-12)
131 #define kvlcERR_NO_INPUT_SELECTED ((KvlcStatus)-13)
132 #define kvlcERR_CONVERTING ((KvlcStatus)-14)
133 #define kvlcERR_BUFFER_SIZE ((KvlcStatus)-15)
134 
135 #define kvlcERR_INVALID_LOG_EVENT ((KvlcStatus)-30)
136 #define kvlcERR_NO_TIME_REFERENCE ((KvlcStatus)-31)
137 #define kvlcERR_TIME_DECREASING ((KvlcStatus)-32)
138 #define kvlcERR_MIXED_ENDIANNESS ((KvlcStatus)-33)
139 #define kvlcERR_RESULT_TOO_BIG ((KvlcStatus)-34)
140 
141 
154 #define KVLC_FILE_FORMAT_KME24 1
155 #define KVLC_FILE_FORMAT_KME25 2
156 #define KVLC_FILE_FORMAT_VECTOR_ASC 3
157 #define KVLC_FILE_FORMAT_CSV 4
158 #define KVLC_FILE_FORMAT_PLAIN_ASC 5
159 #define KVLC_FILE_FORMAT_MEMO_LOG 6
160 #define KVLC_FILE_FORMAT_KME40 7
161 #define KVLC_FILE_FORMAT_VECTOR_BLF 8
162 #define KVLC_FILE_FORMAT_KME50 9
163 
164 #define KVLC_FILE_FORMAT_CSV_SIGNAL 100
165 #define KVLC_FILE_FORMAT_MDF 101
166 #define KVLC_FILE_FORMAT_MATLAB 102
167 #define KVLC_FILE_FORMAT_J1587 103
168 #define KVLC_FILE_FORMAT_J1587_ALT 104
169 #define KVLC_FILE_FORMAT_FAMOS 105
170 #define KVLC_FILE_FORMAT_MDF_SIGNAL 106
171 #define KVLC_FILE_FORMAT_MDF_4X 107
172 #define KVLC_FILE_FORMAT_MDF_4X_SIGNAL 108
173 
174 #define KVLC_FILE_FORMAT_XCP 200
175 #define KVLC_FILE_FORMAT_FAMOS_XCP 201
176 
177 #define KVLC_FILE_FORMAT_DEBUG 1000
178 
192 #define KVLC_PROPERTY_START_OF_MEASUREMENT 1
193 #define KVLC_PROPERTY_FIRST_TRIGGER 2
194 #define KVLC_PROPERTY_USE_OFFSET 3
195 #define KVLC_PROPERTY_OFFSET 4
196 #define KVLC_PROPERTY_CHANNEL_MASK 5
197 
198 #define KVLC_PROPERTY_HLP_J1939 6
199 #define KVLC_PROPERTY_CALENDAR_TIME_STAMPS 7
200 #define KVLC_PROPERTY_WRITE_HEADER 8
201 #define KVLC_PROPERTY_SEPARATOR_CHAR 9
202 #define KVLC_PROPERTY_DECIMAL_CHAR 10
203 
204 #define KVLC_PROPERTY_ID_IN_HEX 11
205 #define KVLC_PROPERTY_DATA_IN_HEX 12
206 #define KVLC_PROPERTY_NUMBER_OF_TIME_DECIMALS 13
207 #define KVLC_PROPERTY_NAME_MANGLING 14
208 #define KVLC_PROPERTY_FILL_BLANKS 15
209 
210 #define KVLC_PROPERTY_SHOW_UNITS 16
211 #define KVLC_PROPERTY_ISO8601_DECIMALS 17
212 #define KVLC_PROPERTY_MERGE_LINES 18
213 #define KVLC_PROPERTY_RESAMPLE_COLUMN 19
214 #define KVLC_PROPERTY_VERSION 20
215 
216 #define KVLC_PROPERTY_SHOW_COUNTER 21
217 #define KVLC_PROPERTY_CROP_PRETRIGGER 22
218 #define KVLC_PROPERTY_ENUM_VALUES 23
219 #define KVLC_PROPERTY_SIZE_LIMIT 24
220 #define KVLC_PROPERTY_TIME_LIMIT 25
221 
222 #define KVLC_PROPERTY_LIMIT_DATA_BYTES 26
223 #define KVLC_PROPERTY_CREATION_DATE 27
224 #define KVLC_PROPERTY_OVERWRITE 28
225 #define KVLC_PROPERTY_TIMEZONE 29
226 
227 #define KVLC_PROPERTY_FULLY_QUALIFIED_NAMES 30
228 
229 #define KVLC_PROPERTY_NUMBER_OF_DATA_DECIMALS 31
230 
231 #define KVLC_PROPERTY_SIGNAL_BASED 1001
232 #define KVLC_PROPERTY_SHOW_SIGNAL_SELECT 1002
233 #define KVLC_PROPERTY_ATTACHMENTS 1003
234 
235 
255 KvlcStatus WINAPI kvlcGetErrorText(KvlcStatus error, char *buffer, unsigned int buffer_size);
256 
257 
274 KvlcStatus WINAPI kvlcGetVersion(unsigned int *major, unsigned int *minor, unsigned int *build);
275 
295 KvlcStatus WINAPI kvlcCreateConverter(KvlcHandle *handle, const char *filename, int format);
296 
312 KvlcStatus WINAPI kvlcDeleteConverter(KvlcHandle handle);
313 
335 KvlcStatus WINAPI kvlcEventCount(KvlcHandle handle, unsigned int *count);
336 
353 KvlcStatus WINAPI kvlcEventCountEx(KvlcHandle handle, int64 *count);
354 
369 KvlcStatus WINAPI kvlcConvertEvent(KvlcHandle handle);
370 
371 
390 KvlcStatus WINAPI kvlcSetInputFile(KvlcHandle handle, const char *filename, int format);
391 
392 
413 KvlcStatus WINAPI kvlcNextInputFile(KvlcHandle handle, const char *filename);
414 
434 KvlcStatus WINAPI kvlcFeedSelectFormat(KvlcHandle handle, int format);
435 
456 KvlcStatus WINAPI kvlcFeedLogEvent(KvlcHandle handle, void *event);
457 
477 KvlcStatus WINAPI kvlcFeedNextFile(KvlcHandle handle);
478 
496 KvlcStatus WINAPI kvlcIsOutputFilenameNew(KvlcHandle handle, int *updated);
497 
498 
520 KvlcStatus WINAPI kvlcGetOutputFilename(KvlcHandle handle, char *filename, int len);
521 
547 KvlcStatus WINAPI kvlcGetWriterPropertyDefault(int format, unsigned int property, void *buf, unsigned int len);
548 
571 KvlcStatus WINAPI kvlcSetProperty(KvlcHandle handle, unsigned int property, void *buf, unsigned int len);
572 
573 
596 KvlcStatus WINAPI kvlcGetProperty(KvlcHandle handle, unsigned int property, void *buf, unsigned int len);
597 
598 
619 KvlcStatus WINAPI kvlcIsOverrunActive(KvlcHandle handle, int *overrun);
620 
636 KvlcStatus WINAPI kvlcResetOverrunActive(KvlcHandle handle);
637 
661 KvlcStatus WINAPI kvlcIsDataTruncated (KvlcHandle handle, int *truncated);
662 
678 KvlcStatus WINAPI kvlcResetDataTruncated (KvlcHandle handle);
679 
700 KvlcStatus WINAPI kvlcAttachFile(KvlcHandle handle, const char *filename);
701 
702 
718 KvlcStatus WINAPI kvlcGetFirstWriterFormat(int *format);
719 
720 
738 KvlcStatus WINAPI kvlcGetNextWriterFormat(int currentFormat, int *nextFormat);
739 
740 
756 KvlcStatus WINAPI kvlcGetFirstReaderFormat(int *format);
757 
758 
776 KvlcStatus WINAPI kvlcGetNextReaderFormat(int currentFormat, int *nextFormat);
777 
778 
797 KvlcStatus WINAPI kvlcGetReaderName(int format, char *str, unsigned int len);
798 
799 
818 KvlcStatus WINAPI kvlcGetReaderExtension(int format, char *str, unsigned int len);
819 
820 
839 KvlcStatus WINAPI kvlcGetReaderDescription(int format, char *str, unsigned int len);
840 
841 
867 KvlcStatus WINAPI kvlcGetReaderPropertyDefault(int format, unsigned int property, void *buf, unsigned int len);
868 
869 
888 KvlcStatus WINAPI kvlcGetWriterName(int format, char *str, unsigned int len);
889 
890 
909 KvlcStatus WINAPI kvlcGetWriterExtension(int format, char *str, unsigned int len);
910 
911 
930 KvlcStatus WINAPI kvlcGetWriterDescription(int format, char *str, unsigned int len);
931 
932 
950 KvlcStatus WINAPI kvlcIsPropertySupported(int format, unsigned int property, int *supported);
951 
974 KvlcStatus WINAPI kvlcAddDatabaseFile(KvlcHandle handle, const char *filename, unsigned int channelMask);
975 
997 KvlcStatus WINAPI kvlcAddDatabase(KvlcHandle handle, KvaDbHnd dbHandle, unsigned int channelMask);
998 
1016 KvlcStatus WINAPI kvlcIsDlcMismatch(KvlcHandle handle, int* mismatch);
1017 
1034 KvlcStatus WINAPI kvlcResetDlcMismatch(KvlcHandle handle);
1035 
1054 KvlcStatus WINAPI kvlcGetDlcMismatchList(KvlcHandle handle, unsigned int* MsgIds, unsigned int* MsgDlc, unsigned int* MsgOccurance, unsigned int* length);
1055 
1082 #ifdef __cplusplus
1083 };
1084 #endif
1085 
1086 #endif // KVLCLIB_H
KvlcStatus kvlcFeedNextFile(KvlcHandle handle)
KvlcStatus kvlcAttachFile(KvlcHandle handle, const char *filename)
KvlcStatus kvlcGetWriterExtension(int format, char *str, unsigned int len)
KvlcStatus kvlcIsDlcMismatch(KvlcHandle handle, int *mismatch)
Definitions for the Database API.
void * KvaDbHnd
Database handle.
Definition: kvaDbLib.h:255
KvlcStatus kvlcDeleteConverter(KvlcHandle handle)
KvlcStatus kvlcGetWriterPropertyDefault(int format, unsigned int property, void *buf, unsigned int len)
KvlcStatus kvlcGetWriterName(int format, char *str, unsigned int len)
KvlcStatus kvlcGetDlcMismatchList(KvlcHandle handle, unsigned int *MsgIds, unsigned int *MsgDlc, unsigned int *MsgOccurance, unsigned int *length)
KvlcStatus kvlcGetReaderExtension(int format, char *str, unsigned int len)
void * KvlcHandle
Definition: kvlclib.h:103
uint64_t uint64
Definition: kvlclib.h:107
KvlcStatus kvlcConvertEvent(KvlcHandle handle)
KvlcStatus kvlcAddDatabase(KvlcHandle handle, KvaDbHnd dbHandle, unsigned int channelMask)
KvlcStatus kvlcResetDataTruncated(KvlcHandle handle)
KvlcStatus kvlcGetFirstWriterFormat(int *format)
KvlcStatus kvlcEventCount(KvlcHandle handle, unsigned int *count)
KvlcStatus kvlcGetNextReaderFormat(int currentFormat, int *nextFormat)
int64_t time_int64
Definition: kvlclib.h:105
KvlcStatus kvlcIsDataTruncated(KvlcHandle handle, int *truncated)
KvlcStatus kvlcFeedSelectFormat(KvlcHandle handle, int format)
#define WINAPI
Definition: kvlclib.h:89
KvlcStatus kvlcGetProperty(KvlcHandle handle, unsigned int property, void *buf, unsigned int len)
KvlcStatus kvlcSetProperty(KvlcHandle handle, unsigned int property, void *buf, unsigned int len)
KvlcStatus kvlcResetDlcMismatch(KvlcHandle handle)
KvlcStatus kvlcCreateConverter(KvlcHandle *handle, const char *filename, int format)
KvlcStatus kvlcNextInputFile(KvlcHandle handle, const char *filename)
int KvlcStatus
Definition: kvlclib.h:102
KvlcStatus kvlcIsOutputFilenameNew(KvlcHandle handle, int *updated)
KvlcStatus kvlcEventCountEx(KvlcHandle handle, int64 *count)
KvlcStatus kvlcGetReaderName(int format, char *str, unsigned int len)
KvlcStatus kvlcGetReaderPropertyDefault(int format, unsigned int property, void *buf, unsigned int len)
KvlcStatus kvlcGetFirstReaderFormat(int *format)
KvlcStatus kvlcIsPropertySupported(int format, unsigned int property, int *supported)
KvlcStatus kvlcGetErrorText(KvlcStatus error, char *buffer, unsigned int buffer_size)
KvlcStatus kvlcGetNextWriterFormat(int currentFormat, int *nextFormat)
int64_t int64
Definition: kvlclib.h:106
KvlcStatus kvlcResetOverrunActive(KvlcHandle handle)
uint64_t time_uint64
Definition: kvlclib.h:104
KvlcStatus kvlcGetVersion(unsigned int *major, unsigned int *minor, unsigned int *build)
KvlcStatus kvlcFeedLogEvent(KvlcHandle handle, void *event)
KvlcStatus kvlcGetReaderDescription(int format, char *str, unsigned int len)
KvlcStatus kvlcIsOverrunActive(KvlcHandle handle, int *overrun)
KvlcStatus kvlcSetInputFile(KvlcHandle handle, const char *filename, int format)
KvlcStatus kvlcGetWriterDescription(int format, char *str, unsigned int len)
KvlcStatus kvlcAddDatabaseFile(KvlcHandle handle, const char *filename, unsigned int channelMask)
KvlcStatus kvlcGetOutputFilename(KvlcHandle handle, char *filename, int len)