1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
/**
******************************************************************************
* @file vl53l0x_platform_log.h
******************************************************************************
* @attention
*
* Copyright (c) 2017(-2021) STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
#ifndef _VL53L0X_PLATFORM_LOG_H_
#define _VL53L0X_PLATFORM_LOG_H_
#include <stdio.h>
#include <string.h>
/* LOG Functions */
#ifdef __cplusplus
extern "C" {
#endif
/**
* @file vl53l0x_platform_log.h
*
* @brief platform log function definition
*/
//#define VL53L0X_LOG_ENABLE 0
enum {
TRACE_LEVEL_NONE,
TRACE_LEVEL_ERRORS,
TRACE_LEVEL_WARNING,
TRACE_LEVEL_INFO,
TRACE_LEVEL_DEBUG,
TRACE_LEVEL_ALL,
TRACE_LEVEL_IGNORE
};
enum {
TRACE_FUNCTION_NONE = 0,
TRACE_FUNCTION_I2C = 1,
TRACE_FUNCTION_ALL = 0x7fffffff //all bits except sign
};
enum {
TRACE_MODULE_NONE = 0x0,
TRACE_MODULE_API = 0x1,
TRACE_MODULE_PLATFORM = 0x2,
TRACE_MODULE_ALL = 0x7fffffff //all bits except sign
};
#if defined(VL53L0X_LOG_ENABLE) && (TRACE_UART==1)
#include <stdarg.h>
extern int uart_printf(const char *msg, ...);
extern int uart_vprintf(const char *msg, va_list ap);
#define trace_printf uart_printf
#define trace_vprintf uart_vprintf
extern uint32_t _trace_level;
int32_t VL53L0X_trace_config(char *filename, uint32_t modules, uint32_t level, uint32_t functions);
void trace_print_module_function(uint32_t module, uint32_t level, uint32_t function, const char *format, ...);
//extern FILE * log_file;
#define LOG_GET_TIME() (int)HAL_GetTick()
#define _LOG_FUNCTION_START(module, fmt, ... ) \
trace_print_module_function(module, _trace_level, TRACE_FUNCTION_ALL, "%ld <START> %s "fmt"\n", LOG_GET_TIME(), __FUNCTION__, ##__VA_ARGS__);
#define _LOG_FUNCTION_END(module, status, ... )\
trace_print_module_function(module, _trace_level, TRACE_FUNCTION_ALL, "%d <END> %s %d\n", LOG_GET_TIME(), __FUNCTION__, (int)status, ##__VA_ARGS__)
#define _LOG_FUNCTION_END_FMT(module, status, fmt, ... )\
trace_print_module_function(module, _trace_level, TRACE_FUNCTION_ALL, "%d <END> %s %d "fmt"\n", LOG_GET_TIME(), __FUNCTION__, (int)status,##__VA_ARGS__)
#else /* VL53L0X_LOG_ENABLE no logging or no TRACE_UART */
#define VL53L0X_ErrLog(...) (void)0
#define _LOG_FUNCTION_START(module, fmt, ... ) (void)0
#define _LOG_FUNCTION_END(module, status, ... ) (void)0
#define _LOG_FUNCTION_END_FMT(module, status, fmt, ... ) (void)0
#define trace_vprintf(...) (void)0
#define VL53L0X_trace_config(...) (void)0
#endif /* else */
#define VL53L0_COPYSTRING(str, ...) strcpy(str, ##__VA_ARGS__)
#ifdef __cplusplus
}
#endif
#endif /* _VL53L0X_PLATFORM_LOG_H_ */
|