summaryrefslogtreecommitdiff
path: root/altosdroid/src
diff options
context:
space:
mode:
authorBdale Garbee <bdale@gag.com>2015-02-07 22:39:54 -0700
committerBdale Garbee <bdale@gag.com>2015-02-07 22:39:54 -0700
commitf766a457323268857b3f2dfc7f42427437b71cb7 (patch)
tree8afc8a661d682fc34b16fc0b1b44f2844d34f336 /altosdroid/src
parentdb51224af01731e7323f6f696a7397d64eb80b92 (diff)
parente2cefd8593d269ce603aaf33f4a53a5c2dcb3350 (diff)
Merge branch 'branch-1.6' into debian
Conflicts: ChangeLog altoslib/AltosTelemetryReader.java configure.ac
Diffstat (limited to 'altosdroid/src')
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/AltosBluetooth.java2
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java7
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java2
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferencesBackend.java18
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidTab.java2
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java2
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/TabAscent.java4
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java4
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/TabLanded.java6
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java9
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java4
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/TelemetryLogger.java2
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java49
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java17
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/TelemetryState.java2
15 files changed, 61 insertions, 69 deletions
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosBluetooth.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosBluetooth.java
index 51ef5e94..3740f55d 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosBluetooth.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosBluetooth.java
@@ -31,7 +31,7 @@ import android.os.Handler;
//import android.os.Message;
import android.util.Log;
-import org.altusmetrum.altoslib_5.*;
+import org.altusmetrum.altoslib_6.*;
public class AltosBluetooth extends AltosLink {
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java
index f6cceac9..53963f25 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java
@@ -52,7 +52,7 @@ import android.widget.Toast;
import android.app.AlertDialog;
import android.location.Location;
-import org.altusmetrum.altoslib_5.*;
+import org.altusmetrum.altoslib_6.*;
public class AltosDroid extends FragmentActivity implements AltosUnitsListener {
// Debugging
@@ -337,7 +337,10 @@ public class AltosDroid extends FragmentActivity implements AltosUnitsListener {
}
if (saved_state == null || state.flight != saved_state.flight) {
Log.d(TAG, "update flight");
- mFlightView.setText(String.format("%d", state.flight));
+ if (state.flight == AltosLib.MISSING)
+ mFlightView.setText("");
+ else
+ mFlightView.setText(String.format("%d", state.flight));
}
if (saved_state == null || state.state != saved_state.state) {
Log.d(TAG, "update state");
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java
index 9cef1319..7ab70147 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java
@@ -17,7 +17,7 @@
package org.altusmetrum.AltosDroid;
import android.content.Context;
-import org.altusmetrum.altoslib_5.*;
+import org.altusmetrum.altoslib_6.*;
public class AltosDroidPreferences extends AltosPreferences {
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferencesBackend.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferencesBackend.java
index be41ae7c..bc5300fd 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferencesBackend.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferencesBackend.java
@@ -22,8 +22,9 @@ import java.util.Map;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Environment;
+import android.util.*;
-import org.altusmetrum.altoslib_5.*;
+import org.altusmetrum.altoslib_6.*;
public class AltosDroidPreferencesBackend implements AltosPreferencesBackend {
public final static String NAME = "org.altusmetrum.AltosDroid";
@@ -71,6 +72,16 @@ public class AltosDroidPreferencesBackend implements AltosPreferencesBackend {
return prefs.getString(key, def);
}
+ public byte[] getBytes(String key, byte[] def) {
+ String save = prefs.getString(key, null);
+
+ if (save == null)
+ return def;
+
+ byte[] bytes = Base64.decode(save, Base64.DEFAULT);
+ return bytes;
+ }
+
public void putBoolean(String key, boolean value) {
editor.putBoolean(key, value);
}
@@ -87,6 +98,11 @@ public class AltosDroidPreferencesBackend implements AltosPreferencesBackend {
editor.putString(key, value);
}
+ public void putBytes(String key, byte[] bytes) {
+ String save = Base64.encodeToString(bytes, Base64.DEFAULT);
+ editor.putString(key, save);
+ }
+
public void remove(String key) {
editor.remove(key);
}
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidTab.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidTab.java
index 8e625da6..cbb20045 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidTab.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidTab.java
@@ -17,7 +17,7 @@
package org.altusmetrum.AltosDroid;
-import org.altusmetrum.altoslib_5.*;
+import org.altusmetrum.altoslib_6.*;
import android.location.Location;
import android.app.Activity;
import android.graphics.Color;
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java
index 969992d3..2d32dc07 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java
@@ -21,7 +21,7 @@ package org.altusmetrum.AltosDroid;
import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.OnInitListener;
-import org.altusmetrum.altoslib_5.*;
+import org.altusmetrum.altoslib_6.*;
public class AltosVoice {
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabAscent.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabAscent.java
index fa4e3c8b..23de9622 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/TabAscent.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabAscent.java
@@ -17,7 +17,7 @@
package org.altusmetrum.AltosDroid;
-import org.altusmetrum.altoslib_5.*;
+import org.altusmetrum.altoslib_6.*;
import android.app.Activity;
import android.os.Bundle;
@@ -101,7 +101,7 @@ public class TabAscent extends AltosDroidTab {
if (state.gps != null) {
mLatitudeView.setText(AltosDroid.pos(state.gps.lat, "N", "S"));
- mLongitudeView.setText(AltosDroid.pos(state.gps.lon, "W", "E"));
+ mLongitudeView.setText(AltosDroid.pos(state.gps.lon, "E", "W"));
} else {
mLatitudeView.setText("");
mLongitudeView.setText("");
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java
index 28068666..4ec6f409 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java
@@ -17,7 +17,7 @@
package org.altusmetrum.AltosDroid;
-import org.altusmetrum.altoslib_5.*;
+import org.altusmetrum.altoslib_6.*;
import android.app.Activity;
import android.os.Bundle;
@@ -110,7 +110,7 @@ public class TabDescent extends AltosDroidTab {
}
if (state.gps != null) {
mLatitudeView.setText(AltosDroid.pos(state.gps.lat, "N", "S"));
- mLongitudeView.setText(AltosDroid.pos(state.gps.lon, "W", "E"));
+ mLongitudeView.setText(AltosDroid.pos(state.gps.lon, "E", "W"));
}
mApogeeVoltageView.setText(AltosDroid.number("%4.2f V", state.apogee_voltage));
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabLanded.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabLanded.java
index b257b936..4c69d869 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/TabLanded.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabLanded.java
@@ -17,7 +17,7 @@
package org.altusmetrum.AltosDroid;
-import org.altusmetrum.altoslib_5.*;
+import org.altusmetrum.altoslib_6.*;
import android.app.Activity;
import android.os.Bundle;
@@ -82,12 +82,12 @@ public class TabLanded extends AltosDroidTab {
}
if (state != null && state.gps != null) {
mTargetLatitudeView.setText(AltosDroid.pos(state.gps.lat, "N", "S"));
- mTargetLongitudeView.setText(AltosDroid.pos(state.gps.lon, "W", "E"));
+ mTargetLongitudeView.setText(AltosDroid.pos(state.gps.lon, "E", "W"));
}
if (receiver != null) {
mReceiverLatitudeView.setText(AltosDroid.pos(receiver.getLatitude(), "N", "S"));
- mReceiverLongitudeView.setText(AltosDroid.pos(receiver.getLongitude(), "W", "E"));
+ mReceiverLongitudeView.setText(AltosDroid.pos(receiver.getLongitude(), "E", "W"));
}
if (state != null) {
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java
index ab338ac2..871b94a1 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java
@@ -19,7 +19,7 @@ package org.altusmetrum.AltosDroid;
import java.util.Arrays;
-import org.altusmetrum.altoslib_5.*;
+import org.altusmetrum.altoslib_6.*;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
@@ -179,7 +179,7 @@ public class TabMap extends AltosDroidTab {
}
if (state.gps != null) {
mTargetLatitudeView.setText(AltosDroid.pos(state.gps.lat, "N", "S"));
- mTargetLongitudeView.setText(AltosDroid.pos(state.gps.lon, "W", "E"));
+ mTargetLongitudeView.setText(AltosDroid.pos(state.gps.lon, "E", "W"));
if (state.gps.locked && state.gps.nsat >= 4)
center (state.gps.lat, state.gps.lon, 10);
}
@@ -193,9 +193,12 @@ public class TabMap extends AltosDroidTab {
else
accuracy = 1000;
mReceiverLatitudeView.setText(AltosDroid.pos(receiver.getLatitude(), "N", "S"));
- mReceiverLongitudeView.setText(AltosDroid.pos(receiver.getLongitude(), "W", "E"));
+ mReceiverLongitudeView.setText(AltosDroid.pos(receiver.getLongitude(), "E", "W"));
center (receiver.getLatitude(), receiver.getLongitude(), accuracy);
}
}
+
+ public TabMap() {
+ }
}
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java
index 32df71d7..0ac78219 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java
@@ -17,7 +17,7 @@
package org.altusmetrum.AltosDroid;
-import org.altusmetrum.altoslib_5.*;
+import org.altusmetrum.altoslib_6.*;
import android.app.Activity;
import android.os.Bundle;
@@ -163,7 +163,7 @@ public class TabPad extends AltosDroidTab {
if (receiver.hasAltitude())
altitude = receiver.getAltitude();
mPadLatitudeView.setText(AltosDroid.pos(receiver.getLatitude(), "N", "S"));
- mPadLongitudeView.setText(AltosDroid.pos(receiver.getLongitude(), "W", "E"));
+ mPadLongitudeView.setText(AltosDroid.pos(receiver.getLongitude(), "E", "W"));
set_value(mPadAltitudeView, AltosConvert.height, 6, altitude);
}
}
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryLogger.java b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryLogger.java
index 49bcfb88..9764ab72 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryLogger.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryLogger.java
@@ -1,6 +1,6 @@
package org.altusmetrum.AltosDroid;
-import org.altusmetrum.altoslib_5.*;
+import org.altusmetrum.altoslib_6.*;
import android.content.BroadcastReceiver;
import android.content.Context;
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java
index 971c3e80..4e4408d5 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java
@@ -25,7 +25,7 @@ import java.util.concurrent.*;
import android.util.Log;
import android.os.Handler;
-import org.altusmetrum.altoslib_5.*;
+import org.altusmetrum.altoslib_6.*;
public class TelemetryReader extends Thread {
@@ -40,8 +40,6 @@ public class TelemetryReader extends Thread {
AltosLink link;
AltosState state = null;
- AltosFlightReader stacked;
-
LinkedBlockingQueue<AltosLine> telemQueue;
public AltosState read() throws ParseException, AltosCRCException, InterruptedException, IOException {
@@ -59,10 +57,6 @@ public class TelemetryReader extends Thread {
public void close() {
state = null;
- if (stacked != null) {
- stacked.close(false);
- stacked = null;
- }
link.remove_monitor(telemQueue);
link = null;
telemQueue.clear();
@@ -73,25 +67,6 @@ public class TelemetryReader extends Thread {
AltosState state = null;
try {
- if (D) Log.d(TAG, "starting reader");
- while (stacked != null) {
- AltosState stacked_state = null;
- try {
- stacked_state = stacked.read();
- } catch (ParseException pe) {
- continue;
- } catch (AltosCRCException ce) {
- continue;
- }
- if (stacked_state != null)
- state = stacked_state;
- else
- stacked = null;
- }
- if (state != null) {
- if (D) Log.d(TAG, "Send initial state");
- handler.obtainMessage(TelemetryService.MSG_TELEMETRY, state).sendToTarget();
- }
if (D) Log.d(TAG, "starting loop");
while (telemQueue != null) {
try {
@@ -111,34 +86,16 @@ public class TelemetryReader extends Thread {
}
}
- public TelemetryReader (AltosLink in_link, Handler in_handler, AltosFlightReader in_stacked) {
+ public TelemetryReader (AltosLink in_link, Handler in_handler, AltosState in_state) {
if (D) Log.d(TAG, "connected TelemetryReader create started");
link = in_link;
handler = in_handler;
- stacked = in_stacked;
- state = null;
+ state = in_state;
telemQueue = new LinkedBlockingQueue<AltosLine>();
link.add_monitor(telemQueue);
link.set_telemetry(AltosLib.ao_telemetry_standard);
if (D) Log.d(TAG, "connected TelemetryReader created");
}
-
- private static AltosFlightReader existing_data(AltosLink link) {
- if (link == null)
- return null;
-
- File file = AltosPreferences.logfile(link.serial);
- if (file != null) {
- AltosStateIterable iterable = AltosStateIterable.iterable(file);
- if (iterable != null)
- return new AltosReplayReader(iterable.iterator(), file, false);
- }
- return null;
- }
-
- public TelemetryReader(AltosLink link, Handler handler) {
- this(link, handler, existing_data(link));
- }
}
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java
index 30d94409..d4ac66aa 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java
@@ -45,7 +45,7 @@ import android.location.LocationManager;
import android.location.LocationListener;
import android.location.Criteria;
-import org.altusmetrum.altoslib_5.*;
+import org.altusmetrum.altoslib_6.*;
public class TelemetryService extends Service implements LocationListener {
@@ -139,6 +139,10 @@ public class TelemetryService extends Service implements LocationListener {
case MSG_TELEMETRY:
// forward telemetry messages
s.telemetry_state.state = (AltosState) msg.obj;
+ if (s.telemetry_state.state != null) {
+ if (D) Log.d(TAG, "Save state");
+ AltosPreferences.set_state(0, s.telemetry_state.state, null);
+ }
if (D) Log.d(TAG, "MSG_TELEMETRY");
s.sendMessageToClients();
break;
@@ -179,6 +183,8 @@ public class TelemetryService extends Service implements LocationListener {
private Message message() {
if (telemetry_state == null)
Log.d(TAG, "telemetry_state null!");
+ if (telemetry_state.state == null)
+ Log.d(TAG, "telemetry_state.state null!");
return Message.obtain(null, AltosDroid.MSG_STATE, telemetry_state);
}
@@ -262,7 +268,7 @@ public class TelemetryService extends Service implements LocationListener {
if (D) Log.d(TAG, "connected bluetooth configured");
telemetry_state.connect = TelemetryState.CONNECT_CONNECTED;
- mTelemetryReader = new TelemetryReader(mAltosBluetooth, mHandler);
+ mTelemetryReader = new TelemetryReader(mAltosBluetooth, mHandler, telemetry_state.state);
mTelemetryReader.start();
if (D) Log.d(TAG, "connected TelemetryReader started");
@@ -306,6 +312,13 @@ public class TelemetryService extends Service implements LocationListener {
telemetry_state.connect = TelemetryState.CONNECT_READY;
+ AltosSavedState saved_state = AltosPreferences.state(0);
+
+ if (saved_state != null) {
+ if (D) Log.d(TAG, String.format("recovered old state flight %d\n", saved_state.state.flight));
+ telemetry_state.state = saved_state.state;
+ }
+
// Start our timer - first event in 10 seconds, then every 10 seconds after that.
timer.scheduleAtFixedRate(new TimerTask(){ public void run() {onTimerTick();}}, 10000L, 10000L);
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryState.java b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryState.java
index d3341739..862847d2 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryState.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryState.java
@@ -17,7 +17,7 @@
package org.altusmetrum.AltosDroid;
-import org.altusmetrum.altoslib_5.*;
+import org.altusmetrum.altoslib_6.*;
import android.location.Location;
public class TelemetryState {