global m if SAKS.dip_switch.is_on[0] == True and SAKS.dip_switch.is_on[1]==True: h+=1 if SAKS.dip_switch.is_on[0] == False and SAKS.dip_switch.is_on[1]==True: m+=1 if SAKS.dip_switch.is_on[0] == True and SAKS.dip_switch.is_on[1] == False: h-=1 if SAKS.dip_switch.is_on[0] == False and SAKS.dip_switch.is_on[1]==False: m-=1 return None if __name__ == "__main__": SAKS.digital_display.show(("%02d%02d" % (0, 0))) SAKS.tact_event_handler = tact_event_handler() SAKS.digital_display.show(("%02d%02d" % (h, m)))
resultlst.append(mark(result)) #将本次游戏的结果计入结果列表 digr.off() #熄灭数码管 def mark(gap): #设置计分方式 if gap >= 0.5: return 0 elif gap >= 0.3: return 150 - 300 * gap elif gap >= 0.18: return 135 - 250 * gap else: return 100 - 55 * gap SAKS.tact_event_handler = tact #开始按键操作 resultlst = [] #创建记录结果的列表 for round in range(3): #进行3次游戏 beept = 3 + random.randrange(7) #随机设置一个大于3秒的等待时间 time.sleep(beept) prest = time.time() #记录下开始时刻 buz.beep(0.03) #蜂鸣器响起 time.sleep(3) SAKS.tact_event_handler = None #停止按键操作 print(resultlst) average = (resultlst[0] + resultlst[1] + resultlst[2]) / 3 #计算3次结果的平均值 a = (average // 10) % 10 #计算平均结果的各位数字 b = (math.floor(average)) % 10 c = (math.floor(10 * average)) % 10
#判断是否是右边的轻触开关被触发,并且是在被按下 if pin == PINS.TACT_RIGHT and status == True: #在小灯当前状态关着时将它们点亮并修改小灯当前状态为开; 在小灯当前状态开着时将它们灭掉并修改小灯当前状态为关 if not __light_status: SAKS.ledrow.items[0].on() SAKS.ledrow.items[1].on() #检测第1位拨码开关状态是否为ON if SAKS.dip_switch.is_on[0] == True: #点亮第3个LED SAKS.ledrow.items[2].on() #检测第2位拨码开关状态是否为ON if SAKS.dip_switch.is_on[1] == True: #点亮第4个LED SAKS.ledrow.items[3].on() else: SAKS.ledrow.items[0].off() SAKS.ledrow.items[1].off() SAKS.ledrow.items[2].off() SAKS.ledrow.items[3].off() __light_status = not __light_status #print("%d - %s" % (pin, status)) if __name__ == "__main__": #设定拨码开关回调函数 SAKS.dip_switch_status_changed_handler = dip_switch_status_changed_handler #设定轻触开关回调函数 SAKS.tact_event_handler = tact_event_handler input("Enter any keys to exit...")
:param pin: pin number which stauts of tact is changed :param status: current status :return: void ''' # print('tact_event_handler') # print("%d - %s" % (pin, status)) if status != True: # print('status is true') return # print("pin %d" % pin) saks.ledrow.off() if (pin == 16): # print("pin 16") show_temp_or_wet(1) saks.ledrow.on_for_index(0) else: # print("pin %d" % pin) show_temp_or_wet(2) saks.ledrow.on_for_index(7) if __name__ == '__main__': saks = SAKSHAT() sensor = Adafruit_DHT.DHT11 pin = 24 saks.tact_event_handler = tact_event_handler while True: get_temp_or_wet() time.sleep(1)
over, )) #添加最后一个线程,关闭所有的元件,清空所有列表和字符串 for t in threads: t.setDaemon(True) t.start() #同时启动threads列表中的线程 ################## def bling(n): SAKS.ledrow.off_for_index(int(sled[(-1 - n)])) #关闭上一次亮起的led灯 SAKS.buzzer.beep(0.025) #蜂鸣器工作 SAKS.ledrow.on_for_index(int(sled[(-2 - n)])) #点亮当前轮到的LED灯 def nums(n): SAKS.digital_display.show( sled[(-n - 5):(-n - 1)]) #在四位数码管显示当前及紧随其后的三个即将亮起的LED灯编码 def over(): SAKS.ledrow.off() SAKS.digital_display.off() #关闭各种显示,清空各种列表和字符串 tlist[:] = [] timelist[:] = [] sled = '' ################# SAKS.tact_event_handler = tact_event_handler #将原始的按钮反应函数修改为我们所定义的新按钮反应函数
light_on(x) time.sleep(0.3) '''print('I Have Been Touched!') #display_on() time.sleep(0.1) light_on(list_light[1]) time.sleep(1) alarm_on() time.sleep(0.5) light_on(list_light[-1]) time.sleep(1) #display_on(0,0) time.sleep(0.5)''' SAKS.tact_event_handler = my_touch def f_recieve(): while 1: try: a = recieve_email() except: a = '' if a and a.startswith('to_mp3'): list_message.append(a[6:]) change('收到一条消息,现在您共有%s 条未读消息!' % len(list_message)) def f(): while 1: