altoslib: Improve AltosState save/restore debugging
[fw/altos] / altoslib / AltosFrequency.java
index 183d45511abd630e7b8e1f1e4f91bfe430df8175..3c1631a8a1bd0295f30478cd1d486ef12b771ef2 100644 (file)
  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
  */
 
-package org.altusmetrum.altoslib_10;
+package org.altusmetrum.altoslib_11;
 
-public class AltosFrequency {
+import java.io.*;
+import java.util.*;
+import java.text.*;
+
+public class AltosFrequency implements AltosJsonable {
        public double   frequency;
        public String   description;
 
@@ -44,14 +48,37 @@ public class AltosFrequency {
                                     frequency, description);
        }
 
+       public String frequency_string() {
+               return String.format("%7.3f", frequency);
+       }
+
        public boolean close(double f) {
                double  diff = Math.abs(frequency - f);
 
                return diff < 0.010;
        }
 
+       public AltosJson json() {
+               AltosJson       j = new AltosJson();
+
+               j.put("frequency", frequency);
+               j.put("description", description);
+               return j;
+       }
+
        public AltosFrequency(double f, String d) {
                frequency = f;
                description = d;
        }
+
+       private AltosFrequency(AltosJson j) {
+               frequency = j.get_double("frequency", 0.0);
+               description = j.get_string("description", "");
+       }
+
+       public static AltosFrequency fromJson(AltosJson j, AltosFrequency def) {
+               if (j == null)
+                       return def;
+               return new AltosFrequency(j);
+       }
 }