예제 #1
0
 public XsQuaternion(XsEuler euler) : this(xsensdeviceapiPINVOKE.new_XsQuaternion__SWIG_6(XsEuler.getCPtr(euler)), true)
 {
     if (xsensdeviceapiPINVOKE.SWIGPendingException.Pending)
     {
         throw xsensdeviceapiPINVOKE.SWIGPendingException.Retrieve();
     }
 }
예제 #2
0
        private void XSensGyroDataAvailable(object sender, DataAvailableArgs e)
        {
            // Get Euler angles.
            XsEuler oriEuler = e.Packet.orientationEuler();

            _connectedData._orientation = oriEuler;

            if (_connectedData._orientation != null)
            {
                if (this.performZeroOnNextDataUpdate)
                {
                    this.zeroX = _connectedData._orientation.x();
                    this.zeroY = _connectedData._orientation.y();
                    this.zeroZ = _connectedData._orientation.z();
                    this.performZeroOnNextDataUpdate = false;
                }

                bikeController.bikeData.XsensGyro[0] = (float)-(_connectedData._orientation.z() - this.zeroZ);
                bikeController.bikeData.XsensGyro[1] = (float)(_connectedData._orientation.y() - this.zeroY);
                bikeController.bikeData.XsensGyro[2] = (float)(_connectedData._orientation.x() - this.zeroX);

                //Debug.LogFormat("{0,-5:f2}, {1,-5:f2}, {2,-5:f2} [°]\n",
                //                       _connectedData._orientation.x(),
                //                       _connectedData._orientation.y(),
                //                       _connectedData._orientation.z());
            }
        }
 public XsEuler(XsEuler other) : this(xsensdeviceapiPINVOKE.new_XsEuler__SWIG_2(XsEuler.getCPtr(other)), true)
 {
     if (xsensdeviceapiPINVOKE.SWIGPendingException.Pending)
     {
         throw xsensdeviceapiPINVOKE.SWIGPendingException.Retrieve();
     }
 }
 public void setOrientationEuler(XsEuler data, XsDataIdentifier coordinateSystem)
 {
     xsensdeviceapiPINVOKE.XsDataPacket_setOrientationEuler(swigCPtr, XsEuler.getCPtr(data), (int)coordinateSystem);
     if (xsensdeviceapiPINVOKE.SWIGPendingException.Pending)
     {
         throw xsensdeviceapiPINVOKE.SWIGPendingException.Retrieve();
     }
 }
예제 #5
0
        public XsQuaternion fromEulerAngles(XsEuler src)
        {
            XsQuaternion ret = new XsQuaternion(xsensdeviceapiPINVOKE.XsQuaternion_fromEulerAngles(swigCPtr, XsEuler.getCPtr(src)), false);

            if (xsensdeviceapiPINVOKE.SWIGPendingException.Pending)
            {
                throw xsensdeviceapiPINVOKE.SWIGPendingException.Retrieve();
            }
            return(ret);
        }
        public XsEuler fromQuaternion(XsQuaternion quat)
        {
            XsEuler ret = new XsEuler(xsensdeviceapiPINVOKE.XsEuler_fromQuaternion(swigCPtr, XsQuaternion.getCPtr(quat)), false);

            if (xsensdeviceapiPINVOKE.SWIGPendingException.Pending)
            {
                throw xsensdeviceapiPINVOKE.SWIGPendingException.Retrieve();
            }
            return(ret);
        }
        public bool compare(XsEuler other, double tolerance)
        {
            bool ret = xsensdeviceapiPINVOKE.XsEuler_compare(swigCPtr, XsEuler.getCPtr(other), tolerance);

            if (xsensdeviceapiPINVOKE.SWIGPendingException.Pending)
            {
                throw xsensdeviceapiPINVOKE.SWIGPendingException.Retrieve();
            }
            return(ret);
        }
