summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2012-01-02 20:34:38 -0800
committerKeith Packard <keithp@keithp.com>2012-01-02 20:34:38 -0800
commit01bbf9e163e7178712262800f8c59fcbea3f82eb (patch)
treeb17e15a41a09c2a935805cac88af538711dceda6
parent0b7cfac3fba549abaaddc2b4fba825766199a4fc (diff)
altosui: Move AltosConfigData.java to library
Create a new 'AltosLink' which exposes how to talk to the remote device abstractly via 'get_reply' and 'printf' methods. Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r--altosui/AltosSerial.java2
-rw-r--r--altosui/altoslib/Makefile.am2
-rw-r--r--altosui/altoslib/src/org/altusmetrum/AltosLib/AltosConfigData.java13
-rw-r--r--altosui/altoslib/src/org/altusmetrum/AltosLib/AltosLink.java26
4 files changed, 32 insertions, 11 deletions
diff --git a/altosui/AltosSerial.java b/altosui/AltosSerial.java
index bf8c11f9..b8c6ed54 100644
--- a/altosui/AltosSerial.java
+++ b/altosui/AltosSerial.java
@@ -41,7 +41,7 @@ import libaltosJNI.*;
* threads.
*/
-public class AltosSerial implements Runnable {
+public class AltosSerial implements Runnable, AltosLink {
static java.util.List<String> devices_opened = Collections.synchronizedList(new LinkedList<String>());
diff --git a/altosui/altoslib/Makefile.am b/altosui/altoslib/Makefile.am
index 967c8d06..cbf716b0 100644
--- a/altosui/altoslib/Makefile.am
+++ b/altosui/altoslib/Makefile.am
@@ -11,12 +11,14 @@ AltosLibdir = $(datadir)/java
AltosLib_JAVA = \
$(SRC)/AltosLib.java \
+ $(SRC)/AltosConfigData.java \
$(SRC)/AltosConvert.java \
$(SRC)/AltosCRCException.java \
$(SRC)/AltosFrequency.java \
$(SRC)/AltosGPS.java \
$(SRC)/AltosGPSSat.java \
$(SRC)/AltosLine.java \
+ $(SRC)/AltosLink.java \
$(SRC)/AltosParse.java \
$(SRC)/AltosPreferences.java \
$(SRC)/AltosRecordCompanion.java \
diff --git a/altosui/altoslib/src/org/altusmetrum/AltosLib/AltosConfigData.java b/altosui/altoslib/src/org/altusmetrum/AltosLib/AltosConfigData.java
index a331a357..07eb14d8 100644
--- a/altosui/altoslib/src/org/altusmetrum/AltosLib/AltosConfigData.java
+++ b/altosui/altoslib/src/org/altusmetrum/AltosLib/AltosConfigData.java
@@ -17,11 +17,6 @@
package altosui;
-import java.awt.*;
-import java.awt.event.*;
-import javax.swing.*;
-import javax.swing.filechooser.FileNameExtensionFilter;
-import javax.swing.table.*;
import java.io.*;
import java.util.*;
import java.text.*;
@@ -29,8 +24,6 @@ import java.util.prefs.*;
import java.util.concurrent.*;
import org.altusmetrum.AltosLib.*;
-import libaltosJNI.*;
-
public class AltosConfigData implements Iterable<String> {
/* Version information */
@@ -104,13 +97,13 @@ public class AltosConfigData implements Iterable<String> {
}
}
- public AltosConfigData(AltosSerial serial_line) throws InterruptedException, TimeoutException {
- serial_line.printf("c s\nf\nl\nv\n");
+ public AltosConfigData(AltosLink link) throws InterruptedException, TimeoutException {
+ link.printf("c s\nf\nl\nv\n");
lines = new LinkedList<String>();
radio_setting = 0;
stored_flight = 0;
for (;;) {
- String line = serial_line.get_reply();
+ String line = link.get_reply();
if (line == null)
throw new TimeoutException();
if (line.contains("Syntax error"))
diff --git a/altosui/altoslib/src/org/altusmetrum/AltosLib/AltosLink.java b/altosui/altoslib/src/org/altusmetrum/AltosLib/AltosLink.java
new file mode 100644
index 00000000..80f3d712
--- /dev/null
+++ b/altosui/altoslib/src/org/altusmetrum/AltosLib/AltosLink.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright © 2011 Keith Packard <keithp@keithp.com>
+ *
+ * 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.AltosLib;
+
+public interface AltosLink {
+ public void printf(String format, Object ... arguments) throws InterruptedException;
+
+ public String get_reply() throws InterruptedException;
+
+ public String get_reply(int timeout) throws InterruptedException;
+}