def test_overflow(): device = dummy(width=24, height=8, mode="1") seg = sevensegment(device) with pytest.raises(OverflowError) as ex: seg.text = "This is too big to fit in 3x8 seven-segment displays" assert str( ex.value ) == "Device's capabilities insufficent for value 'This is too big to fit in 3x8 seven-segment displays'"
def main(): device = pygame(width=24, height=8, transform="sevensegment", scale=1) virtual = viewport(device, width=1024, height=8) seg = sevensegment(virtual) for line in blurb.split("\n"): seg.text = (" " * device.width) + line for x in range(len(line)): virtual.set_position((x, 0)) time.sleep(0.2)
def show_message_vp(device, msg, delay=0.1): # Implemented with virtual viewport width = device.width padding = " " * width msg = padding + msg + padding n = len(msg) virtual = viewport(device, width=n, height=8) sevensegment(virtual).text = msg for i in reversed(list(range(n - width))): virtual.set_position((i, 0)) time.sleep(delay)
def test_setter_getter(): img_path = get_reference_image('golden_ratio.png') with open(img_path, 'rb') as img: reference = Image.open(img) device = dummy(width=24, height=8) seg = sevensegment(device) seg.text = "1.61803398875" assert str(seg.text) == "1.61803398875" bbox = ImageChops.difference(reference, device.image).getbbox() assert bbox is None
def main(): # create seven segment device serial = spi(port=0, device=0, gpio=noop()) device = max7219(serial, cascaded=1) seg = sevensegment(device) print('Simple text...') for _ in range(8): seg.text = "HELLO" time.sleep(0.6) seg.text = " GOODBYE" time.sleep(0.6) # Digit slicing print("Digit slicing") seg.text = "_" * seg.device.width time.sleep(1.0) for i, ch in enumerate([9, 8, 7, 6, 5, 4, 3, 2]): seg.text[i] = str(ch) time.sleep(0.6) for i in range(len(seg.text)): del seg.text[0] time.sleep(0.6) # Scrolling Alphabet Text print('Scrolling alphabet text...') show_message_vp(device, "HELLO EVERYONE!") show_message_vp(device, "PI is 3.14159 ... ") show_message_vp(device, "IP is 127.0.0.1 ... ") show_message_alt( seg, "0123456789 abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ") # Digit futzing date(seg) time.sleep(5) clock(seg, seconds=10) # Brightness print('Brightness...') for x in range(5): for intensity in range(16): seg.device.contrast(intensity * 16) time.sleep(0.1) device.contrast(0x7F)
def test_init(): device = dummy(width=24, height=8, mode="1") sevensegment(device) assert device.image == Image.new("1", (24, 8))