projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
altosui: discard invalid lines while reading Eeprom flight data
[fw/altos]
/
ao-tools
/
altosui
/
AltosEepromDownload.java
diff --git
a/ao-tools/altosui/AltosEepromDownload.java
b/ao-tools/altosui/AltosEepromDownload.java
index 756b82d188d552308a857b274d71413b0fd319c0..6dbbd3ebb8c3477e8b41250cb39ab529a501272e 100644
(file)
--- a/
ao-tools/altosui/AltosEepromDownload.java
+++ b/
ao-tools/altosui/AltosEepromDownload.java
@@
-31,6
+31,7
@@
import java.util.concurrent.LinkedBlockingQueue;
import altosui.Altos;
import altosui.AltosSerial;
import altosui.AltosSerialMonitor;
import altosui.Altos;
import altosui.AltosSerial;
import altosui.AltosSerialMonitor;
+import altosui.AltosRecord;
import altosui.AltosTelemetry;
import altosui.AltosState;
import altosui.AltosDeviceDialog;
import altosui.AltosTelemetry;
import altosui.AltosState;
import altosui.AltosDeviceDialog;
@@
-83,7
+84,7
@@
public class AltosEepromDownload implements Runnable {
}
JFrame frame;
}
JFrame frame;
-
altos_device
device;
+
AltosDevice
device;
AltosSerial serial_line;
boolean remote;
Thread eeprom_thread;
AltosSerial serial_line;
boolean remote;
Thread eeprom_thread;
@@
-103,7
+104,7
@@
public class AltosEepromDownload implements Runnable {
AltosFile eeprom_name;
LinkedList<String> eeprom_pending = new LinkedList<String>();
AltosFile eeprom_name;
LinkedList<String> eeprom_pending = new LinkedList<String>();
- serial_line.printf("v\n");
+ serial_line.printf("
\nc s\n
v\n");
/* Pull the serial number out of the version information */
/* Pull the serial number out of the version information */
@@
-113,12
+114,13
@@
public class AltosEepromDownload implements Runnable {
if (line.startsWith("serial-number")) {
try {
serial = Integer.parseInt(line.substring(13).trim());
if (line.startsWith("serial-number")) {
try {
serial = Integer.parseInt(line.substring(13).trim());
- eeprom_pending.add(String.format("%s\n", line));
} catch (NumberFormatException ne) {
serial = 0;
}
}
} catch (NumberFormatException ne) {
serial = 0;
}
}
+ eeprom_pending.add(String.format("%s\n", line));
+
/* signals the end of the version info */
if (line.startsWith("software-version"))
break;
/* signals the end of the version info */
if (line.startsWith("software-version"))
break;
@@
-140,6
+142,7
@@
public class AltosEepromDownload implements Runnable {
if (values == null) {
System.out.printf("invalid line: %s\n", line);
if (values == null) {
System.out.printf("invalid line: %s\n", line);
+ continue;
} else if (values[0] != addr) {
System.out.printf("data address out of sync at 0x%x\n",
block * 256 + values[0]);
} else if (values[0] != addr) {
System.out.printf("data address out of sync at 0x%x\n",
block * 256 + values[0]);
@@
-221,9
+224,10
@@
public class AltosEepromDownload implements Runnable {
public void run () {
if (remote) {
public void run () {
if (remote) {
- serial_line.printf("m 0\n");
serial_line.set_channel(AltosPreferences.channel());
serial_line.set_channel(AltosPreferences.channel());
- serial_line.printf("p\n");
+ serial_line.set_callsign(AltosPreferences.callsign());
+ serial_line.printf("p\nE 0\n");
+ serial_line.flush_input();
}
monitor = new AltosEepromMonitor(frame, Altos.ao_flight_boost, Altos.ao_flight_landed);
}
monitor = new AltosEepromMonitor(frame, Altos.ao_flight_boost, Altos.ao_flight_landed);
@@
-244,12
+248,13
@@
public class AltosEepromDownload implements Runnable {
if (remote)
serial_line.printf("~");
monitor.done();
if (remote)
serial_line.printf("~");
monitor.done();
+ serial_line.flush_output();
serial_line.close();
}
public AltosEepromDownload(JFrame given_frame) {
frame = given_frame;
serial_line.close();
}
public AltosEepromDownload(JFrame given_frame) {
frame = given_frame;
- device = AltosDeviceDialog.show(frame,
null
);
+ device = AltosDeviceDialog.show(frame,
AltosDevice.Any
);
serial_line = new AltosSerial();
remote = false;
serial_line = new AltosSerial();
remote = false;
@@
-257,7
+262,7
@@
public class AltosEepromDownload implements Runnable {
if (device != null) {
try {
serial_line.open(device);
if (device != null) {
try {
serial_line.open(device);
- if (!device.
getProduct().startsWith("TeleMetrum"
))
+ if (!device.
matchProduct(AltosDevice.TeleMetrum
))
remote = true;
eeprom_thread = new Thread(this);
eeprom_thread.start();
remote = true;
eeprom_thread = new Thread(this);
eeprom_thread.start();