kvDiag.h
Go to the documentation of this file.
1 /*
2  * Copyright 2002-2019 by KVASER AB, SWEDEN
3  *
4  * WWW: http://www.kvaser.com
5  *
6  * This software is furnished under a license and may be used and copied
7  * only in accordance with the terms of such license.
8  *
9  */
10 
19 #ifndef _KVDIAG_H_
20 #define _KVDIAG_H_
21 
22 #include <canlib.h>
23 #include <stdint.h>
24 
36 #ifdef __cplusplus
37 extern "C" {
38 #endif
39 
46 #define DIAG_ANALYZER_TYPE_DEFAULT 0
55 #define KDI_DEFAULT_MAX_SAMPLE_SIZE 8196
56 
64 typedef void* DiagDataPtr;
67 typedef struct {
70  double bitrate;
71  uint32_t quality;
72 } bitrate_t;
73 
75 typedef struct {
76  bitrate_t btr1;
77  bitrate_t btr2;
78 } bitrates_t;
79 
81 typedef struct {
82  struct {
83  uint32_t version;
84  uint32_t seqno;
85  uint32_t type;
86  } header;
87  struct {
88  uint32_t id;
89  uint64_t time;
90  uint8_t data[64];
91  uint32_t flag;
92  uint8_t dlc;
93  uint8_t padding[3];
94  } msg;
95  struct {
96  uint64_t startTime;
97  uint32_t sampleFreq;
98  uint8_t startValue;
99  uint8_t padding;
100  uint16_t edgeCount;
101  uint32_t edgeTimes[8192];
102  } sample;
103 } kvDiagSample;
105 
121 canStatus CANLIBAPI kvDiagAttach(const CanHandle hnd, uint32_t type);
122 
136 canStatus CANLIBAPI kvDiagDetach(const CanHandle hnd);
137 
152 canStatus CANLIBAPI kvDiagAlloc(DiagDataPtr *diagData);
153 
167 canStatus CANLIBAPI kvDiagDealloc(DiagDataPtr *diagData);
168 
217 canStatus CANLIBAPI kvDiagConfigure(const CanHandle hnd,
218  const char *configBuffer,
219  DiagDataPtr diagData);
220 
234 canStatus CANLIBAPI kvDiagStart(const CanHandle hnd);
235 
249 canStatus CANLIBAPI kvDiagStop(const CanHandle hnd);
250 
251 
254 canStatus CANLIBAPI kvDiagReadSample (DiagDataPtr diagData,
255  kvDiagSample *sample);
257 
276 canStatus CANLIBAPI kvDiagReadSampleRaw (DiagDataPtr diagData, uint8_t *buffer,
277  uint32_t bufferLength,
278  int *sampleLength);
281 canStatus CANLIBAPI kvDiagCalculateBitrate(DiagDataPtr diagData, bitrates_t *bitrate);
283 
286 canStatus CANLIBAPI kvDiagResetBitrateCalculation(DiagDataPtr diagData);
288 
291 canStatus CANLIBAPI kvDiagCalculateClockOffset(DiagDataPtr diagData,
292  uint32_t id,
293  double *fMin,
294  double *fMax,
295  double *fMean,
296  double *fStd,
297  uint32_t *n);
299 
302 canStatus CANLIBAPI kvDiagResetClockToleranceCalculation(void *diagData);
304 
320  uint8_t *analyzerCount);
321 
338 canStatus CANLIBAPI kvDiagGetAnalyzerInfo (const CanHandle hnd,
339  uint8_t analyzerNo,
340  uint32_t *type,
341  uint32_t *version);
342 
343 #ifdef __cplusplus
344 }
345 #endif
346 
347 #endif // _KVDIAG_H_
canStatus kvDiagAttach(const CanHandle hnd, uint32_t type)
canStatus kvDiagAlloc(DiagDataPtr *diagData)
canStatus kvDiagGetNumberOfAnalyzers(const CanHandle hnd, uint8_t *analyzerCount)
canStatus kvDiagGetAnalyzerInfo(const CanHandle hnd, uint8_t analyzerNo, uint32_t *type, uint32_t *version)
canStatus kvDiagReadSampleRaw(DiagDataPtr diagData, uint8_t *buffer, uint32_t bufferLength, int *sampleLength)
Definitions for the CANlib API.
canStatus kvDiagStop(const CanHandle hnd)
canStatus
Definition: canstat.h:84
canStatus kvDiagDetach(const CanHandle hnd)
canStatus kvDiagStart(const CanHandle hnd)
canStatus kvDiagDealloc(DiagDataPtr *diagData)
void * DiagDataPtr
Definition: kvDiag.h:64
canHandle CanHandle
Definition: canlib.h:161
canStatus kvDiagConfigure(const CanHandle hnd, const char *configBuffer, DiagDataPtr diagData)