dies ist ein Shell scriptt dür eine Sieben Segmentanzeige
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Copyright (c) 2017-18 Richard Hull and contributors
# See LICENSE.rst for details.
import time
from datetime import datetime
from luma.led_matrix.device import max7219
from luma.core.interface.serial import spi, noop
from luma.core.virtual import viewport, sevensegment
def date(seg):
now = datetime.now()
seg.text = now.strftime("%y-%m-%d")
def clock(seg, seconds):
interval = 0.5
for i in range(int(seconds / interval)):
now = datetime.now()
seg.text = now.strftime("%H-%M-%S")
if i % 2 == 0:
seg.text = now.strftime("%H-%M-%S")
else:
seg.text = now.strftime("%H %M %S")
time.sleep(interval)
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 show_message_alt(seg, msg, delay=0.1):
width = seg.device.width
padding = " " * width
msg = padding + msg + padding
for i in range(len(msg)):
seg.text = msg[i:i + width]
time.sleep(delay)
def main():
serial = spi(port=0, device=0, gpio=noop())
device = max7219(serial, cascaded=1)
seg = sevensegment(device)
time = 'time'
date = 'date'
scroll = 'scroll'
exit = 'exit'
display = 'display'
Display = 'Display'
while True:
print ("")
print("time = Uhrzeit")
print("date = Datum")
print("scroll = Scrolling-Text")
print("display = Displaying-TExt")
print("exit = Exit")
print("")
Input = raw_input("What will you do? ")
if Input == time:
print ("")
print ("Uhrzeit für 60 Sekunden aktiviert")
clock(seg, seconds=60)
seg.text = ""
elif Input == date:
print ("")
print ("Datum für 60 Sekunden aktiviert")
date(seg)
time.sleep(60)
seg.text = ""
elif Input == scroll:
print("")
Scroll = raw_input("What should scroll? ")
print ("Scrolling "+Scroll+" ")
show_message_alt(seg,""+Scroll+"")
# print ("Scrolling "+Scroll+" ")
elif Input == display:
print ("")
print ("Maximal 8 Buchstaben / Zeichen")
Display = raw_input("What should display? ")
print ("Displaying "+Display+" for 10 Sekonds ")
seg.text = (" "+Display+" ")
time.sleep(10)
seg.text = ""
elif Input == exit:
seg.text = (" ")
break
else:
print ("Unkown command / For Exit 'exit' or 'Ctrl + C'")
if __name__ == '__main__':
main()
Wenn ich das Script starte und
'date' eingebe komm ich in die 'If schleife date'
anstatt das 'date(seg)' startet bekomme ich diese Fehlermeldung
Code: Alles auswählen
What will you do? date
Datum für 60 Sekunden aktiviert
Traceback (most recent call last):
File "All.py", line 116, in <module>
main()
File "All.py", line 88, in main
date(seg)
TypeError: 'str' object is not callable