Откуда эта метка времени? (Светодиодный сигнал приоритета)

У меня есть этот код, и он работает два раза хорошо, в то время как при третьем вызове я получаю сообщение об ошибке, как если бы я прошел 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 заявление за)

Самый низкий индекс - самый высокий приоритет.

0 ответов

Другие вопросы по тегам