From f1a9fff865e0b226a97ad5d6eaaac64bd5e5d410 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Thu, 30 Aug 2012 23:07:43 -0500 Subject: altosdroid: Start a hacked-up frequency dialog Signed-off-by: Keith Packard --- altosdroid/res/menu/option_menu.xml | 3 ++ altosdroid/res/values/strings.xml | 1 + .../src/org/altusmetrum/AltosDroid/AltosDroid.java | 49 +++++++++++++++++++--- 3 files changed, 48 insertions(+), 5 deletions(-) diff --git a/altosdroid/res/menu/option_menu.xml b/altosdroid/res/menu/option_menu.xml index 6946e298..525541e1 100644 --- a/altosdroid/res/menu/option_menu.xml +++ b/altosdroid/res/menu/option_menu.xml @@ -17,4 +17,7 @@ + diff --git a/altosdroid/res/values/strings.xml b/altosdroid/res/values/strings.xml index f8038406..1b28284a 100644 --- a/altosdroid/res/values/strings.xml +++ b/altosdroid/res/values/strings.xml @@ -25,6 +25,7 @@ Connect a device + Select radio frequency scanning for devices… diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java index 20904d2b..27760162 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 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 @@ -26,6 +26,7 @@ import android.content.Intent; import android.content.Context; import android.content.ComponentName; import android.content.ServiceConnection; +import android.content.DialogInterface; import android.os.IBinder; import android.os.Bundle; import android.os.Handler; @@ -40,6 +41,7 @@ import android.view.MenuItem; import android.view.Window; import android.widget.TextView; import android.widget.Toast; +import android.app.AlertDialog; import org.altusmetrum.AltosLib.*; @@ -188,12 +190,12 @@ public class AltosDroid extends Activity { if (!state.ascent) speed = state.baro_speed; mSpeedView.setText(String.format("%6.0f m/s", speed)); - mAccelView.setText(String.format("%6.0f m/s˛", state.acceleration)); + 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)); + mElevationView.setText(String.format("%3.0f°", state.elevation)); if (state.from_pad != null) - mBearingView.setText(String.format("%3.0f°", state.from_pad.bearing)); + 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")); @@ -208,7 +210,7 @@ public class AltosDroid extends Activity { } 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.6f\" %s", deg, min, h); } @Override @@ -352,6 +354,17 @@ public class AltosDroid extends Activity { return true; } + void setFrequency(double freq) { + + } + + void setFrequency(String freq) { + try { + setFrequency (Double.parseDouble(freq)); + } catch (NumberFormatException e) { + } + } + @Override public boolean onOptionsItemSelected(MenuItem item) { Intent serverIntent = null; @@ -361,6 +374,32 @@ public class AltosDroid extends Activity { serverIntent = new Intent(this, DeviceListActivity.class); startActivityForResult(serverIntent, REQUEST_CONNECT_DEVICE); return true; + case R.id.select_freq: + // Set the TBT radio frequency + + final String[] frequencies = { + "434.550", + "434.650", + "434.750", + "434.850", + "434.950", + "435.050", + "435.150", + "435.250", + "435.350", + "435.450" + }; + + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setTitle("Pick a frequency"); + builder.setItems(frequencies, + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int item) { + setFrequency(frequencies[item]); + } + }); + AlertDialog alert = builder.create(); + return true; } return false; } -- cgit v1.2.3 From 543ecb530d6fdf188a746ac59b72544e69bad830 Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Fri, 31 Aug 2012 16:38:21 +1200 Subject: altosdroid: complete frequency change dialog Also implement Service IPC to action request. Signed-off-by: Mike Beattie --- altosdroid/res/menu/option_menu.xml | 2 +- altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java | 6 +++++- .../src/org/altusmetrum/AltosDroid/TelemetryService.java | 10 ++++++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/altosdroid/res/menu/option_menu.xml b/altosdroid/res/menu/option_menu.xml index 525541e1..d7ba8305 100644 --- a/altosdroid/res/menu/option_menu.xml +++ b/altosdroid/res/menu/option_menu.xml @@ -18,6 +18,6 @@ android:icon="@android:drawable/ic_menu_search" android:title="@string/connect_device" /> diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java index 27760162..de0b02a6 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java @@ -355,7 +355,10 @@ public class AltosDroid extends Activity { } void setFrequency(double freq) { - + try { + mService.send(Message.obtain(null, TelemetryService.MSG_SETFREQUENCY, freq)); + } catch (RemoteException e) { + } } void setFrequency(String freq) { @@ -399,6 +402,7 @@ public class AltosDroid extends Activity { } }); AlertDialog alert = builder.create(); + alert.show(); return true; } return false; diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java index ffe96946..6a1f1c5a 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java @@ -52,6 +52,7 @@ public class TelemetryService extends Service { static final int MSG_CONNECT_FAILED = 5; static final int MSG_DISCONNECTED = 6; static final int MSG_TELEMETRY = 7; + static final int MSG_SETFREQUENCY = 8; public static final int STATE_NONE = 0; public static final int STATE_READY = 1; @@ -126,6 +127,15 @@ public class TelemetryService extends Service { case MSG_TELEMETRY: s.sendMessageToClients(Message.obtain(null, AltosDroid.MSG_TELEMETRY, msg.obj)); break; + case MSG_SETFREQUENCY: + if (s.state == STATE_CONNECTED) { + try { + s.mAltosBluetooth.set_radio_frequency((Double) msg.obj); + } catch (InterruptedException e) { + } catch (TimeoutException e) { + } + } + break; default: super.handleMessage(msg); } -- cgit v1.2.3 From b6a21856c68ca8cca93eb755285be1927acb91e7 Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Fri, 31 Aug 2012 16:39:10 +1200 Subject: ao-send-telem: fix frequency set command Signed-off-by: Mike Beattie --- ao-tools/ao-send-telem/ao-send-telem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ao-tools/ao-send-telem/ao-send-telem.c b/ao-tools/ao-send-telem/ao-send-telem.c index c6cc51a1..db061377 100644 --- a/ao-tools/ao-send-telem/ao-send-telem.c +++ b/ao-tools/ao-send-telem/ao-send-telem.c @@ -199,7 +199,7 @@ main (int argc, char **argv) exit (1); cc_usb_printf(cc, "m 0\n"); - cc_usb_printf(cc, "F %d\n", freq); + cc_usb_printf(cc, "c F %d\n", freq); for (i = optind; i < argc; i++) { file = fopen(argv[i], "r"); if (!file) { -- cgit v1.2.3 From 80bc985f79e616e5327aed4f7acc9bca71b8db54 Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Fri, 31 Aug 2012 16:50:53 +1200 Subject: altosdroid: also display channel numbers Signed-off-by: Mike Beattie --- .../src/org/altusmetrum/AltosDroid/AltosDroid.java | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java index de0b02a6..a79071d0 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java @@ -363,7 +363,7 @@ public class AltosDroid extends Activity { void setFrequency(String freq) { try { - setFrequency (Double.parseDouble(freq)); + setFrequency (Double.parseDouble(freq.split(" ")[0])); } catch (NumberFormatException e) { } } @@ -381,16 +381,16 @@ public class AltosDroid extends Activity { // Set the TBT radio frequency final String[] frequencies = { - "434.550", - "434.650", - "434.750", - "434.850", - "434.950", - "435.050", - "435.150", - "435.250", - "435.350", - "435.450" + "434.550 (Channel 0)", + "434.650 (Channel 1)", + "434.750 (Channel 2)", + "434.850 (Channel 3)", + "434.950 (Channel 4)", + "435.050 (Channel 5)", + "435.150 (Channel 6)", + "435.250 (Channel 7)", + "435.350 (Channel 8)", + "435.450 (Channel 9)" }; AlertDialog.Builder builder = new AlertDialog.Builder(this); -- cgit v1.2.3 From 4e3ac2b624f68dd5a8f6dd7a33eb10cd78497964 Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Fri, 31 Aug 2012 17:42:22 +1200 Subject: altosdroid: invert channel/freq ordering Matches Channel Selector in altosui Signed-off-by: Mike Beattie --- .../src/org/altusmetrum/AltosDroid/AltosDroid.java | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java index a79071d0..00689684 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java @@ -363,7 +363,7 @@ public class AltosDroid extends Activity { void setFrequency(String freq) { try { - setFrequency (Double.parseDouble(freq.split(" ")[0])); + setFrequency (Double.parseDouble(freq.substring(11, 17))); } catch (NumberFormatException e) { } } @@ -381,16 +381,16 @@ public class AltosDroid extends Activity { // Set the TBT radio frequency final String[] frequencies = { - "434.550 (Channel 0)", - "434.650 (Channel 1)", - "434.750 (Channel 2)", - "434.850 (Channel 3)", - "434.950 (Channel 4)", - "435.050 (Channel 5)", - "435.150 (Channel 6)", - "435.250 (Channel 7)", - "435.350 (Channel 8)", - "435.450 (Channel 9)" + "Channel 0 (434.550MHz)", + "Channel 1 (434.650MHz)", + "Channel 2 (434.750MHz)", + "Channel 3 (434.850MHz)", + "Channel 4 (434.950MHz)", + "Channel 5 (435.050MHz)", + "Channel 6 (435.150MHz)", + "Channel 7 (435.250MHz)", + "Channel 8 (435.350MHz)", + "Channel 9 (435.450MHz)" }; AlertDialog.Builder builder = new AlertDialog.Builder(this); -- cgit v1.2.3 From 6d31f8d15ef4bf75ae039dd7b1a6a615d00eb215 Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Fri, 31 Aug 2012 17:53:53 +1200 Subject: altoslib: add missing manufacturer parsing for AltosConfigData Signed-off-by: Mike Beattie --- altoslib/AltosConfigData.java | 1 + 1 file changed, 1 insertion(+) diff --git a/altoslib/AltosConfigData.java b/altoslib/AltosConfigData.java index ecc2d0aa..c143036c 100644 --- a/altoslib/AltosConfigData.java +++ b/altoslib/AltosConfigData.java @@ -170,6 +170,7 @@ public class AltosConfigData implements Iterable { try { callsign = get_string(line, "Callsign:"); } catch (Exception e) {} try { version = get_string(line,"software-version"); } catch (Exception e) {} try { product = get_string(line,"product"); } catch (Exception e) {} + try { manufacturer = get_string(line,"manufacturer"); } catch (Exception e) {} try { get_int(line, "flight"); stored_flight++; } catch (Exception e) {} try { storage_size = get_int(line, "Storage size:"); } catch (Exception e) {} -- cgit v1.2.3