示例#1
0
    /// <summary> Start a new calibration, based on the parameters set via the inspector. </summary>
    /// <param name="whichFingers"></param>
    /// <returns></returns>
    public bool StartCalibration(bool[] whichFingers = null)
    {
        if (this.GloveReady())
        {
            if (whichFingers == null)
            {
                whichFingers = new bool[] { false, true, true, true, true };
            }

            CalibrationAlgorithm algorithm = null;
            switch (this.calibrationAlgorithm)
            {
            case Algorithm.PointsOnACircle2D: algorithm = new Circle2D(whichFingers); break;
            }
            if (algorithm != null)
            {
                CalibrationMethod method = null;
                switch (this.calibrationMethod)
                {
                case CalibrationType.Manual: method = new ManualCalibration(algorithm, this.async); break;

                case CalibrationType.SemiAutomatic: method = new SemiAutoCalibration(algorithm, this.async, 12, 0.6f, 5); break;

                case CalibrationType.Automatic: method = new AutoCalibration(algorithm, this.async); break;
                }
                if (method != null)
                {
                    this.glove.StartCalibration(method);
                    this.calibrating = true;
                }
            }
        }
        return(false);
    }
    public GloveDataProcessor()
    {
        if (calibrationAlgorithm == null)
        {
            BluetoothLEHardwareInterface.Log("Glove address : " + GloveUuid);

            calibrationAlgorithm = new CalibrationAlgorithm();
        }
    }