X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altoslib%2FAltosLib.java;h=3aef077abe8588f893d3bddbd704b9880318c140;hp=d6d78ca8ffc2dd68e1e80905ea5ad80605cda7d6;hb=bf684a4c290573a3aa627fd8ddf6f6ebbe5fa057;hpb=77dc89ed5b7bf8f5b3fa3b6131660f1a98f583ea diff --git a/altoslib/AltosLib.java b/altoslib/AltosLib.java index d6d78ca8..3aef077a 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_1; +package org.altusmetrum.altoslib_4; import java.util.*; import java.io.*; @@ -63,6 +63,8 @@ public class AltosLib { public static final int AO_LOG_SOFTWARE_VERSION = 9999; + public final static int MISSING = 0x7fffffff; + /* Added to flag invalid records */ public static final int AO_LOG_INVALID = -1; @@ -102,9 +104,50 @@ public class AltosLib { public final static int product_basestation = 0x10000 + 1; public final static int product_altimeter = 0x10000 + 2; + private static class Product { + final String name; + final int product; + + Product (String name, int product) { + this.name = name; + this.product = product; + } + } + + private static Product[] products = { + new Product("telemetrum", product_telemetrum), + new Product("teleballoon", product_telemetrum), + new Product("teledongle", product_teledongle), + new Product("teleterra", product_teledongle), + new Product("telebt", product_telebt), + new Product("telelaunch", product_telelaunch), + new Product("telelco", product_telelco), + new Product("telescience", product_telescience), + new Product("telepyro", product_telepyro), + new Product("telemega", product_telemega), + new Product("megadongle", product_megadongle), + new Product("telegps", product_telegps), + new Product("easymini", product_easymini), + new Product("telemini", product_telemini) + }; + + public static int name_to_product(String name) { + String low = name.toLowerCase(); + + for (int i = 0; i < products.length; i++) + if (low.startsWith(products[i].name)) + return products[i].product; + return product_any; + } + /* Bluetooth "identifier" (bluetooth sucks) */ public final static String bt_product_telebt = "TeleBT"; + /* "good" voltages */ + + public final static double ao_battery_good = 3.8; + public final static double ao_igniter_good = 3.5; + /* Telemetry modes */ public static final int ao_telemetry_off = 0; public static final int ao_telemetry_min = 1; @@ -160,7 +203,7 @@ public class AltosLib { throw new IllegalArgumentException(String.format("Invalid telemetry %d", telemetry)); } - + private static String[] state_to_string = { "startup", "idle", @@ -416,4 +459,28 @@ public class AltosLib { public static File replace_extension(File input, String extension) { return new File(replace_extension(input.getPath(), extension)); } + + public static String product_name(int product_id) { + switch (product_id) { + case product_altusmetrum: return "AltusMetrum"; + case product_telemetrum: return "TeleMetrum"; + case product_teledongle: return "TeleDongle"; + case product_teleterra: return "TeleTerra"; + case product_telebt: return "TeleBT"; + case product_telelaunch: return "TeleLaunch"; + case product_telelco: return "TeleLco"; + case product_telescience: return "Telescience"; + case product_telepyro: return "TelePyro"; + case product_telemega: return "TeleMega"; + case product_megadongle: return "MegaDongle"; + case product_telegps: return "TeleGPS"; + case product_easymini: return "EasyMini"; + case product_telemini: return "TeleMini"; + default: return "unknown"; + } + } + + public static String ignitor_name(int i) { + return String.format("Ignitor %c", 'A' + i); + } }