def flash_firmware_handler(): if SerialManager.is_connected(): SerialManager.close() global SERIAL_PORT, GUESS_PREFIX if not SERIAL_PORT: SERIAL_PORT = SerialManager.match_device(GUESS_PREFIX) flash_upload(SERIAL_PORT, resources_dir()) return '<h2>flashing finished!</h2> Check Log window for possible errors.<br><a href="/">return</a>'
def flash_firmware_handler(firmware_file=FIRMWARE): global SERIAL_PORT, GUESS_PREFIX return_code = 1 if SerialManager.is_connected(): SerialManager.close() # get serial port by url argument # e.g: /flash_firmware?port=COM3 if 'port' in request.GET.keys(): serial_port = request.GET['port'] if serial_port[:3] == "COM" or serial_port[:4] == "tty.": SERIAL_PORT = serial_port # get serial port by enumeration method # currenty this works on windows only for updating the firmware if not SERIAL_PORT: SERIAL_PORT = SerialManager.match_device(GUESS_PREFIX, BITSPERSECOND) # resort to brute force methode # find available com ports and try them all if not SERIAL_PORT: comport_list = SerialManager.list_devices(BITSPERSECOND) for port in comport_list: print("Trying com port: " + port) return_code = flash_upload(port, resources_dir(), firmware_file, HARDWARE) if return_code == 0: print("Success with com port: " + port) SERIAL_PORT = port break else: return_code = flash_upload(SERIAL_PORT, resources_dir(), firmware_file, HARDWARE) ret = [] ret.append('Using com port: %s<br>' % (SERIAL_PORT)) ret.append('Using firmware: %s<br>' % (firmware_file)) if return_code == 0: print("SUCCESS: Arduino appears to be flashed.") ret.append('<h2>Successfully Flashed!</h2><br>') ret.append('<a href="/">return</a>') return ''.join(ret) else: print("ERROR: Failed to flash Arduino.") ret.append( '<h2>Flashing Failed!</h2> Check terminal window for possible errors. ' ) ret.append( 'Most likely LasaurApp could not find the right serial port.') ret.append('<br><a href="/flash_firmware/' + firmware_file + '">try again</a> or <a href="/">return</a><br><br>') if os.name != 'posix': ret.append( 'If you know the COM ports the Arduino is connected to you can specifically select it here:' ) for i in range(1, 13): ret.append( '<br><a href="/flash_firmware?port=COM%s">COM%s</a>' % (i, i)) return ''.join(ret)
def run_helper(): if args.debug: debug(True) if hasattr(sys, "_MEIPASS"): print "Data root is: " + sys._MEIPASS print "Persistent storage root is: " + storage_dir() if args.build_and_flash: flash_upload(SERIAL_PORT, resources_dir()) else: if args.host_on_all_interfaces: run_with_callback('') else: run_with_callback('127.0.0.1')
def flash_firmware_handler(firmware_file=FIRMWARE): global user_approved global user_admin if not user_approved and user_admin: return 'Access denied' logger.log(current_user, 'Flashing ATMEGA') return_code = 1 if SerialManager.is_connected(): SerialManager.close() # get serial port by url argument # e.g: /flash_firmware?port=COM3 if 'port' in request.GET.keys(): serial_port = request.GET['port'] if serial_port[:3] == "COM" or serial_port[:4] == "tty.": SERIAL_PORT = serial_port # get serial port by enumeration method # currenty this works on windows only for updating the firmware if not SERIAL_PORT: SERIAL_PORT = SerialManager.match_device(GUESS_PREFIX, BITSPERSECOND) # resort to brute force methode # find available com ports and try them all if not SERIAL_PORT: comport_list = SerialManager.list_devices(BITSPERSECOND) for port in comport_list: print "Trying com port: " + port return_code = flash_upload(port, resources_dir(), firmware_file, HARDWARE) if return_code == 0: print "Success with com port: " + port SERIAL_PORT = port break else: return_code = flash_upload(SERIAL_PORT, resources_dir(), firmware_file, HARDWARE) ret = [] ret.append('Using com port: %s<br>' % (SERIAL_PORT)) ret.append('Using firmware: %s<br>' % (firmware_file)) if return_code == 0: print "SUCCESS: Arduino appears to be flashed." ret.append('<h2>Successfully Flashed!</h2><br>') ret.append('<a href="/">return</a>') return ''.join(ret) else: print "ERROR: Failed to flash Arduino." ret.append('<h2>Flashing Failed!</h2> Check terminal window for possible errors. ') ret.append('Most likely LasaurApp could not find the right serial port.') ret.append('<br><a href="/flash_firmware/'+firmware_file+'">try again</a> or <a href="/">return</a><br><br>') if os.name != 'posix': ret. append('If you know the COM ports the Arduino is connected to you can specifically select it here:') for i in range(1,13): ret. append('<br><a href="/flash_firmware?port=COM%s">COM%s</a>' % (i, i)) return ''.join(ret)
def flash_firmware_handler(): global SERIAL_PORT, GUESS_PREFIX return_code = 1 if SerialManager.is_connected(): SerialManager.close() # get serial port by url argument # e.g: /flash_firmware?port=COM3 if "port" in request.GET.keys(): serial_port = request.GET["port"] if serial_port[:3] == "COM" or serial_port[:4] == "tty.": SERIAL_PORT = serial_port # get serial port by enumeration method # currenty this works on windows only for updating the firmware if not SERIAL_PORT: SERIAL_PORT = SerialManager.match_device(GUESS_PREFIX, BITSPERSECOND) # resort to brute force methode # find available com ports and try them all if not SERIAL_PORT: comport_list = SerialManager.list_devices(BITSPERSECOND) for port in comport_list: print "Trying com port: " + port return_code = flash_upload(port, resources_dir()) if return_code == 0: print "Success with com port: " + port SERIAL_PORT = port break else: return_code = flash_upload(SERIAL_PORT, resources_dir()) ret = [] ret.append("Using com port: %s<br>" % (SERIAL_PORT)) if return_code == 0: print "SUCCESS: Arduino appears to be flashed." ret.append("<h2>Successfully Flashed!</h2><br>") ret.append('<a href="/">return</a>') return "".join(ret) else: SERIAL_PORT = None print "ERROR: Failed to flash Arduino." ret.append("<h2>Flashing Failed!</h2> Check Log window for possible errors. ") ret.append('Most likely LasaurApp could not find the right serial port.<br><a href="/">return</a><br><br>') if os.name != "posix": ret.append("If you know the COM ports the Arduino is connected to you can specifically select it here:") for i in range(1, 13): ret.append('<br><a href="/flash_firmware?port=COM%s">COM%s</a>' % (i, i)) return "".join(ret)
def flash(serial_port=conf['serial_port'], firmware=conf['firmware']): import flash reconnect = False if connected(): close() reconnect = True ret = flash.flash_upload(serial_port=serial_port, firmware=firmware) if reconnect: connect() if ret != 0: print "ERROR: flash failed" return ret
def run_helper(): if args.debug: debug(True) if hasattr(sys, "_MEIPASS"): print "Data root is: " + sys._MEIPASS print "Persistent storage root is: " + storage_dir() if args.build_and_flash: return_code = flash_upload(SERIAL_PORT, resources_dir()) if return_code == 0: print "SUCCESS: Arduino appears to be flashed." else: print "ERROR: Failed to flash Arduino." else: if args.host_on_all_interfaces: run_with_callback("") else: run_with_callback("127.0.0.1")
def run_helper(): if args.debug: debug(True) if hasattr(sys, "_MEIPASS"): print "Data root is: " + sys._MEIPASS print "Persistent storage root is: " + storage_dir() if args.build_and_flash: return_code = flash_upload(SERIAL_PORT, resources_dir()) if return_code == 0: print "SUCCESS: Arduino appears to be flashed." else: print "ERROR: Failed to flash Arduino." else: if args.host_on_all_interfaces: run_with_callback('') else: run_with_callback('127.0.0.1')
if SERIAL_PORT: print "Using serial device '" + str( SERIAL_PORT) + "' by best guess." if not SERIAL_PORT: print "-----------------------------------------------------------------------------" print "WARNING: LasaurApp doesn't know what serial device to connect to!" print "Make sure the Lasersaur hardware is connectd to the USB interface." if os.name == 'nt': print "ON WINDOWS: You will also need to setup the virtual com port." print "See 'Installing Drivers': http://arduino.cc/en/Guide/Windows" print "-----------------------------------------------------------------------------" # run if args.debug: debug(True) if hasattr(sys, "_MEIPASS"): print "Data root is: " + sys._MEIPASS if args.build_and_flash: return_code = flash_upload(SERIAL_PORT, resources_dir(), FIRMWARE, HARDWARE) if return_code == 0: print "SUCCESS: Arduino appears to be flashed." else: print "ERROR: Failed to flash Arduino." else: if args.host_on_all_interfaces: run_with_callback('', NETWORK_PORT) else: run_with_callback('127.0.0.1', NETWORK_PORT)
if not SERIAL_PORT: print "-----------------------------------------------------------------------------" print "WARNING: LasaurApp doesn't know what serial device to connect to!" print "Make sure the Lasersaur hardware is connectd to the USB interface." if os.name == 'nt': print "ON WINDOWS: You will also need to setup the virtual com port." print "See 'Installing Drivers': http://arduino.cc/en/Guide/Windows" print "-----------------------------------------------------------------------------" # run if args.debug: debug(True) if hasattr(sys, "_MEIPASS"): print "Data root is: " + sys._MEIPASS if args.flash: return_code = flash_upload(SERIAL_PORT, resources_dir(), FIRMWARE, HARDWARE) if return_code == 0: print "SUCCESS: Arduino appears to be flashed." else: print "ERROR: Failed to flash Arduino." elif args.build_flash: # build buildname = "LasaurGrbl_from_src" firmware_dir = os.path.join(resources_dir(), 'firmware') source_dir = os.path.join(resources_dir(), 'firmware', 'src') return_code = build_firmware(source_dir, firmware_dir, buildname) if return_code != 0: print ret else: print "SUCCESS: firmware built." # flash