|
|
@@ -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)
|