Browse Source

轴变了就清除校准记录

lvjincheng 3 years ago
parent
commit
2fe91531b2

+ 0 - 8
Assets/BowArrow/Scripts/Bluetooth/New/Axis663Handler.cs

@@ -9,14 +9,6 @@ public class Axis663Handler : AxisBaseHandler
 {
     private o0.Bow.o0663Axis _663Axis;
 
-    /*
-    public o0.Geometry.Vector<int> GyrByteIndex = new o0.Geometry.Vector<int>(3, -2, 1);
-    public o0.Geometry.Vector<int> AccByteIndex = new o0.Geometry.Vector<int>(3, -2, 1);
-    public o0.Geometry.Vector<int> MagByteIndex = new o0.Geometry.Vector<int>(-3, 2, 1);/**///9轴 usb向上 pcb向左 电池向右
-    /*
-    public o0.Geometry.Vector<int> GyrByteIndex = new o0.Geometry.Vector<int>(-3, -2, -1);
-    public o0.Geometry.Vector<int> AccByteIndex = new o0.Geometry.Vector<int>(-3, -2, -1);
-    public o0.Geometry.Vector<int> MagByteIndex = new o0.Geometry.Vector<int>(3, 2, -1);/**///9轴 usb向上 pcb向右 电池向左
     public o0.Geometry.Vector<int> GyrByteIndex = new o0.Geometry.Vector<int>(-3, -2, -1);
     public o0.Geometry.Vector<int> AccByteIndex = new o0.Geometry.Vector<int>(-3, -2, -1);
     public o0.Geometry.Vector<int> MagByteIndex = new o0.Geometry.Vector<int>(-3, -1, 2);/**///双陀螺仪 usb向上 pcb向右 电池向右

+ 10 - 4
Assets/BowArrow/Scripts/Bluetooth/New/Axis9Handler.cs

@@ -16,10 +16,6 @@ public class Axis9Handler : AxisBaseHandler
     public o0.Geometry.Vector<int> GyrByteIndex = new o0.Geometry.Vector<int>(-3, -2, -1);
     public o0.Geometry.Vector<int> AccByteIndex = new o0.Geometry.Vector<int>(-3, -2, -1);
     public o0.Geometry.Vector<int> MagByteIndex = new o0.Geometry.Vector<int>(3, 2, -1);/**///9轴 usb向上 pcb向右 电池向左
-    /*
-    public o0.Geometry.Vector<int> GyrByteIndex = new o0.Geometry.Vector<int>(-3, -2, -1);
-    public o0.Geometry.Vector<int> AccByteIndex = new o0.Geometry.Vector<int>(-3, -2, -1);
-    public o0.Geometry.Vector<int> MagByteIndex = new o0.Geometry.Vector<int>(-3, -1, 2);/**///双陀螺仪 usb向上 pcb向右 电池向右
 
     public Axis9Handler(AimHandler aimHandler) : base(aimHandler) {}
 
@@ -126,6 +122,16 @@ public class Axis9Handler : AxisBaseHandler
         try
         {
             Json.FromJson<o0.IMU._9AxisPreProcessor>(record, ref _9Axis.Attitude);
+            Type t = _9Axis.Attitude.GetType();
+            object o = _9Axis.Attitude;
+            bool gyrEqual = GyrByteIndex.Equals(t.GetField("GyrByteIndex", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(o));
+            bool accEqual = AccByteIndex.Equals(t.GetField("AccByteIndex", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(o));
+            bool magEqual = MagByteIndex.Equals(t.GetField("MagByteIndex", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(o));
+            if (!(gyrEqual && accEqual && magEqual))
+            {
+                Debug.Log("跟保存的轴向不相同,重置校准记录!");
+                _9Axis.Attitude = new o0.IMU._9AxisPreProcessor(GyrByteIndex, AccByteIndex, MagByteIndex);
+            }
             Debug.Log("9轴数据恢复成功" + ", MagComplete" + _9Axis.Attitude.MagCalibrater.Complete);
         }
         catch (Exception e)