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  -
   299   300   301   302   303   304   305   306   307   308   309