11from protocols .config import Config
22from typing import Protocol
3+ from typing import Callable
34
45
56class WiFiManager (Protocol ):
6- def __init__ (self , config : Config ):
7- pass
7+ _on_ap_started : Callable [[str ], None ]
8+ _on_station_connected : Callable [[str ], None ]
9+ _on_connecting : Callable [[], None ]
810
9- def scan (self ) -> list [str ]:
10- raise NotImplementedError ()
11+ def __init__ (self , config : Config ):
12+ self ._on_ap_started = lambda ssid : None
13+ self ._on_station_connected = lambda ssid : None
14+ self ._on_connecting = lambda : None
1115
1216 async def connect_stations (self , connect_ap_on_failure : bool = True ):
1317 raise NotImplementedError ()
@@ -18,4 +22,27 @@ async def start_ap(self):
1822 def set_hostname (self ):
1923 raise NotImplementedError ()
2024
21-
25+ @property
26+ def on_station_connected (self ) -> Callable [[str ], None ]:
27+ return self ._on_station_connected
28+
29+ @on_station_connected .setter
30+ def on_station_connected (self , callback : Callable [[str ], None ]) -> None :
31+ self ._on_station_connected = callback
32+
33+ @property
34+ def on_ap_started (self ) -> Callable [[str ], None ]:
35+ return self ._on_ap_started
36+
37+ @on_ap_started .setter
38+ def on_ap_started (self , callback : Callable [[str ], None ]) -> None :
39+ self ._on_ap_started = callback
40+
41+ @property
42+ def on_connecting (self ) -> Callable [[], None ]:
43+ return self ._on_connecting
44+
45+ @on_connecting .setter
46+ def on_connecting (self , callback : Callable [[], None ]) -> None :
47+ self ._on_connecting = callback
48+
0 commit comments