AFBR-S50 API Reference Manual  v1.6.5
AFBR-S50 Time-of-Flight Sensor SDK for Embedded Software
argus_debug_cli.h
Go to the documentation of this file.
1 /*************************************************************************/
37 #ifndef ARGUS_DEBUG_CLI_H
38 #define ARGUS_DEBUG_CLI_H
39 
40 /*!***************************************************************************
41  * @defgroup argus_debug_cli Debugging CLI
42  * @ingroup argus
43  *
44  * @brief A CLI module to print debugging information on frame basis
45  *
46  * @details Just replace your data handling function by this print function
47  * to stream debugging measurement data via UART to a terminal.
48  *
49  * @addtogroup argus_debug_cli
50  * @{
51  *****************************************************************************/
52 
53 #include "argus.h"
54 
55 /*!***************************************************************************
56  * @brief Version number of the debug information via CLI.
57  *
58  * @details Changes:
59  * * v1.0:
60  * - Initial release.
61  *
62  *****************************************************************************/
63 #define ARGUS_DEBUG_CLI_VERSION "v1.0"
64 
65 /*!***************************************************************************
66  * @brief The column separator for the debug print functionality.
67  * Examples: ";", ",", " ", "\t"
68  *****************************************************************************/
69 #define ARGUS_DEBUG_COLUMN_SEPARATOR ";"
70 
71 /*!***************************************************************************
72  * @brief Prints debugging measurement header via UART.
73  *
74  * @note It is suggested to increase the UART baud rate to a sufficient large
75  * value (e.g. 2 Mbps) to avoid slow down of measurement rate due to a
76  * UART bottleneck.
77  *
78  * @details Prints an formatted header for the extended measurement data via UART.
79  * The measurement data is printed via \ref Print_DebugResults function.
80  * Calling this function before printing any error creates the
81  * according (and optional) header.
82  *
83  * The data stream consists of four parts:
84  * 1. Frame & binned data
85  * 2. Single pixel data (incl. sat pixel count)
86  * 3. Integration parameters
87  * 4. Auxiliary data
88  *
89  * @sa Print_DebugResults
90  *****************************************************************************/
91 void Print_DebugHeader(void);
92 
93 /*!***************************************************************************
94  * @brief Prints debugging measurement results via UART.
95  *
96  * @note It is suggested to increase the UART baud rate to a sufficient large
97  * value (e.g. 2 Mbps) to avoid slow down of measurement rate due to a
98  * UART bottleneck.
99  *
100  * @details Prints a formatted string of measurement and debug data in table
101  * format via UART. Each call to this function will send a line of
102  * separated data via UART. The default separator is `;` but can be
103  * changed via the \ref ARGUS_DEBUG_COLUMN_SEPARATOR definition.
104  *
105  * Note that this uses the debug data structure! So it requires the
106  * `res->Debug` pointer to be set which is done by using the
107  * #Argus_EvaluateDataDebug method instead of the #Argus_EvaluateData
108  * method!
109  *
110  * The data stream consists of four parts:
111  * 1. Frame & binned data
112  * 2. Single pixel data (incl. sat pixel count)
113  * 3. Integration data
114  * 4. Auxiliary data
115  *
116  * In detail:
117  * 1. Frame number; timestamp; binned range in mm; binned amplitude in LSB; frame status;
118  * 2. Range pixel(0/0); Amplitude pixel(0/0); Status pixel(0/0); ...
119  * ...Range pixel(7/3); Amplitude pixel(7/3); Status pixel(7/3); saturated pixel count of frame;
120  * 3. Analog integration in LSB; Digital integration; LaserCurrent in mA; pixel gain in LSB;
121  * 4. Auxiliary task: APD current; Shot noise amplitude, ASIC temperature; VDD, VDDL, Substrate voltage
122  *
123  * Use the \ref Print_DebugHeader function to output an proper
124  * header for the debug data table.
125  *
126  * @sa Print_DebugHeader
127  *
128  * @param frame_cnt An integer to print the frame number; this should be
129  * incremented by one each time the function is called.
130  * @param res The pointer to the measurement results structure to be printed.
131  * Note that the res->Debug pointer must be set for this to work
132  * properly!
133  *****************************************************************************/
134 void Print_DebugResults(uint32_t frame_cnt, argus_results_t const * res);
135 
137 #endif /* ARGUS_DEBUG_CLI_H */
argus.h
This file is part of the AFBR-S50 API.
argus_results_t
The measurement results data structure.
Definition: argus_res.h:215
Print_DebugHeader
void Print_DebugHeader(void)
Prints debugging measurement header via UART.
Definition: argus_debug_cli.c:59
Print_DebugResults
void Print_DebugResults(uint32_t frame_cnt, argus_results_t const *res)
Prints debugging measurement results via UART.
Definition: argus_debug_cli.c:120