From: Keith Packard Date: Tue, 3 Jan 2012 04:34:38 +0000 (-0800) Subject: altosui: Move AltosConfigData.java to library X-Git-Tag: 1.0.9.6~119 X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=commitdiff_plain;h=4c88b0ca96758b663c82395e63b338043d1c1a10 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 --- diff --git a/altosui/AltosSerial.java b/altosui/AltosSerial.java index 74e945f3..161f0e90 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 devices_opened = Collections.synchronizedList(new LinkedList()); 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 ef34dd3e..0bc5d5a8 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 { /* Version information */ @@ -138,14 +131,14 @@ public class AltosConfigData implements Iterable { return 0; } - public AltosConfigData(AltosSerial serial_line) throws InterruptedException, TimeoutException { - serial_line.printf("c s\np\nf\nl\nv\n"); + public AltosConfigData(AltosLink link) throws InterruptedException, TimeoutException { + link.printf("c s\np\nf\nl\nv\n"); lines = new LinkedList(); radio_setting = 0; radio_frequency = 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 + * + * 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; +}