From 03563c765d8b0ab3689c91b2b533c68e11650577 Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Tue, 28 Aug 2012 17:35:11 +1200 Subject: altosdroid: Add new "TelemetryReader" class to handle Telemetry * Add MSG_TELEMETRY messages to both AltosDroid and TelemetryService to handle passing of AltosState object all the way back to the UI. * Remove linkedblockinglist from TelemetryService * (MSG_TELEMETRY is a rename of MSG_INCOMING_TELEM in AltosDroid) * commented code in case statement inside AltosDroind - won't work with the objects it is currently passed. * Add new "MSG_DEVCONFIG" message to AltosDroid - allows TelemetryService to pass information about the connected device back to the UI. Signed-off-by: Mike Beattie --- .../altusmetrum/AltosDroid/TelemetryReader.java | 75 ++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java (limited to 'altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java') diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java new file mode 100644 index 00000000..bfa5db5c --- /dev/null +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java @@ -0,0 +1,75 @@ +package org.altusmetrum.AltosDroid; + +import java.text.*; +import java.io.*; +import java.util.concurrent.*; +import android.util.Log; +import android.os.Handler; + +import org.altusmetrum.AltosLib.*; + + +public class TelemetryReader extends Thread { + + private static final String TAG = "TelemetryReader"; + + int crc_errors; + + Handler handler; + + AltosLink link; + AltosRecord previous; + + LinkedBlockingQueue telem; + + public AltosRecord read() throws ParseException, AltosCRCException, InterruptedException, IOException { + AltosLine l = telem.take(); + if (l.line == null) + throw new IOException("IO error"); + AltosRecord next = AltosTelemetry.parse(l.line, previous); + previous = next; + return next; + } + + public void close() { + previous = null; + link.remove_monitor(telem); + link = null; + telem.clear(); + telem = null; + } + + public void run() { + AltosState state = null; + + try { + for (;;) { + try { + AltosRecord record = read(); + if (record == null) + break; + state = new AltosState(record, 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; + } + } + } catch (InterruptedException ee) { + } catch (IOException ie) { + } finally { + close(); + } + } + + public TelemetryReader (AltosLink in_link, Handler in_handler) { + link = in_link; + handler = in_handler; + + previous = null; + telem = new LinkedBlockingQueue(); + link.add_monitor(telem); + } +} -- cgit v1.2.3 From 162c640d382b9f823573578fe97584adc94cd9b6 Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Tue, 28 Aug 2012 17:37:45 +1200 Subject: altosdroid: miscellaneous cleanup * Copyright info * whitespace * comments * unused imports Signed-off-by: Mike Beattie --- .../org/altusmetrum/AltosDroid/AltosBluetooth.java | 4 ++-- .../src/org/altusmetrum/AltosDroid/AltosDroid.java | 3 ++- .../org/altusmetrum/AltosDroid/TelemetryReader.java | 19 +++++++++++++++++++ .../org/altusmetrum/AltosDroid/TelemetryService.java | 1 + 4 files changed, 24 insertions(+), 3 deletions(-) (limited to 'altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java') diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosBluetooth.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosBluetooth.java index 19b2a2a5..18581142 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosBluetooth.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosBluetooth.java @@ -1,6 +1,6 @@ /* - * Copyright © 2011 Keith Packard - * Copyright © 2012 Mike Beattie + * Copyright © 2011 Keith Packard + * 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 diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java index cf982eac..3855f6f9 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 android.app.Activity; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; @@ -47,7 +48,7 @@ import android.view.Window; //import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; -import org.altusmetrum.AltosDroid.R; +//import org.altusmetrum.AltosDroid.R; /** * This is the main Activity that displays the current chat session. diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java index bfa5db5c..c47e4942 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java @@ -1,3 +1,22 @@ +/* + * Copyright © 2011 Keith Packard + * 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.text.*; diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java index 3ae87bb1..4701ba1f 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java @@ -70,6 +70,7 @@ public class TelemetryService extends Service { private AltosBluetooth mAltosBluetooth = null; private TelemetryReader mTelemetryReader = null; + // internally track state of bluetooth connection private int state = STATE_NONE; // Handler of incoming messages from clients. -- cgit v1.2.3 From 4420d4a9fc011ed970af506ef771dfb81580b666 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Tue, 11 Sep 2012 00:49:48 -0700 Subject: Fix Latin-1 encoded copyright symbols in AltosDroid java code Otherwise, we get complaints when compiling these files. Signed-off-by: Keith Packard --- altosdroid/src/org/altusmetrum/AltosDroid/AltosBluetooth.java | 4 ++-- altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java | 4 ++-- altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java | 4 ++-- altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) (limited to 'altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java') diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosBluetooth.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosBluetooth.java index 4c8136aa..9fcc4eba 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosBluetooth.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosBluetooth.java @@ -1,6 +1,6 @@ /* - * Copyright © 2011 Keith Packard - * Copyright © 2012 Mike Beattie + * Copyright © 2011 Keith Packard + * 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 diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java index 3f7c5979..3382d551 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java @@ -1,6 +1,6 @@ /* - * Copyright © 2011 Keith Packard - * Copyright © 2012 Mike Beattie + * Copyright © 2011 Keith Packard + * 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 diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java index c47e4942..66e9c6bd 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java @@ -1,6 +1,6 @@ /* - * Copyright © 2011 Keith Packard - * Copyright © 2012 Mike Beattie + * Copyright © 2011 Keith Packard + * 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 diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java index 6a1f1c5a..393fd2f6 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.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 -- cgit v1.2.3