def goto_known_state(): # kill pppd pid = OSTools.pppd_pid() if pid != 0: OSTools.pppd_terminate(pid) # call rmmod logger.warn("Cleaning up, removed ehci_hcd.") OSTools.polling_popen(['rmmod', '-f', 'ehci_hcd'], timeout=30.0) # remove power from usb hub set_gpio_usbhub_power(on=False)
def ready_internet(self): self.logger.info("Attempting to connect to the internet.") ## open a pppd instance OSTools.pppd_launch() ## wait for pppd to settle time.sleep(5) retrycount = 5 while retrycount > 0: ## to see if ppp is up if OSTools.pppd_status(): ## ppp is up, try ping x = self._try_network() if x is not None: self.disp.control_led('net', True) self.disp.control_led('neterr', False) self.logger.info("Ping success.") return True else: self.disp.control_led('neterr', True) self.disp.control_led('net', False) self.logger.info("Sleeping for 10s.") time.sleep(10) else: # ppp is not up ## check if process is running ppp_pid = OSTools.pppd_pid() if ppp_pid == 0: ## ppp has quit raise InternetConnectionError('pppd unexpectedly quit!') else: ## wait 10 seconds, and retry time.sleep(10) retrycount -= 1 self.logger.info("Rechecking network, remaining attempts %d." % retrycount) OSTools.pppd_terminate(OSTools.pppd_pid()) return False
def stop_internet(self): self.logger.info("Dropping net connection.") self.disp.control_led('net', False) return OSTools.pppd_terminate(OSTools.pppd_pid())