Как добавить условное утверждение к датчику пламени?

Ваши главные аргументы против использования фигурных скобок заключаются в том, что они используют дополнительные строки и требуют дополнительного отступов.

Линии (почти) свободны, минимизируя количество строк в вашем коде, не должны быть объективными .

И отступ не зависит от использования скобок. В вашем каскадном «использовании» примера я все еще думаю, что вы должны отступать от них, даже когда вы опускаете фигурные скобки.

0
задан Paopao 29 March 2019 в 14:14
поделиться

1 ответ

В вашем примере вы обнаруживаете нарастающий фронт (штифт идет от низкого до высокого). Падение фронта противоположно, поэтому вы можете запустить отдельный обратный вызов с помощью:

GPIO.add_event_detect(17, GPIO.FALLING, callback=other_callback, bouncetime=600)

Однако я бы предложил вам использовать GPIO Zero вместо RPi. GPIO, как вам может показаться более интуитивным:

from gpiozero import InputDevice

sensor = InputDevice(17)

while True:
    sensor.wait_for_active()
    print("Fire!")
    sensor.wait_for_inactive()
    print("No fire")

Вы можете обнаружить, что логика перевернута (говорит «огонь», когда огня нет), и в этом случае используйте InputDevice(17, pull_up=True)

В качестве альтернативы к приведенному выше коду вы можете использовать if sensor.is_active или использовать механизм обратных вызовов sensor.when_activated = callback. См. gpiozero docs для получения дополнительной информации.

0
ответ дан ben_nuttall 29 March 2019 в 14:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: