1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
#!/usr/bin/env python3
#
# Generate an asciidoc table of the six-bit encoding used in AIVDM packets.
#
# This file is Copyright 2010 by the GPSD project
# SPDX-License-Identifier: BSD-2-clause
#
# 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()
# vim: set expandtab shiftwidth=4
|