summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2011-04-19 15:29:39 -0700
committerKeith Packard <keithp@keithp.com>2011-04-19 15:29:39 -0700
commitd41edb3384b6336f3482e61b0c9f9400a8b4f519 (patch)
tree9741801892421f6bff7106cb0c949af4b72555dd
parent44fb71ca3e5bccd5f601fc5a2d5da7292050b1d6 (diff)
altosui: Make flight data download work through TeleBT
This required flushing input before reading data blocks and adjusting some delays. Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r--altosui/AltosEepromChunk.java1
-rw-r--r--altosui/AltosEepromList.java2
-rw-r--r--altosui/AltosEepromLog.java7
-rw-r--r--altosui/libaltos/libaltos.c2
4 files changed, 7 insertions, 5 deletions
diff --git a/altosui/AltosEepromChunk.java b/altosui/AltosEepromChunk.java
index 8eec407d..1e42077f 100644
--- a/altosui/AltosEepromChunk.java
+++ b/altosui/AltosEepromChunk.java
@@ -59,6 +59,7 @@ public class AltosEepromChunk {
data = new int[chunk_size];
address = block * chunk_size;
+ serial_line.flush_input();
serial_line.printf("e %x\n", block);
for (offset = 0; offset < chunk_size; offset += per_line) {
diff --git a/altosui/AltosEepromList.java b/altosui/AltosEepromList.java
index 575c0bc2..185fec91 100644
--- a/altosui/AltosEepromList.java
+++ b/altosui/AltosEepromList.java
@@ -114,7 +114,7 @@ public class AltosEepromList extends ArrayList<AltosEepromLog> {
*/
for (AltosEepromFlight flight : flights) {
add(new AltosEepromLog(serial_line, config_data.serial,
- flight.start, flight.end));
+ flight.flight, flight.start, flight.end));
}
} finally {
if (remote)
diff --git a/altosui/AltosEepromLog.java b/altosui/AltosEepromLog.java
index f7fb39e1..0cf420d9 100644
--- a/altosui/AltosEepromLog.java
+++ b/altosui/AltosEepromLog.java
@@ -47,7 +47,8 @@ public class AltosEepromLog {
boolean delete;
public AltosEepromLog(AltosSerial serial_line, int in_serial,
- int in_start_block, int in_end_block)
+ int in_flight, int in_start_block,
+ int in_end_block)
throws InterruptedException, TimeoutException {
int block;
@@ -73,8 +74,8 @@ public class AltosEepromLog {
AltosEepromChunk eechunk = new AltosEepromChunk(serial_line, block);
if (block == in_start_block) {
- if (eechunk.data(0) != Altos.AO_LOG_FLIGHT) {
- flight = eechunk.data16(0);
+ if (eechunk.data16(0) == in_flight) {
+ flight = in_flight;
has_flight = true;
break;
}
diff --git a/altosui/libaltos/libaltos.c b/altosui/libaltos/libaltos.c
index c5bcf900..5e507cdf 100644
--- a/altosui/libaltos/libaltos.c
+++ b/altosui/libaltos/libaltos.c
@@ -698,7 +698,7 @@ altos_bt_open(struct altos_bt_device *device)
perror("connect");
goto no_link;
}
- sleep(2);
+ sleep(1);
#ifdef USE_POLL
pipe(file->pipe);