Switch AltosUI to libaltos for device access
[fw/altos] / ao-tools / altosui / AltosGPS.java
index d242ad57e4c5c03a3355d1059c7dc247254639c6..f8eb5f4844150024244f3ef08211db8f75c62d9d 100644 (file)
@@ -90,6 +90,9 @@ public class AltosGPS {
                        gps_connected = true;
                        gps_time = new AltosGPSTime();
                        i++;
+               } else if ((words[i]).equals("not-connected")) {
+                       gps_time = new AltosGPSTime();
+                       i++;
                } else if (words.length >= 40) {
                        gps_locked = true;
                        gps_connected = true;
@@ -106,11 +109,18 @@ public class AltosGPS {
                        v_error = AltosParse.parse_int(AltosParse.strip_suffix(words[i++], "(verr)"));
                } else {
                        gps_time = new AltosGPSTime();
+                       i++;
                }
                AltosParse.word(words[i++], "SAT");
-               int tracking_channels = AltosParse.parse_int(words[i++]);
+               int tracking_channels = 0;
+               if (words[i].equals("not-connected"))
+                       tracking_channels = 0;
+               else
+                       tracking_channels = AltosParse.parse_int(words[i]);
+               i++;
                cc_gps_sat = new AltosGPS.AltosGPSSat[tracking_channels];
                for (int chan = 0; chan < tracking_channels; chan++) {
+                       cc_gps_sat[chan] = new AltosGPS.AltosGPSSat();
                        cc_gps_sat[chan].svid = AltosParse.parse_int(words[i++]);
                        cc_gps_sat[chan].c_n0 = AltosParse.parse_int(words[i++]);
                }