diff options
| author | Bdale Garbee <bdale@gag.com> | 2017-12-11 21:37:48 -0700 | 
|---|---|---|
| committer | Bdale Garbee <bdale@gag.com> | 2017-12-11 21:37:48 -0700 | 
| commit | ea0aa97fb93e669868a6f2c49c5d4b46e7615b1f (patch) | |
| tree | f16b9a9ccd8b4a7bcde7d5cc64e6f0a52c4f3436 /altoslib/AltosEepromDownload.java | |
| parent | 216ea6388a75c46891dc4687a2eb0c97dc63b136 (diff) | |
| parent | 9adf8b23aac8256f230b10adcab9dd323266caaa (diff) | |
Merge branch 'master' into branch-1.8
Diffstat (limited to 'altoslib/AltosEepromDownload.java')
| -rw-r--r-- | altoslib/AltosEepromDownload.java | 43 | 
1 files changed, 33 insertions, 10 deletions
diff --git a/altoslib/AltosEepromDownload.java b/altoslib/AltosEepromDownload.java index 33f0dd17..547b523f 100644 --- a/altoslib/AltosEepromDownload.java +++ b/altoslib/AltosEepromDownload.java @@ -40,6 +40,7 @@ class AltosEepromNameData extends AltosDataListener {  	public void set_main_voltage(double volts) { }  	public void set_gps(AltosGPS gps) { +		super.set_gps(gps);  		if (gps != null &&  		    gps.year != AltosLib.MISSING &&  		    gps.month != AltosLib.MISSING && @@ -199,25 +200,47 @@ public class AltosEepromDownload implements Runnable {  		AltosFile f = MakeFile(flights.config_data.serial, log.flight, name_data); -		monitor.set_filename(f.toString()); +		log.set_file(f); -		FileWriter w = new FileWriter(f); +		boolean do_write = true; -		eeprom.write(w); -		w.close(); +		if (f.exists()) +			do_write = monitor.check_overwrite(f); + +		if (do_write) { +			FileWriter w = new FileWriter(f); + +			eeprom.write(w); +			w.close(); +		} + +		if (eeprom.errors != 0) +			throw new ParseException(String.format("%d CRC Errors", eeprom.errors), 0); +	} + +	static String label(int flight) { +		if (flight < 0) +			return "Corrupt"; +		else +			return "Flight"; +	} + +	static int flight(int flight) { +		if (flight < 0) +			return -flight; +		return flight;  	}  	public void run () {  		boolean success = false;  		try { -			boolean	failed = false;  			if (remote)  				link.start_remote();  			for (AltosEepromLog log : flights) {  				parse_errors = null; -				if (log.selected) { +				if (log.download_selected) {  					monitor.reset();  					try {  						CaptureLog(log); @@ -225,16 +248,16 @@ public class AltosEepromDownload implements Runnable {  						LogError(e.getMessage());  					}  				} +				success = true;  				if (parse_errors != null) { -					failed = true; -					monitor.show_message(String.format("Flight %d download error. Valid log data saved\n%s", -									   log.flight, +					monitor.show_message(String.format("%s %d download error. Valid log data saved\n%s", +									   label(log.flight), +									   flight(log.flight),  									   parse_errors),  							     link.name,  							     AltosEepromMonitor.WARNING_MESSAGE);  				}  			} -			success = !failed;  		} catch (IOException ee) {  			monitor.show_message(ee.getLocalizedMessage(),  					     link.name,  | 
