# A pretty bit viewer ## Installation ``` cargo install bitsutils ``` ## Usage ### Display bits of a single number ``` bits 1234 # in hex bits 0x1234 bits 1234h # in binary bits 0b1010 bits 1010b # in octal bits 0o1234 bits 1234o ``` Example output: ``` 1234 = 0x4d2 = 0b10011010010 bit v desc --------------- 0 0 1 1 2 0 3 0 4 1 5 0 6 1 7 1 8 0 9 0 10 1 11 0 12 0 13 0 14 0 15 0 ``` ### Display bits of multiple numbers, show difference ``` bits 0x0f 0x1f ``` Example output: ``` 15 = 0xf = 0b1111 bit v desc --------------- 0 1 1 1 2 1 3 1 4 0 5 0 6 0 7 0 31 = 0x1f = 0b11111 bit v desc --------------- 0 1 1 1 2 1 3 1 4 1 >> 5 0 6 0 7 0 ``` ### Add a bit map Specify a bit map with `--bitmap` or `-m` option or in `BITMAP` environment variable (YAML or JSON file). Example bit map for EtherCAT control PDO: ```yaml bits: 0: switch on 1: voltage 2: quick stop 3: operation 4: new set point 7: fault reset 8: halt ``` Now the known bits are displayed with their description: ``` bits 0x0f 0x1f ``` Output: ``` 15 = 0xf = 0b1111 bit v desc ------------------------ 0 1 switch on 1 1 voltage 2 1 quick stop 3 1 operation 4 0 new set point 5 0 6 0 7 0 fault reset 31 = 0x1f = 0b11111 bit v desc --------------------------- 0 1 switch on 1 1 voltage 2 1 quick stop 3 1 operation 4 1 >> new set point 5 0 6 0 7 0 fault reset ```