class ChannelError(Exception):
pass
+# This table is sorted by ASCII code numbers, with the exception
+# of letters having their upper/lower case ignored.
+#
+# Traditional LED segment names and layout:
+#
+# A
+# F B
+# G
+# E C
+# D
+#
+# A B C D E F G
digits = {
(0, 0, 0, 0, 0, 0, 0): ' ',
+ (0, 1, 0, 0, 0, 1, 0): '"',
+ (1, 1, 0, 1, 1, 1, 1): "&",
+ (0, 0, 0, 0, 0, 1, 0): "'",
+ (0, 1, 0, 0, 0, 0, 0): "'",
+ (0, 0, 1, 1, 0, 0, 0): ',',
+ (0, 0, 0, 0, 0, 0, 1): '-',
+ (0, 0, 0, 0, 1, 0, 0): '.',
(1, 1, 1, 1, 1, 1, 0): '0',
(0, 1, 1, 0, 0, 0, 0): '1',
(1, 1, 0, 1, 1, 0, 1): '2',
(0, 1, 1, 0, 0, 1, 1): '4',
(1, 0, 1, 1, 0, 1, 1): '5',
(1, 0, 1, 1, 1, 1, 1): '6',
+ (1, 1, 1, 0, 0, 1, 0): '7',
(1, 1, 1, 0, 0, 0, 0): '7',
(1, 1, 1, 1, 1, 1, 1): '8',
(1, 1, 1, 1, 0, 1, 1): '9',
+ (1, 0, 0, 0, 0, 0, 1): '=',
+ (0, 0, 0, 1, 0, 0, 1): '=',
+ (1, 1, 0, 0, 1, 0, 1): '?',
(1, 1, 1, 0, 1, 1, 1): 'A',
- (0, 0, 1, 1, 1, 1, 1): 'B',
+ (1, 1, 1, 1, 1, 0, 1): 'a',
+ (0, 0, 1, 1, 1, 1, 1): 'b',
(1, 0, 0, 1, 1, 1, 0): 'C',
- (0, 1, 1, 1, 1, 0, 1): 'D',
+ (0, 0, 0, 1, 1, 0, 1): 'c',
+ (0, 1, 1, 1, 1, 0, 1): 'd',
(1, 0, 0, 1, 1, 1, 1): 'E',
(1, 0, 0, 0, 1, 1, 1): 'F',
+ (1, 0, 1, 1, 1, 1, 0): 'G',
+ (0, 1, 1, 0, 1, 1, 1): 'H',
+ (0, 0, 1, 0, 1, 1, 1): 'h',
+ (0, 0, 0, 0, 1, 1, 0): 'I',
+ (1, 0, 0, 0, 1, 0, 0): 'i',
+ (0, 0, 1, 0, 0, 0, 0): 'i',
+ (0, 1, 1, 1, 1, 0, 0): 'J',
+ (0, 1, 1, 1, 0, 0, 0): 'J',
+ (1, 0, 1, 1, 0, 0, 0): 'j',
+ (1, 0, 1, 0, 1, 1, 1): 'K',
+ (0, 0 ,0, 1, 1, 1, 0): 'L',
+ (1, 0, 1, 0, 1, 0, 0): 'M',
+ (1, 0, 1, 0, 1, 0, 1): 'M',
+ (1, 1, 1, 0, 1, 1, 0): 'N',
+ (0, 0, 1, 0, 1, 0, 1): 'n',
+ (0, 0, 1, 1, 1, 0, 1): 'o',
+ (1, 1, 0, 0, 1, 1, 1): 'p',
+ (1, 1, 1, 0, 0, 1, 1): 'q',
+ (1, 1, 0, 0, 1, 1, 0): 'R',
+ (0, 0, 0, 0, 1, 0, 1): 'r',
+ (0, 0, 0, 1, 1, 1, 1): 't',
+ (0, 0, 1, 1, 1, 0, 0): 'u',
+ (0, 1, 0, 1, 0, 1, 0): 'V',
+ (0, 1, 0, 0, 1, 1, 1): 'V',
+ (0, 1, 1, 1, 1, 1, 0): 'V',
+ (0, 1, 0, 0, 0, 1, 1): 'v',
+ (0, 1, 0, 1, 0, 1, 1): 'W',
+ (0, 0, 1, 0, 1, 0, 0): 'x',
+ (0, 1, 1, 1, 0, 1, 1): 'y',
+ (1, 1, 0, 1, 1, 0, 0): 'Z',
+ (1, 1, 0, 0, 0, 1, 0): '^',
+ (0, 0, 0, 1, 0, 0, 0): '_',
}
class Decoder(srd.Decoder):
options = (
{'id': 'polarity', 'desc': 'Expected polarity',
'default': 'common-cathode', 'values': ('common-cathode', 'common-anode')},
+ {'id': 'show_unknown', 'desc': 'Display Unknown characters as #',
+ 'default': 'no', 'values': ('yes', 'no')},
)
annotations = (
('decoded-digit', 'Decoded digit'),
# Convert to character string.
digit = self.pins_to_hex(oldpins[:7])
+ if digit is None and self.options['show_unknown'] == 'yes':
+ digit = '#'
+
if digit is not None:
dp = oldpins[7]