public boolean uploadUsingProgrammer(String buildPath, String className) throws Exception { TargetPlatform targetPlatform = BaseNoGui.getTargetPlatform(); String programmer = PreferencesData.get("programmer"); if (programmer.contains(":")) { String[] split = programmer.split(":", 2); targetPlatform = BaseNoGui.getCurrentTargetPlatformFromPackage(split[0]); programmer = split[1]; } PreferencesMap prefs = PreferencesData.getMap(); prefs.putAll(BaseNoGui.getBoardPreferences()); PreferencesMap programmerPrefs = targetPlatform.getProgrammer(programmer); if (programmerPrefs == null) throw new RunnerException( _("Please select a programmer from Tools->Programmer menu")); prefs.putAll(programmerPrefs); prefs.putAll(targetPlatform.getTool(prefs.getOrExcept("program.tool"))); prefs.put("build.path", buildPath); prefs.put("build.project_name", className); if (verbose) prefs.put("program.verbose", prefs.getOrExcept("program.params.verbose")); else prefs.put("program.verbose", prefs.getOrExcept("program.params.quiet")); try { // if (prefs.get("program.disable_flushing") == null // || prefs.get("program.disable_flushing").toLowerCase().equals("false")) // { // flushSerialBuffer(); // } String pattern = prefs.getOrExcept("program.pattern"); String[] cmd = StringReplacer.formatAndSplit(pattern, prefs, true); return executeUploadCommand(cmd); } catch (RunnerException e) { throw e; } catch (Exception e) { throw new RunnerException(e); } }
public boolean burnBootloader() throws Exception { TargetPlatform targetPlatform = BaseNoGui.getTargetPlatform(); // Find preferences for the selected programmer PreferencesMap programmerPrefs; String programmer = PreferencesData.get("programmer"); if (programmer.contains(":")) { String[] split = programmer.split(":", 2); TargetPlatform platform = BaseNoGui.getCurrentTargetPlatformFromPackage(split[0]); programmer = split[1]; programmerPrefs = platform.getProgrammer(programmer); } else { programmerPrefs = targetPlatform.getProgrammer(programmer); } if (programmerPrefs == null) throw new RunnerException( _("Please select a programmer from Tools->Programmer menu")); // Build configuration for the current programmer PreferencesMap prefs = PreferencesData.getMap(); prefs.putAll(BaseNoGui.getBoardPreferences()); prefs.putAll(programmerPrefs); // Create configuration for bootloader tool PreferencesMap toolPrefs = new PreferencesMap(); String tool = prefs.getOrExcept("bootloader.tool"); if (tool.contains(":")) { String[] split = tool.split(":", 2); TargetPlatform platform = BaseNoGui.getCurrentTargetPlatformFromPackage(split[0]); tool = split[1]; toolPrefs.putAll(platform.getTool(tool)); if (toolPrefs.size() == 0) throw new RunnerException(I18n.format(_("Could not find tool {0} from package {1}"), tool, split[0])); } toolPrefs.putAll(targetPlatform.getTool(tool)); if (toolPrefs.size() == 0) throw new RunnerException(I18n.format(_("Could not find tool {0}"), tool)); // Merge tool with global configuration prefs.putAll(toolPrefs); if (verbose) { prefs.put("erase.verbose", prefs.getOrExcept("erase.params.verbose")); prefs.put("bootloader.verbose", prefs.getOrExcept("bootloader.params.verbose")); } else { prefs.put("erase.verbose", prefs.getOrExcept("erase.params.quiet")); prefs.put("bootloader.verbose", prefs.getOrExcept("bootloader.params.quiet")); } try { String pattern = prefs.getOrExcept("erase.pattern"); String[] cmd = StringReplacer.formatAndSplit(pattern, prefs, true); if (!executeUploadCommand(cmd)) return false; pattern = prefs.getOrExcept("bootloader.pattern"); cmd = StringReplacer.formatAndSplit(pattern, prefs, true); return executeUploadCommand(cmd); } catch (RunnerException e) { throw e; } catch (Exception e) { throw new RunnerException(e); } }