feat(log): Refactoring buffer log APIs (2)

This commit is contained in:
Konstantin Kondrashov
2024-04-17 10:24:29 +03:00
parent 0f4fc2bf55
commit af4df10b65
4 changed files with 189 additions and 149 deletions

View File

@@ -16,16 +16,19 @@ extern "C" {
* This function converts the given unsigned integer value to a string representation in the specified radix.
* The resulting string is stored in the provided character buffer `buf`.
*
* @param val The unsigned integer value to be converted.
* @param buf Pointer to the character buffer where the resulting string will be stored.
* The buffer must have enough space to accommodate the entire converted string,
* including the null-terminator.
* @param radix The base of the numeral system to be used for the conversion.
* It determines the number of unique digits in the numeral system
* (e.g., 2 for binary, 10 for decimal, 16 for hexadecimal).
* @param digits Pointer to a character array representing the digits of the numeral system.
* The array must contain characters in the order of increasing values,
* corresponding to the digits of the radix. For example, "0123456789ABCDEF" for hexadecimal.
* @param[in] val The unsigned integer value to be converted.
* @param[in] radix The base of the numeral system to be used for the conversion.
* It determines the number of unique digits in the numeral system
* (e.g., 2 for binary, 10 for decimal, 16 for hexadecimal).
* @param[in] pad The optional padding width (0 - unused) for the resulting string. It adds zero-padding.
* (val=123, pad=6 -> result=000123).
* @param[in] digits Pointer to a character array representing the digits of the
* numeral system. The array must contain characters in the order of increasing
* values, corresponding to the digits of the radix. For example, "0123456789ABCDEF"
* or hexadecimal.
* @param[out] buf Pointer to the character buffer where the resulting string will
* be stored. The buffer must have enough space to accommodate the entire converted
* string, including the null-terminator.
*
* @return The length of the resulting string (excluding the null-terminator).
*
@@ -33,14 +36,13 @@ extern "C" {
* The caller is responsible for ensuring the buffer's size is large enough to prevent buffer overflow.
* @note The provided `digits` array must have enough elements to cover the entire radix used for conversion. Otherwise, undefined behavior may occur.
*/
int esp_log_util_cvt(unsigned long long val, char *buf, long radix, const char *digits);
int esp_log_util_cvt(unsigned long long val, long radix, int pad, const char *digits, char *buf);
/**
* @brief Convert an unsigned integer to a hexadecimal string with optional padding.
*
* This function converts an unsigned integer value to a hexadecimal string representation.
* This function calls esp_log_util_cvt(val, buf, 16, pad, "0123456789abcdef") inside.
* This function calls esp_log_util_cvt(val, 16, pad, "0123456789abcdef", buf) inside.
*
* @param val The unsigned integer value to be converted.
* @param pad The optional padding width for the resulting string.
@@ -53,7 +55,7 @@ int esp_log_util_cvt_hex(unsigned long long val, int pad, char *buf);
* @brief Convert an unsigned integer to a decimal string with optional padding.
*
* This function converts an unsigned integer value to a decimal string representation.
* This function calls esp_log_util_cvt(val, buf, 10, pad, "0123456789") inside.
* This function calls esp_log_util_cvt(val, 10, pad, "0123456789", buf) inside.
*
* @param val The unsigned integer value to be converted.
* @param pad The optional padding width for the resulting string.