File: aivdmtable

package info (click to toggle)
gpsd 3.27-1.1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 44,056 kB
  • sloc: ansic: 74,438; python: 16,521; sh: 890; cpp: 848; php: 225; makefile: 197; perl: 111; javascript: 26; xml: 11
file content (43 lines) | stat: -rwxr-xr-x 1,641 bytes parent folder | download | duplicates (2)
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