예제 #8
0
 void _callbackHandler_DataAvailable(object sender, DataAvailableArgs e)
 {
     if (InvokeRequired)
     {
         // Update UI, make sure this happens on the UI thread
         BeginInvoke(new Action(delegate { _callbackHandler_DataAvailable(sender, e); }));
     }
     else
     {
         //Getting Euler angles.
         XsEuler oriEuler = e.Packet.orientationEuler();
         _connectedData._orientation = oriEuler;
         XsCalibratedData calData = e.Packet.calibratedData();
         _connectedData._calibratedData = calData;
     }
 }
        static void _callbackHandler_DataAvailable(object sender, DataAvailableArgs e)
        {
            var battery = e.Device.batteryLevel();
            //Getting Euler angles.
            XsEuler oriEuler        = e.Packet.orientationEuler();
            var     rawAcceleration = e.Packet.rawAcceleration();
            var     xsRawGpsTimeUtc = e.Packet.rawGpsTimeUtc();
            var     altitude        = e.Packet.altitude();
            var     altitudeMsl     = e.Packet.altitudeMsl();

            _connectedMtwData[e.Device.deviceId().toInt()]._orientation            = oriEuler;
            _connectedMtwData[e.Device.deviceId().toInt()]._xsRawGpsTimeUtc        = xsRawGpsTimeUtc;
            _connectedMtwData[e.Device.deviceId().toInt()]._temperature            = e.Packet.temperature();
            _connectedMtwData[e.Device.deviceId().toInt()]._rawAcceleration        = rawAcceleration;
            _connectedMtwData[e.Device.deviceId().toInt()]._calibratedAcceleration = e.Packet.calibratedAcceleration();
            _connectedMtwData[e.Device.deviceId().toInt()]._freeAcceleration       = e.Packet.freeAcceleration();
            _connectedMtwData[e.Device.deviceId().toInt()]._utcTime = e.Packet.utcTime();


            _connectedMtwData[e.Device.deviceId().toInt()]._batteryLevel = battery;
            _connectedMtwData[e.Device.deviceId().toInt()]._rssi         = e.Device.lastKnownRssi();

            _connectedMtwData[e.Device.deviceId().toInt()]._containsRawAcceleration        = e.Packet.containsRawAcceleration();
            _connectedMtwData[e.Device.deviceId().toInt()]._containsCalibratedAcceleration = e.Packet.containsCalibratedAcceleration();
            _connectedMtwData[e.Device.deviceId().toInt()]._containsFreeAcceleration       = e.Packet.containsFreeAcceleration();
            _connectedMtwData[e.Device.deviceId().toInt()]._containsUtcTime        = e.Packet.containsUtcTime();
            _connectedMtwData[e.Device.deviceId().toInt()]._timeOfArrival_msTime   = e.Packet.timeOfArrival().msTime();
            _connectedMtwData[e.Device.deviceId().toInt()]._containsSampleTimeFine = e.Packet.containsSampleTimeFine();
            _connectedMtwData[e.Device.deviceId().toInt()]._sampleTimeFine         = e.Packet.sampleTimeFine();

            trackingDetailSaver.SaveTrackingDetail(e.Device.deviceId().toInt(),
                                                   sessionId,
                                                   DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss.fff", CultureInfo.InvariantCulture),
                                                   //DateTime.Now,
                                                   e.Packet.timeOfArrival().msTime(),
                                                   e.Device.batteryLevel(),
                                                   e.Device.lastKnownRssi(),
                                                   e.Packet.freeAcceleration().cartesianLength(),
                                                   e.Packet.calibratedAcceleration().cartesianLength());
        }
        public XsEuler orientationEuler()
        {
            XsEuler ret = new XsEuler(xsensdeviceapiPINVOKE.XsDataPacket_orientationEuler__SWIG_1(swigCPtr), true);

            return(ret);
        }
        public XsEuler orientationEuler(XsDataIdentifier coordinateSystem)
        {
            XsEuler ret = new XsEuler(xsensdeviceapiPINVOKE.XsDataPacket_orientationEuler__SWIG_0(swigCPtr, (int)coordinateSystem), true);

            return(ret);
        }
 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(XsEuler obj)
 {
     return((obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr);
 }