55from machine import Pin
66import ujson as json
77
8- delay = 0.5
8+ blink_off_time = 0.5
9+ blink_on_time = 0.5
10+
911status = True
1012led = Pin ("LED" , Pin .OUT )
1113
@@ -21,14 +23,22 @@ async def say_hello(request, response, name):
2123
2224async def send_status (request , response ):
2325 # send boolean status and number frequency
24- response_string = json .dumps ({"status" : status , "delay" : delay })
26+ response_string = json .dumps ({"status" : status , "delay" : ( blink_off_time + blink_on_time ) * 0.5 , "blink_on_time" : blink_on_time , "blink_off_time" : blink_off_time })
2527 await response .send_json (response_string , 200 )
2628
29+ async def set_blink_pattern (request , response , on , off ):
30+ print ("on: " + on )
31+ print ("off: " + off )
32+ global blink_off_time , blink_on_time
33+ blink_off_time = float (off )
34+ blink_on_time = float (on )
35+ await send_status (request , response )
2736
2837async def set_delay (request , response , new_delay ):
2938 print ("new delay: " + new_delay )
30- global delay
31- delay = float (new_delay )
39+ global blink_off_time , blink_on_time
40+ blink_off_time = float (new_delay )
41+ blink_on_time = float (new_delay )
3242 await send_status (request , response )
3343
3444async def stop_flashing (request , response ):
@@ -45,20 +55,23 @@ async def main():
4555 await server .start_server ()
4656
4757async def background_task ():
48- global delay , status
4958 while True :
50- await asyncio .sleep (delay )
5159 if status :
52- led .toggle ()
60+ led .on ()
61+ await asyncio .sleep (blink_on_time )
62+ led .off ()
63+ await asyncio .sleep (blink_off_time )
5364 else :
5465 led .off ()
66+ await asyncio .sleep (0.2 )
5567
5668
5769async def run ():
5870 await asyncio .gather (main (), background_task ())
5971
6072server = GurgleAppsWebserver (config .WIFI_SSID , config .WIFI_PASSWORD , port = 80 , timeout = 20 , doc_root = "/www" , log_level = 2 )
6173server .add_function_route ("/set-delay/<delay>" , set_delay )
74+ server .add_function_route ("/set-blink-pattern/<on_time>/<off_time>" , set_blink_pattern )
6275server .add_function_route ("/stop" , stop_flashing )
6376server .add_function_route ("/start" , start_flashing )
6477server .add_function_route ("/status" , send_status )
0 commit comments