diff options
author | Bdale Garbee <bdale@gag.com> | 2015-02-07 22:39:54 -0700 |
---|---|---|
committer | Bdale Garbee <bdale@gag.com> | 2015-02-07 22:39:54 -0700 |
commit | f766a457323268857b3f2dfc7f42427437b71cb7 (patch) | |
tree | 8afc8a661d682fc34b16fc0b1b44f2844d34f336 /altoslib/AltosEepromDownload.java | |
parent | db51224af01731e7323f6f696a7397d64eb80b92 (diff) | |
parent | e2cefd8593d269ce603aaf33f4a53a5c2dcb3350 (diff) |
Merge branch 'branch-1.6' into debian
Conflicts:
ChangeLog
altoslib/AltosTelemetryReader.java
configure.ac
Diffstat (limited to 'altoslib/AltosEepromDownload.java')
-rw-r--r-- | altoslib/AltosEepromDownload.java | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/altoslib/AltosEepromDownload.java b/altoslib/AltosEepromDownload.java index a448ee64..9598bd93 100644 --- a/altoslib/AltosEepromDownload.java +++ b/altoslib/AltosEepromDownload.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_5; +package org.altusmetrum.altoslib_6; import java.io.*; import java.util.*; @@ -75,7 +75,8 @@ public class AltosEepromDownload implements Runnable { } boolean done; - boolean start; + int prev_state; + int state_block; void LogEeprom(AltosEeprom r) throws IOException { if (r.cmd != AltosLib.AO_LOG_INVALID) { @@ -140,7 +141,6 @@ public class AltosEepromDownload implements Runnable { state = new AltosState(); done = false; - start = true; if (flights.config_data.serial < 0) throw new IOException("no serial number found"); @@ -154,12 +154,8 @@ public class AltosEepromDownload implements Runnable { /* Now scan the eeprom, reading blocks of data and converting to .eeprom file form */ state_block = log.start_block; + prev_state = AltosLib.ao_flight_startup; for (block = log.start_block; !done && block < log.end_block; block++) { - monitor.set_value(state.state_name(), - state.state, - block - state_block, - block - log.start_block); - AltosEepromChunk eechunk = new AltosEepromChunk(link, block, block == log.start_block); /* @@ -177,6 +173,16 @@ public class AltosEepromDownload implements Runnable { } CaptureEeprom (eechunk, log_format); + + if (state.state != prev_state && state.state != AltosLib.ao_flight_invalid) { + state_block = block; + prev_state = state.state; + } + + monitor.set_value(state.state_name(), + state.state, + block - state_block, + block - log.start_block); } CheckFile(true); if (eeprom_file != null) { @@ -254,7 +260,10 @@ public class AltosEepromDownload implements Runnable { flights = given_flights; success = false; - monitor.set_states(AltosLib.ao_flight_boost, AltosLib.ao_flight_landed); + if (flights.config_data.log_has_state()) + monitor.set_states(AltosLib.ao_flight_boost, AltosLib.ao_flight_landed); + else + monitor.set_states(AltosLib.ao_flight_invalid, AltosLib.ao_flight_invalid); monitor.start(); } |