12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- #!/usr/bin/env python
- #
- # Generate an asciidoc table of the six-bit encoding used in AIVDM packets.
- #
- # This file is Copyright (c) 2010-2019 by the GPSD project
- # BSD terms apply: see the file COPYING in the distribution root for details.
- #
- # This code runs compatibly under Python 2 and 3.x for x >= 2.
- # Preserve this property!
- from __future__ import absolute_import, print_function, division
- sixbits = (
- "000000", "000001", "000010", "000011", "000100",
- "000101", "000110", "000111", "001000", "001001",
- "001010", "001011", "001100", "001101", "001110",
- "001111", "010000", "010001", "010010", "010011",
- "010100", "010101", "010110", "010111", "011000",
- "011001", "011010", "011011", "011100", "011101",
- "011110", "011111", "100000", "100001", "100010",
- "100011", "100100", "100101", "100110", "100111",
- "101000", "101001", "101010", "101011", "101100",
- "101101", "101110", "101111", "110000", "110001",
- "110010", "110011", "110100", "110101", "110110",
- "110111", "111000", "111001", "111010", "111011",
- "111100", "111101", "111110", "111111",
- )
- def asciiarmor():
- print("`--------`-------`---------`-------")
- print(" Char ASCII Decimal Bits")
- for ch in list(range(ord('0'), ord('W')+1)) + list(range(ord('`'),
- ord('w')+1)):
- n = ch - 48
- if n >= 40:
- n -= 8
- print('"%s" %3d %3d %s' % (chr(ch), ch, n, sixbits[n]))
- print("---------------------------------------")
- if __name__ == "__main__":
- asciiarmor()
|