Skip to content

Commit c0b153b

Browse files
committed
Webserver stop function
1 parent eeccf27 commit c0b153b

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

Examples/webserver_example.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
webserver.registerStopButton(lambda: drivetrain.set_effort(0, 0))
1111

1212
# Binding functions to custom buttons
13-
webserver.add_button("Test", lambda: print("test"))
13+
webserver.add_button("Close Server", lambda: webserver.stop_server())
1414
webserver.add_button("Blink", lambda: board.led_blink(2))
1515
webserver.add_button("LED Off", lambda: board.led_off())
1616
webserver.add_button("Servo Up", lambda: servo_one.set_angle(90))
@@ -44,3 +44,5 @@ def start_network_and_webserver():
4444
# Network ssid and password are stored in root/secrets.json
4545
webserver.start_network()
4646
webserver.start_server()
47+
48+
start_network_and_webserver()

XRPLib/webserver.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from phew import server, template, logging, access_point, dns
22
from phew.template import render_template
3-
from phew.server import redirect, stop
3+
from phew.server import redirect, stop, close
44
import gc
55
import network
66
import time
@@ -59,7 +59,9 @@ def start_network(self, ssid:str=None, robot_id:int= None, password:str=None):
5959
ssid = f"XRP_{robot_id}"
6060
password = "remote.xrp"
6161
self.access_point = access_point(ssid, password)
62-
self.ip = network.WLAN(network.AP_IF).ifconfig()[0]
62+
logging.info(f"Starting Access Point \"{ssid}\"")
63+
self.wlan = network.WLAN(network.AP_IF)
64+
self.ip = self.wlan.ifconfig()[0]
6365

6466
def connect_to_network(self, ssid:str=None, password:str=None, timeout = 10):
6567
"""
@@ -112,6 +114,9 @@ def stop_server(self):
112114
"""
113115
Shuts off the webserver and network and stops handling requests
114116
"""
117+
logging.enable_logging_types(logging.LOG_INFO)
118+
logging.info("Stopping Webserver and Network Connections")
119+
115120
stop()
116121
self.wlan.active(False)
117122

@@ -218,8 +223,8 @@ def _handleUserFunctionRequest(self, text) -> bool:
218223
return False
219224
user_function()
220225
return True
221-
except:
222-
logging.error("User function "+text+" caused an exception")
226+
except RuntimeError as xcpt:
227+
logging.error("User function "+text+" caused an exception: "+str(xcpt))
223228
return False
224229

225230
def _generateHTML(self):

0 commit comments

Comments
 (0)