altoslib: Improve AltosState save/restore debugging
[fw/altos] / altoslib / AltosMag.java
index 1fa8877b9c639b4d1b5bdd714be5687424dd70be..8d40bc607490f5392fff4c4eb5cc3f50573a396c 100644 (file)
  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
  */
 
-package org.altusmetrum.altoslib_5;
+package org.altusmetrum.altoslib_11;
 
 import java.util.concurrent.*;
+import java.io.*;
 
-public class AltosMag implements Cloneable {
+public class AltosMag implements Cloneable, AltosJsonable {
        public int              along;
        public int              across;
        public int              through;
 
-       public static double counts_per_gauss = 1090;
+       public static final double counts_per_gauss = 1090;
 
        public static double convert_gauss(double counts) {
                return counts / counts_per_gauss;
@@ -92,4 +93,28 @@ public class AltosMag implements Cloneable {
                                break;
                }
        }
+
+       public AltosJson json() {
+               AltosJson       j = new AltosJson();
+
+               j.put("along", along);
+               j.put("across", across);
+               j.put("through", through);
+               return j;
+       }
+
+       public AltosMag(AltosJson j) {
+               this();
+
+               along = j.get_int("along", along);
+               across = j.get_int("across", across);
+               through = j.get_int("through", through);
+       }
+
+       public static AltosMag fromJson(AltosJson j, AltosMag def) {
+               if (j == null)
+                       return def;
+
+               return new AltosMag(j);
+       }
 }