From 5270a0f1416baef5fde08547c6c98d97f973ae95 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Mon, 2 Jan 2012 22:35:41 -0800 Subject: [PATCH] altosui: Move telemetry reader &c to altoslib Move all of the device and file reading code into altoslib Signed-off-by: Keith Packard --- altosui/AltosScanUI.java | 6 +- altosui/AltosSerial.java | 1 + altosui/AltosUI.java | 2 +- altosui/Makefile.am | 6 -- altosui/altoslib/Makefile.am | 5 ++ .../org/altusmetrum/AltosLib}/AltosFile.java | 7 +-- .../AltosLib}/AltosFlightReader.java | 27 +++++---- .../org/altusmetrum/AltosLib/AltosLink.java | 5 +- .../org/altusmetrum/AltosLib}/AltosLog.java | 7 +-- .../AltosLib}/AltosReplayReader.java | 12 +--- .../AltosLib}/AltosTelemetryReader.java | 56 +++++++++---------- 11 files changed, 62 insertions(+), 72 deletions(-) rename altosui/{ => altoslib/src/org/altusmetrum/AltosLib}/AltosFile.java (91%) rename altosui/{ => altoslib/src/org/altusmetrum/AltosLib}/AltosFlightReader.java (56%) rename altosui/{ => altoslib/src/org/altusmetrum/AltosLib}/AltosLog.java (96%) rename altosui/{ => altoslib/src/org/altusmetrum/AltosLib}/AltosReplayReader.java (83%) rename altosui/{ => altoslib/src/org/altusmetrum/AltosLib}/AltosTelemetryReader.java (65%) diff --git a/altosui/AltosScanUI.java b/altosui/AltosScanUI.java index 1be8aa26..44eeda6d 100644 --- a/altosui/AltosScanUI.java +++ b/altosui/AltosScanUI.java @@ -208,7 +208,7 @@ public class AltosScanUI } void next() throws InterruptedException, TimeoutException { - reader.serial.set_monitor(false); + reader.set_monitor(false); Thread.sleep(100); ++frequency_index; if (frequency_index >= frequencies.length || @@ -224,7 +224,7 @@ public class AltosScanUI } set_frequency(); set_label(); - reader.serial.set_monitor(true); + reader.set_monitor(true); } @@ -312,7 +312,7 @@ public class AltosScanUI if (device == null) return false; try { - reader = new AltosTelemetryReader(device); + reader = new AltosTelemetryReader(new AltosSerial(device)); set_frequency(); set_telemetry(); try { diff --git a/altosui/AltosSerial.java b/altosui/AltosSerial.java index cc384586..54cdcba7 100644 --- a/altosui/AltosSerial.java +++ b/altosui/AltosSerial.java @@ -396,6 +396,7 @@ public class AltosSerial extends AltosLink implements Runnable { device = in_device; frame = null; serial = device.getSerial(); + name = device.toShortString(); open(); } } diff --git a/altosui/AltosUI.java b/altosui/AltosUI.java index 25c6c36b..538f8734 100644 --- a/altosui/AltosUI.java +++ b/altosui/AltosUI.java @@ -48,7 +48,7 @@ public class AltosUI extends AltosFrame { void telemetry_window(AltosDevice device) { try { - AltosFlightReader reader = new AltosTelemetryReader(device); + AltosFlightReader reader = new AltosTelemetryReader(new AltosSerial(device)); if (reader != null) new AltosFlightUI(voice, reader, device.getSerial()); } catch (FileNotFoundException ee) { diff --git a/altosui/Makefile.am b/altosui/Makefile.am index 270fe114..2946890b 100644 --- a/altosui/Makefile.am +++ b/altosui/Makefile.am @@ -49,12 +49,10 @@ altosui_JAVA = \ AltosIMU.java \ AltosMag.java \ AltosEepromSelect.java \ - AltosFile.java \ AltosFlash.java \ AltosFlashUI.java \ AltosFlightDisplay.java \ AltosFlightInfoTableModel.java \ - AltosFlightReader.java \ AltosFlightStats.java \ AltosFlightStatsTable.java \ AltosFlightStatus.java \ @@ -74,12 +72,9 @@ altosui_JAVA = \ AltosLanded.java \ AltosLed.java \ AltosLights.java \ - AltosLog.java \ AltosPad.java \ AltosUIPreferences.java \ AltosReader.java \ - AltosTelemetryReader.java \ - AltosReplayReader.java \ AltosRomconfig.java \ AltosRomconfigUI.java \ AltosScanUI.java \ @@ -90,7 +85,6 @@ altosui_JAVA = \ AltosSiteMapPreload.java \ AltosSiteMapCache.java \ AltosSiteMapTile.java \ - AltosTelemetryReader.java \ AltosUI.java \ AltosUIListener.java \ AltosFrame.java \ diff --git a/altosui/altoslib/Makefile.am b/altosui/altoslib/Makefile.am index 40ec3af8..2ddd24e6 100644 --- a/altosui/altoslib/Makefile.am +++ b/altosui/altoslib/Makefile.am @@ -19,21 +19,26 @@ AltosLib_JAVA = \ $(SRC)/AltosEepromLog.java \ $(SRC)/AltosEepromRecord.java \ $(SRC)/AltosEepromTeleScience.java \ + $(SRC)/AltosFile.java \ + $(SRC)/AltosFlightReader.java \ $(SRC)/AltosFrequency.java \ $(SRC)/AltosGPS.java \ $(SRC)/AltosGPSSat.java \ $(SRC)/AltosGreatCircle.java \ $(SRC)/AltosLine.java \ $(SRC)/AltosLink.java \ + $(SRC)/AltosLog.java \ $(SRC)/AltosParse.java \ $(SRC)/AltosPreferences.java \ $(SRC)/AltosRecordCompanion.java \ $(SRC)/AltosRecordIterable.java \ $(SRC)/AltosRecord.java \ + $(SRC)/AltosReplayReader.java \ $(SRC)/AltosState.java \ $(SRC)/AltosTelemetry.java \ $(SRC)/AltosTelemetryIterable.java \ $(SRC)/AltosTelemetryMap.java \ + $(SRC)/AltosTelemetryReader.java \ $(SRC)/AltosTelemetryRecordCompanion.java \ $(SRC)/AltosTelemetryRecordConfiguration.java \ $(SRC)/AltosTelemetryRecordGeneral.java \ diff --git a/altosui/AltosFile.java b/altosui/altoslib/src/org/altusmetrum/AltosLib/AltosFile.java similarity index 91% rename from altosui/AltosFile.java rename to altosui/altoslib/src/org/altusmetrum/AltosLib/AltosFile.java index 4cf7de3c..d2e4f2f7 100644 --- a/altosui/AltosFile.java +++ b/altosui/altoslib/src/org/altusmetrum/AltosLib/AltosFile.java @@ -15,17 +15,16 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package altosui; +package org.altusmetrum.AltosLib; import java.lang.*; import java.io.File; import java.util.*; -import org.altusmetrum.AltosLib.*; -class AltosFile extends File { +public class AltosFile extends File { public AltosFile(int year, int month, int day, int serial, int flight, String extension) { - super (AltosUIPreferences.logdir(), + super (AltosPreferences.logdir(), String.format("%04d-%02d-%02d-serial-%03d-flight-%03d.%s", year, month, day, serial, flight, extension)); } diff --git a/altosui/AltosFlightReader.java b/altosui/altoslib/src/org/altusmetrum/AltosLib/AltosFlightReader.java similarity index 56% rename from altosui/AltosFlightReader.java rename to altosui/altoslib/src/org/altusmetrum/AltosLib/AltosFlightReader.java index 1ac9f848..3fdea469 100644 --- a/altosui/AltosFlightReader.java +++ b/altosui/altoslib/src/org/altusmetrum/AltosLib/AltosFlightReader.java @@ -15,36 +15,35 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package altosui; +package org.altusmetrum.AltosLib; import java.lang.*; import java.text.*; import java.io.*; import java.util.concurrent.*; -import org.altusmetrum.AltosLib.*; public class AltosFlightReader { - String name; + public String name; - int serial; + public int serial; - void init() { } + public void init() { } - AltosRecord read() throws InterruptedException, ParseException, AltosCRCException, IOException { return null; } + public AltosRecord read() throws InterruptedException, ParseException, AltosCRCException, IOException { return null; } - void close(boolean interrupted) { } + public void close(boolean interrupted) { } - void set_frequency(double frequency) throws InterruptedException, TimeoutException { } + public void set_frequency(double frequency) throws InterruptedException, TimeoutException { } - void save_frequency() { } + public void save_frequency() { } - void set_telemetry(int telemetry) { } + public void set_telemetry(int telemetry) { } - void save_telemetry() { } + public void save_telemetry() { } - void update(AltosState state) throws InterruptedException { } + public void update(AltosState state) throws InterruptedException { } - boolean supports_telemetry(int telemetry) { return false; } + public boolean supports_telemetry(int telemetry) { return false; } - File backing_file() { return null; } + public File backing_file() { return null; } } diff --git a/altosui/altoslib/src/org/altusmetrum/AltosLib/AltosLink.java b/altosui/altoslib/src/org/altusmetrum/AltosLib/AltosLink.java index 49585975..9b80e916 100644 --- a/altosui/altoslib/src/org/altusmetrum/AltosLib/AltosLink.java +++ b/altosui/altoslib/src/org/altusmetrum/AltosLib/AltosLink.java @@ -24,6 +24,8 @@ import java.util.*; import java.text.*; public abstract class AltosLink { + public abstract void print(String data); + public abstract void close(); public static boolean debug = false; public static void set_debug(boolean in_debug) { debug = in_debug; } @@ -43,8 +45,6 @@ public abstract class AltosLink { set_monitor(false); } - public abstract void print(String data); - public void printf(String format, Object ... arguments) { String line = String.format(format, arguments); if (debug) @@ -207,6 +207,7 @@ public abstract class AltosLink { public boolean remote; public int serial; + public String name; public void start_remote() throws TimeoutException, InterruptedException { if (debug) diff --git a/altosui/AltosLog.java b/altosui/altoslib/src/org/altusmetrum/AltosLib/AltosLog.java similarity index 96% rename from altosui/AltosLog.java rename to altosui/altoslib/src/org/altusmetrum/AltosLib/AltosLog.java index 740f0be6..08c45ca8 100644 --- a/altosui/AltosLog.java +++ b/altosui/altoslib/src/org/altusmetrum/AltosLib/AltosLog.java @@ -15,14 +15,13 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package altosui; +package org.altusmetrum.AltosLib; import java.io.*; import java.lang.*; import java.util.*; import java.text.ParseException; import java.util.concurrent.LinkedBlockingQueue; -import org.altusmetrum.AltosLib.*; /* * This creates a thread to capture telemetry data and write it to @@ -114,10 +113,10 @@ class AltosLog implements Runnable { close(); } - public AltosLog (AltosSerial s) { + public AltosLog (AltosLink link) { pending_queue = new LinkedBlockingQueue (); input_queue = new LinkedBlockingQueue (); - s.add_monitor(input_queue); + link.add_monitor(input_queue); serial = -1; flight = -1; log_file = null; diff --git a/altosui/AltosReplayReader.java b/altosui/altoslib/src/org/altusmetrum/AltosLib/AltosReplayReader.java similarity index 83% rename from altosui/AltosReplayReader.java rename to altosui/altoslib/src/org/altusmetrum/AltosLib/AltosReplayReader.java index f92c0328..1585f9eb 100644 --- a/altosui/AltosReplayReader.java +++ b/altosui/altoslib/src/org/altusmetrum/AltosLib/AltosReplayReader.java @@ -15,19 +15,13 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package altosui; +package org.altusmetrum.AltosLib; -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.*; import java.util.prefs.*; import java.util.concurrent.LinkedBlockingQueue; -import org.altusmetrum.AltosLib.*; /* * Open an existing telemetry file and replay it in realtime @@ -46,9 +40,9 @@ public class AltosReplayReader extends AltosFlightReader { public void close (boolean interrupted) { } - void update(AltosState state) throws InterruptedException { + public void update(AltosState state) throws InterruptedException { /* Make it run in realtime after the rocket leaves the pad */ - if (state.state > Altos.ao_flight_pad) + if (state.state > AltosLib.ao_flight_pad) Thread.sleep((int) (Math.min(state.time_change,10) * 1000)); } diff --git a/altosui/AltosTelemetryReader.java b/altosui/altoslib/src/org/altusmetrum/AltosLib/AltosTelemetryReader.java similarity index 65% rename from altosui/AltosTelemetryReader.java rename to altosui/altoslib/src/org/altusmetrum/AltosLib/AltosTelemetryReader.java index dc7e4a75..2cc2822a 100644 --- a/altosui/AltosTelemetryReader.java +++ b/altosui/altoslib/src/org/altusmetrum/AltosLib/AltosTelemetryReader.java @@ -15,17 +15,15 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package altosui; +package org.altusmetrum.AltosLib; import java.lang.*; import java.text.*; import java.io.*; import java.util.concurrent.*; -import org.altusmetrum.AltosLib.*; -class AltosTelemetryReader extends AltosFlightReader { - AltosDevice device; - AltosSerial serial; +public class AltosTelemetryReader extends AltosFlightReader { + AltosLink link; AltosLog log; AltosRecord previous; double frequency; @@ -33,7 +31,7 @@ class AltosTelemetryReader extends AltosFlightReader { LinkedBlockingQueue telem; - AltosRecord read() throws InterruptedException, ParseException, AltosCRCException, IOException { + public AltosRecord read() throws InterruptedException, ParseException, AltosCRCException, IOException { AltosLine l = telem.take(); if (l.line == null) throw new IOException("IO error"); @@ -42,19 +40,19 @@ class AltosTelemetryReader extends AltosFlightReader { return next; } - void flush() { + public void flush() { telem.clear(); } - void close(boolean interrupted) { - serial.remove_monitor(telem); + public void close(boolean interrupted) { + link.remove_monitor(telem); log.close(); - serial.close(); + link.close(); } public void set_frequency(double in_frequency) throws InterruptedException, TimeoutException { frequency = in_frequency; - serial.set_radio_frequency(frequency); + link.set_radio_frequency(frequency); } public boolean supports_telemetry(int telemetry) { @@ -84,37 +82,37 @@ class AltosTelemetryReader extends AltosFlightReader { } } - void save_frequency() { - AltosPreferences.set_frequency(device.getSerial(), frequency); + public void save_frequency() { + AltosPreferences.set_frequency(link.serial, frequency); } - void set_telemetry(int in_telemetry) { + public void set_telemetry(int in_telemetry) { telemetry = in_telemetry; - serial.set_telemetry(telemetry); + link.set_telemetry(telemetry); } - void save_telemetry() { - AltosPreferences.set_telemetry(device.getSerial(), telemetry); + public void save_telemetry() { + AltosPreferences.set_telemetry(link.serial, telemetry); } - File backing_file() { + public void set_monitor(boolean monitor) { + link.set_monitor(monitor); + } + + public File backing_file() { return log.file(); } - public AltosTelemetryReader (AltosDevice in_device) - throws FileNotFoundException, AltosSerialInUseException, IOException, InterruptedException, TimeoutException { - device = in_device; - serial = new AltosSerial(device); - log = new AltosLog(serial); - name = device.toShortString(); + public AltosTelemetryReader (AltosLink in_link) + throws IOException, InterruptedException, TimeoutException { + log = new AltosLog(link); + name = link.name; previous = null; - telem = new LinkedBlockingQueue(); - frequency = AltosPreferences.frequency(device.getSerial()); + frequency = AltosPreferences.frequency(link.serial); set_frequency(frequency); - telemetry = AltosPreferences.telemetry(device.getSerial()); + telemetry = AltosPreferences.telemetry(link.serial); set_telemetry(telemetry); - serial.set_callsign(AltosUIPreferences.callsign()); - serial.add_monitor(telem); + link.add_monitor(telem); } } -- 2.30.2