public bool SetInterpolationProfile(SenseGloveCs.Kinematics.InterpolationSet_IMU set)
 {
     if (linkedGlove != null)
     {
         linkedGlove.SetInterpolationValues(set.Serialize());
         return(true);
     }
     return(false);
 }
    //--------------------------------------------------------------------------------------------------------------------------
    // Internal Calibration Algorithms

    #region InternalCalibration

    ///// <summary> Reset the Calibration of the glove if, for instance, something went wrong, or if we are shutting down. </summary>
    //public void CancelCalibration()
    //{
    //    if (linkedGlove != null)
    //    {
    //        linkedGlove.StopCalibration();
    //        SenseGlove_Debugger.Log("Canceled Calibration");
    //    }
    //}



    ///// <summary> Calibrate a variable related to the glove or a solver, with a specific collection method. </summary>
    ///// <param name="whichFingers"></param>
    ///// <param name="simpleCalibration"></param>
    ///// <returns></returns>
    //public bool StartCalibration(CalibrateVariable whatToCalibrate, CollectionMethod howToCollect)
    //{
    //    if (this.linkedGlove != null)
    //    {
    //        return this.linkedGlove.StartCalibration(whatToCalibrate, howToCollect);
    //    }
    //    return false;
    //}


    ///// <summary> Continue the next calibration steps (no reporting of progress) </summary>
    ///// <returns></returns>
    //public bool NextCalibrationStep()
    //{
    //    if (this.linkedGlove != null)
    //        return this.linkedGlove.NextCalibrationStep();
    //    return false;
    //}


    ///// <summary> Fires when the glove's internal calibration finished, which may have come from a worker thread. </summary>
    ///// <param name="source"></param>
    ///// <param name="args"></param>
    //private void LinkedGlove_OnCalibrationFinished(object source, CalibrationArgs args)
    //{
    //    this.ReadyCalibration(new GloveCalibrationArgs(args), true);
    //}


    #endregion InternalCalibration

    #endregion Calibration

    public bool GetInterpolationProfile(out SenseGloveCs.Kinematics.InterpolationSet_IMU set)
    {
        if (linkedGlove != null)
        {
            set = SenseGloveCs.Kinematics.InterpolationSet_IMU.Deserialize(linkedGlove.GetInterpolationValues(),
                                                                           linkedGlove.IsRight()); //reserialize so that we return a copy, and not a direct reference.
        }
        else
        {
            set = null;
        }
        return(set != null);
    }