projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
altoslib: Start moving eeprom download logic to altoslib
[fw/altos]
/
altoslib
/
AltosEepromFile.java
diff --git
a/altoslib/AltosEepromFile.java
b/altoslib/AltosEepromFile.java
index bcc7171ee91a4c9dd77d00aae042fbaf91602ee9..60ab2573cc70e8021a638d19ca6fce06b64838b6 100644
(file)
--- a/
altoslib/AltosEepromFile.java
+++ b/
altoslib/AltosEepromFile.java
@@
-15,7
+15,7
@@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_
1
;
+package org.altusmetrum.altoslib_
2
;
import java.io.*;
import java.util.*;
import java.io.*;
import java.util.*;
@@
-57,6
+57,7
@@
public class AltosEepromFile extends AltosStateIterable {
AltosEepromIterable headers;
AltosEepromIterable body;
AltosEepromIterable headers;
AltosEepromIterable body;
+ AltosState start;
public void write_comments(PrintStream out) {
headers.write(out);
public void write_comments(PrintStream out) {
headers.write(out);
@@
-70,42
+71,53
@@
public class AltosEepromFile extends AltosStateIterable {
public AltosEepromFile(FileInputStream input) {
headers = new AltosEepromIterable(AltosEepromHeader.read(input));
public AltosEepromFile(FileInputStream input) {
headers = new AltosEepromIterable(AltosEepromHeader.read(input));
- AltosState state = headers.state();
+ start = headers.state();
+ start.set_state(AltosLib.ao_flight_pad);
- switch (sta
te
.log_format) {
+ switch (sta
rt
.log_format) {
case AltosLib.AO_LOG_FORMAT_FULL:
body = new AltosEepromIterable(AltosEepromTM.read(input));
break;
case AltosLib.AO_LOG_FORMAT_TINY:
case AltosLib.AO_LOG_FORMAT_FULL:
body = new AltosEepromIterable(AltosEepromTM.read(input));
break;
case AltosLib.AO_LOG_FORMAT_TINY:
+ body = new AltosEepromIterable(AltosEepromTm.read(input));
+ break;
case AltosLib.AO_LOG_FORMAT_TELEMETRY:
case AltosLib.AO_LOG_FORMAT_TELESCIENCE:
case AltosLib.AO_LOG_FORMAT_TELEMEGA:
case AltosLib.AO_LOG_FORMAT_TELEMETRY:
case AltosLib.AO_LOG_FORMAT_TELESCIENCE:
case AltosLib.AO_LOG_FORMAT_TELEMEGA:
+ body = new AltosEepromIterable(AltosEepromMega.read(input));
+ break;
+ case AltosLib.AO_LOG_FORMAT_TELEMETRUM:
+ body = new AltosEepromIterable(AltosEepromMetrum2.read(input));
break;
case AltosLib.AO_LOG_FORMAT_TELEMINI:
case AltosLib.AO_LOG_FORMAT_EASYMINI:
body = new AltosEepromIterable(AltosEepromMini.read(input));
break;
break;
case AltosLib.AO_LOG_FORMAT_TELEMINI:
case AltosLib.AO_LOG_FORMAT_EASYMINI:
body = new AltosEepromIterable(AltosEepromMini.read(input));
break;
+ default:
+ body = new AltosEepromIterable(new LinkedList<AltosEeprom>());
+ break;
}
}
- }
- int boost_tick (AltosState start) {
+ /* Find boost tick */
AltosState state = start.clone();
for (AltosEeprom eeprom : body) {
eeprom.update_state(state);
AltosState state = start.clone();
for (AltosEeprom eeprom : body) {
eeprom.update_state(state);
- if (state.state >= AltosLib.ao_flight_boost)
- return state.tick;
+ state.finish_update();
+ if (state.state >= AltosLib.ao_flight_boost) {
+ start.set_boost_tick(state.tick);
+ break;
+ }
}
}
- return 0;
}
public Iterator<AltosState> iterator() {
}
public Iterator<AltosState> iterator() {
+ AltosState state = start.clone();
+ Iterator<AltosEeprom> i = body.iterator();
- AltosState state = headers.state();
- Iterator<AltosEeprom> i = body.iterator();
-
- while (i.hasNext() && !state.valid())
+ while (i.hasNext() && !state.valid()) {
i.next().update_state(state);
i.next().update_state(state);
- state.set_boost_tick(boost_tick(state));
+ state.finish_update();
+ }
return new AltosEepromIterator(state, i);
}
}
\ No newline at end of file
return new AltosEepromIterator(state, i);
}
}
\ No newline at end of file