projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
altosuilib: Start creating new graph interface that takes time series data
[fw/altos]
/
altoslib
/
AltosEepromRecord.java
diff --git
a/altoslib/AltosEepromRecord.java
b/altoslib/AltosEepromRecord.java
index efcca857d9e17ba7a1429c9a48a82a64ad30de4a..1f6ade66d3e5841488ac7cc0e85ded7937b846d2 100644
(file)
--- a/
altoslib/AltosEepromRecord.java
+++ b/
altoslib/AltosEepromRecord.java
@@
-14,7
+14,6
@@
package org.altusmetrum.altoslib_11;
package org.altusmetrum.altoslib_11;
-
public abstract class AltosEepromRecord implements Comparable<AltosEepromRecord> {
AltosEepromNew eeprom;
public abstract class AltosEepromRecord implements Comparable<AltosEepromRecord> {
AltosEepromNew eeprom;
@@
-51,8
+50,12
@@
public abstract class AltosEepromRecord implements Comparable<AltosEepromRecord>
return data8(i) | (data8(i+1) << 8) | (data8(i+2) << 16) | (data8(i+3) << 24);
}
return data8(i) | (data8(i+1) << 8) | (data8(i+2) << 16) | (data8(i+3) << 24);
}
+ public boolean valid(int s) {
+ return AltosConvert.checksum(eeprom.data, s, length) == 0;
+ }
+
public boolean valid() {
public boolean valid() {
- return
AltosConvert.checksum(eeprom.data, start, length) == 0
;
+ return
valid(start)
;
}
private int cmdi() {
}
private int cmdi() {
@@
-61,6
+64,10
@@
public abstract class AltosEepromRecord implements Comparable<AltosEepromRecord>
return 1;
}
return 1;
}
+ public AltosConfigData config_data() {
+ return eeprom.config_data();
+ }
+
public int compareTo(AltosEepromRecord o) {
int cmd_diff = cmdi() - o.cmdi();
public int compareTo(AltosEepromRecord o) {
int cmd_diff = cmdi() - o.cmdi();
@@
-74,15
+81,26
@@
public abstract class AltosEepromRecord implements Comparable<AltosEepromRecord>
return start - o.start;
}
return start - o.start;
}
- public void update_state(Altos
State state
) {
+ public void update_state(Altos
FlightListener listen
) {
if (cmd() == AltosLib.AO_LOG_FLIGHT)
if (cmd() == AltosLib.AO_LOG_FLIGHT)
-
state
.set_boost_tick(tick());
+
listen
.set_boost_tick(tick());
else
else
- state.set_tick(tick());
+ listen.set_tick(tick());
+ }
+
+ public int next_start() {
+ int s = start + length;
+
+ while (s + length < eeprom.data.size()) {
+ if (valid(s))
+ return s;
+ s += length;
+ }
+ return -1;
}
public boolean hasNext() {
}
public boolean hasNext() {
- return
start + length * 2 < eeprom.data.size()
;
+ return
next_start() >= 0
;
}
public abstract AltosEepromRecord next();
}
public abstract AltosEepromRecord next();
@@
-91,5
+109,8
@@
public abstract class AltosEepromRecord implements Comparable<AltosEepromRecord>
this.eeprom = eeprom;
this.start = start;
this.length = length;
this.eeprom = eeprom;
this.start = start;
this.length = length;
+
+ while (start + length < eeprom.data.size() && !valid())
+ start += length;
}
}
}
}