Checks for an active wireless connection. Checks for and updates the tray icon for an active wireless connection. Returns True if wireless connection is active, and False otherwise.
00085 : """ Checks for an active wireless connection. Checks for and updates the tray icon for an active wireless connection. Returns True if wireless connection is active, and False otherwise. """ # Make sure we have an IP before we do anything else. if wireless_ip is None: return False # Reset this, just in case. self.tried_reconnect = False # Try getting signal strength, and default to 0 # if something goes wrong. try: if daemon.GetSignalDisplayType() == 0: wifi_signal = int(wireless.GetCurrentSignalStrength(self.iwconfig)) else: wifi_signal = int(wireless.GetCurrentDBMStrength(self.iwconfig)) except: wifi_signal = 0 if wifi_signal == 0: # If we have no signal, increment connection loss counter. # If we haven't gotten any signal 4 runs in a row (12 seconds), # try to reconnect. self.connection_lost_counter += 1 # print self.connection_lost_counter if self.connection_lost_counter >= 4: self.connection_lost_counter = 0 return False else: # If we have a signal, reset the counter self.connection_lost_counter = 0 # Only update if the signal strength has changed because doing I/O # calls is expensive, and the icon flickers. if (wifi_signal != self.last_strength or self.network != wireless.GetCurrentNetwork(self.iwconfig)): self.last_strength = wifi_signal self.signal_changed = True daemon.SetCurrentInterface(daemon.GetWirelessInterface()) return True def update_connection_status(self):