コード例 #1
0
    public double[] getCalibratedData()     //TAKES THE CURRENT RAW CAPACITANCE AND CALCULATE THE ACTUAL COORDINATE DATA AND RETURN TO GLOVE CONTROLLER
    {
        if (calibrationAlgorithm.getTheta() == null)
        {
            return(new Double[] {});
        }

        int[] DCbiased = new int[array_capacitance_raw.Length + 1];
        DCbiased[0] = 1;

        for (int index = 0; index < array_capacitance_raw.Length; index++)
        {
            DCbiased[index + 1] = array_capacitance_raw[index];
        }

        //Retrieve weightings (theta) from training algo and multiply against current capacitance data
        double[] Position = calibrationAlgorithm.ApplyTransformation(DCbiased, calibrationAlgorithm.getTheta());
        //Set range limits
        for (int index = 0; index < Position.Length; index++)
        {
            if (Position[index] < calibrationAlgorithm.TrainingPositionMinY[index])
            {
                Position[index] = calibrationAlgorithm.TrainingPositionMinY[index];
            }
            else if (Position[index] > calibrationAlgorithm.TrainingPositionMaxY[index])
            {
                Position[index] = calibrationAlgorithm.TrainingPositionMaxY[index];
            }
        }

        return(Position);
    }