From 99c729495a8cc589718607ee35d22454c6af2994 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sun, 6 Apr 2014 23:46:48 -0700 Subject: altosui: Disable flight log configuration while flights are stored The log code won't let you resize the maximum flight log while there is still data on the flight computer; the code to figure that out in the UI was busted, leaving users confused about why it wasn't working. Signed-off-by: Keith Packard --- altoslib/AltosConfigData.java | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) (limited to 'altoslib/AltosConfigData.java') diff --git a/altoslib/AltosConfigData.java b/altoslib/AltosConfigData.java index c4e108f8..edaf4601 100644 --- a/altoslib/AltosConfigData.java +++ b/altoslib/AltosConfigData.java @@ -351,9 +351,22 @@ public class AltosConfigData implements Iterable { channel); } + boolean use_flash_for_config() { + if (product.startsWith("TeleMega")) + return false; + if (product.startsWith("TeleMetrum-v2")) + return false; + return true; + } + + public int log_limit() { - if (storage_size > 0 && storage_erase_unit > 0) { - int log_limit = storage_size - storage_erase_unit; + if (storage_size > 0) { + int log_limit = storage_size; + + if (storage_erase_unit > 0 && use_flash_for_config()) + log_limit -= storage_erase_unit; + if (log_limit > 0) return log_limit / 1024; } @@ -410,15 +423,20 @@ public class AltosConfigData implements Iterable { dest.set_radio_calibration(radio_calibration); dest.set_radio_frequency(frequency()); boolean max_enabled = true; + + if (log_limit() == 0) + max_enabled = false; + switch (log_format) { case AltosLib.AO_LOG_FORMAT_TINY: max_enabled = false; break; default: - if (stored_flight >= 0) + if (stored_flight > 0) max_enabled = false; break; } + dest.set_flight_log_max_enabled(max_enabled); dest.set_radio_enable(radio_enable); dest.set_flight_log_max_limit(log_limit()); -- cgit v1.2.3 From 2dfc4bc92b11252f17103f28198a702a3fdc2b2d Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Fri, 2 May 2014 13:53:08 -0700 Subject: altosui: Add configuration UI for beeper tone Signed-off-by: Keith Packard --- altoslib/AltosConfigData.java | 18 ++++++++++++ altoslib/AltosConfigValues.java | 4 +++ altoslib/AltosConvert.java | 12 ++++++++ altosui/AltosConfigUI.java | 62 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 96 insertions(+) (limited to 'altoslib/AltosConfigData.java') diff --git a/altoslib/AltosConfigData.java b/altoslib/AltosConfigData.java index edaf4601..750faa71 100644 --- a/altoslib/AltosConfigData.java +++ b/altoslib/AltosConfigData.java @@ -70,6 +70,9 @@ public class AltosConfigData implements Iterable { /* HAS_APRS */ public int aprs_interval; + /* HAS_BEEP */ + public int beep; + /* Storage info replies */ public int storage_size; public int storage_erase_unit; @@ -210,6 +213,8 @@ public class AltosConfigData implements Iterable { aprs_interval = -1; + beep = -1; + storage_size = -1; storage_erase_unit = -1; stored_flight = 0; @@ -286,6 +291,9 @@ public class AltosConfigData implements Iterable { /* HAS_APRS */ try { aprs_interval = get_int(line, "APRS interval:"); } catch (Exception e) {} + /* HAS_BEEP */ + try { beep = get_int(line, "Beeper setting:"); System.out.printf ("beeper now %d\n", beep); } catch (Exception e) {} + /* Storage info replies */ try { storage_size = get_int(line, "Storage size:"); } catch (Exception e) {} try { storage_erase_unit = get_int(line, "Storage erase unit:"); } catch (Exception e) {} @@ -409,8 +417,13 @@ public class AltosConfigData implements Iterable { if (npyro > 0) pyros = source.pyros(); + /* HAS_APRS */ if (aprs_interval >= 0) aprs_interval = source.aprs_interval(); + + /* HAS_BEEP */ + if (beep >= 0) + beep = source.beep(); } public void set_values(AltosConfigValues dest) { @@ -449,6 +462,7 @@ public class AltosConfigData implements Iterable { else dest.set_pyros(null); dest.set_aprs_interval(aprs_interval); + dest.set_beep(beep); } public void save(AltosLink link, boolean remote) throws InterruptedException, TimeoutException { @@ -515,6 +529,10 @@ public class AltosConfigData implements Iterable { if (aprs_interval >= 0) link.printf("c A %d\n", aprs_interval); + /* HAS_BEEP */ + if (beep >= 0) + link.printf("c b %d\n", beep); + link.printf("c w\n"); link.flush_output(); } diff --git a/altoslib/AltosConfigValues.java b/altoslib/AltosConfigValues.java index 4aa55d6a..1a9fddbf 100644 --- a/altoslib/AltosConfigValues.java +++ b/altoslib/AltosConfigValues.java @@ -76,4 +76,8 @@ public interface AltosConfigValues { public abstract int aprs_interval(); public abstract void set_aprs_interval(int new_aprs_interval); + + public abstract int beep(); + + public abstract void set_beep(int new_beep); } diff --git a/altoslib/AltosConvert.java b/altoslib/AltosConvert.java index 35923ec3..4ed45c68 100644 --- a/altoslib/AltosConvert.java +++ b/altoslib/AltosConvert.java @@ -359,4 +359,16 @@ public class AltosConvert { csum += data[i + start]; return csum & 0xff; } + + public static double beep_value_to_freq(int value) { + if (value == 0) + return 4000; + return 1.0/2.0 * (24.0e6/32.0) / (double) value; + } + + public static int beep_freq_to_value(double freq) { + if (freq == 0) + return 94; + return (int) Math.floor (1.0/2.0 * (24.0e6/32.0) / freq + 0.5); + } } diff --git a/altosui/AltosConfigUI.java b/altosui/AltosConfigUI.java index 656b0b6f..0a5291ea 100644 --- a/altosui/AltosConfigUI.java +++ b/altosui/AltosConfigUI.java @@ -45,6 +45,7 @@ public class AltosConfigUI JLabel ignite_mode_label; JLabel pad_orientation_label; JLabel callsign_label; + JLabel beep_label; public boolean dirty; @@ -63,6 +64,7 @@ public class AltosConfigUI JComboBox ignite_mode_value; JComboBox pad_orientation_value; JTextField callsign_value; + JComboBox beep_value; JButton pyro; @@ -112,6 +114,12 @@ public class AltosConfigUI "10" }; + static String[] beep_values = { + "3750", + "4000", + "4250", + }; + static String[] pad_orientation_values = { "Antenna Up", "Antenna Down", @@ -204,6 +212,13 @@ public class AltosConfigUI } } + void set_beep_tool_tip() { + if (beep_value.isEnabled()) + beep_value.setToolTipText("What frequency the beeper will sound at"); + else + beep_value.setToolTipText("Older firmware could not select beeper frequency"); + } + /* Build the UI using a grid bag */ public AltosConfigUI(JFrame in_owner, boolean remote) { super (in_owner, "Configure Flight Computer", false); @@ -569,6 +584,32 @@ public class AltosConfigUI set_pad_orientation_tool_tip(); row++; + /* Beeper */ + c = new GridBagConstraints(); + c.gridx = 0; c.gridy = row; + c.gridwidth = 4; + c.fill = GridBagConstraints.NONE; + c.anchor = GridBagConstraints.LINE_START; + c.insets = il; + c.ipady = 5; + beep_label = new JLabel("Beeper Frequency:"); + pane.add(beep_label, c); + + c = new GridBagConstraints(); + c.gridx = 4; c.gridy = row; + c.gridwidth = 4; + c.fill = GridBagConstraints.HORIZONTAL; + c.weightx = 1; + c.anchor = GridBagConstraints.LINE_START; + c.insets = ir; + c.ipady = 5; + beep_value = new JComboBox(beep_values); + beep_value.setEditable(true); + beep_value.addItemListener(this); + pane.add(beep_value, c); + set_beep_tool_tip(); + row++; + /* Pyro channels */ c = new GridBagConstraints(); c.gridx = 4; c.gridy = row; @@ -908,6 +949,27 @@ public class AltosConfigUI return -1; } + public void set_beep(int new_beep) { + int new_freq = (int) Math.floor (AltosConvert.beep_value_to_freq(new_beep) + 0.5); + System.out.printf("set_beep %d %d\n", new_beep, new_freq); + for (int i = 0; i < beep_values.length; i++) + if (new_beep == AltosConvert.beep_freq_to_value(Integer.parseInt(beep_values[i]))) { + beep_value.setSelectedIndex(i); + set_beep_tool_tip(); + return; + } + beep_value.setSelectedItem(String.format("%d", new_freq)); + beep_value.setEnabled(new_beep >= 0); + set_beep_tool_tip(); + } + + public int beep() { + if (beep_value.isEnabled()) + return AltosConvert.beep_freq_to_value(Integer.parseInt(beep_value.getSelectedItem().toString())); + else + return -1; + } + public void set_pyros(AltosPyro[] new_pyros) { pyros = new_pyros; pyro.setVisible(pyros != null); -- cgit v1.2.3 From eeacc001ba089b4bf5552b8ef36e61a0a96efabe Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Thu, 15 May 2014 23:57:50 -0600 Subject: altosui: Remove debug printf about beep config Signed-off-by: Keith Packard --- altoslib/AltosConfigData.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'altoslib/AltosConfigData.java') diff --git a/altoslib/AltosConfigData.java b/altoslib/AltosConfigData.java index 750faa71..213d8f13 100644 --- a/altoslib/AltosConfigData.java +++ b/altoslib/AltosConfigData.java @@ -292,7 +292,7 @@ public class AltosConfigData implements Iterable { try { aprs_interval = get_int(line, "APRS interval:"); } catch (Exception e) {} /* HAS_BEEP */ - try { beep = get_int(line, "Beeper setting:"); System.out.printf ("beeper now %d\n", beep); } catch (Exception e) {} + try { beep = get_int(line, "Beeper setting:"); } catch (Exception e) {} /* Storage info replies */ try { storage_size = get_int(line, "Storage size:"); } catch (Exception e) {} -- cgit v1.2.3 From f0216d721ed13f4d3dc608bb6ad8f83732b27c0a Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sun, 25 May 2014 21:01:38 -0700 Subject: altoslib/altosuilib: Change versions to altoslib:4, altosuilib:2 API has changed for these libraries, time to bump the file versions Signed-off-by: Keith Packard --- altosdroid/src/org/altusmetrum/AltosDroid/AltosBluetooth.java | 2 +- altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java | 2 +- altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java | 2 +- altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidTab.java | 2 +- altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java | 2 +- altosdroid/src/org/altusmetrum/AltosDroid/TabAscent.java | 2 +- altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java | 2 +- altosdroid/src/org/altusmetrum/AltosDroid/TabLanded.java | 2 +- altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java | 2 +- altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java | 2 +- altosdroid/src/org/altusmetrum/AltosDroid/TelemetryLogger.java | 2 +- altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java | 2 +- altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java | 2 +- altoslib/AltosAccel.java | 2 +- altoslib/AltosCRCException.java | 2 +- altoslib/AltosCSV.java | 2 +- altoslib/AltosCompanion.java | 2 +- altoslib/AltosConfigData.java | 2 +- altoslib/AltosConfigValues.java | 2 +- altoslib/AltosConvert.java | 2 +- altoslib/AltosDebug.java | 2 +- altoslib/AltosDistance.java | 2 +- altoslib/AltosEeprom.java | 2 +- altoslib/AltosEepromChunk.java | 2 +- altoslib/AltosEepromDownload.java | 2 +- altoslib/AltosEepromFile.java | 2 +- altoslib/AltosEepromHeader.java | 2 +- altoslib/AltosEepromIterable.java | 2 +- altoslib/AltosEepromList.java | 2 +- altoslib/AltosEepromLog.java | 2 +- altoslib/AltosEepromMega.java | 2 +- altoslib/AltosEepromMetrum2.java | 2 +- altoslib/AltosEepromMini.java | 2 +- altoslib/AltosEepromMonitor.java | 2 +- altoslib/AltosEepromTM.java | 2 +- altoslib/AltosEepromTm.java | 2 +- altoslib/AltosFile.java | 2 +- altoslib/AltosFlash.java | 2 +- altoslib/AltosFlashListener.java | 2 +- altoslib/AltosFlightReader.java | 2 +- altoslib/AltosFrequency.java | 2 +- altoslib/AltosGPS.java | 2 +- altoslib/AltosGPSSat.java | 2 +- altoslib/AltosGreatCircle.java | 2 +- altoslib/AltosHeight.java | 2 +- altoslib/AltosHexfile.java | 2 +- altoslib/AltosHexsym.java | 2 +- altoslib/AltosIMU.java | 2 +- altoslib/AltosIdle.java | 2 +- altoslib/AltosIdleFetch.java | 2 +- altoslib/AltosIdleMonitor.java | 2 +- altoslib/AltosIdleMonitorListener.java | 2 +- altoslib/AltosIgnite.java | 2 +- altoslib/AltosKML.java | 2 +- altoslib/AltosLib.java | 2 +- altoslib/AltosLine.java | 2 +- altoslib/AltosLink.java | 2 +- altoslib/AltosListenerState.java | 2 +- altoslib/AltosLog.java | 2 +- altoslib/AltosMag.java | 2 +- altoslib/AltosMma655x.java | 2 +- altoslib/AltosMs5607.java | 2 +- altoslib/AltosNoSymbol.java | 2 +- altoslib/AltosOrient.java | 2 +- altoslib/AltosParse.java | 2 +- altoslib/AltosPreferences.java | 2 +- altoslib/AltosPreferencesBackend.java | 2 +- altoslib/AltosProgrammer.java | 2 +- altoslib/AltosPyro.java | 2 +- altoslib/AltosReplayReader.java | 2 +- altoslib/AltosRomconfig.java | 2 +- altoslib/AltosSelfFlash.java | 2 +- altoslib/AltosSensorEMini.java | 2 +- altoslib/AltosSensorMM.java | 2 +- altoslib/AltosSensorMega.java | 2 +- altoslib/AltosSensorMetrum.java | 2 +- altoslib/AltosSensorTM.java | 2 +- altoslib/AltosSensorTMini.java | 2 +- altoslib/AltosSpeed.java | 2 +- altoslib/AltosState.java | 2 +- altoslib/AltosStateIterable.java | 2 +- altoslib/AltosStateUpdate.java | 2 +- altoslib/AltosTelemetry.java | 2 +- altoslib/AltosTelemetryConfiguration.java | 2 +- altoslib/AltosTelemetryFile.java | 2 +- altoslib/AltosTelemetryIterable.java | 2 +- altoslib/AltosTelemetryLegacy.java | 2 +- altoslib/AltosTelemetryLocation.java | 2 +- altoslib/AltosTelemetryMap.java | 2 +- altoslib/AltosTelemetryMegaData.java | 2 +- altoslib/AltosTelemetryMegaSensor.java | 2 +- altoslib/AltosTelemetryMetrumData.java | 2 +- altoslib/AltosTelemetryMetrumSensor.java | 2 +- altoslib/AltosTelemetryMini.java | 2 +- altoslib/AltosTelemetryRaw.java | 2 +- altoslib/AltosTelemetryReader.java | 2 +- altoslib/AltosTelemetrySatellite.java | 2 +- altoslib/AltosTelemetrySensor.java | 2 +- altoslib/AltosTelemetryStandard.java | 2 +- altoslib/AltosTemperature.java | 2 +- altoslib/AltosUnits.java | 2 +- altoslib/AltosUnitsListener.java | 2 +- altoslib/AltosWriter.java | 2 +- altosui/Altos.java | 4 ++-- altosui/AltosAscent.java | 3 ++- altosui/AltosBTDevice.java | 2 +- altosui/AltosBTKnown.java | 4 ++-- altosui/AltosBTManage.java | 2 +- altosui/AltosCSVUI.java | 4 ++-- altosui/AltosCompanionInfo.java | 2 +- altosui/AltosConfig.java | 4 ++-- altosui/AltosConfigFreqUI.java | 4 ++-- altosui/AltosConfigPyroUI.java | 4 ++-- altosui/AltosConfigTD.java | 4 ++-- altosui/AltosConfigTDUI.java | 4 ++-- altosui/AltosConfigUI.java | 4 ++-- altosui/AltosConfigureUI.java | 2 +- altosui/AltosDataChooser.java | 4 ++-- altosui/AltosDescent.java | 3 ++- altosui/AltosDeviceUIDialog.java | 2 +- altosui/AltosEepromDelete.java | 2 +- altosui/AltosEepromManage.java | 4 ++-- altosui/AltosEepromMonitor.java | 2 +- altosui/AltosEepromMonitorUI.java | 4 ++-- altosui/AltosEepromSelect.java | 4 ++-- altosui/AltosFlashUI.java | 4 ++-- altosui/AltosFlightStatsTable.java | 2 +- altosui/AltosFlightStatus.java | 3 ++- altosui/AltosFlightStatusTableModel.java | 2 +- altosui/AltosFlightStatusUpdate.java | 2 +- altosui/AltosFlightUI.java | 4 ++-- altosui/AltosGraph.java | 4 ++-- altosui/AltosGraphDataPoint.java | 4 ++-- altosui/AltosGraphDataSet.java | 4 ++-- altosui/AltosGraphUI.java | 4 ++-- altosui/AltosIdleMonitorUI.java | 4 ++-- altosui/AltosIgniteUI.java | 4 ++-- altosui/AltosIgnitor.java | 3 ++- altosui/AltosInfoTable.java | 2 +- altosui/AltosLanded.java | 3 ++- altosui/AltosLaunch.java | 2 +- altosui/AltosLaunchUI.java | 2 +- altosui/AltosPad.java | 3 ++- altosui/AltosRomconfigUI.java | 4 ++-- altosui/AltosScanUI.java | 4 ++-- altosui/AltosSerial.java | 4 ++-- altosui/AltosSerialInUseException.java | 2 +- altosui/AltosUI.java | 4 ++-- altosui/AltosUIPreferencesBackend.java | 2 +- altosuilib/AltosDevice.java | 2 +- altosuilib/AltosDeviceDialog.java | 2 +- altosuilib/AltosFontListener.java | 2 +- altosuilib/AltosPositionListener.java | 2 +- altosuilib/AltosUIAxis.java | 4 ++-- altosuilib/AltosUIConfigure.java | 2 +- altosuilib/AltosUIDataMissing.java | 2 +- altosuilib/AltosUIDataPoint.java | 2 +- altosuilib/AltosUIDataSet.java | 2 +- altosuilib/AltosUIDialog.java | 2 +- altosuilib/AltosUIEnable.java | 4 ++-- altosuilib/AltosUIFrame.java | 2 +- altosuilib/AltosUIGraph.java | 4 ++-- altosuilib/AltosUIGrapher.java | 4 ++-- altosuilib/AltosUILib.java | 4 ++-- altosuilib/AltosUIListener.java | 2 +- altosuilib/AltosUIMarker.java | 4 ++-- altosuilib/AltosUIPreferences.java | 4 ++-- altosuilib/AltosUIPreferencesBackend.java | 4 ++-- altosuilib/AltosUISeries.java | 4 ++-- altosuilib/AltosUIVersion.java.in | 2 +- altosuilib/AltosUSBDevice.java | 2 +- configure.ac | 4 ++-- micropeak/MicroData.java | 4 ++-- micropeak/MicroDataPoint.java | 2 +- micropeak/MicroDeviceDialog.java | 2 +- micropeak/MicroDownload.java | 4 ++-- micropeak/MicroExport.java | 4 ++-- micropeak/MicroFile.java | 4 ++-- micropeak/MicroFileChooser.java | 4 ++-- micropeak/MicroFrame.java | 2 +- micropeak/MicroGraph.java | 4 ++-- micropeak/MicroPeak.java | 4 ++-- micropeak/MicroRaw.java | 4 ++-- micropeak/MicroSave.java | 4 ++-- micropeak/MicroSerial.java | 2 +- micropeak/MicroSerialLog.java | 2 +- micropeak/MicroStats.java | 4 ++-- micropeak/MicroStatsTable.java | 4 ++-- micropeak/MicroUSB.java | 2 +- 189 files changed, 241 insertions(+), 235 deletions(-) (limited to 'altoslib/AltosConfigData.java') diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosBluetooth.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosBluetooth.java index 634769cc..1b4d45ed 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosBluetooth.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosBluetooth.java @@ -31,7 +31,7 @@ import android.os.Handler; //import android.os.Message; import android.util.Log; -import org.altusmetrum.altoslib_3.*; +import org.altusmetrum.altoslib_4.*; public class AltosBluetooth extends AltosLink { diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java index 9125d56b..f61baf1e 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java @@ -49,7 +49,7 @@ import android.widget.Toast; import android.app.AlertDialog; import android.location.Location; -import org.altusmetrum.altoslib_3.*; +import org.altusmetrum.altoslib_4.*; public class AltosDroid extends FragmentActivity { // Debugging diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java index 067cb620..f6e6881d 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java @@ -23,7 +23,7 @@ import android.content.Context; import android.content.SharedPreferences; import android.os.Environment; -import org.altusmetrum.altoslib_3.*; +import org.altusmetrum.altoslib_4.*; public class AltosDroidPreferences implements AltosPreferencesBackend { public final static String NAME = "org.altusmetrum.AltosDroid"; diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidTab.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidTab.java index 9d155385..fac4b8d4 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidTab.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidTab.java @@ -17,7 +17,7 @@ package org.altusmetrum.AltosDroid; -import org.altusmetrum.altoslib_3.*; +import org.altusmetrum.altoslib_4.*; import android.location.Location; public interface AltosDroidTab { diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java index b50cab22..77d4ba38 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java @@ -21,7 +21,7 @@ package org.altusmetrum.AltosDroid; import android.speech.tts.TextToSpeech; import android.speech.tts.TextToSpeech.OnInitListener; -import org.altusmetrum.altoslib_3.*; +import org.altusmetrum.altoslib_4.*; public class AltosVoice { diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabAscent.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabAscent.java index edfd8245..e4a815eb 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TabAscent.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabAscent.java @@ -17,7 +17,7 @@ package org.altusmetrum.AltosDroid; -import org.altusmetrum.altoslib_3.*; +import org.altusmetrum.altoslib_4.*; import android.app.Activity; import android.os.Bundle; diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java index cc070b0d..cbbe4d44 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabDescent.java @@ -17,7 +17,7 @@ package org.altusmetrum.AltosDroid; -import org.altusmetrum.altoslib_3.*; +import org.altusmetrum.altoslib_4.*; import android.app.Activity; import android.os.Bundle; diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabLanded.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabLanded.java index 5a703978..b2e6fd20 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TabLanded.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabLanded.java @@ -17,7 +17,7 @@ package org.altusmetrum.AltosDroid; -import org.altusmetrum.altoslib_3.*; +import org.altusmetrum.altoslib_4.*; import android.app.Activity; import android.os.Bundle; diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java index 5fe88f51..38922771 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabMap.java @@ -19,7 +19,7 @@ package org.altusmetrum.AltosDroid; import java.util.Arrays; -import org.altusmetrum.altoslib_3.*; +import org.altusmetrum.altoslib_4.*; import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap; diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java index 3f0a1887..10bb3bd9 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java @@ -17,7 +17,7 @@ package org.altusmetrum.AltosDroid; -import org.altusmetrum.altoslib_3.*; +import org.altusmetrum.altoslib_4.*; import android.app.Activity; import android.os.Bundle; diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryLogger.java b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryLogger.java index c8c61838..4215a330 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryLogger.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryLogger.java @@ -1,6 +1,6 @@ package org.altusmetrum.AltosDroid; -import org.altusmetrum.altoslib_3.*; +import org.altusmetrum.altoslib_4.*; import android.content.BroadcastReceiver; import android.content.Context; diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java index 2a2cc404..5bc4b90d 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryReader.java @@ -25,7 +25,7 @@ import java.util.concurrent.*; import android.util.Log; import android.os.Handler; -import org.altusmetrum.altoslib_3.*; +import org.altusmetrum.altoslib_4.*; public class TelemetryReader extends Thread { diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java index 96cedad8..da5e044f 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java @@ -44,7 +44,7 @@ import android.location.LocationManager; import android.location.LocationListener; import android.location.Criteria; -import org.altusmetrum.altoslib_3.*; +import org.altusmetrum.altoslib_4.*; public class TelemetryService extends Service implements LocationListener { diff --git a/altoslib/AltosAccel.java b/altoslib/AltosAccel.java index 43dc20bd..3d340e5d 100644 --- a/altoslib/AltosAccel.java +++ b/altoslib/AltosAccel.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; public class AltosAccel extends AltosUnits { diff --git a/altoslib/AltosCRCException.java b/altoslib/AltosCRCException.java index 94962731..253ca435 100644 --- a/altoslib/AltosCRCException.java +++ b/altoslib/AltosCRCException.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; public class AltosCRCException extends Exception { public int rssi; diff --git a/altoslib/AltosCSV.java b/altoslib/AltosCSV.java index 8176d21b..27e1fade 100644 --- a/altoslib/AltosCSV.java +++ b/altoslib/AltosCSV.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.io.*; import java.util.*; diff --git a/altoslib/AltosCompanion.java b/altoslib/AltosCompanion.java index 47ca328e..09bfe9f3 100644 --- a/altoslib/AltosCompanion.java +++ b/altoslib/AltosCompanion.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; public class AltosCompanion { public final static int board_id_telescience = 0x0a; diff --git a/altoslib/AltosConfigData.java b/altoslib/AltosConfigData.java index 213d8f13..e5c546ff 100644 --- a/altoslib/AltosConfigData.java +++ b/altoslib/AltosConfigData.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.util.*; import java.text.*; diff --git a/altoslib/AltosConfigValues.java b/altoslib/AltosConfigValues.java index 1a9fddbf..b7c0c6ed 100644 --- a/altoslib/AltosConfigValues.java +++ b/altoslib/AltosConfigValues.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; public interface AltosConfigValues { /* set and get all of the dialog values */ diff --git a/altoslib/AltosConvert.java b/altoslib/AltosConvert.java index 4ed45c68..484f6213 100644 --- a/altoslib/AltosConvert.java +++ b/altoslib/AltosConvert.java @@ -18,7 +18,7 @@ /* * Sensor data conversion functions */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; public class AltosConvert { /* diff --git a/altoslib/AltosDebug.java b/altoslib/AltosDebug.java index 4dfb31e5..b0e52fc1 100644 --- a/altoslib/AltosDebug.java +++ b/altoslib/AltosDebug.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.io.*; diff --git a/altoslib/AltosDistance.java b/altoslib/AltosDistance.java index 71ee81d7..76ca20c0 100644 --- a/altoslib/AltosDistance.java +++ b/altoslib/AltosDistance.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; public class AltosDistance extends AltosUnits { diff --git a/altoslib/AltosEeprom.java b/altoslib/AltosEeprom.java index 57ee73ad..be18ba24 100644 --- a/altoslib/AltosEeprom.java +++ b/altoslib/AltosEeprom.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.io.*; import java.util.*; diff --git a/altoslib/AltosEepromChunk.java b/altoslib/AltosEepromChunk.java index c884b659..32de96bc 100644 --- a/altoslib/AltosEepromChunk.java +++ b/altoslib/AltosEepromChunk.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.text.*; import java.util.concurrent.*; diff --git a/altoslib/AltosEepromDownload.java b/altoslib/AltosEepromDownload.java index 163ffad9..a2dfc438 100644 --- a/altoslib/AltosEepromDownload.java +++ b/altoslib/AltosEepromDownload.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.io.*; import java.util.*; diff --git a/altoslib/AltosEepromFile.java b/altoslib/AltosEepromFile.java index 91ffc223..2a26c484 100644 --- a/altoslib/AltosEepromFile.java +++ b/altoslib/AltosEepromFile.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.io.*; import java.util.*; diff --git a/altoslib/AltosEepromHeader.java b/altoslib/AltosEepromHeader.java index fe5bf6c3..0d022f46 100644 --- a/altoslib/AltosEepromHeader.java +++ b/altoslib/AltosEepromHeader.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.io.*; import java.util.*; diff --git a/altoslib/AltosEepromIterable.java b/altoslib/AltosEepromIterable.java index 081721b3..415c5b62 100644 --- a/altoslib/AltosEepromIterable.java +++ b/altoslib/AltosEepromIterable.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.io.*; import java.util.*; diff --git a/altoslib/AltosEepromList.java b/altoslib/AltosEepromList.java index a9dac13a..ab853a88 100644 --- a/altoslib/AltosEepromList.java +++ b/altoslib/AltosEepromList.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.io.*; import java.util.*; diff --git a/altoslib/AltosEepromLog.java b/altoslib/AltosEepromLog.java index cc298207..1a430c03 100644 --- a/altoslib/AltosEepromLog.java +++ b/altoslib/AltosEepromLog.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.text.*; import java.util.concurrent.*; diff --git a/altoslib/AltosEepromMega.java b/altoslib/AltosEepromMega.java index f0d7097e..71719a26 100644 --- a/altoslib/AltosEepromMega.java +++ b/altoslib/AltosEepromMega.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.io.*; import java.util.*; diff --git a/altoslib/AltosEepromMetrum2.java b/altoslib/AltosEepromMetrum2.java index d13aac42..d137614a 100644 --- a/altoslib/AltosEepromMetrum2.java +++ b/altoslib/AltosEepromMetrum2.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.io.*; import java.util.*; diff --git a/altoslib/AltosEepromMini.java b/altoslib/AltosEepromMini.java index b308fbf4..32985639 100644 --- a/altoslib/AltosEepromMini.java +++ b/altoslib/AltosEepromMini.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.io.*; import java.util.*; diff --git a/altoslib/AltosEepromMonitor.java b/altoslib/AltosEepromMonitor.java index 9ab1a5ab..b97287c3 100644 --- a/altoslib/AltosEepromMonitor.java +++ b/altoslib/AltosEepromMonitor.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; public interface AltosEepromMonitor { diff --git a/altoslib/AltosEepromTM.java b/altoslib/AltosEepromTM.java index c8b1e60c..77fe20c5 100644 --- a/altoslib/AltosEepromTM.java +++ b/altoslib/AltosEepromTM.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.io.*; import java.util.*; diff --git a/altoslib/AltosEepromTm.java b/altoslib/AltosEepromTm.java index 049dd340..6cbb7253 100644 --- a/altoslib/AltosEepromTm.java +++ b/altoslib/AltosEepromTm.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.io.*; import java.util.*; diff --git a/altoslib/AltosFile.java b/altoslib/AltosFile.java index 79f6f1c6..2a738996 100644 --- a/altoslib/AltosFile.java +++ b/altoslib/AltosFile.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.io.File; import java.util.*; diff --git a/altoslib/AltosFlash.java b/altoslib/AltosFlash.java index 25c76863..8e8722c2 100644 --- a/altoslib/AltosFlash.java +++ b/altoslib/AltosFlash.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.io.*; diff --git a/altoslib/AltosFlashListener.java b/altoslib/AltosFlashListener.java index b7fcd73b..8bb86bba 100644 --- a/altoslib/AltosFlashListener.java +++ b/altoslib/AltosFlashListener.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; public interface AltosFlashListener { public void position(String label, int percent); diff --git a/altoslib/AltosFlightReader.java b/altoslib/AltosFlightReader.java index 86757e82..2fcd556e 100644 --- a/altoslib/AltosFlightReader.java +++ b/altoslib/AltosFlightReader.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.text.*; import java.io.*; diff --git a/altoslib/AltosFrequency.java b/altoslib/AltosFrequency.java index 5770b646..7c291ea9 100644 --- a/altoslib/AltosFrequency.java +++ b/altoslib/AltosFrequency.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; public class AltosFrequency { public double frequency; diff --git a/altoslib/AltosGPS.java b/altoslib/AltosGPS.java index 01e6fdbc..2708d026 100644 --- a/altoslib/AltosGPS.java +++ b/altoslib/AltosGPS.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.text.*; import java.util.concurrent.*; diff --git a/altoslib/AltosGPSSat.java b/altoslib/AltosGPSSat.java index 76fa3a56..ef24d497 100644 --- a/altoslib/AltosGPSSat.java +++ b/altoslib/AltosGPSSat.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; public class AltosGPSSat { public int svid; diff --git a/altoslib/AltosGreatCircle.java b/altoslib/AltosGreatCircle.java index b884a3bc..39df4fc8 100644 --- a/altoslib/AltosGreatCircle.java +++ b/altoslib/AltosGreatCircle.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.lang.Math; diff --git a/altoslib/AltosHeight.java b/altoslib/AltosHeight.java index a81897e7..84981032 100644 --- a/altoslib/AltosHeight.java +++ b/altoslib/AltosHeight.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; public class AltosHeight extends AltosUnits { diff --git a/altoslib/AltosHexfile.java b/altoslib/AltosHexfile.java index 60f4ecdc..d5fa8f5f 100644 --- a/altoslib/AltosHexfile.java +++ b/altoslib/AltosHexfile.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.io.*; import java.util.LinkedList; diff --git a/altoslib/AltosHexsym.java b/altoslib/AltosHexsym.java index a98ef0fc..403b5644 100644 --- a/altoslib/AltosHexsym.java +++ b/altoslib/AltosHexsym.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; public class AltosHexsym { String name; diff --git a/altoslib/AltosIMU.java b/altoslib/AltosIMU.java index 99efb76f..a22b3fed 100644 --- a/altoslib/AltosIMU.java +++ b/altoslib/AltosIMU.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.util.concurrent.*; diff --git a/altoslib/AltosIdle.java b/altoslib/AltosIdle.java index c7b546b6..55f6f5c9 100644 --- a/altoslib/AltosIdle.java +++ b/altoslib/AltosIdle.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.io.*; import java.util.*; diff --git a/altoslib/AltosIdleFetch.java b/altoslib/AltosIdleFetch.java index b0e45797..5cd8bf36 100644 --- a/altoslib/AltosIdleFetch.java +++ b/altoslib/AltosIdleFetch.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.io.*; import java.util.*; diff --git a/altoslib/AltosIdleMonitor.java b/altoslib/AltosIdleMonitor.java index 8342f8a5..f81abdff 100644 --- a/altoslib/AltosIdleMonitor.java +++ b/altoslib/AltosIdleMonitor.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.io.*; import java.util.concurrent.*; diff --git a/altoslib/AltosIdleMonitorListener.java b/altoslib/AltosIdleMonitorListener.java index dcaa77a6..6a9abea2 100644 --- a/altoslib/AltosIdleMonitorListener.java +++ b/altoslib/AltosIdleMonitorListener.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; public interface AltosIdleMonitorListener { public void update(AltosState state, AltosListenerState listener_state); diff --git a/altoslib/AltosIgnite.java b/altoslib/AltosIgnite.java index 8ab47d1d..c21f17ac 100644 --- a/altoslib/AltosIgnite.java +++ b/altoslib/AltosIgnite.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.util.*; import java.io.*; diff --git a/altoslib/AltosKML.java b/altoslib/AltosKML.java index cc9a9f51..d55da9ef 100644 --- a/altoslib/AltosKML.java +++ b/altoslib/AltosKML.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.io.*; diff --git a/altoslib/AltosLib.java b/altoslib/AltosLib.java index 3f25bc31..5e18202f 100644 --- a/altoslib/AltosLib.java +++ b/altoslib/AltosLib.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.util.*; import java.io.*; diff --git a/altoslib/AltosLine.java b/altoslib/AltosLine.java index 9d796a89..f9c712a3 100644 --- a/altoslib/AltosLine.java +++ b/altoslib/AltosLine.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; public class AltosLine { public String line; diff --git a/altoslib/AltosLink.java b/altoslib/AltosLink.java index 469b03c0..7f434a06 100644 --- a/altoslib/AltosLink.java +++ b/altoslib/AltosLink.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.io.*; import java.util.concurrent.*; diff --git a/altoslib/AltosListenerState.java b/altoslib/AltosListenerState.java index 53ed33f9..5bf761b0 100644 --- a/altoslib/AltosListenerState.java +++ b/altoslib/AltosListenerState.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; public class AltosListenerState { public int crc_errors; diff --git a/altoslib/AltosLog.java b/altoslib/AltosLog.java index 70c017b7..8ecb1e96 100644 --- a/altoslib/AltosLog.java +++ b/altoslib/AltosLog.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.io.*; import java.text.*; diff --git a/altoslib/AltosMag.java b/altoslib/AltosMag.java index a3a0a74b..9262de2d 100644 --- a/altoslib/AltosMag.java +++ b/altoslib/AltosMag.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.util.concurrent.*; diff --git a/altoslib/AltosMma655x.java b/altoslib/AltosMma655x.java index 0d90c351..cb2e63d4 100644 --- a/altoslib/AltosMma655x.java +++ b/altoslib/AltosMma655x.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.util.concurrent.*; diff --git a/altoslib/AltosMs5607.java b/altoslib/AltosMs5607.java index 4a851524..5aa3a7ec 100644 --- a/altoslib/AltosMs5607.java +++ b/altoslib/AltosMs5607.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.util.concurrent.*; diff --git a/altoslib/AltosNoSymbol.java b/altoslib/AltosNoSymbol.java index 791899c0..f5e53b8c 100644 --- a/altoslib/AltosNoSymbol.java +++ b/altoslib/AltosNoSymbol.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; public class AltosNoSymbol extends Exception { public AltosNoSymbol(String name) { diff --git a/altoslib/AltosOrient.java b/altoslib/AltosOrient.java index d916a0fb..5fcbe28d 100644 --- a/altoslib/AltosOrient.java +++ b/altoslib/AltosOrient.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; public class AltosOrient extends AltosUnits { diff --git a/altoslib/AltosParse.java b/altoslib/AltosParse.java index 5137fef8..1bff7682 100644 --- a/altoslib/AltosParse.java +++ b/altoslib/AltosParse.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.text.*; diff --git a/altoslib/AltosPreferences.java b/altoslib/AltosPreferences.java index 484cb644..d299f27b 100644 --- a/altoslib/AltosPreferences.java +++ b/altoslib/AltosPreferences.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.io.*; import java.util.*; diff --git a/altoslib/AltosPreferencesBackend.java b/altoslib/AltosPreferencesBackend.java index 2eb29702..461b5c80 100644 --- a/altoslib/AltosPreferencesBackend.java +++ b/altoslib/AltosPreferencesBackend.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.io.File; diff --git a/altoslib/AltosProgrammer.java b/altoslib/AltosProgrammer.java index 750e1f02..c96f04ca 100644 --- a/altoslib/AltosProgrammer.java +++ b/altoslib/AltosProgrammer.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.io.*; diff --git a/altoslib/AltosPyro.java b/altoslib/AltosPyro.java index a1414123..9e47bc80 100644 --- a/altoslib/AltosPyro.java +++ b/altoslib/AltosPyro.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.util.*; import java.text.*; diff --git a/altoslib/AltosReplayReader.java b/altoslib/AltosReplayReader.java index 4cf642ca..ac7df414 100644 --- a/altoslib/AltosReplayReader.java +++ b/altoslib/AltosReplayReader.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.io.*; import java.util.*; diff --git a/altoslib/AltosRomconfig.java b/altoslib/AltosRomconfig.java index 506c3961..10df11af 100644 --- a/altoslib/AltosRomconfig.java +++ b/altoslib/AltosRomconfig.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.io.*; diff --git a/altoslib/AltosSelfFlash.java b/altoslib/AltosSelfFlash.java index 051aa766..502c6d65 100644 --- a/altoslib/AltosSelfFlash.java +++ b/altoslib/AltosSelfFlash.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.io.*; diff --git a/altoslib/AltosSensorEMini.java b/altoslib/AltosSensorEMini.java index 5f43b3a9..ee0238f9 100644 --- a/altoslib/AltosSensorEMini.java +++ b/altoslib/AltosSensorEMini.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.util.concurrent.TimeoutException; diff --git a/altoslib/AltosSensorMM.java b/altoslib/AltosSensorMM.java index 0c23d671..e34e71b7 100644 --- a/altoslib/AltosSensorMM.java +++ b/altoslib/AltosSensorMM.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.util.concurrent.TimeoutException; diff --git a/altoslib/AltosSensorMega.java b/altoslib/AltosSensorMega.java index c52f688d..02f3a256 100644 --- a/altoslib/AltosSensorMega.java +++ b/altoslib/AltosSensorMega.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.util.concurrent.TimeoutException; diff --git a/altoslib/AltosSensorMetrum.java b/altoslib/AltosSensorMetrum.java index bb794a1e..e5421ef5 100644 --- a/altoslib/AltosSensorMetrum.java +++ b/altoslib/AltosSensorMetrum.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.util.concurrent.TimeoutException; diff --git a/altoslib/AltosSensorTM.java b/altoslib/AltosSensorTM.java index a5129783..2d60d8cf 100644 --- a/altoslib/AltosSensorTM.java +++ b/altoslib/AltosSensorTM.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.util.concurrent.TimeoutException; diff --git a/altoslib/AltosSensorTMini.java b/altoslib/AltosSensorTMini.java index bb60a794..b9eeca0c 100644 --- a/altoslib/AltosSensorTMini.java +++ b/altoslib/AltosSensorTMini.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.util.concurrent.TimeoutException; diff --git a/altoslib/AltosSpeed.java b/altoslib/AltosSpeed.java index d93229dd..9134f5f4 100644 --- a/altoslib/AltosSpeed.java +++ b/altoslib/AltosSpeed.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; public class AltosSpeed extends AltosUnits { diff --git a/altoslib/AltosState.java b/altoslib/AltosState.java index 4dbd751b..71263151 100644 --- a/altoslib/AltosState.java +++ b/altoslib/AltosState.java @@ -19,7 +19,7 @@ * Track flight state from telemetry or eeprom data stream */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; public class AltosState implements Cloneable { diff --git a/altoslib/AltosStateIterable.java b/altoslib/AltosStateIterable.java index 7ea3041b..be812095 100644 --- a/altoslib/AltosStateIterable.java +++ b/altoslib/AltosStateIterable.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.io.*; import java.util.*; diff --git a/altoslib/AltosStateUpdate.java b/altoslib/AltosStateUpdate.java index 4614c67a..ac4e963e 100644 --- a/altoslib/AltosStateUpdate.java +++ b/altoslib/AltosStateUpdate.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; public interface AltosStateUpdate { public void update_state(AltosState state) throws InterruptedException; diff --git a/altoslib/AltosTelemetry.java b/altoslib/AltosTelemetry.java index 1c4ce7bc..62948378 100644 --- a/altoslib/AltosTelemetry.java +++ b/altoslib/AltosTelemetry.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.text.*; diff --git a/altoslib/AltosTelemetryConfiguration.java b/altoslib/AltosTelemetryConfiguration.java index 67a43748..d1341b9e 100644 --- a/altoslib/AltosTelemetryConfiguration.java +++ b/altoslib/AltosTelemetryConfiguration.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; public class AltosTelemetryConfiguration extends AltosTelemetryStandard { diff --git a/altoslib/AltosTelemetryFile.java b/altoslib/AltosTelemetryFile.java index f6643134..3d3fa407 100644 --- a/altoslib/AltosTelemetryFile.java +++ b/altoslib/AltosTelemetryFile.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.io.*; import java.util.*; diff --git a/altoslib/AltosTelemetryIterable.java b/altoslib/AltosTelemetryIterable.java index 002f53b4..cba97ddc 100644 --- a/altoslib/AltosTelemetryIterable.java +++ b/altoslib/AltosTelemetryIterable.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.io.*; import java.util.*; diff --git a/altoslib/AltosTelemetryLegacy.java b/altoslib/AltosTelemetryLegacy.java index da9296e4..3367ece7 100644 --- a/altoslib/AltosTelemetryLegacy.java +++ b/altoslib/AltosTelemetryLegacy.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.text.*; diff --git a/altoslib/AltosTelemetryLocation.java b/altoslib/AltosTelemetryLocation.java index 8dcda9e1..8368188f 100644 --- a/altoslib/AltosTelemetryLocation.java +++ b/altoslib/AltosTelemetryLocation.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; public class AltosTelemetryLocation extends AltosTelemetryStandard { diff --git a/altoslib/AltosTelemetryMap.java b/altoslib/AltosTelemetryMap.java index 37b2527b..8d0de355 100644 --- a/altoslib/AltosTelemetryMap.java +++ b/altoslib/AltosTelemetryMap.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.text.*; import java.util.HashMap; diff --git a/altoslib/AltosTelemetryMegaData.java b/altoslib/AltosTelemetryMegaData.java index ffd82546..fac5695f 100644 --- a/altoslib/AltosTelemetryMegaData.java +++ b/altoslib/AltosTelemetryMegaData.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; public class AltosTelemetryMegaData extends AltosTelemetryStandard { int state; diff --git a/altoslib/AltosTelemetryMegaSensor.java b/altoslib/AltosTelemetryMegaSensor.java index d9fd7fde..9e73bc4e 100644 --- a/altoslib/AltosTelemetryMegaSensor.java +++ b/altoslib/AltosTelemetryMegaSensor.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; public class AltosTelemetryMegaSensor extends AltosTelemetryStandard { int accel; diff --git a/altoslib/AltosTelemetryMetrumData.java b/altoslib/AltosTelemetryMetrumData.java index b8f7e9ea..96617306 100644 --- a/altoslib/AltosTelemetryMetrumData.java +++ b/altoslib/AltosTelemetryMetrumData.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; public class AltosTelemetryMetrumData extends AltosTelemetryStandard { diff --git a/altoslib/AltosTelemetryMetrumSensor.java b/altoslib/AltosTelemetryMetrumSensor.java index 232468bb..e7055404 100644 --- a/altoslib/AltosTelemetryMetrumSensor.java +++ b/altoslib/AltosTelemetryMetrumSensor.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; public class AltosTelemetryMetrumSensor extends AltosTelemetryStandard { diff --git a/altoslib/AltosTelemetryMini.java b/altoslib/AltosTelemetryMini.java index e0a493dc..fbfaff8e 100644 --- a/altoslib/AltosTelemetryMini.java +++ b/altoslib/AltosTelemetryMini.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; public class AltosTelemetryMini extends AltosTelemetryStandard { diff --git a/altoslib/AltosTelemetryRaw.java b/altoslib/AltosTelemetryRaw.java index 91cfbb18..0dca62aa 100644 --- a/altoslib/AltosTelemetryRaw.java +++ b/altoslib/AltosTelemetryRaw.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; public class AltosTelemetryRaw extends AltosTelemetryStandard { public AltosTelemetryRaw(int[] bytes) { diff --git a/altoslib/AltosTelemetryReader.java b/altoslib/AltosTelemetryReader.java index 5e283587..3dff661a 100644 --- a/altoslib/AltosTelemetryReader.java +++ b/altoslib/AltosTelemetryReader.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; import java.text.*; import java.io.*; diff --git a/altoslib/AltosTelemetrySatellite.java b/altoslib/AltosTelemetrySatellite.java index 24777b28..d611e88c 100644 --- a/altoslib/AltosTelemetrySatellite.java +++ b/altoslib/AltosTelemetrySatellite.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; public class AltosTelemetrySatellite extends AltosTelemetryStandard { int channels; diff --git a/altoslib/AltosTelemetrySensor.java b/altoslib/AltosTelemetrySensor.java index d6389865..ad4d9283 100644 --- a/altoslib/AltosTelemetrySensor.java +++ b/altoslib/AltosTelemetrySensor.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; public class AltosTelemetrySensor extends AltosTelemetryStandard { diff --git a/altoslib/AltosTelemetryStandard.java b/altoslib/AltosTelemetryStandard.java index c9531fcb..23ae9d21 100644 --- a/altoslib/AltosTelemetryStandard.java +++ b/altoslib/AltosTelemetryStandard.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; public abstract class AltosTelemetryStandard extends AltosTelemetry { int[] bytes; diff --git a/altoslib/AltosTemperature.java b/altoslib/AltosTemperature.java index 36e26564..5fa71b86 100644 --- a/altoslib/AltosTemperature.java +++ b/altoslib/AltosTemperature.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; public class AltosTemperature extends AltosUnits { diff --git a/altoslib/AltosUnits.java b/altoslib/AltosUnits.java index 82f102e4..d29cfae7 100644 --- a/altoslib/AltosUnits.java +++ b/altoslib/AltosUnits.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; public abstract class AltosUnits { diff --git a/altoslib/AltosUnitsListener.java b/altoslib/AltosUnitsListener.java index e9b29f9a..ca6faafd 100644 --- a/altoslib/AltosUnitsListener.java +++ b/altoslib/AltosUnitsListener.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; public interface AltosUnitsListener { public void units_changed(boolean imperial_units); diff --git a/altoslib/AltosWriter.java b/altoslib/AltosWriter.java index 0b0daebd..c3479a93 100644 --- a/altoslib/AltosWriter.java +++ b/altoslib/AltosWriter.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_3; +package org.altusmetrum.altoslib_4; public interface AltosWriter { diff --git a/altosui/Altos.java b/altosui/Altos.java index 4b171fa7..28038ad6 100644 --- a/altosui/Altos.java +++ b/altosui/Altos.java @@ -20,8 +20,8 @@ package altosui; import java.awt.*; import libaltosJNI.*; -import org.altusmetrum.altoslib_3.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; public class Altos extends AltosUILib { diff --git a/altosui/AltosAscent.java b/altosui/AltosAscent.java index 81b08d2c..f6ccbf0c 100644 --- a/altosui/AltosAscent.java +++ b/altosui/AltosAscent.java @@ -19,7 +19,8 @@ package altosui; import java.awt.*; import javax.swing.*; -import org.altusmetrum.altoslib_3.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; public class AltosAscent extends JComponent implements AltosFlightDisplay { GridBagLayout layout; diff --git a/altosui/AltosBTDevice.java b/altosui/AltosBTDevice.java index 727a9f66..e920803a 100644 --- a/altosui/AltosBTDevice.java +++ b/altosui/AltosBTDevice.java @@ -17,7 +17,7 @@ package altosui; import libaltosJNI.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altosuilib_2.*; public class AltosBTDevice extends altos_bt_device implements AltosDevice { diff --git a/altosui/AltosBTKnown.java b/altosui/AltosBTKnown.java index 968d72d5..3abbbe08 100644 --- a/altosui/AltosBTKnown.java +++ b/altosui/AltosBTKnown.java @@ -17,8 +17,8 @@ package altosui; import java.util.*; -import org.altusmetrum.altoslib_3.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; public class AltosBTKnown implements Iterable { LinkedList devices = new LinkedList(); diff --git a/altosui/AltosBTManage.java b/altosui/AltosBTManage.java index ad1c28b6..e6e7efd4 100644 --- a/altosui/AltosBTManage.java +++ b/altosui/AltosBTManage.java @@ -23,7 +23,7 @@ import javax.swing.*; import javax.swing.plaf.basic.*; import java.util.*; import java.util.concurrent.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altosuilib_2.*; public class AltosBTManage extends AltosUIDialog implements ActionListener, Iterable { LinkedBlockingQueue found_devices; diff --git a/altosui/AltosCSVUI.java b/altosui/AltosCSVUI.java index 95a8aeea..a0fceee5 100644 --- a/altosui/AltosCSVUI.java +++ b/altosui/AltosCSVUI.java @@ -21,8 +21,8 @@ import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; -import org.altusmetrum.altoslib_3.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; public class AltosCSVUI extends AltosUIDialog diff --git a/altosui/AltosCompanionInfo.java b/altosui/AltosCompanionInfo.java index b90240fb..42413a57 100644 --- a/altosui/AltosCompanionInfo.java +++ b/altosui/AltosCompanionInfo.java @@ -19,7 +19,7 @@ package altosui; import java.awt.*; import javax.swing.*; -import org.altusmetrum.altoslib_3.*; +import org.altusmetrum.altoslib_4.*; public class AltosCompanionInfo extends JTable { private AltosFlightInfoTableModel model; diff --git a/altosui/AltosConfig.java b/altosui/AltosConfig.java index e1805fc1..3128114f 100644 --- a/altosui/AltosConfig.java +++ b/altosui/AltosConfig.java @@ -22,8 +22,8 @@ import javax.swing.*; import java.io.*; import java.util.concurrent.*; import java.text.*; -import org.altusmetrum.altoslib_3.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; public class AltosConfig implements ActionListener { diff --git a/altosui/AltosConfigFreqUI.java b/altosui/AltosConfigFreqUI.java index 663782f0..c7181e14 100644 --- a/altosui/AltosConfigFreqUI.java +++ b/altosui/AltosConfigFreqUI.java @@ -21,8 +21,8 @@ import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.*; -import org.altusmetrum.altoslib_3.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; class AltosEditFreqUI extends AltosUIDialog implements ActionListener { Frame frame; diff --git a/altosui/AltosConfigPyroUI.java b/altosui/AltosConfigPyroUI.java index cd42a3b0..9df2d87d 100644 --- a/altosui/AltosConfigPyroUI.java +++ b/altosui/AltosConfigPyroUI.java @@ -21,8 +21,8 @@ import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; -import org.altusmetrum.altoslib_3.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; public class AltosConfigPyroUI extends AltosUIDialog diff --git a/altosui/AltosConfigTD.java b/altosui/AltosConfigTD.java index ad9ebbfa..bfbd2c77 100644 --- a/altosui/AltosConfigTD.java +++ b/altosui/AltosConfigTD.java @@ -21,8 +21,8 @@ import java.awt.event.*; import javax.swing.*; import java.io.*; import java.util.concurrent.*; -import org.altusmetrum.altoslib_3.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; public class AltosConfigTD implements ActionListener { diff --git a/altosui/AltosConfigTDUI.java b/altosui/AltosConfigTDUI.java index 55d6aed9..22b3384d 100644 --- a/altosui/AltosConfigTDUI.java +++ b/altosui/AltosConfigTDUI.java @@ -21,8 +21,8 @@ import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; -import org.altusmetrum.altoslib_3.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; public class AltosConfigTDUI extends AltosUIDialog diff --git a/altosui/AltosConfigUI.java b/altosui/AltosConfigUI.java index 7f4e1eb0..3ec3cdb0 100644 --- a/altosui/AltosConfigUI.java +++ b/altosui/AltosConfigUI.java @@ -21,8 +21,8 @@ import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; -import org.altusmetrum.altoslib_3.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; public class AltosConfigUI extends AltosUIDialog diff --git a/altosui/AltosConfigureUI.java b/altosui/AltosConfigureUI.java index 80876959..e61a4a5b 100644 --- a/altosui/AltosConfigureUI.java +++ b/altosui/AltosConfigureUI.java @@ -22,7 +22,7 @@ import java.awt.event.*; import java.beans.*; import javax.swing.*; import javax.swing.event.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altosuilib_2.*; public class AltosConfigureUI extends AltosUIConfigure diff --git a/altosui/AltosDataChooser.java b/altosui/AltosDataChooser.java index a9344a01..43726a44 100644 --- a/altosui/AltosDataChooser.java +++ b/altosui/AltosDataChooser.java @@ -20,8 +20,8 @@ package altosui; import javax.swing.*; import javax.swing.filechooser.FileNameExtensionFilter; import java.io.*; -import org.altusmetrum.altoslib_3.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; public class AltosDataChooser extends JFileChooser { JFrame frame; diff --git a/altosui/AltosDescent.java b/altosui/AltosDescent.java index cd993a75..5cb693fe 100644 --- a/altosui/AltosDescent.java +++ b/altosui/AltosDescent.java @@ -19,7 +19,8 @@ package altosui; import java.awt.*; import javax.swing.*; -import org.altusmetrum.altoslib_3.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; public class AltosDescent extends JComponent implements AltosFlightDisplay { GridBagLayout layout; diff --git a/altosui/AltosDeviceUIDialog.java b/altosui/AltosDeviceUIDialog.java index ca34357e..307c77f8 100644 --- a/altosui/AltosDeviceUIDialog.java +++ b/altosui/AltosDeviceUIDialog.java @@ -20,7 +20,7 @@ package altosui; import javax.swing.*; import java.awt.*; import java.awt.event.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altosuilib_2.*; public class AltosDeviceUIDialog extends AltosDeviceDialog { diff --git a/altosui/AltosEepromDelete.java b/altosui/AltosEepromDelete.java index b2d2e291..b6ac7edb 100644 --- a/altosui/AltosEepromDelete.java +++ b/altosui/AltosEepromDelete.java @@ -21,7 +21,7 @@ import java.awt.event.*; import javax.swing.*; import java.io.*; import java.util.concurrent.*; -import org.altusmetrum.altoslib_3.*; +import org.altusmetrum.altoslib_4.*; public class AltosEepromDelete implements Runnable { AltosEepromList flights; diff --git a/altosui/AltosEepromManage.java b/altosui/AltosEepromManage.java index e3635571..aa43ab9e 100644 --- a/altosui/AltosEepromManage.java +++ b/altosui/AltosEepromManage.java @@ -21,8 +21,8 @@ import java.awt.event.*; import javax.swing.*; import java.io.*; import java.util.concurrent.*; -import org.altusmetrum.altoslib_3.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; public class AltosEepromManage implements ActionListener { diff --git a/altosui/AltosEepromMonitor.java b/altosui/AltosEepromMonitor.java index 50921da1..ce1c1625 100644 --- a/altosui/AltosEepromMonitor.java +++ b/altosui/AltosEepromMonitor.java @@ -20,7 +20,7 @@ package altosui; import java.awt.*; import java.awt.event.*; import javax.swing.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altosuilib_2.*; public class AltosEepromMonitor extends AltosUIDialog { diff --git a/altosui/AltosEepromMonitorUI.java b/altosui/AltosEepromMonitorUI.java index c2e925a2..c1c1eb25 100644 --- a/altosui/AltosEepromMonitorUI.java +++ b/altosui/AltosEepromMonitorUI.java @@ -20,8 +20,8 @@ package altosui; import java.awt.*; import java.awt.event.*; import javax.swing.*; -import org.altusmetrum.altosuilib_1.*; -import org.altusmetrum.altoslib_3.*; +import org.altusmetrum.altosuilib_2.*; +import org.altusmetrum.altoslib_4.*; public class AltosEepromMonitorUI extends AltosUIDialog implements AltosEepromMonitor { JFrame owner; diff --git a/altosui/AltosEepromSelect.java b/altosui/AltosEepromSelect.java index b7cdbb72..66a197c9 100644 --- a/altosui/AltosEepromSelect.java +++ b/altosui/AltosEepromSelect.java @@ -21,8 +21,8 @@ import javax.swing.*; import javax.swing.border.*; import java.awt.*; import java.awt.event.*; -import org.altusmetrum.altoslib_3.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; class AltosEepromItem implements ActionListener { AltosEepromLog log; diff --git a/altosui/AltosFlashUI.java b/altosui/AltosFlashUI.java index ff9cb95d..d8c70a06 100644 --- a/altosui/AltosFlashUI.java +++ b/altosui/AltosFlashUI.java @@ -23,8 +23,8 @@ import javax.swing.*; import javax.swing.filechooser.FileNameExtensionFilter; import java.io.*; import java.util.concurrent.*; -import org.altusmetrum.altoslib_3.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; public class AltosFlashUI extends AltosUIDialog diff --git a/altosui/AltosFlightStatsTable.java b/altosui/AltosFlightStatsTable.java index da71154e..e7a8e728 100644 --- a/altosui/AltosFlightStatsTable.java +++ b/altosui/AltosFlightStatsTable.java @@ -19,7 +19,7 @@ package altosui; import java.awt.*; import javax.swing.*; -import org.altusmetrum.altoslib_3.*; +import org.altusmetrum.altoslib_4.*; public class AltosFlightStatsTable extends JComponent { GridBagLayout layout; diff --git a/altosui/AltosFlightStatus.java b/altosui/AltosFlightStatus.java index b467bbde..73b84f8d 100644 --- a/altosui/AltosFlightStatus.java +++ b/altosui/AltosFlightStatus.java @@ -19,7 +19,8 @@ package altosui; import java.awt.*; import javax.swing.*; -import org.altusmetrum.altoslib_3.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; public class AltosFlightStatus extends JComponent implements AltosFlightDisplay { GridBagLayout layout; diff --git a/altosui/AltosFlightStatusTableModel.java b/altosui/AltosFlightStatusTableModel.java index e372d401..b33f40a4 100644 --- a/altosui/AltosFlightStatusTableModel.java +++ b/altosui/AltosFlightStatusTableModel.java @@ -27,7 +27,7 @@ import java.util.*; import java.text.*; import java.util.prefs.*; import java.util.concurrent.LinkedBlockingQueue; -import org.altusmetrum.altoslib_3.*; +import org.altusmetrum.altoslib_4.*; public class AltosFlightStatusTableModel extends AbstractTableModel { private String[] columnNames = { diff --git a/altosui/AltosFlightStatusUpdate.java b/altosui/AltosFlightStatusUpdate.java index 93399a13..0daec04e 100644 --- a/altosui/AltosFlightStatusUpdate.java +++ b/altosui/AltosFlightStatusUpdate.java @@ -18,7 +18,7 @@ package altosui; import java.awt.event.*; -import org.altusmetrum.altoslib_3.*; +import org.altusmetrum.altoslib_4.*; public class AltosFlightStatusUpdate implements ActionListener { diff --git a/altosui/AltosFlightUI.java b/altosui/AltosFlightUI.java index b31de12c..2bd60d6c 100644 --- a/altosui/AltosFlightUI.java +++ b/altosui/AltosFlightUI.java @@ -21,8 +21,8 @@ import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.concurrent.*; -import org.altusmetrum.altoslib_3.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; public class AltosFlightUI extends AltosUIFrame implements AltosFlightDisplay, AltosFontListener { AltosVoice voice; diff --git a/altosui/AltosGraph.java b/altosui/AltosGraph.java index d5c00247..ba3875c6 100644 --- a/altosui/AltosGraph.java +++ b/altosui/AltosGraph.java @@ -22,8 +22,8 @@ import java.util.ArrayList; import java.awt.*; import javax.swing.*; -import org.altusmetrum.altoslib_3.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; import org.jfree.ui.*; import org.jfree.chart.*; diff --git a/altosui/AltosGraphDataPoint.java b/altosui/AltosGraphDataPoint.java index a0b0925c..06a9b62d 100644 --- a/altosui/AltosGraphDataPoint.java +++ b/altosui/AltosGraphDataPoint.java @@ -17,8 +17,8 @@ package altosui; -import org.altusmetrum.altosuilib_1.*; -import org.altusmetrum.altoslib_3.*; +import org.altusmetrum.altosuilib_2.*; +import org.altusmetrum.altoslib_4.*; public class AltosGraphDataPoint implements AltosUIDataPoint { diff --git a/altosui/AltosGraphDataSet.java b/altosui/AltosGraphDataSet.java index d2773a3f..a90c2563 100644 --- a/altosui/AltosGraphDataSet.java +++ b/altosui/AltosGraphDataSet.java @@ -20,8 +20,8 @@ package altosui; import java.lang.*; import java.io.*; import java.util.*; -import org.altusmetrum.altoslib_3.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; class AltosGraphIterator implements Iterator { AltosGraphDataSet dataSet; diff --git a/altosui/AltosGraphUI.java b/altosui/AltosGraphUI.java index 92b9b94a..33e12130 100644 --- a/altosui/AltosGraphUI.java +++ b/altosui/AltosGraphUI.java @@ -9,8 +9,8 @@ import java.util.ArrayList; import java.awt.*; import javax.swing.*; -import org.altusmetrum.altoslib_3.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; diff --git a/altosui/AltosIdleMonitorUI.java b/altosui/AltosIdleMonitorUI.java index 7ca935b6..62b50568 100644 --- a/altosui/AltosIdleMonitorUI.java +++ b/altosui/AltosIdleMonitorUI.java @@ -24,8 +24,8 @@ import javax.swing.event.*; import java.io.*; import java.util.concurrent.*; import java.util.Arrays; -import org.altusmetrum.altoslib_3.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; public class AltosIdleMonitorUI extends AltosUIFrame implements AltosFlightDisplay, AltosFontListener, AltosIdleMonitorListener, DocumentListener { AltosDevice device; diff --git a/altosui/AltosIgniteUI.java b/altosui/AltosIgniteUI.java index 3028bb9c..c251bbe2 100644 --- a/altosui/AltosIgniteUI.java +++ b/altosui/AltosIgniteUI.java @@ -24,8 +24,8 @@ import java.io.*; import java.text.*; import java.util.*; import java.util.concurrent.*; -import org.altusmetrum.altoslib_3.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; public class AltosIgniteUI extends AltosUIDialog diff --git a/altosui/AltosIgnitor.java b/altosui/AltosIgnitor.java index fcab7427..7f79f42b 100644 --- a/altosui/AltosIgnitor.java +++ b/altosui/AltosIgnitor.java @@ -19,7 +19,8 @@ package altosui; import java.awt.*; import javax.swing.*; -import org.altusmetrum.altoslib_3.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; public class AltosIgnitor extends JComponent implements AltosFlightDisplay { GridBagLayout layout; diff --git a/altosui/AltosInfoTable.java b/altosui/AltosInfoTable.java index 3242d652..125fa94c 100644 --- a/altosui/AltosInfoTable.java +++ b/altosui/AltosInfoTable.java @@ -20,7 +20,7 @@ package altosui; import java.awt.*; import javax.swing.*; import javax.swing.table.*; -import org.altusmetrum.altoslib_3.*; +import org.altusmetrum.altoslib_4.*; public class AltosInfoTable extends JTable { private AltosFlightInfoTableModel model; diff --git a/altosui/AltosLanded.java b/altosui/AltosLanded.java index 25d768ad..707d8fcc 100644 --- a/altosui/AltosLanded.java +++ b/altosui/AltosLanded.java @@ -21,7 +21,8 @@ import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; -import org.altusmetrum.altoslib_3.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; public class AltosLanded extends JComponent implements AltosFlightDisplay, ActionListener { GridBagLayout layout; diff --git a/altosui/AltosLaunch.java b/altosui/AltosLaunch.java index 04948ee6..9ac1e44c 100644 --- a/altosui/AltosLaunch.java +++ b/altosui/AltosLaunch.java @@ -20,7 +20,7 @@ package altosui; import java.io.*; import java.util.concurrent.*; import java.awt.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altosuilib_2.*; public class AltosLaunch { AltosDevice device; diff --git a/altosui/AltosLaunchUI.java b/altosui/AltosLaunchUI.java index 4d9fbda5..cc082542 100644 --- a/altosui/AltosLaunchUI.java +++ b/altosui/AltosLaunchUI.java @@ -23,7 +23,7 @@ import javax.swing.*; import java.io.*; import java.text.*; import java.util.concurrent.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altosuilib_2.*; class FireButton extends JButton { protected void processMouseEvent(MouseEvent e) { diff --git a/altosui/AltosPad.java b/altosui/AltosPad.java index 2844b32c..a6ac70db 100644 --- a/altosui/AltosPad.java +++ b/altosui/AltosPad.java @@ -19,7 +19,8 @@ package altosui; import java.awt.*; import javax.swing.*; -import org.altusmetrum.altoslib_3.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; public class AltosPad extends JComponent implements AltosFlightDisplay { GridBagLayout layout; diff --git a/altosui/AltosRomconfigUI.java b/altosui/AltosRomconfigUI.java index 89994679..d2fe54d9 100644 --- a/altosui/AltosRomconfigUI.java +++ b/altosui/AltosRomconfigUI.java @@ -20,8 +20,8 @@ package altosui; import java.awt.*; import java.awt.event.*; import javax.swing.*; -import org.altusmetrum.altoslib_3.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; public class AltosRomconfigUI extends AltosUIDialog diff --git a/altosui/AltosScanUI.java b/altosui/AltosScanUI.java index 5cc74a77..1f1f59ad 100644 --- a/altosui/AltosScanUI.java +++ b/altosui/AltosScanUI.java @@ -25,8 +25,8 @@ import java.io.*; import java.util.*; import java.text.*; import java.util.concurrent.*; -import org.altusmetrum.altoslib_3.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; class AltosScanResult { String callsign; diff --git a/altosui/AltosSerial.java b/altosui/AltosSerial.java index 2c5d2dfd..9b2180ba 100644 --- a/altosui/AltosSerial.java +++ b/altosui/AltosSerial.java @@ -25,8 +25,8 @@ import java.io.*; import java.util.*; import java.awt.*; import javax.swing.*; -import org.altusmetrum.altoslib_3.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; import libaltosJNI.*; diff --git a/altosui/AltosSerialInUseException.java b/altosui/AltosSerialInUseException.java index b45d9157..318155c8 100644 --- a/altosui/AltosSerialInUseException.java +++ b/altosui/AltosSerialInUseException.java @@ -16,7 +16,7 @@ */ package altosui; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altosuilib_2.*; public class AltosSerialInUseException extends Exception { public AltosDevice device; diff --git a/altosui/AltosUI.java b/altosui/AltosUI.java index a1bc83bf..9df02ec9 100644 --- a/altosui/AltosUI.java +++ b/altosui/AltosUI.java @@ -22,8 +22,8 @@ import java.awt.event.*; import javax.swing.*; import java.io.*; import java.util.concurrent.*; -import org.altusmetrum.altoslib_3.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; public class AltosUI extends AltosUIFrame { public AltosVoice voice = new AltosVoice(); diff --git a/altosui/AltosUIPreferencesBackend.java b/altosui/AltosUIPreferencesBackend.java index f85735e8..28047086 100644 --- a/altosui/AltosUIPreferencesBackend.java +++ b/altosui/AltosUIPreferencesBackend.java @@ -19,7 +19,7 @@ package altosui; import java.io.File; import java.util.prefs.*; -import org.altusmetrum.altoslib_3.*; +import org.altusmetrum.altoslib_4.*; import javax.swing.filechooser.FileSystemView; public class AltosUIPreferencesBackend implements AltosPreferencesBackend { diff --git a/altosuilib/AltosDevice.java b/altosuilib/AltosDevice.java index 2461df1b..251ae994 100644 --- a/altosuilib/AltosDevice.java +++ b/altosuilib/AltosDevice.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib_1; +package org.altusmetrum.altosuilib_2; import libaltosJNI.*; diff --git a/altosuilib/AltosDeviceDialog.java b/altosuilib/AltosDeviceDialog.java index 7fb23e13..0bedea97 100644 --- a/altosuilib/AltosDeviceDialog.java +++ b/altosuilib/AltosDeviceDialog.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib_1; +package org.altusmetrum.altosuilib_2; import javax.swing.*; import java.awt.*; diff --git a/altosuilib/AltosFontListener.java b/altosuilib/AltosFontListener.java index da903352..a98cc131 100644 --- a/altosuilib/AltosFontListener.java +++ b/altosuilib/AltosFontListener.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib_1; +package org.altusmetrum.altosuilib_2; public interface AltosFontListener { void font_size_changed(int font_size); diff --git a/altosuilib/AltosPositionListener.java b/altosuilib/AltosPositionListener.java index e75d2de5..34cf1650 100644 --- a/altosuilib/AltosPositionListener.java +++ b/altosuilib/AltosPositionListener.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib_1; +package org.altusmetrum.altosuilib_2; public interface AltosPositionListener { public void position_changed(int position); diff --git a/altosuilib/AltosUIAxis.java b/altosuilib/AltosUIAxis.java index 7bc2def9..74561673 100644 --- a/altosuilib/AltosUIAxis.java +++ b/altosuilib/AltosUIAxis.java @@ -15,14 +15,14 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib_1; +package org.altusmetrum.altosuilib_2; import java.io.*; import java.util.ArrayList; import java.awt.*; import javax.swing.*; -import org.altusmetrum.altoslib_3.*; +import org.altusmetrum.altoslib_4.*; import org.jfree.ui.*; import org.jfree.chart.*; diff --git a/altosuilib/AltosUIConfigure.java b/altosuilib/AltosUIConfigure.java index 153eb8ee..ae7626de 100644 --- a/altosuilib/AltosUIConfigure.java +++ b/altosuilib/AltosUIConfigure.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib_1; +package org.altusmetrum.altosuilib_2; import java.awt.*; import java.awt.event.*; diff --git a/altosuilib/AltosUIDataMissing.java b/altosuilib/AltosUIDataMissing.java index c7b01859..353ff30f 100644 --- a/altosuilib/AltosUIDataMissing.java +++ b/altosuilib/AltosUIDataMissing.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib_1; +package org.altusmetrum.altosuilib_2; public class AltosUIDataMissing extends Exception { public int id; diff --git a/altosuilib/AltosUIDataPoint.java b/altosuilib/AltosUIDataPoint.java index d3020410..3f16500e 100644 --- a/altosuilib/AltosUIDataPoint.java +++ b/altosuilib/AltosUIDataPoint.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib_1; +package org.altusmetrum.altosuilib_2; public interface AltosUIDataPoint { public abstract double x() throws AltosUIDataMissing; diff --git a/altosuilib/AltosUIDataSet.java b/altosuilib/AltosUIDataSet.java index 6f23ef9a..ee70a3fd 100644 --- a/altosuilib/AltosUIDataSet.java +++ b/altosuilib/AltosUIDataSet.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib_1; +package org.altusmetrum.altosuilib_2; public interface AltosUIDataSet { public abstract String name(); diff --git a/altosuilib/AltosUIDialog.java b/altosuilib/AltosUIDialog.java index e1e699a7..dc737414 100644 --- a/altosuilib/AltosUIDialog.java +++ b/altosuilib/AltosUIDialog.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib_1; +package org.altusmetrum.altosuilib_2; import java.awt.*; import java.awt.event.*; diff --git a/altosuilib/AltosUIEnable.java b/altosuilib/AltosUIEnable.java index 40b5f087..8d42c09b 100644 --- a/altosuilib/AltosUIEnable.java +++ b/altosuilib/AltosUIEnable.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib_1; +package org.altusmetrum.altosuilib_2; import java.awt.*; import java.awt.event.*; @@ -23,7 +23,7 @@ import javax.swing.*; import java.io.*; import java.util.concurrent.*; import java.util.*; -import org.altusmetrum.altoslib_3.*; +import org.altusmetrum.altoslib_4.*; import org.jfree.ui.*; import org.jfree.chart.*; diff --git a/altosuilib/AltosUIFrame.java b/altosuilib/AltosUIFrame.java index 3dc2a0ad..ce86ad83 100644 --- a/altosuilib/AltosUIFrame.java +++ b/altosuilib/AltosUIFrame.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib_1; +package org.altusmetrum.altosuilib_2; import java.awt.*; import java.awt.event.*; diff --git a/altosuilib/AltosUIGraph.java b/altosuilib/AltosUIGraph.java index 21e13cf6..909c471b 100644 --- a/altosuilib/AltosUIGraph.java +++ b/altosuilib/AltosUIGraph.java @@ -15,14 +15,14 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib_1; +package org.altusmetrum.altosuilib_2; import java.io.*; import java.util.ArrayList; import java.awt.*; import javax.swing.*; -import org.altusmetrum.altoslib_3.*; +import org.altusmetrum.altoslib_4.*; import org.jfree.ui.*; import org.jfree.chart.*; diff --git a/altosuilib/AltosUIGrapher.java b/altosuilib/AltosUIGrapher.java index 54f8d5a9..724fac18 100644 --- a/altosuilib/AltosUIGrapher.java +++ b/altosuilib/AltosUIGrapher.java @@ -15,14 +15,14 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib_1; +package org.altusmetrum.altosuilib_2; import java.io.*; import java.util.ArrayList; import java.awt.*; import javax.swing.*; -import org.altusmetrum.altoslib_3.*; +import org.altusmetrum.altoslib_4.*; import org.jfree.ui.*; import org.jfree.chart.*; diff --git a/altosuilib/AltosUILib.java b/altosuilib/AltosUILib.java index 76782e2e..b51c5963 100644 --- a/altosuilib/AltosUILib.java +++ b/altosuilib/AltosUILib.java @@ -15,12 +15,12 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib_1; +package org.altusmetrum.altosuilib_2; import java.awt.*; import libaltosJNI.*; -import org.altusmetrum.altoslib_3.*; +import org.altusmetrum.altoslib_4.*; public class AltosUILib extends AltosLib { diff --git a/altosuilib/AltosUIListener.java b/altosuilib/AltosUIListener.java index 450dc0bf..75a0ad94 100644 --- a/altosuilib/AltosUIListener.java +++ b/altosuilib/AltosUIListener.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib_1; +package org.altusmetrum.altosuilib_2; public interface AltosUIListener { public void ui_changed(String look_and_feel); diff --git a/altosuilib/AltosUIMarker.java b/altosuilib/AltosUIMarker.java index efd27921..cd6fa589 100644 --- a/altosuilib/AltosUIMarker.java +++ b/altosuilib/AltosUIMarker.java @@ -15,14 +15,14 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib_1; +package org.altusmetrum.altosuilib_2; import java.io.*; import java.util.ArrayList; import java.awt.*; import javax.swing.*; -import org.altusmetrum.altoslib_3.*; +import org.altusmetrum.altoslib_4.*; import org.jfree.ui.*; import org.jfree.chart.*; diff --git a/altosuilib/AltosUIPreferences.java b/altosuilib/AltosUIPreferences.java index 4c995f80..7a582a7d 100644 --- a/altosuilib/AltosUIPreferences.java +++ b/altosuilib/AltosUIPreferences.java @@ -15,13 +15,13 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib_1; +package org.altusmetrum.altosuilib_2; import java.io.*; import java.util.*; import java.awt.Component; import javax.swing.*; -import org.altusmetrum.altoslib_3.*; +import org.altusmetrum.altoslib_4.*; public class AltosUIPreferences extends AltosPreferences { diff --git a/altosuilib/AltosUIPreferencesBackend.java b/altosuilib/AltosUIPreferencesBackend.java index d6575717..da29253d 100644 --- a/altosuilib/AltosUIPreferencesBackend.java +++ b/altosuilib/AltosUIPreferencesBackend.java @@ -15,11 +15,11 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib_1; +package org.altusmetrum.altosuilib_2; import java.io.File; import java.util.prefs.*; -import org.altusmetrum.altoslib_3.*; +import org.altusmetrum.altoslib_4.*; import javax.swing.filechooser.FileSystemView; public class AltosUIPreferencesBackend implements AltosPreferencesBackend { diff --git a/altosuilib/AltosUISeries.java b/altosuilib/AltosUISeries.java index 10ea1614..b0632d18 100644 --- a/altosuilib/AltosUISeries.java +++ b/altosuilib/AltosUISeries.java @@ -15,14 +15,14 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib_1; +package org.altusmetrum.altosuilib_2; import java.io.*; import java.util.ArrayList; import java.awt.*; import javax.swing.*; -import org.altusmetrum.altoslib_3.*; +import org.altusmetrum.altoslib_4.*; import org.jfree.ui.*; import org.jfree.chart.*; diff --git a/altosuilib/AltosUIVersion.java.in b/altosuilib/AltosUIVersion.java.in index 169cca1b..3f629560 100644 --- a/altosuilib/AltosUIVersion.java.in +++ b/altosuilib/AltosUIVersion.java.in @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib_1; +package org.altusmetrum.altosuilib_2; public class AltosUIVersion { public final static String version = "@VERSION@"; diff --git a/altosuilib/AltosUSBDevice.java b/altosuilib/AltosUSBDevice.java index 4f329840..b70b5e83 100644 --- a/altosuilib/AltosUSBDevice.java +++ b/altosuilib/AltosUSBDevice.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib_1; +package org.altusmetrum.altosuilib_2; import java.util.*; import libaltosJNI.*; diff --git a/configure.ac b/configure.ac index 01867e9f..d2d87754 100644 --- a/configure.ac +++ b/configure.ac @@ -29,8 +29,8 @@ AC_SUBST(VERSION_DASH) dnl ========================================================================== dnl Java library versions -ALTOSUILIB_VERSION=1 -ALTOSLIB_VERSION=3 +ALTOSUILIB_VERSION=2 +ALTOSLIB_VERSION=4 AC_SUBST(ALTOSLIB_VERSION) AC_DEFINE(ALTOSLIB_VERSION,$ALTOSLIB_VERSION,[Version of the AltosLib package]) diff --git a/micropeak/MicroData.java b/micropeak/MicroData.java index e786ff1e..ca211f16 100644 --- a/micropeak/MicroData.java +++ b/micropeak/MicroData.java @@ -20,8 +20,8 @@ package org.altusmetrum.micropeak; import java.lang.*; import java.io.*; import java.util.*; -import org.altusmetrum.altoslib_3.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; class MicroIterator implements Iterator { int i; diff --git a/micropeak/MicroDataPoint.java b/micropeak/MicroDataPoint.java index 61faf794..5a5e8c37 100644 --- a/micropeak/MicroDataPoint.java +++ b/micropeak/MicroDataPoint.java @@ -17,7 +17,7 @@ package org.altusmetrum.micropeak; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altosuilib_2.*; public class MicroDataPoint implements AltosUIDataPoint { public double time; diff --git a/micropeak/MicroDeviceDialog.java b/micropeak/MicroDeviceDialog.java index 533605d6..305421a7 100644 --- a/micropeak/MicroDeviceDialog.java +++ b/micropeak/MicroDeviceDialog.java @@ -21,7 +21,7 @@ import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altosuilib_2.*; public class MicroDeviceDialog extends AltosDeviceDialog { diff --git a/micropeak/MicroDownload.java b/micropeak/MicroDownload.java index 7d2e9eb4..1c70e1d1 100644 --- a/micropeak/MicroDownload.java +++ b/micropeak/MicroDownload.java @@ -23,8 +23,8 @@ import javax.swing.*; import java.io.*; import java.util.concurrent.*; import java.util.*; -import org.altusmetrum.altoslib_3.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; public class MicroDownload extends AltosUIDialog implements Runnable, ActionListener, MicroSerialLog, WindowListener { MicroPeak owner; diff --git a/micropeak/MicroExport.java b/micropeak/MicroExport.java index c170f544..87d5499b 100644 --- a/micropeak/MicroExport.java +++ b/micropeak/MicroExport.java @@ -23,8 +23,8 @@ import java.util.ArrayList; import java.awt.*; import javax.swing.*; import javax.swing.filechooser.FileNameExtensionFilter; -import org.altusmetrum.altoslib_3.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; public class MicroExport extends JFileChooser { diff --git a/micropeak/MicroFile.java b/micropeak/MicroFile.java index b6a9d401..019346ae 100644 --- a/micropeak/MicroFile.java +++ b/micropeak/MicroFile.java @@ -19,8 +19,8 @@ package org.altusmetrum.micropeak; import java.io.*; import java.util.*; -import org.altusmetrum.altoslib_3.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; public class MicroFile { diff --git a/micropeak/MicroFileChooser.java b/micropeak/MicroFileChooser.java index 595d1ff7..00b6690a 100644 --- a/micropeak/MicroFileChooser.java +++ b/micropeak/MicroFileChooser.java @@ -20,8 +20,8 @@ package org.altusmetrum.micropeak; import javax.swing.*; import javax.swing.filechooser.FileNameExtensionFilter; import java.io.*; -import org.altusmetrum.altoslib_3.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; public class MicroFileChooser extends JFileChooser { JFrame frame; diff --git a/micropeak/MicroFrame.java b/micropeak/MicroFrame.java index ef8b24cc..5bfe5bf7 100644 --- a/micropeak/MicroFrame.java +++ b/micropeak/MicroFrame.java @@ -21,7 +21,7 @@ import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altosuilib_2.*; public class MicroFrame extends AltosUIFrame { static String[] micro_icon_names = { diff --git a/micropeak/MicroGraph.java b/micropeak/MicroGraph.java index 5960fe4d..f9968919 100644 --- a/micropeak/MicroGraph.java +++ b/micropeak/MicroGraph.java @@ -22,8 +22,8 @@ import java.util.ArrayList; import java.awt.*; import javax.swing.*; -import org.altusmetrum.altoslib_3.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; import org.jfree.ui.*; import org.jfree.chart.*; diff --git a/micropeak/MicroPeak.java b/micropeak/MicroPeak.java index 78bc857e..19e91660 100644 --- a/micropeak/MicroPeak.java +++ b/micropeak/MicroPeak.java @@ -23,8 +23,8 @@ import javax.swing.*; import java.io.*; import java.util.concurrent.*; import java.util.*; -import org.altusmetrum.altoslib_3.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; public class MicroPeak extends MicroFrame implements ActionListener, ItemListener { diff --git a/micropeak/MicroRaw.java b/micropeak/MicroRaw.java index d64da387..26d62012 100644 --- a/micropeak/MicroRaw.java +++ b/micropeak/MicroRaw.java @@ -20,8 +20,8 @@ package org.altusmetrum.micropeak; import java.awt.*; import java.io.*; import javax.swing.*; -import org.altusmetrum.altoslib_3.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; public class MicroRaw extends JTextArea { diff --git a/micropeak/MicroSave.java b/micropeak/MicroSave.java index 0addfa88..7c5d6abe 100644 --- a/micropeak/MicroSave.java +++ b/micropeak/MicroSave.java @@ -24,8 +24,8 @@ import javax.swing.filechooser.FileNameExtensionFilter; import java.io.*; import java.util.concurrent.*; import java.util.*; -import org.altusmetrum.altoslib_3.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; public class MicroSave extends JFileChooser { diff --git a/micropeak/MicroSerial.java b/micropeak/MicroSerial.java index 39f421ec..37b68636 100644 --- a/micropeak/MicroSerial.java +++ b/micropeak/MicroSerial.java @@ -20,7 +20,7 @@ package org.altusmetrum.micropeak; import java.util.*; import java.io.*; import libaltosJNI.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altosuilib_2.*; public class MicroSerial extends InputStream { SWIGTYPE_p_altos_file file; diff --git a/micropeak/MicroSerialLog.java b/micropeak/MicroSerialLog.java index 0a5a0b91..7300f06d 100644 --- a/micropeak/MicroSerialLog.java +++ b/micropeak/MicroSerialLog.java @@ -20,7 +20,7 @@ package org.altusmetrum.micropeak; import java.util.*; import java.io.*; import libaltosJNI.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altosuilib_2.*; public interface MicroSerialLog { diff --git a/micropeak/MicroStats.java b/micropeak/MicroStats.java index 765525b0..45c9f225 100644 --- a/micropeak/MicroStats.java +++ b/micropeak/MicroStats.java @@ -18,8 +18,8 @@ package org.altusmetrum.micropeak; import java.io.*; -import org.altusmetrum.altoslib_3.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; public class MicroStats { double coast_height; diff --git a/micropeak/MicroStatsTable.java b/micropeak/MicroStatsTable.java index ea1609ac..268a7ff0 100644 --- a/micropeak/MicroStatsTable.java +++ b/micropeak/MicroStatsTable.java @@ -19,8 +19,8 @@ package org.altusmetrum.micropeak; import java.awt.*; import javax.swing.*; -import org.altusmetrum.altoslib_3.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; public class MicroStatsTable extends JComponent implements AltosFontListener { GridBagLayout layout; diff --git a/micropeak/MicroUSB.java b/micropeak/MicroUSB.java index 3bd61470..437fa0bc 100644 --- a/micropeak/MicroUSB.java +++ b/micropeak/MicroUSB.java @@ -19,7 +19,7 @@ package org.altusmetrum.micropeak; import java.util.*; import libaltosJNI.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altosuilib_2.*; public class MicroUSB extends altos_device implements AltosDevice { -- cgit v1.2.3 From 2d9842ee011139f5783a102ceb2b7f4c88b1a10f Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Fri, 30 May 2014 17:17:42 -0700 Subject: telegps: Add config for tracker starting distances Signed-off-by: Keith Packard --- altoslib/AltosConfigData.java | 30 ++++++ altoslib/AltosConfigValues.java | 4 + altosui/AltosConfigUI.java | 171 ++++++++++++++++++++++++++++++++++ telegps/TeleGPSConfigUI.java | 199 +++++++++++++++++++++++++++++++++++----- 4 files changed, 381 insertions(+), 23 deletions(-) (limited to 'altoslib/AltosConfigData.java') diff --git a/altoslib/AltosConfigData.java b/altoslib/AltosConfigData.java index e5c546ff..83c184cd 100644 --- a/altoslib/AltosConfigData.java +++ b/altoslib/AltosConfigData.java @@ -80,6 +80,9 @@ public class AltosConfigData implements Iterable { /* Log listing replies */ public int stored_flight; + /* HAS_TRACKER */ + public int[] tracker_distances; + public static String get_string(String line, String label) throws ParseException { if (line.startsWith(label)) { String quoted = line.substring(label.length()).trim(); @@ -103,6 +106,20 @@ public class AltosConfigData implements Iterable { throw new ParseException("mismatch", 0); } + public static int[] get_distances(String line, String label) throws NumberFormatException, ParseException { + if (line.startsWith(label)) { + String tail = line.substring(label.length()).trim(); + String[] tokens = tail.split("\\s+"); + if (tokens.length > 1) { + int[] distances = new int[2]; + distances[0] = Integer.parseInt(tokens[0]); + distances[1] = Integer.parseInt(tokens[1]); + return distances; + } + } + throw new ParseException("mismatch", 0); + } + public Iterator iterator() { return lines.iterator(); } @@ -215,6 +232,8 @@ public class AltosConfigData implements Iterable { beep = -1; + tracker_distances = null; + storage_size = -1; storage_erase_unit = -1; stored_flight = 0; @@ -294,6 +313,9 @@ public class AltosConfigData implements Iterable { /* HAS_BEEP */ try { beep = get_int(line, "Beeper setting:"); } catch (Exception e) {} + /* HAS_TRACKER */ + try { tracker_distances = get_distances(line, "Tracker setting:"); } catch (Exception e) {} + /* Storage info replies */ try { storage_size = get_int(line, "Storage size:"); } catch (Exception e) {} try { storage_erase_unit = get_int(line, "Storage erase unit:"); } catch (Exception e) {} @@ -424,6 +446,9 @@ public class AltosConfigData implements Iterable { /* HAS_BEEP */ if (beep >= 0) beep = source.beep(); + /* HAS_TRACKER */ + if (tracker_distances != null) + tracker_distances = source.tracker_distances(); } public void set_values(AltosConfigValues dest) { @@ -463,6 +488,7 @@ public class AltosConfigData implements Iterable { dest.set_pyros(null); dest.set_aprs_interval(aprs_interval); dest.set_beep(beep); + dest.set_tracker_distances(tracker_distances); } public void save(AltosLink link, boolean remote) throws InterruptedException, TimeoutException { @@ -533,6 +559,10 @@ public class AltosConfigData implements Iterable { if (beep >= 0) link.printf("c b %d\n", beep); + /* HAS_TRACKER */ + if (tracker_distances != null) + link.printf("c t %d %d\n", tracker_distances[0], tracker_distances[1]); + link.printf("c w\n"); link.flush_output(); } diff --git a/altoslib/AltosConfigValues.java b/altoslib/AltosConfigValues.java index b7c0c6ed..37af2ed5 100644 --- a/altoslib/AltosConfigValues.java +++ b/altoslib/AltosConfigValues.java @@ -80,4 +80,8 @@ public interface AltosConfigValues { public abstract int beep(); public abstract void set_beep(int new_beep); + + public abstract int[] tracker_distances(); + + public abstract void set_tracker_distances(int[] tracker_distances); } diff --git a/altosui/AltosConfigUI.java b/altosui/AltosConfigUI.java index 3ec3cdb0..2a9d727d 100644 --- a/altosui/AltosConfigUI.java +++ b/altosui/AltosConfigUI.java @@ -46,6 +46,8 @@ public class AltosConfigUI JLabel pad_orientation_label; JLabel callsign_label; JLabel beep_label; + JLabel tracker_horiz_label; + JLabel tracker_vert_label; public boolean dirty; @@ -65,6 +67,8 @@ public class AltosConfigUI JComboBox pad_orientation_value; JTextField callsign_value; JComboBox beep_value; + JComboBox tracker_horiz_value; + JComboBox tracker_vert_value; JButton pyro; @@ -125,6 +129,34 @@ public class AltosConfigUI "Antenna Down", }; + static String[] tracker_horiz_values_m = { + "250", + "500", + "1000", + "2000" + }; + + static String[] tracker_horiz_values_ft = { + "500", + "1000", + "2500", + "5000" + }; + + static String[] tracker_vert_values_m = { + "25", + "50", + "100", + "200" + }; + + static String[] tracker_vert_values_ft = { + "50", + "100", + "250", + "500" + }; + /* A window listener to catch closing events and tell the config code */ class ConfigListener extends WindowAdapter { AltosConfigUI ui; @@ -610,6 +642,57 @@ public class AltosConfigUI set_beep_tool_tip(); row++; + /* Tracker triger horiz distances */ + c = new GridBagConstraints(); + c.gridx = 0; c.gridy = row; + c.gridwidth = 4; + c.fill = GridBagConstraints.NONE; + c.anchor = GridBagConstraints.LINE_START; + c.insets = il; + c.ipady = 5; + tracker_horiz_label = new JLabel(get_tracker_horiz_label()); + pane.add(tracker_horiz_label, c); + + c = new GridBagConstraints(); + c.gridx = 4; c.gridy = row; + c.gridwidth = 4; + c.fill = GridBagConstraints.HORIZONTAL; + c.weightx = 1; + c.anchor = GridBagConstraints.LINE_START; + c.insets = ir; + c.ipady = 5; + tracker_horiz_value = new JComboBox(tracker_horiz_values()); + tracker_horiz_value.setEditable(true); + tracker_horiz_value.addItemListener(this); + pane.add(tracker_horiz_value, c); + row++; + + /* Tracker triger vert distances */ + c = new GridBagConstraints(); + c.gridx = 0; c.gridy = row; + c.gridwidth = 4; + c.fill = GridBagConstraints.NONE; + c.anchor = GridBagConstraints.LINE_START; + c.insets = il; + c.ipady = 5; + tracker_vert_label = new JLabel(get_tracker_vert_label()); + pane.add(tracker_vert_label, c); + + c = new GridBagConstraints(); + c.gridx = 4; c.gridy = row; + c.gridwidth = 4; + c.fill = GridBagConstraints.HORIZONTAL; + c.weightx = 1; + c.anchor = GridBagConstraints.LINE_START; + c.insets = ir; + c.ipady = 5; + tracker_vert_value = new JComboBox(tracker_vert_values()); + tracker_vert_value.setEditable(true); + tracker_vert_value.addItemListener(this); + pane.add(tracker_vert_value, c); + set_tracker_tool_tip(); + row++; + /* Pyro channels */ c = new GridBagConstraints(); c.gridx = 4; c.gridy = row; @@ -814,6 +897,20 @@ public class AltosConfigUI set_main_deploy_values(); int m = (int) (AltosConvert.height.parse(v, !imperial_units) + 0.5); set_main_deploy(m); + + if (tracker_horiz_value.isEnabled() && tracker_vert_value.isEnabled()) { + String th = tracker_horiz_value.getSelectedItem().toString(); + String tv = tracker_vert_value.getSelectedItem().toString(); + tracker_horiz_label.setText(get_tracker_horiz_label()); + tracker_vert_label.setText(get_tracker_vert_label()); + set_tracker_horiz_values(); + set_tracker_vert_values(); + int[] t = { + (int) (AltosConvert.height.parse(th, !imperial_units) + 0.5), + (int) (AltosConvert.height.parse(tv, !imperial_units) + 0.5) + }; + set_tracker_distances(t); + } } public void set_apogee_delay(int new_apogee_delay) { @@ -969,6 +1066,80 @@ public class AltosConfigUI return -1; } + String[] tracker_horiz_values() { + if (AltosConvert.imperial_units) + return tracker_horiz_values_ft; + else + return tracker_horiz_values_m; + } + + void set_tracker_horiz_values() { + String[] v = tracker_horiz_values(); + while (tracker_horiz_value.getItemCount() > 0) + tracker_horiz_value.removeItemAt(0); + for (int i = 0; i < v.length; i++) + tracker_horiz_value.addItem(v[i]); + tracker_horiz_value.setMaximumRowCount(v.length); + } + + String get_tracker_horiz_label() { + return String.format("Logging Trigger Horizontal (%s):", AltosConvert.height.show_units()); + } + + String[] tracker_vert_values() { + if (AltosConvert.imperial_units) + return tracker_vert_values_ft; + else + return tracker_vert_values_m; + } + + void set_tracker_vert_values() { + String[] v = tracker_vert_values(); + while (tracker_vert_value.getItemCount() > 0) + tracker_vert_value.removeItemAt(0); + for (int i = 0; i < v.length; i++) + tracker_vert_value.addItem(v[i]); + tracker_vert_value.setMaximumRowCount(v.length); + } + + void set_tracker_tool_tip() { + if (tracker_horiz_value.isEnabled()) + tracker_horiz_value.setToolTipText("How far the device must move before logging is enabled"); + else + tracker_horiz_value.setToolTipText("This device doesn't disable logging before motion"); + if (tracker_vert_value.isEnabled()) + tracker_vert_value.setToolTipText("How far the device must move before logging is enabled"); + else + tracker_vert_value.setToolTipText("This device doesn't disable logging before motion"); + } + + String get_tracker_vert_label() { + return String.format("Logging Trigger Vertical (%s):", AltosConvert.height.show_units()); + } + + public void set_tracker_distances(int[] tracker_distances) { + if (tracker_distances != null) { + tracker_horiz_value.setSelectedItem(AltosConvert.height.say(tracker_distances[0])); + tracker_vert_value.setSelectedItem(AltosConvert.height.say(tracker_distances[1])); + tracker_horiz_value.setEnabled(true); + tracker_vert_value.setEnabled(true); + } else { + tracker_horiz_value.setEnabled(false); + tracker_vert_value.setEnabled(false); + } + } + + public int[] tracker_distances() { + if (tracker_horiz_value.isEnabled() && tracker_vert_value.isEnabled()) { + int[] t = { + (int) (AltosConvert.height.parse(tracker_horiz_value.getSelectedItem().toString()) + 0.5), + (int) (AltosConvert.height.parse(tracker_vert_value.getSelectedItem().toString()) + 0.5), + }; + return t; + } + return null; + } + public void set_pyros(AltosPyro[] new_pyros) { pyros = new_pyros; pyro.setVisible(pyros != null); diff --git a/telegps/TeleGPSConfigUI.java b/telegps/TeleGPSConfigUI.java index d1f66eef..863d61bb 100644 --- a/telegps/TeleGPSConfigUI.java +++ b/telegps/TeleGPSConfigUI.java @@ -26,7 +26,7 @@ import org.altusmetrum.altosuilib_2.*; public class TeleGPSConfigUI extends AltosUIDialog - implements ActionListener, ItemListener, DocumentListener, AltosConfigValues + implements ActionListener, ItemListener, DocumentListener, AltosConfigValues, AltosUnitsListener { Container pane; @@ -40,6 +40,8 @@ public class TeleGPSConfigUI JLabel aprs_interval_label; JLabel flight_log_max_label; JLabel callsign_label; + JLabel tracker_horiz_label; + JLabel tracker_vert_label; public boolean dirty; @@ -53,6 +55,8 @@ public class TeleGPSConfigUI JComboBox aprs_interval_value; JComboBox flight_log_max_value; JTextField callsign_value; + JComboBox tracker_horiz_value; + JComboBox tracker_vert_value; JButton save; JButton reset; @@ -74,6 +78,34 @@ public class TeleGPSConfigUI "10" }; + static String[] tracker_horiz_values_m = { + "250", + "500", + "1000", + "2000" + }; + + static String[] tracker_horiz_values_ft = { + "500", + "1000", + "2500", + "5000" + }; + + static String[] tracker_vert_values_m = { + "25", + "50", + "100", + "200" + }; + + static String[] tracker_vert_values_ft = { + "50", + "100", + "250", + "500" + }; + /* A window listener to catch closing events and tell the config code */ class ConfigListener extends WindowAdapter { TeleGPSConfigUI ui; @@ -362,6 +394,57 @@ public class TeleGPSConfigUI set_flight_log_max_tool_tip(); row++; + /* Tracker triger horiz distances */ + c = new GridBagConstraints(); + c.gridx = 0; c.gridy = row; + c.gridwidth = 4; + c.fill = GridBagConstraints.NONE; + c.anchor = GridBagConstraints.LINE_START; + c.insets = il; + c.ipady = 5; + tracker_horiz_label = new JLabel(get_tracker_horiz_label()); + pane.add(tracker_horiz_label, c); + + c = new GridBagConstraints(); + c.gridx = 4; c.gridy = row; + c.gridwidth = 4; + c.fill = GridBagConstraints.HORIZONTAL; + c.weightx = 1; + c.anchor = GridBagConstraints.LINE_START; + c.insets = ir; + c.ipady = 5; + tracker_horiz_value = new JComboBox(tracker_horiz_values()); + tracker_horiz_value.setEditable(true); + tracker_horiz_value.addItemListener(this); + pane.add(tracker_horiz_value, c); + row++; + + /* Tracker triger vert distances */ + c = new GridBagConstraints(); + c.gridx = 0; c.gridy = row; + c.gridwidth = 4; + c.fill = GridBagConstraints.NONE; + c.anchor = GridBagConstraints.LINE_START; + c.insets = il; + c.ipady = 5; + tracker_vert_label = new JLabel(get_tracker_vert_label()); + pane.add(tracker_vert_label, c); + + c = new GridBagConstraints(); + c.gridx = 4; c.gridy = row; + c.gridwidth = 4; + c.fill = GridBagConstraints.HORIZONTAL; + c.weightx = 1; + c.anchor = GridBagConstraints.LINE_START; + c.insets = ir; + c.ipady = 5; + tracker_vert_value = new JComboBox(tracker_vert_values()); + tracker_vert_value.setEditable(true); + tracker_vert_value.addItemListener(this); + pane.add(tracker_vert_value, c); + set_tracker_tool_tip(); + row++; + /* Buttons */ c = new GridBagConstraints(); c.gridx = 0; c.gridy = row; @@ -408,6 +491,7 @@ public class TeleGPSConfigUI close.setActionCommand("Close"); addWindowListener(new ConfigListener(this)); + AltosPreferences.register_units_listener(this); } /* Once the initial values are set, the config code will show the dialog */ @@ -445,6 +529,7 @@ public class TeleGPSConfigUI } public void dispose() { + AltosPreferences.unregister_units_listener(this); super.dispose(); } @@ -486,6 +571,22 @@ public class TeleGPSConfigUI listener = l; } + public void units_changed(boolean imperial_units) { + if (tracker_horiz_value.isEnabled() && tracker_vert_value.isEnabled()) { + String th = tracker_horiz_value.getSelectedItem().toString(); + String tv = tracker_vert_value.getSelectedItem().toString(); + tracker_horiz_label.setText(get_tracker_horiz_label()); + tracker_vert_label.setText(get_tracker_vert_label()); + set_tracker_horiz_values(); + set_tracker_vert_values(); + int[] t = { + (int) (AltosConvert.height.parse(th, !imperial_units) + 0.5), + (int) (AltosConvert.height.parse(tv, !imperial_units) + 0.5) + }; + set_tracker_distances(t); + } + } + /* set and get all of the dialog values */ public void set_product(String product) { radio_frequency_value.set_product(product); @@ -509,28 +610,6 @@ public class TeleGPSConfigUI return -1; } -/* - String get_main_deploy_label() { - return String.format("Main Deploy Altitude(%s):", AltosConvert.height.show_units()); - } - - String[] main_deploy_values() { - if (AltosConvert.imperial_units) - return main_deploy_values_ft; - else - return main_deploy_values_m; - } - - void set_main_deploy_values() { - String[] v = main_deploy_values(); - while (main_deploy_value.getItemCount() > 0) - main_deploy_value.removeItemAt(0); - for (int i = 0; i < v.length; i++) - main_deploy_value.addItem(v[i]); - main_deploy_value.setMaximumRowCount(v.length); - } -*/ - public void set_apogee_delay(int new_apogee_delay) { } public int apogee_delay() { @@ -626,6 +705,80 @@ public class TeleGPSConfigUI public int beep() { return -1; } + String[] tracker_horiz_values() { + if (AltosConvert.imperial_units) + return tracker_horiz_values_ft; + else + return tracker_horiz_values_m; + } + + void set_tracker_horiz_values() { + String[] v = tracker_horiz_values(); + while (tracker_horiz_value.getItemCount() > 0) + tracker_horiz_value.removeItemAt(0); + for (int i = 0; i < v.length; i++) + tracker_horiz_value.addItem(v[i]); + tracker_horiz_value.setMaximumRowCount(v.length); + } + + String get_tracker_horiz_label() { + return String.format("Logging Trigger Horizontal (%s):", AltosConvert.height.show_units()); + } + + String[] tracker_vert_values() { + if (AltosConvert.imperial_units) + return tracker_vert_values_ft; + else + return tracker_vert_values_m; + } + + void set_tracker_vert_values() { + String[] v = tracker_vert_values(); + while (tracker_vert_value.getItemCount() > 0) + tracker_vert_value.removeItemAt(0); + for (int i = 0; i < v.length; i++) + tracker_vert_value.addItem(v[i]); + tracker_vert_value.setMaximumRowCount(v.length); + } + + void set_tracker_tool_tip() { + if (tracker_horiz_value.isEnabled()) + tracker_horiz_value.setToolTipText("How far the device must move before logging is enabled"); + else + tracker_horiz_value.setToolTipText("This device doesn't disable logging before motion"); + if (tracker_vert_value.isEnabled()) + tracker_vert_value.setToolTipText("How far the device must move before logging is enabled"); + else + tracker_vert_value.setToolTipText("This device doesn't disable logging before motion"); + } + + String get_tracker_vert_label() { + return String.format("Logging Trigger Vertical (%s):", AltosConvert.height.show_units()); + } + + public void set_tracker_distances(int[] tracker_distances) { + if (tracker_distances != null) { + tracker_horiz_value.setSelectedItem(AltosConvert.height.say(tracker_distances[0])); + tracker_vert_value.setSelectedItem(AltosConvert.height.say(tracker_distances[1])); + tracker_horiz_value.setEnabled(true); + tracker_vert_value.setEnabled(true); + } else { + tracker_horiz_value.setEnabled(false); + tracker_vert_value.setEnabled(false); + } + } + + public int[] tracker_distances() { + if (tracker_horiz_value.isEnabled() && tracker_vert_value.isEnabled()) { + int[] t = { + (int) (AltosConvert.height.parse(tracker_horiz_value.getSelectedItem().toString()) + 0.5), + (int) (AltosConvert.height.parse(tracker_vert_value.getSelectedItem().toString()) + 0.5), + }; + return t; + } + return null; + } + public void set_aprs_interval(int new_aprs_interval) { String s; -- cgit v1.2.3 From ace5f42b5567cff07a61b622171ac364ea8c165d Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Mon, 2 Jun 2014 22:07:39 -0700 Subject: altosui: Display error message when parsing pyro channel values fails Build an exception handling chain to get numeric parse errors propagated all the way back to the original 'save' command and up into a dialog window, including the pyro channel, field and value that were in error. Signed-off-by: Keith Packard --- altoslib/AltosConfigData.java | 2 +- altoslib/AltosConfigValues.java | 2 +- altoslib/Makefile.am | 1 + altosui/AltosConfig.java | 14 ++++++++++---- altosui/AltosConfigPyroUI.java | 31 +++++++++++++++++++++++-------- altosui/AltosConfigUI.java | 2 +- 6 files changed, 37 insertions(+), 15 deletions(-) (limited to 'altoslib/AltosConfigData.java') diff --git a/altoslib/AltosConfigData.java b/altoslib/AltosConfigData.java index 83c184cd..2f36e215 100644 --- a/altoslib/AltosConfigData.java +++ b/altoslib/AltosConfigData.java @@ -403,7 +403,7 @@ public class AltosConfigData implements Iterable { return 1024; } - public void get_values(AltosConfigValues source) { + public void get_values(AltosConfigValues source) throws AltosConfigDataException { /* HAS_FLIGHT */ if (main_deploy >= 0) diff --git a/altoslib/AltosConfigValues.java b/altoslib/AltosConfigValues.java index 37af2ed5..6ca1f5c6 100644 --- a/altoslib/AltosConfigValues.java +++ b/altoslib/AltosConfigValues.java @@ -71,7 +71,7 @@ public interface AltosConfigValues { public abstract void set_pyros(AltosPyro[] new_pyros); - public abstract AltosPyro[] pyros(); + public abstract AltosPyro[] pyros() throws AltosConfigDataException; public abstract int aprs_interval(); diff --git a/altoslib/Makefile.am b/altoslib/Makefile.am index bff09704..0f1d7a47 100644 --- a/altoslib/Makefile.am +++ b/altoslib/Makefile.am @@ -28,6 +28,7 @@ altoslib_JAVA = \ AltosLib.java \ AltosCompanion.java \ AltosConfigData.java \ + AltosConfigDataException.java \ AltosConfigValues.java \ AltosConvert.java \ AltosCRCException.java \ diff --git a/altosui/AltosConfig.java b/altosui/AltosConfig.java index 3128114f..2cf69525 100644 --- a/altosui/AltosConfig.java +++ b/altosui/AltosConfig.java @@ -242,9 +242,15 @@ public class AltosConfig implements ActionListener { /* Pull data out of the UI and stuff back into our local data record */ - data.get_values(config_ui); - - run_serial_thread(serial_mode_save); + try { + data.get_values(config_ui); + run_serial_thread(serial_mode_save); + } catch (AltosConfigDataException ae) { + JOptionPane.showMessageDialog(owner, + ae.getMessage(), + "Configuration Data Error", + JOptionPane.ERROR_MESSAGE); + } } public void actionPerformed(ActionEvent e) { @@ -298,4 +304,4 @@ public class AltosConfig implements ActionListener { } } } -} \ No newline at end of file +} diff --git a/altosui/AltosConfigPyroUI.java b/altosui/AltosConfigPyroUI.java index 6cbac316..7a298a3c 100644 --- a/altosui/AltosConfigPyroUI.java +++ b/altosui/AltosConfigPyroUI.java @@ -124,12 +124,16 @@ public class AltosConfigPyroUI return enable.isSelected(); } - public double value() { + public double value() throws AltosConfigDataException { if (value != null) { AltosUnits units = AltosPyro.pyro_to_units(flag); - if (units != null) - return units.parse(value.getText()); - return Double.parseDouble(value.getText()); + try { + if (units != null) + return units.parse(value.getText()); + return Double.parseDouble(value.getText()); + } catch (NumberFormatException e) { + throw new AltosConfigDataException("\"%s\": %s\n", value.getText(), e.getMessage()); + } } if (combo != null) return combo.getSelectedIndex() + AltosLib.ao_flight_boost; @@ -189,15 +193,21 @@ public class AltosConfigPyroUI } } - public AltosPyro get() { + public AltosPyro get() throws AltosConfigDataException { AltosPyro p = new AltosPyro(channel); int row = 0; for (int flag = 1; flag < AltosPyro.pyro_all; flag <<= 1) { if ((AltosPyro.pyro_all & flag) != 0) { if (items[row].enabled()) { + try { p.flags |= flag; p.set_value(flag, items[row].value()); + } catch (AltosConfigDataException ae) { + throw new AltosConfigDataException("%s, %s", + AltosPyro.pyro_to_name(flag), + ae.getMessage()); + } } row++; } @@ -256,10 +266,15 @@ public class AltosConfigPyroUI } } - public AltosPyro[] get_pyros() { + public AltosPyro[] get_pyros() throws AltosConfigDataException { AltosPyro[] pyros = new AltosPyro[columns.length]; - for (int c = 0; c < columns.length; c++) - pyros[c] = columns[c].get(); + for (int c = 0; c < columns.length; c++) { + try { + pyros[c] = columns[c].get(); + } catch (AltosConfigDataException ae) { + throw new AltosConfigDataException ("Channel %c, %s", c + 'A', ae.getMessage()); + } + } return pyros; } diff --git a/altosui/AltosConfigUI.java b/altosui/AltosConfigUI.java index 2a9d727d..bcb3e12c 100644 --- a/altosui/AltosConfigUI.java +++ b/altosui/AltosConfigUI.java @@ -1147,7 +1147,7 @@ public class AltosConfigUI pyro_ui.set_pyros(pyros); } - public AltosPyro[] pyros() { + public AltosPyro[] pyros() throws AltosConfigDataException { if (pyro_ui != null) pyros = pyro_ui.get_pyros(); return pyros; -- cgit v1.2.3 From 537db628c0223f0c1f797705a353857c696f8051 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sat, 7 Jun 2014 11:44:55 -0700 Subject: altoslib: All products with logging have the 'l' command Instead of listing products with the 'l' command, just exclude products that don't have logging from using the 'l' command to collect the number of stored flights. Signed-off-by: Keith Packard --- altoslib/AltosConfigData.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'altoslib/AltosConfigData.java') diff --git a/altoslib/AltosConfigData.java b/altoslib/AltosConfigData.java index 2f36e215..9292a5a2 100644 --- a/altoslib/AltosConfigData.java +++ b/altoslib/AltosConfigData.java @@ -572,12 +572,12 @@ public class AltosConfigData implements Iterable { link.printf("c s\nf\nv\n"); read_link(link, "software-version"); switch (log_format) { - case AltosLib.AO_LOG_FORMAT_FULL: - case AltosLib.AO_LOG_FORMAT_TINY: - case AltosLib.AO_LOG_FORMAT_TELEMEGA: + case AltosLib.AO_LOG_FORMAT_UNKNOWN: + case AltosLib.AO_LOG_FORMAT_NONE: + break; + default: link.printf("l\n"); read_link(link, "done"); - default: break; } } -- cgit v1.2.3 From ae1174317fc476e39077f7dc257ec08709c6b301 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Tue, 10 Jun 2014 10:11:03 -0700 Subject: altoslib/altosui/telegps: Change log size configuration * Use new log-space value provided by firmware when available. * Divide that up into 1-8 flights and offer those sizes as options to the user instead of a fixed set of sizes. * Show how many flights each selection will store * This also checks values provided by the user Signed-off-by: Keith Packard --- altoslib/AltosConfigData.java | 38 ++++--- altosui/AltosConfig.java | 24 ++--- altosui/AltosConfigUI.java | 72 ++++++++----- telegps/Makefile.am | 3 +- telegps/TeleGPS.java | 4 +- telegps/TeleGPSConfig.java | 24 ++--- telegps/TeleGPSConfigUI.java | 64 +++++++----- telegps/TeleGPSDisplayThread.java | 209 ++++++++++++++++++++++++++++++++++++++ 8 files changed, 345 insertions(+), 93 deletions(-) create mode 100644 telegps/TeleGPSDisplayThread.java (limited to 'altoslib/AltosConfigData.java') diff --git a/altoslib/AltosConfigData.java b/altoslib/AltosConfigData.java index 9292a5a2..9462ae6f 100644 --- a/altoslib/AltosConfigData.java +++ b/altoslib/AltosConfigData.java @@ -29,6 +29,7 @@ public class AltosConfigData implements Iterable { public int serial; public int flight; public int log_format; + public int log_space; public String version; /* Strings returned */ @@ -124,6 +125,22 @@ public class AltosConfigData implements Iterable { return lines.iterator(); } + public int log_space() { + if (log_space > 0) + return log_space; + + if (storage_size > 0) { + int space = storage_size; + + if (storage_erase_unit > 0 && use_flash_for_config()) + space -= storage_erase_unit; + + if (space > 0) + return space; + } + return 0; + } + public int log_available() { switch (log_format) { case AltosLib.AO_LOG_FORMAT_TINY: @@ -137,7 +154,7 @@ public class AltosConfigData implements Iterable { if (flight_log_max <= 0) return 1; int log_max = flight_log_max * 1024; - int log_space = storage_size - storage_erase_unit; + int log_space = log_space(); int log_used; if (stored_flight <= 0) @@ -202,6 +219,7 @@ public class AltosConfigData implements Iterable { serial = 0; flight = 0; log_format = AltosLib.AO_LOG_FORMAT_UNKNOWN; + log_space = -1; version = "unknown"; main_deploy = -1; @@ -247,6 +265,7 @@ public class AltosConfigData implements Iterable { try { serial = get_int(line, "serial-number"); } catch (Exception e) {} try { flight = get_int(line, "current-flight"); } catch (Exception e) {} try { log_format = get_int(line, "log-format"); } catch (Exception e) {} + try { log_space = get_int(line, "log-space"); } catch (Exception e) {} try { version = get_string(line, "software-version"); } catch (Exception e) {} /* Version also contains MS5607 info, which we ignore here */ @@ -390,19 +409,6 @@ public class AltosConfigData implements Iterable { } - public int log_limit() { - if (storage_size > 0) { - int log_limit = storage_size; - - if (storage_erase_unit > 0 && use_flash_for_config()) - log_limit -= storage_erase_unit; - - if (log_limit > 0) - return log_limit / 1024; - } - return 1024; - } - public void get_values(AltosConfigValues source) throws AltosConfigDataException { /* HAS_FLIGHT */ @@ -462,7 +468,7 @@ public class AltosConfigData implements Iterable { dest.set_radio_frequency(frequency()); boolean max_enabled = true; - if (log_limit() == 0) + if (log_space() == 0) max_enabled = false; switch (log_format) { @@ -477,7 +483,7 @@ public class AltosConfigData implements Iterable { dest.set_flight_log_max_enabled(max_enabled); dest.set_radio_enable(radio_enable); - dest.set_flight_log_max_limit(log_limit()); + dest.set_flight_log_max_limit(log_space() / 1024); dest.set_flight_log_max(flight_log_max); dest.set_ignite_mode(ignite_mode); dest.set_pad_orientation(pad_orientation); diff --git a/altosui/AltosConfig.java b/altosui/AltosConfig.java index 2cf69525..6eb7d40c 100644 --- a/altosui/AltosConfig.java +++ b/altosui/AltosConfig.java @@ -229,20 +229,20 @@ public class AltosConfig implements ActionListener { void save_data() { - /* bounds check stuff */ - if (config_ui.flight_log_max() > data.log_limit()) { - JOptionPane.showMessageDialog(owner, - String.format("Requested flight log, %dk, is larger than the available space, %dk.\n", - config_ui.flight_log_max(), - data.log_limit()), - "Maximum Flight Log Too Large", - JOptionPane.ERROR_MESSAGE); - return; - } + try { + /* bounds check stuff */ + if (config_ui.flight_log_max() > data.log_space() / 1024) { + JOptionPane.showMessageDialog(owner, + String.format("Requested flight log, %dk, is larger than the available space, %dk.\n", + config_ui.flight_log_max(), + data.log_space() / 1024), + "Maximum Flight Log Too Large", + JOptionPane.ERROR_MESSAGE); + return; + } - /* Pull data out of the UI and stuff back into our local data record */ + /* Pull data out of the UI and stuff back into our local data record */ - try { data.get_values(config_ui); run_serial_thread(serial_mode_save); } catch (AltosConfigDataException ae) { diff --git a/altosui/AltosConfigUI.java b/altosui/AltosConfigUI.java index bcb3e12c..f936d92c 100644 --- a/altosui/AltosConfigUI.java +++ b/altosui/AltosConfigUI.java @@ -99,12 +99,6 @@ public class AltosConfigUI "0", "5", "10", "15", "20" }; - static String[] flight_log_max_values = { - "64", "128", "192", "256", "320", - "384", "448", "512", "576", "640", - "704", "768", "832", "896", "960", - }; - static String[] ignite_mode_values = { "Dual Deploy", "Redundant Apogee", @@ -546,7 +540,7 @@ public class AltosConfigUI c.anchor = GridBagConstraints.LINE_START; c.insets = il; c.ipady = 5; - flight_log_max_label = new JLabel("Maximum Flight Log Size:"); + flight_log_max_label = new JLabel("Maximum Flight Log Size (kB):"); pane.add(flight_log_max_label, c); c = new GridBagConstraints(); @@ -557,7 +551,7 @@ public class AltosConfigUI c.anchor = GridBagConstraints.LINE_START; c.insets = ir; c.ipady = 5; - flight_log_max_value = new JComboBox(flight_log_max_values); + flight_log_max_value = new JComboBox(); flight_log_max_value.setEditable(true); flight_log_max_value.addItemListener(this); pane.add(flight_log_max_value, c); @@ -918,8 +912,19 @@ public class AltosConfigUI apogee_delay_value.setEnabled(new_apogee_delay >= 0); } - public int apogee_delay() { - return Integer.parseInt(apogee_delay_value.getSelectedItem().toString()); + private int parse_int(String name, String s, boolean split) throws AltosConfigDataException { + String v = s; + if (split) + v = s.split("\\s+")[0]; + try { + return Integer.parseInt(v); + } catch (NumberFormatException ne) { + throw new AltosConfigDataException("Invalid %s \"%s\"", name, s); + } + } + + public int apogee_delay() throws AltosConfigDataException { + return parse_int("apogee delay", apogee_delay_value.getSelectedItem().toString(), false); } public void set_apogee_lockout(int new_apogee_lockout) { @@ -927,8 +932,8 @@ public class AltosConfigUI apogee_lockout_value.setEnabled(new_apogee_lockout >= 0); } - public int apogee_lockout() { - return Integer.parseInt(apogee_lockout_value.getSelectedItem().toString()); + public int apogee_lockout() throws AltosConfigDataException { + return parse_int("apogee lockout", apogee_lockout_value.getSelectedItem().toString(), false); } public void set_radio_frequency(double new_radio_frequency) { @@ -947,8 +952,8 @@ public class AltosConfigUI radio_calibration_value.setText(String.format("%d", new_radio_calibration)); } - public int radio_calibration() { - return Integer.parseInt(radio_calibration_value.getText()); + public int radio_calibration() throws AltosConfigDataException { + return parse_int("radio calibration", radio_calibration_value.getText(), false); } public void set_radio_enable(int new_radio_enable) { @@ -979,8 +984,22 @@ public class AltosConfigUI return callsign_value.getText(); } + int flight_log_max_limit; + int flight_log_max; + + public String flight_log_max_label(int flight_log_max) { + if (flight_log_max_limit != 0) { + int nflight = flight_log_max_limit / flight_log_max; + String plural = nflight > 1 ? "s" : ""; + + return String.format("%d (%d flight%s)", flight_log_max, nflight, plural); + } + return String.format("%d", flight_log_max); + } + public void set_flight_log_max(int new_flight_log_max) { - flight_log_max_value.setSelectedItem(Integer.toString(new_flight_log_max)); + flight_log_max_value.setSelectedItem(flight_log_max_label(new_flight_log_max)); + flight_log_max = new_flight_log_max; set_flight_log_max_tool_tip(); } @@ -989,20 +1008,19 @@ public class AltosConfigUI set_flight_log_max_tool_tip(); } - public int flight_log_max() { - return Integer.parseInt(flight_log_max_value.getSelectedItem().toString()); + public int flight_log_max() throws AltosConfigDataException { + return parse_int("flight log max", flight_log_max_value.getSelectedItem().toString(), true); } - public void set_flight_log_max_limit(int flight_log_max_limit) { - //boolean any_added = false; + public void set_flight_log_max_limit(int new_flight_log_max_limit) { + flight_log_max_limit = new_flight_log_max_limit; flight_log_max_value.removeAllItems(); - for (int i = 0; i < flight_log_max_values.length; i++) { - if (Integer.parseInt(flight_log_max_values[i]) < flight_log_max_limit){ - flight_log_max_value.addItem(flight_log_max_values[i]); - //any_added = true; - } + for (int i = 8; i >= 1; i--) { + int size = flight_log_max_limit / i; + flight_log_max_value.addItem(String.format("%d (%d flights)", size, i)); } - flight_log_max_value.addItem(String.format("%d", flight_log_max_limit)); + if (flight_log_max != 0) + set_flight_log_max(flight_log_max); } public void set_ignite_mode(int new_ignite_mode) { @@ -1165,11 +1183,11 @@ public class AltosConfigUI set_aprs_interval_tool_tip(); } - public int aprs_interval() { + public int aprs_interval() throws AltosConfigDataException { String s = aprs_interval_value.getSelectedItem().toString(); if (s.equals("Disabled")) return 0; - return Integer.parseInt(s); + return parse_int("aprs interval", s, false); } } diff --git a/telegps/Makefile.am b/telegps/Makefile.am index 7e17b331..e0d596e7 100644 --- a/telegps/Makefile.am +++ b/telegps/Makefile.am @@ -19,7 +19,8 @@ telegps_JAVA= \ TeleGPSConfig.java \ TeleGPSConfigUI.java \ TeleGPSPreferences.java \ - TeleGPSGraphUI.java + TeleGPSGraphUI.java \ + TeleGPSDisplayThread.java JFREECHART_CLASS= \ jfreechart.jar diff --git a/telegps/TeleGPS.java b/telegps/TeleGPS.java index 71174436..c61b245e 100644 --- a/telegps/TeleGPS.java +++ b/telegps/TeleGPS.java @@ -51,7 +51,7 @@ public class TeleGPS } AltosFlightReader reader; - AltosDisplayThread thread; + TeleGPSDisplayThread thread; JMenuBar menu_bar; @@ -349,7 +349,7 @@ public class TeleGPS public void set_reader(AltosFlightReader reader) { setTitle(String.format("TeleGPS %s", reader.name)); - thread = new AltosDisplayThread(this, voice(), this, reader); + thread = new TeleGPSDisplayThread(this, voice(), this, reader); thread.start(); } diff --git a/telegps/TeleGPSConfig.java b/telegps/TeleGPSConfig.java index 22e6a3ac..3505b0bb 100644 --- a/telegps/TeleGPSConfig.java +++ b/telegps/TeleGPSConfig.java @@ -221,20 +221,20 @@ public class TeleGPSConfig implements ActionListener { void save_data() { - /* bounds check stuff */ - if (config_ui.flight_log_max() > data.log_limit()) { - JOptionPane.showMessageDialog(owner, - String.format("Requested flight log, %dk, is larger than the available space, %dk.\n", - config_ui.flight_log_max(), - data.log_limit()), - "Maximum Flight Log Too Large", - JOptionPane.ERROR_MESSAGE); - return; - } + try { + /* bounds check stuff */ + if (config_ui.flight_log_max() > data.log_space()/1024) { + JOptionPane.showMessageDialog(owner, + String.format("Requested flight log, %dk, is larger than the available space, %dk.\n", + config_ui.flight_log_max(), + data.log_space()/1024), + "Maximum Flight Log Too Large", + JOptionPane.ERROR_MESSAGE); + return; + } - /* Pull data out of the UI and stuff back into our local data record */ + /* Pull data out of the UI and stuff back into our local data record */ - try { data.get_values(config_ui); run_serial_thread(serial_mode_save); } catch (AltosConfigDataException ae) { diff --git a/telegps/TeleGPSConfigUI.java b/telegps/TeleGPSConfigUI.java index 863d61bb..03666036 100644 --- a/telegps/TeleGPSConfigUI.java +++ b/telegps/TeleGPSConfigUI.java @@ -65,12 +65,6 @@ public class TeleGPSConfigUI ActionListener listener; - static String[] flight_log_max_values = { - "64", "128", "192", "256", "320", - "384", "448", "512", "576", "640", - "704", "768", "832", "896", "960", - }; - static String[] aprs_interval_values = { "Disabled", "2", @@ -376,7 +370,7 @@ public class TeleGPSConfigUI c.anchor = GridBagConstraints.LINE_START; c.insets = il; c.ipady = 5; - flight_log_max_label = new JLabel("Maximum Flight Log Size:"); + flight_log_max_label = new JLabel("Maximum Log Size (kB):"); pane.add(flight_log_max_label, c); c = new GridBagConstraints(); @@ -387,7 +381,7 @@ public class TeleGPSConfigUI c.anchor = GridBagConstraints.LINE_START; c.insets = ir; c.ipady = 5; - flight_log_max_value = new JComboBox(flight_log_max_values); + flight_log_max_value = new JComboBox(); flight_log_max_value.setEditable(true); flight_log_max_value.addItemListener(this); pane.add(flight_log_max_value, c); @@ -636,8 +630,19 @@ public class TeleGPSConfigUI radio_calibration_value.setText(String.format("%d", new_radio_calibration)); } - public int radio_calibration() { - return Integer.parseInt(radio_calibration_value.getText()); + private int parse_int(String name, String s, boolean split) throws AltosConfigDataException { + String v = s; + if (split) + v = s.split("\\s+")[0]; + try { + return Integer.parseInt(v); + } catch (NumberFormatException ne) { + throw new AltosConfigDataException("Invalid %s \"%s\"", name, s); + } + } + + public int radio_calibration() throws AltosConfigDataException { + return parse_int("radio calibration", radio_calibration_value.getText(), false); } public void set_radio_enable(int new_radio_enable) { @@ -668,8 +673,22 @@ public class TeleGPSConfigUI return callsign_value.getText(); } + int flight_log_max_limit; + int flight_log_max; + + public String flight_log_max_label(int flight_log_max) { + if (flight_log_max_limit != 0) { + int nflight = flight_log_max_limit / flight_log_max; + String plural = nflight > 1 ? "s" : ""; + + return String.format("%d (%d flight%s)", flight_log_max, nflight, plural); + } + return String.format("%d", flight_log_max); + } + public void set_flight_log_max(int new_flight_log_max) { - flight_log_max_value.setSelectedItem(Integer.toString(new_flight_log_max)); + flight_log_max_value.setSelectedItem(flight_log_max_label(new_flight_log_max)); + flight_log_max = new_flight_log_max; set_flight_log_max_tool_tip(); } @@ -678,20 +697,19 @@ public class TeleGPSConfigUI set_flight_log_max_tool_tip(); } - public int flight_log_max() { - return Integer.parseInt(flight_log_max_value.getSelectedItem().toString()); + public int flight_log_max() throws AltosConfigDataException { + return parse_int("flight log max", flight_log_max_value.getSelectedItem().toString(), true); } - public void set_flight_log_max_limit(int flight_log_max_limit) { - //boolean any_added = false; + public void set_flight_log_max_limit(int new_flight_log_max_limit) { + flight_log_max_limit = new_flight_log_max_limit; flight_log_max_value.removeAllItems(); - for (int i = 0; i < flight_log_max_values.length; i++) { - if (Integer.parseInt(flight_log_max_values[i]) < flight_log_max_limit){ - flight_log_max_value.addItem(flight_log_max_values[i]); - //any_added = true; - } + for (int i = 8; i >= 1; i--) { + int size = flight_log_max_limit / i; + flight_log_max_value.addItem(String.format("%d (%d flights)", size, i)); } - flight_log_max_value.addItem(String.format("%d", flight_log_max_limit)); + if (flight_log_max != 0) + set_flight_log_max(flight_log_max); } public void set_ignite_mode(int new_ignite_mode) { } @@ -791,11 +809,11 @@ public class TeleGPSConfigUI set_aprs_interval_tool_tip(); } - public int aprs_interval() { + public int aprs_interval() throws AltosConfigDataException { String s = aprs_interval_value.getSelectedItem().toString(); if (s.equals("Disabled")) return 0; - return Integer.parseInt(s); + return parse_int("aprs interval", s, false); } } diff --git a/telegps/TeleGPSDisplayThread.java b/telegps/TeleGPSDisplayThread.java new file mode 100644 index 00000000..9de33098 --- /dev/null +++ b/telegps/TeleGPSDisplayThread.java @@ -0,0 +1,209 @@ +/* + * Copyright © 2010 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.telegps; + +import java.awt.*; +import javax.swing.*; +import java.io.*; +import java.text.*; +import org.altusmetrum.altoslib_4.*; +import org.altusmetrum.altosuilib_2.*; + +public class TeleGPSDisplayThread extends Thread { + + Frame parent; + IdleThread idle_thread; + AltosVoice voice; + AltosFlightReader reader; + AltosState old_state, state; + AltosListenerState listener_state; + AltosFlightDisplay display; + + synchronized void show_safely() { + final AltosState my_state = state; + final AltosListenerState my_listener_state = listener_state; + Runnable r = new Runnable() { + public void run() { + try { + display.show(my_state, my_listener_state); + } catch (Exception ex) { + } + } + }; + SwingUtilities.invokeLater(r); + } + + void reading_error_internal() { + JOptionPane.showMessageDialog(parent, + String.format("Error reading from \"%s\"", reader.name), + "Telemetry Read Error", + JOptionPane.ERROR_MESSAGE); + } + + void reading_error_safely() { + Runnable r = new Runnable() { + public void run() { + try { + reading_error_internal(); + } catch (Exception ex) { + } + } + }; + SwingUtilities.invokeLater(r); + } + + class IdleThread extends Thread { + + boolean started; + int report_interval; + long report_time; + + public synchronized void report(boolean last) { + if (state == null) + return; + + if (state.height() != AltosLib.MISSING) { + if (state.from_pad != null) { + voice.speak("Height %s, bearing %s %d, elevation %d, range %s, .\n", + AltosConvert.height.say(state.gps_height()), + state.from_pad.bearing_words( + AltosGreatCircle.BEARING_VOICE), + (int) (state.from_pad.bearing + 0.5), + (int) (state.elevation + 0.5), + AltosConvert.distance.say(state.range)); + } else { + voice.speak("Height %s.\n", + AltosConvert.height.say(state.height())); + } + } else { + voice.speak("Height is unknown.\n"); + } + } + + long now () { + return System.currentTimeMillis(); + } + + void set_report_time() { + report_time = now() + report_interval; + } + + public void run () { + try { + for (;;) { + if (reader.has_monitor_battery()) { + listener_state.battery = reader.monitor_battery(); + show_safely(); + } + set_report_time(); + for (;;) { + voice.drain(); + synchronized (this) { + long sleep_time = report_time - now(); + if (sleep_time <= 0) + break; + wait(sleep_time); + } + } + + report(false); + } + } catch (InterruptedException ie) { + try { + voice.drain(); + } catch (InterruptedException iie) { } + } + } + + public synchronized void notice(boolean spoken) { + if (old_state != null && old_state.state != state.state) { + report_time = now(); + this.notify(); + } else if (spoken) + set_report_time(); + } + + public IdleThread() { + report_interval = 10000; + } + } + + synchronized boolean tell() { + boolean ret = false; + if (old_state == null || old_state.gps_ready != state.gps_ready) { + if (state.gps_ready) { + voice.speak("GPS ready"); + ret = true; + } + else if (old_state != null) { + voice.speak("GPS lost"); + ret = true; + } + } + old_state = state; + return ret; + } + + public void run() { + boolean interrupted = false; + boolean told; + + idle_thread = new IdleThread(); + idle_thread.start(); + + try { + for (;;) { + try { + state = reader.read(); + if (state == null) + break; + reader.update(state); + show_safely(); + told = tell(); + idle_thread.notice(told); + } catch (ParseException pp) { + System.out.printf("Parse error: %d \"%s\"\n", pp.getErrorOffset(), pp.getMessage()); + } catch (AltosCRCException ce) { + ++listener_state.crc_errors; + show_safely(); + } + } + } catch (InterruptedException ee) { + interrupted = true; + } catch (IOException ie) { + reading_error_safely(); + } finally { + if (!interrupted) + idle_thread.report(true); + reader.close(interrupted); + idle_thread.interrupt(); + try { + idle_thread.join(); + } catch (InterruptedException ie) {} + } + } + + public TeleGPSDisplayThread(Frame in_parent, AltosVoice in_voice, AltosFlightDisplay in_display, AltosFlightReader in_reader) { + listener_state = new AltosListenerState(); + parent = in_parent; + voice = in_voice; + display = in_display; + reader = in_reader; + display.reset(); + } +} -- cgit v1.2.3 From 5f2029bd4e31289fb03e6af39abdbc16f8b8fa78 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Tue, 10 Jun 2014 10:14:07 -0700 Subject: altoslib/altosui/telegps: Switch TeleGPS config to motion/interval TeleGPS had configurable boost-detect values; those have been replaced with a configurable stop-tracking motion limit and logging/telemetry interval value. Signed-off-by: Keith Packard --- altoslib/AltosConfigData.java | 35 +++++---- altoslib/AltosConfigValues.java | 24 +++--- altosui/AltosConfigUI.java | 165 +++++++++++++++------------------------- telegps/TeleGPSConfigUI.java | 165 +++++++++++++++------------------------- 4 files changed, 160 insertions(+), 229 deletions(-) (limited to 'altoslib/AltosConfigData.java') diff --git a/altoslib/AltosConfigData.java b/altoslib/AltosConfigData.java index 9462ae6f..563bef4b 100644 --- a/altoslib/AltosConfigData.java +++ b/altoslib/AltosConfigData.java @@ -82,7 +82,8 @@ public class AltosConfigData implements Iterable { public int stored_flight; /* HAS_TRACKER */ - public int[] tracker_distances; + public int tracker_motion; + public int tracker_interval; public static String get_string(String line, String label) throws ParseException { if (line.startsWith(label)) { @@ -107,15 +108,15 @@ public class AltosConfigData implements Iterable { throw new ParseException("mismatch", 0); } - public static int[] get_distances(String line, String label) throws NumberFormatException, ParseException { + public static int[] get_values(String line, String label) throws NumberFormatException, ParseException { if (line.startsWith(label)) { String tail = line.substring(label.length()).trim(); String[] tokens = tail.split("\\s+"); if (tokens.length > 1) { - int[] distances = new int[2]; - distances[0] = Integer.parseInt(tokens[0]); - distances[1] = Integer.parseInt(tokens[1]); - return distances; + int[] values = new int[2]; + values[0] = Integer.parseInt(tokens[0]); + values[1] = Integer.parseInt(tokens[1]); + return values; } } throw new ParseException("mismatch", 0); @@ -250,7 +251,8 @@ public class AltosConfigData implements Iterable { beep = -1; - tracker_distances = null; + tracker_motion = -1; + tracker_interval = -1; storage_size = -1; storage_erase_unit = -1; @@ -333,7 +335,11 @@ public class AltosConfigData implements Iterable { try { beep = get_int(line, "Beeper setting:"); } catch (Exception e) {} /* HAS_TRACKER */ - try { tracker_distances = get_distances(line, "Tracker setting:"); } catch (Exception e) {} + try { + int[] values = get_values(line, "Tracker setting:"); + tracker_motion = values[0]; + tracker_interval = values[1]; + } catch (Exception e) {} /* Storage info replies */ try { storage_size = get_int(line, "Storage size:"); } catch (Exception e) {} @@ -453,8 +459,10 @@ public class AltosConfigData implements Iterable { if (beep >= 0) beep = source.beep(); /* HAS_TRACKER */ - if (tracker_distances != null) - tracker_distances = source.tracker_distances(); + if (tracker_motion >= 0) + tracker_motion = source.tracker_motion(); + if (tracker_interval >= 0) + tracker_interval = source.tracker_interval(); } public void set_values(AltosConfigValues dest) { @@ -494,7 +502,8 @@ public class AltosConfigData implements Iterable { dest.set_pyros(null); dest.set_aprs_interval(aprs_interval); dest.set_beep(beep); - dest.set_tracker_distances(tracker_distances); + dest.set_tracker_motion(tracker_motion); + dest.set_tracker_interval(tracker_interval); } public void save(AltosLink link, boolean remote) throws InterruptedException, TimeoutException { @@ -566,8 +575,8 @@ public class AltosConfigData implements Iterable { link.printf("c b %d\n", beep); /* HAS_TRACKER */ - if (tracker_distances != null) - link.printf("c t %d %d\n", tracker_distances[0], tracker_distances[1]); + if (tracker_motion >= 0 && tracker_interval >= 0) + link.printf("c t %d %d\n", tracker_motion, tracker_interval); link.printf("c w\n"); link.flush_output(); diff --git a/altoslib/AltosConfigValues.java b/altoslib/AltosConfigValues.java index 6ca1f5c6..778f1222 100644 --- a/altoslib/AltosConfigValues.java +++ b/altoslib/AltosConfigValues.java @@ -27,23 +27,23 @@ public interface AltosConfigValues { public abstract void set_main_deploy(int new_main_deploy); - public abstract int main_deploy(); + public abstract int main_deploy() throws AltosConfigDataException; public abstract void set_apogee_delay(int new_apogee_delay); - public abstract int apogee_delay(); + public abstract int apogee_delay() throws AltosConfigDataException; public abstract void set_apogee_lockout(int new_apogee_lockout); - public abstract int apogee_lockout(); + public abstract int apogee_lockout() throws AltosConfigDataException; public abstract void set_radio_frequency(double new_radio_frequency); - public abstract double radio_frequency(); + public abstract double radio_frequency() throws AltosConfigDataException; public abstract void set_radio_calibration(int new_radio_calibration); - public abstract int radio_calibration(); + public abstract int radio_calibration() throws AltosConfigDataException; public abstract void set_radio_enable(int new_radio_enable); @@ -57,7 +57,7 @@ public interface AltosConfigValues { public abstract void set_flight_log_max_enabled(boolean enable); - public abstract int flight_log_max(); + public abstract int flight_log_max() throws AltosConfigDataException; public abstract void set_flight_log_max_limit(int flight_log_max_limit); @@ -73,15 +73,19 @@ public interface AltosConfigValues { public abstract AltosPyro[] pyros() throws AltosConfigDataException; - public abstract int aprs_interval(); + public abstract int aprs_interval() throws AltosConfigDataException; public abstract void set_aprs_interval(int new_aprs_interval); - public abstract int beep(); + public abstract int beep() throws AltosConfigDataException; public abstract void set_beep(int new_beep); - public abstract int[] tracker_distances(); + public abstract int tracker_motion() throws AltosConfigDataException; - public abstract void set_tracker_distances(int[] tracker_distances); + public abstract void set_tracker_motion(int tracker_motion); + + public abstract int tracker_interval() throws AltosConfigDataException; + + public abstract void set_tracker_interval(int tracker_motion); } diff --git a/altosui/AltosConfigUI.java b/altosui/AltosConfigUI.java index f936d92c..ee54e31e 100644 --- a/altosui/AltosConfigUI.java +++ b/altosui/AltosConfigUI.java @@ -46,8 +46,8 @@ public class AltosConfigUI JLabel pad_orientation_label; JLabel callsign_label; JLabel beep_label; - JLabel tracker_horiz_label; - JLabel tracker_vert_label; + JLabel tracker_motion_label; + JLabel tracker_interval_label; public boolean dirty; @@ -67,8 +67,8 @@ public class AltosConfigUI JComboBox pad_orientation_value; JTextField callsign_value; JComboBox beep_value; - JComboBox tracker_horiz_value; - JComboBox tracker_vert_value; + JComboBox tracker_motion_value; + JComboBox tracker_interval_value; JButton pyro; @@ -123,32 +123,25 @@ public class AltosConfigUI "Antenna Down", }; - static String[] tracker_horiz_values_m = { - "250", - "500", - "1000", - "2000" - }; - - static String[] tracker_horiz_values_ft = { - "500", - "1000", - "2500", - "5000" + static String[] tracker_motion_values_m = { + "2", + "5", + "10", + "25", }; - static String[] tracker_vert_values_m = { - "25", + static String[] tracker_motion_values_ft = { + "5", + "20", "50", - "100", - "200" + "100" }; - static String[] tracker_vert_values_ft = { - "50", - "100", - "250", - "500" + static String[] tracker_interval_values = { + "1", + "2", + "5", + "10" }; /* A window listener to catch closing events and tell the config code */ @@ -644,8 +637,8 @@ public class AltosConfigUI c.anchor = GridBagConstraints.LINE_START; c.insets = il; c.ipady = 5; - tracker_horiz_label = new JLabel(get_tracker_horiz_label()); - pane.add(tracker_horiz_label, c); + tracker_motion_label = new JLabel(get_tracker_motion_label()); + pane.add(tracker_motion_label, c); c = new GridBagConstraints(); c.gridx = 4; c.gridy = row; @@ -655,10 +648,10 @@ public class AltosConfigUI c.anchor = GridBagConstraints.LINE_START; c.insets = ir; c.ipady = 5; - tracker_horiz_value = new JComboBox(tracker_horiz_values()); - tracker_horiz_value.setEditable(true); - tracker_horiz_value.addItemListener(this); - pane.add(tracker_horiz_value, c); + tracker_motion_value = new JComboBox(tracker_motion_values()); + tracker_motion_value.setEditable(true); + tracker_motion_value.addItemListener(this); + pane.add(tracker_motion_value, c); row++; /* Tracker triger vert distances */ @@ -669,8 +662,8 @@ public class AltosConfigUI c.anchor = GridBagConstraints.LINE_START; c.insets = il; c.ipady = 5; - tracker_vert_label = new JLabel(get_tracker_vert_label()); - pane.add(tracker_vert_label, c); + tracker_interval_label = new JLabel("Position Reporting Interval(s):"); + pane.add(tracker_interval_label, c); c = new GridBagConstraints(); c.gridx = 4; c.gridy = row; @@ -680,10 +673,10 @@ public class AltosConfigUI c.anchor = GridBagConstraints.LINE_START; c.insets = ir; c.ipady = 5; - tracker_vert_value = new JComboBox(tracker_vert_values()); - tracker_vert_value.setEditable(true); - tracker_vert_value.addItemListener(this); - pane.add(tracker_vert_value, c); + tracker_interval_value = new JComboBox(tracker_interval_values); + tracker_interval_value.setEditable(true); + tracker_interval_value.addItemListener(this); + pane.add(tracker_interval_value, c); set_tracker_tool_tip(); row++; @@ -892,18 +885,11 @@ public class AltosConfigUI int m = (int) (AltosConvert.height.parse(v, !imperial_units) + 0.5); set_main_deploy(m); - if (tracker_horiz_value.isEnabled() && tracker_vert_value.isEnabled()) { - String th = tracker_horiz_value.getSelectedItem().toString(); - String tv = tracker_vert_value.getSelectedItem().toString(); - tracker_horiz_label.setText(get_tracker_horiz_label()); - tracker_vert_label.setText(get_tracker_vert_label()); - set_tracker_horiz_values(); - set_tracker_vert_values(); - int[] t = { - (int) (AltosConvert.height.parse(th, !imperial_units) + 0.5), - (int) (AltosConvert.height.parse(tv, !imperial_units) + 0.5) - }; - set_tracker_distances(t); + if (tracker_motion_value.isEnabled()) { + String motion = tracker_motion_value.getSelectedItem().toString(); + tracker_motion_label.setText(get_tracker_motion_label()); + set_tracker_motion_values(); + set_tracker_motion((int) (AltosConvert.height.parse(motion, !imperial_units) + 0.5)); } } @@ -1084,78 +1070,51 @@ public class AltosConfigUI return -1; } - String[] tracker_horiz_values() { + String[] tracker_motion_values() { if (AltosConvert.imperial_units) - return tracker_horiz_values_ft; + return tracker_motion_values_ft; else - return tracker_horiz_values_m; + return tracker_motion_values_m; } - void set_tracker_horiz_values() { - String[] v = tracker_horiz_values(); - while (tracker_horiz_value.getItemCount() > 0) - tracker_horiz_value.removeItemAt(0); + void set_tracker_motion_values() { + String[] v = tracker_motion_values(); + while (tracker_motion_value.getItemCount() > 0) + tracker_motion_value.removeItemAt(0); for (int i = 0; i < v.length; i++) - tracker_horiz_value.addItem(v[i]); - tracker_horiz_value.setMaximumRowCount(v.length); + tracker_motion_value.addItem(v[i]); + tracker_motion_value.setMaximumRowCount(v.length); } - String get_tracker_horiz_label() { - return String.format("Logging Trigger Horizontal (%s):", AltosConvert.height.show_units()); - } - - String[] tracker_vert_values() { - if (AltosConvert.imperial_units) - return tracker_vert_values_ft; - else - return tracker_vert_values_m; - } - - void set_tracker_vert_values() { - String[] v = tracker_vert_values(); - while (tracker_vert_value.getItemCount() > 0) - tracker_vert_value.removeItemAt(0); - for (int i = 0; i < v.length; i++) - tracker_vert_value.addItem(v[i]); - tracker_vert_value.setMaximumRowCount(v.length); + String get_tracker_motion_label() { + return String.format("Logging Trigger Motion (%s):", AltosConvert.height.show_units()); } void set_tracker_tool_tip() { - if (tracker_horiz_value.isEnabled()) - tracker_horiz_value.setToolTipText("How far the device must move before logging is enabled"); + if (tracker_motion_value.isEnabled()) + tracker_motion_value.setToolTipText("How far the device must move before logging"); else - tracker_horiz_value.setToolTipText("This device doesn't disable logging before motion"); - if (tracker_vert_value.isEnabled()) - tracker_vert_value.setToolTipText("How far the device must move before logging is enabled"); + tracker_motion_value.setToolTipText("This device doesn't disable logging when stationary"); + if (tracker_interval_value.isEnabled()) + tracker_interval_value.setToolTipText("How often to report GPS position"); else - tracker_vert_value.setToolTipText("This device doesn't disable logging before motion"); + tracker_interval_value.setToolTipText("This device can't configure interval"); } - String get_tracker_vert_label() { - return String.format("Logging Trigger Vertical (%s):", AltosConvert.height.show_units()); + public void set_tracker_motion(int tracker_motion) { + tracker_motion_value.setSelectedItem(AltosConvert.height.say(tracker_motion)); } - public void set_tracker_distances(int[] tracker_distances) { - if (tracker_distances != null) { - tracker_horiz_value.setSelectedItem(AltosConvert.height.say(tracker_distances[0])); - tracker_vert_value.setSelectedItem(AltosConvert.height.say(tracker_distances[1])); - tracker_horiz_value.setEnabled(true); - tracker_vert_value.setEnabled(true); - } else { - tracker_horiz_value.setEnabled(false); - tracker_vert_value.setEnabled(false); - } + public int tracker_motion() throws AltosConfigDataException { + return (int) AltosConvert.height.parse(tracker_motion_value.getSelectedItem().toString()); } - public int[] tracker_distances() { - if (tracker_horiz_value.isEnabled() && tracker_vert_value.isEnabled()) { - int[] t = { - (int) (AltosConvert.height.parse(tracker_horiz_value.getSelectedItem().toString()) + 0.5), - (int) (AltosConvert.height.parse(tracker_vert_value.getSelectedItem().toString()) + 0.5), - }; - return t; - } - return null; + public void set_tracker_interval(int tracker_interval) { + tracker_interval_value.setSelectedItem(String.format("%d", tracker_interval)); + } + + public int tracker_interval() throws AltosConfigDataException { + return parse_int ("tracker interval", tracker_interval_value.getSelectedItem().toString(), false); } public void set_pyros(AltosPyro[] new_pyros) { diff --git a/telegps/TeleGPSConfigUI.java b/telegps/TeleGPSConfigUI.java index 03666036..325ca7b9 100644 --- a/telegps/TeleGPSConfigUI.java +++ b/telegps/TeleGPSConfigUI.java @@ -40,8 +40,8 @@ public class TeleGPSConfigUI JLabel aprs_interval_label; JLabel flight_log_max_label; JLabel callsign_label; - JLabel tracker_horiz_label; - JLabel tracker_vert_label; + JLabel tracker_motion_label; + JLabel tracker_interval_label; public boolean dirty; @@ -55,8 +55,8 @@ public class TeleGPSConfigUI JComboBox aprs_interval_value; JComboBox flight_log_max_value; JTextField callsign_value; - JComboBox tracker_horiz_value; - JComboBox tracker_vert_value; + JComboBox tracker_motion_value; + JComboBox tracker_interval_value; JButton save; JButton reset; @@ -72,32 +72,25 @@ public class TeleGPSConfigUI "10" }; - static String[] tracker_horiz_values_m = { - "250", - "500", - "1000", - "2000" - }; - - static String[] tracker_horiz_values_ft = { - "500", - "1000", - "2500", - "5000" + static String[] tracker_motion_values_m = { + "2", + "5", + "10", + "25", }; - static String[] tracker_vert_values_m = { - "25", + static String[] tracker_motion_values_ft = { + "5", + "20", "50", - "100", - "200" + "100" }; - static String[] tracker_vert_values_ft = { - "50", - "100", - "250", - "500" + static String[] tracker_interval_values = { + "1", + "2", + "5", + "10" }; /* A window listener to catch closing events and tell the config code */ @@ -396,8 +389,8 @@ public class TeleGPSConfigUI c.anchor = GridBagConstraints.LINE_START; c.insets = il; c.ipady = 5; - tracker_horiz_label = new JLabel(get_tracker_horiz_label()); - pane.add(tracker_horiz_label, c); + tracker_motion_label = new JLabel(get_tracker_motion_label()); + pane.add(tracker_motion_label, c); c = new GridBagConstraints(); c.gridx = 4; c.gridy = row; @@ -407,10 +400,10 @@ public class TeleGPSConfigUI c.anchor = GridBagConstraints.LINE_START; c.insets = ir; c.ipady = 5; - tracker_horiz_value = new JComboBox(tracker_horiz_values()); - tracker_horiz_value.setEditable(true); - tracker_horiz_value.addItemListener(this); - pane.add(tracker_horiz_value, c); + tracker_motion_value = new JComboBox(tracker_motion_values()); + tracker_motion_value.setEditable(true); + tracker_motion_value.addItemListener(this); + pane.add(tracker_motion_value, c); row++; /* Tracker triger vert distances */ @@ -421,8 +414,8 @@ public class TeleGPSConfigUI c.anchor = GridBagConstraints.LINE_START; c.insets = il; c.ipady = 5; - tracker_vert_label = new JLabel(get_tracker_vert_label()); - pane.add(tracker_vert_label, c); + tracker_interval_label = new JLabel("Position Reporting Interval (s):"); + pane.add(tracker_interval_label, c); c = new GridBagConstraints(); c.gridx = 4; c.gridy = row; @@ -432,10 +425,10 @@ public class TeleGPSConfigUI c.anchor = GridBagConstraints.LINE_START; c.insets = ir; c.ipady = 5; - tracker_vert_value = new JComboBox(tracker_vert_values()); - tracker_vert_value.setEditable(true); - tracker_vert_value.addItemListener(this); - pane.add(tracker_vert_value, c); + tracker_interval_value = new JComboBox(tracker_interval_values); + tracker_interval_value.setEditable(true); + tracker_interval_value.addItemListener(this); + pane.add(tracker_interval_value, c); set_tracker_tool_tip(); row++; @@ -566,18 +559,11 @@ public class TeleGPSConfigUI } public void units_changed(boolean imperial_units) { - if (tracker_horiz_value.isEnabled() && tracker_vert_value.isEnabled()) { - String th = tracker_horiz_value.getSelectedItem().toString(); - String tv = tracker_vert_value.getSelectedItem().toString(); - tracker_horiz_label.setText(get_tracker_horiz_label()); - tracker_vert_label.setText(get_tracker_vert_label()); - set_tracker_horiz_values(); - set_tracker_vert_values(); - int[] t = { - (int) (AltosConvert.height.parse(th, !imperial_units) + 0.5), - (int) (AltosConvert.height.parse(tv, !imperial_units) + 0.5) - }; - set_tracker_distances(t); + if (tracker_motion_value.isEnabled()) { + String motion = tracker_motion_value.getSelectedItem().toString(); + tracker_motion_label.setText(get_tracker_motion_label()); + set_tracker_motion_values(); + set_tracker_motion((int) (AltosConvert.height.parse(motion, !imperial_units) + 0.5)); } } @@ -723,78 +709,51 @@ public class TeleGPSConfigUI public int beep() { return -1; } - String[] tracker_horiz_values() { + String[] tracker_motion_values() { if (AltosConvert.imperial_units) - return tracker_horiz_values_ft; + return tracker_motion_values_ft; else - return tracker_horiz_values_m; + return tracker_motion_values_m; } - void set_tracker_horiz_values() { - String[] v = tracker_horiz_values(); - while (tracker_horiz_value.getItemCount() > 0) - tracker_horiz_value.removeItemAt(0); + void set_tracker_motion_values() { + String[] v = tracker_motion_values(); + while (tracker_motion_value.getItemCount() > 0) + tracker_motion_value.removeItemAt(0); for (int i = 0; i < v.length; i++) - tracker_horiz_value.addItem(v[i]); - tracker_horiz_value.setMaximumRowCount(v.length); - } - - String get_tracker_horiz_label() { - return String.format("Logging Trigger Horizontal (%s):", AltosConvert.height.show_units()); - } - - String[] tracker_vert_values() { - if (AltosConvert.imperial_units) - return tracker_vert_values_ft; - else - return tracker_vert_values_m; + tracker_motion_value.addItem(v[i]); + tracker_motion_value.setMaximumRowCount(v.length); } - void set_tracker_vert_values() { - String[] v = tracker_vert_values(); - while (tracker_vert_value.getItemCount() > 0) - tracker_vert_value.removeItemAt(0); - for (int i = 0; i < v.length; i++) - tracker_vert_value.addItem(v[i]); - tracker_vert_value.setMaximumRowCount(v.length); + String get_tracker_motion_label() { + return String.format("Logging Trigger Motion (%s):", AltosConvert.height.show_units()); } void set_tracker_tool_tip() { - if (tracker_horiz_value.isEnabled()) - tracker_horiz_value.setToolTipText("How far the device must move before logging is enabled"); + if (tracker_motion_value.isEnabled()) + tracker_motion_value.setToolTipText("How far the device must move before logging"); else - tracker_horiz_value.setToolTipText("This device doesn't disable logging before motion"); - if (tracker_vert_value.isEnabled()) - tracker_vert_value.setToolTipText("How far the device must move before logging is enabled"); + tracker_motion_value.setToolTipText("This device doesn't disable logging when stationary"); + if (tracker_interval_value.isEnabled()) + tracker_interval_value.setToolTipText("How often to report GPS position"); else - tracker_vert_value.setToolTipText("This device doesn't disable logging before motion"); + tracker_interval_value.setToolTipText("This device can't configure interval"); } - String get_tracker_vert_label() { - return String.format("Logging Trigger Vertical (%s):", AltosConvert.height.show_units()); + public void set_tracker_motion(int tracker_motion) { + tracker_motion_value.setSelectedItem(AltosConvert.height.say(tracker_motion)); } - public void set_tracker_distances(int[] tracker_distances) { - if (tracker_distances != null) { - tracker_horiz_value.setSelectedItem(AltosConvert.height.say(tracker_distances[0])); - tracker_vert_value.setSelectedItem(AltosConvert.height.say(tracker_distances[1])); - tracker_horiz_value.setEnabled(true); - tracker_vert_value.setEnabled(true); - } else { - tracker_horiz_value.setEnabled(false); - tracker_vert_value.setEnabled(false); - } + public int tracker_motion() throws AltosConfigDataException { + return (int) AltosConvert.height.parse(tracker_motion_value.getSelectedItem().toString()); } - public int[] tracker_distances() { - if (tracker_horiz_value.isEnabled() && tracker_vert_value.isEnabled()) { - int[] t = { - (int) (AltosConvert.height.parse(tracker_horiz_value.getSelectedItem().toString()) + 0.5), - (int) (AltosConvert.height.parse(tracker_vert_value.getSelectedItem().toString()) + 0.5), - }; - return t; - } - return null; + public void set_tracker_interval(int tracker_interval) { + tracker_interval_value.setSelectedItem(String.format("%d", tracker_interval)); + } + + public int tracker_interval() throws AltosConfigDataException { + return parse_int ("tracker interval", tracker_interval_value.getSelectedItem().toString(), false); } public void set_aprs_interval(int new_aprs_interval) { -- cgit v1.2.3 From d744e588b7504f314e39b1407152d11c031673c9 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Wed, 11 Jun 2014 19:51:37 -0700 Subject: altosui: Add pyro firing time configuration Signed-off-by: Keith Packard --- altoslib/AltosConfigData.java | 8 +++++++ altoslib/AltosConfigValues.java | 4 ++++ altosui/AltosConfigPyroUI.java | 50 ++++++++++++++++++++++++++++++++++++++++- altosui/AltosConfigUI.java | 16 ++++++++++++- telegps/TeleGPSConfigUI.java | 7 ++++++ 5 files changed, 83 insertions(+), 2 deletions(-) (limited to 'altoslib/AltosConfigData.java') diff --git a/altoslib/AltosConfigData.java b/altoslib/AltosConfigData.java index 563bef4b..e1043958 100644 --- a/altoslib/AltosConfigData.java +++ b/altoslib/AltosConfigData.java @@ -67,6 +67,7 @@ public class AltosConfigData implements Iterable { public AltosPyro[] pyros; public int npyro; public int pyro; + public double pyro_firing_time; /* HAS_APRS */ public int aprs_interval; @@ -246,6 +247,7 @@ public class AltosConfigData implements Iterable { pyro = 0; npyro = 0; pyros = null; + pyro_firing_time = -1; aprs_interval = -1; @@ -327,6 +329,7 @@ public class AltosConfigData implements Iterable { pyros[pyro++] = p; } catch (Exception e) {} } + try { pyro_firing_time = get_int(line, "Pyro time:") / 100.0; } catch (Exception e) {} /* HAS_APRS */ try { aprs_interval = get_int(line, "APRS interval:"); } catch (Exception e) {} @@ -450,6 +453,8 @@ public class AltosConfigData implements Iterable { /* AO_PYRO_NUM */ if (npyro > 0) pyros = source.pyros(); + if (pyro_firing_time >= 0) + pyro_firing_time = source.pyro_firing_time(); /* HAS_APRS */ if (aprs_interval >= 0) @@ -500,6 +505,7 @@ public class AltosConfigData implements Iterable { dest.set_pyros(pyros); else dest.set_pyros(null); + dest.set_pyro_firing_time(pyro_firing_time); dest.set_aprs_interval(aprs_interval); dest.set_beep(beep); dest.set_tracker_motion(tracker_motion); @@ -565,6 +571,8 @@ public class AltosConfigData implements Iterable { pyros[p].toString()); } } + if (pyro_firing_time >= 0) + link.printf("c I %d\n", (int) (pyro_firing_time * 100.0 + 0.5)); /* HAS_APRS */ if (aprs_interval >= 0) diff --git a/altoslib/AltosConfigValues.java b/altoslib/AltosConfigValues.java index 778f1222..724ba7dc 100644 --- a/altoslib/AltosConfigValues.java +++ b/altoslib/AltosConfigValues.java @@ -73,6 +73,10 @@ public interface AltosConfigValues { public abstract AltosPyro[] pyros() throws AltosConfigDataException; + public abstract void set_pyro_firing_time(double new_pyro_firing_time); + + public abstract double pyro_firing_time() throws AltosConfigDataException; + public abstract int aprs_interval() throws AltosConfigDataException; public abstract void set_aprs_interval(int new_aprs_interval); diff --git a/altosui/AltosConfigPyroUI.java b/altosui/AltosConfigPyroUI.java index 7a298a3c..f0b4f0f9 100644 --- a/altosui/AltosConfigPyroUI.java +++ b/altosui/AltosConfigPyroUI.java @@ -278,6 +278,28 @@ public class AltosConfigPyroUI return pyros; } + JLabel pyro_firing_time_label; + JComboBox pyro_firing_time_value; + + static String[] pyro_firing_time_values = { + "0.050", "0.100", "0.250", "0.500", "1.0", "2.0" + }; + + public void set_pyro_firing_time(double new_pyro_firing_time) { + pyro_firing_time_value.setSelectedItem(Double.toString(new_pyro_firing_time)); + pyro_firing_time_value.setEnabled(new_pyro_firing_time >= 0); + } + + public double get_pyro_firing_time() throws AltosConfigDataException { + String v = pyro_firing_time_value.getSelectedItem().toString(); + + try { + return Double.parseDouble(v); + } catch (NumberFormatException e) { + throw new AltosConfigDataException("Invalid pyro firing time \"%s\"", v); + } + } + public void set_dirty() { owner.set_dirty(); } @@ -334,7 +356,7 @@ public class AltosConfigPyroUI setVisible(false); } - public AltosConfigPyroUI(AltosConfigUI in_owner, AltosPyro[] pyros) { + public AltosConfigPyroUI(AltosConfigUI in_owner, AltosPyro[] pyros, double pyro_firing_time) { super(in_owner, "Configure Pyro Channels", false); @@ -379,6 +401,32 @@ public class AltosConfigPyroUI columns[i].set(pyros[i]); } + /* Pyro firing time */ + c = new GridBagConstraints(); + c.gridx = 0; c.gridy = row; + c.gridwidth = 2; + c.fill = GridBagConstraints.NONE; + c.anchor = GridBagConstraints.LINE_START; + c.insets = il; + c.ipady = 5; + pyro_firing_time_label = new JLabel("Pyro Firing Time(s):"); + pane.add(pyro_firing_time_label, c); + + c = new GridBagConstraints(); + c.gridx = 2; c.gridy = row; + c.gridwidth = 7; + c.fill = GridBagConstraints.HORIZONTAL; + c.weightx = 1; + c.anchor = GridBagConstraints.LINE_START; + c.insets = ir; + c.ipady = 5; + pyro_firing_time_value = new JComboBox(pyro_firing_time_values); + pyro_firing_time_value.setEditable(true); + pyro_firing_time_value.addItemListener(this); + set_pyro_firing_time(pyro_firing_time); + pane.add(pyro_firing_time_value, c); + pyro_firing_time_value.setToolTipText("Length of extra pyro channel firing pulse"); + c = new GridBagConstraints(); c.gridx = pyros.length*2-1; c.fill = GridBagConstraints.HORIZONTAL; diff --git a/altosui/AltosConfigUI.java b/altosui/AltosConfigUI.java index ee54e31e..56d0d2a7 100644 --- a/altosui/AltosConfigUI.java +++ b/altosui/AltosConfigUI.java @@ -78,6 +78,7 @@ public class AltosConfigUI JButton close; AltosPyro[] pyros; + double pyro_firing_time; ActionListener listener; @@ -792,7 +793,7 @@ public class AltosConfigUI if (cmd.equals("Pyro")) { if (pyro_ui == null && pyros != null) - pyro_ui = new AltosConfigPyroUI(this, pyros); + pyro_ui = new AltosConfigPyroUI(this, pyros, pyro_firing_time); if (pyro_ui != null) pyro_ui.make_visible(); return; @@ -1130,6 +1131,19 @@ public class AltosConfigUI return pyros; } + public void set_pyro_firing_time(double new_pyro_firing_time) { + pyro_firing_time = new_pyro_firing_time; + pyro.setVisible(pyro_firing_time >= 0); + if (pyro_firing_time >= 0 && pyro_ui != null) + pyro_ui.set_pyro_firing_time(pyro_firing_time); + } + + public double pyro_firing_time() throws AltosConfigDataException { + if (pyro_ui != null) + pyro_firing_time = pyro_ui.get_pyro_firing_time(); + return pyro_firing_time; + } + public void set_aprs_interval(int new_aprs_interval) { String s; diff --git a/telegps/TeleGPSConfigUI.java b/telegps/TeleGPSConfigUI.java index 325ca7b9..f6c69040 100644 --- a/telegps/TeleGPSConfigUI.java +++ b/telegps/TeleGPSConfigUI.java @@ -115,6 +115,13 @@ public class TeleGPSConfigUI return null; } + public void set_pyro_firing_time(double new_pyro_firing_time) { + } + + public double pyro_firing_time() { + return -1; + } + boolean is_telemetrum() { String product = product_value.getText(); return product != null && product.startsWith("TeleGPS"); -- cgit v1.2.3