From f46dffddcf1a45ca9899c82ac4fba4ff910efb6b Mon Sep 17 00:00:00 2001 From: Romaric-RILLET Date: Thu, 5 Sep 2024 23:29:12 +0200 Subject: [PATCH] webrepl: Support LAN as well as WLAN boards. When webrepl starts, it prints out the IP address, however it does this by querying the network.WLAN object. This fail for board with an Ethernet interface but no WiFi interface. We try both type of interface (and print error if none exist). Signed-off-by: Romaric-RILLET --- micropython/net/webrepl/webrepl.py | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/micropython/net/webrepl/webrepl.py b/micropython/net/webrepl/webrepl.py index 48c181968..c30035712 100644 --- a/micropython/net/webrepl/webrepl.py +++ b/micropython/net/webrepl/webrepl.py @@ -102,10 +102,25 @@ def setup_conn(port, accept_handler): listen_s.listen(1) if accept_handler: listen_s.setsockopt(socket.SOL_SOCKET, 20, accept_handler) + started = False for i in (network.AP_IF, network.STA_IF): - iface = network.WLAN(i) - if iface.active(): - print("WebREPL server started on http://%s:%d/" % (iface.ifconfig()[0], port)) + try: + iface = network.WLAN(i) + if iface.active(): + print("WebREPL server started on http://%s:%d/" % (iface.ifconfig()[0], port)) + started = True + except AttributeError: + pass + for i in (0, 1): + try: + iface = network.LAN(i) + if iface.active(): + print("WebREPL server started on http://%s:%d/" % (iface.ifconfig()[0], port)) + started = True + except (AttributeError, ValueError): + pass + if not started: + print("WebREPL no active interface") return listen_s