Откуда эта метка времени? (Светодиодный сигнал приоритета)
У меня есть этот код, и он работает два раза хорошо, в то время как при третьем вызове я получаю сообщение об ошибке, как если бы я прошел Timestamp. Я только прохожу только Tuple или None.
from pprint import pprint
from gpiozero import RGBLED
def signal(pri, newcolor):
signal.priority[pri] = newcolor
pprint(signal.priority)
try: signal.led.color = next(color for color in signal.priority if color is not None)
except StopIteration: signal.led.color = (0,0,0)
signal.led = RGBLED(red=11, green=9, blue=10)
signal.priority = 2*[None]
Вывод следующий
[None, (0, 1, 0)]
[None, (0, 0, 1)]
[None, (1, 1, 0)]
Traceback (most recent call last):
File "/home/pi/zrcrasp.py", line 137, in <module>
signal(1, (1,1,0))
File "/home/pi/zrcrasp.py", line 10, in signal
try: signal.led.color = next(color for color in signal.priority if color is not None)
TypeError: 'Timestamp' object is not callable
Фон
Функция используется различными частями программы, чтобы сигнализировать о любой ошибке, но если короткое красное мигание с высоким приоритетом заканчивается, зеленый с более низким приоритетом должен продолжаться. Если нет более низкого приоритета - None
, то светодиод будет выключен (это except
заявление за)
Самый низкий индекс - самый высокий приоритет.