예제 #1
0
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()
예제 #2
0
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()
예제 #3
0
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")