TOFs library corrected

Dependencies:   X_NUCLEO_COMMON ST_INTERFACES

Dependents:   EvitObst mbed-perceptron-2

Committer:
evgeniik
Date:
Fri Jul 17 09:44:46 2020 +0000
Revision:
8:ab04ed7aa3ec
Parent:
6:8ac15bf6d635
TOFs library correced for A.I.Mergence

Who changed what in which revision?

UserRevisionLine numberNew contents of line
johnAlexander 6:8ac15bf6d635 1 /*******************************************************************************
johnAlexander 6:8ac15bf6d635 2 Copyright © 2015, STMicroelectronics International N.V.
johnAlexander 6:8ac15bf6d635 3 All rights reserved.
johnAlexander 6:8ac15bf6d635 4
johnAlexander 6:8ac15bf6d635 5 Redistribution and use in source and binary forms, with or without
johnAlexander 6:8ac15bf6d635 6 modification, are permitted provided that the following conditions are met:
johnAlexander 6:8ac15bf6d635 7 * Redistributions of source code must retain the above copyright
johnAlexander 6:8ac15bf6d635 8 notice, this list of conditions and the following disclaimer.
johnAlexander 6:8ac15bf6d635 9 * Redistributions in binary form must reproduce the above copyright
johnAlexander 6:8ac15bf6d635 10 notice, this list of conditions and the following disclaimer in the
johnAlexander 6:8ac15bf6d635 11 documentation and/or other materials provided with the distribution.
johnAlexander 6:8ac15bf6d635 12 * Neither the name of STMicroelectronics nor the
johnAlexander 6:8ac15bf6d635 13 names of its contributors may be used to endorse or promote products
johnAlexander 6:8ac15bf6d635 14 derived from this software without specific prior written permission.
johnAlexander 6:8ac15bf6d635 15
johnAlexander 6:8ac15bf6d635 16 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
johnAlexander 6:8ac15bf6d635 17 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
johnAlexander 6:8ac15bf6d635 18 WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND
johnAlexander 6:8ac15bf6d635 19 NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
johnAlexander 6:8ac15bf6d635 20 IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. BE LIABLE FOR ANY
johnAlexander 6:8ac15bf6d635 21 DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
johnAlexander 6:8ac15bf6d635 22 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
johnAlexander 6:8ac15bf6d635 23 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
johnAlexander 6:8ac15bf6d635 24 ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
johnAlexander 6:8ac15bf6d635 25 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
johnAlexander 6:8ac15bf6d635 26 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
johnAlexander 6:8ac15bf6d635 27 ********************************************************************************/
johnAlexander 6:8ac15bf6d635 28
johnAlexander 6:8ac15bf6d635 29
johnAlexander 6:8ac15bf6d635 30 #ifndef _VL53L0X_PLATFORM_LOG_H_
johnAlexander 6:8ac15bf6d635 31 #define _VL53L0X_PLATFORM_LOG_H_
johnAlexander 6:8ac15bf6d635 32
johnAlexander 6:8ac15bf6d635 33 #include <stdio.h>
johnAlexander 6:8ac15bf6d635 34 #include <string.h>
johnAlexander 6:8ac15bf6d635 35 /* LOG Functions */
johnAlexander 6:8ac15bf6d635 36
johnAlexander 6:8ac15bf6d635 37 #ifdef __cplusplus
johnAlexander 6:8ac15bf6d635 38 extern "C" {
johnAlexander 6:8ac15bf6d635 39 #endif
johnAlexander 6:8ac15bf6d635 40
johnAlexander 6:8ac15bf6d635 41 /**
johnAlexander 6:8ac15bf6d635 42 * @file vl53l0_platform_log.h
johnAlexander 6:8ac15bf6d635 43 *
johnAlexander 6:8ac15bf6d635 44 * @brief platform log function definition
johnAlexander 6:8ac15bf6d635 45 */
johnAlexander 6:8ac15bf6d635 46
johnAlexander 6:8ac15bf6d635 47 //#define VL53L0X_LOG_ENABLE 0
johnAlexander 6:8ac15bf6d635 48
johnAlexander 6:8ac15bf6d635 49 enum {
johnAlexander 6:8ac15bf6d635 50 TRACE_LEVEL_NONE,
johnAlexander 6:8ac15bf6d635 51 TRACE_LEVEL_ERRORS,
johnAlexander 6:8ac15bf6d635 52 TRACE_LEVEL_WARNING,
johnAlexander 6:8ac15bf6d635 53 TRACE_LEVEL_INFO,
johnAlexander 6:8ac15bf6d635 54 TRACE_LEVEL_DEBUG,
johnAlexander 6:8ac15bf6d635 55 TRACE_LEVEL_ALL,
johnAlexander 6:8ac15bf6d635 56 TRACE_LEVEL_IGNORE
johnAlexander 6:8ac15bf6d635 57 };
johnAlexander 6:8ac15bf6d635 58
johnAlexander 6:8ac15bf6d635 59 enum {
johnAlexander 6:8ac15bf6d635 60 TRACE_FUNCTION_NONE = 0,
johnAlexander 6:8ac15bf6d635 61 TRACE_FUNCTION_I2C = 1,
johnAlexander 6:8ac15bf6d635 62 TRACE_FUNCTION_ALL = 0x7fffffff //all bits except sign
johnAlexander 6:8ac15bf6d635 63 };
johnAlexander 6:8ac15bf6d635 64
johnAlexander 6:8ac15bf6d635 65 enum {
johnAlexander 6:8ac15bf6d635 66 TRACE_MODULE_NONE = 0x0,
johnAlexander 6:8ac15bf6d635 67 TRACE_MODULE_API = 0x1,
johnAlexander 6:8ac15bf6d635 68 TRACE_MODULE_PLATFORM = 0x2,
johnAlexander 6:8ac15bf6d635 69 TRACE_MODULE_ALL = 0x7fffffff //all bits except sign
johnAlexander 6:8ac15bf6d635 70 };
johnAlexander 6:8ac15bf6d635 71
johnAlexander 6:8ac15bf6d635 72
johnAlexander 6:8ac15bf6d635 73 #ifdef VL53L0X_LOG_ENABLE
johnAlexander 6:8ac15bf6d635 74
johnAlexander 6:8ac15bf6d635 75 #include <sys/time.h>
johnAlexander 6:8ac15bf6d635 76
johnAlexander 6:8ac15bf6d635 77 extern uint32_t _trace_level;
johnAlexander 6:8ac15bf6d635 78
johnAlexander 6:8ac15bf6d635 79
johnAlexander 6:8ac15bf6d635 80
johnAlexander 6:8ac15bf6d635 81 int32_t VL53L0X_trace_config(char *filename, uint32_t modules, uint32_t level, uint32_t functions);
johnAlexander 6:8ac15bf6d635 82
johnAlexander 6:8ac15bf6d635 83 void trace_print_module_function(uint32_t module, uint32_t level, uint32_t function, const char *format, ...);
johnAlexander 6:8ac15bf6d635 84
johnAlexander 6:8ac15bf6d635 85
johnAlexander 6:8ac15bf6d635 86 //extern FILE * log_file;
johnAlexander 6:8ac15bf6d635 87
johnAlexander 6:8ac15bf6d635 88 #define LOG_GET_TIME() (int)clock()
johnAlexander 6:8ac15bf6d635 89
johnAlexander 6:8ac15bf6d635 90 #define _LOG_FUNCTION_START(module, fmt, ... ) \
johnAlexander 6:8ac15bf6d635 91 trace_print_module_function(module, _trace_level, TRACE_FUNCTION_ALL, "%ld <START> %s "fmt"\n", LOG_GET_TIME(), __FUNCTION__, ##__VA_ARGS__);
johnAlexander 6:8ac15bf6d635 92
johnAlexander 6:8ac15bf6d635 93 #define _LOG_FUNCTION_END(module, status, ... )\
johnAlexander 6:8ac15bf6d635 94 trace_print_module_function(module, _trace_level, TRACE_FUNCTION_ALL, "%ld <END> %s %d\n", LOG_GET_TIME(), __FUNCTION__, (int)status, ##__VA_ARGS__)
johnAlexander 6:8ac15bf6d635 95
johnAlexander 6:8ac15bf6d635 96 #define _LOG_FUNCTION_END_FMT(module, status, fmt, ... )\
johnAlexander 6:8ac15bf6d635 97 trace_print_module_function(module, _trace_level, TRACE_FUNCTION_ALL, "%ld <END> %s %d "fmt"\n", LOG_GET_TIME(), __FUNCTION__, (int)status,##__VA_ARGS__)
johnAlexander 6:8ac15bf6d635 98
johnAlexander 6:8ac15bf6d635 99 // __func__ is gcc only
johnAlexander 6:8ac15bf6d635 100 #define VL53L0X_ErrLog( fmt, ...) fprintf(stderr, "VL53L0X_ErrLog %s" fmt "\n", __func__, ##__VA_ARGS__)
johnAlexander 6:8ac15bf6d635 101
johnAlexander 6:8ac15bf6d635 102 #else /* VL53L0X_LOG_ENABLE no logging */
johnAlexander 6:8ac15bf6d635 103 #define VL53L0X_ErrLog(...) (void)0
johnAlexander 6:8ac15bf6d635 104 #define _LOG_FUNCTION_START(module, fmt, ... ) (void)0
johnAlexander 6:8ac15bf6d635 105 #define _LOG_FUNCTION_END(module, status, ... ) (void)0
johnAlexander 6:8ac15bf6d635 106 #define _LOG_FUNCTION_END_FMT(module, status, fmt, ... ) (void)0
johnAlexander 6:8ac15bf6d635 107 #endif /* else */
johnAlexander 6:8ac15bf6d635 108
johnAlexander 6:8ac15bf6d635 109 #define VL53L0X_COPYSTRING(str, ...) strcpy(str, ##__VA_ARGS__)
johnAlexander 6:8ac15bf6d635 110
johnAlexander 6:8ac15bf6d635 111 #ifdef __cplusplus
johnAlexander 6:8ac15bf6d635 112 }
johnAlexander 6:8ac15bf6d635 113 #endif
johnAlexander 6:8ac15bf6d635 114
johnAlexander 6:8ac15bf6d635 115 #endif /* _VL53L0X_PLATFORM_LOG_H_ */
johnAlexander 6:8ac15bf6d635 116
johnAlexander 6:8ac15bf6d635 117
johnAlexander 6:8ac15bf6d635 118
johnAlexander 6:8ac15bf6d635 119