MCPcopy Create free account
hub / github.com/PierreGode/Ragnar / _failsafe_reboot

Method _failsafe_reboot

wifi_manager.py:985–1020  ·  view source on GitHub ↗

Reboot the system as a last resort failsafe mechanism

(self)

Source from the content-addressed store, hash-verified

983 self._handle_ap_mode_monitoring(current_time)
984
985 # Handle force exit AP mode from web interface
986 if self.force_exit_ap_mode and self.ap_mode_active:
987 self.logger.info("Endless Loop: Force exit AP mode requested from web interface")
988 self.stop_ap_mode()
989 self.force_exit_ap_mode = False
990 self._endless_loop_wifi_search()
991
992 # Update current SSID if connected
993 if self.wifi_connected:
994 connected_ssid = self.get_current_ssid()
995 self._set_current_ssid(connected_ssid)
996 if self._pending_ping_sweep_ssid:
997 self._trigger_initial_ping_sweep(self._pending_ping_sweep_ssid)
998 self._pending_ping_sweep_ssid = None
999
1000 # Periodically save connection state (every 2 minutes)
1001 if current_time - last_state_save > 120:
1002 ssid = self.current_ssid if self.wifi_connected else None
1003 self._save_connection_state(ssid, self.wifi_connected)
1004 last_state_save = current_time
1005
1006 # Keep web portal in sync with wardriving + WiFi state
1007 self._sync_web_portal_for_wardriving()
1008
1009 time.sleep(self.connection_check_interval)
1010
1011 except Exception as e:
1012 self.logger.error(f"Error in endless loop monitoring: {e}")
1013 time.sleep(5)
1014
1015 def _perform_wifi_validation(self):
1016 """Perform 5 WiFi validation checks, 10 seconds apart. All 5 must fail to trigger AP mode."""
1017 self.logger.info("Endless Loop: Starting WiFi validation (5 checks, 10s apart)")
1018 validation_failures = 0
1019
1020 for i in range(self.wifi_validation_retries):
1021 if not self.check_wifi_connection():
1022 validation_failures += 1
1023 self.logger.warning(f"Endless Loop: WiFi validation failed ({validation_failures}/{self.wifi_validation_retries})")

Callers 1

Calls 7

stop_ap_modeMethod · 0.95
criticalMethod · 0.80
errorMethod · 0.80
writeMethod · 0.45
sleepMethod · 0.45
runMethod · 0.45

Tested by

no test coverage detected