diff options
Diffstat (limited to 'platformio/relayctl/src/logging.cpp')
-rw-r--r-- | platformio/relayctl/src/logging.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/platformio/relayctl/src/logging.cpp b/platformio/relayctl/src/logging.cpp new file mode 100644 index 0000000..a929d81 --- /dev/null +++ b/platformio/relayctl/src/logging.cpp @@ -0,0 +1,37 @@ +#include <stdio.h> +#include "logging.h" + +#ifdef DEBUG +namespace homekit { + +void hexdump(const void* data, size_t size) { + char ascii[17]; + size_t i, j; + ascii[16] = '\0'; + for (i = 0; i < size; ++i) { + printf("%02X ", ((unsigned char*)data)[i]); + if (((unsigned char*)data)[i] >= ' ' && ((unsigned char*)data)[i] <= '~') { + ascii[i % 16] = ((unsigned char*)data)[i]; + } else { + ascii[i % 16] = '.'; + } + if ((i+1) % 8 == 0 || i+1 == size) { + printf(" "); + if ((i+1) % 16 == 0) { + printf("| %s \n", ascii); + } else if (i+1 == size) { + ascii[(i+1) % 16] = '\0'; + if ((i+1) % 16 <= 8) { + printf(" "); + } + for (j = (i+1) % 16; j < 16; ++j) { + printf(" "); + } + printf("| %s \n", ascii); + } + } + } +} + +} +#endif
\ No newline at end of file |