Maybe its a capture file from a network dump. Maybe it’s from an Arduino. Maybe it is a random file off the Internet. But there will be a time when you have a file full of seemingly meaningless numbers and you need to impose order. We usually resort to a printout and highlighter, but BitBench seems like a better option. That link will take you to the code, but if you want to play with a live instance, the author has one loaded with example data.
If you look at the live example, there’s an area up top with a lot of raw hex data. The area below that shows a format string. By default that’s:
hh ID:hh b CH3d TEMP_C:12d HUM:d CRC:8h | 8h 16h 16h
From the page, here’s the description of the format:
Use “h” for hex (default 4 bits), “b” for binary (default 1 bit), “d” for decimal (default 8 bits).
Use optional bit length prefix numbers. Use “~” to invert bits, use “^” to reverse LSB/MSB. Other characters are output as-is.
So in the example string,
hh is an 8-bit hex number. ID: is just a label, followed by another 8-bit number. Then the bottom displays the data formatted as you wish and gives you a way to pad the fields with extra bits and see the results. You can also invert or shift all the bits.
This is actually handy and the author mentions it is the result of one day of prototyping. It would be nice if you could write simple math expressions, handle BCD, and maybe even have multiple formats based on some conditions. But maybe that’s version two.