import telnet argparser = argparse.ArgumentParser(description='aura link') argparser.add_argument('--hertz', default=10, type=int, help='specify main loop rate') argparser.add_argument('--serial', help='input serial port') argparser.add_argument('--baud', default=115200, type=int, help='serial port baud rate') argparser.add_argument('--telnet-port', default=5050, help='telnet port') argparser.add_argument('--http-port', default=8888, help='http/ws port') argparser.add_argument('--html-root', default='.') args = argparser.parse_args() dt = 1.0 / float(args.hertz) telnet.init(args.telnet_port) httpserver.init(args.http_port, args.html_root) def new_logfile(): d = datetime.datetime.utcnow() logfile = 'flight-' + d.strftime("%Y-%m-%d-%H:%M:%S") + '.log' try: f = open(logfile, 'wb') except: print "Cannot open:", logfile quit() return f if args.serial: try: ser = serial.Serial(args.serial, args.baud, timeout=dt) except:
import telnet argparser = argparse.ArgumentParser(description='aura link') argparser.add_argument('--hertz', default=10, type=int, help='specify main loop rate') argparser.add_argument('--serial', required=True, help='input serial port') argparser.add_argument('--baud', default=115200, type=int, help='serial port baud rate') argparser.add_argument('--telnet-port', default=5050, help='telnet port') argparser.add_argument('--http-port', default=8888, help='http/ws port') argparser.add_argument('--html-root', default='.') args = argparser.parse_args() dt = 1.0 / float(args.hertz) telnet.init(args.telnet_port) httpserver.init(args.http_port, args.html_root) try: ser = serial.Serial(args.serial, args.baud, timeout=dt) auraparser.init() except: print "Cannot open:", args.serial import serial.tools.list_ports ports = list(serial.tools.list_ports.comports()) print "Available ports:" for p in ports: print p quit() while True: auraparser.update(ser)
# 'main' print("--- main.py ---") green_led = Pin(4, Pin.OUT) green_led.off() io12 = Pin(12, Pin.OUT) io13 = Pin(13, Pin.OUT) io12.on() io13.on() # 60 LEDs on pin 14 rgbled.strip_init(14, 60) httpserver.init(credentials.wifi_ssid, credentials.wifi_pwd) httpserver.enable_basic_auth(credentials.usr_name, credentials.usr_pwd) httpserver.register_callback('GET', '/', handle_main_page) httpserver.register_callback('GET', '/favicon.ico', handle_favicon) httpserver.register_callback('GET', '/rainbow', handle_rainbow) httpserver.register_callback('GET', '/rgb', handle_get_rgb) httpserver.register_callback('POST', '/rgb', handle_post_rgb) httpserver.register_not_found_callback(handle_not_found) httpserver.register_unauthorized_callback(handle_unauthorized) green_led.on() httpserver.listen()
def loadUserSettings(script=None, inputEvent=None): """Loads (and reloads) the user settings module, reinitializing things such as speech if necessary. Returns True to indicate the input event has been consumed. """ global _userSettings # Shutdown the output drivers and give them a chance to die. # httpserver.shutdown() speech.shutdown() braille.shutdown() mag.shutdown() if _currentPresentationManager >= 0: _PRESENTATION_MANAGERS[_currentPresentationManager].deactivate() time.sleep(1) reloaded = False if _userSettings: try: reload(_userSettings) reloaded = True except ImportError: debug.printException(debug.LEVEL_FINEST) except: debug.printException(debug.LEVEL_SEVERE) else: try: _userSettings = __import__("user-settings") except ImportError: debug.printException(debug.LEVEL_FINEST) except: debug.printException(debug.LEVEL_SEVERE) # If any settings were added to the command line, they take # precedence over everything else. # for key in _commandLineSettings: settings.__dict__[key] = _commandLineSettings[key] if settings.enableSpeech: try: speech.init() if reloaded: # Translators: there is a keystroke to reload the user # preferences. This is a spoken prompt to let the user # know when the preferences has been reloaded. # speech.speak(_("Orca user settings reloaded.")) debug.println(debug.LEVEL_CONFIGURATION, "Speech module has been initialized.") except: debug.printException(debug.LEVEL_SEVERE) debug.println(debug.LEVEL_SEVERE, "Could not initialize connection to speech.") else: debug.println(debug.LEVEL_CONFIGURATION, "Speech module has NOT been initialized.") if settings.enableBraille: try: braille.init(_processBrailleEvent, settings.tty) except: debug.printException(debug.LEVEL_WARNING) debug.println(debug.LEVEL_WARNING, "Could not initialize connection to braille.") if settings.enableMagnifier: try: mag.init() debug.println(debug.LEVEL_CONFIGURATION, "Magnification module has been initialized.") except: debug.printException(debug.LEVEL_SEVERE) debug.println(debug.LEVEL_SEVERE, "Could not initialize connection to magnifier.") else: debug.println(debug.LEVEL_CONFIGURATION, "Magnification module has NOT been initialized.") # We don't want the Caps_Lock modifier to act as a locking # modifier if it used as the Orca modifier key. In addition, if # the KP_Insert key is used as the Orca modifier key, we want to # make sure we clear any other keysyms that might be in use on # that key since we won't be able to detect them as being the Orca # modifier key. For example, KP_Insert produces "KP_Insert" when # pressed by itself, but Shift+KP_Insert produces "0". # # The original values are saved/reset in the orca shell script. # # [[[TODO: WDW - we probably should just to a 'xmodmap -e "%s = %s"' # for all of the orcaModifierKeys, but saving/restoring the values # becomes a little more difficult. If we could assume a writeable # filesystem (we cannot), we could do a 'xmodmap -pke > /tmp/foo' # to save the keymap and a 'xmodmap /tmp/foo' to restore it. # For now, we'll just look at the Orca modifier keys we support # (Caps Lock, KP_Insert, and Insert).]]] # for keyName in settings.orcaModifierKeys: if keyName == "Caps_Lock": os.system('xmodmap -e "clear Lock"') if keyName in ["Caps_Lock", "KP_Insert", "Insert"]: command = 'xmodmap -e "keysym %s = %s"' % (keyName, keyName) os.system(command) if _currentPresentationManager >= 0: _PRESENTATION_MANAGERS[_currentPresentationManager].activate() _showMainWindowGUI() httpserver.init() return True