From fe8ab96e8727c25c04cac473cafb264cf7e80156 Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Mon, 17 Sep 2012 01:29:33 +1200 Subject: altosdroid: implement AltosPreferencesBackend, and initialize. Signed-off-by: Mike Beattie --- .../src/org/altusmetrum/AltosDroid/AltosDroid.java | 7 ++ .../AltosDroid/AltosDroidPreferences.java | 97 ++++++++++++++++++++++ 2 files changed, 104 insertions(+) create mode 100644 altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java (limited to 'altosdroid/src') diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java index 00689684..3396f77e 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java @@ -87,6 +87,9 @@ public class AltosDroid extends Activity { private Messenger mService = null; final Messenger mMessenger = new Messenger(new IncomingHandler(this)); + // Preferences + private AltosDroidPreferences prefs = null; + // TeleBT Config data private AltosConfigData mConfigData = null; // Local Bluetooth adapter @@ -228,6 +231,10 @@ public class AltosDroid extends Activity { return; } + // Initialise preferences + prefs = new AltosDroidPreferences(this); + AltosPreferences.init(prefs); + // Set up the window layout requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); //setContentView(R.layout.main); diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java new file mode 100644 index 00000000..7ba328f4 --- /dev/null +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java @@ -0,0 +1,97 @@ +/* + * Copyright © 2012 Mike Beattie + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ + +package org.altusmetrum.AltosDroid; + +import java.util.Map; +import android.content.Context; +import android.content.SharedPreferences; +import org.altusmetrum.AltosLib.*; + +public class AltosDroidPreferences implements AltosPreferencesBackend { + public final static String NAME = "org.altusmetrum.AltosDroid"; + private Context context = null; + private SharedPreferences prefs = null; + private SharedPreferences.Editor editor = null; + + public AltosDroidPreferences(Context in_context) { + this(in_context, NAME); + } + + public AltosDroidPreferences(Context in_context, String in_prefs) { + context = in_context; + prefs = context.getSharedPreferences(in_prefs, 0); + editor = prefs.edit(); + } + + public AltosPreferencesBackend node(String key) { + return new AltosDroidPreferences(context, key); + } + + public void flush() { + editor.apply(); + } + + public String[] keys() { + Map data = prefs.getAll(); + String[] keys = new String[data.size()]; + data.keySet().toArray(keys); + return keys; + } + + public boolean nodeExists(String key) { + return prefs.contains(key); + } + + public boolean getBoolean(String key, boolean def) { + return prefs.getBoolean(key, def); + } + + public double getDouble(String key, double def) { + Float f = Float.valueOf(prefs.getFloat(key, (float)def)); + return f.doubleValue(); + } + + public int getInt(String key, int def) { + return prefs.getInt(key, def); + } + + public String getString(String key, String def) { + return prefs.getString(key, def); + } + + public void putBoolean(String key, boolean value) { + editor.putBoolean(key, value); + } + + public void putDouble(String key, double value) { + editor.putFloat(key, (float)value); + } + + public void putInt(String key, int value) { + editor.putInt(key, value); + } + + public void putString(String key, String value) { + editor.putString(key, value); + } + + public void remove(String key) { + editor.remove(key); + } + +} -- cgit v1.2.3 From 8f11a6d2c3de228c3cefb95a7d1a76d53e532acd Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Tue, 18 Sep 2012 23:42:11 +1200 Subject: altosdroid: simplify keys() method Signed-off-by: Mike Beattie --- .../src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'altosdroid/src') diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java index 7ba328f4..28ecc182 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java @@ -47,10 +47,8 @@ public class AltosDroidPreferences implements AltosPreferencesBackend { } public String[] keys() { - Map data = prefs.getAll(); - String[] keys = new String[data.size()]; - data.keySet().toArray(keys); - return keys; + Map all = prefs.getAll(); + return (String[])all.keySet().toArray(); } public boolean nodeExists(String key) { -- cgit v1.2.3 From 36e684724e327dbd4319411ef0602fafb4d0c073 Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Tue, 18 Sep 2012 23:43:18 +1200 Subject: altosdroid: cosmetic re-order of methods Signed-off-by: Mike Beattie --- .../altusmetrum/AltosDroid/AltosDroidPreferences.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'altosdroid/src') diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java index 28ecc182..b8487d07 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java @@ -38,19 +38,15 @@ public class AltosDroidPreferences implements AltosPreferencesBackend { editor = prefs.edit(); } - public AltosPreferencesBackend node(String key) { - return new AltosDroidPreferences(context, key); - } - - public void flush() { - editor.apply(); - } - public String[] keys() { Map all = prefs.getAll(); return (String[])all.keySet().toArray(); } + public AltosPreferencesBackend node(String key) { + return new AltosDroidPreferences(context, key); + } + public boolean nodeExists(String key) { return prefs.contains(key); } @@ -92,4 +88,8 @@ public class AltosDroidPreferences implements AltosPreferencesBackend { editor.remove(key); } + public void flush() { + editor.apply(); + } + } -- cgit v1.2.3 From c058ec2d6070458a0b7d3ef56041e985412ee565 Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Tue, 18 Sep 2012 23:46:17 +1200 Subject: altos{lib,ui,droid}: move OS specific code out of altoslib This is to allow the usage of AltosLog on Android - no swing, so we need to push the "home directory" code used to pick a default telemetry logging path - using the PreferencesBackend interface for now. Signed-off-by: Mike Beattie --- .../src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java | 6 ++++++ altoslib/AltosPreferences.java | 4 +--- altoslib/AltosPreferencesBackend.java | 4 ++++ altosui/AltosUIPreferencesBackend.java | 6 ++++++ 4 files changed, 17 insertions(+), 3 deletions(-) (limited to 'altosdroid/src') diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java index b8487d07..3b4bdcf8 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java @@ -17,9 +17,12 @@ package org.altusmetrum.AltosDroid; +import java.io.File; import java.util.Map; import android.content.Context; import android.content.SharedPreferences; +import android.os.Environment; + import org.altusmetrum.AltosLib.*; public class AltosDroidPreferences implements AltosPreferencesBackend { @@ -92,4 +95,7 @@ public class AltosDroidPreferences implements AltosPreferencesBackend { editor.apply(); } + public File homeDirectory() { + return Environment.getExternalStorageDirectory(); + } } diff --git a/altoslib/AltosPreferences.java b/altoslib/AltosPreferences.java index a82ea3f6..47196d6e 100644 --- a/altoslib/AltosPreferences.java +++ b/altoslib/AltosPreferences.java @@ -19,7 +19,6 @@ package org.altusmetrum.AltosLib; import java.io.*; import java.util.*; -import javax.swing.filechooser.FileSystemView; public class AltosPreferences { public static AltosPreferencesBackend backend = null; @@ -145,8 +144,7 @@ public class AltosPreferences { if (logdir_string != null) logdir = new File(logdir_string); else { - /* Use the file system view default directory */ - logdir = new File(FileSystemView.getFileSystemView().getDefaultDirectory(), logdirName); + logdir = new File(backend.homeDirectory(), logdirName); if (!logdir.exists()) logdir.mkdirs(); } diff --git a/altoslib/AltosPreferencesBackend.java b/altoslib/AltosPreferencesBackend.java index 3fc4b0aa..a1184c0b 100644 --- a/altoslib/AltosPreferencesBackend.java +++ b/altoslib/AltosPreferencesBackend.java @@ -17,6 +17,8 @@ package org.altusmetrum.AltosLib; +import java.io.File; + public interface AltosPreferencesBackend { public String getString(String key, String def); @@ -38,4 +40,6 @@ public interface AltosPreferencesBackend { public void remove(String key); public void flush(); + + public File homeDirectory(); } diff --git a/altosui/AltosUIPreferencesBackend.java b/altosui/AltosUIPreferencesBackend.java index 210dcb8b..3131fd32 100644 --- a/altosui/AltosUIPreferencesBackend.java +++ b/altosui/AltosUIPreferencesBackend.java @@ -17,8 +17,10 @@ package altosui; +import java.io.File; import java.util.prefs.*; import org.altusmetrum.AltosLib.*; +import javax.swing.filechooser.FileSystemView; public class AltosUIPreferencesBackend implements AltosPreferencesBackend { @@ -92,4 +94,8 @@ public class AltosUIPreferencesBackend implements AltosPreferencesBackend { } } + public File homeDirectory() { + /* Use the file system view default directory */ + return FileSystemView.getFileSystemView().getDefaultDirectory(); + } } -- cgit v1.2.3 From 3fe5c2f9fc01258d45c20070e9874d76bc6c8c07 Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Tue, 18 Sep 2012 23:47:50 +1200 Subject: altosdroid: initial implementation of telemetry logging. Signed-off-by: Mike Beattie --- altosdroid/AndroidManifest.xml | 1 + altosdroid/Makefile.am | 1 + .../altusmetrum/AltosDroid/TelemetryLogger.java | 73 ++++++++++++++++++++++ .../altusmetrum/AltosDroid/TelemetryService.java | 8 +++ 4 files changed, 83 insertions(+) create mode 100644 altosdroid/src/org/altusmetrum/AltosDroid/TelemetryLogger.java (limited to 'altosdroid/src') diff --git a/altosdroid/AndroidManifest.xml b/altosdroid/AndroidManifest.xml index 12391759..7147c0b1 100644 --- a/altosdroid/AndroidManifest.xml +++ b/altosdroid/AndroidManifest.xml @@ -22,6 +22,7 @@ + diff --git a/altosdroid/Makefile.am b/altosdroid/Makefile.am index c06afebe..96831b72 100644 --- a/altosdroid/Makefile.am +++ b/altosdroid/Makefile.am @@ -27,6 +27,7 @@ SRC=\ $(SRC_DIR)/AltosVoice.java \ $(SRC_DIR)/TelemetryService.java \ $(SRC_DIR)/TelemetryReader.java \ + $(SRC_DIR)/TelemetryLogger.java \ $(SRC_DIR)/AltosBluetooth.java \ $(SRC_DIR)/DeviceListActivity.java \ $(SRC_DIR)/Dumper.java diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryLogger.java b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryLogger.java new file mode 100644 index 00000000..b2dcdb48 --- /dev/null +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryLogger.java @@ -0,0 +1,73 @@ +package org.altusmetrum.AltosDroid; + +import org.altusmetrum.AltosLib.*; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.os.Environment; +import android.util.Log; + +public class TelemetryLogger { + private static final String TAG = "TelemetryLogger"; + private static final boolean D = true; + + private Context context = null; + private AltosLink link = null; + private AltosLog logger = null; + + private BroadcastReceiver mExternalStorageReceiver; + + public TelemetryLogger(Context in_context, AltosLink in_link) { + context = in_context; + link = in_link; + + startWatchingExternalStorage(); + } + + public void stop() { + stopWatchingExternalStorage(); + close(); + } + + private void close() { + if (logger != null) { + if (D) Log.d(TAG, "Shutting down Telemetry Logging"); + logger.close(); + logger = null; + } + } + + void handleExternalStorageState() { + String state = Environment.getExternalStorageState(); + if (Environment.MEDIA_MOUNTED.equals(state)) { + if (logger == null) { + if (D) Log.d(TAG, "Starting up Telemetry Logging"); + logger = new AltosLog(link); + } + } else { + if (D) Log.d(TAG, "External Storage not present - stopping"); + close(); + } + } + + void startWatchingExternalStorage() { + mExternalStorageReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + handleExternalStorageState(); + } + }; + IntentFilter filter = new IntentFilter(); + filter.addAction(Intent.ACTION_MEDIA_MOUNTED); + filter.addAction(Intent.ACTION_MEDIA_REMOVED); + context.registerReceiver(mExternalStorageReceiver, filter); + handleExternalStorageState(); + } + + void stopWatchingExternalStorage() { + context.unregisterReceiver(mExternalStorageReceiver); + } + +} diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java index 393fd2f6..3cb498e8 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java @@ -76,6 +76,7 @@ public class TelemetryService extends Service { private AltosBluetooth mAltosBluetooth = null; private AltosConfigData mConfigData = null; private TelemetryReader mTelemetryReader = null; + private TelemetryLogger mTelemetryLogger = null; // internally track state of bluetooth connection private int state = STATE_NONE; @@ -164,6 +165,11 @@ public class TelemetryService extends Service { } mTelemetryReader = null; } + if (mTelemetryLogger != null) { + if (D) Log.d(TAG, "stopAltosBluetooth(): stopping TelemetryLogger"); + mTelemetryLogger.stop(); + mTelemetryLogger = null; + } if (mAltosBluetooth != null) { if (D) Log.d(TAG, "stopAltosBluetooth(): stopping AltosBluetooth"); mAltosBluetooth.close(); @@ -216,6 +222,8 @@ public class TelemetryService extends Service { mTelemetryReader = new TelemetryReader(mAltosBluetooth, mHandler); mTelemetryReader.start(); + + mTelemetryLogger = new TelemetryLogger(this, mAltosBluetooth); } -- cgit v1.2.3 From 8cb09f8a3e2dae5f7f3d2d3dbbc81ba40b491e75 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sun, 21 Oct 2012 20:57:21 -0700 Subject: altosdroid: AltosState now has speed and max_speed funcs These pull out the appropriate baro/accel speed values and may use some fancier values in future. Signed-off-by: Keith Packard --- altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java | 5 +---- altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) (limited to 'altosdroid/src') diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java index 3396f77e..b1fc8d30 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java @@ -189,10 +189,7 @@ public class AltosDroid extends Activity { mSerialView.setText(String.format("%d", state.data.serial)); mFlightView.setText(String.format("%d", state.data.flight)); mStateView.setText(state.data.state()); - double speed = state.speed; - if (!state.ascent) - speed = state.baro_speed; - mSpeedView.setText(String.format("%6.0f m/s", speed)); + mSpeedView.setText(String.format("%6.0f m/s", state.speed())); mAccelView.setText(String.format("%6.0f m/s²", state.acceleration)); mRangeView.setText(String.format("%6.0f m", state.range)); mHeightView.setText(String.format("%6.0f m", state.height)); diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java index 3382d551..264e35c6 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java @@ -67,7 +67,7 @@ public class AltosVoice { speak(state.data.state()); if ((old_state == null || old_state.state <= AltosLib.ao_flight_boost) && state.state > AltosLib.ao_flight_boost) { - speak(String.format("max speed: %d meters per second.", (int) (state.max_speed + 0.5))); + speak(String.format("max speed: %d meters per second.", (int) (state.max_speed() + 0.5))); spoke = true; } else if ((old_state == null || old_state.state < AltosLib.ao_flight_drogue) && state.state >= AltosLib.ao_flight_drogue) { -- cgit v1.2.3 From 4b41561abf9144e73995ccc18eadad7936d1dd15 Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Mon, 22 Oct 2012 11:55:07 +1300 Subject: altosdroid: add autogenerated BuildInfo.java * Generated by shell script that parses git describe * Makefile rule to call script on every run * also includes eclipse hooks to call shell script on build Signed-off-by: Mike Beattie --- .../Generate BuildInfo.java.launch | 11 ++++++++ altosdroid/.gitignore | 1 + altosdroid/.project | 10 +++++++ altosdroid/Makefile.am | 5 ++++ altosdroid/buildinfo.sh | 31 ++++++++++++++++++++++ .../org/altusmetrum/AltosDroid/BuildInfo.java.in | 28 +++++++++++++++++++ 6 files changed, 86 insertions(+) create mode 100644 altosdroid/.externalToolBuilders/Generate BuildInfo.java.launch create mode 100755 altosdroid/buildinfo.sh create mode 100644 altosdroid/src/org/altusmetrum/AltosDroid/BuildInfo.java.in (limited to 'altosdroid/src') diff --git a/altosdroid/.externalToolBuilders/Generate BuildInfo.java.launch b/altosdroid/.externalToolBuilders/Generate BuildInfo.java.launch new file mode 100644 index 00000000..3b8eff45 --- /dev/null +++ b/altosdroid/.externalToolBuilders/Generate BuildInfo.java.launch @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/altosdroid/.gitignore b/altosdroid/.gitignore index c0bb8dd4..e3acba40 100644 --- a/altosdroid/.gitignore +++ b/altosdroid/.gitignore @@ -1,3 +1,4 @@ local.properties bin gen +src/org/altusmetrum/AltosDroid/BuildInfo.java diff --git a/altosdroid/.project b/altosdroid/.project index 7b56596a..ebe4a4bb 100644 --- a/altosdroid/.project +++ b/altosdroid/.project @@ -5,6 +5,16 @@ + + org.eclipse.ui.externaltools.ExternalToolBuilder + auto,full,incremental, + + + LaunchConfigHandle + <project>/.externalToolBuilders/Generate BuildInfo.java.launch + + + com.android.ide.eclipse.adt.ResourceManagerBuilder diff --git a/altosdroid/Makefile.am b/altosdroid/Makefile.am index 96831b72..3860e110 100644 --- a/altosdroid/Makefile.am +++ b/altosdroid/Makefile.am @@ -30,6 +30,7 @@ SRC=\ $(SRC_DIR)/TelemetryLogger.java \ $(SRC_DIR)/AltosBluetooth.java \ $(SRC_DIR)/DeviceListActivity.java \ + $(SRC_DIR)/BuildInfo.java \ $(SRC_DIR)/Dumper.java all: $(all_target) @@ -38,6 +39,9 @@ $(ALTOSLIB): $(ALTOSLIB_SRCDIR)/$(ALTOSLIB_JAR) mkdir -p $(EXT_LIBDIR) cd $(EXT_LIBDIR) && ln -s $(shell echo $(EXT_LIBDIR) | sed 's|[^/]\+|..|g')/$(ALTOSLIB_SRCDIR)/$(ALTOSLIB_JAR) . +$(SRC_DIR)/BuildInfo.java: + ./buildinfo.sh + if ANDROID install-release: bin/AltosDroid-release.apk $(ADB) install -r bin/AltosDroid-release.apk @@ -55,3 +59,4 @@ endif clean: $(clean_command) +.PHONY: $(SRC_DIR)/BuildInfo.java diff --git a/altosdroid/buildinfo.sh b/altosdroid/buildinfo.sh new file mode 100755 index 00000000..f620c4a0 --- /dev/null +++ b/altosdroid/buildinfo.sh @@ -0,0 +1,31 @@ +#!/bin/sh +# + +describe=$(git describe --always 2>/dev/null || echo '') +if [ -n "$describe" ]; then + version=$(echo $describe | cut -d- -f1) + commitnum=$(echo $describe | cut -d- -f2) + commithash=$(echo $describe | cut -d- -f3) +else + . ../src/Version + version=$VERSION + commitnum='' + commithash='' +fi + +builddate=$(date "+%Y-%m-%d") +buildtime=$(date "+%H:%M") + + +infile=src/org/altusmetrum/AltosDroid/BuildInfo.java.in +outfile=src/org/altusmetrum/AltosDroid/BuildInfo.java + +echo "Version $describe, built on $builddate, $buildtime" + +sed -e "s/@DESCRIBE@/$describe/" \ + -e "s/@VERSION@/$version/" \ + -e "s/@COMMITNUM@/$commitnum/" \ + -e "s/@COMMITHASH@/$commithash/" \ + -e "s/@BUILDDATE@/$builddate/" \ + -e "s/@BUILDTIME@/$buildtime/" \ + $infile > $outfile diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/BuildInfo.java.in b/altosdroid/src/org/altusmetrum/AltosDroid/BuildInfo.java.in new file mode 100644 index 00000000..763f814e --- /dev/null +++ b/altosdroid/src/org/altusmetrum/AltosDroid/BuildInfo.java.in @@ -0,0 +1,28 @@ +/* + * Copyright © 2012 Mike Beattie + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ + +package org.altusmetrum.AltosDroid; + +public class BuildInfo { + public static final String git_describe = "@DESCRIBE@"; + public static final String version = "@VERSION@"; + public static final String commitnum = "@COMMITNUM@"; + public static final String commithash = "@COMMITHASH@"; + public static final String builddate = "@BUILDDATE@"; + public static final String buildtime = "@BUILDTIME@"; +} + -- cgit v1.2.3 From 5ad62b07bef41921b46cb7251072dc24290ee4c9 Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Wed, 24 Oct 2012 20:52:09 +1300 Subject: altosdroid: Add branch to BuildInfo Signed-off-by: Mike Beattie --- altosdroid/buildinfo.sh | 11 ++++++++--- altosdroid/src/org/altusmetrum/AltosDroid/BuildInfo.java.in | 4 +++- 2 files changed, 11 insertions(+), 4 deletions(-) (limited to 'altosdroid/src') diff --git a/altosdroid/buildinfo.sh b/altosdroid/buildinfo.sh index 781b251b..e1b650f8 100755 --- a/altosdroid/buildinfo.sh +++ b/altosdroid/buildinfo.sh @@ -12,26 +12,31 @@ outfile=src/org/altusmetrum/AltosDroid/BuildInfo.java . ../src/Version version=$VERSION +branch='' commitnum='' commithash='' builddate=$(date "+%Y-%m-%d") buildtime=$(date "+%H:%M") +buildtz=$(date "+%z") describe=$(git describe --match "$version" --long --always 2>/dev/null || echo '') if [ -n "$describe" ]; then + branch=$(git status -s -b | sed -ne '1s/^## \(.*\)\.\.\..*$/\1/p') commitdetails=$(echo $describe | sed -e "s/^$version-//") commitnum=$(echo $commitdetails | cut -d- -f1) commithash=$(echo $commitdetails | cut -d- -f2) fi -echo "Version $describe, built on $builddate, $buildtime" +echo "Version $describe, built on $builddate $buildtime $buildtz" -sed -e "s/@DESCRIBE@/$describe/" \ - -e "s/@VERSION@/$version/" \ +sed -e "s/@VERSION@/$version/" \ + -e "s/@DESCRIBE@/$describe/" \ + -e "s/@BRANCH@/$branch/" \ -e "s/@COMMITNUM@/$commitnum/" \ -e "s/@COMMITHASH@/$commithash/" \ -e "s/@BUILDDATE@/$builddate/" \ -e "s/@BUILDTIME@/$buildtime/" \ + -e "s/@BUILDTZ@/$buildtz/" \ $infile > $outfile diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/BuildInfo.java.in b/altosdroid/src/org/altusmetrum/AltosDroid/BuildInfo.java.in index 763f814e..e9b3011a 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/BuildInfo.java.in +++ b/altosdroid/src/org/altusmetrum/AltosDroid/BuildInfo.java.in @@ -18,11 +18,13 @@ package org.altusmetrum.AltosDroid; public class BuildInfo { - public static final String git_describe = "@DESCRIBE@"; public static final String version = "@VERSION@"; + public static final String git_describe = "@DESCRIBE@"; + public static final String branch = "@BRANCH@"; public static final String commitnum = "@COMMITNUM@"; public static final String commithash = "@COMMITHASH@"; public static final String builddate = "@BUILDDATE@"; public static final String buildtime = "@BUILDTIME@"; + public static final String buildtz = "@BUILDTZ@"; } -- cgit v1.2.3 From 78e1de481bfdbf7c7bb908c317b23c8ee275c84f Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Wed, 24 Oct 2012 20:54:18 +1300 Subject: altosdroid: Add version information to UI Signed-off-by: Mike Beattie --- altosdroid/res/layout/altosdroid.xml | 35 +++++++++++++++------- .../src/org/altusmetrum/AltosDroid/AltosDroid.java | 6 ++++ 2 files changed, 31 insertions(+), 10 deletions(-) (limited to 'altosdroid/src') diff --git a/altosdroid/res/layout/altosdroid.xml b/altosdroid/res/layout/altosdroid.xml index f185ea9f..691c5e04 100644 --- a/altosdroid/res/layout/altosdroid.xml +++ b/altosdroid/res/layout/altosdroid.xml @@ -335,15 +335,30 @@ - + + + + + + + diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java index b1fc8d30..ab1fb0de 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java @@ -81,6 +81,7 @@ public class AltosDroid extends Activity { // Generic field for extras at the bottom private TextView mTextView; + private TextView mVersion; // Service private boolean mIsBound = false; @@ -249,6 +250,11 @@ public class AltosDroid extends Activity { mTextView.setClickable(false); mTextView.setLongClickable(false); + mVersion = (TextView) findViewById(R.id.version); + mVersion.setText("Version: " + BuildInfo.version + + " 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); mSerialView = (TextView) findViewById(R.id.serial_value); -- cgit v1.2.3 From d05a77992df983b9fa79f0e2b20d2c6b387c180c Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Tue, 29 Jan 2013 01:34:48 +1300 Subject: altosdroid: initial release to Play Store * Add release keystore (encrypted) * Turn off debugging in UI * add 'sign' target to Makefile.am * Update version string in AndroidManifest.xml to match released version of altosui. Signed-off-by: Mike Beattie --- altosdroid/AndroidManifest.xml | 2 +- altosdroid/Makefile.am | 9 +++++++++ altosdroid/release.keystore | Bin 0 -> 1243 bytes .../src/org/altusmetrum/AltosDroid/AltosDroid.java | 4 ++-- 4 files changed, 12 insertions(+), 3 deletions(-) create mode 100644 altosdroid/release.keystore (limited to 'altosdroid/src') diff --git a/altosdroid/AndroidManifest.xml b/altosdroid/AndroidManifest.xml index 7147c0b1..8ecfcbb5 100644 --- a/altosdroid/AndroidManifest.xml +++ b/altosdroid/AndroidManifest.xml @@ -18,7 +18,7 @@ + android:versionName="1.1.9.3"> diff --git a/altosdroid/Makefile.am b/altosdroid/Makefile.am index 3860e110..3b5abfc4 100644 --- a/altosdroid/Makefile.am +++ b/altosdroid/Makefile.am @@ -54,6 +54,15 @@ bin/AltosDroid-debug.apk: $(SRC) $(ALTOSLIB) bin/AltosDroid-release.apk: $(SRC) $(ALTOSLIB) ant release + +sign: + jarsigner -keystore release.keystore \ + -signedjar bin/AltosDroid-release-signed.apk \ + bin/AltosDroid-release-unsigned.apk AltosDroid + $(SDK)/tools/zipalign -f 4 \ + bin/AltosDroid-release-signed.apk \ + bin/AltosDroid-release.apk + endif clean: diff --git a/altosdroid/release.keystore b/altosdroid/release.keystore new file mode 100644 index 00000000..53607dcb Binary files /dev/null and b/altosdroid/release.keystore differ diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java index ab1fb0de..7f98e7f6 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java @@ -119,7 +119,7 @@ public class AltosDroid extends Activity { Toast.makeText(ad.getApplicationContext(), "Connected to " + str, Toast.LENGTH_SHORT).show(); ad.mAltosVoice.speak("Connected"); //TEST! - ad.mTextView.setText(Dumper.dump(ad.mConfigData)); + //ad.mTextView.setText(Dumper.dump(ad.mConfigData)); break; case TelemetryService.STATE_CONNECTING: ad.mTitle.setText(R.string.title_connecting); @@ -135,7 +135,7 @@ public class AltosDroid extends Activity { case MSG_TELEMETRY: ad.update_ui((AltosState) msg.obj); // TEST! - ad.mTextView.setText(Dumper.dump(msg.obj)); + //ad.mTextView.setText(Dumper.dump(msg.obj)); break; } } -- cgit v1.2.3 From 8d1d8d2a3c129cdbd55427bcda0f26715b02f1ee Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Tue, 29 Jan 2013 17:00:43 +1100 Subject: Add version numbers to java libraries Make our private java library names include a version number so we can ship and install multiple versions at the same time. Signed-off-by: Keith Packard --- altosdroid/Makefile.am | 7 +- altosdroid/libs/.gitignore | 1 - .../org/altusmetrum/AltosDroid/AltosBluetooth.java | 2 +- .../src/org/altusmetrum/AltosDroid/AltosDroid.java | 2 +- .../AltosDroid/AltosDroidPreferences.java | 2 +- .../src/org/altusmetrum/AltosDroid/AltosVoice.java | 2 +- .../altusmetrum/AltosDroid/TelemetryLogger.java | 2 +- .../altusmetrum/AltosDroid/TelemetryReader.java | 2 +- .../altusmetrum/AltosDroid/TelemetryService.java | 2 +- altoslib/AltosAccel.java | 2 +- altoslib/AltosCRCException.java | 2 +- altoslib/AltosConfigData.java | 2 +- altoslib/AltosConfigValues.java | 2 +- altoslib/AltosConvert.java | 2 +- altoslib/AltosDistance.java | 2 +- altoslib/AltosEepromChunk.java | 2 +- altoslib/AltosEepromIterable.java | 2 +- altoslib/AltosEepromLog.java | 2 +- altoslib/AltosEepromMega.java | 2 +- altoslib/AltosEepromMegaIterable.java | 2 +- altoslib/AltosEepromRecord.java | 2 +- altoslib/AltosEepromTeleScience.java | 2 +- altoslib/AltosFile.java | 2 +- altoslib/AltosFlightReader.java | 2 +- altoslib/AltosFrequency.java | 2 +- altoslib/AltosGPS.java | 2 +- altoslib/AltosGPSQuery.java | 2 +- altoslib/AltosGPSSat.java | 2 +- altoslib/AltosGreatCircle.java | 2 +- altoslib/AltosHeight.java | 2 +- altoslib/AltosIMU.java | 2 +- altoslib/AltosIMUQuery.java | 2 +- altoslib/AltosIdleMonitor.java | 2 +- altoslib/AltosIdleMonitorListener.java | 2 +- altoslib/AltosIgnite.java | 2 +- altoslib/AltosLib.java | 2 +- altoslib/AltosLine.java | 2 +- altoslib/AltosLink.java | 2 +- altoslib/AltosLog.java | 2 +- altoslib/AltosMag.java | 2 +- altoslib/AltosMs5607.java | 2 +- altoslib/AltosMs5607Query.java | 2 +- altoslib/AltosOrderedMegaRecord.java | 2 +- altoslib/AltosOrderedRecord.java | 2 +- altoslib/AltosParse.java | 2 +- altoslib/AltosPreferences.java | 2 +- altoslib/AltosPreferencesBackend.java | 2 +- altoslib/AltosPyro.java | 2 +- altoslib/AltosRecord.java | 2 +- altoslib/AltosRecordCompanion.java | 2 +- altoslib/AltosRecordIterable.java | 2 +- altoslib/AltosRecordMM.java | 2 +- altoslib/AltosRecordNone.java | 2 +- altoslib/AltosRecordTM.java | 2 +- altoslib/AltosReplayReader.java | 2 +- altoslib/AltosSensorMM.java | 2 +- altoslib/AltosSensorTM.java | 2 +- altoslib/AltosSpeed.java | 2 +- altoslib/AltosState.java | 2 +- altoslib/AltosTelemetry.java | 2 +- altoslib/AltosTelemetryIterable.java | 2 +- altoslib/AltosTelemetryMap.java | 2 +- altoslib/AltosTelemetryReader.java | 2 +- altoslib/AltosTelemetryRecord.java | 2 +- altoslib/AltosTelemetryRecordCompanion.java | 2 +- altoslib/AltosTelemetryRecordConfiguration.java | 2 +- altoslib/AltosTelemetryRecordGeneral.java | 2 +- altoslib/AltosTelemetryRecordLegacy.java | 2 +- altoslib/AltosTelemetryRecordLocation.java | 2 +- altoslib/AltosTelemetryRecordMegaData.java | 2 +- altoslib/AltosTelemetryRecordMegaSensor.java | 2 +- altoslib/AltosTelemetryRecordRaw.java | 2 +- altoslib/AltosTelemetryRecordSatellite.java | 2 +- altoslib/AltosTelemetryRecordSensor.java | 2 +- altoslib/AltosUnits.java | 2 +- altoslib/AltosUnitsListener.java | 2 +- altoslib/Makefile.am | 147 ++++++++++----------- altosui/Altos.java | 4 +- altosui/AltosAscent.java | 2 +- altosui/AltosBTDevice.java | 2 +- altosui/AltosBTKnown.java | 4 +- altosui/AltosBTManage.java | 2 +- altosui/AltosCSV.java | 2 +- altosui/AltosCSVUI.java | 4 +- altosui/AltosCompanionInfo.java | 2 +- altosui/AltosConfig.java | 4 +- altosui/AltosConfigFreqUI.java | 4 +- altosui/AltosConfigPyroUI.java | 4 +- altosui/AltosConfigTD.java | 4 +- altosui/AltosConfigTDUI.java | 4 +- altosui/AltosConfigUI.java | 4 +- altosui/AltosConfigureUI.java | 2 +- altosui/AltosDataChooser.java | 4 +- altosui/AltosDataPointReader.java | 2 +- altosui/AltosDebug.java | 2 +- altosui/AltosDescent.java | 2 +- altosui/AltosDeviceUIDialog.java | 2 +- altosui/AltosDisplayThread.java | 2 +- altosui/AltosEepromDelete.java | 2 +- altosui/AltosEepromDownload.java | 2 +- altosui/AltosEepromList.java | 2 +- altosui/AltosEepromManage.java | 4 +- altosui/AltosEepromMonitor.java | 2 +- altosui/AltosEepromSelect.java | 4 +- altosui/AltosFlash.java | 2 +- altosui/AltosFlashUI.java | 2 +- altosui/AltosFlightDisplay.java | 2 +- altosui/AltosFlightStats.java | 2 +- altosui/AltosFlightStatsTable.java | 2 +- altosui/AltosFlightStatus.java | 2 +- altosui/AltosFlightStatusTableModel.java | 2 +- altosui/AltosFlightStatusUpdate.java | 2 +- altosui/AltosFlightUI.java | 4 +- altosui/AltosFreqList.java | 4 +- altosui/AltosGraphUI.java | 4 +- altosui/AltosIdleMonitorUI.java | 4 +- altosui/AltosIgniteUI.java | 4 +- altosui/AltosInfoTable.java | 2 +- altosui/AltosKML.java | 2 +- altosui/AltosLanded.java | 2 +- altosui/AltosLaunch.java | 2 +- altosui/AltosLaunchUI.java | 2 +- altosui/AltosPad.java | 2 +- altosui/AltosRomconfigUI.java | 2 +- altosui/AltosScanUI.java | 4 +- altosui/AltosSerial.java | 4 +- altosui/AltosSerialInUseException.java | 2 +- altosui/AltosSiteMap.java | 4 +- altosui/AltosSiteMapPreload.java | 2 +- altosui/AltosSiteMapTile.java | 2 +- altosui/AltosUI.java | 4 +- altosui/AltosUIPreferencesBackend.java | 2 +- altosui/AltosVoice.java | 2 +- altosui/AltosWriter.java | 2 +- altosuilib/AltosDevice.java | 2 +- altosuilib/AltosDeviceDialog.java | 2 +- altosuilib/AltosFontListener.java | 2 +- altosuilib/AltosPositionListener.java | 2 +- altosuilib/AltosUIConfigure.java | 2 +- altosuilib/AltosUIDialog.java | 2 +- altosuilib/AltosUIFrame.java | 2 +- altosuilib/AltosUILib.java | 4 +- altosuilib/AltosUIListener.java | 2 +- altosuilib/AltosUIPreferences.java | 4 +- altosuilib/AltosUIPreferencesBackend.java | 4 +- altosuilib/AltosUIVersion.java.in | 2 +- altosuilib/AltosUSBDevice.java | 2 +- altosuilib/AltosUnitsListener.java | 2 +- altosuilib/Makefile.am | 2 +- fix-java-versions | 11 ++ micropeak/MicroData.java | 2 +- micropeak/MicroDeviceDialog.java | 2 +- micropeak/MicroDownload.java | 4 +- micropeak/MicroExport.java | 4 +- micropeak/MicroFile.java | 4 +- micropeak/MicroFileChooser.java | 4 +- micropeak/MicroFrame.java | 2 +- micropeak/MicroGraph.java | 2 +- micropeak/MicroPeak.java | 4 +- micropeak/MicroRaw.java | 4 +- micropeak/MicroSave.java | 4 +- micropeak/MicroSerial.java | 2 +- micropeak/MicroStats.java | 4 +- micropeak/MicroStatsTable.java | 4 +- micropeak/MicroUSB.java | 2 +- 165 files changed, 283 insertions(+), 271 deletions(-) delete mode 100644 altosdroid/libs/.gitignore create mode 100755 fix-java-versions (limited to 'altosdroid/src') diff --git a/altosdroid/Makefile.am b/altosdroid/Makefile.am index 3860e110..cc74b7a8 100644 --- a/altosdroid/Makefile.am +++ b/altosdroid/Makefile.am @@ -17,7 +17,7 @@ ZIPALIGN=$(SDK)/tools/zipalign SRC_DIR=src/org/altusmetrum/AltosDroid EXT_LIBDIR=libs ALTOSLIB_SRCDIR=../altoslib -ALTOSLIB_JAR=AltosLib.jar +ALTOSLIB_JAR=altoslib_$(ALTOSLIB_VERSION).jar ALTOSLIB=$(EXT_LIBDIR)/$(ALTOSLIB_JAR) @@ -56,7 +56,10 @@ bin/AltosDroid-release.apk: $(SRC) $(ALTOSLIB) ant release endif -clean: +clean: clean-local $(clean_command) +clean-local: + rm -rf $(EXT_LIBDIR) + .PHONY: $(SRC_DIR)/BuildInfo.java diff --git a/altosdroid/libs/.gitignore b/altosdroid/libs/.gitignore deleted file mode 100644 index b4e68f63..00000000 --- a/altosdroid/libs/.gitignore +++ /dev/null @@ -1 +0,0 @@ -AltosLib.jar diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosBluetooth.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosBluetooth.java index 9fcc4eba..0aea06f1 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.*; +import org.altusmetrum.altoslib_1.*; public class AltosBluetooth extends AltosLink { diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java index ab1fb0de..fe4907dd 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java @@ -43,7 +43,7 @@ import android.widget.TextView; import android.widget.Toast; import android.app.AlertDialog; -import org.altusmetrum.AltosLib.*; +import org.altusmetrum.altoslib_1.*; /** * This is the main Activity that displays the current chat session. diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java index 3b4bdcf8..fd4b0768 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java @@ -23,7 +23,7 @@ import android.content.Context; import android.content.SharedPreferences; import android.os.Environment; -import org.altusmetrum.AltosLib.*; +import org.altusmetrum.altoslib_1.*; public class AltosDroidPreferences implements AltosPreferencesBackend { public final static String NAME = "org.altusmetrum.AltosDroid"; diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java index 264e35c6..7da5c4a9 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.*; +import org.altusmetrum.altoslib_1.*; public class AltosVoice { diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryLogger.java b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryLogger.java index b2dcdb48..3ece04ac 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.*; +import org.altusmetrum.altoslib_1.*; 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 66e9c6bd..9460bdbc 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.*; +import org.altusmetrum.altoslib_1.*; public class TelemetryReader extends Thread { diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java index 3cb498e8..5ff00a68 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java @@ -38,7 +38,7 @@ import android.os.RemoteException; import android.util.Log; import android.widget.Toast; -import org.altusmetrum.AltosLib.*; +import org.altusmetrum.altoslib_1.*; public class TelemetryService extends Service { diff --git a/altoslib/AltosAccel.java b/altoslib/AltosAccel.java index 9cb9a14b..af8c36b9 100644 --- a/altoslib/AltosAccel.java +++ b/altoslib/AltosAccel.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; public class AltosAccel extends AltosUnits { diff --git a/altoslib/AltosCRCException.java b/altoslib/AltosCRCException.java index 1dd33ce9..76e79add 100644 --- a/altoslib/AltosCRCException.java +++ b/altoslib/AltosCRCException.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; public class AltosCRCException extends Exception { public int rssi; diff --git a/altoslib/AltosConfigData.java b/altoslib/AltosConfigData.java index 387d1067..24ab2556 100644 --- a/altoslib/AltosConfigData.java +++ b/altoslib/AltosConfigData.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; import java.util.*; import java.text.*; diff --git a/altoslib/AltosConfigValues.java b/altoslib/AltosConfigValues.java index 2ec4b2a6..027d10f4 100644 --- a/altoslib/AltosConfigValues.java +++ b/altoslib/AltosConfigValues.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; public interface AltosConfigValues { /* set and get all of the dialog values */ diff --git a/altoslib/AltosConvert.java b/altoslib/AltosConvert.java index 6345e522..8adec068 100644 --- a/altoslib/AltosConvert.java +++ b/altoslib/AltosConvert.java @@ -18,7 +18,7 @@ /* * Sensor data conversion functions */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; public class AltosConvert { /* diff --git a/altoslib/AltosDistance.java b/altoslib/AltosDistance.java index 3e994618..9d98f6b6 100644 --- a/altoslib/AltosDistance.java +++ b/altoslib/AltosDistance.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; public class AltosDistance extends AltosUnits { diff --git a/altoslib/AltosEepromChunk.java b/altoslib/AltosEepromChunk.java index a1fc7d11..b1bba3bb 100644 --- a/altoslib/AltosEepromChunk.java +++ b/altoslib/AltosEepromChunk.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; import java.text.*; import java.util.concurrent.*; diff --git a/altoslib/AltosEepromIterable.java b/altoslib/AltosEepromIterable.java index 2e8715ba..bc698c80 100644 --- a/altoslib/AltosEepromIterable.java +++ b/altoslib/AltosEepromIterable.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; import java.io.*; import java.util.*; diff --git a/altoslib/AltosEepromLog.java b/altoslib/AltosEepromLog.java index 8a631c3c..20026c6d 100644 --- a/altoslib/AltosEepromLog.java +++ b/altoslib/AltosEepromLog.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; import java.text.*; import java.util.concurrent.*; diff --git a/altoslib/AltosEepromMega.java b/altoslib/AltosEepromMega.java index 0c38a915..b077e26c 100644 --- a/altoslib/AltosEepromMega.java +++ b/altoslib/AltosEepromMega.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; import java.text.*; diff --git a/altoslib/AltosEepromMegaIterable.java b/altoslib/AltosEepromMegaIterable.java index 05fc1f4a..a127f435 100644 --- a/altoslib/AltosEepromMegaIterable.java +++ b/altoslib/AltosEepromMegaIterable.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; import java.io.*; import java.util.*; diff --git a/altoslib/AltosEepromRecord.java b/altoslib/AltosEepromRecord.java index 0c914aca..70ac1113 100644 --- a/altoslib/AltosEepromRecord.java +++ b/altoslib/AltosEepromRecord.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; import java.text.*; diff --git a/altoslib/AltosEepromTeleScience.java b/altoslib/AltosEepromTeleScience.java index c983131e..2a828cf3 100644 --- a/altoslib/AltosEepromTeleScience.java +++ b/altoslib/AltosEepromTeleScience.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; import java.text.*; diff --git a/altoslib/AltosFile.java b/altoslib/AltosFile.java index a2ff261a..90dbc6db 100644 --- a/altoslib/AltosFile.java +++ b/altoslib/AltosFile.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; import java.io.File; import java.util.*; diff --git a/altoslib/AltosFlightReader.java b/altoslib/AltosFlightReader.java index 87a53222..3039b4dc 100644 --- a/altoslib/AltosFlightReader.java +++ b/altoslib/AltosFlightReader.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; import java.text.*; import java.io.*; diff --git a/altoslib/AltosFrequency.java b/altoslib/AltosFrequency.java index 2e55d3b9..484a2fd9 100644 --- a/altoslib/AltosFrequency.java +++ b/altoslib/AltosFrequency.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; public class AltosFrequency { public double frequency; diff --git a/altoslib/AltosGPS.java b/altoslib/AltosGPS.java index 6405579b..068d8c9c 100644 --- a/altoslib/AltosGPS.java +++ b/altoslib/AltosGPS.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; import java.text.*; diff --git a/altoslib/AltosGPSQuery.java b/altoslib/AltosGPSQuery.java index fe453e0d..deb9d201 100644 --- a/altoslib/AltosGPSQuery.java +++ b/altoslib/AltosGPSQuery.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; import java.util.concurrent.*; diff --git a/altoslib/AltosGPSSat.java b/altoslib/AltosGPSSat.java index 605c592a..8714dd8a 100644 --- a/altoslib/AltosGPSSat.java +++ b/altoslib/AltosGPSSat.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; public class AltosGPSSat { public int svid; diff --git a/altoslib/AltosGreatCircle.java b/altoslib/AltosGreatCircle.java index ad7849a3..921356a5 100644 --- a/altoslib/AltosGreatCircle.java +++ b/altoslib/AltosGreatCircle.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; import java.lang.Math; diff --git a/altoslib/AltosHeight.java b/altoslib/AltosHeight.java index d7192e0b..e0fef5f6 100644 --- a/altoslib/AltosHeight.java +++ b/altoslib/AltosHeight.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; public class AltosHeight extends AltosUnits { diff --git a/altoslib/AltosIMU.java b/altoslib/AltosIMU.java index cf37eba1..8f6731fa 100644 --- a/altoslib/AltosIMU.java +++ b/altoslib/AltosIMU.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; public class AltosIMU { public int accel_x; diff --git a/altoslib/AltosIMUQuery.java b/altoslib/AltosIMUQuery.java index f2ada8d4..4ea5d963 100644 --- a/altoslib/AltosIMUQuery.java +++ b/altoslib/AltosIMUQuery.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; import java.util.concurrent.TimeoutException; diff --git a/altoslib/AltosIdleMonitor.java b/altoslib/AltosIdleMonitor.java index 0a80ca6b..6b20b3f1 100644 --- a/altoslib/AltosIdleMonitor.java +++ b/altoslib/AltosIdleMonitor.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; import java.io.*; import java.util.concurrent.*; diff --git a/altoslib/AltosIdleMonitorListener.java b/altoslib/AltosIdleMonitorListener.java index 580626dd..7f58d61c 100644 --- a/altoslib/AltosIdleMonitorListener.java +++ b/altoslib/AltosIdleMonitorListener.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; public interface AltosIdleMonitorListener { public void update(AltosState state); diff --git a/altoslib/AltosIgnite.java b/altoslib/AltosIgnite.java index 41f1faaf..85905900 100644 --- a/altoslib/AltosIgnite.java +++ b/altoslib/AltosIgnite.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; import java.io.*; import java.util.concurrent.*; diff --git a/altoslib/AltosLib.java b/altoslib/AltosLib.java index b3fe2968..cb5d467b 100644 --- a/altoslib/AltosLib.java +++ b/altoslib/AltosLib.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; import java.util.*; import java.io.*; diff --git a/altoslib/AltosLine.java b/altoslib/AltosLine.java index efa7df7a..b3bd20f9 100644 --- a/altoslib/AltosLine.java +++ b/altoslib/AltosLine.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; public class AltosLine { public String line; diff --git a/altoslib/AltosLink.java b/altoslib/AltosLink.java index 02880ec9..2b5909aa 100644 --- a/altoslib/AltosLink.java +++ b/altoslib/AltosLink.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; import java.io.*; import java.util.concurrent.*; diff --git a/altoslib/AltosLog.java b/altoslib/AltosLog.java index ab707edd..974c9f0f 100644 --- a/altoslib/AltosLog.java +++ b/altoslib/AltosLog.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; import java.io.*; import java.text.ParseException; diff --git a/altoslib/AltosMag.java b/altoslib/AltosMag.java index 760cc623..b3bbd92f 100644 --- a/altoslib/AltosMag.java +++ b/altoslib/AltosMag.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; public class AltosMag { public int x; diff --git a/altoslib/AltosMs5607.java b/altoslib/AltosMs5607.java index da64a0ea..606916b7 100644 --- a/altoslib/AltosMs5607.java +++ b/altoslib/AltosMs5607.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; public class AltosMs5607 { public int reserved; diff --git a/altoslib/AltosMs5607Query.java b/altoslib/AltosMs5607Query.java index 08089b07..d39dbf26 100644 --- a/altoslib/AltosMs5607Query.java +++ b/altoslib/AltosMs5607Query.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; import java.util.concurrent.TimeoutException; diff --git a/altoslib/AltosOrderedMegaRecord.java b/altoslib/AltosOrderedMegaRecord.java index 4db0bcf8..b20a5bbd 100644 --- a/altoslib/AltosOrderedMegaRecord.java +++ b/altoslib/AltosOrderedMegaRecord.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; import java.text.ParseException; diff --git a/altoslib/AltosOrderedRecord.java b/altoslib/AltosOrderedRecord.java index 73b4d3f8..63507d39 100644 --- a/altoslib/AltosOrderedRecord.java +++ b/altoslib/AltosOrderedRecord.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; import java.text.ParseException; diff --git a/altoslib/AltosParse.java b/altoslib/AltosParse.java index e4ab662a..66bbeed5 100644 --- a/altoslib/AltosParse.java +++ b/altoslib/AltosParse.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; import java.text.*; diff --git a/altoslib/AltosPreferences.java b/altoslib/AltosPreferences.java index 65a46eb6..392497ef 100644 --- a/altoslib/AltosPreferences.java +++ b/altoslib/AltosPreferences.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; import java.io.*; import java.util.*; diff --git a/altoslib/AltosPreferencesBackend.java b/altoslib/AltosPreferencesBackend.java index 99ca9432..fb8a235a 100644 --- a/altoslib/AltosPreferencesBackend.java +++ b/altoslib/AltosPreferencesBackend.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; import java.io.File; diff --git a/altoslib/AltosPyro.java b/altoslib/AltosPyro.java index 0554ff11..4dbb4223 100644 --- a/altoslib/AltosPyro.java +++ b/altoslib/AltosPyro.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; import java.util.*; import java.text.*; diff --git a/altoslib/AltosRecord.java b/altoslib/AltosRecord.java index b519807b..f8c44cc5 100644 --- a/altoslib/AltosRecord.java +++ b/altoslib/AltosRecord.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; public abstract class AltosRecord implements Comparable , Cloneable { diff --git a/altoslib/AltosRecordCompanion.java b/altoslib/AltosRecordCompanion.java index ffb114ec..b153fb5b 100644 --- a/altoslib/AltosRecordCompanion.java +++ b/altoslib/AltosRecordCompanion.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; public class AltosRecordCompanion { public final static int board_id_telescience = 0x0a; diff --git a/altoslib/AltosRecordIterable.java b/altoslib/AltosRecordIterable.java index 17b13c7d..62dbdfe3 100644 --- a/altoslib/AltosRecordIterable.java +++ b/altoslib/AltosRecordIterable.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; import java.io.*; import java.util.*; diff --git a/altoslib/AltosRecordMM.java b/altoslib/AltosRecordMM.java index f950d170..bf64192c 100644 --- a/altoslib/AltosRecordMM.java +++ b/altoslib/AltosRecordMM.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; public class AltosRecordMM extends AltosRecord { diff --git a/altoslib/AltosRecordNone.java b/altoslib/AltosRecordNone.java index 3fab1121..a95b6a9c 100644 --- a/altoslib/AltosRecordNone.java +++ b/altoslib/AltosRecordNone.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; public class AltosRecordNone extends AltosRecord { diff --git a/altoslib/AltosRecordTM.java b/altoslib/AltosRecordTM.java index eb6935d5..c6cf3646 100644 --- a/altoslib/AltosRecordTM.java +++ b/altoslib/AltosRecordTM.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; public class AltosRecordTM extends AltosRecord { diff --git a/altoslib/AltosReplayReader.java b/altoslib/AltosReplayReader.java index 7184206c..a7e30370 100644 --- a/altoslib/AltosReplayReader.java +++ b/altoslib/AltosReplayReader.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; import java.io.*; import java.util.*; diff --git a/altoslib/AltosSensorMM.java b/altoslib/AltosSensorMM.java index c29aa3dc..8372d047 100644 --- a/altoslib/AltosSensorMM.java +++ b/altoslib/AltosSensorMM.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; import java.util.concurrent.TimeoutException; diff --git a/altoslib/AltosSensorTM.java b/altoslib/AltosSensorTM.java index c3cbe7bb..f5fa83a5 100644 --- a/altoslib/AltosSensorTM.java +++ b/altoslib/AltosSensorTM.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; import java.util.concurrent.TimeoutException; diff --git a/altoslib/AltosSpeed.java b/altoslib/AltosSpeed.java index 230457dd..020c1377 100644 --- a/altoslib/AltosSpeed.java +++ b/altoslib/AltosSpeed.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; public class AltosSpeed extends AltosUnits { diff --git a/altoslib/AltosState.java b/altoslib/AltosState.java index 1838f12d..32d02f21 100644 --- a/altoslib/AltosState.java +++ b/altoslib/AltosState.java @@ -19,7 +19,7 @@ * Track flight state from telemetry or eeprom data stream */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; public class AltosState { public AltosRecord data; diff --git a/altoslib/AltosTelemetry.java b/altoslib/AltosTelemetry.java index 26d79cd8..e7322349 100644 --- a/altoslib/AltosTelemetry.java +++ b/altoslib/AltosTelemetry.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; import java.text.*; diff --git a/altoslib/AltosTelemetryIterable.java b/altoslib/AltosTelemetryIterable.java index 092051a1..57033638 100644 --- a/altoslib/AltosTelemetryIterable.java +++ b/altoslib/AltosTelemetryIterable.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; import java.io.*; import java.util.*; diff --git a/altoslib/AltosTelemetryMap.java b/altoslib/AltosTelemetryMap.java index 529176d2..7cca98b0 100644 --- a/altoslib/AltosTelemetryMap.java +++ b/altoslib/AltosTelemetryMap.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; import java.text.*; import java.util.HashMap; diff --git a/altoslib/AltosTelemetryReader.java b/altoslib/AltosTelemetryReader.java index 7139644e..f365b821 100644 --- a/altoslib/AltosTelemetryReader.java +++ b/altoslib/AltosTelemetryReader.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; import java.text.*; import java.io.*; diff --git a/altoslib/AltosTelemetryRecord.java b/altoslib/AltosTelemetryRecord.java index 22da2836..01215968 100644 --- a/altoslib/AltosTelemetryRecord.java +++ b/altoslib/AltosTelemetryRecord.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; import java.text.*; public abstract class AltosTelemetryRecord { diff --git a/altoslib/AltosTelemetryRecordCompanion.java b/altoslib/AltosTelemetryRecordCompanion.java index d68120c0..e016dd01 100644 --- a/altoslib/AltosTelemetryRecordCompanion.java +++ b/altoslib/AltosTelemetryRecordCompanion.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; public class AltosTelemetryRecordCompanion extends AltosTelemetryRecordRaw { diff --git a/altoslib/AltosTelemetryRecordConfiguration.java b/altoslib/AltosTelemetryRecordConfiguration.java index 7482ef5b..472a6318 100644 --- a/altoslib/AltosTelemetryRecordConfiguration.java +++ b/altoslib/AltosTelemetryRecordConfiguration.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; public class AltosTelemetryRecordConfiguration extends AltosTelemetryRecordRaw { diff --git a/altoslib/AltosTelemetryRecordGeneral.java b/altoslib/AltosTelemetryRecordGeneral.java index f3985211..08cd6065 100644 --- a/altoslib/AltosTelemetryRecordGeneral.java +++ b/altoslib/AltosTelemetryRecordGeneral.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; import java.text.*; diff --git a/altoslib/AltosTelemetryRecordLegacy.java b/altoslib/AltosTelemetryRecordLegacy.java index 1202099a..a734b188 100644 --- a/altoslib/AltosTelemetryRecordLegacy.java +++ b/altoslib/AltosTelemetryRecordLegacy.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; import java.text.*; diff --git a/altoslib/AltosTelemetryRecordLocation.java b/altoslib/AltosTelemetryRecordLocation.java index a0a8ab81..469a5400 100644 --- a/altoslib/AltosTelemetryRecordLocation.java +++ b/altoslib/AltosTelemetryRecordLocation.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; public class AltosTelemetryRecordLocation extends AltosTelemetryRecordRaw { diff --git a/altoslib/AltosTelemetryRecordMegaData.java b/altoslib/AltosTelemetryRecordMegaData.java index 72af6a22..08df9ee1 100644 --- a/altoslib/AltosTelemetryRecordMegaData.java +++ b/altoslib/AltosTelemetryRecordMegaData.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; public class AltosTelemetryRecordMegaData extends AltosTelemetryRecordRaw { diff --git a/altoslib/AltosTelemetryRecordMegaSensor.java b/altoslib/AltosTelemetryRecordMegaSensor.java index 16b88969..7548d699 100644 --- a/altoslib/AltosTelemetryRecordMegaSensor.java +++ b/altoslib/AltosTelemetryRecordMegaSensor.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; public class AltosTelemetryRecordMegaSensor extends AltosTelemetryRecordRaw { diff --git a/altoslib/AltosTelemetryRecordRaw.java b/altoslib/AltosTelemetryRecordRaw.java index 9749aa5c..a06348c1 100644 --- a/altoslib/AltosTelemetryRecordRaw.java +++ b/altoslib/AltosTelemetryRecordRaw.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; public class AltosTelemetryRecordRaw extends AltosTelemetryRecord { int[] bytes; diff --git a/altoslib/AltosTelemetryRecordSatellite.java b/altoslib/AltosTelemetryRecordSatellite.java index b9418f27..3e93b337 100644 --- a/altoslib/AltosTelemetryRecordSatellite.java +++ b/altoslib/AltosTelemetryRecordSatellite.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; public class AltosTelemetryRecordSatellite extends AltosTelemetryRecordRaw { int channels; diff --git a/altoslib/AltosTelemetryRecordSensor.java b/altoslib/AltosTelemetryRecordSensor.java index 92375fb0..767a464a 100644 --- a/altoslib/AltosTelemetryRecordSensor.java +++ b/altoslib/AltosTelemetryRecordSensor.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; public class AltosTelemetryRecordSensor extends AltosTelemetryRecordRaw { diff --git a/altoslib/AltosUnits.java b/altoslib/AltosUnits.java index fcc9a973..4351123b 100644 --- a/altoslib/AltosUnits.java +++ b/altoslib/AltosUnits.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; public abstract class AltosUnits { diff --git a/altoslib/AltosUnitsListener.java b/altoslib/AltosUnitsListener.java index 680d5cb4..61a181a4 100644 --- a/altoslib/AltosUnitsListener.java +++ b/altoslib/AltosUnitsListener.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib; +package org.altusmetrum.altoslib_1; public interface AltosUnitsListener { public void units_changed(boolean imperial_units); diff --git a/altoslib/Makefile.am b/altoslib/Makefile.am index bab7d6d3..b3c2673a 100644 --- a/altoslib/Makefile.am +++ b/altoslib/Makefile.am @@ -7,89 +7,88 @@ VERSION=1 CLASSPATH_ENV=mkdir -p $(JAVAROOT); CLASSPATH="bin:$(FREETTS)/*:/usr/share/java/*" SRC=. -BIN=bin/org/altusmetrum/AltosLib -AltosLibdir = $(datadir)/java +altoslibdir = $(datadir)/java -AltosLib_JAVA = \ - $(SRC)/AltosLib.java \ - $(SRC)/AltosConfigData.java \ - $(SRC)/AltosConfigValues.java \ - $(SRC)/AltosConvert.java \ - $(SRC)/AltosCRCException.java \ - $(SRC)/AltosEepromChunk.java \ - $(SRC)/AltosEepromIterable.java \ - $(SRC)/AltosEepromLog.java \ - $(SRC)/AltosEepromMega.java \ - $(SRC)/AltosEepromMegaIterable.java \ - $(SRC)/AltosEepromRecord.java \ - $(SRC)/AltosEepromTeleScience.java \ - $(SRC)/AltosFile.java \ - $(SRC)/AltosFlightReader.java \ - $(SRC)/AltosFrequency.java \ - $(SRC)/AltosGPS.java \ - $(SRC)/AltosGPSQuery.java \ - $(SRC)/AltosGPSSat.java \ - $(SRC)/AltosGreatCircle.java \ - $(SRC)/AltosIdleMonitor.java \ - $(SRC)/AltosIdleMonitorListener.java \ - $(SRC)/AltosIgnite.java \ - $(SRC)/AltosIMU.java \ - $(SRC)/AltosIMUQuery.java \ - $(SRC)/AltosLine.java \ - $(SRC)/AltosLink.java \ - $(SRC)/AltosLog.java \ - $(SRC)/AltosMs5607.java \ - $(SRC)/AltosMs5607Query.java \ - $(SRC)/AltosOrderedRecord.java \ - $(SRC)/AltosOrderedMegaRecord.java \ - $(SRC)/AltosParse.java \ - $(SRC)/AltosPreferences.java \ - $(SRC)/AltosPreferencesBackend.java \ - $(SRC)/AltosRecordCompanion.java \ - $(SRC)/AltosRecordIterable.java \ - $(SRC)/AltosRecord.java \ - $(SRC)/AltosRecordNone.java \ - $(SRC)/AltosRecordTM.java \ - $(SRC)/AltosRecordMM.java \ - $(SRC)/AltosReplayReader.java \ - $(SRC)/AltosSensorMM.java \ - $(SRC)/AltosSensorTM.java \ - $(SRC)/AltosState.java \ - $(SRC)/AltosTelemetry.java \ - $(SRC)/AltosTelemetryIterable.java \ - $(SRC)/AltosTelemetryMap.java \ - $(SRC)/AltosTelemetryReader.java \ - $(SRC)/AltosTelemetryRecordCompanion.java \ - $(SRC)/AltosTelemetryRecordConfiguration.java \ - $(SRC)/AltosTelemetryRecordGeneral.java \ - $(SRC)/AltosTelemetryRecord.java \ - $(SRC)/AltosTelemetryRecordLegacy.java \ - $(SRC)/AltosTelemetryRecordLocation.java \ - $(SRC)/AltosTelemetryRecordRaw.java \ - $(SRC)/AltosTelemetryRecordSatellite.java \ - $(SRC)/AltosTelemetryRecordSensor.java \ - $(SRC)/AltosTelemetryRecordMegaSensor.java \ - $(SRC)/AltosTelemetryRecordMegaData.java \ - $(SRC)/AltosUnitsListener.java \ - $(SRC)/AltosMs5607.java \ - $(SRC)/AltosIMU.java \ - $(SRC)/AltosMag.java \ - $(SRC)/AltosUnits.java \ - $(SRC)/AltosDistance.java \ - $(SRC)/AltosHeight.java \ - $(SRC)/AltosSpeed.java \ - $(SRC)/AltosAccel.java \ - $(SRC)/AltosPyro.java +altoslib_JAVA = \ + AltosLib.java \ + AltosConfigData.java \ + AltosConfigValues.java \ + AltosConvert.java \ + AltosCRCException.java \ + AltosEepromChunk.java \ + AltosEepromIterable.java \ + AltosEepromLog.java \ + AltosEepromMega.java \ + AltosEepromMegaIterable.java \ + AltosEepromRecord.java \ + AltosEepromTeleScience.java \ + AltosFile.java \ + AltosFlightReader.java \ + AltosFrequency.java \ + AltosGPS.java \ + AltosGPSQuery.java \ + AltosGPSSat.java \ + AltosGreatCircle.java \ + AltosIdleMonitor.java \ + AltosIdleMonitorListener.java \ + AltosIgnite.java \ + AltosIMU.java \ + AltosIMUQuery.java \ + AltosLine.java \ + AltosLink.java \ + AltosLog.java \ + AltosMs5607.java \ + AltosMs5607Query.java \ + AltosOrderedRecord.java \ + AltosOrderedMegaRecord.java \ + AltosParse.java \ + AltosPreferences.java \ + AltosPreferencesBackend.java \ + AltosRecordCompanion.java \ + AltosRecordIterable.java \ + AltosRecord.java \ + AltosRecordNone.java \ + AltosRecordTM.java \ + AltosRecordMM.java \ + AltosReplayReader.java \ + AltosSensorMM.java \ + AltosSensorTM.java \ + AltosState.java \ + AltosTelemetry.java \ + AltosTelemetryIterable.java \ + AltosTelemetryMap.java \ + AltosTelemetryReader.java \ + AltosTelemetryRecordCompanion.java \ + AltosTelemetryRecordConfiguration.java \ + AltosTelemetryRecordGeneral.java \ + AltosTelemetryRecord.java \ + AltosTelemetryRecordLegacy.java \ + AltosTelemetryRecordLocation.java \ + AltosTelemetryRecordRaw.java \ + AltosTelemetryRecordSatellite.java \ + AltosTelemetryRecordSensor.java \ + AltosTelemetryRecordMegaSensor.java \ + AltosTelemetryRecordMegaData.java \ + AltosUnitsListener.java \ + AltosMs5607.java \ + AltosIMU.java \ + AltosMag.java \ + AltosUnits.java \ + AltosDistance.java \ + AltosHeight.java \ + AltosSpeed.java \ + AltosAccel.java \ + AltosPyro.java -JAR=AltosLib.jar +JAR=altoslib_$(ALTOSLIB_VERSION).jar all-local: $(JAR) clean-local: -rm -rf bin $(JAR) -install-AltosLibJAVA: $(JAR) +install-altoslibJAVA: $(JAR) @$(NORMAL_INSTALL) test -z "$(AltosLibdir)" || $(MKDIR_P) "$(DESTDIR)$(AltosLibdir)" echo " $(INSTALL_DATA)" "$<" "'$(DESTDIR)$(AltosLibdir)/$(JAR)"; \ diff --git a/altosui/Altos.java b/altosui/Altos.java index 170201ce..d25736bf 100644 --- a/altosui/Altos.java +++ b/altosui/Altos.java @@ -20,8 +20,8 @@ package altosui; import java.awt.*; import libaltosJNI.*; -import org.altusmetrum.altoslib.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altoslib_1.*; +import org.altusmetrum.altosuilib_1.*; public class Altos extends AltosUILib { diff --git a/altosui/AltosAscent.java b/altosui/AltosAscent.java index 29693da1..e90e0e23 100644 --- a/altosui/AltosAscent.java +++ b/altosui/AltosAscent.java @@ -19,7 +19,7 @@ package altosui; import java.awt.*; import javax.swing.*; -import org.altusmetrum.altoslib.*; +import org.altusmetrum.altoslib_1.*; public class AltosAscent extends JComponent implements AltosFlightDisplay { GridBagLayout layout; diff --git a/altosui/AltosBTDevice.java b/altosui/AltosBTDevice.java index 222b3c97..727a9f66 100644 --- a/altosui/AltosBTDevice.java +++ b/altosui/AltosBTDevice.java @@ -17,7 +17,7 @@ package altosui; import libaltosJNI.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altosuilib_1.*; public class AltosBTDevice extends altos_bt_device implements AltosDevice { diff --git a/altosui/AltosBTKnown.java b/altosui/AltosBTKnown.java index f8efeef7..1d42365b 100644 --- a/altosui/AltosBTKnown.java +++ b/altosui/AltosBTKnown.java @@ -17,8 +17,8 @@ package altosui; import java.util.*; -import org.altusmetrum.altoslib.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altoslib_1.*; +import org.altusmetrum.altosuilib_1.*; public class AltosBTKnown implements Iterable { LinkedList devices = new LinkedList(); diff --git a/altosui/AltosBTManage.java b/altosui/AltosBTManage.java index b7b632a7..4c9b7a6c 100644 --- a/altosui/AltosBTManage.java +++ b/altosui/AltosBTManage.java @@ -23,7 +23,7 @@ import javax.swing.*; import javax.swing.plaf.basic.*; import java.util.*; import java.util.concurrent.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altosuilib_1.*; public class AltosBTManage extends AltosUIDialog implements ActionListener, Iterable { LinkedBlockingQueue found_devices; diff --git a/altosui/AltosCSV.java b/altosui/AltosCSV.java index 11b64bfc..0676f99d 100644 --- a/altosui/AltosCSV.java +++ b/altosui/AltosCSV.java @@ -19,7 +19,7 @@ package altosui; import java.io.*; import java.util.*; -import org.altusmetrum.altoslib.*; +import org.altusmetrum.altoslib_1.*; public class AltosCSV implements AltosWriter { File name; diff --git a/altosui/AltosCSVUI.java b/altosui/AltosCSVUI.java index 152b4b27..42508346 100644 --- a/altosui/AltosCSVUI.java +++ b/altosui/AltosCSVUI.java @@ -21,8 +21,8 @@ import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; -import org.altusmetrum.altoslib.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altoslib_1.*; +import org.altusmetrum.altosuilib_1.*; public class AltosCSVUI extends AltosUIDialog diff --git a/altosui/AltosCompanionInfo.java b/altosui/AltosCompanionInfo.java index 8ccccfac..7dd36aec 100644 --- a/altosui/AltosCompanionInfo.java +++ b/altosui/AltosCompanionInfo.java @@ -19,7 +19,7 @@ package altosui; import java.awt.*; import javax.swing.*; -import org.altusmetrum.altoslib.*; +import org.altusmetrum.altoslib_1.*; public class AltosCompanionInfo extends JTable { private AltosFlightInfoTableModel model; diff --git a/altosui/AltosConfig.java b/altosui/AltosConfig.java index c4dba735..4927d3f8 100644 --- a/altosui/AltosConfig.java +++ b/altosui/AltosConfig.java @@ -22,8 +22,8 @@ import javax.swing.*; import java.io.*; import java.util.concurrent.*; import java.text.*; -import org.altusmetrum.altoslib.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altoslib_1.*; +import org.altusmetrum.altosuilib_1.*; public class AltosConfig implements ActionListener { diff --git a/altosui/AltosConfigFreqUI.java b/altosui/AltosConfigFreqUI.java index 074f337a..c90b168f 100644 --- a/altosui/AltosConfigFreqUI.java +++ b/altosui/AltosConfigFreqUI.java @@ -21,8 +21,8 @@ import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.*; -import org.altusmetrum.altoslib.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altoslib_1.*; +import org.altusmetrum.altosuilib_1.*; class AltosEditFreqUI extends AltosUIDialog implements ActionListener { Frame frame; diff --git a/altosui/AltosConfigPyroUI.java b/altosui/AltosConfigPyroUI.java index 13652e81..3cac56c3 100644 --- a/altosui/AltosConfigPyroUI.java +++ b/altosui/AltosConfigPyroUI.java @@ -21,8 +21,8 @@ import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; -import org.altusmetrum.altoslib.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altoslib_1.*; +import org.altusmetrum.altosuilib_1.*; public class AltosConfigPyroUI extends AltosUIDialog diff --git a/altosui/AltosConfigTD.java b/altosui/AltosConfigTD.java index 480139cb..16c9e357 100644 --- a/altosui/AltosConfigTD.java +++ b/altosui/AltosConfigTD.java @@ -21,8 +21,8 @@ import java.awt.event.*; import javax.swing.*; import java.io.*; import java.util.concurrent.*; -import org.altusmetrum.altoslib.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altoslib_1.*; +import org.altusmetrum.altosuilib_1.*; public class AltosConfigTD implements ActionListener { diff --git a/altosui/AltosConfigTDUI.java b/altosui/AltosConfigTDUI.java index d9df9d79..125780a9 100644 --- a/altosui/AltosConfigTDUI.java +++ b/altosui/AltosConfigTDUI.java @@ -21,8 +21,8 @@ import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; -import org.altusmetrum.altoslib.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altoslib_1.*; +import org.altusmetrum.altosuilib_1.*; public class AltosConfigTDUI extends AltosUIDialog diff --git a/altosui/AltosConfigUI.java b/altosui/AltosConfigUI.java index 08dccd09..4fd0647e 100644 --- a/altosui/AltosConfigUI.java +++ b/altosui/AltosConfigUI.java @@ -21,8 +21,8 @@ import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; -import org.altusmetrum.altoslib.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altoslib_1.*; +import org.altusmetrum.altosuilib_1.*; public class AltosConfigUI extends AltosUIDialog diff --git a/altosui/AltosConfigureUI.java b/altosui/AltosConfigureUI.java index fad23f59..5e42f430 100644 --- a/altosui/AltosConfigureUI.java +++ b/altosui/AltosConfigureUI.java @@ -22,7 +22,7 @@ import java.awt.event.*; import java.beans.*; import javax.swing.*; import javax.swing.event.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altosuilib_1.*; public class AltosConfigureUI extends AltosUIConfigure diff --git a/altosui/AltosDataChooser.java b/altosui/AltosDataChooser.java index eddbb120..7de18afb 100644 --- a/altosui/AltosDataChooser.java +++ b/altosui/AltosDataChooser.java @@ -20,8 +20,8 @@ package altosui; import javax.swing.*; import javax.swing.filechooser.FileNameExtensionFilter; import java.io.*; -import org.altusmetrum.altoslib.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altoslib_1.*; +import org.altusmetrum.altosuilib_1.*; public class AltosDataChooser extends JFileChooser { JFrame frame; diff --git a/altosui/AltosDataPointReader.java b/altosui/AltosDataPointReader.java index 2bdb4d96..0b4bd6c1 100644 --- a/altosui/AltosDataPointReader.java +++ b/altosui/AltosDataPointReader.java @@ -7,7 +7,7 @@ package altosui; import java.lang.UnsupportedOperationException; import java.util.NoSuchElementException; import java.util.Iterator; -import org.altusmetrum.altoslib.*; +import org.altusmetrum.altoslib_1.*; class AltosDataPointReader implements Iterable { Iterator iter; diff --git a/altosui/AltosDebug.java b/altosui/AltosDebug.java index 482f4c36..c69369ef 100644 --- a/altosui/AltosDebug.java +++ b/altosui/AltosDebug.java @@ -18,7 +18,7 @@ package altosui; import java.io.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altosuilib_1.*; public class AltosDebug extends AltosSerial { diff --git a/altosui/AltosDescent.java b/altosui/AltosDescent.java index df151086..821e3963 100644 --- a/altosui/AltosDescent.java +++ b/altosui/AltosDescent.java @@ -19,7 +19,7 @@ package altosui; import java.awt.*; import javax.swing.*; -import org.altusmetrum.altoslib.*; +import org.altusmetrum.altoslib_1.*; public class AltosDescent extends JComponent implements AltosFlightDisplay { GridBagLayout layout; diff --git a/altosui/AltosDeviceUIDialog.java b/altosui/AltosDeviceUIDialog.java index 7ed599a3..ceabe843 100644 --- a/altosui/AltosDeviceUIDialog.java +++ b/altosui/AltosDeviceUIDialog.java @@ -20,7 +20,7 @@ package altosui; import javax.swing.*; import java.awt.*; import java.awt.event.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altosuilib_1.*; public class AltosDeviceUIDialog extends AltosDeviceDialog { diff --git a/altosui/AltosDisplayThread.java b/altosui/AltosDisplayThread.java index b52a5770..6f8aa9ee 100644 --- a/altosui/AltosDisplayThread.java +++ b/altosui/AltosDisplayThread.java @@ -21,7 +21,7 @@ import java.awt.*; import javax.swing.*; import java.io.*; import java.text.*; -import org.altusmetrum.altoslib.*; +import org.altusmetrum.altoslib_1.*; public class AltosDisplayThread extends Thread { diff --git a/altosui/AltosEepromDelete.java b/altosui/AltosEepromDelete.java index 0161213b..e81a35d1 100644 --- a/altosui/AltosEepromDelete.java +++ b/altosui/AltosEepromDelete.java @@ -21,7 +21,7 @@ import java.awt.event.*; import javax.swing.*; import java.io.*; import java.util.concurrent.*; -import org.altusmetrum.altoslib.*; +import org.altusmetrum.altoslib_1.*; public class AltosEepromDelete implements Runnable { AltosEepromList flights; diff --git a/altosui/AltosEepromDownload.java b/altosui/AltosEepromDownload.java index 612b8380..8fbd661b 100644 --- a/altosui/AltosEepromDownload.java +++ b/altosui/AltosEepromDownload.java @@ -23,7 +23,7 @@ import java.io.*; import java.util.*; import java.text.*; import java.util.concurrent.*; -import org.altusmetrum.altoslib.*; +import org.altusmetrum.altoslib_1.*; public class AltosEepromDownload implements Runnable { diff --git a/altosui/AltosEepromList.java b/altosui/AltosEepromList.java index 0cddec76..a63d173d 100644 --- a/altosui/AltosEepromList.java +++ b/altosui/AltosEepromList.java @@ -21,7 +21,7 @@ import java.io.*; import java.util.*; import java.text.*; import java.util.concurrent.*; -import org.altusmetrum.altoslib.*; +import org.altusmetrum.altoslib_1.*; /* * Temporary structure to hold the list of stored flights; diff --git a/altosui/AltosEepromManage.java b/altosui/AltosEepromManage.java index c69f1f53..dbcc5048 100644 --- a/altosui/AltosEepromManage.java +++ b/altosui/AltosEepromManage.java @@ -21,8 +21,8 @@ import java.awt.event.*; import javax.swing.*; import java.io.*; import java.util.concurrent.*; -import org.altusmetrum.altoslib.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altoslib_1.*; +import org.altusmetrum.altosuilib_1.*; public class AltosEepromManage implements ActionListener { diff --git a/altosui/AltosEepromMonitor.java b/altosui/AltosEepromMonitor.java index 8eae5eb8..5b9e5171 100644 --- a/altosui/AltosEepromMonitor.java +++ b/altosui/AltosEepromMonitor.java @@ -20,7 +20,7 @@ package altosui; import java.awt.*; import java.awt.event.*; import javax.swing.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altosuilib_1.*; public class AltosEepromMonitor extends AltosUIDialog { diff --git a/altosui/AltosEepromSelect.java b/altosui/AltosEepromSelect.java index b0b08d3b..a451aa3a 100644 --- a/altosui/AltosEepromSelect.java +++ b/altosui/AltosEepromSelect.java @@ -21,8 +21,8 @@ import javax.swing.*; import javax.swing.border.*; import java.awt.*; import java.awt.event.*; -import org.altusmetrum.altoslib.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altoslib_1.*; +import org.altusmetrum.altosuilib_1.*; class AltosEepromItem implements ActionListener { AltosEepromLog log; diff --git a/altosui/AltosFlash.java b/altosui/AltosFlash.java index 7a98ee14..239d4dd7 100644 --- a/altosui/AltosFlash.java +++ b/altosui/AltosFlash.java @@ -20,7 +20,7 @@ package altosui; import java.awt.event.*; import javax.swing.*; import java.io.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altosuilib_1.*; public class AltosFlash { File file; diff --git a/altosui/AltosFlashUI.java b/altosui/AltosFlashUI.java index 921207bc..f26a3916 100644 --- a/altosui/AltosFlashUI.java +++ b/altosui/AltosFlashUI.java @@ -23,7 +23,7 @@ import javax.swing.*; import javax.swing.filechooser.FileNameExtensionFilter; import java.io.*; import java.util.concurrent.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altosuilib_1.*; public class AltosFlashUI extends AltosUIDialog diff --git a/altosui/AltosFlightDisplay.java b/altosui/AltosFlightDisplay.java index 42191122..d1ed7d2f 100644 --- a/altosui/AltosFlightDisplay.java +++ b/altosui/AltosFlightDisplay.java @@ -17,7 +17,7 @@ package altosui; -import org.altusmetrum.altoslib.*; +import org.altusmetrum.altoslib_1.*; public interface AltosFlightDisplay { void reset(); diff --git a/altosui/AltosFlightStats.java b/altosui/AltosFlightStats.java index 967f094f..0f32ae5e 100644 --- a/altosui/AltosFlightStats.java +++ b/altosui/AltosFlightStats.java @@ -18,7 +18,7 @@ package altosui; import java.io.*; -import org.altusmetrum.altoslib.*; +import org.altusmetrum.altoslib_1.*; public class AltosFlightStats { double max_height; diff --git a/altosui/AltosFlightStatsTable.java b/altosui/AltosFlightStatsTable.java index 7a91d642..2b3e4d5d 100644 --- a/altosui/AltosFlightStatsTable.java +++ b/altosui/AltosFlightStatsTable.java @@ -19,7 +19,7 @@ package altosui; import java.awt.*; import javax.swing.*; -import org.altusmetrum.altoslib.*; +import org.altusmetrum.altoslib_1.*; public class AltosFlightStatsTable extends JComponent { GridBagLayout layout; diff --git a/altosui/AltosFlightStatus.java b/altosui/AltosFlightStatus.java index 8eaf5db7..20539a9f 100644 --- a/altosui/AltosFlightStatus.java +++ b/altosui/AltosFlightStatus.java @@ -19,7 +19,7 @@ package altosui; import java.awt.*; import javax.swing.*; -import org.altusmetrum.altoslib.*; +import org.altusmetrum.altoslib_1.*; public class AltosFlightStatus extends JComponent implements AltosFlightDisplay { GridBagLayout layout; diff --git a/altosui/AltosFlightStatusTableModel.java b/altosui/AltosFlightStatusTableModel.java index 060ba301..6a327841 100644 --- a/altosui/AltosFlightStatusTableModel.java +++ b/altosui/AltosFlightStatusTableModel.java @@ -27,7 +27,7 @@ import java.util.*; import java.text.*; import java.util.prefs.*; import java.util.concurrent.LinkedBlockingQueue; -import org.altusmetrum.altoslib.*; +import org.altusmetrum.altoslib_1.*; public class AltosFlightStatusTableModel extends AbstractTableModel { private String[] columnNames = { diff --git a/altosui/AltosFlightStatusUpdate.java b/altosui/AltosFlightStatusUpdate.java index 6b48a2c0..bf679b85 100644 --- a/altosui/AltosFlightStatusUpdate.java +++ b/altosui/AltosFlightStatusUpdate.java @@ -18,7 +18,7 @@ package altosui; import java.awt.event.*; -import org.altusmetrum.altoslib.*; +import org.altusmetrum.altoslib_1.*; public class AltosFlightStatusUpdate implements ActionListener { diff --git a/altosui/AltosFlightUI.java b/altosui/AltosFlightUI.java index 7860b218..c8faab90 100644 --- a/altosui/AltosFlightUI.java +++ b/altosui/AltosFlightUI.java @@ -21,8 +21,8 @@ import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.concurrent.*; -import org.altusmetrum.altoslib.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altoslib_1.*; +import org.altusmetrum.altosuilib_1.*; public class AltosFlightUI extends AltosUIFrame implements AltosFlightDisplay, AltosFontListener { AltosVoice voice; diff --git a/altosui/AltosFreqList.java b/altosui/AltosFreqList.java index 98fe27d5..7464ac3e 100644 --- a/altosui/AltosFreqList.java +++ b/altosui/AltosFreqList.java @@ -18,8 +18,8 @@ package altosui; import javax.swing.*; -import org.altusmetrum.altoslib.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altoslib_1.*; +import org.altusmetrum.altosuilib_1.*; public class AltosFreqList extends JComboBox { diff --git a/altosui/AltosGraphUI.java b/altosui/AltosGraphUI.java index 4b40ba1f..c45c1124 100644 --- a/altosui/AltosGraphUI.java +++ b/altosui/AltosGraphUI.java @@ -9,8 +9,8 @@ import java.util.ArrayList; import java.awt.*; import javax.swing.*; -import org.altusmetrum.altoslib.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altoslib_1.*; +import org.altusmetrum.altosuilib_1.*; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; diff --git a/altosui/AltosIdleMonitorUI.java b/altosui/AltosIdleMonitorUI.java index a3b1a49e..89a3c122 100644 --- a/altosui/AltosIdleMonitorUI.java +++ b/altosui/AltosIdleMonitorUI.java @@ -22,8 +22,8 @@ import java.awt.event.*; import javax.swing.*; import java.io.*; import java.util.concurrent.*; -import org.altusmetrum.altoslib.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altoslib_1.*; +import org.altusmetrum.altosuilib_1.*; public class AltosIdleMonitorUI extends AltosUIFrame implements AltosFlightDisplay, AltosFontListener, AltosIdleMonitorListener { AltosDevice device; diff --git a/altosui/AltosIgniteUI.java b/altosui/AltosIgniteUI.java index 8c2ac242..14d4eebc 100644 --- a/altosui/AltosIgniteUI.java +++ b/altosui/AltosIgniteUI.java @@ -23,8 +23,8 @@ import javax.swing.*; import java.io.*; import java.text.*; import java.util.concurrent.*; -import org.altusmetrum.altoslib.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altoslib_1.*; +import org.altusmetrum.altosuilib_1.*; public class AltosIgniteUI extends AltosUIDialog diff --git a/altosui/AltosInfoTable.java b/altosui/AltosInfoTable.java index 579d720b..c06f57ec 100644 --- a/altosui/AltosInfoTable.java +++ b/altosui/AltosInfoTable.java @@ -20,7 +20,7 @@ package altosui; import java.awt.*; import javax.swing.*; import javax.swing.table.*; -import org.altusmetrum.altoslib.*; +import org.altusmetrum.altoslib_1.*; public class AltosInfoTable extends JTable { private AltosFlightInfoTableModel model; diff --git a/altosui/AltosKML.java b/altosui/AltosKML.java index 5fa03fc1..84f9dc7a 100644 --- a/altosui/AltosKML.java +++ b/altosui/AltosKML.java @@ -18,7 +18,7 @@ package altosui; import java.io.*; -import org.altusmetrum.altoslib.*; +import org.altusmetrum.altoslib_1.*; public class AltosKML implements AltosWriter { diff --git a/altosui/AltosLanded.java b/altosui/AltosLanded.java index d03e5ac5..3994e5de 100644 --- a/altosui/AltosLanded.java +++ b/altosui/AltosLanded.java @@ -21,7 +21,7 @@ import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; -import org.altusmetrum.altoslib.*; +import org.altusmetrum.altoslib_1.*; public class AltosLanded extends JComponent implements AltosFlightDisplay, ActionListener { GridBagLayout layout; diff --git a/altosui/AltosLaunch.java b/altosui/AltosLaunch.java index 0bad80aa..04948ee6 100644 --- a/altosui/AltosLaunch.java +++ b/altosui/AltosLaunch.java @@ -20,7 +20,7 @@ package altosui; import java.io.*; import java.util.concurrent.*; import java.awt.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altosuilib_1.*; public class AltosLaunch { AltosDevice device; diff --git a/altosui/AltosLaunchUI.java b/altosui/AltosLaunchUI.java index 7e7ed010..4d9fbda5 100644 --- a/altosui/AltosLaunchUI.java +++ b/altosui/AltosLaunchUI.java @@ -23,7 +23,7 @@ import javax.swing.*; import java.io.*; import java.text.*; import java.util.concurrent.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altosuilib_1.*; class FireButton extends JButton { protected void processMouseEvent(MouseEvent e) { diff --git a/altosui/AltosPad.java b/altosui/AltosPad.java index 0eac0ebc..d13f6945 100644 --- a/altosui/AltosPad.java +++ b/altosui/AltosPad.java @@ -19,7 +19,7 @@ package altosui; import java.awt.*; import javax.swing.*; -import org.altusmetrum.altoslib.*; +import org.altusmetrum.altoslib_1.*; public class AltosPad extends JComponent implements AltosFlightDisplay { GridBagLayout layout; diff --git a/altosui/AltosRomconfigUI.java b/altosui/AltosRomconfigUI.java index 5fc786e2..cf4658af 100644 --- a/altosui/AltosRomconfigUI.java +++ b/altosui/AltosRomconfigUI.java @@ -20,7 +20,7 @@ package altosui; import java.awt.*; import java.awt.event.*; import javax.swing.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altosuilib_1.*; public class AltosRomconfigUI extends AltosUIDialog diff --git a/altosui/AltosScanUI.java b/altosui/AltosScanUI.java index 9fdec1cf..0c903873 100644 --- a/altosui/AltosScanUI.java +++ b/altosui/AltosScanUI.java @@ -25,8 +25,8 @@ import java.io.*; import java.util.*; import java.text.*; import java.util.concurrent.*; -import org.altusmetrum.altoslib.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altoslib_1.*; +import org.altusmetrum.altosuilib_1.*; class AltosScanResult { String callsign; diff --git a/altosui/AltosSerial.java b/altosui/AltosSerial.java index feca8b95..710aa145 100644 --- a/altosui/AltosSerial.java +++ b/altosui/AltosSerial.java @@ -25,8 +25,8 @@ import java.io.*; import java.util.*; import java.awt.*; import javax.swing.*; -import org.altusmetrum.altoslib.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altoslib_1.*; +import org.altusmetrum.altosuilib_1.*; import libaltosJNI.*; diff --git a/altosui/AltosSerialInUseException.java b/altosui/AltosSerialInUseException.java index 932a3684..b45d9157 100644 --- a/altosui/AltosSerialInUseException.java +++ b/altosui/AltosSerialInUseException.java @@ -16,7 +16,7 @@ */ package altosui; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altosuilib_1.*; public class AltosSerialInUseException extends Exception { public AltosDevice device; diff --git a/altosui/AltosSiteMap.java b/altosui/AltosSiteMap.java index 7c5d406c..f111e62d 100644 --- a/altosui/AltosSiteMap.java +++ b/altosui/AltosSiteMap.java @@ -23,8 +23,8 @@ import java.io.*; import java.lang.Math; import java.awt.geom.Point2D; import java.util.concurrent.*; -import org.altusmetrum.altoslib.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altoslib_1.*; +import org.altusmetrum.altosuilib_1.*; public class AltosSiteMap extends JScrollPane implements AltosFlightDisplay { // preferred vertical step in a tile in naut. miles diff --git a/altosui/AltosSiteMapPreload.java b/altosui/AltosSiteMapPreload.java index f4dcc903..fd648abc 100644 --- a/altosui/AltosSiteMapPreload.java +++ b/altosui/AltosSiteMapPreload.java @@ -26,7 +26,7 @@ import java.text.*; import java.lang.Math; import java.net.URL; import java.net.URLConnection; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altosuilib_1.*; class AltosMapPos extends Box { AltosUI owner; diff --git a/altosui/AltosSiteMapTile.java b/altosui/AltosSiteMapTile.java index aeb9de80..10e65bcd 100644 --- a/altosui/AltosSiteMapTile.java +++ b/altosui/AltosSiteMapTile.java @@ -22,7 +22,7 @@ import java.awt.image.*; import javax.swing.*; import java.awt.geom.Point2D; import java.awt.geom.Line2D; -import org.altusmetrum.altoslib.*; +import org.altusmetrum.altoslib_1.*; public class AltosSiteMapTile extends JLayeredPane { JLabel mapLabel; diff --git a/altosui/AltosUI.java b/altosui/AltosUI.java index d89b3daa..49e3097e 100644 --- a/altosui/AltosUI.java +++ b/altosui/AltosUI.java @@ -22,8 +22,8 @@ import java.awt.event.*; import javax.swing.*; import java.io.*; import java.util.concurrent.*; -import org.altusmetrum.altoslib.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altoslib_1.*; +import org.altusmetrum.altosuilib_1.*; public class AltosUI extends AltosUIFrame { public AltosVoice voice = new AltosVoice(); diff --git a/altosui/AltosUIPreferencesBackend.java b/altosui/AltosUIPreferencesBackend.java index 3e6ff97d..0dac9fc7 100644 --- a/altosui/AltosUIPreferencesBackend.java +++ b/altosui/AltosUIPreferencesBackend.java @@ -19,7 +19,7 @@ package altosui; import java.io.File; import java.util.prefs.*; -import org.altusmetrum.altoslib.*; +import org.altusmetrum.altoslib_1.*; import javax.swing.filechooser.FileSystemView; public class AltosUIPreferencesBackend implements AltosPreferencesBackend { diff --git a/altosui/AltosVoice.java b/altosui/AltosVoice.java index 775c13d5..2ed6a8c2 100644 --- a/altosui/AltosVoice.java +++ b/altosui/AltosVoice.java @@ -20,7 +20,7 @@ package altosui; import com.sun.speech.freetts.Voice; import com.sun.speech.freetts.VoiceManager; import java.util.concurrent.LinkedBlockingQueue; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altosuilib_1.*; public class AltosVoice implements Runnable { VoiceManager voice_manager; diff --git a/altosui/AltosWriter.java b/altosui/AltosWriter.java index 31c1807f..2f70b472 100644 --- a/altosui/AltosWriter.java +++ b/altosui/AltosWriter.java @@ -17,7 +17,7 @@ package altosui; -import org.altusmetrum.altoslib.*; +import org.altusmetrum.altoslib_1.*; public interface AltosWriter { diff --git a/altosuilib/AltosDevice.java b/altosuilib/AltosDevice.java index 69b025ba..2461df1b 100644 --- a/altosuilib/AltosDevice.java +++ b/altosuilib/AltosDevice.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib; +package org.altusmetrum.altosuilib_1; import libaltosJNI.*; diff --git a/altosuilib/AltosDeviceDialog.java b/altosuilib/AltosDeviceDialog.java index cde545a7..73bc0b2f 100644 --- a/altosuilib/AltosDeviceDialog.java +++ b/altosuilib/AltosDeviceDialog.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib; +package org.altusmetrum.altosuilib_1; import javax.swing.*; import java.awt.*; diff --git a/altosuilib/AltosFontListener.java b/altosuilib/AltosFontListener.java index ef543264..da903352 100644 --- a/altosuilib/AltosFontListener.java +++ b/altosuilib/AltosFontListener.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib; +package org.altusmetrum.altosuilib_1; public interface AltosFontListener { void font_size_changed(int font_size); diff --git a/altosuilib/AltosPositionListener.java b/altosuilib/AltosPositionListener.java index 4f90446c..e75d2de5 100644 --- a/altosuilib/AltosPositionListener.java +++ b/altosuilib/AltosPositionListener.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib; +package org.altusmetrum.altosuilib_1; public interface AltosPositionListener { public void position_changed(int position); diff --git a/altosuilib/AltosUIConfigure.java b/altosuilib/AltosUIConfigure.java index 90b413d6..9e72e403 100644 --- a/altosuilib/AltosUIConfigure.java +++ b/altosuilib/AltosUIConfigure.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib; +package org.altusmetrum.altosuilib_1; import java.awt.*; import java.awt.event.*; diff --git a/altosuilib/AltosUIDialog.java b/altosuilib/AltosUIDialog.java index c0c33ba6..e1e699a7 100644 --- a/altosuilib/AltosUIDialog.java +++ b/altosuilib/AltosUIDialog.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib; +package org.altusmetrum.altosuilib_1; import java.awt.*; import java.awt.event.*; diff --git a/altosuilib/AltosUIFrame.java b/altosuilib/AltosUIFrame.java index b93b2d21..3fc99910 100644 --- a/altosuilib/AltosUIFrame.java +++ b/altosuilib/AltosUIFrame.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib; +package org.altusmetrum.altosuilib_1; import java.awt.*; import java.awt.event.*; diff --git a/altosuilib/AltosUILib.java b/altosuilib/AltosUILib.java index e9daf821..1b121405 100644 --- a/altosuilib/AltosUILib.java +++ b/altosuilib/AltosUILib.java @@ -15,12 +15,12 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib; +package org.altusmetrum.altosuilib_1; import java.awt.*; import libaltosJNI.*; -import org.altusmetrum.altoslib.*; +import org.altusmetrum.altoslib_1.*; public class AltosUILib extends AltosLib { diff --git a/altosuilib/AltosUIListener.java b/altosuilib/AltosUIListener.java index f4127f58..450dc0bf 100644 --- a/altosuilib/AltosUIListener.java +++ b/altosuilib/AltosUIListener.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib; +package org.altusmetrum.altosuilib_1; public interface AltosUIListener { public void ui_changed(String look_and_feel); diff --git a/altosuilib/AltosUIPreferences.java b/altosuilib/AltosUIPreferences.java index 98f325ce..49321bce 100644 --- a/altosuilib/AltosUIPreferences.java +++ b/altosuilib/AltosUIPreferences.java @@ -15,13 +15,13 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib; +package org.altusmetrum.altosuilib_1; import java.io.*; import java.util.*; import java.awt.Component; import javax.swing.*; -import org.altusmetrum.altoslib.*; +import org.altusmetrum.altoslib_1.*; public class AltosUIPreferences extends AltosPreferences { diff --git a/altosuilib/AltosUIPreferencesBackend.java b/altosuilib/AltosUIPreferencesBackend.java index 7a2f91f0..8a5386c3 100644 --- a/altosuilib/AltosUIPreferencesBackend.java +++ b/altosuilib/AltosUIPreferencesBackend.java @@ -15,11 +15,11 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib; +package org.altusmetrum.altosuilib_1; import java.io.File; import java.util.prefs.*; -import org.altusmetrum.altoslib.*; +import org.altusmetrum.altoslib_1.*; import javax.swing.filechooser.FileSystemView; public class AltosUIPreferencesBackend implements AltosPreferencesBackend { diff --git a/altosuilib/AltosUIVersion.java.in b/altosuilib/AltosUIVersion.java.in index 6fb3b38b..169cca1b 100644 --- a/altosuilib/AltosUIVersion.java.in +++ b/altosuilib/AltosUIVersion.java.in @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib; +package org.altusmetrum.altosuilib_1; public class AltosUIVersion { public final static String version = "@VERSION@"; diff --git a/altosuilib/AltosUSBDevice.java b/altosuilib/AltosUSBDevice.java index bab16fb0..a5496597 100644 --- a/altosuilib/AltosUSBDevice.java +++ b/altosuilib/AltosUSBDevice.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib; +package org.altusmetrum.altosuilib_1; import java.util.*; import libaltosJNI.*; diff --git a/altosuilib/AltosUnitsListener.java b/altosuilib/AltosUnitsListener.java index 22c66cd4..c0a5e8b2 100644 --- a/altosuilib/AltosUnitsListener.java +++ b/altosuilib/AltosUnitsListener.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib; +package org.altusmetrum.altosuilib_1; public interface AltosUnitsListener { public void units_changed(); diff --git a/altosuilib/Makefile.am b/altosuilib/Makefile.am index 5fb82793..25d5722e 100644 --- a/altosuilib/Makefile.am +++ b/altosuilib/Makefile.am @@ -24,7 +24,7 @@ altosuilib_JAVA = \ AltosUIVersion.java \ AltosUnitsListener.java -JAR=altosuilib.jar +JAR=altosuilib_$(ALTOSUILIB_VERSION).jar all-local: $(JAR) diff --git a/fix-java-versions b/fix-java-versions new file mode 100755 index 00000000..a417b67c --- /dev/null +++ b/fix-java-versions @@ -0,0 +1,11 @@ +#!/bin/sh -vx + +sed_opts='-i' + +for i in "$@"; do + name=`echo $i | sed 's/=.*$//'` + value=`echo $i | sed 's/.*=//'` + sed_opts="$sed_opts -e s/${name}_*[0-9]*/${name}_${value}/g" +done + +find . -name '*.java*' -print0 | xargs -0 sed $sed_opts diff --git a/micropeak/MicroData.java b/micropeak/MicroData.java index a2e30f3c..473af44b 100644 --- a/micropeak/MicroData.java +++ b/micropeak/MicroData.java @@ -20,7 +20,7 @@ package org.altusmetrum.micropeak; import java.lang.*; import java.io.*; import java.util.*; -import org.altusmetrum.altoslib.*; +import org.altusmetrum.altoslib_1.*; class MicroIterator implements Iterator { int i; diff --git a/micropeak/MicroDeviceDialog.java b/micropeak/MicroDeviceDialog.java index 23195dac..533605d6 100644 --- a/micropeak/MicroDeviceDialog.java +++ b/micropeak/MicroDeviceDialog.java @@ -21,7 +21,7 @@ import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altosuilib_1.*; public class MicroDeviceDialog extends AltosDeviceDialog { diff --git a/micropeak/MicroDownload.java b/micropeak/MicroDownload.java index cc404626..6f0ca4f6 100644 --- a/micropeak/MicroDownload.java +++ b/micropeak/MicroDownload.java @@ -23,8 +23,8 @@ import javax.swing.*; import java.io.*; import java.util.concurrent.*; import java.util.*; -import org.altusmetrum.altoslib.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altoslib_1.*; +import org.altusmetrum.altosuilib_1.*; public class MicroDownload extends AltosUIDialog implements Runnable, ActionListener { MicroPeak owner; diff --git a/micropeak/MicroExport.java b/micropeak/MicroExport.java index 8163b4ca..20a6f79a 100644 --- a/micropeak/MicroExport.java +++ b/micropeak/MicroExport.java @@ -23,8 +23,8 @@ import java.util.ArrayList; import java.awt.*; import javax.swing.*; import javax.swing.filechooser.FileNameExtensionFilter; -import org.altusmetrum.altoslib.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altoslib_1.*; +import org.altusmetrum.altosuilib_1.*; public class MicroExport extends JFileChooser { diff --git a/micropeak/MicroFile.java b/micropeak/MicroFile.java index ae80134e..cdd42e66 100644 --- a/micropeak/MicroFile.java +++ b/micropeak/MicroFile.java @@ -19,8 +19,8 @@ package org.altusmetrum.micropeak; import java.io.*; import java.util.*; -import org.altusmetrum.altoslib.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altoslib_1.*; +import org.altusmetrum.altosuilib_1.*; public class MicroFile { diff --git a/micropeak/MicroFileChooser.java b/micropeak/MicroFileChooser.java index ea5c3489..7a3423b4 100644 --- a/micropeak/MicroFileChooser.java +++ b/micropeak/MicroFileChooser.java @@ -20,8 +20,8 @@ package org.altusmetrum.micropeak; import javax.swing.*; import javax.swing.filechooser.FileNameExtensionFilter; import java.io.*; -import org.altusmetrum.altoslib.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altoslib_1.*; +import org.altusmetrum.altosuilib_1.*; public class MicroFileChooser extends JFileChooser { JFrame frame; diff --git a/micropeak/MicroFrame.java b/micropeak/MicroFrame.java index 03e3af0c..ef8b24cc 100644 --- a/micropeak/MicroFrame.java +++ b/micropeak/MicroFrame.java @@ -21,7 +21,7 @@ import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altosuilib_1.*; public class MicroFrame extends AltosUIFrame { static String[] micro_icon_names = { diff --git a/micropeak/MicroGraph.java b/micropeak/MicroGraph.java index 8cb9504b..e8a6ea16 100644 --- a/micropeak/MicroGraph.java +++ b/micropeak/MicroGraph.java @@ -22,7 +22,7 @@ import java.util.ArrayList; import java.awt.*; import javax.swing.*; -import org.altusmetrum.altoslib.*; +import org.altusmetrum.altoslib_1.*; import org.jfree.ui.*; import org.jfree.chart.*; diff --git a/micropeak/MicroPeak.java b/micropeak/MicroPeak.java index e6aa9ab0..63387ed1 100644 --- a/micropeak/MicroPeak.java +++ b/micropeak/MicroPeak.java @@ -23,8 +23,8 @@ import javax.swing.*; import java.io.*; import java.util.concurrent.*; import java.util.*; -import org.altusmetrum.altoslib.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altoslib_1.*; +import org.altusmetrum.altosuilib_1.*; public class MicroPeak extends MicroFrame implements ActionListener, ItemListener { diff --git a/micropeak/MicroRaw.java b/micropeak/MicroRaw.java index 8cd7afd4..7337a1de 100644 --- a/micropeak/MicroRaw.java +++ b/micropeak/MicroRaw.java @@ -20,8 +20,8 @@ package org.altusmetrum.micropeak; import java.awt.*; import java.io.*; import javax.swing.*; -import org.altusmetrum.altoslib.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altoslib_1.*; +import org.altusmetrum.altosuilib_1.*; public class MicroRaw extends JTextArea { diff --git a/micropeak/MicroSave.java b/micropeak/MicroSave.java index dae72779..5088b7d7 100644 --- a/micropeak/MicroSave.java +++ b/micropeak/MicroSave.java @@ -24,8 +24,8 @@ import javax.swing.filechooser.FileNameExtensionFilter; import java.io.*; import java.util.concurrent.*; import java.util.*; -import org.altusmetrum.altoslib.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altoslib_1.*; +import org.altusmetrum.altosuilib_1.*; public class MicroSave extends JFileChooser { diff --git a/micropeak/MicroSerial.java b/micropeak/MicroSerial.java index 15ef8582..376223f1 100644 --- a/micropeak/MicroSerial.java +++ b/micropeak/MicroSerial.java @@ -20,7 +20,7 @@ package org.altusmetrum.micropeak; import java.util.*; import java.io.*; import libaltosJNI.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altosuilib_1.*; public class MicroSerial extends InputStream { SWIGTYPE_p_altos_file file; diff --git a/micropeak/MicroStats.java b/micropeak/MicroStats.java index 151f40da..abc1296b 100644 --- a/micropeak/MicroStats.java +++ b/micropeak/MicroStats.java @@ -18,8 +18,8 @@ package org.altusmetrum.micropeak; import java.io.*; -import org.altusmetrum.altoslib.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altoslib_1.*; +import org.altusmetrum.altosuilib_1.*; public class MicroStats { double coast_height; diff --git a/micropeak/MicroStatsTable.java b/micropeak/MicroStatsTable.java index 7387fdd7..5bdf5cb6 100644 --- a/micropeak/MicroStatsTable.java +++ b/micropeak/MicroStatsTable.java @@ -19,8 +19,8 @@ package org.altusmetrum.micropeak; import java.awt.*; import javax.swing.*; -import org.altusmetrum.altoslib.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altoslib_1.*; +import org.altusmetrum.altosuilib_1.*; public class MicroStatsTable extends JComponent implements AltosFontListener { GridBagLayout layout; diff --git a/micropeak/MicroUSB.java b/micropeak/MicroUSB.java index f56d81d4..3bd61470 100644 --- a/micropeak/MicroUSB.java +++ b/micropeak/MicroUSB.java @@ -19,7 +19,7 @@ package org.altusmetrum.micropeak; import java.util.*; import libaltosJNI.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altosuilib_1.*; public class MicroUSB extends altos_device implements AltosDevice { -- cgit v1.2.3 From cbad587b49c565edd2c9356a015d6cfd52df93a3 Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Fri, 15 Feb 2013 22:09:16 +1300 Subject: altosdroid: excise old code/xml Signed-off-by: Mike Beattie --- altosdroid/res/layout/main.xml | 33 ---------------------- altosdroid/res/layout/message.xml | 21 -------------- .../src/org/altusmetrum/AltosDroid/AltosDroid.java | 20 ++----------- 3 files changed, 2 insertions(+), 72 deletions(-) delete mode 100644 altosdroid/res/layout/main.xml delete mode 100644 altosdroid/res/layout/message.xml (limited to 'altosdroid/src') diff --git a/altosdroid/res/layout/main.xml b/altosdroid/res/layout/main.xml deleted file mode 100644 index 00ca63c8..00000000 --- a/altosdroid/res/layout/main.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - diff --git a/altosdroid/res/layout/message.xml b/altosdroid/res/layout/message.xml deleted file mode 100644 index 8fa358c9..00000000 --- a/altosdroid/res/layout/message.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - \ No newline at end of file diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java index caa1a1c5..61931731 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java @@ -33,7 +33,6 @@ import android.os.Handler; import android.os.Message; import android.os.Messenger; import android.os.RemoteException; -import android.text.method.ScrollingMovementMethod; import android.util.Log; import android.view.Menu; import android.view.MenuInflater; @@ -45,9 +44,6 @@ import android.app.AlertDialog; import org.altusmetrum.altoslib_1.*; -/** - * This is the main Activity that displays the current chat session. - */ public class AltosDroid extends Activity { // Debugging private static final String TAG = "AltosDroid"; @@ -79,8 +75,7 @@ public class AltosDroid extends Activity { private TextView mLatitudeView; private TextView mLongitudeView; - // Generic field for extras at the bottom - private TextView mTextView; + // field to display the version at the bottom of the screen private TextView mVersion; // Service @@ -118,8 +113,6 @@ public class AltosDroid extends Activity { ad.mTitle.append(str); Toast.makeText(ad.getApplicationContext(), "Connected to " + str, Toast.LENGTH_SHORT).show(); ad.mAltosVoice.speak("Connected"); - //TEST! - //ad.mTextView.setText(Dumper.dump(ad.mConfigData)); break; case TelemetryService.STATE_CONNECTING: ad.mTitle.setText(R.string.title_connecting); @@ -128,14 +121,11 @@ public class AltosDroid extends Activity { case TelemetryService.STATE_NONE: ad.mConfigData = null; ad.mTitle.setText(R.string.title_not_connected); - ad.mTextView.setText(""); break; } break; case MSG_TELEMETRY: ad.update_ui((AltosState) msg.obj); - // TEST! - //ad.mTextView.setText(Dumper.dump(msg.obj)); break; } } @@ -235,7 +225,6 @@ public class AltosDroid extends Activity { // Set up the window layout requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); - //setContentView(R.layout.main); setContentView(R.layout.altosdroid); getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title); @@ -244,12 +233,7 @@ public class AltosDroid extends Activity { mTitle.setText(R.string.app_name); mTitle = (TextView) findViewById(R.id.title_right_text); - // Set up the temporary Text View - mTextView = (TextView) findViewById(R.id.text); - mTextView.setMovementMethod(new ScrollingMovementMethod()); - mTextView.setClickable(false); - mTextView.setLongClickable(false); - + // Display the Version mVersion = (TextView) findViewById(R.id.version); mVersion.setText("Version: " + BuildInfo.version + " Built: " + BuildInfo.builddate + " " + BuildInfo.buildtime + " " + BuildInfo.buildtz + -- cgit v1.2.3 From 9a54e278298540582b91ff3eda476265082e890c Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Thu, 7 Mar 2013 18:46:32 +1300 Subject: altosdroid: update copyrights/licensing Signed-off-by: Mike Beattie --- altosdroid/res/layout/altosdroid.xml | 22 ++++++++++++---------- altosdroid/res/values/strings.xml | 22 ++++++++++++---------- .../src/org/altusmetrum/AltosDroid/AltosDroid.java | 2 +- 3 files changed, 25 insertions(+), 21 deletions(-) (limited to 'altosdroid/src') diff --git a/altosdroid/res/layout/altosdroid.xml b/altosdroid/res/layout/altosdroid.xml index 691c5e04..dd277ffb 100644 --- a/altosdroid/res/layout/altosdroid.xml +++ b/altosdroid/res/layout/altosdroid.xml @@ -1,17 +1,19 @@ - - diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java index 61931731..e11a8997 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java @@ -1,5 +1,5 @@ /* - * Copyright © 2012 Mike Beattie + * Copyright © 2012-2013 Mike Beattie * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -- cgit v1.2.3 From 5560148ffea1a718a303d999a0f8a625deceef23 Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Thu, 7 Mar 2013 18:51:27 +1300 Subject: altosdroid: minor whitespace cleanup (damn my OCD!) Signed-off-by: Mike Beattie --- altosdroid/AndroidManifest.xml | 2 -- altosdroid/res/values/strings.xml | 1 - altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java | 3 --- 3 files changed, 6 deletions(-) (limited to 'altosdroid/src') diff --git a/altosdroid/AndroidManifest.xml b/altosdroid/AndroidManifest.xml index 8ecfcbb5..62d9939b 100644 --- a/altosdroid/AndroidManifest.xml +++ b/altosdroid/AndroidManifest.xml @@ -38,9 +38,7 @@ android:theme="@android:style/Theme.Dialog" android:configChanges="orientation|keyboardHidden" /> - - diff --git a/altosdroid/res/values/strings.xml b/altosdroid/res/values/strings.xml index f00f0b55..1c86f42d 100644 --- a/altosdroid/res/values/strings.xml +++ b/altosdroid/res/values/strings.xml @@ -15,7 +15,6 @@ with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. --> - AltosDroid diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java index e11a8997..5019f2fc 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java @@ -300,9 +300,6 @@ public class AltosDroid extends Activity { mAltosVoice.stop(); } - - - public void onActivityResult(int requestCode, int resultCode, Intent data) { if(D) Log.d(TAG, "onActivityResult " + resultCode); switch (requestCode) { -- cgit v1.2.3 From d229d702c8532f477e2ace2af36f2d0cc6e728d3 Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Thu, 7 Mar 2013 21:20:06 +1300 Subject: altosdroid: make AltosDroid.pos() static * Will be used from tabs that display lat/lon Signed-off-by: Mike Beattie --- altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'altosdroid/src') diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java index 5019f2fc..3b76fc9b 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java @@ -193,7 +193,7 @@ public class AltosDroid extends Activity { mAltosVoice.tell(state); } - String pos(double p, String pos, String neg) { + static String pos(double p, String pos, String neg) { String h = pos; if (p < 0) { h = neg; -- cgit v1.2.3 From d6f1b176f4005af3b6fd16d8c7d22260a3ccdfd8 Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Thu, 7 Mar 2013 21:20:47 +1300 Subject: altosdroid: whitespace cleanup DAMN my OCD. Signed-off-by: Mike Beattie --- altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java | 1 - 1 file changed, 1 deletion(-) (limited to 'altosdroid/src') diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java index 3b76fc9b..5be70953 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java @@ -150,7 +150,6 @@ public class AltosDroid extends Activity { } }; - void doBindService() { bindService(new Intent(this, TelemetryService.class), mConnection, Context.BIND_AUTO_CREATE); mIsBound = true; -- cgit v1.2.3 From 59dfcbe14622c20aaa7d5b131eece9f4c8db6887 Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Thu, 7 Mar 2013 21:28:45 +1300 Subject: altosdroid: Import initial versions of XML and Java for Tab content * Includes TabsAdapter class borrowed from Support Library sample code * New "GoNoGoLights" class for dealing with the red/green/gray LEDs * extra required strings in strings.xml * Couple of support functions in AltosDroid.java * rudimentary Maps tab - does nothing at present. Signed-off-by: Mike Beattie --- altosdroid/res/layout/tab_ascent.xml | 299 ++++++++++++++++++ altosdroid/res/layout/tab_descent.xml | 339 +++++++++++++++++++++ altosdroid/res/layout/tab_landed.xml | 169 ++++++++++ altosdroid/res/layout/tab_map.xml | 22 ++ altosdroid/res/layout/tab_pad.xml | 320 +++++++++++++++++++ altosdroid/res/values/strings.xml | 18 ++ .../src/org/altusmetrum/AltosDroid/AltosDroid.java | 6 + .../org/altusmetrum/AltosDroid/AltosDroidTab.java | 24 ++ .../org/altusmetrum/AltosDroid/GoNoGoLights.java | 55 ++++ .../src/org/altusmetrum/AltosDroid/TabAscent.java | 104 +++++++ .../src/org/altusmetrum/AltosDroid/TabDescent.java | 112 +++++++ .../src/org/altusmetrum/AltosDroid/TabLanded.java | 83 +++++ .../src/org/altusmetrum/AltosDroid/TabMap.java | 72 +++++ .../src/org/altusmetrum/AltosDroid/TabPad.java | 139 +++++++++ .../org/altusmetrum/AltosDroid/TabsAdapter.java | 133 ++++++++ 15 files changed, 1895 insertions(+) create mode 100644 altosdroid/res/layout/tab_ascent.xml create mode 100644 altosdroid/res/layout/tab_descent.xml create mode 100644 altosdroid/res/layout/tab_landed.xml create mode 100644 altosdroid/res/layout/tab_map.xml create mode 100644 altosdroid/res/layout/tab_pad.xml create mode 100644 altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidTab.java create mode 100644 altosdroid/src/org/altusmetrum/AltosDroid/GoNoGoLights.java create mode 100644 altosdroid/src/org/altusmetrum/AltosDroid/TabAscent.java create mode 100644 altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java create mode 100644 altosdroid/src/org/altusmetrum/AltosDroid/TabLanded.java create mode 100644 altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java create mode 100644 altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java create mode 100644 altosdroid/src/org/altusmetrum/AltosDroid/TabsAdapter.java (limited to 'altosdroid/src') diff --git a/altosdroid/res/layout/tab_ascent.xml b/altosdroid/res/layout/tab_ascent.xml new file mode 100644 index 00000000..b7e97086 --- /dev/null +++ b/altosdroid/res/layout/tab_ascent.xml @@ -0,0 +1,299 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/altosdroid/res/layout/tab_descent.xml b/altosdroid/res/layout/tab_descent.xml new file mode 100644 index 00000000..4b62acf9 --- /dev/null +++ b/altosdroid/res/layout/tab_descent.xml @@ -0,0 +1,339 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/altosdroid/res/layout/tab_landed.xml b/altosdroid/res/layout/tab_landed.xml new file mode 100644 index 00000000..b5c8d8c2 --- /dev/null +++ b/altosdroid/res/layout/tab_landed.xml @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/altosdroid/res/layout/tab_map.xml b/altosdroid/res/layout/tab_map.xml new file mode 100644 index 00000000..4737fae0 --- /dev/null +++ b/altosdroid/res/layout/tab_map.xml @@ -0,0 +1,22 @@ + + + diff --git a/altosdroid/res/layout/tab_pad.xml b/altosdroid/res/layout/tab_pad.xml new file mode 100644 index 00000000..f5ec46b5 --- /dev/null +++ b/altosdroid/res/layout/tab_pad.xml @@ -0,0 +1,320 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/altosdroid/res/values/strings.xml b/altosdroid/res/values/strings.xml index 679dc019..639611c2 100644 --- a/altosdroid/res/values/strings.xml +++ b/altosdroid/res/values/strings.xml @@ -44,18 +44,36 @@ Telemetry Service Stopped + Callsign Serial Flight State RSSI + Age + + Height Speed Acceleration Bearing Elevation Range + Distance + Ground Distance + Max Height + Max Speed + Max Accel + Battery Voltage + Apogee Igniter Voltage + Main Igniter Voltage + On-board Data Logging + GPS Locked + GPS Ready Latitude Longitude + Pad Latitude + Pad Longitude + Pad Altitude diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java index 5be70953..625a2eee 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java @@ -173,6 +173,12 @@ public class AltosDroid extends Activity { } } + public void registerTab(AltosDroidTab mTab) { + } + + public void unregisterTab(AltosDroidTab mTab) { + } + void update_ui(AltosState state) { mCallsignView.setText(state.data.callsign); mRSSIView.setText(String.format("%d", state.data.rssi)); diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidTab.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidTab.java new file mode 100644 index 00000000..68bbe593 --- /dev/null +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidTab.java @@ -0,0 +1,24 @@ +/* + * Copyright © 2013 Mike Beattie + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ + +package org.altusmetrum.AltosDroid; + +import org.altusmetrum.altoslib_1.AltosState; + +public interface AltosDroidTab { + public void update_ui(AltosState state); +} diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/GoNoGoLights.java b/altosdroid/src/org/altusmetrum/AltosDroid/GoNoGoLights.java new file mode 100644 index 00000000..0f95bc22 --- /dev/null +++ b/altosdroid/src/org/altusmetrum/AltosDroid/GoNoGoLights.java @@ -0,0 +1,55 @@ +/* + * Copyright © 2013 Mike Beattie + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ + +package org.altusmetrum.AltosDroid; + +import android.content.res.Resources; +import android.graphics.drawable.Drawable; +import android.widget.ImageView; + +public class GoNoGoLights { + private Boolean state; + + private ImageView red; + private ImageView green; + + private Drawable dRed; + private Drawable dGreen; + private Drawable dGray; + + public GoNoGoLights(ImageView in_red, ImageView in_green, Resources r) { + red = in_red; + green = in_green; + state = false; + + dRed = r.getDrawable(R.drawable.redled); + dGreen = r.getDrawable(R.drawable.greenled); + dGray = r.getDrawable(R.drawable.grayled); + } + + public void set(Boolean s) { + if (s == state) return; + state = s; + if (state) { + red.setImageDrawable(dGray); + green.setImageDrawable(dGreen); + } else { + red.setImageDrawable(dRed); + green.setImageDrawable(dGray); + } + } +} diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabAscent.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabAscent.java new file mode 100644 index 00000000..bda6b1fd --- /dev/null +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabAscent.java @@ -0,0 +1,104 @@ +/* + * Copyright © 2013 Mike Beattie + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ + +package org.altusmetrum.AltosDroid; + +import org.altusmetrum.altoslib_1.AltosState; + +import android.app.Activity; +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; + +public class TabAscent extends Fragment implements AltosDroidTab { + AltosDroid mAltosDroid; + + private TextView mHeightView; + private TextView mMaxHeightView; + private TextView mSpeedView; + private TextView mMaxSpeedView; + private TextView mAccelView; + private TextView mMaxAccelView; + private TextView mLatitudeView; + private TextView mLongitudeView; + private TextView mApogeeVoltageView; + private GoNoGoLights mApogeeLights; + private TextView mMainVoltageView; + private GoNoGoLights mMainLights; + + @Override + public void onAttach(Activity activity) { + super.onAttach(activity); + mAltosDroid = (AltosDroid) activity; + mAltosDroid.registerTab(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + View v = inflater.inflate(R.layout.tab_ascent, container, false); + + mHeightView = (TextView) v.findViewById(R.id.height_value); + mMaxHeightView = (TextView) v.findViewById(R.id.max_height_value); + mSpeedView = (TextView) v.findViewById(R.id.speed_value); + mMaxSpeedView = (TextView) v.findViewById(R.id.max_speed_value); + mAccelView = (TextView) v.findViewById(R.id.accel_value); + mMaxAccelView = (TextView) v.findViewById(R.id.max_accel_value); + mLatitudeView = (TextView) v.findViewById(R.id.lat_value); + mLongitudeView = (TextView) v.findViewById(R.id.lon_value); + + mApogeeVoltageView = (TextView) v.findViewById(R.id.apogee_voltage_value); + mApogeeLights = new GoNoGoLights((ImageView) v.findViewById(R.id.apogee_redled), + (ImageView) v.findViewById(R.id.apogee_greenled), + getResources()); + + mMainVoltageView = (TextView) v.findViewById(R.id.main_voltage_value); + mMainLights = new GoNoGoLights((ImageView) v.findViewById(R.id.main_redled), + (ImageView) v.findViewById(R.id.main_greenled), + getResources()); + + return v; + } + + @Override + public void onDestroy() { + super.onDestroy(); + mAltosDroid.unregisterTab(this); + mAltosDroid = null; + } + + public void update_ui(AltosState state) { + mHeightView.setText(String.format("%6.0f m", state.height)); + mMaxHeightView.setText(String.format("%6.0f m", state.max_height)); + mSpeedView.setText(String.format("%6.0f m/s", state.speed())); + mMaxSpeedView.setText(String.format("%6.0f m/s", state.max_speed())); + mAccelView.setText(String.format("%6.0f m/s²", state.acceleration)); + mMaxAccelView.setText(String.format("%6.0f m/s²", state.max_acceleration)); + + mLatitudeView.setText(AltosDroid.pos(state.gps.lat, "N", "S")); + mLongitudeView.setText(AltosDroid.pos(state.gps.lon, "W", "E")); + + mApogeeVoltageView.setText(String.format("%4.2f V", state.drogue_sense)); + mApogeeLights.set(state.drogue_sense > 3.2); + + mMainVoltageView.setText(String.format("%4.2f V", state.main_sense)); + mMainLights.set(state.main_sense > 3.2); + } +} diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java new file mode 100644 index 00000000..3805b7e7 --- /dev/null +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java @@ -0,0 +1,112 @@ +/* + * Copyright © 2013 Mike Beattie + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ + +package org.altusmetrum.AltosDroid; + +import org.altusmetrum.altoslib_1.AltosGreatCircle; +import org.altusmetrum.altoslib_1.AltosState; + +import android.app.Activity; +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; + +public class TabDescent extends Fragment implements AltosDroidTab { + AltosDroid mAltosDroid; + + private TextView mSpeedView; + private TextView mHeightView; + private TextView mElevationView; + private TextView mRangeView; + private TextView mBearingView; + private TextView mCompassView; + private TextView mDistanceView; + private TextView mLatitudeView; + private TextView mLongitudeView; + private TextView mApogeeVoltageView; + private GoNoGoLights mApogeeLights; + private TextView mMainVoltageView; + private GoNoGoLights mMainLights; + + + @Override + public void onAttach(Activity activity) { + super.onAttach(activity); + mAltosDroid = (AltosDroid) activity; + mAltosDroid.registerTab(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + View v = inflater.inflate(R.layout.tab_descent, container, false); + + mSpeedView = (TextView) v.findViewById(R.id.speed_value); + mHeightView = (TextView) v.findViewById(R.id.height_value); + mElevationView = (TextView) v.findViewById(R.id.elevation_value); + mRangeView = (TextView) v.findViewById(R.id.range_value); + mBearingView = (TextView) v.findViewById(R.id.bearing_value); + mCompassView = (TextView) v.findViewById(R.id.compass_value); + mDistanceView = (TextView) v.findViewById(R.id.distance_value); + mLatitudeView = (TextView) v.findViewById(R.id.lat_value); + mLongitudeView = (TextView) v.findViewById(R.id.lon_value); + + mApogeeVoltageView = (TextView) v.findViewById(R.id.apogee_voltage_value); + mApogeeLights = new GoNoGoLights((ImageView) v.findViewById(R.id.apogee_redled), + (ImageView) v.findViewById(R.id.apogee_greenled), + getResources()); + + mMainVoltageView = (TextView) v.findViewById(R.id.main_voltage_value); + mMainLights = new GoNoGoLights((ImageView) v.findViewById(R.id.main_redled), + (ImageView) v.findViewById(R.id.main_greenled), + getResources()); + + return v; + } + + + @Override + public void onDestroy() { + super.onDestroy(); + mAltosDroid.unregisterTab(this); + mAltosDroid = null; + } + + public void update_ui(AltosState state) { + mSpeedView.setText(String.format("%6.0f m/s", state.speed())); + mHeightView.setText(String.format("%6.0f m", state.height)); + mElevationView.setText(String.format("%3.0f°", state.elevation)); + mRangeView.setText(String.format("%6.0f m", state.range)); + if (state.from_pad != null) { + mBearingView.setText(String.format("%3.0f°", state.from_pad.bearing)); + mCompassView.setText(state.from_pad.bearing_words(AltosGreatCircle.BEARING_LONG)); + } + mDistanceView.setText(String.format("%6.0f m", state.range)); + mLatitudeView.setText(AltosDroid.pos(state.gps.lat, "N", "S")); + mLongitudeView.setText(AltosDroid.pos(state.gps.lon, "W", "E")); + + mApogeeVoltageView.setText(String.format("%4.2f V", state.drogue_sense)); + mApogeeLights.set(state.drogue_sense > 3.2); + + mMainVoltageView.setText(String.format("%4.2f V", state.main_sense)); + mMainLights.set(state.main_sense > 3.2); + } + +} diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabLanded.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabLanded.java new file mode 100644 index 00000000..a95e9145 --- /dev/null +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabLanded.java @@ -0,0 +1,83 @@ +/* + * Copyright © 2013 Mike Beattie + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ + +package org.altusmetrum.AltosDroid; + +import org.altusmetrum.altoslib_1.AltosState; + +import android.app.Activity; +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +public class TabLanded extends Fragment implements AltosDroidTab { + AltosDroid mAltosDroid; + + private TextView mBearingView; + private TextView mDistanceView; + private TextView mLatitudeView; + private TextView mLongitudeView; + private TextView mMaxHeightView; + private TextView mMaxSpeedView; + private TextView mMaxAccelView; + + + @Override + public void onAttach(Activity activity) { + super.onAttach(activity); + mAltosDroid = (AltosDroid) activity; + mAltosDroid.registerTab(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + View v = inflater.inflate(R.layout.tab_landed, container, false); + + mBearingView = (TextView) v.findViewById(R.id.bearing_value); + mDistanceView = (TextView) v.findViewById(R.id.distance_value); + mLatitudeView = (TextView) v.findViewById(R.id.lat_value); + mLongitudeView = (TextView) v.findViewById(R.id.lon_value); + mMaxHeightView = (TextView) v.findViewById(R.id.max_height_value); + mMaxSpeedView = (TextView) v.findViewById(R.id.max_speed_value); + mMaxAccelView = (TextView) v.findViewById(R.id.max_accel_value); + + return v; + } + + @Override + public void onDestroy() { + super.onDestroy(); + mAltosDroid.unregisterTab(this); + mAltosDroid = null; + } + + public void update_ui(AltosState state) { + if (state.from_pad != null) { + mBearingView.setText(String.format("%3.0f°", state.from_pad.bearing)); + mDistanceView.setText(String.format("%6.0f m", state.from_pad.distance)); + } + mLatitudeView.setText(AltosDroid.pos(state.gps.lat, "N", "S")); + mLongitudeView.setText(AltosDroid.pos(state.gps.lon, "W", "E")); + mMaxHeightView.setText(String.format("%6.0f m", state.max_height)); + mMaxAccelView.setText(String.format("%6.0f m/s²", state.max_acceleration)); + mMaxSpeedView.setText(String.format("%6.0f m/s", state.max_speed())); + } + +} diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java new file mode 100644 index 00000000..b30b4694 --- /dev/null +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java @@ -0,0 +1,72 @@ +/* + * Copyright © 2013 Mike Beattie + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ + +package org.altusmetrum.AltosDroid; + +import org.altusmetrum.altoslib_1.AltosState; + +import com.google.android.gms.maps.GoogleMap; + +import android.app.Activity; +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentTransaction; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +public class TabMap extends Fragment implements AltosDroidTab { + AltosDroid mAltosDroid; + + private GoogleMap mMap; + + + @Override + public void onAttach(Activity activity) { + super.onAttach(activity); + mAltosDroid = (AltosDroid) activity; + mAltosDroid.registerTab(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + View v = inflater.inflate(R.layout.tab_map, container, false); + return v; + } + + @Override + public void onDestroyView() { + super.onDestroyView(); + + mAltosDroid.unregisterTab(this); + mAltosDroid = null; + + //Fragment fragment = (getFragmentManager().findFragmentById(R.id.map)); + //FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction(); + //ft.remove(fragment); + //ft.commit(); + } + + public void update_ui(AltosState state) { +// mRangeView.setText(String.format("%6.0f m", state.range)); +// if (state.from_pad != null) +// mBearingView.setText(String.format("%3.0f°", state.from_pad.bearing)); +// mLatitudeView.setText(pos(state.gps.lat, "N", "S")); +// mLongitudeView.setText(pos(state.gps.lon, "W", "E")); + } + +} diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java new file mode 100644 index 00000000..41776c10 --- /dev/null +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java @@ -0,0 +1,139 @@ +/* + * Copyright © 2013 Mike Beattie + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ + +package org.altusmetrum.AltosDroid; + +import org.altusmetrum.altoslib_1.*; + +import android.app.Activity; +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; + +public class TabPad extends Fragment implements AltosDroidTab { + AltosDroid mAltosDroid; + + private TextView mBatteryVoltageView; + private GoNoGoLights mBatteryLights; + private TextView mApogeeVoltageView; + private GoNoGoLights mApogeeLights; + private TextView mMainVoltageView; + private GoNoGoLights mMainLights; + private TextView mDataLoggingView; + private GoNoGoLights mDataLoggingLights; + private TextView mGPSLockedView; + private GoNoGoLights mGPSLockedLights; + private TextView mGPSReadyView; + private GoNoGoLights mGPSReadyLights; + private TextView mPadLatitudeView; + private TextView mPadLongitudeView; + private TextView mPadAltitudeView; + + @Override + public void onAttach(Activity activity) { + super.onAttach(activity); + mAltosDroid = (AltosDroid) activity; + mAltosDroid.registerTab(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + View v = inflater.inflate(R.layout.tab_pad, container, false); + mBatteryVoltageView = (TextView) v.findViewById(R.id.battery_voltage_value); + mBatteryLights = new GoNoGoLights((ImageView) v.findViewById(R.id.battery_redled), + (ImageView) v.findViewById(R.id.battery_greenled), + getResources()); + + mApogeeVoltageView = (TextView) v.findViewById(R.id.apogee_voltage_value); + mApogeeLights = new GoNoGoLights((ImageView) v.findViewById(R.id.apogee_redled), + (ImageView) v.findViewById(R.id.apogee_greenled), + getResources()); + + mMainVoltageView = (TextView) v.findViewById(R.id.main_voltage_value); + mMainLights = new GoNoGoLights((ImageView) v.findViewById(R.id.main_redled), + (ImageView) v.findViewById(R.id.main_greenled), + getResources()); + + mDataLoggingView = (TextView) v.findViewById(R.id.logging_value); + mDataLoggingLights = new GoNoGoLights((ImageView) v.findViewById(R.id.logging_redled), + (ImageView) v.findViewById(R.id.logging_greenled), + getResources()); + + mGPSLockedView = (TextView) v.findViewById(R.id.gps_locked_value); + mGPSLockedLights = new GoNoGoLights((ImageView) v.findViewById(R.id.gps_locked_redled), + (ImageView) v.findViewById(R.id.gps_locked_greenled), + getResources()); + + mGPSReadyView = (TextView) v.findViewById(R.id.gps_ready_value); + mGPSReadyLights = new GoNoGoLights((ImageView) v.findViewById(R.id.gps_ready_redled), + (ImageView) v.findViewById(R.id.gps_ready_greenled), + getResources()); + + mPadLatitudeView = (TextView) v.findViewById(R.id.pad_lat_value); + mPadLongitudeView = (TextView) v.findViewById(R.id.pad_lon_value); + mPadAltitudeView = (TextView) v.findViewById(R.id.pad_alt_value); + return v; + } + + @Override + public void onDestroy() { + super.onDestroy(); + mAltosDroid.unregisterTab(this); + mAltosDroid = null; + } + + public void update_ui(AltosState state) { + mBatteryVoltageView.setText(String.format("%4.2f V", state.battery)); + mBatteryLights.set(state.battery > 3.7); + + mApogeeVoltageView.setText(String.format("%4.2f V", state.drogue_sense)); + mApogeeLights.set(state.drogue_sense > 3.2); + + mMainVoltageView.setText(String.format("%4.2f V", state.main_sense)); + mMainLights.set(state.main_sense > 3.2); + + if (state.data.flight != 0) { + if (state.data.state <= AltosLib.ao_flight_pad) + mDataLoggingView.setText("Ready to record"); + else if (state.data.state < AltosLib.ao_flight_landed) + mDataLoggingView.setText("Recording data"); + else + mDataLoggingView.setText("Recorded data"); + } else { + mDataLoggingView.setText("Storage full"); + } + mDataLoggingLights.set(state.data.flight != 0); + + mGPSLockedView.setText(String.format("%4d sats", state.gps.nsat)); + mGPSLockedLights.set(state.gps.locked && state.gps.nsat >= 4); + + if (state.gps_ready) + mGPSReadyView.setText("Ready"); + else + mGPSReadyView.setText(String.format("Waiting %d", state.gps_waiting)); + mGPSReadyLights.set(state.gps_ready); + + mPadLatitudeView.setText(AltosDroid.pos(state.pad_lat, "N", "S")); + mPadLongitudeView.setText(AltosDroid.pos(state.pad_lon, "W", "E")); + mPadAltitudeView.setText(String.format("%4.0f m", state.pad_alt)); + } + +} diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabsAdapter.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabsAdapter.java new file mode 100644 index 00000000..a4758c37 --- /dev/null +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabsAdapter.java @@ -0,0 +1,133 @@ +/* + * Copyright (C) 2009 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.altusmetrum.AltosDroid; + +import java.util.ArrayList; + +import android.content.Context; +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentActivity; +import android.support.v4.app.FragmentPagerAdapter; +import android.support.v4.view.ViewPager; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TabHost; +import android.widget.TabWidget; + + + +/** + * This is a helper class that implements the management of tabs and all + * details of connecting a ViewPager with associated TabHost. It relies on a + * trick. Normally a tab host has a simple API for supplying a View or + * Intent that each tab will show. This is not sufficient for switching + * between pages. So instead we make the content part of the tab host + * 0dp high (it is not shown) and the TabsAdapter supplies its own dummy + * view to show as the tab content. It listens to changes in tabs, and takes + * care of switch to the correct paged in the ViewPager whenever the selected + * tab changes. + */ +public class TabsAdapter extends FragmentPagerAdapter + implements TabHost.OnTabChangeListener, ViewPager.OnPageChangeListener { + private final Context mContext; + private final TabHost mTabHost; + private final ViewPager mViewPager; + private final ArrayList mTabs = new ArrayList(); + + static final class TabInfo { + private final String tag; + private final Class clss; + private final Bundle args; + + TabInfo(String _tag, Class _class, Bundle _args) { + tag = _tag; + clss = _class; + args = _args; + } + } + + static class DummyTabFactory implements TabHost.TabContentFactory { + private final Context mContext; + + public DummyTabFactory(Context context) { + mContext = context; + } + + public View createTabContent(String tag) { + View v = new View(mContext); + v.setMinimumWidth(0); + v.setMinimumHeight(0); + return v; + } + } + + public TabsAdapter(FragmentActivity activity, TabHost tabHost, ViewPager pager) { + super(activity.getSupportFragmentManager()); + mContext = activity; + mTabHost = tabHost; + mViewPager = pager; + mTabHost.setOnTabChangedListener(this); + mViewPager.setAdapter(this); + mViewPager.setOnPageChangeListener(this); + } + + public void addTab(TabHost.TabSpec tabSpec, Class clss, Bundle args) { + tabSpec.setContent(new DummyTabFactory(mContext)); + String tag = tabSpec.getTag(); + + TabInfo info = new TabInfo(tag, clss, args); + mTabs.add(info); + mTabHost.addTab(tabSpec); + notifyDataSetChanged(); + } + + @Override + public int getCount() { + return mTabs.size(); + } + + @Override + public Fragment getItem(int position) { + TabInfo info = mTabs.get(position); + return Fragment.instantiate(mContext, info.clss.getName(), info.args); + } + + public void onTabChanged(String tabId) { + int position = mTabHost.getCurrentTab(); + mViewPager.setCurrentItem(position); + } + + public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { + } + + public void onPageSelected(int position) { + // Unfortunately when TabHost changes the current tab, it kindly + // also takes care of putting focus on it when not in touch mode. + // The jerk. + // This hack tries to prevent this from pulling focus out of our + // ViewPager. + TabWidget widget = mTabHost.getTabWidget(); + int oldFocusability = widget.getDescendantFocusability(); + widget.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS); + mTabHost.setCurrentTab(position); + widget.setDescendantFocusability(oldFocusability); + } + + public void onPageScrollStateChanged(int state) { + } +} -- cgit v1.2.3 From 2a81d637308e680b99d7218ba9e03c9ade6626f1 Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Thu, 7 Mar 2013 21:33:27 +1300 Subject: altosdroid: implement tabs interface Signed-off-by: Mike Beattie --- altosdroid/res/layout/altosdroid.xml | 528 +++++++-------------- .../src/org/altusmetrum/AltosDroid/AltosDroid.java | 54 +-- 2 files changed, 206 insertions(+), 376 deletions(-) (limited to 'altosdroid/src') diff --git a/altosdroid/res/layout/altosdroid.xml b/altosdroid/res/layout/altosdroid.xml index dd277ffb..ce812414 100644 --- a/altosdroid/res/layout/altosdroid.xml +++ b/altosdroid/res/layout/altosdroid.xml @@ -15,352 +15,182 @@ with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. --> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java index 625a2eee..2777a4d4 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java @@ -33,18 +33,21 @@ import android.os.Handler; import android.os.Message; import android.os.Messenger; import android.os.RemoteException; +import android.support.v4.app.FragmentActivity; +import android.support.v4.view.ViewPager; import android.util.Log; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.Window; +import android.widget.TabHost; import android.widget.TextView; import android.widget.Toast; import android.app.AlertDialog; import org.altusmetrum.altoslib_1.*; -public class AltosDroid extends Activity { +public class AltosDroid extends FragmentActivity { // Debugging private static final String TAG = "AltosDroid"; private static final boolean D = true; @@ -66,18 +69,16 @@ public class AltosDroid extends Activity { private TextView mSerialView; private TextView mFlightView; private TextView mStateView; - private TextView mSpeedView; - private TextView mAccelView; - private TextView mRangeView; - private TextView mHeightView; - private TextView mElevationView; - private TextView mBearingView; - private TextView mLatitudeView; - private TextView mLongitudeView; + private TextView mAgeView; // field to display the version at the bottom of the screen private TextView mVersion; + // Tabs + TabHost mTabHost; + ViewPager mViewPager; + TabsAdapter mTabsAdapter; + // Service private boolean mIsBound = false; private Messenger mService = null; @@ -181,19 +182,10 @@ public class AltosDroid extends Activity { void update_ui(AltosState state) { mCallsignView.setText(state.data.callsign); - mRSSIView.setText(String.format("%d", state.data.rssi)); mSerialView.setText(String.format("%d", state.data.serial)); mFlightView.setText(String.format("%d", state.data.flight)); mStateView.setText(state.data.state()); - mSpeedView.setText(String.format("%6.0f m/s", state.speed())); - mAccelView.setText(String.format("%6.0f m/s²", state.acceleration)); - mRangeView.setText(String.format("%6.0f m", state.range)); - mHeightView.setText(String.format("%6.0f m", state.height)); - mElevationView.setText(String.format("%3.0f°", state.elevation)); - if (state.from_pad != null) - mBearingView.setText(String.format("%3.0f°", state.from_pad.bearing)); - mLatitudeView.setText(pos(state.gps.lat, "N", "S")); - mLongitudeView.setText(pos(state.gps.lon, "W", "E")); + mRSSIView.setText(String.format("%d", state.data.rssi)); mAltosVoice.tell(state); } @@ -233,6 +225,21 @@ public class AltosDroid extends Activity { setContentView(R.layout.altosdroid); getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title); + mTabHost = (TabHost)findViewById(android.R.id.tabhost); + mTabHost.setup(); + + mViewPager = (ViewPager)findViewById(R.id.pager); + mViewPager.setOffscreenPageLimit(4); + + mTabsAdapter = new TabsAdapter(this, mTabHost, mViewPager); + + mTabsAdapter.addTab(mTabHost.newTabSpec("pad").setIndicator("Pad"), TabPad.class, null); + mTabsAdapter.addTab(mTabHost.newTabSpec("ascent").setIndicator("Ascent"), TabAscent.class, null); + mTabsAdapter.addTab(mTabHost.newTabSpec("descent").setIndicator("Descent"), TabDescent.class, null); + mTabsAdapter.addTab(mTabHost.newTabSpec("landed").setIndicator("Landed"), TabLanded.class, null); + mTabsAdapter.addTab(mTabHost.newTabSpec("map").setIndicator("Map"), TabMap.class, null); + + // Set up the custom title mTitle = (TextView) findViewById(R.id.title_left_text); mTitle.setText(R.string.app_name); @@ -249,14 +256,7 @@ public class AltosDroid extends Activity { mSerialView = (TextView) findViewById(R.id.serial_value); mFlightView = (TextView) findViewById(R.id.flight_value); mStateView = (TextView) findViewById(R.id.state_value); - mSpeedView = (TextView) findViewById(R.id.speed_value); - mAccelView = (TextView) findViewById(R.id.accel_value); - mRangeView = (TextView) findViewById(R.id.range_value); - mHeightView = (TextView) findViewById(R.id.height_value); - mElevationView = (TextView) findViewById(R.id.elevation_value); - mBearingView = (TextView) findViewById(R.id.bearing_value); - mLatitudeView = (TextView) findViewById(R.id.latitude_value); - mLongitudeView = (TextView) findViewById(R.id.longitude_value); + mAgeView = (TextView) findViewById(R.id.age_value); mAltosVoice = new AltosVoice(this); } -- cgit v1.2.3 From 86b742743b26693cf8e56034d4ea68ff277931c1 Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Thu, 7 Mar 2013 21:35:43 +1300 Subject: altosdroid: implement UI updating on tabs Signed-off-by: Mike Beattie --- altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'altosdroid/src') diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java index 2777a4d4..8ddba9bd 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java @@ -18,6 +18,7 @@ package org.altusmetrum.AltosDroid; import java.lang.ref.WeakReference; +import java.util.ArrayList; import android.app.Activity; import android.bluetooth.BluetoothAdapter; @@ -78,6 +79,7 @@ public class AltosDroid extends FragmentActivity { TabHost mTabHost; ViewPager mViewPager; TabsAdapter mTabsAdapter; + ArrayList mTabs = new ArrayList(); // Service private boolean mIsBound = false; @@ -175,9 +177,11 @@ public class AltosDroid extends FragmentActivity { } public void registerTab(AltosDroidTab mTab) { + mTabs.add(mTab); } public void unregisterTab(AltosDroidTab mTab) { + mTabs.remove(mTab); } void update_ui(AltosState state) { @@ -187,6 +191,9 @@ public class AltosDroid extends FragmentActivity { mStateView.setText(state.data.state()); mRSSIView.setText(String.format("%d", state.data.rssi)); + for (AltosDroidTab mTab : mTabs) + mTab.update_ui(state); + mAltosVoice.tell(state); } -- cgit v1.2.3 From ecfc568574ababd23b2c4dc1323cb7265c097933 Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Thu, 7 Mar 2013 21:37:22 +1300 Subject: altosdroid: implement Age field updating Signed-off-by: Mike Beattie --- .../src/org/altusmetrum/AltosDroid/AltosDroid.java | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'altosdroid/src') diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java index 8ddba9bd..2f98b64b 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java @@ -19,6 +19,8 @@ package org.altusmetrum.AltosDroid; import java.lang.ref.WeakReference; import java.util.ArrayList; +import java.util.Timer; +import java.util.TimerTask; import android.app.Activity; import android.bluetooth.BluetoothAdapter; @@ -56,6 +58,7 @@ public class AltosDroid extends FragmentActivity { // Message types received by our Handler public static final int MSG_STATE_CHANGE = 1; public static final int MSG_TELEMETRY = 2; + public static final int MSG_UPDATE_AGE = 3; // Intent request codes private static final int REQUEST_CONNECT_DEVICE = 1; @@ -81,6 +84,10 @@ public class AltosDroid extends FragmentActivity { TabsAdapter mTabsAdapter; ArrayList mTabs = new ArrayList(); + // Timer and Saved flight state for Age calculation + private Timer timer = new Timer(); + AltosState saved_state; + // Service private boolean mIsBound = false; private Messenger mService = null; @@ -130,6 +137,11 @@ public class AltosDroid extends FragmentActivity { case MSG_TELEMETRY: ad.update_ui((AltosState) msg.obj); break; + case MSG_UPDATE_AGE: + if (ad.saved_state != null) { + ad.mAgeView.setText(String.format("%d", (System.currentTimeMillis() - ad.saved_state.report_time + 500) / 1000)); + } + break; } } }; @@ -185,6 +197,8 @@ public class AltosDroid extends FragmentActivity { } void update_ui(AltosState state) { + saved_state = state; + mCallsignView.setText(state.data.callsign); mSerialView.setText(String.format("%d", state.data.serial)); mFlightView.setText(String.format("%d", state.data.flight)); @@ -197,6 +211,13 @@ public class AltosDroid extends FragmentActivity { mAltosVoice.tell(state); } + private void onTimerTick() { + try { + mMessenger.send(Message.obtain(null, MSG_UPDATE_AGE)); + } catch (RemoteException e) { + } + } + static String pos(double p, String pos, String neg) { String h = pos; if (p < 0) { @@ -265,6 +286,8 @@ public class AltosDroid extends FragmentActivity { mStateView = (TextView) findViewById(R.id.state_value); mAgeView = (TextView) findViewById(R.id.age_value); + timer.scheduleAtFixedRate(new TimerTask(){ public void run() {onTimerTick();}}, 1000L, 100L); + mAltosVoice = new AltosVoice(this); } -- cgit v1.2.3 From e0d9128b7219b4c8ee68245a44b3428e796ca2f1 Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Thu, 7 Mar 2013 21:37:51 +1300 Subject: altosdroid: Auto tab changing Signed-off-by: Mike Beattie --- .../src/org/altusmetrum/AltosDroid/AltosDroid.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'altosdroid/src') diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java index 2f98b64b..63043abd 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java @@ -197,6 +197,22 @@ public class AltosDroid extends FragmentActivity { } void update_ui(AltosState state) { + if (saved_state != null) { + if (saved_state.state != state.state) { + String currentTab = mTabHost.getCurrentTabTag(); + switch (state.state) { + case AltosLib.ao_flight_boost: + if (currentTab.equals("pad")) mTabHost.setCurrentTabByTag("ascent"); + break; + case AltosLib.ao_flight_drogue: + if (currentTab.equals("ascent")) mTabHost.setCurrentTabByTag("descent"); + break; + case AltosLib.ao_flight_landed: + if (currentTab.equals("descent")) mTabHost.setCurrentTabByTag("landed"); + break; + } + } + } saved_state = state; mCallsignView.setText(state.data.callsign); -- cgit v1.2.3 From eba7b2ef8ef23bdb61b0390e47be6f27ffde31dc Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Fri, 8 Mar 2013 19:41:32 +1300 Subject: altosdroid: fix side-to-side scrolling in map tab Signed-off-by: Mike Beattie --- altosdroid/res/layout/altosdroid.xml | 2 +- .../src/org/altusmetrum/AltosDroid/AltosDroid.java | 4 +- .../org/altusmetrum/AltosDroid/AltosViewPager.java | 43 ++++++++++++++++++++++ 3 files changed, 46 insertions(+), 3 deletions(-) create mode 100644 altosdroid/src/org/altusmetrum/AltosDroid/AltosViewPager.java (limited to 'altosdroid/src') diff --git a/altosdroid/res/layout/altosdroid.xml b/altosdroid/res/layout/altosdroid.xml index ce812414..364f6ba6 100644 --- a/altosdroid/res/layout/altosdroid.xml +++ b/altosdroid/res/layout/altosdroid.xml @@ -176,7 +176,7 @@ android:layout_height="0dp" android:layout_weight="0" /> - mTabs = new ArrayList(); @@ -272,7 +272,7 @@ public class AltosDroid extends FragmentActivity { mTabHost = (TabHost)findViewById(android.R.id.tabhost); mTabHost.setup(); - mViewPager = (ViewPager)findViewById(R.id.pager); + mViewPager = (AltosViewPager)findViewById(R.id.pager); mViewPager.setOffscreenPageLimit(4); mTabsAdapter = new TabsAdapter(this, mTabHost, mViewPager); diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosViewPager.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosViewPager.java new file mode 100644 index 00000000..ebddc266 --- /dev/null +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosViewPager.java @@ -0,0 +1,43 @@ +/* + * Copyright © 2013 Mike Beattie + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ + +package org.altusmetrum.AltosDroid; + +import android.content.Context; +import android.support.v4.view.ViewPager; +import android.util.AttributeSet; +import android.view.View; + +public class AltosViewPager extends ViewPager { + + public AltosViewPager(Context context) { + super(context); + } + + public AltosViewPager(Context context, AttributeSet attrs) { + super(context, attrs); + } + + @Override + protected boolean canScroll(View v, boolean checkV, int dx, int x, int y) { + if(v.getClass().getPackage().getName().startsWith("maps.")){ + return true; + } + return super.canScroll(v, checkV, dx, x, y); + } + +} \ No newline at end of file -- cgit v1.2.3 From b7c82b867b12ca016164725f3736bc5b55048999 Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Sun, 10 Mar 2013 20:40:13 +1300 Subject: altosdroid: programmatically create map fragment * Allows reliable fetching of a GoogleMap handle. * Set map options, initial location (NCR North for now, temporarily) * Add some info fields below map, and update them accordingly Signed-off-by: Mike Beattie --- altosdroid/res/layout/tab_map.xml | 120 ++++++++++++++++++++- .../src/org/altusmetrum/AltosDroid/TabMap.java | 63 +++++++++-- 2 files changed, 174 insertions(+), 9 deletions(-) (limited to 'altosdroid/src') diff --git a/altosdroid/res/layout/tab_map.xml b/altosdroid/res/layout/tab_map.xml index 4737fae0..b9f4e69e 100644 --- a/altosdroid/res/layout/tab_map.xml +++ b/altosdroid/res/layout/tab_map.xml @@ -15,8 +15,122 @@ with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. --> - + android:orientation="vertical" > + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java index b30b4694..7161a340 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java @@ -17,9 +17,13 @@ package org.altusmetrum.AltosDroid; -import org.altusmetrum.altoslib_1.AltosState; +import org.altusmetrum.altoslib_1.*; + +import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap; +import com.google.android.gms.maps.SupportMapFragment; +import com.google.android.gms.maps.model.LatLng; import android.app.Activity; import android.os.Bundle; @@ -28,12 +32,19 @@ import android.support.v4.app.FragmentTransaction; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.TextView; public class TabMap extends Fragment implements AltosDroidTab { AltosDroid mAltosDroid; + private SupportMapFragment mMapFragment; private GoogleMap mMap; + private boolean mapLoaded = false; + private TextView mDistanceView; + private TextView mBearingView; + private TextView mLatitudeView; + private TextView mLongitudeView; @Override public void onAttach(Activity activity) { @@ -42,12 +53,36 @@ public class TabMap extends Fragment implements AltosDroidTab { mAltosDroid.registerTab(this); } + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + mMapFragment = new SupportMapFragment() { + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + setupMap(); + } + }; + + } + @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.tab_map, container, false); + mDistanceView = (TextView)v.findViewById(R.id.distance_value); + mBearingView = (TextView)v.findViewById(R.id.bearing_value); + mLatitudeView = (TextView)v.findViewById(R.id.lat_value); + mLongitudeView = (TextView)v.findViewById(R.id.lon_value); return v; } + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + getChildFragmentManager().beginTransaction().add(R.id.map, mMapFragment).commit(); + } + @Override public void onDestroyView() { super.onDestroyView(); @@ -61,12 +96,28 @@ public class TabMap extends Fragment implements AltosDroidTab { //ft.commit(); } + private void setupMap() { + mMap = mMapFragment.getMap(); + if (mMap != null) { + mMap.setMyLocationEnabled(true); + mMap.getUiSettings().setTiltGesturesEnabled(false); + mMap.getUiSettings().setZoomControlsEnabled(false); + mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(40.8,-104.7),8)); + + mapLoaded = true; + } + } + public void update_ui(AltosState state) { -// mRangeView.setText(String.format("%6.0f m", state.range)); -// if (state.from_pad != null) -// mBearingView.setText(String.format("%3.0f°", state.from_pad.bearing)); -// mLatitudeView.setText(pos(state.gps.lat, "N", "S")); -// mLongitudeView.setText(pos(state.gps.lon, "W", "E")); + if (state.from_pad != null) { + mDistanceView.setText(String.format("%6.0f m", state.from_pad.distance)); + mBearingView.setText(String.format("%3.0f°", state.from_pad.bearing)); + } + mLatitudeView.setText(AltosDroid.pos(state.gps.lat, "N", "S")); + mLongitudeView.setText(AltosDroid.pos(state.gps.lon, "W", "E")); + + if (mapLoaded) { + } } } -- cgit v1.2.3 From b691fc48f5e879045e68e070162af56cd08f03b4 Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Sun, 10 Mar 2013 23:27:28 +1300 Subject: altosdroid: Add rocket and pad map markers Signed-off-by: Mike Beattie --- altosdroid/res/drawable/pad.png | Bin 0 -> 584 bytes altosdroid/res/drawable/rocket.png | Bin 0 -> 1286 bytes .../src/org/altusmetrum/AltosDroid/TabMap.java | 25 +++++++++++++++++++++ 3 files changed, 25 insertions(+) create mode 100644 altosdroid/res/drawable/pad.png create mode 100644 altosdroid/res/drawable/rocket.png (limited to 'altosdroid/src') diff --git a/altosdroid/res/drawable/pad.png b/altosdroid/res/drawable/pad.png new file mode 100644 index 00000000..b2e65c8a Binary files /dev/null and b/altosdroid/res/drawable/pad.png differ diff --git a/altosdroid/res/drawable/rocket.png b/altosdroid/res/drawable/rocket.png new file mode 100644 index 00000000..7e62f6c4 Binary files /dev/null and b/altosdroid/res/drawable/rocket.png differ diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java index 7161a340..87e4f0bf 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java @@ -23,7 +23,10 @@ import org.altusmetrum.altoslib_1.*; import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.SupportMapFragment; +import com.google.android.gms.maps.model.BitmapDescriptorFactory; import com.google.android.gms.maps.model.LatLng; +import com.google.android.gms.maps.model.Marker; +import com.google.android.gms.maps.model.MarkerOptions; import android.app.Activity; import android.os.Bundle; @@ -41,6 +44,8 @@ public class TabMap extends Fragment implements AltosDroidTab { private GoogleMap mMap; private boolean mapLoaded = false; + private Marker mRocketMarker; + private Marker mPadMarker; private TextView mDistanceView; private TextView mBearingView; private TextView mLatitudeView; @@ -104,6 +109,19 @@ public class TabMap extends Fragment implements AltosDroidTab { mMap.getUiSettings().setZoomControlsEnabled(false); mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(40.8,-104.7),8)); + mRocketMarker = mMap.addMarker( + // From: http://mapicons.nicolasmollet.com/markers/industry/military/missile-2/ + new MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.rocket)) + .position(new LatLng(0,0)) + .visible(false) + ); + + mPadMarker = mMap.addMarker( + new MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.pad)) + .position(new LatLng(0,0)) + .visible(false) + ); + mapLoaded = true; } } @@ -117,6 +135,13 @@ public class TabMap extends Fragment implements AltosDroidTab { mLongitudeView.setText(AltosDroid.pos(state.gps.lon, "W", "E")); if (mapLoaded) { + mRocketMarker.setPosition(new LatLng(state.gps.lat, state.gps.lon)); + mRocketMarker.setVisible(true); + + if (state.state == AltosLib.ao_flight_pad) { + mPadMarker.setPosition(new LatLng(state.pad_lat, state.pad_lon)); + mPadMarker.setVisible(true); + } } } -- cgit v1.2.3 From d7973de32adff5402844cc1e1da3eced05265074 Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Sun, 10 Mar 2013 23:28:26 +1300 Subject: altosdroid: Add map polyline between pad and rocket Signed-off-by: Mike Beattie --- altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'altosdroid/src') diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java index 87e4f0bf..8fc8f592 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java @@ -17,6 +17,7 @@ package org.altusmetrum.AltosDroid; +import java.util.Arrays; import org.altusmetrum.altoslib_1.*; @@ -27,8 +28,11 @@ import com.google.android.gms.maps.model.BitmapDescriptorFactory; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.Marker; import com.google.android.gms.maps.model.MarkerOptions; +import com.google.android.gms.maps.model.Polyline; +import com.google.android.gms.maps.model.PolylineOptions; import android.app.Activity; +import android.graphics.Color; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; @@ -46,6 +50,8 @@ public class TabMap extends Fragment implements AltosDroidTab { private Marker mRocketMarker; private Marker mPadMarker; + private Polyline mPolyline; + private TextView mDistanceView; private TextView mBearingView; private TextView mLatitudeView; @@ -122,6 +128,13 @@ public class TabMap extends Fragment implements AltosDroidTab { .visible(false) ); + mPolyline = mMap.addPolyline( + new PolylineOptions().add(new LatLng(0,0), new LatLng(0,0)) + .width(3) + .color(Color.BLUE) + .visible(false) + ); + mapLoaded = true; } } @@ -138,6 +151,9 @@ public class TabMap extends Fragment implements AltosDroidTab { mRocketMarker.setPosition(new LatLng(state.gps.lat, state.gps.lon)); mRocketMarker.setVisible(true); + mPolyline.setPoints(Arrays.asList(new LatLng(state.pad_lat, state.pad_lon), new LatLng(state.gps.lat, state.gps.lon))); + mPolyline.setVisible(true); + if (state.state == AltosLib.ao_flight_pad) { mPadMarker.setPosition(new LatLng(state.pad_lat, state.pad_lon)); mPadMarker.setVisible(true); -- cgit v1.2.3 From 1f88d345c407e409611448d0e8813ab5a6de0a0b Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Thu, 11 Apr 2013 22:16:25 -0700 Subject: altosdroid: Hook up the position listeners Signed-off-by: Keith Packard --- altosdroid/AndroidManifest.xml | 1 - .../altusmetrum/AltosDroid/TelemetryService.java | 44 +++++++++++++++++++++- 2 files changed, 43 insertions(+), 2 deletions(-) (limited to 'altosdroid/src') diff --git a/altosdroid/AndroidManifest.xml b/altosdroid/AndroidManifest.xml index 237c6dcf..bf885744 100644 --- a/altosdroid/AndroidManifest.xml +++ b/altosdroid/AndroidManifest.xml @@ -31,7 +31,6 @@ - service; @@ -249,6 +278,14 @@ public class TelemetryService extends Service { // Start our timer - first event in 10 seconds, then every 10 seconds after that. timer.scheduleAtFixedRate(new TimerTask(){ public void run() {onTimerTick();}}, 10000L, 10000L); + // Listen for GPS and Network position updates + gpsListener = new AltosLocationListener(true); + netListener = new AltosLocationListener(false); + + LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); + + locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, gpsListener); + locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, netListener); } @Override @@ -281,6 +318,11 @@ public class TelemetryService extends Service { @Override public void onDestroy() { + // Stop listening for location updates + LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); + locationManager.removeUpdates(gpsListener); + locationManager.removeUpdates(netListener); + // Stop the bluetooth Comms threads stopAltosBluetooth(); -- cgit v1.2.3 From 83ce46c73b0e876f9f630943af19ea97b3a21d3c Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Thu, 11 Apr 2013 22:34:36 -0700 Subject: altosdroid: Send LOCATION and CRC_ERROR messages to UI. This collects all position changes and crc error increments and sends them along to the UI for presentation. Signed-off-by: Keith Packard --- .../altusmetrum/AltosDroid/TelemetryReader.java | 8 +++-- .../altusmetrum/AltosDroid/TelemetryService.java | 40 +++++++++++++++++++--- 2 files changed, 41 insertions(+), 7 deletions(-) (limited to 'altosdroid/src') diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java index 9460bdbc..fb07442e 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java @@ -36,6 +36,7 @@ public class TelemetryReader extends Thread { Handler handler; + TelemetryService service; AltosLink link; AltosRecord previous; @@ -68,12 +69,12 @@ public class TelemetryReader extends Thread { if (record == null) break; state = new AltosState(record, state); - - handler.obtainMessage(TelemetryService.MSG_TELEMETRY, state).sendToTarget(); + service.sendTelemetry(state); } catch (ParseException pp) { Log.e(TAG, String.format("Parse error: %d \"%s\"", pp.getErrorOffset(), pp.getMessage())); } catch (AltosCRCException ce) { ++crc_errors; + service.sendCrcErrors(crc_errors); } } } catch (InterruptedException ee) { @@ -83,7 +84,8 @@ public class TelemetryReader extends Thread { } } - public TelemetryReader (AltosLink in_link, Handler in_handler) { + public TelemetryReader (TelemetryService in_service, AltosLink in_link, Handler in_handler) { + service = in_service; link = in_link; handler = in_handler; diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java index e1a5ada8..98b7d32f 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java @@ -45,9 +45,11 @@ import android.location.LocationListener; import org.altusmetrum.altoslib_1.*; class AltosLocationListener implements LocationListener { + TelemetryService service; boolean fine; public void onLocationChanged(Location location) { + service.sendLocation(location); } public void onStatusChanged(String provider, int status, Bundle extras) { @@ -59,8 +61,9 @@ class AltosLocationListener implements LocationListener { public void onProviderDisabled(String provider) { } - public AltosLocationListener(boolean fine) { + public AltosLocationListener(TelemetryService service, boolean fine) { this.fine = fine; + this.service = service; } } @@ -77,6 +80,8 @@ public class TelemetryService extends Service { static final int MSG_DISCONNECTED = 6; static final int MSG_TELEMETRY = 7; static final int MSG_SETFREQUENCY = 8; + static final int MSG_LOCATION = 9; + static final int MSG_CRC_ERROR = 10; public static final int STATE_NONE = 0; public static final int STATE_READY = 1; @@ -110,6 +115,12 @@ public class TelemetryService extends Service { private AltosLocationListener gpsListener; private AltosLocationListener netListener; + // Last data seen; send to UI when it starts + + private AltosState last_state; + private Location last_location; + private int last_crc_errors; + // Handler of incoming messages from clients. static class IncomingHandler extends Handler { private final WeakReference service; @@ -129,6 +140,12 @@ public class TelemetryService extends Service { s.mClients.remove(msg.replyTo); } if (D) Log.d(TAG, "Client bound to service"); + if (s.last_state != null) + s.sendTelemetry(s.last_state); + if (s.last_location != null) + s.sendLocation(s.last_location); + if (s.last_crc_errors != 0) + s.sendCrcErrors(s.last_crc_errors); break; case MSG_UNREGISTER_CLIENT: s.mClients.remove(msg.replyTo); @@ -172,6 +189,21 @@ public class TelemetryService extends Service { } } + public void sendTelemetry(AltosState state) { + last_state = state; + mHandler.obtainMessage(MSG_TELEMETRY, state).sendToTarget(); + } + + public void sendLocation(Location location) { + last_location = location; + mHandler.obtainMessage(MSG_LOCATION, location).sendToTarget(); + } + + public void sendCrcErrors(int crc_errors) { + last_crc_errors = crc_errors; + mHandler.obtainMessage(MSG_CRC_ERROR, new Integer(crc_errors)).sendToTarget(); + } + private void sendMessageToClients(Message m) { for (int i=mClients.size()-1; i>=0; i--) { try { @@ -249,7 +281,7 @@ public class TelemetryService extends Service { setState(STATE_CONNECTED); - mTelemetryReader = new TelemetryReader(mAltosBluetooth, mHandler); + mTelemetryReader = new TelemetryReader(this, mAltosBluetooth, mHandler); mTelemetryReader.start(); mTelemetryLogger = new TelemetryLogger(this, mAltosBluetooth); @@ -279,8 +311,8 @@ public class TelemetryService extends Service { timer.scheduleAtFixedRate(new TimerTask(){ public void run() {onTimerTick();}}, 10000L, 10000L); // Listen for GPS and Network position updates - gpsListener = new AltosLocationListener(true); - netListener = new AltosLocationListener(false); + gpsListener = new AltosLocationListener(this, true); + netListener = new AltosLocationListener(this, false); LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); -- cgit v1.2.3 From 9a8cc23de5776ea3fa2bdc96cbe63422eb555d63 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Thu, 11 Apr 2013 22:39:14 -0700 Subject: altosdroid: Mike was right -- only need one LocationListener I mis-read the docs and thought we needed two listeners, one for GPS and one for network position. Looks like we don't Signed-off-by: Keith Packard --- .../org/altusmetrum/AltosDroid/TelemetryService.java | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) (limited to 'altosdroid/src') diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java index 98b7d32f..e6854585 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java @@ -46,7 +46,6 @@ import org.altusmetrum.altoslib_1.*; class AltosLocationListener implements LocationListener { TelemetryService service; - boolean fine; public void onLocationChanged(Location location) { service.sendLocation(location); @@ -61,8 +60,7 @@ class AltosLocationListener implements LocationListener { public void onProviderDisabled(String provider) { } - public AltosLocationListener(TelemetryService service, boolean fine) { - this.fine = fine; + public AltosLocationListener(TelemetryService service) { this.service = service; } } @@ -112,8 +110,7 @@ public class TelemetryService extends Service { // location listeners - private AltosLocationListener gpsListener; - private AltosLocationListener netListener; + private AltosLocationListener locationListener; // Last data seen; send to UI when it starts @@ -311,13 +308,12 @@ public class TelemetryService extends Service { timer.scheduleAtFixedRate(new TimerTask(){ public void run() {onTimerTick();}}, 10000L, 10000L); // Listen for GPS and Network position updates - gpsListener = new AltosLocationListener(this, true); - netListener = new AltosLocationListener(this, false); + locationListener = new AltosLocationListener(this); LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); - locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, gpsListener); - locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, netListener); + locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener); + locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener); } @Override @@ -352,8 +348,7 @@ public class TelemetryService extends Service { // Stop listening for location updates LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); - locationManager.removeUpdates(gpsListener); - locationManager.removeUpdates(netListener); + locationManager.removeUpdates(locationListener); // Stop the bluetooth Comms threads stopAltosBluetooth(); -- cgit v1.2.3 From 9212ce268f3a4a9f3f019f23f6eef8b57207d340 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Fri, 12 Apr 2013 00:19:24 -0700 Subject: altosdroid: Compute course from android device to rocket, display it Signed-off-by: Keith Packard --- .../src/org/altusmetrum/AltosDroid/AltosDroid.java | 28 ++++++++++++++++++++- .../org/altusmetrum/AltosDroid/AltosDroidTab.java | 4 +-- .../src/org/altusmetrum/AltosDroid/TabAscent.java | 4 +-- .../src/org/altusmetrum/AltosDroid/TabDescent.java | 23 ++++++++++------- .../src/org/altusmetrum/AltosDroid/TabLanded.java | 10 ++++---- .../src/org/altusmetrum/AltosDroid/TabMap.java | 2 +- .../src/org/altusmetrum/AltosDroid/TabPad.java | 2 +- .../altusmetrum/AltosDroid/TelemetryReader.java | 8 +++--- .../altusmetrum/AltosDroid/TelemetryService.java | 29 ++++++++++++++-------- 9 files changed, 73 insertions(+), 37 deletions(-) (limited to 'altosdroid/src') diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java index c9ce46a0..b1d080db 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java @@ -47,6 +47,7 @@ import android.widget.TabHost; import android.widget.TextView; import android.widget.Toast; import android.app.AlertDialog; +import android.location.Location; import org.altusmetrum.altoslib_1.*; @@ -59,6 +60,8 @@ public class AltosDroid extends FragmentActivity { public static final int MSG_STATE_CHANGE = 1; public static final int MSG_TELEMETRY = 2; public static final int MSG_UPDATE_AGE = 3; + public static final int MSG_LOCATION = 4; + public static final int MSG_CRC_ERROR = 5; // Intent request codes private static final int REQUEST_CONNECT_DEVICE = 1; @@ -87,6 +90,7 @@ public class AltosDroid extends FragmentActivity { // Timer and Saved flight state for Age calculation private Timer timer = new Timer(); AltosState saved_state; + Location saved_location; // Service private boolean mIsBound = false; @@ -137,6 +141,10 @@ public class AltosDroid extends FragmentActivity { case MSG_TELEMETRY: ad.update_ui((AltosState) msg.obj); break; + case MSG_LOCATION: + ad.set_location((Location) msg.obj); + break; + case MSG_CRC_ERROR: case MSG_UPDATE_AGE: if (ad.saved_state != null) { ad.mAgeView.setText(String.format("%d", (System.currentTimeMillis() - ad.saved_state.report_time + 500) / 1000)); @@ -196,6 +204,13 @@ public class AltosDroid extends FragmentActivity { mTabs.remove(mTab); } + void set_location(Location location) { + saved_location = location; + if (saved_state != null) { + update_ui(saved_state); + } + } + void update_ui(AltosState state) { if (saved_state != null) { if (saved_state.state != state.state) { @@ -215,6 +230,17 @@ public class AltosDroid extends FragmentActivity { } saved_state = state; + AltosGreatCircle from_receiver = null; + + if (saved_location != null && state.gps != null && state.gps.locked) { + from_receiver = new AltosGreatCircle(saved_location.getLatitude(), + saved_location.getLongitude(), + saved_location.getAltitude(), + state.gps.lat, + state.gps.lon, + state.gps.alt); + } + mCallsignView.setText(state.data.callsign); mSerialView.setText(String.format("%d", state.data.serial)); mFlightView.setText(String.format("%d", state.data.flight)); @@ -222,7 +248,7 @@ public class AltosDroid extends FragmentActivity { mRSSIView.setText(String.format("%d", state.data.rssi)); for (AltosDroidTab mTab : mTabs) - mTab.update_ui(state); + mTab.update_ui(state, from_receiver); mAltosVoice.tell(state); } diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidTab.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidTab.java index 68bbe593..2b5cdae7 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidTab.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidTab.java @@ -17,8 +17,8 @@ package org.altusmetrum.AltosDroid; -import org.altusmetrum.altoslib_1.AltosState; +import org.altusmetrum.altoslib_1.*; public interface AltosDroidTab { - public void update_ui(AltosState state); + public void update_ui(AltosState state, AltosGreatCircle from_receiver); } diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabAscent.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabAscent.java index bda6b1fd..ce677c57 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_1.AltosState; +import org.altusmetrum.altoslib_1.*; import android.app.Activity; import android.os.Bundle; @@ -84,7 +84,7 @@ public class TabAscent extends Fragment implements AltosDroidTab { mAltosDroid = null; } - public void update_ui(AltosState state) { + public void update_ui(AltosState state, AltosGreatCircle from_receiver) { mHeightView.setText(String.format("%6.0f m", state.height)); mMaxHeightView.setText(String.format("%6.0f m", state.max_height)); mSpeedView.setText(String.format("%6.0f m/s", state.speed())); diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java index 3805b7e7..b0c6539c 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java @@ -17,8 +17,7 @@ package org.altusmetrum.AltosDroid; -import org.altusmetrum.altoslib_1.AltosGreatCircle; -import org.altusmetrum.altoslib_1.AltosState; +import org.altusmetrum.altoslib_1.*; import android.app.Activity; import android.os.Bundle; @@ -89,16 +88,22 @@ public class TabDescent extends Fragment implements AltosDroidTab { mAltosDroid = null; } - public void update_ui(AltosState state) { + public void update_ui(AltosState state, AltosGreatCircle from_receiver) { mSpeedView.setText(String.format("%6.0f m/s", state.speed())); mHeightView.setText(String.format("%6.0f m", state.height)); - mElevationView.setText(String.format("%3.0f°", state.elevation)); - mRangeView.setText(String.format("%6.0f m", state.range)); - if (state.from_pad != null) { - mBearingView.setText(String.format("%3.0f°", state.from_pad.bearing)); - mCompassView.setText(state.from_pad.bearing_words(AltosGreatCircle.BEARING_LONG)); + if (from_receiver != null) { + mElevationView.setText(String.format("%3.0f°", from_receiver.elevation)); + mRangeView.setText(String.format("%6.0f m", from_receiver.range)); + mBearingView.setText(String.format("%3.0f°", from_receiver.bearing)); + mCompassView.setText(from_receiver.bearing_words(AltosGreatCircle.BEARING_LONG)); + mDistanceView.setText(String.format("%6.0f m", from_receiver.distance)); + } else { + mElevationView.setText(""); + mRangeView.setText(""); + mBearingView.setText(""); + mCompassView.setText(""); + mDistanceView.setText(""); } - mDistanceView.setText(String.format("%6.0f m", state.range)); mLatitudeView.setText(AltosDroid.pos(state.gps.lat, "N", "S")); mLongitudeView.setText(AltosDroid.pos(state.gps.lon, "W", "E")); diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabLanded.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabLanded.java index a95e9145..93a42334 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_1.AltosState; +import org.altusmetrum.altoslib_1.*; import android.app.Activity; import android.os.Bundle; @@ -68,10 +68,10 @@ public class TabLanded extends Fragment implements AltosDroidTab { mAltosDroid = null; } - public void update_ui(AltosState state) { - if (state.from_pad != null) { - mBearingView.setText(String.format("%3.0f°", state.from_pad.bearing)); - mDistanceView.setText(String.format("%6.0f m", state.from_pad.distance)); + public void update_ui(AltosState state, AltosGreatCircle from_receiver) { + if (from_receiver != null) { + mBearingView.setText(String.format("%3.0f°", from_receiver.bearing)); + mDistanceView.setText(String.format("%6.0f m", from_receiver.distance)); } mLatitudeView.setText(AltosDroid.pos(state.gps.lat, "N", "S")); mLongitudeView.setText(AltosDroid.pos(state.gps.lon, "W", "E")); diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java index 8fc8f592..607ded46 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java @@ -139,7 +139,7 @@ public class TabMap extends Fragment implements AltosDroidTab { } } - public void update_ui(AltosState state) { + public void update_ui(AltosState state, AltosGreatCircle from_receiver) { if (state.from_pad != null) { mDistanceView.setText(String.format("%6.0f m", state.from_pad.distance)); mBearingView.setText(String.format("%3.0f°", state.from_pad.bearing)); diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java index 41776c10..6906324d 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java @@ -100,7 +100,7 @@ public class TabPad extends Fragment implements AltosDroidTab { mAltosDroid = null; } - public void update_ui(AltosState state) { + public void update_ui(AltosState state, AltosGreatCircle from_receiver) { mBatteryVoltageView.setText(String.format("%4.2f V", state.battery)); mBatteryLights.set(state.battery > 3.7); diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java index fb07442e..716ec589 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java @@ -36,7 +36,6 @@ public class TelemetryReader extends Thread { Handler handler; - TelemetryService service; AltosLink link; AltosRecord previous; @@ -69,12 +68,12 @@ public class TelemetryReader extends Thread { if (record == null) break; state = new AltosState(record, state); - service.sendTelemetry(state); + handler.obtainMessage(TelemetryService.MSG_TELEMETRY, state).sendToTarget(); } catch (ParseException pp) { Log.e(TAG, String.format("Parse error: %d \"%s\"", pp.getErrorOffset(), pp.getMessage())); } catch (AltosCRCException ce) { ++crc_errors; - service.sendCrcErrors(crc_errors); + handler.obtainMessage(TelemetryService.MSG_CRC_ERROR, new Integer(crc_errors)).sendToTarget(); } } } catch (InterruptedException ee) { @@ -84,8 +83,7 @@ public class TelemetryReader extends Thread { } } - public TelemetryReader (TelemetryService in_service, AltosLink in_link, Handler in_handler) { - service = in_service; + public TelemetryReader (AltosLink in_link, Handler in_handler) { link = in_link; handler = in_handler; diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java index e6854585..0ddfdfc3 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java @@ -45,10 +45,10 @@ import android.location.LocationListener; import org.altusmetrum.altoslib_1.*; class AltosLocationListener implements LocationListener { - TelemetryService service; + Handler handler; public void onLocationChanged(Location location) { - service.sendLocation(location); + handler.obtainMessage(TelemetryService.MSG_LOCATION, location).sendToTarget(); } public void onStatusChanged(String provider, int status, Bundle extras) { @@ -60,8 +60,8 @@ class AltosLocationListener implements LocationListener { public void onProviderDisabled(String provider) { } - public AltosLocationListener(TelemetryService service) { - this.service = service; + public AltosLocationListener(Handler handler) { + this.handler = handler; } } @@ -169,8 +169,20 @@ public class TelemetryService extends Service { } break; case MSG_TELEMETRY: + // forward telemetry messages + s.last_state = (AltosState) msg.obj; s.sendMessageToClients(Message.obtain(null, AltosDroid.MSG_TELEMETRY, msg.obj)); break; + case MSG_LOCATION: + // forward location messages + s.last_location = (Location) msg.obj; + s.sendMessageToClients(Message.obtain(null, AltosDroid.MSG_LOCATION, msg.obj)); + break; + case MSG_CRC_ERROR: + // forward crc error messages + s.last_crc_errors = (Integer) msg.obj; + s.sendMessageToClients(Message.obtain(null, AltosDroid.MSG_CRC_ERROR, msg.obj)); + break; case MSG_SETFREQUENCY: if (s.state == STATE_CONNECTED) { try { @@ -187,18 +199,13 @@ public class TelemetryService extends Service { } public void sendTelemetry(AltosState state) { - last_state = state; - mHandler.obtainMessage(MSG_TELEMETRY, state).sendToTarget(); } public void sendLocation(Location location) { - last_location = location; mHandler.obtainMessage(MSG_LOCATION, location).sendToTarget(); } public void sendCrcErrors(int crc_errors) { - last_crc_errors = crc_errors; - mHandler.obtainMessage(MSG_CRC_ERROR, new Integer(crc_errors)).sendToTarget(); } private void sendMessageToClients(Message m) { @@ -278,7 +285,7 @@ public class TelemetryService extends Service { setState(STATE_CONNECTED); - mTelemetryReader = new TelemetryReader(this, mAltosBluetooth, mHandler); + mTelemetryReader = new TelemetryReader(mAltosBluetooth, mHandler); mTelemetryReader.start(); mTelemetryLogger = new TelemetryLogger(this, mAltosBluetooth); @@ -308,7 +315,7 @@ public class TelemetryService extends Service { timer.scheduleAtFixedRate(new TimerTask(){ public void run() {onTimerTick();}}, 10000L, 10000L); // Listen for GPS and Network position updates - locationListener = new AltosLocationListener(this); + locationListener = new AltosLocationListener(mHandler); LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); -- cgit v1.2.3 From 1ec6fb3b9cec0f864d6e65d0cc6b4dd42edd3e16 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Fri, 12 Apr 2013 01:00:36 -0700 Subject: altosdroid: Check state.gps != null before using it Avoid crashing. Signed-off-by: Keith Packard --- .../src/org/altusmetrum/AltosDroid/AltosDroid.java | 7 +++-- .../org/altusmetrum/AltosDroid/AltosDroidTab.java | 3 ++- .../src/org/altusmetrum/AltosDroid/TabAscent.java | 9 ++++--- .../src/org/altusmetrum/AltosDroid/TabDescent.java | 9 ++++--- .../src/org/altusmetrum/AltosDroid/TabLanded.java | 9 ++++--- .../src/org/altusmetrum/AltosDroid/TabMap.java | 31 +++++++++++++++++----- .../src/org/altusmetrum/AltosDroid/TabPad.java | 31 +++++++++++++--------- 7 files changed, 68 insertions(+), 31 deletions(-) (limited to 'altosdroid/src') diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java index b1d080db..cf4227ca 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java @@ -233,9 +233,12 @@ public class AltosDroid extends FragmentActivity { AltosGreatCircle from_receiver = null; if (saved_location != null && state.gps != null && state.gps.locked) { + double altitude = 0; + if (saved_location.hasAltitude()) + altitude = saved_location.getAltitude(); from_receiver = new AltosGreatCircle(saved_location.getLatitude(), saved_location.getLongitude(), - saved_location.getAltitude(), + altitude, state.gps.lat, state.gps.lon, state.gps.alt); @@ -248,7 +251,7 @@ public class AltosDroid extends FragmentActivity { mRSSIView.setText(String.format("%d", state.data.rssi)); for (AltosDroidTab mTab : mTabs) - mTab.update_ui(state, from_receiver); + mTab.update_ui(state, from_receiver, saved_location); mAltosVoice.tell(state); } diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidTab.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidTab.java index 2b5cdae7..6ebb47f7 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidTab.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidTab.java @@ -18,7 +18,8 @@ package org.altusmetrum.AltosDroid; import org.altusmetrum.altoslib_1.*; +import android.location.Location; public interface AltosDroidTab { - public void update_ui(AltosState state, AltosGreatCircle from_receiver); + public void update_ui(AltosState state, AltosGreatCircle from_receiver, Location receiver); } diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabAscent.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabAscent.java index ce677c57..de3bc3d2 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TabAscent.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabAscent.java @@ -27,6 +27,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; +import android.location.Location; public class TabAscent extends Fragment implements AltosDroidTab { AltosDroid mAltosDroid; @@ -84,7 +85,7 @@ public class TabAscent extends Fragment implements AltosDroidTab { mAltosDroid = null; } - public void update_ui(AltosState state, AltosGreatCircle from_receiver) { + public void update_ui(AltosState state, AltosGreatCircle from_receiver, Location receiver) { mHeightView.setText(String.format("%6.0f m", state.height)); mMaxHeightView.setText(String.format("%6.0f m", state.max_height)); mSpeedView.setText(String.format("%6.0f m/s", state.speed())); @@ -92,8 +93,10 @@ public class TabAscent extends Fragment implements AltosDroidTab { mAccelView.setText(String.format("%6.0f m/s²", state.acceleration)); mMaxAccelView.setText(String.format("%6.0f m/s²", state.max_acceleration)); - mLatitudeView.setText(AltosDroid.pos(state.gps.lat, "N", "S")); - mLongitudeView.setText(AltosDroid.pos(state.gps.lon, "W", "E")); + if (state.gps != null) { + mLatitudeView.setText(AltosDroid.pos(state.gps.lat, "N", "S")); + mLongitudeView.setText(AltosDroid.pos(state.gps.lon, "W", "E")); + } mApogeeVoltageView.setText(String.format("%4.2f V", state.drogue_sense)); mApogeeLights.set(state.drogue_sense > 3.2); diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java index b0c6539c..698e89fc 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java @@ -27,6 +27,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; +import android.location.Location; public class TabDescent extends Fragment implements AltosDroidTab { AltosDroid mAltosDroid; @@ -88,7 +89,7 @@ public class TabDescent extends Fragment implements AltosDroidTab { mAltosDroid = null; } - public void update_ui(AltosState state, AltosGreatCircle from_receiver) { + public void update_ui(AltosState state, AltosGreatCircle from_receiver, Location receiver) { mSpeedView.setText(String.format("%6.0f m/s", state.speed())); mHeightView.setText(String.format("%6.0f m", state.height)); if (from_receiver != null) { @@ -104,8 +105,10 @@ public class TabDescent extends Fragment implements AltosDroidTab { mCompassView.setText(""); mDistanceView.setText(""); } - mLatitudeView.setText(AltosDroid.pos(state.gps.lat, "N", "S")); - mLongitudeView.setText(AltosDroid.pos(state.gps.lon, "W", "E")); + if (state.gps != null) { + mLatitudeView.setText(AltosDroid.pos(state.gps.lat, "N", "S")); + mLongitudeView.setText(AltosDroid.pos(state.gps.lon, "W", "E")); + } mApogeeVoltageView.setText(String.format("%4.2f V", state.drogue_sense)); mApogeeLights.set(state.drogue_sense > 3.2); diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabLanded.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabLanded.java index 93a42334..c346dc99 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TabLanded.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabLanded.java @@ -26,6 +26,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; +import android.location.Location; public class TabLanded extends Fragment implements AltosDroidTab { AltosDroid mAltosDroid; @@ -68,13 +69,15 @@ public class TabLanded extends Fragment implements AltosDroidTab { mAltosDroid = null; } - public void update_ui(AltosState state, AltosGreatCircle from_receiver) { + public void update_ui(AltosState state, AltosGreatCircle from_receiver, Location receiver) { if (from_receiver != null) { mBearingView.setText(String.format("%3.0f°", from_receiver.bearing)); mDistanceView.setText(String.format("%6.0f m", from_receiver.distance)); } - mLatitudeView.setText(AltosDroid.pos(state.gps.lat, "N", "S")); - mLongitudeView.setText(AltosDroid.pos(state.gps.lon, "W", "E")); + if (state.gps != null) { + mLatitudeView.setText(AltosDroid.pos(state.gps.lat, "N", "S")); + mLongitudeView.setText(AltosDroid.pos(state.gps.lon, "W", "E")); + } mMaxHeightView.setText(String.format("%6.0f m", state.max_height)); mMaxAccelView.setText(String.format("%6.0f m/s²", state.max_acceleration)); mMaxSpeedView.setText(String.format("%6.0f m/s", state.max_speed())); diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java index 607ded46..371fd9c1 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java @@ -40,6 +40,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; +import android.location.Location; public class TabMap extends Fragment implements AltosDroidTab { AltosDroid mAltosDroid; @@ -50,6 +51,7 @@ public class TabMap extends Fragment implements AltosDroidTab { private Marker mRocketMarker; private Marker mPadMarker; + private Marker mReceiverMarker; private Polyline mPolyline; private TextView mDistanceView; @@ -128,6 +130,12 @@ public class TabMap extends Fragment implements AltosDroidTab { .visible(false) ); + mReceiverMarker = mMap.addMarker( + new MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.pad)) + .position(new LatLng(0,0)) + .visible(false) + ); + mPolyline = mMap.addPolyline( new PolylineOptions().add(new LatLng(0,0), new LatLng(0,0)) .width(3) @@ -139,25 +147,34 @@ public class TabMap extends Fragment implements AltosDroidTab { } } - public void update_ui(AltosState state, AltosGreatCircle from_receiver) { + public void update_ui(AltosState state, AltosGreatCircle from_receiver, Location receiver) { if (state.from_pad != null) { mDistanceView.setText(String.format("%6.0f m", state.from_pad.distance)); mBearingView.setText(String.format("%3.0f°", state.from_pad.bearing)); } - mLatitudeView.setText(AltosDroid.pos(state.gps.lat, "N", "S")); - mLongitudeView.setText(AltosDroid.pos(state.gps.lon, "W", "E")); + if (state.gps != null) { + mLatitudeView.setText(AltosDroid.pos(state.gps.lat, "N", "S")); + mLongitudeView.setText(AltosDroid.pos(state.gps.lon, "W", "E")); + } if (mapLoaded) { - mRocketMarker.setPosition(new LatLng(state.gps.lat, state.gps.lon)); - mRocketMarker.setVisible(true); + if (state.gps != null) { + mRocketMarker.setPosition(new LatLng(state.gps.lat, state.gps.lon)); + mRocketMarker.setVisible(true); - mPolyline.setPoints(Arrays.asList(new LatLng(state.pad_lat, state.pad_lon), new LatLng(state.gps.lat, state.gps.lon))); - mPolyline.setVisible(true); + mPolyline.setPoints(Arrays.asList(new LatLng(state.pad_lat, state.pad_lon), new LatLng(state.gps.lat, state.gps.lon))); + mPolyline.setVisible(true); + } if (state.state == AltosLib.ao_flight_pad) { mPadMarker.setPosition(new LatLng(state.pad_lat, state.pad_lon)); mPadMarker.setVisible(true); } + + if (receiver != null) { + mReceiverMarker.setPosition(new LatLng(receiver.getLatitude(), receiver.getLongitude())); + mReceiverMarker.setVisible(true); + } } } diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java index 6906324d..5070ec0b 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java @@ -27,6 +27,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; +import android.location.Location; public class TabPad extends Fragment implements AltosDroidTab { AltosDroid mAltosDroid; @@ -100,7 +101,7 @@ public class TabPad extends Fragment implements AltosDroidTab { mAltosDroid = null; } - public void update_ui(AltosState state, AltosGreatCircle from_receiver) { + public void update_ui(AltosState state, AltosGreatCircle from_receiver, Location receiver) { mBatteryVoltageView.setText(String.format("%4.2f V", state.battery)); mBatteryLights.set(state.battery > 3.7); @@ -122,18 +123,24 @@ public class TabPad extends Fragment implements AltosDroidTab { } mDataLoggingLights.set(state.data.flight != 0); - mGPSLockedView.setText(String.format("%4d sats", state.gps.nsat)); - mGPSLockedLights.set(state.gps.locked && state.gps.nsat >= 4); - - if (state.gps_ready) - mGPSReadyView.setText("Ready"); - else - mGPSReadyView.setText(String.format("Waiting %d", state.gps_waiting)); - mGPSReadyLights.set(state.gps_ready); + if (state.gps != null) { + mGPSLockedView.setText(String.format("%4d sats", state.gps.nsat)); + mGPSLockedLights.set(state.gps.locked && state.gps.nsat >= 4); + if (state.gps_ready) + mGPSReadyView.setText("Ready"); + else + mGPSReadyView.setText(String.format("Waiting %d", state.gps_waiting)); + mGPSReadyLights.set(state.gps_ready); + } - mPadLatitudeView.setText(AltosDroid.pos(state.pad_lat, "N", "S")); - mPadLongitudeView.setText(AltosDroid.pos(state.pad_lon, "W", "E")); - mPadAltitudeView.setText(String.format("%4.0f m", state.pad_alt)); + if (receiver != null) { + double altitude = 0; + if (receiver.hasAltitude()) + altitude = receiver.getAltitude(); + mPadLatitudeView.setText(AltosDroid.pos(receiver.getLatitude(), "N", "S")); + mPadLongitudeView.setText(AltosDroid.pos(receiver.getLongitude(), "W", "E")); + mPadAltitudeView.setText(String.format("%4.0f m", altitude)); + } } } -- cgit v1.2.3 From 19ef593be9ff3f329e44472735d90c80129d2795 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Fri, 12 Apr 2013 01:04:55 -0700 Subject: altosdroid: The Map already draws our location; no receiver marker needed Signed-off-by: Keith Packard --- altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java | 12 ------------ 1 file changed, 12 deletions(-) (limited to 'altosdroid/src') diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java index 371fd9c1..0a208fa8 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java @@ -51,7 +51,6 @@ public class TabMap extends Fragment implements AltosDroidTab { private Marker mRocketMarker; private Marker mPadMarker; - private Marker mReceiverMarker; private Polyline mPolyline; private TextView mDistanceView; @@ -130,12 +129,6 @@ public class TabMap extends Fragment implements AltosDroidTab { .visible(false) ); - mReceiverMarker = mMap.addMarker( - new MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.pad)) - .position(new LatLng(0,0)) - .visible(false) - ); - mPolyline = mMap.addPolyline( new PolylineOptions().add(new LatLng(0,0), new LatLng(0,0)) .width(3) @@ -170,11 +163,6 @@ public class TabMap extends Fragment implements AltosDroidTab { mPadMarker.setPosition(new LatLng(state.pad_lat, state.pad_lon)); mPadMarker.setVisible(true); } - - if (receiver != null) { - mReceiverMarker.setPosition(new LatLng(receiver.getLatitude(), receiver.getLongitude())); - mReceiverMarker.setVisible(true); - } } } -- cgit v1.2.3 From e4b6fc3238ad9911fd40ef25accf82a401cb190f Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sat, 13 Apr 2013 11:39:14 -0700 Subject: altosdroid: Show our position in the map tab. Squeeze to fit phones Shrink everything to fit on phones, then add phone location to the map tab Signed-off-by: Keith Packard --- altosdroid/res/layout/altosdroid.xml | 12 +-- altosdroid/res/layout/tab_ascent.xml | 20 ++--- altosdroid/res/layout/tab_descent.xml | 22 +++--- altosdroid/res/layout/tab_landed.xml | 14 ++-- altosdroid/res/layout/tab_map.xml | 88 +++++++++++++++++----- altosdroid/res/layout/tab_pad.xml | 30 ++++---- altosdroid/res/values/strings.xml | 10 ++- .../src/org/altusmetrum/AltosDroid/AltosDroid.java | 4 +- .../src/org/altusmetrum/AltosDroid/TabMap.java | 21 ++++-- .../altusmetrum/AltosDroid/TelemetryService.java | 5 ++ 10 files changed, 149 insertions(+), 77 deletions(-) (limited to 'altosdroid/src') diff --git a/altosdroid/res/layout/altosdroid.xml b/altosdroid/res/layout/altosdroid.xml index b653aa2e..71b7ad05 100644 --- a/altosdroid/res/layout/altosdroid.xml +++ b/altosdroid/res/layout/altosdroid.xml @@ -47,7 +47,7 @@ android:layout_height="wrap_content" android:layout_below="@+id/callsign_label" android:text="" - android:textAppearance="?android:attr/textAppearanceMedium" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> diff --git a/altosdroid/res/layout/tab_ascent.xml b/altosdroid/res/layout/tab_ascent.xml index 555da7f2..d2d721e1 100644 --- a/altosdroid/res/layout/tab_ascent.xml +++ b/altosdroid/res/layout/tab_ascent.xml @@ -47,7 +47,7 @@ android:layout_alignParentRight="true" android:layout_below="@id/height_label" android:text="" - android:textAppearance="?android:attr/textAppearanceMedium" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> @@ -99,7 +99,7 @@ android:layout_alignParentRight="true" android:layout_below="@id/speed_label" android:text="" - android:textAppearance="?android:attr/textAppearanceMedium" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> @@ -151,7 +151,7 @@ android:layout_alignParentRight="true" android:layout_below="@id/accel_label" android:text="" - android:textAppearance="?android:attr/textAppearanceMedium" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> @@ -194,7 +194,7 @@ android:layout_alignParentRight="true" android:layout_below="@id/lat_label" android:text="" - android:textAppearance="?android:attr/textAppearanceMedium" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> \ No newline at end of file diff --git a/altosdroid/res/layout/tab_descent.xml b/altosdroid/res/layout/tab_descent.xml index 5f11a999..56e8a00a 100644 --- a/altosdroid/res/layout/tab_descent.xml +++ b/altosdroid/res/layout/tab_descent.xml @@ -46,7 +46,7 @@ android:layout_alignParentRight="true" android:layout_below="@id/speed_label" android:text="" - android:textAppearance="?android:attr/textAppearanceMedium" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> @@ -99,7 +99,7 @@ android:layout_alignParentRight="true" android:layout_below="@id/elevation_label" android:text="" - android:textAppearance="?android:attr/textAppearanceMedium" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> @@ -152,7 +152,7 @@ android:layout_alignParentRight="true" android:layout_below="@id/bearing_label" android:text="" - android:textAppearance="?android:attr/textAppearanceMedium" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> @@ -205,7 +205,7 @@ android:layout_alignParentRight="true" android:layout_below="@id/distance_label" android:text="" - android:textAppearance="?android:attr/textAppearanceMedium" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> diff --git a/altosdroid/res/layout/tab_landed.xml b/altosdroid/res/layout/tab_landed.xml index 18b1c566..9008700f 100644 --- a/altosdroid/res/layout/tab_landed.xml +++ b/altosdroid/res/layout/tab_landed.xml @@ -37,7 +37,7 @@ android:layout_alignParentRight="true" android:layout_below="@+id/bearing_label" android:text="" - android:textAppearance="?android:attr/textAppearanceMedium" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> \ No newline at end of file diff --git a/altosdroid/res/layout/tab_map.xml b/altosdroid/res/layout/tab_map.xml index 233d2a0d..f611ae48 100644 --- a/altosdroid/res/layout/tab_map.xml +++ b/altosdroid/res/layout/tab_map.xml @@ -46,16 +46,16 @@ android:id="@+id/distance_label" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:paddingRight="4dp" android:text="@string/distance_label" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> @@ -96,19 +96,19 @@ android:paddingTop="5dp" > + android:paddingRight="4dp" + android:text="@string/target_latitude_label" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> + android:paddingRight="4dp" + android:text="@string/target_longitude_label" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/altosdroid/res/layout/tab_pad.xml b/altosdroid/res/layout/tab_pad.xml index b8ca1a44..a21f9bbb 100644 --- a/altosdroid/res/layout/tab_pad.xml +++ b/altosdroid/res/layout/tab_pad.xml @@ -55,7 +55,7 @@ android:layout_below="@id/battery_voltage_label" android:layout_toRightOf="@id/battery_greenled" android:text="" - android:textAppearance="?android:attr/textAppearanceMedium" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> @@ -265,10 +266,9 @@ android:id="@+id/pad_lat_value" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_below="@id/pad_lat_label" - android:layout_toRightOf="@id/gps_ready_greenled" + android:layout_toRightOf="@id/pad_lat_label" android:text="" - android:textAppearance="?android:attr/textAppearanceMedium" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> @@ -288,10 +289,9 @@ android:id="@+id/pad_lon_value" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_below="@id/pad_lon_label" - android:layout_toRightOf="@id/gps_ready_greenled" + android:layout_toRightOf="@id/pad_lon_label" android:text="" - android:textAppearance="?android:attr/textAppearanceMedium" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> @@ -311,10 +312,9 @@ android:id="@+id/pad_alt_value" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_below="@id/pad_alt_label" - android:layout_toRightOf="@id/gps_ready_greenled" + android:layout_toRightOf="@id/pad_alt_label" android:text="" - android:textAppearance="?android:attr/textAppearanceMedium" /> + android:textAppearance="?android:attr/textAppearanceSmall" /> \ No newline at end of file diff --git a/altosdroid/res/values/strings.xml b/altosdroid/res/values/strings.xml index 639611c2..90da617b 100644 --- a/altosdroid/res/values/strings.xml +++ b/altosdroid/res/values/strings.xml @@ -72,8 +72,12 @@ GPS Ready Latitude Longitude - Pad Latitude - Pad Longitude - Pad Altitude + Tar Lat + Tar Lon + My Lat + My Lon + Pad Lat + Pad Lon + Pad Alt diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java index cf4227ca..3715c3f9 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java @@ -271,7 +271,7 @@ public class AltosDroid extends FragmentActivity { } int deg = (int) Math.floor(p); double min = (p - Math.floor(p)) * 60.0; - return String.format("%d° %9.6f\" %s", deg, min, h); + return String.format("%d°%9.4f\" %s", deg, min, h); } @Override @@ -312,6 +312,8 @@ public class AltosDroid extends FragmentActivity { mTabsAdapter.addTab(mTabHost.newTabSpec("landed").setIndicator("Landed"), TabLanded.class, null); mTabsAdapter.addTab(mTabHost.newTabSpec("map").setIndicator("Map"), TabMap.class, null); + for (int i = 0; i < 5; i++) + mTabHost.getTabWidget().getChildAt(i).getLayoutParams().height = 45; // Set up the custom title mTitle = (TextView) findViewById(R.id.title_left_text); diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java index 0a208fa8..29696dbf 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java @@ -55,8 +55,10 @@ public class TabMap extends Fragment implements AltosDroidTab { private TextView mDistanceView; private TextView mBearingView; - private TextView mLatitudeView; - private TextView mLongitudeView; + private TextView mTargetLatitudeView; + private TextView mTargetLongitudeView; + private TextView mReceiverLatitudeView; + private TextView mReceiverLongitudeView; @Override public void onAttach(Activity activity) { @@ -84,8 +86,10 @@ public class TabMap extends Fragment implements AltosDroidTab { View v = inflater.inflate(R.layout.tab_map, container, false); mDistanceView = (TextView)v.findViewById(R.id.distance_value); mBearingView = (TextView)v.findViewById(R.id.bearing_value); - mLatitudeView = (TextView)v.findViewById(R.id.lat_value); - mLongitudeView = (TextView)v.findViewById(R.id.lon_value); + mTargetLatitudeView = (TextView)v.findViewById(R.id.target_lat_value); + mTargetLongitudeView = (TextView)v.findViewById(R.id.target_lon_value); + mReceiverLatitudeView = (TextView)v.findViewById(R.id.receiver_lat_value); + mReceiverLongitudeView = (TextView)v.findViewById(R.id.receiver_lon_value); return v; } @@ -146,8 +150,13 @@ public class TabMap extends Fragment implements AltosDroidTab { mBearingView.setText(String.format("%3.0f°", state.from_pad.bearing)); } if (state.gps != null) { - mLatitudeView.setText(AltosDroid.pos(state.gps.lat, "N", "S")); - mLongitudeView.setText(AltosDroid.pos(state.gps.lon, "W", "E")); + mTargetLatitudeView.setText(AltosDroid.pos(state.gps.lat, "N", "S")); + mTargetLongitudeView.setText(AltosDroid.pos(state.gps.lon, "W", "E")); + } + + if (receiver != null) { + mReceiverLatitudeView.setText(AltosDroid.pos(receiver.getLatitude(), "N", "S")); + mReceiverLongitudeView.setText(AltosDroid.pos(receiver.getLongitude(), "W", "E")); } if (mapLoaded) { diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java index 0ddfdfc3..f1304a95 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java @@ -245,6 +245,9 @@ public class TelemetryService extends Service { } private void startAltosBluetooth() { + if (device == null) { + return; + } if (mAltosBluetooth == null) { if (D) Log.d(TAG, String.format("startAltosBluetooth(): Connecting to %s (%s)", device.getName(), device.getAddress())); mAltosBluetooth = new AltosBluetooth(device, mHandler); @@ -274,6 +277,8 @@ public class TelemetryService extends Service { private void connected() { try { + if (mAltosBluetooth == null) + throw new InterruptedException("no bluetooth"); mConfigData = mAltosBluetooth.config_data(); } catch (InterruptedException e) { } catch (TimeoutException e) { -- cgit v1.2.3 From 192bc28fbe2a8613d0b42e4fb3f7674a1a50abc7 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sat, 13 Apr 2013 11:45:23 -0700 Subject: altosdroid: Get rid of a couple of startup messages These are just annoying Signed-off-by: Keith Packard --- altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java | 1 - altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java | 1 - 2 files changed, 2 deletions(-) (limited to 'altosdroid/src') diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java index 3715c3f9..93af2fdc 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java @@ -126,7 +126,6 @@ public class AltosDroid extends FragmentActivity { ad.mTitle.setText(R.string.title_connected_to); ad.mTitle.append(str); Toast.makeText(ad.getApplicationContext(), "Connected to " + str, Toast.LENGTH_SHORT).show(); - ad.mAltosVoice.speak("Connected"); break; case TelemetryService.STATE_CONNECTING: ad.mTitle.setText(R.string.title_connecting); diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java index 7da5c4a9..b3dba626 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java @@ -38,7 +38,6 @@ public class AltosVoice { public void onInit(int status) { if (status == TextToSpeech.SUCCESS) tts_enabled = true; if (tts_enabled) { - speak("AltosDroid ready"); idle_thread = new IdleThread(); } } -- cgit v1.2.3 From 3cd8ff18a7546c1e251747ba26240cb130003ef1 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sat, 13 Apr 2013 12:13:18 -0700 Subject: altosdroid: Update UI even if no telem has been received. Center map. This allows the receiver location to be displayed even when telemetry is not. Center the map on the first valid location, either receiver or rocket. Update center if a significantly more precise location is received. Signed-off-by: Keith Packard --- altosdroid/res/layout/tab_landed.xml | 58 +++++++++++++++++--- .../src/org/altusmetrum/AltosDroid/AltosDroid.java | 23 ++++---- .../src/org/altusmetrum/AltosDroid/TabAscent.java | 34 ++++++------ .../src/org/altusmetrum/AltosDroid/TabDescent.java | 50 ++++++++--------- .../src/org/altusmetrum/AltosDroid/TabLanded.java | 32 +++++++---- .../src/org/altusmetrum/AltosDroid/TabMap.java | 62 ++++++++++++++-------- .../src/org/altusmetrum/AltosDroid/TabPad.java | 60 +++++++++++---------- 7 files changed, 199 insertions(+), 120 deletions(-) (limited to 'altosdroid/src') diff --git a/altosdroid/res/layout/tab_landed.xml b/altosdroid/res/layout/tab_landed.xml index 9008700f..f27baa9e 100644 --- a/altosdroid/res/layout/tab_landed.xml +++ b/altosdroid/res/layout/tab_landed.xml @@ -67,17 +67,17 @@ android:paddingTop="5dp" > + android:text="@string/target_latitude_label" /> @@ -88,17 +88,59 @@ android:paddingTop="5dp" > + android:text="@string/target_longitude_label" /> + + + + + + + + + + + + + + diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java index 93af2fdc..5ce6f810 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java @@ -205,13 +205,11 @@ public class AltosDroid extends FragmentActivity { void set_location(Location location) { saved_location = location; - if (saved_state != null) { - update_ui(saved_state); - } + update_ui(saved_state); } void update_ui(AltosState state) { - if (saved_state != null) { + if (state != null && saved_state != null) { if (saved_state.state != state.state) { String currentTab = mTabHost.getCurrentTabTag(); switch (state.state) { @@ -231,7 +229,7 @@ public class AltosDroid extends FragmentActivity { AltosGreatCircle from_receiver = null; - if (saved_location != null && state.gps != null && state.gps.locked) { + if (state != null && saved_location != null && state.gps != null && state.gps.locked) { double altitude = 0; if (saved_location.hasAltitude()) altitude = saved_location.getAltitude(); @@ -243,16 +241,19 @@ public class AltosDroid extends FragmentActivity { state.gps.alt); } - mCallsignView.setText(state.data.callsign); - mSerialView.setText(String.format("%d", state.data.serial)); - mFlightView.setText(String.format("%d", state.data.flight)); - mStateView.setText(state.data.state()); - mRSSIView.setText(String.format("%d", state.data.rssi)); + if (state != null) { + mCallsignView.setText(state.data.callsign); + mSerialView.setText(String.format("%d", state.data.serial)); + mFlightView.setText(String.format("%d", state.data.flight)); + mStateView.setText(state.data.state()); + mRSSIView.setText(String.format("%d", state.data.rssi)); + } for (AltosDroidTab mTab : mTabs) mTab.update_ui(state, from_receiver, saved_location); - mAltosVoice.tell(state); + if (state != null) + mAltosVoice.tell(state); } private void onTimerTick() { diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabAscent.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabAscent.java index de3bc3d2..23d2e97c 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TabAscent.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabAscent.java @@ -86,22 +86,24 @@ public class TabAscent extends Fragment implements AltosDroidTab { } public void update_ui(AltosState state, AltosGreatCircle from_receiver, Location receiver) { - mHeightView.setText(String.format("%6.0f m", state.height)); - mMaxHeightView.setText(String.format("%6.0f m", state.max_height)); - mSpeedView.setText(String.format("%6.0f m/s", state.speed())); - mMaxSpeedView.setText(String.format("%6.0f m/s", state.max_speed())); - mAccelView.setText(String.format("%6.0f m/s²", state.acceleration)); - mMaxAccelView.setText(String.format("%6.0f m/s²", state.max_acceleration)); - - if (state.gps != null) { - mLatitudeView.setText(AltosDroid.pos(state.gps.lat, "N", "S")); - mLongitudeView.setText(AltosDroid.pos(state.gps.lon, "W", "E")); + if (state != null) { + mHeightView.setText(String.format("%6.0f m", state.height)); + mMaxHeightView.setText(String.format("%6.0f m", state.max_height)); + mSpeedView.setText(String.format("%6.0f m/s", state.speed())); + mMaxSpeedView.setText(String.format("%6.0f m/s", state.max_speed())); + mAccelView.setText(String.format("%6.0f m/s²", state.acceleration)); + mMaxAccelView.setText(String.format("%6.0f m/s²", state.max_acceleration)); + + if (state.gps != null) { + mLatitudeView.setText(AltosDroid.pos(state.gps.lat, "N", "S")); + mLongitudeView.setText(AltosDroid.pos(state.gps.lon, "W", "E")); + } + + mApogeeVoltageView.setText(String.format("%4.2f V", state.drogue_sense)); + mApogeeLights.set(state.drogue_sense > 3.2); + + mMainVoltageView.setText(String.format("%4.2f V", state.main_sense)); + mMainLights.set(state.main_sense > 3.2); } - - mApogeeVoltageView.setText(String.format("%4.2f V", state.drogue_sense)); - mApogeeLights.set(state.drogue_sense > 3.2); - - mMainVoltageView.setText(String.format("%4.2f V", state.main_sense)); - mMainLights.set(state.main_sense > 3.2); } } diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java index 698e89fc..49774a30 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java @@ -90,31 +90,33 @@ public class TabDescent extends Fragment implements AltosDroidTab { } public void update_ui(AltosState state, AltosGreatCircle from_receiver, Location receiver) { - mSpeedView.setText(String.format("%6.0f m/s", state.speed())); - mHeightView.setText(String.format("%6.0f m", state.height)); - if (from_receiver != null) { - mElevationView.setText(String.format("%3.0f°", from_receiver.elevation)); - mRangeView.setText(String.format("%6.0f m", from_receiver.range)); - mBearingView.setText(String.format("%3.0f°", from_receiver.bearing)); - mCompassView.setText(from_receiver.bearing_words(AltosGreatCircle.BEARING_LONG)); - mDistanceView.setText(String.format("%6.0f m", from_receiver.distance)); - } else { - mElevationView.setText(""); - mRangeView.setText(""); - mBearingView.setText(""); - mCompassView.setText(""); - mDistanceView.setText(""); + if (state != null) { + mSpeedView.setText(String.format("%6.0f m/s", state.speed())); + mHeightView.setText(String.format("%6.0f m", state.height)); + if (from_receiver != null) { + mElevationView.setText(String.format("%3.0f°", from_receiver.elevation)); + mRangeView.setText(String.format("%6.0f m", from_receiver.range)); + mBearingView.setText(String.format("%3.0f°", from_receiver.bearing)); + mCompassView.setText(from_receiver.bearing_words(AltosGreatCircle.BEARING_LONG)); + mDistanceView.setText(String.format("%6.0f m", from_receiver.distance)); + } else { + mElevationView.setText(""); + mRangeView.setText(""); + mBearingView.setText(""); + mCompassView.setText(""); + mDistanceView.setText(""); + } + if (state.gps != null) { + mLatitudeView.setText(AltosDroid.pos(state.gps.lat, "N", "S")); + mLongitudeView.setText(AltosDroid.pos(state.gps.lon, "W", "E")); + } + + mApogeeVoltageView.setText(String.format("%4.2f V", state.drogue_sense)); + mApogeeLights.set(state.drogue_sense > 3.2); + + mMainVoltageView.setText(String.format("%4.2f V", state.main_sense)); + mMainLights.set(state.main_sense > 3.2); } - if (state.gps != null) { - mLatitudeView.setText(AltosDroid.pos(state.gps.lat, "N", "S")); - mLongitudeView.setText(AltosDroid.pos(state.gps.lon, "W", "E")); - } - - mApogeeVoltageView.setText(String.format("%4.2f V", state.drogue_sense)); - mApogeeLights.set(state.drogue_sense > 3.2); - - mMainVoltageView.setText(String.format("%4.2f V", state.main_sense)); - mMainLights.set(state.main_sense > 3.2); } } diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabLanded.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabLanded.java index c346dc99..f42b46b5 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TabLanded.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabLanded.java @@ -33,8 +33,10 @@ public class TabLanded extends Fragment implements AltosDroidTab { private TextView mBearingView; private TextView mDistanceView; - private TextView mLatitudeView; - private TextView mLongitudeView; + private TextView mTargetLatitudeView; + private TextView mTargetLongitudeView; + private TextView mReceiverLatitudeView; + private TextView mReceiverLongitudeView; private TextView mMaxHeightView; private TextView mMaxSpeedView; private TextView mMaxAccelView; @@ -53,8 +55,10 @@ public class TabLanded extends Fragment implements AltosDroidTab { mBearingView = (TextView) v.findViewById(R.id.bearing_value); mDistanceView = (TextView) v.findViewById(R.id.distance_value); - mLatitudeView = (TextView) v.findViewById(R.id.lat_value); - mLongitudeView = (TextView) v.findViewById(R.id.lon_value); + mTargetLatitudeView = (TextView) v.findViewById(R.id.target_lat_value); + mTargetLongitudeView = (TextView) v.findViewById(R.id.target_lon_value); + mReceiverLatitudeView = (TextView) v.findViewById(R.id.receiver_lat_value); + mReceiverLongitudeView = (TextView) v.findViewById(R.id.receiver_lon_value); mMaxHeightView = (TextView) v.findViewById(R.id.max_height_value); mMaxSpeedView = (TextView) v.findViewById(R.id.max_speed_value); mMaxAccelView = (TextView) v.findViewById(R.id.max_accel_value); @@ -74,13 +78,21 @@ public class TabLanded extends Fragment implements AltosDroidTab { mBearingView.setText(String.format("%3.0f°", from_receiver.bearing)); mDistanceView.setText(String.format("%6.0f m", from_receiver.distance)); } - if (state.gps != null) { - mLatitudeView.setText(AltosDroid.pos(state.gps.lat, "N", "S")); - mLongitudeView.setText(AltosDroid.pos(state.gps.lon, "W", "E")); + if (state != null && state.gps != null) { + mTargetLatitudeView.setText(AltosDroid.pos(state.gps.lat, "N", "S")); + mTargetLongitudeView.setText(AltosDroid.pos(state.gps.lon, "W", "E")); + } + + if (receiver != null) { + mReceiverLatitudeView.setText(AltosDroid.pos(receiver.getLatitude(), "N", "S")); + mReceiverLongitudeView.setText(AltosDroid.pos(receiver.getLongitude(), "W", "E")); + } + + if (state != null) { + mMaxHeightView.setText(String.format("%6.0f m", state.max_height)); + mMaxAccelView.setText(String.format("%6.0f m/s²", state.max_acceleration)); + mMaxSpeedView.setText(String.format("%6.0f m/s", state.max_speed())); } - mMaxHeightView.setText(String.format("%6.0f m", state.max_height)); - mMaxAccelView.setText(String.format("%6.0f m/s²", state.max_acceleration)); - mMaxSpeedView.setText(String.format("%6.0f m/s", state.max_speed())); } } diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java index 29696dbf..66669ad0 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java @@ -60,6 +60,8 @@ public class TabMap extends Fragment implements AltosDroidTab { private TextView mReceiverLatitudeView; private TextView mReceiverLongitudeView; + private double mapAccuracy = -1; + @Override public void onAttach(Activity activity) { super.onAttach(activity); @@ -118,7 +120,6 @@ public class TabMap extends Fragment implements AltosDroidTab { mMap.setMyLocationEnabled(true); mMap.getUiSettings().setTiltGesturesEnabled(false); mMap.getUiSettings().setZoomControlsEnabled(false); - mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(40.8,-104.7),8)); mRocketMarker = mMap.addMarker( // From: http://mapicons.nicolasmollet.com/markers/industry/military/missile-2/ @@ -144,35 +145,52 @@ public class TabMap extends Fragment implements AltosDroidTab { } } - public void update_ui(AltosState state, AltosGreatCircle from_receiver, Location receiver) { - if (state.from_pad != null) { - mDistanceView.setText(String.format("%6.0f m", state.from_pad.distance)); - mBearingView.setText(String.format("%3.0f°", state.from_pad.bearing)); + private void center(double lat, double lon, double accuracy) { + if (mapAccuracy < 0 || accuracy < mapAccuracy/10) { + mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(lat, lon),14)); + mapAccuracy = accuracy; } - if (state.gps != null) { - mTargetLatitudeView.setText(AltosDroid.pos(state.gps.lat, "N", "S")); - mTargetLongitudeView.setText(AltosDroid.pos(state.gps.lon, "W", "E")); + } + public void update_ui(AltosState state, AltosGreatCircle from_receiver, Location receiver) { + if (state != null) { + if (state.from_pad != null) { + mDistanceView.setText(String.format("%6.0f m", state.from_pad.distance)); + mBearingView.setText(String.format("%3.0f°", state.from_pad.bearing)); + } + if (mapLoaded) { + if (state.gps != null) { + mRocketMarker.setPosition(new LatLng(state.gps.lat, state.gps.lon)); + mRocketMarker.setVisible(true); + + mPolyline.setPoints(Arrays.asList(new LatLng(state.pad_lat, state.pad_lon), new LatLng(state.gps.lat, state.gps.lon))); + mPolyline.setVisible(true); + } + + if (state.state == AltosLib.ao_flight_pad) { + mPadMarker.setPosition(new LatLng(state.pad_lat, state.pad_lon)); + mPadMarker.setVisible(true); + } + } + if (state.gps != null) { + mTargetLatitudeView.setText(AltosDroid.pos(state.gps.lat, "N", "S")); + mTargetLongitudeView.setText(AltosDroid.pos(state.gps.lon, "W", "E")); + if (state.gps.locked && state.gps.nsat >= 4) + center (state.gps.lat, state.gps.lon, 10); + } } if (receiver != null) { + double accuracy; + + if (receiver.hasAccuracy()) + accuracy = receiver.getAccuracy(); + else + accuracy = 1000; mReceiverLatitudeView.setText(AltosDroid.pos(receiver.getLatitude(), "N", "S")); mReceiverLongitudeView.setText(AltosDroid.pos(receiver.getLongitude(), "W", "E")); + center (receiver.getLatitude(), receiver.getLongitude(), accuracy); } - if (mapLoaded) { - if (state.gps != null) { - mRocketMarker.setPosition(new LatLng(state.gps.lat, state.gps.lon)); - mRocketMarker.setVisible(true); - - mPolyline.setPoints(Arrays.asList(new LatLng(state.pad_lat, state.pad_lon), new LatLng(state.gps.lat, state.gps.lon))); - mPolyline.setVisible(true); - } - - if (state.state == AltosLib.ao_flight_pad) { - mPadMarker.setPosition(new LatLng(state.pad_lat, state.pad_lon)); - mPadMarker.setVisible(true); - } - } } } diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java index 5070ec0b..3c168e37 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java @@ -102,35 +102,37 @@ public class TabPad extends Fragment implements AltosDroidTab { } public void update_ui(AltosState state, AltosGreatCircle from_receiver, Location receiver) { - mBatteryVoltageView.setText(String.format("%4.2f V", state.battery)); - mBatteryLights.set(state.battery > 3.7); - - mApogeeVoltageView.setText(String.format("%4.2f V", state.drogue_sense)); - mApogeeLights.set(state.drogue_sense > 3.2); - - mMainVoltageView.setText(String.format("%4.2f V", state.main_sense)); - mMainLights.set(state.main_sense > 3.2); - - if (state.data.flight != 0) { - if (state.data.state <= AltosLib.ao_flight_pad) - mDataLoggingView.setText("Ready to record"); - else if (state.data.state < AltosLib.ao_flight_landed) - mDataLoggingView.setText("Recording data"); - else - mDataLoggingView.setText("Recorded data"); - } else { - mDataLoggingView.setText("Storage full"); - } - mDataLoggingLights.set(state.data.flight != 0); - - if (state.gps != null) { - mGPSLockedView.setText(String.format("%4d sats", state.gps.nsat)); - mGPSLockedLights.set(state.gps.locked && state.gps.nsat >= 4); - if (state.gps_ready) - mGPSReadyView.setText("Ready"); - else - mGPSReadyView.setText(String.format("Waiting %d", state.gps_waiting)); - mGPSReadyLights.set(state.gps_ready); + if (state != null) { + mBatteryVoltageView.setText(String.format("%4.2f V", state.battery)); + mBatteryLights.set(state.battery > 3.7); + + mApogeeVoltageView.setText(String.format("%4.2f V", state.drogue_sense)); + mApogeeLights.set(state.drogue_sense > 3.2); + + mMainVoltageView.setText(String.format("%4.2f V", state.main_sense)); + mMainLights.set(state.main_sense > 3.2); + + if (state.data.flight != 0) { + if (state.data.state <= AltosLib.ao_flight_pad) + mDataLoggingView.setText("Ready to record"); + else if (state.data.state < AltosLib.ao_flight_landed) + mDataLoggingView.setText("Recording data"); + else + mDataLoggingView.setText("Recorded data"); + } else { + mDataLoggingView.setText("Storage full"); + } + mDataLoggingLights.set(state.data.flight != 0); + + if (state.gps != null) { + mGPSLockedView.setText(String.format("%4d sats", state.gps.nsat)); + mGPSLockedLights.set(state.gps.locked && state.gps.nsat >= 4); + if (state.gps_ready) + mGPSReadyView.setText("Ready"); + else + mGPSReadyView.setText(String.format("Waiting %d", state.gps_waiting)); + mGPSReadyLights.set(state.gps_ready); + } } if (receiver != null) { -- cgit v1.2.3 From c2640c09c76ce32e471dcf6df83095d146bb39a2 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Tue, 16 Apr 2013 14:22:23 -0700 Subject: altosdroid: Check for missing values When displaying numbers, check for MISSING values and display nothing Signed-off-by: Keith Packard --- altosdroid/res/layout/tab_ascent.xml | 4 ++-- altosdroid/res/layout/tab_descent.xml | 4 ++-- altosdroid/res/layout/tab_pad.xml | 12 +++++----- .../src/org/altusmetrum/AltosDroid/AltosDroid.java | 8 +++++++ .../org/altusmetrum/AltosDroid/GoNoGoLights.java | 15 +++++++++--- .../src/org/altusmetrum/AltosDroid/TabAscent.java | 23 ++++++++++-------- .../src/org/altusmetrum/AltosDroid/TabDescent.java | 20 ++++++++-------- .../src/org/altusmetrum/AltosDroid/TabPad.java | 27 +++++++++++----------- 8 files changed, 67 insertions(+), 46 deletions(-) (limited to 'altosdroid/src') diff --git a/altosdroid/res/layout/tab_ascent.xml b/altosdroid/res/layout/tab_ascent.xml index d2d721e1..b21ec426 100644 --- a/altosdroid/res/layout/tab_ascent.xml +++ b/altosdroid/res/layout/tab_ascent.xml @@ -228,7 +228,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentDescription="@string/apogee_voltage_label" - android:src="@drawable/redled" /> + android:src="@drawable/grayled" /> + android:src="@drawable/grayled" /> + android:src="@drawable/grayled" /> + android:src="@drawable/grayled" /> + android:src="@drawable/grayled" /> + android:src="@drawable/grayled" /> + android:src="@drawable/grayled" /> + android:src="@drawable/grayled" /> + android:src="@drawable/grayled" /> + android:src="@drawable/grayled" /> 3.2); + mApogeeVoltageView.setText(AltosDroid.number("%4.2f V", state.drogue_sense)); + mApogeeLights.set(state.drogue_sense > 3.2, state.drogue_sense == AltosRecord.MISSING); - mMainVoltageView.setText(String.format("%4.2f V", state.main_sense)); - mMainLights.set(state.main_sense > 3.2); + mMainVoltageView.setText(AltosDroid.number("%4.2f V", state.main_sense)); + mMainLights.set(state.main_sense > 3.2, state.main_sense == AltosRecord.MISSING); } } } diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java index 49774a30..09e7169b 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java @@ -91,14 +91,14 @@ public class TabDescent extends Fragment implements AltosDroidTab { public void update_ui(AltosState state, AltosGreatCircle from_receiver, Location receiver) { if (state != null) { - mSpeedView.setText(String.format("%6.0f m/s", state.speed())); - mHeightView.setText(String.format("%6.0f m", state.height)); + mSpeedView.setText(AltosDroid.number("%6.0f m/s", state.speed())); + mHeightView.setText(AltosDroid.number("%6.0f m", state.height)); if (from_receiver != null) { - mElevationView.setText(String.format("%3.0f°", from_receiver.elevation)); - mRangeView.setText(String.format("%6.0f m", from_receiver.range)); - mBearingView.setText(String.format("%3.0f°", from_receiver.bearing)); + mElevationView.setText(AltosDroid.number("%3.0f°", from_receiver.elevation)); + mRangeView.setText(AltosDroid.number("%6.0f m", from_receiver.range)); + mBearingView.setText(AltosDroid.number("%3.0f°", from_receiver.bearing)); mCompassView.setText(from_receiver.bearing_words(AltosGreatCircle.BEARING_LONG)); - mDistanceView.setText(String.format("%6.0f m", from_receiver.distance)); + mDistanceView.setText(AltosDroid.number("%6.0f m", from_receiver.distance)); } else { mElevationView.setText(""); mRangeView.setText(""); @@ -111,11 +111,11 @@ public class TabDescent extends Fragment implements AltosDroidTab { mLongitudeView.setText(AltosDroid.pos(state.gps.lon, "W", "E")); } - mApogeeVoltageView.setText(String.format("%4.2f V", state.drogue_sense)); - mApogeeLights.set(state.drogue_sense > 3.2); + mApogeeVoltageView.setText(AltosDroid.number("%4.2f V", state.drogue_sense)); + mApogeeLights.set(state.drogue_sense > 3.2, state.drogue_sense == AltosRecord.MISSING); - mMainVoltageView.setText(String.format("%4.2f V", state.main_sense)); - mMainLights.set(state.main_sense > 3.2); + mMainVoltageView.setText(AltosDroid.number("%4.2f V", state.main_sense)); + mMainLights.set(state.main_sense > 3.2, state.main_sense == AltosRecord.MISSING); } } diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java index 3c168e37..8b3c4012 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java @@ -103,14 +103,14 @@ public class TabPad extends Fragment implements AltosDroidTab { public void update_ui(AltosState state, AltosGreatCircle from_receiver, Location receiver) { if (state != null) { - mBatteryVoltageView.setText(String.format("%4.2f V", state.battery)); - mBatteryLights.set(state.battery > 3.7); + mBatteryVoltageView.setText(AltosDroid.number("%4.2f V", state.battery)); + mBatteryLights.set(state.battery > 3.7, state.battery == AltosRecord.MISSING); - mApogeeVoltageView.setText(String.format("%4.2f V", state.drogue_sense)); - mApogeeLights.set(state.drogue_sense > 3.2); + mApogeeVoltageView.setText(AltosDroid.number("%4.2f V", state.drogue_sense)); + mApogeeLights.set(state.drogue_sense > 3.2, state.drogue_sense == AltosRecord.MISSING); - mMainVoltageView.setText(String.format("%4.2f V", state.main_sense)); - mMainLights.set(state.main_sense > 3.2); + mMainVoltageView.setText(AltosDroid.number("%4.2f V", state.main_sense)); + mMainLights.set(state.main_sense > 3.2, state.main_sense == AltosRecord.MISSING); if (state.data.flight != 0) { if (state.data.state <= AltosLib.ao_flight_pad) @@ -122,17 +122,18 @@ public class TabPad extends Fragment implements AltosDroidTab { } else { mDataLoggingView.setText("Storage full"); } - mDataLoggingLights.set(state.data.flight != 0); + mDataLoggingLights.set(state.data.flight != 0, state.data.flight != AltosRecord.MISSING); if (state.gps != null) { - mGPSLockedView.setText(String.format("%4d sats", state.gps.nsat)); - mGPSLockedLights.set(state.gps.locked && state.gps.nsat >= 4); + mGPSLockedView.setText(AltosDroid.number("%4d sats", state.gps.nsat)); + mGPSLockedLights.set(state.gps.locked && state.gps.nsat >= 4, false); if (state.gps_ready) mGPSReadyView.setText("Ready"); else - mGPSReadyView.setText(String.format("Waiting %d", state.gps_waiting)); - mGPSReadyLights.set(state.gps_ready); - } + mGPSReadyView.setText(AltosDroid.number("Waiting %d", state.gps_waiting)); + } else + mGPSLockedLights.set(false, true); + mGPSReadyLights.set(state.gps_ready, state.gps == null); } if (receiver != null) { @@ -141,7 +142,7 @@ public class TabPad extends Fragment implements AltosDroidTab { altitude = receiver.getAltitude(); mPadLatitudeView.setText(AltosDroid.pos(receiver.getLatitude(), "N", "S")); mPadLongitudeView.setText(AltosDroid.pos(receiver.getLongitude(), "W", "E")); - mPadAltitudeView.setText(String.format("%4.0f m", altitude)); + mPadAltitudeView.setText(AltosDroid.number("%4.0f m", altitude)); } } -- cgit v1.2.3 From b3000609e4010ff4d29debe72ea1866e775af539 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Wed, 17 Apr 2013 10:38:54 -0700 Subject: altosdroid: Fix integer formatting in tabs Was trying to use AltosDroid.number for integers, which didn't work as it expected doubles. Signed-off-by: Keith Packard --- altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java | 6 ++++++ altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) (limited to 'altosdroid/src') diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java index 917d64d6..18f364fa 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java @@ -282,6 +282,12 @@ public class AltosDroid extends FragmentActivity { return String.format(format, value); } + static String integer(String format, int value) { + if (value == AltosRecord.MISSING) + return ""; + return String.format(format, value); + } + @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java index 8b3c4012..066c1353 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java @@ -122,15 +122,15 @@ public class TabPad extends Fragment implements AltosDroidTab { } else { mDataLoggingView.setText("Storage full"); } - mDataLoggingLights.set(state.data.flight != 0, state.data.flight != AltosRecord.MISSING); + mDataLoggingLights.set(state.data.flight != 0, state.data.flight == AltosRecord.MISSING); if (state.gps != null) { - mGPSLockedView.setText(AltosDroid.number("%4d sats", state.gps.nsat)); + mGPSLockedView.setText(AltosDroid.integer("%4d sats", state.gps.nsat)); mGPSLockedLights.set(state.gps.locked && state.gps.nsat >= 4, false); if (state.gps_ready) mGPSReadyView.setText("Ready"); else - mGPSReadyView.setText(AltosDroid.number("Waiting %d", state.gps_waiting)); + mGPSReadyView.setText(AltosDroid.integer("Waiting %d", state.gps_waiting)); } else mGPSLockedLights.set(false, true); mGPSReadyLights.set(state.gps_ready, state.gps == null); -- cgit v1.2.3 From ecfc8a08147cfd179b341475333d68a39c978f0f Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sat, 20 Apr 2013 17:16:50 -0500 Subject: altosdroid: Update distance/bearing on map tab Signed-off-by: Keith Packard --- altosdroid/res/layout/tab_pad.xml | 18 +++++++++--------- altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java | 9 +++++---- 2 files changed, 14 insertions(+), 13 deletions(-) (limited to 'altosdroid/src') diff --git a/altosdroid/res/layout/tab_pad.xml b/altosdroid/res/layout/tab_pad.xml index 00d5ea12..e8f759eb 100644 --- a/altosdroid/res/layout/tab_pad.xml +++ b/altosdroid/res/layout/tab_pad.xml @@ -251,14 +251,14 @@ + android:paddingLeft="69dp"> @@ -274,14 +274,14 @@ + android:paddingLeft="69dp"> @@ -297,14 +297,14 @@ + android:paddingLeft="69dp"> diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java index 66669ad0..3fb695a2 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java @@ -152,11 +152,12 @@ public class TabMap extends Fragment implements AltosDroidTab { } } public void update_ui(AltosState state, AltosGreatCircle from_receiver, Location receiver) { + if (from_receiver != null) { + mBearingView.setText(String.format("%3.0f°", from_receiver.bearing)); + mDistanceView.setText(String.format("%6.0f m", from_receiver.distance)); + } + if (state != null) { - if (state.from_pad != null) { - mDistanceView.setText(String.format("%6.0f m", state.from_pad.distance)); - mBearingView.setText(String.format("%3.0f°", state.from_pad.bearing)); - } if (mapLoaded) { if (state.gps != null) { mRocketMarker.setPosition(new LatLng(state.gps.lat, state.gps.lon)); -- cgit v1.2.3 From d1ca6b5805cb5e934e013463448b75dd4a3c864f Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Sun, 21 Apr 2013 14:40:03 +1200 Subject: altosdroid: whitespace and import tidyup Signed-off-by: Mike Beattie --- altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java | 7 +++---- altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java | 3 ++- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'altosdroid/src') diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java index 18f364fa..3247c91e 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java @@ -37,7 +37,6 @@ import android.os.Message; import android.os.Messenger; import android.os.RemoteException; import android.support.v4.app.FragmentActivity; -import android.support.v4.view.ViewPager; import android.util.Log; import android.view.Menu; import android.view.MenuInflater; @@ -82,9 +81,9 @@ public class AltosDroid extends FragmentActivity { private TextView mVersion; // Tabs - TabHost mTabHost; - AltosViewPager mViewPager; - TabsAdapter mTabsAdapter; + TabHost mTabHost; + AltosViewPager mViewPager; + TabsAdapter mTabsAdapter; ArrayList mTabs = new ArrayList(); // Timer and Saved flight state for Age calculation diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java index 3fb695a2..d831f117 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java @@ -35,7 +35,7 @@ import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentTransaction; +//import android.support.v4.app.FragmentTransaction; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -151,6 +151,7 @@ public class TabMap extends Fragment implements AltosDroidTab { mapAccuracy = accuracy; } } + public void update_ui(AltosState state, AltosGreatCircle from_receiver, Location receiver) { if (from_receiver != null) { mBearingView.setText(String.format("%3.0f°", from_receiver.bearing)); -- cgit v1.2.3 From a9e02e32cb10e5b5f17cd555bb28fdc205ac3612 Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Sun, 21 Apr 2013 14:40:58 +1200 Subject: altosdroid: Add filters for TeleBT bluetooth devices. Signed-off-by: Mike Beattie --- .../src/org/altusmetrum/AltosDroid/DeviceListActivity.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'altosdroid/src') diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/DeviceListActivity.java b/altosdroid/src/org/altusmetrum/AltosDroid/DeviceListActivity.java index 7b9cbde7..71692122 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/DeviceListActivity.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/DeviceListActivity.java @@ -109,9 +109,10 @@ public class DeviceListActivity extends Activity { // If there are paired devices, add each one to the ArrayAdapter if (pairedDevices.size() > 0) { findViewById(R.id.title_paired_devices).setVisibility(View.VISIBLE); - for (BluetoothDevice device : pairedDevices) { - mPairedDevicesArrayAdapter.add(device.getName() + "\n" + device.getAddress()); - } + for (BluetoothDevice device : pairedDevices) + if (device.getName().startsWith("TeleBT")) + mPairedDevicesArrayAdapter.add(device.getName() + "\n" + device.getAddress()); + } else { String noDevices = getResources().getText(R.string.none_paired).toString(); mPairedDevicesArrayAdapter.add(noDevices); @@ -185,7 +186,8 @@ public class DeviceListActivity extends Activity { // Get the BluetoothDevice object from the Intent BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); // If it's already paired, skip it, because it's been listed already - if (device.getBondState() != BluetoothDevice.BOND_BONDED) { + if ( device.getBondState() != BluetoothDevice.BOND_BONDED + && device.getName().startsWith("TeleBT") ) { mNewDevicesArrayAdapter.add(device.getName() + "\n" + device.getAddress()); } // When discovery is finished, change the Activity title -- cgit v1.2.3 From 7701e142f9e3a81c536c546c9a0abfb3ba709abc Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Sun, 21 Apr 2013 14:41:28 +1200 Subject: altosdroid: set tab height based on screen density. Signed-off-by: Mike Beattie --- .../src/org/altusmetrum/AltosDroid/AltosDroid.java | 24 +++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'altosdroid/src') diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java index 3247c91e..ebbe9330 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java @@ -37,6 +37,7 @@ import android.os.Message; import android.os.Messenger; import android.os.RemoteException; import android.support.v4.app.FragmentActivity; +import android.util.DisplayMetrics; import android.util.Log; import android.view.Menu; import android.view.MenuInflater; @@ -85,6 +86,7 @@ public class AltosDroid extends FragmentActivity { AltosViewPager mViewPager; TabsAdapter mTabsAdapter; ArrayList mTabs = new ArrayList(); + int tabHeight; // Timer and Saved flight state for Age calculation private Timer timer = new Timer(); @@ -311,6 +313,7 @@ public class AltosDroid extends FragmentActivity { setContentView(R.layout.altosdroid); getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title); + // Create the Tabs and ViewPager mTabHost = (TabHost)findViewById(android.R.id.tabhost); mTabHost.setup(); @@ -325,8 +328,27 @@ public class AltosDroid extends FragmentActivity { mTabsAdapter.addTab(mTabHost.newTabSpec("landed").setIndicator("Landed"), TabLanded.class, null); mTabsAdapter.addTab(mTabHost.newTabSpec("map").setIndicator("Map"), TabMap.class, null); + + // Scale the size of the Tab bar for different screen densities + // This probably won't be needed when we start supporting ICS+ tabs. + DisplayMetrics metrics = new DisplayMetrics(); + getWindowManager().getDefaultDisplay().getMetrics(metrics); + int density = metrics.densityDpi; + + if (density==DisplayMetrics.DENSITY_XHIGH) + tabHeight = 65; + else if (density==DisplayMetrics.DENSITY_HIGH) + tabHeight = 45; + else if (density==DisplayMetrics.DENSITY_MEDIUM) + tabHeight = 35; + else if (density==DisplayMetrics.DENSITY_LOW) + tabHeight = 25; + else + tabHeight = 65; + for (int i = 0; i < 5; i++) - mTabHost.getTabWidget().getChildAt(i).getLayoutParams().height = 45; + mTabHost.getTabWidget().getChildAt(i).getLayoutParams().height = tabHeight; + // Set up the custom title mTitle = (TextView) findViewById(R.id.title_left_text); -- cgit v1.2.3 From cc674d8f991a3a055236ad8b51fecd99080540e1 Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Sun, 21 Apr 2013 14:41:50 +1200 Subject: altosdroid: check for mAltosVoice being null. Signed-off-by: Mike Beattie --- altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'altosdroid/src') diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java index ebbe9330..e10982f7 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java @@ -414,7 +414,7 @@ public class AltosDroid extends FragmentActivity { super.onDestroy(); if(D) Log.e(TAG, "--- ON DESTROY ---"); - mAltosVoice.stop(); + if (mAltosVoice != null) mAltosVoice.stop(); } public void onActivityResult(int requestCode, int resultCode, Intent data) { -- cgit v1.2.3 From c5b31a14e1ceeb9a33e0016f345832344d24ced7 Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Sun, 21 Apr 2013 14:44:07 +1200 Subject: altosdroid: fix up 'send last' code. Signed-off-by: Mike Beattie --- .../org/altusmetrum/AltosDroid/TelemetryService.java | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) (limited to 'altosdroid/src') diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java index f1304a95..bc3371f3 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java @@ -133,16 +133,14 @@ public class TelemetryService extends Service { // Now we try to send the freshly connected UI any relavant information about what // we're talking to - Basically state and Config Data. msg.replyTo.send(Message.obtain(null, AltosDroid.MSG_STATE_CHANGE, s.state, -1, s.mConfigData)); + // We also send any recent telemetry or location data that's cached + if (s.last_state != null) msg.replyTo.send(Message.obtain(null, AltosDroid.MSG_TELEMETRY, s.last_state )); + if (s.last_location != null) msg.replyTo.send(Message.obtain(null, AltosDroid.MSG_LOCATION , s.last_location )); + if (s.last_crc_errors != 0 ) msg.replyTo.send(Message.obtain(null, AltosDroid.MSG_CRC_ERROR, s.last_crc_errors)); } catch (RemoteException e) { s.mClients.remove(msg.replyTo); } if (D) Log.d(TAG, "Client bound to service"); - if (s.last_state != null) - s.sendTelemetry(s.last_state); - if (s.last_location != null) - s.sendLocation(s.last_location); - if (s.last_crc_errors != 0) - s.sendCrcErrors(s.last_crc_errors); break; case MSG_UNREGISTER_CLIENT: s.mClients.remove(msg.replyTo); @@ -198,16 +196,6 @@ public class TelemetryService extends Service { } } - public void sendTelemetry(AltosState state) { - } - - public void sendLocation(Location location) { - mHandler.obtainMessage(MSG_LOCATION, location).sendToTarget(); - } - - public void sendCrcErrors(int crc_errors) { - } - private void sendMessageToClients(Message m) { for (int i=mClients.size()-1; i>=0; i--) { try { -- cgit v1.2.3 From cbf38c557a2046b6d6af3a9aebc0cef8e0dc5f11 Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Sun, 21 Apr 2013 14:46:41 +1200 Subject: altosdroid: Make the service class implement locationlistener Signed-off-by: Mike Beattie --- .../altusmetrum/AltosDroid/TelemetryService.java | 57 ++++++++-------------- 1 file changed, 19 insertions(+), 38 deletions(-) (limited to 'altosdroid/src') diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java index bc3371f3..0236b537 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java @@ -44,28 +44,8 @@ import android.location.LocationListener; import org.altusmetrum.altoslib_1.*; -class AltosLocationListener implements LocationListener { - Handler handler; - public void onLocationChanged(Location location) { - handler.obtainMessage(TelemetryService.MSG_LOCATION, location).sendToTarget(); - } - - public void onStatusChanged(String provider, int status, Bundle extras) { - } - - public void onProviderEnabled(String provider) { - } - - public void onProviderDisabled(String provider) { - } - - public AltosLocationListener(Handler handler) { - this.handler = handler; - } -} - -public class TelemetryService extends Service { +public class TelemetryService extends Service implements LocationListener { private static final String TAG = "TelemetryService"; private static final boolean D = true; @@ -78,8 +58,7 @@ public class TelemetryService extends Service { static final int MSG_DISCONNECTED = 6; static final int MSG_TELEMETRY = 7; static final int MSG_SETFREQUENCY = 8; - static final int MSG_LOCATION = 9; - static final int MSG_CRC_ERROR = 10; + static final int MSG_CRC_ERROR = 9; public static final int STATE_NONE = 0; public static final int STATE_READY = 1; @@ -108,10 +87,6 @@ public class TelemetryService extends Service { // internally track state of bluetooth connection private int state = STATE_NONE; - // location listeners - - private AltosLocationListener locationListener; - // Last data seen; send to UI when it starts private AltosState last_state; @@ -171,11 +146,6 @@ public class TelemetryService extends Service { s.last_state = (AltosState) msg.obj; s.sendMessageToClients(Message.obtain(null, AltosDroid.MSG_TELEMETRY, msg.obj)); break; - case MSG_LOCATION: - // forward location messages - s.last_location = (Location) msg.obj; - s.sendMessageToClients(Message.obtain(null, AltosDroid.MSG_LOCATION, msg.obj)); - break; case MSG_CRC_ERROR: // forward crc error messages s.last_crc_errors = (Integer) msg.obj; @@ -308,12 +278,10 @@ public class TelemetryService extends Service { timer.scheduleAtFixedRate(new TimerTask(){ public void run() {onTimerTick();}}, 10000L, 10000L); // Listen for GPS and Network position updates - locationListener = new AltosLocationListener(mHandler); - LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); - locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener); - locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener); + locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this); + locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, this); } @Override @@ -347,8 +315,7 @@ public class TelemetryService extends Service { public void onDestroy() { // Stop listening for location updates - LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); - locationManager.removeUpdates(locationListener); + ((LocationManager) getSystemService(Context.LOCATION_SERVICE)).removeUpdates(this); // Stop the bluetooth Comms threads stopAltosBluetooth(); @@ -369,4 +336,18 @@ public class TelemetryService extends Service { } + public void onLocationChanged(Location location) { + last_location = location; + sendMessageToClients(Message.obtain(null, AltosDroid.MSG_LOCATION, location)); + } + + public void onStatusChanged(String provider, int status, Bundle extras) { + } + + public void onProviderEnabled(String provider) { + } + + public void onProviderDisabled(String provider) { + } + } -- cgit v1.2.3