projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
altosui: Add a bunch more site locations
[fw/altos]
/
altosui
/
AltosEepromList.java
diff --git
a/altosui/AltosEepromList.java
b/altosui/AltosEepromList.java
index ac4a29de394ec461788915d16fcf05fbbdbaaa4e..185fec9118a146d228367b8ff813a3ac36383f16 100644
(file)
--- a/
altosui/AltosEepromList.java
+++ b/
altosui/AltosEepromList.java
@@
-30,6
+30,12
@@
import java.util.concurrent.*;
import libaltosJNI.*;
import libaltosJNI.*;
+/*
+ * Temporary structure to hold the list of stored flights;
+ * each of these will be queried in turn to generate more
+ * complete information
+ */
+
class AltosEepromFlight {
int flight;
int start;
class AltosEepromFlight {
int flight;
int start;
@@
-42,10
+48,16
@@
class AltosEepromFlight {
}
}
}
}
+/*
+ * Construct a list of flights available in a connected device
+ */
+
public class AltosEepromList extends ArrayList<AltosEepromLog> {
AltosConfigData config_data;
public class AltosEepromList extends ArrayList<AltosEepromLog> {
AltosConfigData config_data;
- public AltosEepromList (AltosSerial serial_line, boolean remote) throws IOException, InterruptedException, TimeoutException {
+ public AltosEepromList (AltosSerial serial_line, boolean remote)
+ throws IOException, InterruptedException, TimeoutException
+ {
try {
if (remote)
serial_line.start_remote();
try {
if (remote)
serial_line.start_remote();
@@
-54,7
+66,13
@@
public class AltosEepromList extends ArrayList<AltosEepromLog> {
throw new IOException("no serial number found");
ArrayList<AltosEepromFlight> flights = new ArrayList<AltosEepromFlight>();
throw new IOException("no serial number found");
ArrayList<AltosEepromFlight> flights = new ArrayList<AltosEepromFlight>();
+
if (config_data.flight_log_max != 0) {
if (config_data.flight_log_max != 0) {
+
+ /* Devices with newer firmware will support the 'l'
+ * command which will list the region of storage
+ * occupied by each available flight
+ */
serial_line.printf("l\n");
for (;;) {
String line = serial_line.get_reply(5000);
serial_line.printf("l\n");
for (;;) {
String line = serial_line.get_reply(5000);
@@
-65,7
+83,6
@@
public class AltosEepromList extends ArrayList<AltosEepromLog> {
if (line.contains("Syntax"))
continue;
String[] tokens = line.split("\\s+");
if (line.contains("Syntax"))
continue;
String[] tokens = line.split("\\s+");
- System.out.printf("got line %s (%d tokens)\n", line, tokens.length);
if (tokens.length < 6)
break;
if (tokens.length < 6)
break;
@@
-77,27
+94,32
@@
public class AltosEepromList extends ArrayList<AltosEepromLog> {
start = AltosParse.parse_hex(tokens[3]);
if (tokens[4].equals("end"))
end = AltosParse.parse_hex(tokens[5]);
start = AltosParse.parse_hex(tokens[3]);
if (tokens[4].equals("end"))
end = AltosParse.parse_hex(tokens[5]);
- System.out.printf("parsed flight %d %x %x\n", flight, start, end);
if (flight > 0 && start >= 0 && end > 0)
flights.add(new AltosEepromFlight(flight, start, end));
} catch (ParseException pe) { System.out.printf("Parse error %s\n", pe.toString()); }
}
} else {
if (flight > 0 && start >= 0 && end > 0)
flights.add(new AltosEepromFlight(flight, start, end));
} catch (ParseException pe) { System.out.printf("Parse error %s\n", pe.toString()); }
}
} else {
+
+ /* Older devices will hold only a single
+ * flight. This also assumes that any older
+ * device will have a 1MB flash device
+ */
flights.add(new AltosEepromFlight(0, 0, 0xfff));
}
flights.add(new AltosEepromFlight(0, 0, 0xfff));
}
+
+ /* With the list of flights collected, collect more complete
+ * information on them by reading the first block or two of
+ * data. This will add GPS coordinates and a date. For older
+ * firmware, this will also extract the flight number.
+ */
for (AltosEepromFlight flight : flights) {
for (AltosEepromFlight flight : flights) {
- System.out.printf("Scanning flight %d %x %x\n", flight.flight, flight.start, flight.end);
add(new AltosEepromLog(serial_line, config_data.serial,
add(new AltosEepromLog(serial_line, config_data.serial,
- flight.start, flight.end));
+ flight.
flight, flight.
start, flight.end));
}
} finally {
if (remote)
serial_line.stop_remote();
serial_line.flush_output();
}
}
} finally {
if (remote)
serial_line.stop_remote();
serial_line.flush_output();
}
- for (int i = 0; i < size(); i++) {
- AltosEepromLog l = get(i);
- System.out.printf("Found flight %d at %x - %x\n", l.flight, l.start_block, l.end_block);
- }
}
}
\ No newline at end of file
}
}
\ No newline at end of file