| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 | # Display Modes (p89)modes = {  "rotate":             "a",  "hold":               "b",  "flash":              "c",  "roll_up":            "e",  "roll_down":          "f",  "roll_left":          "g",  "roll_right":         "h",  "wipe_up":            "i",  "wipe_down":          "j",  "wipe_left":          "k",  "wipe_right":         "l",  "scroll":             "m",  "automode":           "o",  "roll_in":            "p",  "roll_out":           "q",  "wipe_in":            "r",  "wipe_out":           "s",  "compressed_rotate":  "t",  # only available on certain sign models  "explode":            "u",  # alpha 3.0 protocol  "clock":              "v",  # alpha 3.0 protocol  # Special Modes  "twinkle":            "n0",  "sparkle":            "n1",  "snow":               "n2",  "interlock":          "n3",  "switch":             "n4",  "slide":              "n5",  # only Betabrite 1036 (same as CYCLE_COLORS?)  "spray":              "n6",  "starburst":          "n7",  "welcome":            "n8",  "slot_machine":       "n9",  "news_flash":         "nA",  # only Betabrite 1036  "trumpet_animation":  "nb",  # only betabrite 1036  "cycle_colors":       "nC",  # only AlphaEclipse 3600  # Special Graphics (these display before the message)  "thank_you":          "nS",  "no_smoking":         "nU",  "dont_drive_drive":   "nV",  "running_animal":     "nW",  "fish_animation":     "nW",  "fireworks":          "nX",  "turbo_car":          "nY",  "balloon_animation":  "nY",  "cherry_bomb":        "nZ",}# Display Positionspositions = {  "middle_line":        "\x20",  "top_line":           "\x22",  "bottom_line":        "\x26",  "fill":               "\x30",  "left":               "\x31",  "right":              "\x32",}# Character Setscharsets = {  "five_high_std":      "1",  "five_stroke":        "2",  "seven_high_std":     "3",  "seven_stroke":       "4",  "seven_high_fancy":   "5",  "ten_high_std":       "6",  "seven_shadow":       "7",  "full_height_fancy":  "8",  "full_height_std":    "9",  "seven_shadow_fancy": ":",  "five_wide":          ";",  "seven_wide":         "<",  "seven_fancy_wide":   "=",  "wide_stroke_five":   ">",  # The following four only work on Alpha 2.0 and Alpha 3.0 protocols  "five_high_cust":     "W",  "seven_high_cust":    "X",  "ten_high_cust":      "Y",  "fifteen_high_cust":  "Z",}# Extended charactersextchars = {  "up_arrow":           "\x64",  "down_arrow":         "\x65",  "left_arrow":         "\x66",  "right_arrow":        "\x67",  "pacman":             "\x68",  "sail_boat":          "\x69",  "ball":               "\x6A",  "telephone":          "\x6B",  "heart":              "\x6C",  "car":                "\x6D",  "handicap":           "\x6E",  "rhino":              "\x6F",  "mug":                "\x70",  "satellite_dish":     "\x71",  "copyright_symbol":   "\x72",  "male_symbol":        "\x73",  "female_symbol":      "\x74",  "bottle":             "\x75",  "diskette":           "\x76",  "printer":            "\x77",  "musical_note":       "\x78",  "infinity_symbol":    "\x79",}# Counters# We have 5 of them.counters = {  1:                    "z",  2:                    "{",  3:                    "|",  4:                    "}",  5:                    "-",}# Colorscolors = {  "red":                "1",  "green":              "2",  "amber":              "3",  "dim_red":            "4",  "dim_green":          "5",  "brown":              "6",  "orange":             "7",  "yellow":             "8",  "rainbow_1":          "9",  "rainbow_2":          "A",  "color_mix":          "B",  "autocolor":          "C",}# Command CodesWRITE_TEXT            = "A"  # Write TEXT file (p18)READ_TEXT             = "B"  # Read TEXT file (p19)WRITE_SPECIAL         = "E"  # Write SPECIAL FUNCTION commands (p21)READ_SPECIAL          = "F"  # Read SPECIAL FUNCTION commands (p29)WRITE_STRING          = "G"  # Write STRING (p37)READ_STRING           = "H"  # Read STRING (p38)WRITE_SMALL_DOTS      = "I"  # Write SMALL DOTS PICTURE file (p39)READ_SMALL_DOTS       = "J"  # Read SMALL DOTS PICTURE file (p41)WRITE_RGB_DOTS        = "K"  # Write RGB DOTS PICTURE file (p44)READ_RGB_DOTS         = "L"  # Read RGB DOTS PICTURE file (p46)WRITE_LARGE_DOTS      = "M"  # Write LARGE DOTS PICTURE file (p42)READ_LARGE_DOTS       = "N"  # Read LARGE DOTS PICTURE file (p43)WRITE_ALPHAVISION     = "O"  # Write ALPHAVISION BULLETIN (p48)SET_TIMEOUT           = "T"  # Set Timeout Message (p118) (Alpha 2.0/3.0)# Constants used in transmission packetsNUL                   = "\x00"  # NULLSOH                   = "\x01"  # Start of HeaderSTX                   = "\x02"  # Start of TeXt (precedes a command code)ETX                   = "\x03"  # End of TeXtEOT                   = "\x04"  # End Of Transmission#ENQ                   = "\x05"  # Enquiry#ACK                   = "\x06"  # AcknowledgeBEL                   = "\x07"  # BellBS                    = "\x08"  # BackspaceHT                    = "\x09"  # Horizontal tabLF                    = "\x0A"  # Line FeedNL                    = "\x0A"  # New LineVT                    = "\x0B"  # Vertical Tab#FF                    = "\x0C"  # Form Feed#NP                    = "\x0C"  # New PageCR                    = "\x0D"  # Carriage ReturnCAN                   = "\x18"  # CancelSUB                   = "\x1A"  # Substitute (select charset)ESC                   = "\x1B"  # Escape character
 |