altoslib: Improve AltosState save/restore debugging
[fw/altos] / altoslib / AltosGPSSat.java
index ad7a864702323efa1c5a109b230c682df08d8c48..8cdeed0e073e51e38cdbe7a9e32f77f207c29c30 100644 (file)
@@ -22,7 +22,7 @@ import java.text.*;
 import java.util.*;
 import java.util.concurrent.*;
 
-public class AltosGPSSat {
+public class AltosGPSSat implements AltosJsonable {
        public int      svid;
        public int      c_n0;
 
@@ -34,60 +34,27 @@ public class AltosGPSSat {
        public AltosGPSSat() {
        }
 
-       public AltosHashSet hashSet() {
-               AltosHashSet h = new AltosHashSet();
-               h.putInt("svid", svid);
-               h.putInt("c_n0", c_n0);
-               return h;
+       public AltosJson json() {
+               AltosJson j = new AltosJson();
+               j.put("svid", svid);
+               j.put("c_n0", c_n0);
+               return j;
        }
 
-       private AltosGPSSat(AltosHashSet h) {
-               svid = h.getInt("svid", 0);
-               c_n0 = h.getInt("c_n0", 0);
+       private AltosGPSSat(AltosJson j) {
+               svid = j.get_int("svid", 0);
+               c_n0 = j.get_int("c_n0", 0);
        }
 
-       static public AltosGPSSat fromHashSet(AltosHashSet h, AltosGPSSat def) {
-               if (h == null)
-                       return def;
-               return new AltosGPSSat(h);
-       }
-
-       static public AltosGPSSat[] array(String string) {
-
-               if (string == null)
+       static public AltosGPSSat[] json_array(AltosJson j) {
+               if (j == null)
                        return null;
 
-               try {
-                       StringReader            reader = new StringReader(string);
-                       ArrayList<AltosGPSSat>  array = new ArrayList<AltosGPSSat>();
-                       String                  element;
-
-                       while ((element = AltosHashSet.get_token(reader)) != null) {
-                               AltosGPSSat sat = AltosGPSSat.fromHashSet(AltosHashSet.fromString(element), null);
-                               if (sat != null)
-                                       array.add(sat);
-                       }
-                       return array.toArray(new AltosGPSSat[0]);
-               } catch (IOException ie) {
-                       return null;
-               }
-       }
-
-       public static String toString(AltosGPSSat[] sats) {
-               if (sats == null)
-                       return null;
-
-               try {
-                       StringWriter            writer = new StringWriter();
-
-                       for (AltosGPSSat g : sats) {
-                               String          element = g.hashSet().toString();
-                               AltosHashSet.put_token(writer, element);
-                       }
-                       return writer.toString();
-               } catch (IOException ie) {
-                       return null;
-               }
+               int size = j.size();
+               AltosGPSSat[] sats = new AltosGPSSat[size];
+               for (int i = 0; i < size; i++)
+                       sats[i] = new AltosGPSSat(j.get(i));
+               return sats;
        }
 }