import libaltosJNI.*;
+/*
+ * Extract a bit of information from an eeprom-stored flight log.
+ */
+
public class AltosEepromLog {
int serial;
boolean has_flight;
int hour, minute, second;
double lat, lon;
+ boolean download;
+ boolean delete;
+
public AltosEepromLog(AltosSerial serial_line, int in_serial,
int in_start_block, int in_end_block)
throws InterruptedException, TimeoutException {
end_block = in_end_block;
serial = in_serial;
+ /*
+ * By default, request that every log be downloaded but not deleted
+ */
+ download = true;
+ delete = false;
+ /*
+ * Only look in the first two blocks so that this
+ * process doesn't take a long time
+ */
if (in_end_block > in_start_block + 2)
in_end_block = in_start_block + 2;
for (block = in_start_block; block < in_end_block; block++) {
- AltosEepromBlock eeblock = new AltosEepromBlock(serial_line, block);
+ AltosEepromChunk eechunk = new AltosEepromChunk(serial_line, block);
+
+ if (block == in_start_block) {
+ if (eechunk.data(0) != Altos.AO_LOG_FLIGHT) {
+ flight = eechunk.data16(0);
+ has_flight = true;
+ break;
+ }
+ }
+ AltosEepromBlock eeblock = new AltosEepromBlock(eechunk);
if (eeblock.has_flight) {
flight = eeblock.flight;
has_flight = true;
if (has_gps && has_flight)
break;
}
- System.out.printf("Serial %d start block %d end block %d\n",
- serial, start_block, end_block);
- if (has_flight)
- System.out.printf("Flight %d\n", flight);
- if (has_gps)
- System.out.printf("%d-%d-%d %d:%02d:%02d Lat %f Lon %f\n",
- year, month, day, hour, minute, second, lat, lon);
}
}