X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altoslib%2FAltosMag.java;h=8d40bc607490f5392fff4c4eb5cc3f50573a396c;hb=7175774c4f60ed3efd54417f2035b50ea0108c7b;hp=9262de2d3e8e6f06fc1892cb22bbc3cff3af8618;hpb=f0216d721ed13f4d3dc608bb6ad8f83732b27c0a;p=fw%2Faltos diff --git a/altoslib/AltosMag.java b/altoslib/AltosMag.java index 9262de2d..8d40bc60 100644 --- a/altoslib/AltosMag.java +++ b/altoslib/AltosMag.java @@ -15,24 +15,25 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_4; +package org.altusmetrum.altoslib_11; import java.util.concurrent.*; +import java.io.*; -public class AltosMag implements Cloneable { - public double x; - public double y; - public double z; +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(int counts) { - return (double) counts / counts_per_gauss; + public static double convert_gauss(double counts) { + return counts / counts_per_gauss; } public boolean parse_string(String line) { // if (line.startsWith("Syntax error")) { -// x = y = z = 0; +// along = across = through = 0; // return true; // } @@ -42,9 +43,9 @@ public class AltosMag implements Cloneable { String[] items = line.split("\\s+"); if (items.length >= 6) { - x = convert_gauss(Integer.parseInt(items[1])); - y = convert_gauss(Integer.parseInt(items[3])); - z = convert_gauss(Integer.parseInt(items[5])); + along = Integer.parseInt(items[1]); + across = Integer.parseInt(items[3]); + through = Integer.parseInt(items[5]); } return true; } @@ -52,16 +53,22 @@ public class AltosMag implements Cloneable { public AltosMag clone() { AltosMag n = new AltosMag(); - n.x = x; - n.y = y; - n.z = z; + n.along = along; + n.across = across; + n.through = through; return n; } public AltosMag() { - x = AltosLib.MISSING; - y = AltosLib.MISSING; - z = AltosLib.MISSING; + along = AltosLib.MISSING; + across = AltosLib.MISSING; + through = AltosLib.MISSING; + } + + public AltosMag(int along, int across, int through) { + this.along = along; + this.across = across; + this.through = through; } static public void update_state(AltosState state, AltosLink link, AltosConfigData config_data) throws InterruptedException { @@ -86,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); + } }