diff options
Diffstat (limited to 'altoslib')
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  | 
