@@ -17,12 +17,12 @@ def __init__(self):
1717 self ._session = None
1818 self ._tz = None
1919 self ._ntp = None
20+ self ._ssid = None
2021
2122 # public
2223 self .error = False
2324 self .hw_name = "wifi"
2425 self .interface_type = "wifi"
25- self .mode = "hotspot" if wifi .radio .ap_active else "station"
2626
2727 if wifi .radio .connected or wifi .radio .ap_active :
2828 # We need to inherit connection
@@ -41,7 +41,8 @@ def connected(self) -> bool:
4141 def ap_connected (self ) -> bool :
4242 return wifi .radio .ap_active
4343
44- def _mode (self ) -> str :
44+ @property
45+ def mode (self ) -> None :
4546 if wifi .radio .ap_active :
4647 if wifi .radio .connected :
4748 return "both"
@@ -52,6 +53,11 @@ def _mode(self) -> str:
5253 else :
5354 return "disconnected"
5455
56+ def _update (self ) -> None :
57+ if (not wifi .radio .connected ) and self ._ssid :
58+ self ._ssid = None
59+ self .disconnect ()
60+
5561 def connect (self , ssid , passwd = None , retries = 3 ) -> bool :
5662 """
5763 Connect to a wifi access point
@@ -77,7 +83,7 @@ def connect(self, ssid, passwd=None, retries=3) -> bool:
7783 return False
7884 self ._pool = SocketPool (wifi .radio )
7985 self ._session = Session (self ._pool , create_default_context ())
80- self .mode = self . _mode ()
86+ self ._ssid = ssid
8187 return True
8288
8389 def connect_ap (self , ssid , passwd = None ) -> bool :
@@ -95,7 +101,6 @@ def connect_ap(self, ssid, passwd=None) -> bool:
95101 return False
96102 self ._pool = SocketPool (wifi .radio )
97103 self ._session = Session (self ._pool , create_default_context ())
98- self .mode = self ._mode ()
99104 return True
100105
101106 def hostname (self , name = None ) -> str :
@@ -115,7 +120,7 @@ def get(self, host: str):
115120 """
116121 if self ._session is not None :
117122 if not (host .startswith ("http://" ) or host .startswith ("https://" )):
118- host = "https ://" + host
123+ host = "http ://" + host
119124
120125 return self ._session .get (host )
121126 else :
@@ -171,7 +176,8 @@ def get_ipconf(self) -> dict:
171176 "gateway" : wifi .radio .ipv4_gateway
172177 if not wifi .radio .ap_active
173178 else wifi .radio .ipv4_gateway_ap ,
174- "mode" : self ._mode ,
179+ "mode" : self .mode ,
180+ "ssid" : self ._ssid ,
175181 "dns" : wifi .radio .ipv4_dns ,
176182 "subnet" : wifi .radio .ipv4_subnet ,
177183 "subnet_ap" : wifi .radio .ipv4_subnet_ap ,
@@ -187,12 +193,13 @@ def get_ipconf(self) -> dict:
187193 }
188194
189195 try :
190- data ["ssid" ] = wifi .radio .ap_info .ssid
191196 data ["bssid" ] = wifi .radio .ap_info .bssid
192197 data ["channel" ] = wifi .radio .ap_info .channel
193198 data ["country" ] = wifi .radio .ap_info .country
194199 except :
195- pass
200+ data ["bssid" ] = None
201+ data ["channel" ] = None
202+ data ["country" ] = None
196203
197204 return data
198205
@@ -228,7 +235,6 @@ def disconnect(self) -> None:
228235 del self ._pool , self ._session
229236 self ._pool = None
230237 self ._session = None
231- self .mode = self ._mode ()
232238
233239 def disconnect_ap (self ) -> None :
234240 """
@@ -258,7 +264,6 @@ def disconnect_ap(self) -> None:
258264 del self ._pool , self ._session
259265 self ._pool = None
260266 self ._session = None
261- self .mode = self ._mode ()
262267
263268 def start (self ) -> None :
264269 """
0 commit comments