X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altoslib%2FAltosLib.java;h=94007835da6648df24dc74e06490bb781a2acea4;hb=02b07a202839d6e68b3f0db7f8965478661db140;hp=68bdd17fdcbe95621842963f29ad5dbe67e42f78;hpb=9e9151c3b4bb9ce329e1b44440a7aceb9f39b9a0;p=fw%2Faltos diff --git a/altoslib/AltosLib.java b/altoslib/AltosLib.java index 68bdd17f..94007835 100644 --- a/altoslib/AltosLib.java +++ b/altoslib/AltosLib.java @@ -74,6 +74,7 @@ public class AltosLib { public static final int AO_LOG_BARO_TREF = 3006; public static final int AO_LOG_BARO_TEMPSENS = 3007; public static final int AO_LOG_BARO_CRC = 3008; + public static final int AO_LOG_IMU_CAL = 3009; public static final int AO_LOG_SOFTWARE_VERSION = 9999; @@ -112,6 +113,10 @@ public class AltosLib { public final static int product_telegps = 0x0025; public final static int product_easymini = 0x0026; public final static int product_telemini = 0x0027; + public final static int product_easymega = 0x0028; + public final static int product_usbtrng = 0x0029; + public final static int product_usbrelay = 0x002a; + public final static int product_mpusb = 0x002b; public final static int product_altusmetrum_min = 0x000a; public final static int product_altusmetrum_max = 0x002c; @@ -143,7 +148,8 @@ public class AltosLib { new Product("megadongle", product_megadongle), new Product("telegps", product_telegps), new Product("easymini", product_easymini), - new Product("telemini", product_telemini) + new Product("telemini", product_telemini), + new Product("easymega", product_easymega) }; public static int name_to_product(String name) { @@ -185,6 +191,7 @@ public class AltosLib { }; public static final String launch_sites_url = "http://www.altusmetrum.org/AltOS/launch-sites.txt"; +// public static final String launch_sites_url = "file:///home/keithp/misc/text/altusmetrum/AltOS/launch-sites.txt"; public static final int ao_telemetry_standard_len = 32; public static final int ao_telemetry_0_9_len = 95; @@ -313,11 +320,12 @@ public class AltosLib { public static final int AO_LOG_FORMAT_TINY = 2; public static final int AO_LOG_FORMAT_TELEMETRY = 3; public static final int AO_LOG_FORMAT_TELESCIENCE = 4; - public static final int AO_LOG_FORMAT_TELEMEGA = 5; + public static final int AO_LOG_FORMAT_TELEMEGA_OLD = 5; public static final int AO_LOG_FORMAT_EASYMINI = 6; public static final int AO_LOG_FORMAT_TELEMETRUM = 7; public static final int AO_LOG_FORMAT_TELEMINI = 8; public static final int AO_LOG_FORMAT_TELEGPS = 9; + public static final int AO_LOG_FORMAT_TELEMEGA = 10; public static final int AO_LOG_FORMAT_NONE = 127; public static boolean isspace(int c) { @@ -329,7 +337,7 @@ public class AltosLib { return false; } - public static boolean ishex(int c) { + public static final boolean ishex(int c) { if ('0' <= c && c <= '9') return true; if ('a' <= c && c <= 'f') @@ -339,7 +347,7 @@ public class AltosLib { return false; } - public static boolean ishex(String s) { + public static final boolean ishex(String s) { for (int i = 0; i < s.length(); i++) if (!ishex(s.charAt(i))) return false; @@ -463,10 +471,17 @@ public class AltosLib { if ((s.length() & 1) != 0) throw new NumberFormatException(String.format("invalid line \"%s\"", s)); - n = s.length() / 2; + byte[] bytes = s.getBytes(unicode_set); + n = bytes.length / 2; r = new int[n]; - for (i = 0; i < n; i++) - r[i] = hexbyte(s, i * 2); + for (i = 0; i < n; i++) { + int h = fromhex(bytes[(i << 1)]); + int l = fromhex(bytes[(i << 1) + 1]); + if (h < 0 || l < 0) + throw new NumberFormatException(String.format("invalid hex \"%c%c\"", + bytes[(i<<1)], bytes[(i<<1) + 1])); + r[i] = (h << 4) + l; + } return r; }