altos: Shuffle LCO functions around, add telelco first cut
[fw/altos] / altoslib / AltosLib.java
index e74eaf99fcde1578fa9e2bd120a40c3a69aaaa5d..2402331e59351cde28a76ff9be2693a6ddd739cb 100644 (file)
@@ -20,6 +20,7 @@ package org.altusmetrum.AltosLib;
 import java.awt.*;
 import java.util.*;
 import java.text.*;
+import java.io.*;
 import java.nio.charset.Charset;
 
 public class AltosLib {
@@ -78,6 +79,30 @@ public class AltosLib {
        public static final int ao_flight_landed = 8;
        public static final int ao_flight_invalid = 9;
 
+       /* USB product IDs */
+       public final static int vendor_altusmetrum = 0xfffe;
+
+       public final static int product_altusmetrum = 0x000a;
+       public final static int product_telemetrum = 0x000b;
+       public final static int product_teledongle = 0x000c;
+       public final static int product_teleterra = 0x000d;
+       public final static int product_telebt = 0x000e;
+       public final static int product_telelaunch = 0x000f;
+       public final static int product_telelco = 0x0010;
+       public final static int product_telescience = 0x0011;
+       public final static int product_telepyro =0x0012;
+       public final static int product_megametrum = 0x0023;
+       public final static int product_megadongle = 0x0024;
+       public final static int product_altusmetrum_min = 0x000a;
+       public final static int product_altusmetrum_max = 0x0024;
+
+       public final static int product_any = 0x10000;
+       public final static int product_basestation = 0x10000 + 1;
+       public final static int product_altimeter = 0x10000 + 2;
+
+       /* Bluetooth "identifier" (bluetooth sucks) */
+       public final static String bt_product_telebt = "TeleBT";
+
        /* Telemetry modes */
        public static final int ao_telemetry_off = 0;
        public static final int ao_telemetry_min = 1;
@@ -280,6 +305,10 @@ public class AltosLib {
                        (bytes[i+3] << 24);
        }
 
+       public static int int32(int[] bytes, int i) {
+               return (int) uint32(bytes, i);
+       }
+
        public static final Charset     unicode_set = Charset.forName("UTF-8");
 
        public static String string(int[] bytes, int s, int l) {
@@ -351,6 +380,21 @@ public class AltosLib {
                return v * sign;
        }
 
+       public static String gets(FileInputStream s) throws IOException {
+               int c;
+               String  line = "";
+
+               while ((c = s.read()) != -1) {
+                       if (c == '\r')
+                               continue;
+                       if (c == '\n') {
+                               return line;
+                       }
+                       line = line + (char) c;
+               }
+               return null;
+       }
+
        public static String replace_extension(String input, String extension) {
                int dot = input.lastIndexOf(".");
                if (dot > 0)