Load Wi-Fi configuration from shared data
(self)
| 137 | self.ap_ssid = shared_data.config.get('wifi_ap_ssid', 'Ragnar') |
| 138 | self.ap_password = shared_data.config.get('wifi_ap_password', 'ragnarconnect') |
| 139 | self.ap_interface = self.default_wifi_interface |
| 140 | # Resolved lazily by _client_wifi_interface(); the built-in hosts the |
| 141 | # AP and a dongle, when present, carries the client connection. |
| 142 | self._client_iface_cache = None |
| 143 | self._client_iface_cache_ts = 0.0 |
| 144 | self.ap_ip = "192.168.4.1" |
| 145 | self.ap_subnet = "192.168.4.0/24" |
| 146 | # Wardriving AP (KEY1 on the e-paper) — brought up on a spare/borrowed |
| 147 | # adapter so wardriving keeps running. Track prior state for teardown. |
| 148 | self._wardrive_ap_prev_interface = None |
| 149 | self._wardrive_ap_lent_iface = None |
| 150 | |
| 151 | # Control flags |
| 152 | self.should_exit = False |
| 153 | self.monitoring_thread = None |
| 154 | self.startup_complete = False |
| 155 | |
| 156 | # Connection tracking |
| 157 | self.last_connection_type = None # 'wifi', 'ethernet', or None |
| 158 | self.last_ethernet_interface = None |
| 159 |