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

Method connect_to_network

wifi_manager.py:1870–2015  ·  view source on GitHub ↗

Connect to a specific Wi-Fi network - NEVER deletes existing system profiles

(self, ssid, password=None)

Source from the content-addressed store, hash-verified

1868 self._cache_interface_networks(target_iface, fallback_networks)
1869 return fallback_networks
1870
1871 # Strategy 5: Return known networks as available options
1872 if self.known_networks:
1873 self.ap_logger.info("Returning known networks as scan alternatives")
1874 known_as_available = []
1875 for i, net in enumerate(self.known_networks):
1876 known_as_available.append({
1877 'ssid': net['ssid'],
1878 'signal': 80 - (i * 5), # Decreasing signal strength
1879 'security': 'WPA2' if net.get('password') else 'Open',
1880 'known': True
1881 })
1882 self._cache_interface_networks(target_iface, known_as_available)
1883 return known_as_available
1884
1885 # Strategy 5: Return helpful message for manual entry
1886 help_networks = [
1887 {
1888 'ssid': '📡 Cached networks may be available',
1889 'signal': 100,
1890 'security': '',
1891 'instruction': True,
1892 'known': False
1893 },
1894 {
1895 'ssid': '✏️ Or type network name manually below',
1896 'signal': 90,
1897 'security': '',
1898 'instruction': True,
1899 'known': False
1900 },
1901 {
1902 'ssid': '� Click refresh to try scanning again',
1903 'signal': 80,
1904 'security': '',
1905 'instruction': True,
1906 'known': False
1907 }
1908 ]
1909
1910 self.ap_logger.info("Returning instructional networks for manual entry")
1911 self._cache_interface_networks(target_iface, help_networks)
1912 return help_networks
1913
1914 except Exception as e:
1915 self.logger.error(f"Error in smart AP scanning: {e}")
1916 self.ap_logger.error(f"Error during smart AP scan: {e}")
1917 return []
1918
1919 def _parse_iwlist_output(self, output):
1920 """Parse iwlist scan output into network list for Pi Zero W2 compatibility"""
1921 networks = []
1922 current_network = {}
1923
1924 try:
1925 for line in output.split('\n'):
1926 line = line.strip()
1927

Callers 2

connect_wifiFunction · 0.80

Calls 12

stop_ap_modeMethod · 0.95
check_wifi_connectionMethod · 0.95
_set_current_ssidMethod · 0.95
infoMethod · 0.80
extendMethod · 0.80
warningMethod · 0.80
errorMethod · 0.80
sleepMethod · 0.45
runMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected