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