#define BYTES_PER_LINE 16
void esp_log_buffer_hex_internal(const char* tag, const void* buffer, uint16_t buff_len)
{
if (buff_len == 0) {
return;
}
char temp_buffer[BYTES_PER_LINE + 3]; //for not-byte-accessible memory
char hex_buffer[3 * BYTES_PER_LINE + 1];
const char* ptr_line;
int bytes_cur_line;
do {
if (buff_len > BYTES_PER_LINE) {
bytes_cur_line = BYTES_PER_LINE;
}
else {
bytes_cur_line = buff_len;
}
ptr_line = (char *)buffer;
for (int i = 0; i < bytes_cur_line; i++) {
sprintf(hex_buffer + 3 * i, "%02x ", (unsigned char)ptr_line[i]);
}
printf( "%s:%s\r\n",tag, hex_buffer);
buffer =(char *)buffer+ bytes_cur_line;
buff_len -= bytes_cur_line;
} while (buff_len);
}
