def main(): """Start the data logger application.""" print('[main.py] INFO: Loading Terkin Datalogger') global bootloader global datalogger print('[main.py] INFO: Loading modules') from terkin.datalogger import TerkinDatalogger datalogger = TerkinDatalogger(settings, platform_info=bootloader.platform_info) datalogger.setup() try: datalogger.start() except KeyboardInterrupt: log.info("Received KeyboardInterrupt within main thread") if datalogger.device.networking is not None: datalogger.device.networking.stop_modeserver() datalogger.device.networking.wifi_manager.stop() # This helps the webserver to get rid of any listening sockets. # https://github.com/jczic/MicroWebSrv2/issues/8 datalogger.device.networking.stop_httpserver()
class TerkinApplication: """Start the data logger application.""" def __init__(self, config=None, daemon=False): self.config = config self.daemon = daemon self.bootloader = None self.datalogger = None def start(self): # Make environment compatible with CPython. patch_system() log.info('Starting bootloader') self.bootloader = start_bootloader() log.info('Loading modules') from terkin.datalogger import TerkinDatalogger settings = load_settings(settings_file=self.config) log.info('Setting up Terkin') self.datalogger = TerkinDatalogger( settings, platform_info=self.bootloader.platform_info) self.datalogger.setup() log.info('Starting Terkin') try: if self.daemon: self.datalogger.start() else: self.datalogger.duty_cycle() except KeyboardInterrupt: self.shutdown() def shutdown(self): log.info('Shutting down Terkin') if self.datalogger.device.status.networking: self.datalogger.device.networking.stop() def start_ui(self): # Make environment compatible with CPython. patch_system() from terkin.ui import TerkinUi ui = TerkinUi() try: ui.start() ui.example_listbox() #ui.example_menu() finally: ui.stop()
def main(): """Start the data logger application.""" print('[main.py] INFO: Loading Terkin Datalogger') global bootloader global datalogger print('[main.py] INFO: Loading modules') from terkin.datalogger import TerkinDatalogger # Setup datalogger. datalogger = TerkinDatalogger(settings, platform_info=bootloader.platform_info) datalogger.setup() # Invoke datalogger. try: datalogger.start() except KeyboardInterrupt: log.info("Received KeyboardInterrupt")