summaryrefslogtreecommitdiff
path: root/altosdroid/src/org/altusmetrum/AltosDroid
diff options
context:
space:
mode:
Diffstat (limited to 'altosdroid/src/org/altusmetrum/AltosDroid')
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/AltosBluetooth.java2
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/AltosDebug.java2
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java86
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidLink.java2
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidMapInterface.java2
-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/AltosMapOffline.java7
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/AltosMapOnline.java2
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/AltosUsb.java2
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java20
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/IdleModeActivity.java2
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/IgniterActivity.java2
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/ManageFrequenciesActivity.java2
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/MapTypeActivity.java2
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/PreloadMapActivity.java2
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/SetupActivity.java2
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/TabFlight.java2
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java2
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java10
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/TabRecover.java2
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/TelemetryLogger.java2
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java2
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java21
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/TelemetryState.java4
26 files changed, 130 insertions, 74 deletions
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosBluetooth.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosBluetooth.java
index 8e65e1d0..359b5832 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosBluetooth.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosBluetooth.java
@@ -31,7 +31,7 @@ import android.bluetooth.BluetoothSocket;
import android.os.Handler;
//import android.os.Message;
-import org.altusmetrum.altoslib_11.*;
+import org.altusmetrum.altoslib_12.*;
public class AltosBluetooth extends AltosDroidLink {
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDebug.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDebug.java
index b8c90773..5906ff98 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDebug.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDebug.java
@@ -21,7 +21,7 @@ import java.util.Arrays;
import java.io.*;
import java.lang.*;
-import org.altusmetrum.altoslib_11.*;
+import org.altusmetrum.altoslib_12.*;
import android.app.Activity;
import android.graphics.*;
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java
index 30a949d5..924ab4c9 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java
@@ -52,7 +52,30 @@ import android.hardware.usb.*;
import android.graphics.*;
import android.graphics.drawable.*;
-import org.altusmetrum.altoslib_11.*;
+import org.altusmetrum.altoslib_12.*;
+
+class SavedState {
+ long received_time;
+ int state;
+ boolean locked;
+ String callsign;
+ int serial;
+ int flight;
+ int rssi;
+
+ SavedState(AltosState state) {
+ received_time = state.received_time;
+ this.state = state.state();
+ if (state.gps != null)
+ locked = state.gps.locked;
+ else
+ locked = false;
+ callsign = state.cal_data().callsign;
+ serial = state.cal_data().serial;
+ flight = state.cal_data().flight;
+ rssi = state.rssi;
+ }
+}
public class AltosDroid extends FragmentActivity implements AltosUnitsListener, LocationListener {
@@ -114,6 +137,9 @@ public class AltosDroid extends FragmentActivity implements AltosUnitsListener,
public Location location = null;
+ private AltosState state;
+ private SavedState saved_state;
+
// Tabs
TabHost mTabHost;
AltosViewPager mViewPager;
@@ -123,7 +149,7 @@ public class AltosDroid extends FragmentActivity implements AltosUnitsListener,
// Timer and Saved flight state for Age calculation
private Timer timer;
- AltosState saved_state;
+
TelemetryState telemetry_state;
Integer[] serials;
@@ -307,7 +333,7 @@ public class AltosDroid extends FragmentActivity implements AltosUnitsListener,
if (telemetry_state.states.containsKey(current_serial)) {
state = telemetry_state.states.get(current_serial);
- int age = state_age(state);
+ int age = state_age(state.received_time);
if (age < 20)
aged = false;
if (current_serial == selected_serial)
@@ -322,7 +348,7 @@ public class AltosDroid extends FragmentActivity implements AltosUnitsListener,
for (int serial : telemetry_state.states.keySet()) {
AltosState existing = telemetry_state.states.get(serial);
- int existing_age = state_age(existing);
+ int existing_age = state_age(existing.received_time);
if (newest_state == null || existing_age < newest_age) {
newest_state = existing;
@@ -334,7 +360,7 @@ public class AltosDroid extends FragmentActivity implements AltosUnitsListener,
state = newest_state;
}
- update_ui(telemetry_state, state);
+ update_ui(telemetry_state, state, telemetry_state.quiet);
start_timer();
}
@@ -362,8 +388,8 @@ public class AltosDroid extends FragmentActivity implements AltosUnitsListener,
blend_component(a, b, r, 24, 0xff));
}
- int state_age(AltosState state) {
- return (int) ((System.currentTimeMillis() - state.received_time + 500) / 1000);
+ int state_age(long received_time) {
+ return (int) ((System.currentTimeMillis() - received_time + 500) / 1000);
}
void set_screen_on(int age) {
@@ -375,7 +401,7 @@ public class AltosDroid extends FragmentActivity implements AltosUnitsListener,
void update_age() {
if (saved_state != null) {
- int age = state_age(saved_state);
+ int age = state_age(saved_state.received_time);
double age_scale = age / 100.0;
@@ -399,17 +425,19 @@ public class AltosDroid extends FragmentActivity implements AltosUnitsListener,
}
}
- void update_ui(TelemetryState telem_state, AltosState state) {
+ void update_ui(TelemetryState telem_state, AltosState state, boolean quiet) {
+
+ this.state = state;
int prev_state = AltosLib.ao_flight_invalid;
AltosGreatCircle from_receiver = null;
if (saved_state != null)
- prev_state = saved_state.state();
+ prev_state = saved_state.state;
if (state != null) {
- set_screen_on(state_age(state));
+ set_screen_on(state_age(state.received_time));
if (state.state() == AltosLib.ao_flight_stateless) {
boolean prev_locked = false;
@@ -417,8 +445,8 @@ public class AltosDroid extends FragmentActivity implements AltosUnitsListener,
if(state.gps != null)
locked = state.gps.locked;
- if (saved_state != null && saved_state.gps != null)
- prev_locked = saved_state.gps.locked;
+ if (saved_state != null)
+ prev_locked = saved_state.locked;
if (prev_locked != locked) {
String currentTab = mTabHost.getCurrentTabTag();
if (locked) {
@@ -456,22 +484,22 @@ public class AltosDroid extends FragmentActivity implements AltosUnitsListener,
state.gps.alt);
}
- if (saved_state == null || !same_string(saved_state.callsign, state.callsign)) {
- mCallsignView.setText(state.callsign);
+ if (saved_state == null || !same_string(saved_state.callsign, state.cal_data().callsign)) {
+ mCallsignView.setText(state.cal_data().callsign);
}
- if (saved_state == null || state.serial != saved_state.serial) {
- if (state.serial == AltosLib.MISSING)
+ if (saved_state == null || state.cal_data().serial != saved_state.serial) {
+ if (state.cal_data().serial == AltosLib.MISSING)
mSerialView.setText("");
else
- mSerialView.setText(String.format("%d", state.serial));
+ mSerialView.setText(String.format("%d", state.cal_data().serial));
}
- if (saved_state == null || state.flight != saved_state.flight) {
- if (state.flight == AltosLib.MISSING)
+ if (saved_state == null || state.cal_data().flight != saved_state.flight) {
+ if (state.cal_data().flight == AltosLib.MISSING)
mFlightView.setText("");
else
- mFlightView.setText(String.format("%d", state.flight));
+ mFlightView.setText(String.format("%d", state.cal_data().flight));
}
- if (saved_state == null || state.state() != saved_state.state()) {
+ if (saved_state == null || state.state() != saved_state.state) {
if (state.state() == AltosLib.ao_flight_stateless) {
mStateLayout.setVisibility(View.GONE);
} else {
@@ -485,15 +513,16 @@ public class AltosDroid extends FragmentActivity implements AltosUnitsListener,
else
mRSSIView.setText(String.format("%d", state.rssi));
}
+ saved_state = new SavedState(state);
}
for (AltosDroidTab mTab : mTabs)
mTab.update_ui(telem_state, state, from_receiver, location, mTab == mTabsAdapter.currentItem());
+ AltosDebug.debug("quiet %b\n", quiet);
if (mAltosVoice != null)
- mAltosVoice.tell(telem_state, state, from_receiver, location, (AltosDroidTab) mTabsAdapter.currentItem());
+ mAltosVoice.tell(telem_state, state, from_receiver, location, (AltosDroidTab) mTabsAdapter.currentItem(), quiet);
- saved_state = state;
}
private void onTimerTick() {
@@ -567,8 +596,9 @@ public class AltosDroid extends FragmentActivity implements AltosUnitsListener,
// Display the Version
mVersion = (TextView) findViewById(R.id.version);
mVersion.setText("Version: " + BuildInfo.version +
- " Built: " + BuildInfo.builddate + " " + BuildInfo.buildtime + " " + BuildInfo.buildtz +
- " (" + BuildInfo.branch + "-" + BuildInfo.commitnum + "-" + BuildInfo.commithash + ")");
+ (AltosVersion.has_google_maps_api_key() ? " maps" : "") +
+ " Built: " + BuildInfo.builddate + " " + BuildInfo.buildtime + " " + BuildInfo.buildtz +
+ " (" + BuildInfo.branch + "-" + BuildInfo.commitnum + "-" + BuildInfo.commithash + ")");
mCallsignView = (TextView) findViewById(R.id.callsign_value);
mRSSIView = (TextView) findViewById(R.id.rssi_value);
@@ -703,7 +733,7 @@ public class AltosDroid extends FragmentActivity implements AltosUnitsListener,
location.getLatitude(),
location.getLongitude());
- update_ui(telemetry_state, saved_state);
+ update_ui(telemetry_state, state, true);
}
@Override
@@ -1094,7 +1124,7 @@ public class AltosDroid extends FragmentActivity implements AltosUnitsListener,
AltosDebug.debug("Location changed to %f,%f",
location.getLatitude(),
location.getLongitude());
- update_ui(telemetry_state, saved_state);
+ update_ui(telemetry_state, state, false);
}
public void onStatusChanged(String provider, int status, Bundle extras) {
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidLink.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidLink.java
index 23105635..05cb0f6b 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidLink.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidLink.java
@@ -25,7 +25,7 @@ import java.util.UUID;
import android.os.Handler;
-import org.altusmetrum.altoslib_11.*;
+import org.altusmetrum.altoslib_12.*;
public abstract class AltosDroidLink extends AltosLink {
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidMapInterface.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidMapInterface.java
index 2b78104d..8730e8ad 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidMapInterface.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidMapInterface.java
@@ -21,7 +21,7 @@ package org.altusmetrum.AltosDroid;
import java.util.*;
import java.io.*;
import android.location.Location;
-import org.altusmetrum.altoslib_11.*;
+import org.altusmetrum.altoslib_12.*;
public interface AltosDroidMapInterface {
public void onCreateView(AltosDroid altos_droid);
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java
index c7cdc961..0670005a 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java
@@ -22,7 +22,7 @@ import java.util.*;
import java.text.*;
import android.content.Context;
-import org.altusmetrum.altoslib_11.*;
+import org.altusmetrum.altoslib_12.*;
public class AltosDroidPreferences extends AltosPreferences {
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferencesBackend.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferencesBackend.java
index 2e6ccb34..01ec0af9 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferencesBackend.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferencesBackend.java
@@ -25,7 +25,7 @@ import android.content.SharedPreferences;
import android.os.Environment;
import android.util.*;
-import org.altusmetrum.altoslib_11.*;
+import org.altusmetrum.altoslib_12.*;
public class AltosDroidPreferencesBackend extends AltosPreferencesBackend {
public final static String NAME = "org.altusmetrum.AltosDroid";
@@ -77,7 +77,17 @@ public class AltosDroidPreferencesBackend extends AltosPreferencesBackend {
}
public String getString(String key, String def) {
- return prefs.getString(key, def);
+ String ret;
+ ret = prefs.getString(key, def);
+// AltosDebug.debug("AltosDroidPreferencesBackend get string %s:\n", key);
+// if (ret == null)
+// AltosDebug.debug(" (null)\n");
+// else {
+// String[] lines = ret.split("\n");
+// for (String l : lines)
+// AltosDebug.debug(" %s\n", l);
+// }
+ return ret;
}
public byte[] getBytes(String key, byte[] def) {
@@ -103,6 +113,10 @@ public class AltosDroidPreferencesBackend extends AltosPreferencesBackend {
}
public void putString(String key, String value) {
+// AltosDebug.debug("AltosDroidPreferencesBackend put string %s:\n", key);
+// String[] lines = value.split("\n");
+// for (String l : lines)
+// AltosDebug.debug(" %s\n", l);
editor.putString(key, value);
}
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidTab.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidTab.java
index 11d8f624..71309897 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidTab.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidTab.java
@@ -18,7 +18,7 @@
package org.altusmetrum.AltosDroid;
-import org.altusmetrum.altoslib_11.*;
+import org.altusmetrum.altoslib_12.*;
import android.location.Location;
import android.app.Activity;
import android.graphics.Color;
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosMapOffline.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosMapOffline.java
index 76771adc..2a728cf7 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosMapOffline.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosMapOffline.java
@@ -21,7 +21,7 @@ package org.altusmetrum.AltosDroid;
import java.util.*;
import java.io.*;
-import org.altusmetrum.altoslib_11.*;
+import org.altusmetrum.altoslib_12.*;
import android.app.Activity;
import android.graphics.*;
@@ -164,6 +164,7 @@ public class AltosMapOffline extends View implements ScaleGestureDetector.OnScal
break;
case AltosMapTile.forbidden:
message = "Too many requests, try later";
+ AltosDebug.debug("Forbidden map response %d\n", AltosMapStore.forbidden_response);
break;
}
if (message != null) {
@@ -476,11 +477,11 @@ public class AltosMapOffline extends View implements ScaleGestureDetector.OnScal
if (t_state.gps != null) {
AltosLatLon latlon = new AltosLatLon(t_state.gps.lat, t_state.gps.lon);
rocket.set_position(latlon, t_state.received_time);
- if (state.serial == serial)
+ if (state.cal_data().serial == serial)
there = latlon;
}
if (state != null)
- rocket.set_active(state.serial == serial);
+ rocket.set_active(state.cal_data().serial == serial);
}
}
if (receiver != null) {
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosMapOnline.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosMapOnline.java
index 9e5d6dee..b71cdd62 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosMapOnline.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosMapOnline.java
@@ -20,7 +20,7 @@ package org.altusmetrum.AltosDroid;
import java.util.*;
-import org.altusmetrum.altoslib_11.*;
+import org.altusmetrum.altoslib_12.*;
import com.google.android.gms.maps.*;
import com.google.android.gms.maps.model.*;
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosUsb.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosUsb.java
index 8d0a725a..77947b4b 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosUsb.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosUsb.java
@@ -29,7 +29,7 @@ import android.hardware.usb.*;
import android.app.*;
import android.os.Handler;
-import org.altusmetrum.altoslib_11.*;
+import org.altusmetrum.altoslib_12.*;
public class AltosUsb extends AltosDroidLink {
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java
index 811b0367..fedfdb52 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java
@@ -23,7 +23,7 @@ import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.OnInitListener;
import android.location.Location;
-import org.altusmetrum.altoslib_11.*;
+import org.altusmetrum.altoslib_12.*;
public class AltosVoice {
@@ -49,6 +49,7 @@ public class AltosVoice {
private Location last_receiver;
private long last_speak_time;
private int last_flight_tell = TELL_FLIGHT_NONE;
+ private boolean quiet = false;
private long now() {
return System.currentTimeMillis();
@@ -80,7 +81,8 @@ public class AltosVoice {
public synchronized void speak(String s) {
if (!tts_enabled) return;
last_speak_time = now();
- tts.speak(s, TextToSpeech.QUEUE_ADD, null);
+ if (!quiet)
+ tts.speak(s, TextToSpeech.QUEUE_ADD, null);
}
public synchronized long time_since_speak() {
@@ -121,6 +123,8 @@ public class AltosVoice {
if (state == null)
return false;
+ AltosDebug.debug("tell_pad lag %b ltm %d\n", last_apogee_good, last_tell_mode);
+
if (state.apogee_voltage != AltosLib.MISSING)
last_apogee_good = tell_gonogo("apogee",
state.apogee_voltage >= AltosLib.ao_igniter_good,
@@ -239,12 +243,12 @@ public class AltosVoice {
if (last_flight_tell == TELL_FLIGHT_HEIGHT) {
last_flight_tell = TELL_FLIGHT_TRACK;
if (from_receiver != null) {
- speak("bearing %s %d, elevation %d, range %s.",
+ speak("bearing %s %d, elevation %d, distance %s.",
from_receiver.bearing_words(
AltosGreatCircle.BEARING_VOICE),
(int) (from_receiver.bearing + 0.5),
(int) (from_receiver.elevation + 0.5),
- AltosConvert.distance.say(from_receiver.range));
+ AltosConvert.distance.say(from_receiver.distance));
return true;
}
}
@@ -269,7 +273,7 @@ public class AltosVoice {
if (direction == null)
direction = String.format("Bearing %d", (int) (from_receiver.bearing + 0.5));
- speak("%s, range %s.", direction,
+ speak("%s, distance %s.", direction,
AltosConvert.distance.say_units(from_receiver.distance));
return true;
@@ -277,7 +281,9 @@ public class AltosVoice {
public void tell(TelemetryState telem_state, AltosState state,
AltosGreatCircle from_receiver, Location receiver,
- AltosDroidTab tab) {
+ AltosDroidTab tab, boolean quiet) {
+
+ this.quiet = quiet;
boolean spoken = false;
@@ -288,7 +294,7 @@ public class AltosVoice {
int tell_serial = last_tell_serial;
if (state != null)
- tell_serial = state.serial;
+ tell_serial = state.cal_data().serial;
if (tell_serial != last_tell_serial)
reset_last();
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/IdleModeActivity.java b/altosdroid/src/org/altusmetrum/AltosDroid/IdleModeActivity.java
index 7b3bbb4e..ace0a7d6 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/IdleModeActivity.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/IdleModeActivity.java
@@ -35,7 +35,7 @@ import android.view.View.OnClickListener;
import android.widget.*;
import android.widget.AdapterView.*;
-import org.altusmetrum.altoslib_11.*;
+import org.altusmetrum.altoslib_12.*;
public class IdleModeActivity extends Activity {
private EditText callsign;
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/IgniterActivity.java b/altosdroid/src/org/altusmetrum/AltosDroid/IgniterActivity.java
index 4b8dc3e8..eccf5c59 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/IgniterActivity.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/IgniterActivity.java
@@ -33,7 +33,7 @@ import android.view.View.*;
import android.widget.*;
import android.widget.AdapterView.*;
-import org.altusmetrum.altoslib_11.*;
+import org.altusmetrum.altoslib_12.*;
class IgniterItem {
public String name;
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/ManageFrequenciesActivity.java b/altosdroid/src/org/altusmetrum/AltosDroid/ManageFrequenciesActivity.java
index 0eef129e..ff599fda 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/ManageFrequenciesActivity.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/ManageFrequenciesActivity.java
@@ -33,7 +33,7 @@ import android.view.inputmethod.*;
import android.widget.*;
import android.widget.AdapterView.*;
-import org.altusmetrum.altoslib_11.*;
+import org.altusmetrum.altoslib_12.*;
class FrequencyItem {
public AltosFrequency frequency;
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/MapTypeActivity.java b/altosdroid/src/org/altusmetrum/AltosDroid/MapTypeActivity.java
index a0c7233f..b93eaa19 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/MapTypeActivity.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/MapTypeActivity.java
@@ -35,7 +35,7 @@ import android.view.View.OnClickListener;
import android.widget.*;
import android.widget.AdapterView.*;
-import org.altusmetrum.altoslib_11.*;
+import org.altusmetrum.altoslib_12.*;
public class MapTypeActivity extends Activity {
private Button hybrid;
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/PreloadMapActivity.java b/altosdroid/src/org/altusmetrum/AltosDroid/PreloadMapActivity.java
index a8e87bf2..9c43870f 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/PreloadMapActivity.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/PreloadMapActivity.java
@@ -42,7 +42,7 @@ import android.location.LocationManager;
import android.location.LocationListener;
import android.location.Criteria;
-import org.altusmetrum.altoslib_11.*;
+import org.altusmetrum.altoslib_12.*;
/**
* This Activity appears as a dialog. It lists any paired devices and
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/SetupActivity.java b/altosdroid/src/org/altusmetrum/AltosDroid/SetupActivity.java
index 41c3eb88..d970fc4f 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/SetupActivity.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/SetupActivity.java
@@ -31,7 +31,7 @@ import android.view.View.*;
import android.widget.*;
import android.widget.AdapterView.*;
-import org.altusmetrum.altoslib_11.*;
+import org.altusmetrum.altoslib_12.*;
public class SetupActivity extends Activity {
private Spinner select_rate;
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabFlight.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabFlight.java
index 3143679a..5349612c 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/TabFlight.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabFlight.java
@@ -18,7 +18,7 @@
package org.altusmetrum.AltosDroid;
-import org.altusmetrum.altoslib_11.*;
+import org.altusmetrum.altoslib_12.*;
import android.app.Activity;
import android.os.Bundle;
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java
index 5db5b85f..d239d988 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java
@@ -21,7 +21,7 @@ package org.altusmetrum.AltosDroid;
import java.util.*;
import java.io.*;
-import org.altusmetrum.altoslib_11.*;
+import org.altusmetrum.altoslib_12.*;
import android.app.Activity;
import android.graphics.*;
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java
index 492f7f5f..ba5afba5 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java
@@ -18,7 +18,7 @@
package org.altusmetrum.AltosDroid;
-import org.altusmetrum.altoslib_11.*;
+import org.altusmetrum.altoslib_12.*;
import android.app.Activity;
import android.os.Bundle;
@@ -178,10 +178,10 @@ public class TabPad extends AltosDroidTab {
}
main_lights.set(state.main_voltage >= AltosLib.ao_igniter_good, state.main_voltage == AltosLib.MISSING);
- int num_igniter = state.ignitor_voltage == null ? 0 : state.ignitor_voltage.length;
+ int num_igniter = state.igniter_voltage == null ? 0 : state.igniter_voltage.length;
for (int i = 0; i < 4; i++) {
- double voltage = i >= num_igniter ? AltosLib.MISSING : state.ignitor_voltage[i];
+ double voltage = i >= num_igniter ? AltosLib.MISSING : state.igniter_voltage[i];
if (voltage == AltosLib.MISSING) {
ignite_row[i].setVisibility(View.GONE);
} else {
@@ -191,7 +191,7 @@ public class TabPad extends AltosDroidTab {
ignite_lights[i].set(voltage >= AltosLib.ao_igniter_good, voltage == AltosLib.MISSING);
}
- if (state.flight != 0) {
+ if (state.cal_data().flight != 0) {
if (state.state() <= AltosLib.ao_flight_pad)
data_logging_view.setText("Ready to record");
else if (state.state() < AltosLib.ao_flight_landed)
@@ -201,7 +201,7 @@ public class TabPad extends AltosDroidTab {
} else {
data_logging_view.setText("Storage full");
}
- data_logging_lights.set(state.flight != 0, state.flight == AltosLib.MISSING);
+ data_logging_lights.set(state.cal_data().flight != 0, state.cal_data().flight == AltosLib.MISSING);
if (state.gps != null) {
int soln = state.gps.nsat;
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabRecover.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabRecover.java
index 97a35c9e..ac211230 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/TabRecover.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabRecover.java
@@ -18,7 +18,7 @@
package org.altusmetrum.AltosDroid;
-import org.altusmetrum.altoslib_11.*;
+import org.altusmetrum.altoslib_12.*;
import android.app.Activity;
import android.os.Bundle;
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryLogger.java b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryLogger.java
index c379d3d8..56f235c1 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_11.*;
+import org.altusmetrum.altoslib_12.*;
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 bc0b3615..d097a550 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java
@@ -26,7 +26,7 @@ import java.util.*;
import java.util.concurrent.*;
import android.os.Handler;
-import org.altusmetrum.altoslib_11.*;
+import org.altusmetrum.altoslib_12.*;
public class TelemetryReader extends Thread {
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java
index 34c86ce5..caf288a0 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java
@@ -41,7 +41,7 @@ import android.os.Looper;
import android.widget.Toast;
import android.location.Criteria;
-import org.altusmetrum.altoslib_11.*;
+import org.altusmetrum.altoslib_12.*;
public class TelemetryService extends Service implements AltosIdleMonitorListener {
@@ -259,14 +259,15 @@ public class TelemetryService extends Service implements AltosIdleMonitorListene
private void telemetry(AltosTelemetry telem) {
AltosState state;
- if (telemetry_state.states.containsKey(telem.serial))
- state = telemetry_state.states.get(telem.serial).clone();
+ if (telemetry_state.states.containsKey(telem.serial()))
+ state = telemetry_state.states.get(telem.serial());
else
- state = new AltosState();
- telem.update_state(state);
- telemetry_state.states.put(telem.serial, state);
+ state = new AltosState(new AltosCalData());
+ telem.provide_data(state);
+ telemetry_state.states.put(telem.serial(), state);
+ telemetry_state.quiet = false;
if (state != null) {
- AltosPreferences.set_state(state);
+ AltosPreferences.set_state(state,telem.serial());
}
send_to_clients();
}
@@ -615,6 +616,8 @@ public class TelemetryService extends Service implements AltosIdleMonitorListene
telemetry_state.latest_serial = AltosPreferences.latest_state();
+ telemetry_state.quiet = true;
+
AltosDebug.debug("latest serial %d\n", telemetry_state.latest_serial);
for (int serial : serials) {
@@ -625,7 +628,7 @@ public class TelemetryService extends Service implements AltosIdleMonitorListene
AltosDebug.debug("recovered old state serial %d flight %d",
serial,
- saved_state.flight);
+ saved_state.cal_data().flight);
if (saved_state.gps != null)
AltosDebug.debug("\tposition %f,%f",
saved_state.gps.lat,
@@ -699,7 +702,7 @@ public class TelemetryService extends Service implements AltosIdleMonitorListene
/* AltosIdleMonitorListener */
public void update(AltosState state, AltosListenerState listener_state) {
- telemetry_state.states.put(state.serial, state);
+ telemetry_state.states.put(state.cal_data().serial, state);
telemetry_state.receiver_battery = listener_state.battery;
send_to_clients();
}
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryState.java b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryState.java
index 32ba1254..77cee787 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryState.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryState.java
@@ -19,7 +19,7 @@
package org.altusmetrum.AltosDroid;
import java.util.*;
-import org.altusmetrum.altoslib_11.*;
+import org.altusmetrum.altoslib_12.*;
import android.location.Location;
public class TelemetryState {
@@ -36,6 +36,8 @@ public class TelemetryState {
double frequency;
int telemetry_rate;
+ boolean quiet;
+
HashMap<Integer,AltosState> states;
int latest_serial;