projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix Latin-1 encoded copyright symbols in AltosDroid java code
[fw/altos]
/
altosdroid
/
src
/
org
/
altusmetrum
/
AltosDroid
/
TelemetryService.java
diff --git
a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java
b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java
index d11fc53a8c47df6a6273b526fa4a13322af9425b..393fd2f6f03609856bcb63195360f2e87c0f2387 100644
(file)
--- a/
altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java
+++ b/
altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java
@@
-1,5
+1,5
@@
/*
/*
- * Copyright © 2012 Mike Beattie <mike@ethernal.org>
+ * Copyright
Â
© 2012 Mike Beattie <mike@ethernal.org>
*
* 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
*
* 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
@@
-20,6
+20,8
@@
package org.altusmetrum.AltosDroid;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.concurrent.TimeoutException;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.concurrent.TimeoutException;
+import java.util.Timer;
+import java.util.TimerTask;
import android.app.Notification;
//import android.app.NotificationManager;
import android.app.Notification;
//import android.app.NotificationManager;
@@
-50,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_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;
public static final int STATE_NONE = 0;
public static final int STATE_READY = 1;
@@
-61,6
+64,9
@@
public class TelemetryService extends Service {
private int NOTIFICATION = R.string.telemetry_service_label;
//private NotificationManager mNM;
private int NOTIFICATION = R.string.telemetry_service_label;
//private NotificationManager mNM;
+ // Timer - we wake up every now and then to decide if the service should stop
+ private Timer timer = new Timer();
+
ArrayList<Messenger> mClients = new ArrayList<Messenger>(); // Keeps track of all current registered clients.
final Handler mHandler = new IncomingHandler(this);
final Messenger mMessenger = new Messenger(mHandler); // Target we publish for clients to send messages to IncomingHandler.
ArrayList<Messenger> mClients = new ArrayList<Messenger>(); // Keeps track of all current registered clients.
final Handler mHandler = new IncomingHandler(this);
final Messenger mMessenger = new Messenger(mHandler); // Target we publish for clients to send messages to IncomingHandler.
@@
-121,6
+127,15
@@
public class TelemetryService extends Service {
case MSG_TELEMETRY:
s.sendMessageToClients(Message.obtain(null, AltosDroid.MSG_TELEMETRY, msg.obj));
break;
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);
}
default:
super.handleMessage(msg);
}
@@
-204,12
+219,28
@@
public class TelemetryService extends Service {
}
}
+ private void onTimerTick() {
+ if (D) Log.d(TAG, "Timer wakeup");
+ try {
+ if (mClients.size() <= 0 && state != STATE_CONNECTED) {
+ stopSelf();
+ }
+ } catch (Throwable t) {
+ Log.e(TAG, "Timer failed: ", t);
+ }
+ }
+
+
@Override
public void onCreate() {
// Create a reference to the NotificationManager so that we can update our notifcation text later
//mNM = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
setState(STATE_READY);
@Override
public void onCreate() {
// Create a reference to the NotificationManager so that we can update our notifcation text later
//mNM = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
setState(STATE_READY);
+
+ // Start our timer - first event in 10 seconds, then every 10 seconds after that.
+ timer.scheduleAtFixedRate(new TimerTask(){ public void run() {onTimerTick();}}, 10000L, 10000L);
+
}
@Override
}
@Override
@@
-248,6
+279,9
@@
public class TelemetryService extends Service {
// Demote us from the foreground, and cancel the persistent notification.
stopForeground(true);
// Demote us from the foreground, and cancel the persistent notification.
stopForeground(true);
+ // Stop our timer
+ if (timer != null) {timer.cancel();}
+
// Tell the user we stopped.
Toast.makeText(this, R.string.telemetry_service_stopped, Toast.LENGTH_SHORT).show();
}
// Tell the user we stopped.
Toast.makeText(this, R.string.telemetry_service_stopped, Toast.LENGTH_SHORT).show();
}