Page 304 - 2020학년도 MDP과제발표회 자료집 (통신과) (3)
P. 304
def _cbf(self, gpio, level, tick):
if self.on_measure == False:
return
if self._start_tick is not None:
ticks = pigpio.tickDiff(self._last_tick, tick)
self._last_tick = tick
self.total_interrupt_count += 1
if self._last_level == level:
self.wrong_level_count += 1
return
else:
self._last_level = level
if level == 0: # Falling edge.
self._high_ticks += ticks
elif level == 1: # Rising edge.
self._low_ticks += ticks
else: # timeout level, not used
pass
else:
self._start_tick = tick
self._last_tick = tick
self._last_level = level
self.total_interrupt_count = 0
self.wrong_level_count = 0
if __name__ == "__main__":
from datetime import datetime
import time
import ds_test1 # import this script
import sys
pi = pigpio.pi('localhost')
s10 = ds_test1.sensor(pi, 4) # GPIO 4 - Seosor Pin 4 (PM10)
s25 = ds_test1.sensor(pi, 2) # GPIO 2 - Seosor Pin 2 (PM25)
while True:
s10.measureStart()
s25.measureStart()
time.sleep(30)
s10.measureStop() - 316 -