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

 

posted @ 2020-10-28 10:48  ionbot  阅读(450)  评论(0编辑  收藏  举报