示例#1
0
def start(browser=False, debug=False):
    """ Start a bottle web server.
        Derived from WSGIRefServer.run()
        to have control over the main loop.
    """
    global DEBUG
    DEBUG = debug

    class FixedHandler(wsgiref.simple_server.WSGIRequestHandler):
        def address_string(self):  # Prevent reverse DNS lookups please.
            return self.client_address[0]

        def log_request(*args, **kw):
            if debug:
                return wsgiref.simple_server.WSGIRequestHandler.log_request(
                    *args, **kw)

    S.server = wsgiref.simple_server.make_server(
        conf['network_host'], conf['network_port'], bottle.default_app(),
        wsgiref.simple_server.WSGIServer, FixedHandler)
    S.server.timeout = 0.01
    S.server.quiet = not debug
    if debug:
        bottle.debug(True)
    print("Library Directory: " + conf['rootdir'])
    print("Config Directory: " + conf['confdir'])
    print(
        "-----------------------------------------------------------------------------"
    )
    print("Starting server at http://%s:%d/" %
          ('127.0.0.1', conf['network_port']))
    print(
        "-----------------------------------------------------------------------------"
    )
    driveboard.connect_withfind()
    # open web-browser
    if browser:
        try:
            webbrowser.open_new_tab('http://127.0.0.1:' +
                                    str(conf['network_port']))
        except webbrowser.Error:
            print("Cannot open Webbrowser, please do so manually.")
    sys.stdout.flush()  # make sure everything gets flushed
    # start server
    # print "INFO: Starting web server thread."
    S.start()
    driveboard.air_off()
    if conf['home_on_startup']:
        try:
            # will fail if board not flashed
            driveboard.homing()
        except:
            pass
示例#2
0
def homing():
    driveboard.homing()
    return '{}'
示例#3
0
def homing():
    driveboard.homing()
    return '{}'