summaryrefslogtreecommitdiff
path: root/altoslib
diff options
context:
space:
mode:
authorBdale Garbee <bdale@gag.com>2018-10-08 17:52:22 -0600
committerBdale Garbee <bdale@gag.com>2018-10-08 17:52:22 -0600
commit2450e69d3afd3345a6e5f7ca133d929fbdcfdf53 (patch)
treec04aa34bdecbf909dbeea8854390364bf140e7ca /altoslib
parent449ed72371f80f03dcc5dcf66af5c9465e7ed57e (diff)
parent5a86ff43a2b4a90dbddc1bba48019626e1b83e10 (diff)
Merge branch 'branch-1.8' into debian
Diffstat (limited to 'altoslib')
-rw-r--r--altoslib/AltosAccel.java2
-rw-r--r--altoslib/AltosAccelCal.java2
-rw-r--r--altoslib/AltosAccelCalListener.java2
-rw-r--r--altoslib/AltosCRCException.java2
-rw-r--r--altoslib/AltosCSV.java4
-rw-r--r--altoslib/AltosCalData.java2
-rw-r--r--altoslib/AltosCompanion.java2
-rw-r--r--altoslib/AltosConfigData.java2
-rw-r--r--altoslib/AltosConfigDataException.java2
-rw-r--r--altoslib/AltosConfigValues.java2
-rw-r--r--altoslib/AltosConvert.java2
-rw-r--r--altoslib/AltosDataListener.java2
-rw-r--r--altoslib/AltosDataProvider.java2
-rw-r--r--altoslib/AltosDebug.java2
-rw-r--r--altoslib/AltosDistance.java2
-rw-r--r--altoslib/AltosEeprom.java2
-rw-r--r--altoslib/AltosEepromChunk.java2
-rw-r--r--altoslib/AltosEepromDownload.java2
-rw-r--r--altoslib/AltosEepromFile.java2
-rw-r--r--altoslib/AltosEepromList.java2
-rw-r--r--altoslib/AltosEepromLog.java2
-rw-r--r--altoslib/AltosEepromMonitor.java2
-rw-r--r--altoslib/AltosEepromRecord.java2
-rw-r--r--altoslib/AltosEepromRecordFireTwo.java2
-rw-r--r--altoslib/AltosEepromRecordFull.java2
-rw-r--r--altoslib/AltosEepromRecordGps.java2
-rw-r--r--altoslib/AltosEepromRecordMega.java2
-rw-r--r--altoslib/AltosEepromRecordMetrum.java2
-rw-r--r--altoslib/AltosEepromRecordMini.java2
-rw-r--r--altoslib/AltosEepromRecordSet.java2
-rw-r--r--altoslib/AltosEepromRecordTiny.java2
-rw-r--r--altoslib/AltosFile.java2
-rw-r--r--altoslib/AltosFilterListener.java2
-rw-r--r--altoslib/AltosFlash.java6
-rw-r--r--altoslib/AltosFlashListener.java6
-rw-r--r--altoslib/AltosFlightDisplay.java2
-rw-r--r--altoslib/AltosFlightReader.java2
-rw-r--r--altoslib/AltosFlightSeries.java2
-rw-r--r--altoslib/AltosFlightStats.java2
-rw-r--r--altoslib/AltosFontListener.java2
-rw-r--r--altoslib/AltosForce.java2
-rw-r--r--altoslib/AltosFrequency.java2
-rw-r--r--altoslib/AltosGPS.java2
-rw-r--r--altoslib/AltosGPSSat.java2
-rw-r--r--altoslib/AltosGPSTimeValue.java2
-rw-r--r--altoslib/AltosGreatCircle.java2
-rw-r--r--altoslib/AltosHeight.java2
-rw-r--r--altoslib/AltosHexfile.java12
-rw-r--r--altoslib/AltosHexsym.java2
-rw-r--r--altoslib/AltosIMU.java2
-rw-r--r--altoslib/AltosIdle.java2
-rw-r--r--altoslib/AltosIdleFetch.java2
-rw-r--r--altoslib/AltosIdleMonitor.java2
-rw-r--r--altoslib/AltosIdleMonitorListener.java2
-rw-r--r--altoslib/AltosIdleReader.java2
-rw-r--r--altoslib/AltosIgnite.java2
-rw-r--r--altoslib/AltosImage.java2
-rw-r--r--altoslib/AltosJson.java32
-rw-r--r--altoslib/AltosKML.java2
-rw-r--r--altoslib/AltosLatLon.java2
-rw-r--r--altoslib/AltosLatitude.java2
-rw-r--r--altoslib/AltosLaunchSite.java2
-rw-r--r--altoslib/AltosLaunchSiteListener.java2
-rw-r--r--altoslib/AltosLaunchSites.java14
-rw-r--r--altoslib/AltosLib.java11
-rw-r--r--altoslib/AltosLine.java2
-rw-r--r--altoslib/AltosLink.java2
-rw-r--r--altoslib/AltosListenerState.java2
-rw-r--r--altoslib/AltosLocation.java2
-rw-r--r--altoslib/AltosLog.java2
-rw-r--r--altoslib/AltosLongitude.java2
-rw-r--r--altoslib/AltosMag.java2
-rw-r--r--altoslib/AltosMap.java10
-rw-r--r--altoslib/AltosMapCache.java2
-rw-r--r--altoslib/AltosMapCacheListener.java2
-rw-r--r--altoslib/AltosMapInterface.java2
-rw-r--r--altoslib/AltosMapLine.java2
-rw-r--r--altoslib/AltosMapLoader.java5
-rw-r--r--altoslib/AltosMapLoaderListener.java2
-rw-r--r--altoslib/AltosMapMark.java2
-rw-r--r--altoslib/AltosMapPath.java2
-rw-r--r--altoslib/AltosMapPathPoint.java2
-rw-r--r--altoslib/AltosMapRectangle.java2
-rw-r--r--altoslib/AltosMapStore.java153
-rw-r--r--altoslib/AltosMapStoreListener.java2
-rw-r--r--altoslib/AltosMapTile.java2
-rw-r--r--altoslib/AltosMapTileListener.java2
-rw-r--r--altoslib/AltosMapTransform.java2
-rw-r--r--altoslib/AltosMapTypeListener.java2
-rw-r--r--altoslib/AltosMapZoomListener.java2
-rw-r--r--altoslib/AltosMma655x.java2
-rw-r--r--altoslib/AltosMs5607.java2
-rw-r--r--altoslib/AltosNoSymbol.java2
-rw-r--r--altoslib/AltosOrient.java2
-rw-r--r--altoslib/AltosParse.java2
-rw-r--r--altoslib/AltosPointDouble.java2
-rw-r--r--altoslib/AltosPointInt.java2
-rw-r--r--altoslib/AltosPreferences.java2
-rw-r--r--altoslib/AltosPreferencesBackend.java2
-rw-r--r--altoslib/AltosPresTemp.java2
-rw-r--r--altoslib/AltosPressure.java2
-rw-r--r--altoslib/AltosProgrammer.java2
-rw-r--r--altoslib/AltosPyro.java2
-rw-r--r--altoslib/AltosPyroName.java2
-rw-r--r--altoslib/AltosQuaternion.java2
-rw-r--r--altoslib/AltosRecordSet.java2
-rw-r--r--altoslib/AltosRectangle.java2
-rw-r--r--altoslib/AltosReplayReader.java2
-rw-r--r--altoslib/AltosRomconfig.java60
-rw-r--r--altoslib/AltosRotation.java2
-rw-r--r--altoslib/AltosRotationRate.java2
-rw-r--r--altoslib/AltosSavedState.java2
-rw-r--r--altoslib/AltosSelfFlash.java10
-rw-r--r--altoslib/AltosSensorEMini.java2
-rw-r--r--altoslib/AltosSensorMM.java2
-rw-r--r--altoslib/AltosSensorMega.java2
-rw-r--r--altoslib/AltosSensorMetrum.java2
-rw-r--r--altoslib/AltosSensorTGPS.java2
-rw-r--r--altoslib/AltosSensorTM.java2
-rw-r--r--altoslib/AltosSensorTMini2.java2
-rw-r--r--altoslib/AltosSensorTMini3.java2
-rw-r--r--altoslib/AltosSpeed.java2
-rw-r--r--altoslib/AltosState.java2
-rw-r--r--altoslib/AltosStateName.java2
-rw-r--r--altoslib/AltosStringInputStream.java2
-rw-r--r--altoslib/AltosTelemetry.java2
-rw-r--r--altoslib/AltosTelemetryCompanion.java2
-rw-r--r--altoslib/AltosTelemetryConfiguration.java2
-rw-r--r--altoslib/AltosTelemetryFile.java2
-rw-r--r--altoslib/AltosTelemetryIterable.java2
-rw-r--r--altoslib/AltosTelemetryLegacy.java2
-rw-r--r--altoslib/AltosTelemetryLocation.java2
-rw-r--r--altoslib/AltosTelemetryMap.java2
-rw-r--r--altoslib/AltosTelemetryMegaData.java2
-rw-r--r--altoslib/AltosTelemetryMegaSensor.java2
-rw-r--r--altoslib/AltosTelemetryMetrumData.java2
-rw-r--r--altoslib/AltosTelemetryMetrumSensor.java2
-rw-r--r--altoslib/AltosTelemetryMini2.java2
-rw-r--r--altoslib/AltosTelemetryMini3.java2
-rw-r--r--altoslib/AltosTelemetryRaw.java2
-rw-r--r--altoslib/AltosTelemetryReader.java2
-rw-r--r--altoslib/AltosTelemetrySatellite.java2
-rw-r--r--altoslib/AltosTelemetrySensor.java2
-rw-r--r--altoslib/AltosTelemetryStandard.java2
-rw-r--r--altoslib/AltosTemperature.java2
-rw-r--r--altoslib/AltosTime.java2
-rw-r--r--altoslib/AltosTimeSeries.java2
-rw-r--r--altoslib/AltosTimeValue.java2
-rw-r--r--altoslib/AltosUnitInfo.java106
-rw-r--r--altoslib/AltosUnitInfoListener.java19
-rw-r--r--altoslib/AltosUnits.java2
-rw-r--r--altoslib/AltosUnitsListener.java2
-rw-r--r--altoslib/AltosUnitsRange.java2
-rw-r--r--altoslib/AltosUnknownProduct.java2
-rw-r--r--altoslib/AltosUsbId.java2
-rw-r--r--altoslib/AltosVersion.java.in8
-rw-r--r--altoslib/AltosVoltage.java2
-rw-r--r--altoslib/AltosWriter.java2
-rw-r--r--altoslib/Makefile.am4
159 files changed, 453 insertions, 293 deletions
diff --git a/altoslib/AltosAccel.java b/altoslib/AltosAccel.java
index 8fefefc5..8bc6db6d 100644
--- a/altoslib/AltosAccel.java
+++ b/altoslib/AltosAccel.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
diff --git a/altoslib/AltosAccelCal.java b/altoslib/AltosAccelCal.java
index f98090ef..be5497a3 100644
--- a/altoslib/AltosAccelCal.java
+++ b/altoslib/AltosAccelCal.java
@@ -16,7 +16,7 @@
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.util.concurrent.*;
diff --git a/altoslib/AltosAccelCalListener.java b/altoslib/AltosAccelCalListener.java
index 17359245..2c5439b4 100644
--- a/altoslib/AltosAccelCalListener.java
+++ b/altoslib/AltosAccelCalListener.java
@@ -16,7 +16,7 @@
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.util.concurrent.*;
diff --git a/altoslib/AltosCRCException.java b/altoslib/AltosCRCException.java
index 5c398d3c..f9687654 100644
--- a/altoslib/AltosCRCException.java
+++ b/altoslib/AltosCRCException.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosCRCException extends Exception {
public int rssi;
diff --git a/altoslib/AltosCSV.java b/altoslib/AltosCSV.java
index a8de23f0..a08db23e 100644
--- a/altoslib/AltosCSV.java
+++ b/altoslib/AltosCSV.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.util.*;
@@ -209,7 +209,7 @@ public class AltosCSV implements AltosWriter {
}
void write_advanced_header() {
- out.printf("accel_x,accel_y,accel_z,gyro_x,gyro_y,gyro_z,mag_x,mag_y,mag_z,tilt");
+ out.printf("accel_x,accel_y,accel_z,gyro_roll,gyro_pitch,gyro_yaw,mag_x,mag_y,mag_z,tilt");
}
double accel_along() { return series.value(AltosFlightSeries.accel_along_name, indices); }
diff --git a/altoslib/AltosCalData.java b/altoslib/AltosCalData.java
index 5bc6c4fd..d448fdfe 100644
--- a/altoslib/AltosCalData.java
+++ b/altoslib/AltosCalData.java
@@ -12,7 +12,7 @@
* General Public License for more details.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
/*
* Calibration and other data needed to construct 'real' values from various data
diff --git a/altoslib/AltosCompanion.java b/altoslib/AltosCompanion.java
index 5ce333f8..1e1bad98 100644
--- a/altoslib/AltosCompanion.java
+++ b/altoslib/AltosCompanion.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
diff --git a/altoslib/AltosConfigData.java b/altoslib/AltosConfigData.java
index 8d0bb479..48dab421 100644
--- a/altoslib/AltosConfigData.java
+++ b/altoslib/AltosConfigData.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.util.*;
import java.text.*;
diff --git a/altoslib/AltosConfigDataException.java b/altoslib/AltosConfigDataException.java
index fe6336b6..48ec35df 100644
--- a/altoslib/AltosConfigDataException.java
+++ b/altoslib/AltosConfigDataException.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosConfigDataException extends Exception {
diff --git a/altoslib/AltosConfigValues.java b/altoslib/AltosConfigValues.java
index 10478fd4..9d02b2f0 100644
--- a/altoslib/AltosConfigValues.java
+++ b/altoslib/AltosConfigValues.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public interface AltosConfigValues {
/* set and get all of the dialog values */
diff --git a/altoslib/AltosConvert.java b/altoslib/AltosConvert.java
index ed16541a..d2460187 100644
--- a/altoslib/AltosConvert.java
+++ b/altoslib/AltosConvert.java
@@ -19,7 +19,7 @@
/*
* Sensor data conversion functions
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.util.*;
diff --git a/altoslib/AltosDataListener.java b/altoslib/AltosDataListener.java
index 9a1e1465..709b71b6 100644
--- a/altoslib/AltosDataListener.java
+++ b/altoslib/AltosDataListener.java
@@ -12,7 +12,7 @@
* General Public License for more details.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public abstract class AltosDataListener {
diff --git a/altoslib/AltosDataProvider.java b/altoslib/AltosDataProvider.java
index 9589a8e6..bb179580 100644
--- a/altoslib/AltosDataProvider.java
+++ b/altoslib/AltosDataProvider.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public interface AltosDataProvider {
public void provide_data(AltosDataListener listener) throws InterruptedException, AltosUnknownProduct;
diff --git a/altoslib/AltosDebug.java b/altoslib/AltosDebug.java
index a44eb12f..57e97a18 100644
--- a/altoslib/AltosDebug.java
+++ b/altoslib/AltosDebug.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
diff --git a/altoslib/AltosDistance.java b/altoslib/AltosDistance.java
index 38efbf1a..6560f9ed 100644
--- a/altoslib/AltosDistance.java
+++ b/altoslib/AltosDistance.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosDistance extends AltosUnits {
diff --git a/altoslib/AltosEeprom.java b/altoslib/AltosEeprom.java
index 124bd478..1ececde1 100644
--- a/altoslib/AltosEeprom.java
+++ b/altoslib/AltosEeprom.java
@@ -12,7 +12,7 @@
* General Public License for more details.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.util.*;
import java.io.*;
diff --git a/altoslib/AltosEepromChunk.java b/altoslib/AltosEepromChunk.java
index 4f12c190..1c1e80c7 100644
--- a/altoslib/AltosEepromChunk.java
+++ b/altoslib/AltosEepromChunk.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.text.*;
import java.util.concurrent.*;
diff --git a/altoslib/AltosEepromDownload.java b/altoslib/AltosEepromDownload.java
index 547b523f..280414f8 100644
--- a/altoslib/AltosEepromDownload.java
+++ b/altoslib/AltosEepromDownload.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.util.*;
diff --git a/altoslib/AltosEepromFile.java b/altoslib/AltosEepromFile.java
index 067f0302..839f0aa0 100644
--- a/altoslib/AltosEepromFile.java
+++ b/altoslib/AltosEepromFile.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.util.*;
diff --git a/altoslib/AltosEepromList.java b/altoslib/AltosEepromList.java
index c55bcaaa..a9551d85 100644
--- a/altoslib/AltosEepromList.java
+++ b/altoslib/AltosEepromList.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.util.*;
diff --git a/altoslib/AltosEepromLog.java b/altoslib/AltosEepromLog.java
index ba722b89..0da3e991 100644
--- a/altoslib/AltosEepromLog.java
+++ b/altoslib/AltosEepromLog.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.text.*;
diff --git a/altoslib/AltosEepromMonitor.java b/altoslib/AltosEepromMonitor.java
index 11144a3a..f58df11b 100644
--- a/altoslib/AltosEepromMonitor.java
+++ b/altoslib/AltosEepromMonitor.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
diff --git a/altoslib/AltosEepromRecord.java b/altoslib/AltosEepromRecord.java
index 43e8ea4d..22cb8f89 100644
--- a/altoslib/AltosEepromRecord.java
+++ b/altoslib/AltosEepromRecord.java
@@ -12,7 +12,7 @@
* General Public License for more details.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public abstract class AltosEepromRecord implements Comparable<AltosEepromRecord> {
diff --git a/altoslib/AltosEepromRecordFireTwo.java b/altoslib/AltosEepromRecordFireTwo.java
index d6b74d1b..38b6c841 100644
--- a/altoslib/AltosEepromRecordFireTwo.java
+++ b/altoslib/AltosEepromRecordFireTwo.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.util.*;
diff --git a/altoslib/AltosEepromRecordFull.java b/altoslib/AltosEepromRecordFull.java
index 7e92d353..dc421d8d 100644
--- a/altoslib/AltosEepromRecordFull.java
+++ b/altoslib/AltosEepromRecordFull.java
@@ -12,7 +12,7 @@
* General Public License for more details.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosEepromRecordFull extends AltosEepromRecord {
public static final int record_length = 8;
diff --git a/altoslib/AltosEepromRecordGps.java b/altoslib/AltosEepromRecordGps.java
index 5cf5db39..e2fd7928 100644
--- a/altoslib/AltosEepromRecordGps.java
+++ b/altoslib/AltosEepromRecordGps.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.util.*;
diff --git a/altoslib/AltosEepromRecordMega.java b/altoslib/AltosEepromRecordMega.java
index 86343fe0..6b28c50a 100644
--- a/altoslib/AltosEepromRecordMega.java
+++ b/altoslib/AltosEepromRecordMega.java
@@ -12,7 +12,7 @@
* General Public License for more details.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosEepromRecordMega extends AltosEepromRecord {
public static final int record_length = 32;
diff --git a/altoslib/AltosEepromRecordMetrum.java b/altoslib/AltosEepromRecordMetrum.java
index 888a06cc..102d1407 100644
--- a/altoslib/AltosEepromRecordMetrum.java
+++ b/altoslib/AltosEepromRecordMetrum.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosEepromRecordMetrum extends AltosEepromRecord {
public static final int record_length = 16;
diff --git a/altoslib/AltosEepromRecordMini.java b/altoslib/AltosEepromRecordMini.java
index 55696693..2d212df0 100644
--- a/altoslib/AltosEepromRecordMini.java
+++ b/altoslib/AltosEepromRecordMini.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosEepromRecordMini extends AltosEepromRecord {
public static final int record_length = 16;
diff --git a/altoslib/AltosEepromRecordSet.java b/altoslib/AltosEepromRecordSet.java
index 36075931..27f81df6 100644
--- a/altoslib/AltosEepromRecordSet.java
+++ b/altoslib/AltosEepromRecordSet.java
@@ -12,7 +12,7 @@
* General Public License for more details.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.util.*;
diff --git a/altoslib/AltosEepromRecordTiny.java b/altoslib/AltosEepromRecordTiny.java
index 06ee9d54..428a9fc5 100644
--- a/altoslib/AltosEepromRecordTiny.java
+++ b/altoslib/AltosEepromRecordTiny.java
@@ -12,7 +12,7 @@
* General Public License for more details.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosEepromRecordTiny extends AltosEepromRecord implements AltosDataProvider {
public static final int record_length = 2;
diff --git a/altoslib/AltosFile.java b/altoslib/AltosFile.java
index 6f98b87a..e96b19db 100644
--- a/altoslib/AltosFile.java
+++ b/altoslib/AltosFile.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.File;
import java.util.*;
diff --git a/altoslib/AltosFilterListener.java b/altoslib/AltosFilterListener.java
index fe91100a..d870c083 100644
--- a/altoslib/AltosFilterListener.java
+++ b/altoslib/AltosFilterListener.java
@@ -12,7 +12,7 @@
* General Public License for more details.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public interface AltosFilterListener {
void filter_changed(double speed_filter, double accel_filter);
diff --git a/altoslib/AltosFlash.java b/altoslib/AltosFlash.java
index 9bf0da25..e6b05713 100644
--- a/altoslib/AltosFlash.java
+++ b/altoslib/AltosFlash.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
@@ -257,7 +257,7 @@ public class AltosFlash extends AltosProgrammer {
int flash_addr = (int) image.address;
int image_start = 0;
- action("start", 0);
+ action(AltosFlashListener.flash_start, 0);
action(0, image.data.length);
while (remain > 0 && !aborted) {
int this_time = remain;
@@ -293,7 +293,7 @@ public class AltosFlash extends AltosProgrammer {
action(image.data.length - remain, image.data.length);
}
if (!aborted) {
- action("done", 100);
+ action(AltosFlashListener.flash_done, 100);
if (debug != null) {
debug.set_pc((int) image.address);
debug.resume();
diff --git a/altoslib/AltosFlashListener.java b/altoslib/AltosFlashListener.java
index 60052133..120e7146 100644
--- a/altoslib/AltosFlashListener.java
+++ b/altoslib/AltosFlashListener.java
@@ -16,8 +16,12 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public interface AltosFlashListener {
+
+ public final static String flash_start = "start";
+ public final static String flash_done = "done";
+
public void position(String label, int percent);
}
diff --git a/altoslib/AltosFlightDisplay.java b/altoslib/AltosFlightDisplay.java
index 8fe33c5e..7743fda5 100644
--- a/altoslib/AltosFlightDisplay.java
+++ b/altoslib/AltosFlightDisplay.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public interface AltosFlightDisplay extends AltosUnitsListener, AltosFontListener {
void reset();
diff --git a/altoslib/AltosFlightReader.java b/altoslib/AltosFlightReader.java
index 671bf638..a4724f04 100644
--- a/altoslib/AltosFlightReader.java
+++ b/altoslib/AltosFlightReader.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.text.*;
import java.io.*;
diff --git a/altoslib/AltosFlightSeries.java b/altoslib/AltosFlightSeries.java
index 182bdd19..32bd6c5e 100644
--- a/altoslib/AltosFlightSeries.java
+++ b/altoslib/AltosFlightSeries.java
@@ -12,7 +12,7 @@
* General Public License for more details.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.util.*;
diff --git a/altoslib/AltosFlightStats.java b/altoslib/AltosFlightStats.java
index 2760321d..7c8ed85e 100644
--- a/altoslib/AltosFlightStats.java
+++ b/altoslib/AltosFlightStats.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
diff --git a/altoslib/AltosFontListener.java b/altoslib/AltosFontListener.java
index 97947d0b..736d2426 100644
--- a/altoslib/AltosFontListener.java
+++ b/altoslib/AltosFontListener.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public interface AltosFontListener {
void font_size_changed(int font_size);
diff --git a/altoslib/AltosForce.java b/altoslib/AltosForce.java
index 47fb900c..99fe2671 100644
--- a/altoslib/AltosForce.java
+++ b/altoslib/AltosForce.java
@@ -15,7 +15,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosForce extends AltosUnits {
diff --git a/altoslib/AltosFrequency.java b/altoslib/AltosFrequency.java
index dfe33789..58f503c5 100644
--- a/altoslib/AltosFrequency.java
+++ b/altoslib/AltosFrequency.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.util.*;
diff --git a/altoslib/AltosGPS.java b/altoslib/AltosGPS.java
index b6ca3576..8037eb93 100644
--- a/altoslib/AltosGPS.java
+++ b/altoslib/AltosGPS.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.text.*;
import java.util.concurrent.*;
diff --git a/altoslib/AltosGPSSat.java b/altoslib/AltosGPSSat.java
index 8d3b316a..6c045a31 100644
--- a/altoslib/AltosGPSSat.java
+++ b/altoslib/AltosGPSSat.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.text.*;
diff --git a/altoslib/AltosGPSTimeValue.java b/altoslib/AltosGPSTimeValue.java
index e15c60e3..5ad1afa1 100644
--- a/altoslib/AltosGPSTimeValue.java
+++ b/altoslib/AltosGPSTimeValue.java
@@ -15,7 +15,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosGPSTimeValue {
public double time;
diff --git a/altoslib/AltosGreatCircle.java b/altoslib/AltosGreatCircle.java
index f1cb1940..cd5b9636 100644
--- a/altoslib/AltosGreatCircle.java
+++ b/altoslib/AltosGreatCircle.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.lang.Math;
import java.io.*;
diff --git a/altoslib/AltosHeight.java b/altoslib/AltosHeight.java
index 668080f1..f65ca899 100644
--- a/altoslib/AltosHeight.java
+++ b/altoslib/AltosHeight.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosHeight extends AltosUnits {
diff --git a/altoslib/AltosHexfile.java b/altoslib/AltosHexfile.java
index f2ab4bea..609d1bcb 100644
--- a/altoslib/AltosHexfile.java
+++ b/altoslib/AltosHexfile.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.util.LinkedList;
@@ -354,11 +354,6 @@ public class AltosHexfile {
int product_len = get_u8(a);
- System.out.printf("Product is at %x length %d\n", a, product_len);
-
- for (int i = 0; i < product_len; i++)
- System.out.printf(" %2d: %02x\n", i, get_u8(a+i));
-
if (product_len <= 0)
return null;
@@ -367,12 +362,11 @@ public class AltosHexfile {
for (int i = 0; i < product_len - 2; i += 2) {
int c = get_u16(a + 2 + i);
- System.out.printf("character %x\n", c);
-
product += Character.toString((char) c);
}
- System.out.printf("product %s\n", product);
+ if (AltosLink.debug)
+ System.out.printf("product %s\n", product);
return product;
}
diff --git a/altoslib/AltosHexsym.java b/altoslib/AltosHexsym.java
index 4f56af9a..b1323484 100644
--- a/altoslib/AltosHexsym.java
+++ b/altoslib/AltosHexsym.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosHexsym {
String name;
diff --git a/altoslib/AltosIMU.java b/altoslib/AltosIMU.java
index df81c9dd..114dfcf9 100644
--- a/altoslib/AltosIMU.java
+++ b/altoslib/AltosIMU.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.util.concurrent.*;
import java.io.*;
diff --git a/altoslib/AltosIdle.java b/altoslib/AltosIdle.java
index b5ee20d0..6c6758ca 100644
--- a/altoslib/AltosIdle.java
+++ b/altoslib/AltosIdle.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.util.*;
diff --git a/altoslib/AltosIdleFetch.java b/altoslib/AltosIdleFetch.java
index 88a5dab4..88a65e63 100644
--- a/altoslib/AltosIdleFetch.java
+++ b/altoslib/AltosIdleFetch.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.util.*;
diff --git a/altoslib/AltosIdleMonitor.java b/altoslib/AltosIdleMonitor.java
index 834d9aa5..99d31921 100644
--- a/altoslib/AltosIdleMonitor.java
+++ b/altoslib/AltosIdleMonitor.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.util.concurrent.*;
diff --git a/altoslib/AltosIdleMonitorListener.java b/altoslib/AltosIdleMonitorListener.java
index 1ddec09a..43e2376f 100644
--- a/altoslib/AltosIdleMonitorListener.java
+++ b/altoslib/AltosIdleMonitorListener.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public interface AltosIdleMonitorListener {
public void update(AltosState state, AltosListenerState listener_state);
diff --git a/altoslib/AltosIdleReader.java b/altoslib/AltosIdleReader.java
index d15e2174..24477d62 100644
--- a/altoslib/AltosIdleReader.java
+++ b/altoslib/AltosIdleReader.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.text.*;
import java.io.*;
diff --git a/altoslib/AltosIgnite.java b/altoslib/AltosIgnite.java
index 767c00fb..50c0f22d 100644
--- a/altoslib/AltosIgnite.java
+++ b/altoslib/AltosIgnite.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.util.*;
import java.io.*;
diff --git a/altoslib/AltosImage.java b/altoslib/AltosImage.java
index abe9d56f..210a37c1 100644
--- a/altoslib/AltosImage.java
+++ b/altoslib/AltosImage.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
diff --git a/altoslib/AltosJson.java b/altoslib/AltosJson.java
index 52c9b41e..b981c365 100644
--- a/altoslib/AltosJson.java
+++ b/altoslib/AltosJson.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.util.*;
@@ -63,18 +63,22 @@ class JsonUtil {
result.append("\t");
return result;
}
- static NumberFormat get_nf_json() {
- DecimalFormat nf = (DecimalFormat) NumberFormat.getNumberInstance(Locale.ROOT);
- nf.setParseIntegerOnly(false);
- nf.setGroupingUsed(false);
- nf.setMaximumFractionDigits(17);
- nf.setMinimumFractionDigits(0);
- nf.setMinimumIntegerDigits(1);
- nf.setDecimalSeparatorAlwaysShown(false);
- return nf;
- }
- static NumberFormat nf_json = get_nf_json();
+ NumberFormat _nf_json;
+
+ NumberFormat nf_json() {
+ if (_nf_json == null) {
+ DecimalFormat nf = (DecimalFormat) NumberFormat.getNumberInstance(Locale.ROOT);
+ nf.setParseIntegerOnly(false);
+ nf.setGroupingUsed(false);
+ nf.setMaximumFractionDigits(17);
+ nf.setMinimumFractionDigits(0);
+ nf.setMinimumIntegerDigits(1);
+ nf.setDecimalSeparatorAlwaysShown(false);
+ _nf_json = nf;
+ }
+ return _nf_json;
+ }
}
class JsonHash extends JsonUtil {
@@ -372,7 +376,7 @@ class JsonLexer extends JsonUtil {
String dstr = dbuf.toString();
double dval;
try {
- dval = nf_json.parse(dstr).doubleValue();
+ dval = nf_json().parse(dstr).doubleValue();
} catch (ParseException pe) {
return new JsonToken(JsonToken._error, dstr);
}
@@ -612,7 +616,7 @@ public class AltosJson extends JsonUtil {
} else if (Double.isNaN(d_number)) {
result.append("NaN");
} else {
- String dval = nf_json.format(d_number);
+ String dval = nf_json().format(d_number);
if (dval.equals("-0"))
dval = "0";
result.append(dval);
diff --git a/altoslib/AltosKML.java b/altoslib/AltosKML.java
index d5248a17..cafc7f96 100644
--- a/altoslib/AltosKML.java
+++ b/altoslib/AltosKML.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.util.*;
diff --git a/altoslib/AltosLatLon.java b/altoslib/AltosLatLon.java
index 6fcc43fe..cd7015e3 100644
--- a/altoslib/AltosLatLon.java
+++ b/altoslib/AltosLatLon.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosLatLon {
public double lat;
diff --git a/altoslib/AltosLatitude.java b/altoslib/AltosLatitude.java
index f43397d0..4c8ea0b2 100644
--- a/altoslib/AltosLatitude.java
+++ b/altoslib/AltosLatitude.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosLatitude extends AltosLocation {
public String pos() { return "N"; }
diff --git a/altoslib/AltosLaunchSite.java b/altoslib/AltosLaunchSite.java
index 19fb4858..a71e138d 100644
--- a/altoslib/AltosLaunchSite.java
+++ b/altoslib/AltosLaunchSite.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.lang.*;
diff --git a/altoslib/AltosLaunchSiteListener.java b/altoslib/AltosLaunchSiteListener.java
index 0d926353..ecae488c 100644
--- a/altoslib/AltosLaunchSiteListener.java
+++ b/altoslib/AltosLaunchSiteListener.java
@@ -15,7 +15,7 @@
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.lang.*;
diff --git a/altoslib/AltosLaunchSites.java b/altoslib/AltosLaunchSites.java
index 365f19e3..2c04c90e 100644
--- a/altoslib/AltosLaunchSites.java
+++ b/altoslib/AltosLaunchSites.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.lang.*;
@@ -30,6 +30,8 @@ public class AltosLaunchSites extends Thread {
LinkedList<AltosLaunchSite> sites;
AltosLaunchSiteListener listener;
+ public static String launch_sites_url;
+
void notify_complete() {
listener.notify_launch_sites(sites);
}
@@ -50,9 +52,13 @@ public class AltosLaunchSites extends Thread {
try {
String path;
- path = System.getenv(AltosLib.launch_sites_env);
- if (path == null)
- path = AltosLib.launch_sites_url;
+ if (launch_sites_url != null)
+ path = launch_sites_url;
+ else {
+ path = System.getenv(AltosLib.launch_sites_env);
+ if (path == null)
+ path = AltosLib.launch_sites_url;
+ }
url = new URL(path);
URLConnection uc = url.openConnection();
diff --git a/altoslib/AltosLib.java b/altoslib/AltosLib.java
index 7d2b68e0..8b0170ae 100644
--- a/altoslib/AltosLib.java
+++ b/altoslib/AltosLib.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.util.*;
import java.io.*;
@@ -180,6 +180,10 @@ public class AltosLib {
return device_type == product_telemega || device_type == product_easymega;
}
+ public static boolean has_radio(int device_type) {
+ return device_type != product_easymini && device_type != product_easymega;
+ }
+
public static boolean has_gps(int device_type) {
return device_type == product_telemetrum ||
device_type == product_telemega ||
@@ -222,10 +226,13 @@ public class AltosLib {
"Compressed", "Uncompressed"
};
- public static final String launch_sites_url = "http://www.altusmetrum.org/AltOS/launch-sites.txt";
+ public static final String launch_sites_url = "https://maps.altusmetrum.org/launch-sites.txt";
public static final String launch_sites_env = "LAUNCH_SITES";
// public static final String launch_sites_url = "file:///home/keithp/misc/text/altusmetrum/AltOS/launch-sites.txt";
+ public static final String unit_info_url = "https://altusmetrum.org/cgi-bin/unitinfo.cgi?sn=%d";
+ public static final String unit_info_env = "UNIT_INFO";
+
public static final int ao_telemetry_standard_len = 32;
public static final int ao_telemetry_0_9_len = 95;
public static final int ao_telemetry_0_8_len = 94;
diff --git a/altoslib/AltosLine.java b/altoslib/AltosLine.java
index b3833f64..a18366ed 100644
--- a/altoslib/AltosLine.java
+++ b/altoslib/AltosLine.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosLine {
public String line;
diff --git a/altoslib/AltosLink.java b/altoslib/AltosLink.java
index 3ad34891..44202c0c 100644
--- a/altoslib/AltosLink.java
+++ b/altoslib/AltosLink.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.util.concurrent.*;
diff --git a/altoslib/AltosListenerState.java b/altoslib/AltosListenerState.java
index 949d2271..44820471 100644
--- a/altoslib/AltosListenerState.java
+++ b/altoslib/AltosListenerState.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
diff --git a/altoslib/AltosLocation.java b/altoslib/AltosLocation.java
index 45831004..0ffc044e 100644
--- a/altoslib/AltosLocation.java
+++ b/altoslib/AltosLocation.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public abstract class AltosLocation extends AltosUnits {
diff --git a/altoslib/AltosLog.java b/altoslib/AltosLog.java
index 44bea646..3111a2cd 100644
--- a/altoslib/AltosLog.java
+++ b/altoslib/AltosLog.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.text.*;
diff --git a/altoslib/AltosLongitude.java b/altoslib/AltosLongitude.java
index b2134cbb..6c7f715b 100644
--- a/altoslib/AltosLongitude.java
+++ b/altoslib/AltosLongitude.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosLongitude extends AltosLocation {
public String pos() { return "E"; }
diff --git a/altoslib/AltosMag.java b/altoslib/AltosMag.java
index 0d8ec69f..cbf9ecff 100644
--- a/altoslib/AltosMag.java
+++ b/altoslib/AltosMag.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.util.concurrent.*;
import java.io.*;
diff --git a/altoslib/AltosMap.java b/altoslib/AltosMap.java
index 286cf1bb..b033cbff 100644
--- a/altoslib/AltosMap.java
+++ b/altoslib/AltosMap.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.lang.*;
@@ -211,12 +211,14 @@ public class AltosMap implements AltosMapTileListener, AltosMapStoreListener {
}
public boolean set_maptype(int maptype) {
+/*
if (maptype != this.maptype) {
this.maptype = maptype;
tiles.clear();
repaint();
return true;
}
+*/
return false;
}
@@ -339,7 +341,9 @@ public class AltosMap implements AltosMapTileListener, AltosMapStoreListener {
AltosLatLon ul = transform.lat_lon(point);
AltosLatLon center = transform.lat_lon(new AltosPointDouble(x + AltosMap.px_size/2, y + AltosMap.px_size/2));
AltosMapTile tile = map_interface.new_tile(cache, ul, center, zoom, maptype, px_size, scale);
- debug("show state %s url %s\n", AltosMapTile.status_name(tile.store.status()), tile.store.url);
+ int status = tile.store.status();
+ if (status == AltosMapTile.fetching)
+ debug("Fetching %.6f %.6f %d\n", center.lat, center.lon, zoom);
tile.add_listener(this);
tiles.put(point, tile);
}
@@ -350,7 +354,7 @@ public class AltosMap implements AltosMapTileListener, AltosMapStoreListener {
public void set_load_params(int new_zoom, int new_type, double lat, double lon, int radius, AltosMapTileListener listener) {
if (AltosMap.min_zoom <= new_zoom && new_zoom <= AltosMap.max_zoom)
zoom = new_zoom;
- maptype = new_type;
+/* maptype = new_type; */
load_centre = new AltosLatLon(lat, lon);
load_radius = radius;
load_listener = listener;
diff --git a/altoslib/AltosMapCache.java b/altoslib/AltosMapCache.java
index 54d2dbdd..01b39b47 100644
--- a/altoslib/AltosMapCache.java
+++ b/altoslib/AltosMapCache.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.net.*;
diff --git a/altoslib/AltosMapCacheListener.java b/altoslib/AltosMapCacheListener.java
index 8c07e3c1..b7d851b8 100644
--- a/altoslib/AltosMapCacheListener.java
+++ b/altoslib/AltosMapCacheListener.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public interface AltosMapCacheListener {
public void map_cache_changed(int map_cache);
diff --git a/altoslib/AltosMapInterface.java b/altoslib/AltosMapInterface.java
index 5089db64..e407e0fe 100644
--- a/altoslib/AltosMapInterface.java
+++ b/altoslib/AltosMapInterface.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.net.*;
diff --git a/altoslib/AltosMapLine.java b/altoslib/AltosMapLine.java
index f2174935..b971711e 100644
--- a/altoslib/AltosMapLine.java
+++ b/altoslib/AltosMapLine.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.lang.Math;
diff --git a/altoslib/AltosMapLoader.java b/altoslib/AltosMapLoader.java
index b57591df..4047907d 100644
--- a/altoslib/AltosMapLoader.java
+++ b/altoslib/AltosMapLoader.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.util.*;
@@ -214,7 +214,10 @@ public class AltosMapLoader extends Thread implements AltosMapStoreListener {
this.min_z = min_z;
this.max_z = max_z;
this.radius = radius;
+/*
this.all_types = all_types;
+*/
+ this.all_types = 1 << AltosMap.maptype_hybrid;
this.scale = scale;
this.abort = false;
start();
diff --git a/altoslib/AltosMapLoaderListener.java b/altoslib/AltosMapLoaderListener.java
index 7f36c002..3ef8789d 100644
--- a/altoslib/AltosMapLoaderListener.java
+++ b/altoslib/AltosMapLoaderListener.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public interface AltosMapLoaderListener {
public abstract void loader_start(int max);
diff --git a/altoslib/AltosMapMark.java b/altoslib/AltosMapMark.java
index 4ef179ef..a263f814 100644
--- a/altoslib/AltosMapMark.java
+++ b/altoslib/AltosMapMark.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.lang.Math;
diff --git a/altoslib/AltosMapPath.java b/altoslib/AltosMapPath.java
index 1542a4e9..7104b2f6 100644
--- a/altoslib/AltosMapPath.java
+++ b/altoslib/AltosMapPath.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.lang.Math;
diff --git a/altoslib/AltosMapPathPoint.java b/altoslib/AltosMapPathPoint.java
index 409a6a5c..9a1edd42 100644
--- a/altoslib/AltosMapPathPoint.java
+++ b/altoslib/AltosMapPathPoint.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.lang.Math;
diff --git a/altoslib/AltosMapRectangle.java b/altoslib/AltosMapRectangle.java
index 0751aa33..8a28f218 100644
--- a/altoslib/AltosMapRectangle.java
+++ b/altoslib/AltosMapRectangle.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosMapRectangle {
AltosLatLon ul, lr;
diff --git a/altoslib/AltosMapStore.java b/altoslib/AltosMapStore.java
index 4eba3a04..2f85fb8d 100644
--- a/altoslib/AltosMapStore.java
+++ b/altoslib/AltosMapStore.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.net.*;
@@ -48,9 +48,21 @@ public class AltosMapStore {
chlat, lat, chlon, lon, maptype_string, zoom, scale == 1 ? "" : String.format("-%d", scale), format_string));
}
+ public static String google_maps_api_key = null;
+
+ private static String google_map_url(AltosLatLon center, int zoom, int maptype, int px_size, int scale, String format_string) {
+ return String.format("http://maps.google.com/maps/api/staticmap?center=%.6f,%.6f&zoom=%d&size=%dx%d&scale=%d&sensor=false&maptype=%s&format=%s&key=%s",
+ center.lat, center.lon, zoom, px_size, px_size, scale,
+ AltosMap.maptype_names[maptype], format_string, google_maps_api_key);
+ }
+
+ private static String altos_map_url(AltosLatLon center, int zoom, int maptype, int px_size, int scale, String format_string) {
+ return String.format("https://maps.altusmetrum.org/cgi-bin/altos-map?lat=%.6f&lon=%.6f&zoom=%d",
+ center.lat, center.lon, zoom);
+ }
+
private static String map_url(AltosLatLon center, int zoom, int maptype, int px_size, int scale) {
String format_string;
- int z = zoom;
if (maptype == AltosMap.maptype_hybrid || maptype == AltosMap.maptype_satellite || maptype == AltosMap.maptype_terrain)
format_string = "jpg";
@@ -58,17 +70,17 @@ public class AltosMapStore {
format_string = "png32";
for (int s = 1; s < scale; s <<= 1)
- z--;
+ zoom--;
+
+ px_size /= scale;
- if (AltosVersion.has_google_maps_api_key())
- return String.format("http://maps.google.com/maps/api/staticmap?center=%.6f,%.6f&zoom=%d&size=%dx%d&scale=%d&sensor=false&maptype=%s&format=%s&key=%s",
- center.lat, center.lon, z, px_size/scale, px_size/scale, scale, AltosMap.maptype_names[maptype], format_string, AltosVersion.google_maps_api_key);
+ if (google_maps_api_key != null)
+ return google_map_url(center, zoom, maptype, px_size, scale, format_string);
else
- return String.format("http://maps.google.com/maps/api/staticmap?center=%.6f,%.6f&zoom=%d&size=%dx%d&scale=%d&sensor=false&maptype=%s&format=%s",
- center.lat, center.lon, z, px_size/scale, px_size/scale, AltosMap.maptype_names[maptype], format_string);
+ return altos_map_url(center, zoom, maptype, px_size, scale, format_string);
}
- public int status() {
+ public synchronized int status() {
return status;
}
@@ -88,11 +100,6 @@ public class AltosMapStore {
listener.notify_store(this, status);
}
- static Object forbidden_lock = new Object();
- static long forbidden_time;
- static boolean forbidden_set;
- public static int forbidden_response;
-
private int fetch_url() {
URL u;
@@ -102,48 +109,64 @@ public class AltosMapStore {
return AltosMapTile.bad_request;
}
- byte[] data;
+ byte[] data = null;
URLConnection uc = null;
- try {
- uc = u.openConnection();
- String type = uc.getContentType();
- int contentLength = uc.getContentLength();
- if (uc instanceof HttpURLConnection) {
- int response = ((HttpURLConnection) uc).getResponseCode();
- switch (response) {
- case HttpURLConnection.HTTP_FORBIDDEN:
- case HttpURLConnection.HTTP_PAYMENT_REQUIRED:
- case HttpURLConnection.HTTP_UNAUTHORIZED:
- synchronized (forbidden_lock) {
- forbidden_time = System.nanoTime();
- forbidden_set = true;
- forbidden_response = response;
+
+ int status = AltosMapTile.failed;
+ int tries = 0;
+
+ while (tries < 10 && status != AltosMapTile.fetched) {
+ try {
+ uc = u.openConnection();
+ String type = uc.getContentType();
+ int contentLength = uc.getContentLength();
+ if (uc instanceof HttpURLConnection) {
+ int response = ((HttpURLConnection) uc).getResponseCode();
+ switch (response) {
+ case HttpURLConnection.HTTP_FORBIDDEN:
+ case HttpURLConnection.HTTP_PAYMENT_REQUIRED:
+ case HttpURLConnection.HTTP_UNAUTHORIZED:
return AltosMapTile.forbidden;
}
}
- }
- InputStream in = new BufferedInputStream(uc.getInputStream());
- int bytesRead = 0;
- int offset = 0;
- data = new byte[contentLength];
- while (offset < contentLength) {
- bytesRead = in.read(data, offset, data.length - offset);
- if (bytesRead == -1)
- break;
- offset += bytesRead;
- }
- in.close();
+ InputStream in = new BufferedInputStream(uc.getInputStream());
+ int bytesRead = 0;
+ int offset = 0;
+ data = new byte[contentLength];
+ while (offset < contentLength) {
+ bytesRead = in.read(data, offset, data.length - offset);
+ if (bytesRead == -1)
+ break;
+ offset += bytesRead;
+ }
+ in.close();
- if (offset != contentLength)
- return AltosMapTile.failed;
+ if (offset == contentLength)
+ status = AltosMapTile.fetched;
+ else
+ status = AltosMapTile.failed;
- } catch (IOException e) {
- return AltosMapTile.failed;
+ } catch (IOException e) {
+ status = AltosMapTile.failed;
+ }
+
+ if (status != AltosMapTile.fetched) {
+ try {
+ Thread.sleep(100);
+ } catch (InterruptedException ie) {
+ }
+ tries++;
+ System.out.printf("Fetch failed, retrying %d\n", tries);
+ }
}
+ if (status != AltosMapTile.fetched)
+ return status;
+
try {
FileOutputStream out = new FileOutputStream(file);
- out.write(data);
+ if (data != null)
+ out.write(data);
out.flush();
out.close();
} catch (FileNotFoundException e) {
@@ -158,18 +181,19 @@ public class AltosMapStore {
static Object fetch_lock = new Object();
- static final long forbidden_interval = 60l * 1000l * 1000l * 1000l;
- static final long google_maps_ratelimit_ms = 1200;
-
static Object fetcher_lock = new Object();
static LinkedList<AltosMapStore> waiting = new LinkedList<AltosMapStore>();
static LinkedList<AltosMapStore> running = new LinkedList<AltosMapStore>();
- static final int concurrent_fetchers = 128;
+ static int concurrent_fetchers() {
+ if (google_maps_api_key == null)
+ return 16;
+ return 128;
+ }
static void start_fetchers() {
- while (!waiting.isEmpty() && running.size() < concurrent_fetchers) {
+ while (!waiting.isEmpty() && running.size() < concurrent_fetchers()) {
AltosMapStore s = waiting.remove();
running.add(s);
Thread lt = s.make_fetcher_thread();
@@ -200,33 +224,10 @@ public class AltosMapStore {
return;
}
- synchronized(forbidden_lock) {
- if (forbidden_set && (System.nanoTime() - forbidden_time) < forbidden_interval) {
- notify_listeners(AltosMapTile.forbidden);
- return;
- }
- }
-
int new_status;
- if (!AltosVersion.has_google_maps_api_key()) {
- synchronized (fetch_lock) {
- long startTime = System.nanoTime();
- new_status = fetch_url();
- if (new_status == AltosMapTile.fetched) {
- long duration_ms = (System.nanoTime() - startTime) / 1000000;
- if (duration_ms < google_maps_ratelimit_ms) {
- try {
- Thread.sleep(google_maps_ratelimit_ms - duration_ms);
- } catch (InterruptedException e) {
- Thread.currentThread().interrupt();
- }
- }
- }
- }
- } else {
- new_status = fetch_url();
- }
+ new_status = fetch_url();
+
notify_listeners(new_status);
} finally {
finish_fetcher();
diff --git a/altoslib/AltosMapStoreListener.java b/altoslib/AltosMapStoreListener.java
index 1fb7194a..6d9a00a8 100644
--- a/altoslib/AltosMapStoreListener.java
+++ b/altoslib/AltosMapStoreListener.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public interface AltosMapStoreListener {
abstract void notify_store(AltosMapStore store, int status);
diff --git a/altoslib/AltosMapTile.java b/altoslib/AltosMapTile.java
index 4b01e437..6318c40d 100644
--- a/altoslib/AltosMapTile.java
+++ b/altoslib/AltosMapTile.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.util.*;
diff --git a/altoslib/AltosMapTileListener.java b/altoslib/AltosMapTileListener.java
index 3c6275a0..971d7744 100644
--- a/altoslib/AltosMapTileListener.java
+++ b/altoslib/AltosMapTileListener.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public interface AltosMapTileListener {
abstract public void notify_tile(AltosMapTile tile, int status);
diff --git a/altoslib/AltosMapTransform.java b/altoslib/AltosMapTransform.java
index b6d4f435..6bc6c6f8 100644
--- a/altoslib/AltosMapTransform.java
+++ b/altoslib/AltosMapTransform.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.lang.Math;
diff --git a/altoslib/AltosMapTypeListener.java b/altoslib/AltosMapTypeListener.java
index 94401a00..f1b9d074 100644
--- a/altoslib/AltosMapTypeListener.java
+++ b/altoslib/AltosMapTypeListener.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public interface AltosMapTypeListener {
public void map_type_changed(int map_type);
diff --git a/altoslib/AltosMapZoomListener.java b/altoslib/AltosMapZoomListener.java
index c4a0acd6..7044a220 100644
--- a/altoslib/AltosMapZoomListener.java
+++ b/altoslib/AltosMapZoomListener.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public interface AltosMapZoomListener {
abstract public void zoom_changed(int zoom);
diff --git a/altoslib/AltosMma655x.java b/altoslib/AltosMma655x.java
index 0f6022ac..3a728ac4 100644
--- a/altoslib/AltosMma655x.java
+++ b/altoslib/AltosMma655x.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.util.concurrent.*;
diff --git a/altoslib/AltosMs5607.java b/altoslib/AltosMs5607.java
index 5b3ba65d..c4ddaea9 100644
--- a/altoslib/AltosMs5607.java
+++ b/altoslib/AltosMs5607.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.util.concurrent.*;
import java.io.*;
diff --git a/altoslib/AltosNoSymbol.java b/altoslib/AltosNoSymbol.java
index 8372d396..b824b7f1 100644
--- a/altoslib/AltosNoSymbol.java
+++ b/altoslib/AltosNoSymbol.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosNoSymbol extends Exception {
public AltosNoSymbol(String name) {
diff --git a/altoslib/AltosOrient.java b/altoslib/AltosOrient.java
index 4546a798..8f532da1 100644
--- a/altoslib/AltosOrient.java
+++ b/altoslib/AltosOrient.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosOrient extends AltosUnits {
diff --git a/altoslib/AltosParse.java b/altoslib/AltosParse.java
index 77cf969d..8ba4d5b2 100644
--- a/altoslib/AltosParse.java
+++ b/altoslib/AltosParse.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.util.*;
import java.text.*;
diff --git a/altoslib/AltosPointDouble.java b/altoslib/AltosPointDouble.java
index 301d07b0..59e2f76c 100644
--- a/altoslib/AltosPointDouble.java
+++ b/altoslib/AltosPointDouble.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosPointDouble {
public double x, y;
diff --git a/altoslib/AltosPointInt.java b/altoslib/AltosPointInt.java
index 25f5dd2a..50503cd8 100644
--- a/altoslib/AltosPointInt.java
+++ b/altoslib/AltosPointInt.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosPointInt {
public int x, y;
diff --git a/altoslib/AltosPreferences.java b/altoslib/AltosPreferences.java
index c511332b..f277f31a 100644
--- a/altoslib/AltosPreferences.java
+++ b/altoslib/AltosPreferences.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.util.*;
diff --git a/altoslib/AltosPreferencesBackend.java b/altoslib/AltosPreferencesBackend.java
index 00fd2c6d..559cff07 100644
--- a/altoslib/AltosPreferencesBackend.java
+++ b/altoslib/AltosPreferencesBackend.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.util.*;
diff --git a/altoslib/AltosPresTemp.java b/altoslib/AltosPresTemp.java
index 4cd382c8..3869528e 100644
--- a/altoslib/AltosPresTemp.java
+++ b/altoslib/AltosPresTemp.java
@@ -12,7 +12,7 @@
* General Public License for more details.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosPresTemp {
double pres = AltosLib.MISSING;
diff --git a/altoslib/AltosPressure.java b/altoslib/AltosPressure.java
index 507a4cee..63884a44 100644
--- a/altoslib/AltosPressure.java
+++ b/altoslib/AltosPressure.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosPressure extends AltosUnits {
diff --git a/altoslib/AltosProgrammer.java b/altoslib/AltosProgrammer.java
index e4f57578..1872392d 100644
--- a/altoslib/AltosProgrammer.java
+++ b/altoslib/AltosProgrammer.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
diff --git a/altoslib/AltosPyro.java b/altoslib/AltosPyro.java
index fea4fd59..b716f4e3 100644
--- a/altoslib/AltosPyro.java
+++ b/altoslib/AltosPyro.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.util.*;
import java.text.*;
diff --git a/altoslib/AltosPyroName.java b/altoslib/AltosPyroName.java
index 0152e479..0a2c5a66 100644
--- a/altoslib/AltosPyroName.java
+++ b/altoslib/AltosPyroName.java
@@ -12,7 +12,7 @@
* General Public License for more details.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosPyroName extends AltosUnits {
diff --git a/altoslib/AltosQuaternion.java b/altoslib/AltosQuaternion.java
index 6d6bc12c..98790f5f 100644
--- a/altoslib/AltosQuaternion.java
+++ b/altoslib/AltosQuaternion.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosQuaternion {
double r; /* real bit */
diff --git a/altoslib/AltosRecordSet.java b/altoslib/AltosRecordSet.java
index 91cce624..a84cc3f9 100644
--- a/altoslib/AltosRecordSet.java
+++ b/altoslib/AltosRecordSet.java
@@ -12,7 +12,7 @@
* General Public License for more details.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.util.*;
diff --git a/altoslib/AltosRectangle.java b/altoslib/AltosRectangle.java
index 810388ed..3b46bd7c 100644
--- a/altoslib/AltosRectangle.java
+++ b/altoslib/AltosRectangle.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosRectangle {
public int x, y, width, height;
diff --git a/altoslib/AltosReplayReader.java b/altoslib/AltosReplayReader.java
index fab28cac..1960aac0 100644
--- a/altoslib/AltosReplayReader.java
+++ b/altoslib/AltosReplayReader.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.util.*;
diff --git a/altoslib/AltosRomconfig.java b/altoslib/AltosRomconfig.java
index 44a3fa60..ebeb76f3 100644
--- a/altoslib/AltosRomconfig.java
+++ b/altoslib/AltosRomconfig.java
@@ -16,12 +16,14 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
+import java.util.concurrent.*;
-public class AltosRomconfig {
+public class AltosRomconfig implements AltosUnitInfoListener {
public boolean valid;
+ public boolean radio_calibration_broken;
public int version;
public int check;
public int serial_number;
@@ -32,15 +34,11 @@ public class AltosRomconfig {
static private long find_address(AltosHexfile hexfile, String name, int len) throws AltosNoSymbol {
AltosHexsym symbol = hexfile.lookup_symbol(name);
if (symbol == null) {
- System.out.printf("no symbol %s\n", name);
throw new AltosNoSymbol(name);
}
if (hexfile.address <= symbol.address && symbol.address + len <= hexfile.max_address) {
- System.out.printf("%s: %x\n", name, symbol.address);
return symbol.address;
}
- System.out.printf("invalid symbol addr %x len %d range is %x - %x\n",
- symbol.address, len, hexfile.address, hexfile.max_address);
throw new AltosNoSymbol(name);
}
@@ -121,40 +119,60 @@ public class AltosRomconfig {
final static String ao_radio_cal = "ao_radio_cal";
final static String ao_usb_descriptors = "ao_usb_descriptors";
+ Semaphore unit_info_done;
+
+ public void notify_unit_info(AltosUnitInfo unit_info) {
+ unit_info_done.release();
+ }
+
+ private void fetch_radio_cal() {
+ unit_info_done = new Semaphore(0);
+ AltosUnitInfo info = new AltosUnitInfo(serial_number, this);
+
+ /* Block waiting for the rf calibration data */
+ radio_calibration_broken = true;
+ try {
+ unit_info_done.acquire();
+ int new_cal = info.rfcal();
+ if (new_cal != AltosLib.MISSING) {
+ radio_calibration = new_cal;
+ radio_calibration_broken = false;
+ }
+ } catch (InterruptedException ie) {
+ }
+ }
+
public AltosRomconfig(AltosHexfile hexfile) {
try {
- System.out.printf("Attempting symbols\n");
version = get_int(hexfile, ao_romconfig_version, 2);
- System.out.printf("version %d\n", version);
check = get_int(hexfile, ao_romconfig_check, 2);
- System.out.printf("check %d\n", check);
if (check == (~version & 0xffff)) {
switch (version) {
case 2:
case 1:
serial_number = get_int(hexfile, ao_serial_number, 2);
- System.out.printf("serial %d\n", serial_number);
try {
radio_calibration = get_int(hexfile, ao_radio_cal, 4);
} catch (AltosNoSymbol missing) {
radio_calibration = 0;
}
+
valid = true;
+
+ /* XXX TeleBT v4.0 units originally shipped without RF calibration programmed. Go fetch
+ * the correct value from the web site
+ */
+ if (serial_number == 2584 ||
+ (3686 <= serial_number && serial_number <= 3938 && radio_calibration == 5695485))
+ {
+ fetch_radio_cal();
+ }
+
break;
}
}
- System.out.printf("attempting usbid\n");
usb_id = hexfile.find_usb_id();
- if (usb_id == null)
- System.out.printf("No usb id\n");
- else
- System.out.printf("usb id: %04x:%04x\n",
- usb_id.vid, usb_id.pid);
usb_product = hexfile.find_usb_product();
- if (usb_product == null)
- System.out.printf("No usb product\n");
- else
- System.out.printf("usb product: %s\n", usb_product);
} catch (AltosNoSymbol missing) {
valid = false;
@@ -197,7 +215,6 @@ public class AltosRomconfig {
if (addr < base)
base = addr;
- System.out.printf("symbol %s at %x base %x\n", name, addr, base);
} catch (AltosNoSymbol ns) {
if (name_required(name))
throw (ns);
@@ -214,7 +231,6 @@ public class AltosRomconfig {
long addr = find_address(hexfile, name, len) + len;
if (addr > bounds)
bounds = addr;
- System.out.printf("symbol %s at %x bounds %x\n", name, addr, bounds);
} catch (AltosNoSymbol ns) {
if (name_required(name))
throw (ns);
diff --git a/altoslib/AltosRotation.java b/altoslib/AltosRotation.java
index eec8c529..54b3b1f9 100644
--- a/altoslib/AltosRotation.java
+++ b/altoslib/AltosRotation.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosRotation extends AltosQuaternion {
private AltosQuaternion rotation;
diff --git a/altoslib/AltosRotationRate.java b/altoslib/AltosRotationRate.java
index 492f1217..b8490d79 100644
--- a/altoslib/AltosRotationRate.java
+++ b/altoslib/AltosRotationRate.java
@@ -12,7 +12,7 @@
* General Public License for more details.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosRotationRate extends AltosUnits {
diff --git a/altoslib/AltosSavedState.java b/altoslib/AltosSavedState.java
index 66876864..3e572dc3 100644
--- a/altoslib/AltosSavedState.java
+++ b/altoslib/AltosSavedState.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
diff --git a/altoslib/AltosSelfFlash.java b/altoslib/AltosSelfFlash.java
index c7ea147f..0250cce7 100644
--- a/altoslib/AltosSelfFlash.java
+++ b/altoslib/AltosSelfFlash.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
@@ -45,7 +45,6 @@ public class AltosSelfFlash extends AltosProgrammer {
int b;
byte[] data = new byte[len];
- System.out.printf("read_memory %x %d\n", addr, len);
for (int offset = 0; offset < len; offset += 0x100) {
link.printf("R %x\n", addr + offset);
byte[] reply = link.get_binary_reply(5000, 0x100);
@@ -101,7 +100,7 @@ public class AltosSelfFlash extends AltosProgrammer {
long flash_addr = image.address;
int image_start = 0;
- action("start", 0);
+ action(AltosFlashListener.flash_start, 0);
action(0, image.data.length);
while (remain > 0 && !aborted) {
int this_time = remain;
@@ -129,7 +128,7 @@ public class AltosSelfFlash extends AltosProgrammer {
action(image.data.length - remain, image.data.length);
}
if (!aborted) {
- action("done", 100);
+ action(AltosFlashListener.flash_done, 100);
}
close();
} catch (IOException ie) {
@@ -161,7 +160,8 @@ public class AltosSelfFlash extends AltosProgrammer {
long base = AltosRomconfig.fetch_base(image);
long bounds = AltosRomconfig.fetch_bounds(image);
- System.out.printf("rom base %x bounds %x\n", base, bounds);
+ if (link.debug)
+ System.out.printf("rom base %x bounds %x\n", base, bounds);
return read_hexfile(base, (int) (bounds - base));
} catch (AltosNoSymbol ns) {
return null;
diff --git a/altoslib/AltosSensorEMini.java b/altoslib/AltosSensorEMini.java
index 1bdbb60c..e7f540fd 100644
--- a/altoslib/AltosSensorEMini.java
+++ b/altoslib/AltosSensorEMini.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.util.concurrent.TimeoutException;
diff --git a/altoslib/AltosSensorMM.java b/altoslib/AltosSensorMM.java
index 00873afe..a689aef0 100644
--- a/altoslib/AltosSensorMM.java
+++ b/altoslib/AltosSensorMM.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.util.concurrent.TimeoutException;
diff --git a/altoslib/AltosSensorMega.java b/altoslib/AltosSensorMega.java
index e58b03a1..0aa52176 100644
--- a/altoslib/AltosSensorMega.java
+++ b/altoslib/AltosSensorMega.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.util.concurrent.TimeoutException;
diff --git a/altoslib/AltosSensorMetrum.java b/altoslib/AltosSensorMetrum.java
index e01d57cc..efed1a6f 100644
--- a/altoslib/AltosSensorMetrum.java
+++ b/altoslib/AltosSensorMetrum.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.util.concurrent.TimeoutException;
diff --git a/altoslib/AltosSensorTGPS.java b/altoslib/AltosSensorTGPS.java
index 14514413..485e8b3c 100644
--- a/altoslib/AltosSensorTGPS.java
+++ b/altoslib/AltosSensorTGPS.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.util.concurrent.TimeoutException;
diff --git a/altoslib/AltosSensorTM.java b/altoslib/AltosSensorTM.java
index bdedaa9c..a25f4d19 100644
--- a/altoslib/AltosSensorTM.java
+++ b/altoslib/AltosSensorTM.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.util.concurrent.TimeoutException;
diff --git a/altoslib/AltosSensorTMini2.java b/altoslib/AltosSensorTMini2.java
index 9b5a1854..941e82a2 100644
--- a/altoslib/AltosSensorTMini2.java
+++ b/altoslib/AltosSensorTMini2.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.util.concurrent.TimeoutException;
diff --git a/altoslib/AltosSensorTMini3.java b/altoslib/AltosSensorTMini3.java
index b92def03..e43c05c5 100644
--- a/altoslib/AltosSensorTMini3.java
+++ b/altoslib/AltosSensorTMini3.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.util.concurrent.TimeoutException;
diff --git a/altoslib/AltosSpeed.java b/altoslib/AltosSpeed.java
index 2a8ccedc..af10ad27 100644
--- a/altoslib/AltosSpeed.java
+++ b/altoslib/AltosSpeed.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosSpeed extends AltosUnits {
diff --git a/altoslib/AltosState.java b/altoslib/AltosState.java
index 68097faf..93104fb0 100644
--- a/altoslib/AltosState.java
+++ b/altoslib/AltosState.java
@@ -20,7 +20,7 @@
* Track flight state from telemetry or eeprom data stream
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosState extends AltosDataListener {
diff --git a/altoslib/AltosStateName.java b/altoslib/AltosStateName.java
index 5ba21f27..e5292d30 100644
--- a/altoslib/AltosStateName.java
+++ b/altoslib/AltosStateName.java
@@ -12,7 +12,7 @@
* General Public License for more details.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosStateName extends AltosUnits {
diff --git a/altoslib/AltosStringInputStream.java b/altoslib/AltosStringInputStream.java
index 48fff3ea..ee2415ca 100644
--- a/altoslib/AltosStringInputStream.java
+++ b/altoslib/AltosStringInputStream.java
@@ -12,7 +12,7 @@
* General Public License for more details.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.util.*;
import java.io.*;
diff --git a/altoslib/AltosTelemetry.java b/altoslib/AltosTelemetry.java
index a374519d..a19e4226 100644
--- a/altoslib/AltosTelemetry.java
+++ b/altoslib/AltosTelemetry.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.text.*;
diff --git a/altoslib/AltosTelemetryCompanion.java b/altoslib/AltosTelemetryCompanion.java
index c6dfe3eb..091c8bd8 100644
--- a/altoslib/AltosTelemetryCompanion.java
+++ b/altoslib/AltosTelemetryCompanion.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosTelemetryCompanion extends AltosTelemetryStandard {
diff --git a/altoslib/AltosTelemetryConfiguration.java b/altoslib/AltosTelemetryConfiguration.java
index c8026a83..4411a77d 100644
--- a/altoslib/AltosTelemetryConfiguration.java
+++ b/altoslib/AltosTelemetryConfiguration.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosTelemetryConfiguration extends AltosTelemetryStandard {
diff --git a/altoslib/AltosTelemetryFile.java b/altoslib/AltosTelemetryFile.java
index e51455f8..679c6809 100644
--- a/altoslib/AltosTelemetryFile.java
+++ b/altoslib/AltosTelemetryFile.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.util.*;
diff --git a/altoslib/AltosTelemetryIterable.java b/altoslib/AltosTelemetryIterable.java
index d3e4ce67..8cd0c9c7 100644
--- a/altoslib/AltosTelemetryIterable.java
+++ b/altoslib/AltosTelemetryIterable.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.io.*;
import java.util.*;
diff --git a/altoslib/AltosTelemetryLegacy.java b/altoslib/AltosTelemetryLegacy.java
index 027f601e..d2b29835 100644
--- a/altoslib/AltosTelemetryLegacy.java
+++ b/altoslib/AltosTelemetryLegacy.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.text.*;
diff --git a/altoslib/AltosTelemetryLocation.java b/altoslib/AltosTelemetryLocation.java
index e2925a58..25570bf9 100644
--- a/altoslib/AltosTelemetryLocation.java
+++ b/altoslib/AltosTelemetryLocation.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosTelemetryLocation extends AltosTelemetryStandard {
diff --git a/altoslib/AltosTelemetryMap.java b/altoslib/AltosTelemetryMap.java
index a7ddc684..fa275e1d 100644
--- a/altoslib/AltosTelemetryMap.java
+++ b/altoslib/AltosTelemetryMap.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.text.*;
import java.util.HashMap;
diff --git a/altoslib/AltosTelemetryMegaData.java b/altoslib/AltosTelemetryMegaData.java
index f5961c8c..1a0bff31 100644
--- a/altoslib/AltosTelemetryMegaData.java
+++ b/altoslib/AltosTelemetryMegaData.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosTelemetryMegaData extends AltosTelemetryStandard {
diff --git a/altoslib/AltosTelemetryMegaSensor.java b/altoslib/AltosTelemetryMegaSensor.java
index 4c64b554..e97e18e2 100644
--- a/altoslib/AltosTelemetryMegaSensor.java
+++ b/altoslib/AltosTelemetryMegaSensor.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosTelemetryMegaSensor extends AltosTelemetryStandard {
int orient() { return int8(5); }
diff --git a/altoslib/AltosTelemetryMetrumData.java b/altoslib/AltosTelemetryMetrumData.java
index 8cd09b41..4a9dcd64 100644
--- a/altoslib/AltosTelemetryMetrumData.java
+++ b/altoslib/AltosTelemetryMetrumData.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosTelemetryMetrumData extends AltosTelemetryStandard {
diff --git a/altoslib/AltosTelemetryMetrumSensor.java b/altoslib/AltosTelemetryMetrumSensor.java
index 79d3a499..383f645a 100644
--- a/altoslib/AltosTelemetryMetrumSensor.java
+++ b/altoslib/AltosTelemetryMetrumSensor.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosTelemetryMetrumSensor extends AltosTelemetryStandard {
diff --git a/altoslib/AltosTelemetryMini2.java b/altoslib/AltosTelemetryMini2.java
index 3ea287ac..86e10539 100644
--- a/altoslib/AltosTelemetryMini2.java
+++ b/altoslib/AltosTelemetryMini2.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosTelemetryMini2 extends AltosTelemetryStandard {
diff --git a/altoslib/AltosTelemetryMini3.java b/altoslib/AltosTelemetryMini3.java
index c66f8e61..b1831442 100644
--- a/altoslib/AltosTelemetryMini3.java
+++ b/altoslib/AltosTelemetryMini3.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosTelemetryMini3 extends AltosTelemetryStandard {
diff --git a/altoslib/AltosTelemetryRaw.java b/altoslib/AltosTelemetryRaw.java
index f2108d68..88f23f5e 100644
--- a/altoslib/AltosTelemetryRaw.java
+++ b/altoslib/AltosTelemetryRaw.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosTelemetryRaw extends AltosTelemetryStandard {
public AltosTelemetryRaw(int[] bytes) throws AltosCRCException {
diff --git a/altoslib/AltosTelemetryReader.java b/altoslib/AltosTelemetryReader.java
index 8fb61a4f..de957f65 100644
--- a/altoslib/AltosTelemetryReader.java
+++ b/altoslib/AltosTelemetryReader.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.text.*;
import java.io.*;
diff --git a/altoslib/AltosTelemetrySatellite.java b/altoslib/AltosTelemetrySatellite.java
index 0965df9f..8213a43e 100644
--- a/altoslib/AltosTelemetrySatellite.java
+++ b/altoslib/AltosTelemetrySatellite.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosTelemetrySatellite extends AltosTelemetryStandard {
int channels() { return uint8(5); }
diff --git a/altoslib/AltosTelemetrySensor.java b/altoslib/AltosTelemetrySensor.java
index dc8efa9b..2219088a 100644
--- a/altoslib/AltosTelemetrySensor.java
+++ b/altoslib/AltosTelemetrySensor.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosTelemetrySensor extends AltosTelemetryStandard {
diff --git a/altoslib/AltosTelemetryStandard.java b/altoslib/AltosTelemetryStandard.java
index 2a1c9365..3f585cea 100644
--- a/altoslib/AltosTelemetryStandard.java
+++ b/altoslib/AltosTelemetryStandard.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public abstract class AltosTelemetryStandard extends AltosTelemetry {
public int int8(int off) {
diff --git a/altoslib/AltosTemperature.java b/altoslib/AltosTemperature.java
index efc6d5e1..b1526a4b 100644
--- a/altoslib/AltosTemperature.java
+++ b/altoslib/AltosTemperature.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosTemperature extends AltosUnits {
diff --git a/altoslib/AltosTime.java b/altoslib/AltosTime.java
index 5c6ab037..d0057969 100644
--- a/altoslib/AltosTime.java
+++ b/altoslib/AltosTime.java
@@ -12,7 +12,7 @@
* General Public License for more details.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosTime extends AltosUnits {
public double value(double v, boolean imperial_units) { return v; }
diff --git a/altoslib/AltosTimeSeries.java b/altoslib/AltosTimeSeries.java
index c6a780a3..75225e15 100644
--- a/altoslib/AltosTimeSeries.java
+++ b/altoslib/AltosTimeSeries.java
@@ -12,7 +12,7 @@
* General Public License for more details.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.util.*;
diff --git a/altoslib/AltosTimeValue.java b/altoslib/AltosTimeValue.java
index 298ac7f0..e94370a7 100644
--- a/altoslib/AltosTimeValue.java
+++ b/altoslib/AltosTimeValue.java
@@ -15,7 +15,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosTimeValue {
public double time;
diff --git a/altoslib/AltosUnitInfo.java b/altoslib/AltosUnitInfo.java
new file mode 100644
index 00000000..2a9f470a
--- /dev/null
+++ b/altoslib/AltosUnitInfo.java
@@ -0,0 +1,106 @@
+/*
+ * Copyright © 2018 Keith Packard <keithp@keithp.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * 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.
+ */
+
+package org.altusmetrum.altoslib_13;
+
+import java.io.*;
+import java.lang.*;
+import java.util.*;
+import java.util.concurrent.*;
+import java.net.*;
+import java.text.*;
+
+public class AltosUnitInfo extends Thread {
+ int sn;
+ int rfcal;
+ AltosUnitInfoListener listener;
+ String json_string;
+
+ public int sn() {
+ return sn;
+ }
+
+ public int rfcal() {
+ return rfcal;
+ }
+
+ void add(String line) {
+ if (json_string == null) {
+ json_string = line;
+ } else {
+ json_string = json_string + "\n" + line;
+ }
+ }
+
+ void notify_complete() {
+ rfcal = AltosLib.MISSING;
+
+ if (json_string != null) {
+ System.out.printf("json_string: %s\n", json_string);
+ AltosJson json = AltosJson.fromString(json_string);
+ System.out.printf("json: %s\n", json);
+ String rfcal_string = null;
+ try {
+ AltosJson unitinfo = json.get("unitinfo");
+ rfcal_string = unitinfo.get_string("rfcal", null);
+ if (rfcal_string != null)
+ rfcal = Integer.parseInt(rfcal_string);
+ } catch (NumberFormatException ne) {
+ System.out.printf("mal-formed integer %s\n", rfcal_string);
+ } catch (IllegalArgumentException ie) {
+ System.out.printf("mal-formed json\n");
+ }
+ }
+ listener.notify_unit_info(this);
+ }
+
+ public void run() {
+ try {
+ String format;
+
+ format = System.getenv(AltosLib.unit_info_env);
+ if (format == null)
+ format = AltosLib.unit_info_url;
+
+ String path = String.format(format, sn);
+
+ URL url = new URL(path);
+
+ System.out.printf("URL: %s\n", path);
+
+ URLConnection uc = url.openConnection();
+
+ InputStreamReader in_stream = new InputStreamReader(uc.getInputStream(), AltosLib.unicode_set);
+ BufferedReader in = new BufferedReader(in_stream);
+
+ for (;;) {
+ String line = in.readLine();
+ if (line == null)
+ break;
+ add(line);
+ }
+ } catch (Exception e) {
+ System.out.printf("file exception %s\n", e.toString());
+ } finally {
+ notify_complete();
+ }
+ }
+
+ public AltosUnitInfo(int sn, AltosUnitInfoListener listener) {
+ this.listener = listener;
+ this.sn = sn;
+ this.rfcal = AltosLib.MISSING;
+ start();
+ }
+}
diff --git a/altoslib/AltosUnitInfoListener.java b/altoslib/AltosUnitInfoListener.java
new file mode 100644
index 00000000..3753df46
--- /dev/null
+++ b/altoslib/AltosUnitInfoListener.java
@@ -0,0 +1,19 @@
+/*
+ * Copyright © 2018 Keith Packard <keithp@keithp.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * 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.
+ */
+
+package org.altusmetrum.altoslib_13;
+
+public interface AltosUnitInfoListener {
+ public abstract void notify_unit_info(AltosUnitInfo unit_info);
+}
diff --git a/altoslib/AltosUnits.java b/altoslib/AltosUnits.java
index e1194487..9295b8e8 100644
--- a/altoslib/AltosUnits.java
+++ b/altoslib/AltosUnits.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.text.*;
diff --git a/altoslib/AltosUnitsListener.java b/altoslib/AltosUnitsListener.java
index 1f06afbf..e37027a6 100644
--- a/altoslib/AltosUnitsListener.java
+++ b/altoslib/AltosUnitsListener.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public interface AltosUnitsListener {
public void units_changed(boolean imperial_units);
diff --git a/altoslib/AltosUnitsRange.java b/altoslib/AltosUnitsRange.java
index 6bf0d91f..58f918ba 100644
--- a/altoslib/AltosUnitsRange.java
+++ b/altoslib/AltosUnitsRange.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
import java.text.*;
diff --git a/altoslib/AltosUnknownProduct.java b/altoslib/AltosUnknownProduct.java
index e4bebcd4..dd108a2e 100644
--- a/altoslib/AltosUnknownProduct.java
+++ b/altoslib/AltosUnknownProduct.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosUnknownProduct extends Exception {
public String product;
diff --git a/altoslib/AltosUsbId.java b/altoslib/AltosUsbId.java
index e3794304..5c70341d 100644
--- a/altoslib/AltosUsbId.java
+++ b/altoslib/AltosUsbId.java
@@ -12,7 +12,7 @@
* General Public License for more details.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosUsbId {
public int vid;
diff --git a/altoslib/AltosVersion.java.in b/altoslib/AltosVersion.java.in
index c8399f2e..6b660bb5 100644
--- a/altoslib/AltosVersion.java.in
+++ b/altoslib/AltosVersion.java.in
@@ -16,14 +16,8 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosVersion {
public final static String version = "@VERSION@";
-
- public final static String google_maps_api_key = "@GOOGLEKEY@";
-
- public static boolean has_google_maps_api_key() {
- return google_maps_api_key != null && google_maps_api_key.length() > 1;
- }
}
diff --git a/altoslib/AltosVoltage.java b/altoslib/AltosVoltage.java
index ef53ac11..aca82e28 100644
--- a/altoslib/AltosVoltage.java
+++ b/altoslib/AltosVoltage.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public class AltosVoltage extends AltosUnits {
diff --git a/altoslib/AltosWriter.java b/altoslib/AltosWriter.java
index c77e48b0..7bb0ec0d 100644
--- a/altoslib/AltosWriter.java
+++ b/altoslib/AltosWriter.java
@@ -16,7 +16,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
public interface AltosWriter {
diff --git a/altoslib/Makefile.am b/altoslib/Makefile.am
index 7c5d767d..92976332 100644
--- a/altoslib/Makefile.am
+++ b/altoslib/Makefile.am
@@ -183,7 +183,9 @@ altoslib_JAVA = \
AltosMapLoader.java \
AltosMapTypeListener.java \
AltosJson.java \
- AltosVersion.java
+ AltosVersion.java \
+ AltosUnitInfo.java \
+ AltosUnitInfoListener.java
JAR=altoslib_$(ALTOSLIB_VERSION).jar