[component][ulog] Update ulog hexdump format.

This commit is contained in:
armink 2018-11-01 19:39:08 +08:00
parent c336099a93
commit 9ceecb4d95
1 changed files with 29 additions and 3 deletions

View File

@ -644,12 +644,27 @@ void ulog_hexdump(const char *name, rt_size_t width, rt_uint8_t *buf, rt_size_t
#define __is_print(ch) ((unsigned int)((ch) - ' ') < 127u - ' ') #define __is_print(ch) ((unsigned int)((ch) - ' ') < 127u - ' ')
rt_size_t i, j; rt_size_t i, j;
rt_size_t log_len = 0; rt_size_t log_len = 0, name_len = rt_strlen(name);
char *log_buf = NULL, dump_string[8]; char *log_buf = NULL, dump_string[8];
int fmt_result; int fmt_result;
RT_ASSERT(ulog.init_ok); RT_ASSERT(ulog.init_ok);
#ifdef ULOG_USING_FILTER
/* level filter */
#ifndef ULOG_USING_SYSLOG
if (LOG_LVL_DBG > ulog.filter.level)
{
return;
}
#else
if ((LOG_MASK(LOG_DEBUG) & ulog.filter.level) == 0)
{
return;
}
#endif /* ULOG_USING_SYSLOG */
#endif /* ULOG_USING_FILTER */
/* get log buffer */ /* get log buffer */
log_buf = get_log_buf(); log_buf = get_log_buf();
@ -659,11 +674,22 @@ void ulog_hexdump(const char *name, rt_size_t width, rt_uint8_t *buf, rt_size_t
for (i = 0, log_len = 0; i < size; i += width) for (i = 0, log_len = 0; i < size; i += width)
{ {
/* package header */ /* package header */
fmt_result = rt_snprintf(log_buf, ULOG_LINE_BUF_SIZE, "D/HEX %s: %04X-%04X: ", name, i, i + width); if (i == 0)
{
log_len += ulog_strcpy(log_len, log_buf + log_len, "D/HEX ");
log_len += ulog_strcpy(log_len, log_buf + log_len, name);
log_len += ulog_strcpy(log_len, log_buf + log_len, ": ");
}
else
{
log_len = 6 + name_len + 2;
rt_memset(log_buf, ' ', log_len);
}
fmt_result = rt_snprintf(log_buf + log_len, ULOG_LINE_BUF_SIZE, "%04X-%04X: ", i, i + width);
/* calculate log length */ /* calculate log length */
if ((fmt_result > -1) && (fmt_result <= ULOG_LINE_BUF_SIZE)) if ((fmt_result > -1) && (fmt_result <= ULOG_LINE_BUF_SIZE))
{ {
log_len = fmt_result; log_len += fmt_result;
} }
else else
{ {