Python 报警及报警延迟
1 import time 2 import winsound 3 import random 4 5 6 # 播放声音 7 def play_music(): 8 winsound.PlaySound('alert', winsound.SND_ASYNC) 9 time.sleep(1) 10 11 12 # 报警判断及延时间处理 13 class Call_the_police(object): 14 15 def __init__(self): 16 self.time = 5 # 延时设定 17 self.value_low = 5 # 低限 18 self.value_high = 15 # 高线 19 self.num = 0 # 报警状态 0:首次 1:多次 20 21 def call_the_police(self, value): 22 if self.num == 0: 23 # 数据对比是否在规定范围以内 24 if self.value_low > value or value > self.value_high: 25 # 延时 26 time.sleep(self.time) 27 # 标记报警状态 28 print('报警状态:首次\t报警值:'+str(value)) 29 self.num = 1 30 elif self.num == 1: 31 # 数据对比是否在规定范围以内 32 if self.value_low > value or value > self.value_high: 33 # 报警 34 play_music() 35 print('报警值:'+str(value)) 36 else: 37 # 数据在合格范围以内,重置报警状态 38 self.num = 0 39 40 41 if __name__ == '__main__': 42 # 初始化 43 call = Call_the_police() 44 num = 0 45 while True: 46 if num < 10: 47 i = random.randint(0, 1000) 48 call.call_the_police(i) 49 print('num:'+str(num)+'\ti:'+str(i)) 50 elif 9 < num < 20: 51 i = random.randint(0, 50) 52 call.call_the_police(i) 53 print('num:' + str(num) + '\ti:' + str(i)) 54 else: 55 num = 0 56 num += 1