projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
altos: Use #define values for ublox packet types
[fw/altos]
/
altoslib
/
AltosLog.java
diff --git
a/altoslib/AltosLog.java
b/altoslib/AltosLog.java
index 17b04970ae613c7eb514d2fd9914a29bc68ceeb7..015d9f65aa13ad28ef3aadef04bcf044becabf12 100644
(file)
--- a/
altoslib/AltosLog.java
+++ b/
altoslib/AltosLog.java
@@
-18,8
+18,8
@@
package org.altusmetrum.altoslib_2;
import java.io.*;
package org.altusmetrum.altoslib_2;
import java.io.*;
-import java.text.
ParseException
;
-import java.util.concurrent.
LinkedBlockingQueue
;
+import java.text.
*
;
+import java.util.concurrent.
*
;
/*
* This creates a thread to capture telemetry data and write it to
/*
* This creates a thread to capture telemetry data and write it to
@@
-31,9
+31,11
@@
public class AltosLog implements Runnable {
LinkedBlockingQueue<String> pending_queue;
int serial;
int flight;
LinkedBlockingQueue<String> pending_queue;
int serial;
int flight;
+ int receiver_serial;
FileWriter log_file;
Thread log_thread;
AltosFile file;
FileWriter log_file;
Thread log_thread;
AltosFile file;
+ AltosLink link;
private void close_log_file() {
if (log_file != null) {
private void close_log_file() {
if (log_file != null) {
@@
-78,24
+80,24
@@
public class AltosLog implements Runnable {
public void run () {
try {
public void run () {
try {
- AltosState state = null;
+ AltosState state = new AltosState();
+ AltosConfigData receiver_config = link.config_data();
+ state.set_receiver_serial(receiver_config.serial);
for (;;) {
AltosLine line = input_queue.take();
if (line.line == null)
continue;
try {
for (;;) {
AltosLine line = input_queue.take();
if (line.line == null)
continue;
try {
- AltosTelemetry telem = new AltosTelemetryLegacy(line.line);
- if (state != null)
- state = state.clone();
- else
- state = new AltosState();
+ AltosTelemetry telem = AltosTelemetry.parse(line.line);
+ state = state.clone();
telem.update_state(state);
if (state.serial != serial || state.flight != flight || log_file == null)
{
close_log_file();
serial = state.serial;
flight = state.flight;
telem.update_state(state);
if (state.serial != serial || state.flight != flight || log_file == null)
{
close_log_file();
serial = state.serial;
flight = state.flight;
- open(state);
+ if (state.serial != AltosLib.MISSING && state.flight != AltosLib.MISSING)
+ open(state);
}
} catch (ParseException pe) {
} catch (AltosCRCException ce) {
}
} catch (ParseException pe) {
} catch (AltosCRCException ce) {
@@
-108,6
+110,7
@@
public class AltosLog implements Runnable {
pending_queue.put(line.line);
}
} catch (InterruptedException ie) {
pending_queue.put(line.line);
}
} catch (InterruptedException ie) {
+ } catch (TimeoutException te) {
} catch (IOException ie) {
}
close();
} catch (IOException ie) {
}
close();
@@
-119,6
+122,7
@@
public class AltosLog implements Runnable {
link.add_monitor(input_queue);
serial = -1;
flight = -1;
link.add_monitor(input_queue);
serial = -1;
flight = -1;
+ this.link = link;
log_file = null;
log_thread = new Thread(this);
log_thread.start();
log_file = null;
log_thread = new Thread(this);
log_thread.start();