Как правильно удалить прерывание обратного вызова в Beaglebone черный

Как добавить прерывание обратного вызова для gpio pin P9_24 вот так

   class Birdemke:
        ...
        def __init__(self):
            #initializatioin of variables
            ...
            self.count = 0

        def startReadingValue(self):
            self.count = 0
            Gpio.add_event_detect("P9_24", Gpio.RISING, self.readValueFromSensor, 0)

        def pauseReadingValue(self):
            Gpio.remove_event_detect("P9_24")

        def readValueFromSensor(self):
            self.count += 1
            #reads value from i2c
            ...

этот класс Birdemke вызывается с сервера с использованием бутылки. Вызовы startReadingValue() добавить и звонки pauseReadingValue() сделать программу невосприимчивой к переднему краю. При удалении обнаружения событий программа иногда выдает AttributeError в строке self.count += 1 эта переменная подсчета не определена и ошибка ошибки сегментации в Gpio.remove_event_detect("P9_24") line [после изменения добавления строки поверх self.count if hasattr(self,'count')].

0 ответов

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