altoslib: Convert IMU and Mag sensor values to useful units
[fw/altos] / altoslib / AltosMag.java
index 89e72bd6e5983153dcacb499011a254369aa946f..5136bfd20f13b60312082f27b4d1ce02118b8a9e 100644 (file)
@@ -20,9 +20,15 @@ package org.altusmetrum.altoslib_2;
 import java.util.concurrent.*;
 
 public class AltosMag implements Cloneable {
 import java.util.concurrent.*;
 
 public class AltosMag implements Cloneable {
-       public int              x;
-       public int              y;
-       public int              z;
+       public double           x;
+       public double           y;
+       public double           z;
+
+       public static double counts_per_gauss = 1090;
+
+       public static double convert_gauss(int counts) {
+               return (double) counts / counts_per_gauss;
+       }
 
        public boolean parse_string(String line) {
 //             if (line.startsWith("Syntax error")) {
 
        public boolean parse_string(String line) {
 //             if (line.startsWith("Syntax error")) {
@@ -36,9 +42,9 @@ public class AltosMag implements Cloneable {
                String[] items = line.split("\\s+");
 
                if (items.length >= 6) {
                String[] items = line.split("\\s+");
 
                if (items.length >= 6) {
-                       x = Integer.parseInt(items[1]);
-                       y = Integer.parseInt(items[3]);
-                       z = Integer.parseInt(items[5]);
+                       x = convert_gauss(Integer.parseInt(items[1]));
+                       y = convert_gauss(Integer.parseInt(items[3]));
+                       z = convert_gauss(Integer.parseInt(items[5]));
                }
                return true;
        }
                }
                return true;
        }