X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altoslib%2FAltosLib.java;h=eb188d6b5a7c3be8b2585bacf1853dfc5a852951;hp=7080ebfecf5cfd856c0504edad4ab6c3ed9ff674;hb=b8fa4e9a077e8e04b922d0c434c139ad0a57ee66;hpb=fcea12ac416b1eab11e9e8aae801358574308f73 diff --git a/altoslib/AltosLib.java b/altoslib/AltosLib.java index 7080ebfe..eb188d6b 100644 --- a/altoslib/AltosLib.java +++ b/altoslib/AltosLib.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_4; +package org.altusmetrum.altoslib_5; import java.util.*; import java.io.*; @@ -79,6 +79,7 @@ public class AltosLib { public static final int ao_flight_main = 7; public static final int ao_flight_landed = 8; public static final int ao_flight_invalid = 9; + public static final int ao_flight_stateless = 10; /* USB product IDs */ public final static int vendor_altusmetrum = 0xfffe; @@ -160,6 +161,15 @@ public class AltosLib { "Off", "Standard Telemetry", "TeleMetrum v0.9", "TeleMetrum v0.8" }; + public static final int ao_telemetry_rate_38400 = 0; + public static final int ao_telemetry_rate_9600 = 1; + public static final int ao_telemetry_rate_2400 = 2; + public static final int ao_telemetry_rate_max = 2; + + public static final Integer[] ao_telemetry_rate_values = { + 38400, 9600, 2400 + }; + public static final String launch_sites_url = "http://www.altusmetrum.org/AltOS/launch-sites.txt"; public static final int ao_telemetry_standard_len = 32; @@ -187,6 +197,7 @@ public class AltosLib { string_to_state.put("main", ao_flight_main); string_to_state.put("landed", ao_flight_landed); string_to_state.put("invalid", ao_flight_invalid); + string_to_state.put("stateless", ao_flight_stateless); map_initialized = true; } @@ -204,6 +215,31 @@ public class AltosLib { telemetry)); } + private static int[] split_version(String version) { + String[] tokens = version.split("\\."); + int[] ret = new int[tokens.length]; + for (int i = 0; i < tokens.length; i++) + ret[i] = Integer.parseInt(tokens[i]); + return ret; + } + + public static int compare_version(String version_a, String version_b) { + int[] a = split_version(version_a); + int[] b = split_version(version_b); + + for (int i = 0; i < Math.min(a.length, b.length); i++) { + if (a[i] < b[i]) + return -1; + if (a[i] > b[i]) + return 1; + } + if (a.length < b.length) + return -1; + if (a.length > b.length) + return 1; + return 0; + } + private static String[] state_to_string = { "startup", "idle", @@ -215,6 +251,7 @@ public class AltosLib { "main", "landed", "invalid", + "stateless", }; private static String[] state_to_string_capital = { @@ -228,6 +265,7 @@ public class AltosLib { "Main", "Landed", "Invalid", + "Stateless", }; public static int state(String state) {