private void TakeNunchuckAccelerationCalibrationSnapshot(ushort x, ushort y, ushort z)
        {
            var offset  = (x + y) / 2d;
            var gravity = z - offset;

            NunchuckAcceleration = new LinearCalibration(9.81 / gravity, offset);
        }
        private void TakeAccelerationCalibrationSnapshot(ushort accX, ushort accY, ushort accZ)
        {
            var offset  = (accX + accY) / 2d;
            var gravity = accZ - offset;

            Acceleration = new LinearCalibration(9.81 / gravity, offset);
        }
Beispiel #3
0
        public void SinglePoint_NoChange()
        {
            var target = new LinearCalibration();

            target.AddCalibrationPoint(0, 0);
            Assert.Equal(1, target.CorrelationCoefficient);
            Assert.Equal(1, target.GetAdjustedValue(1));
        }
Beispiel #4
0
        public void NoCalibration()
        {
            var target = new LinearCalibration();

            Assert.Equal(1, target.CorrelationCoefficient);
            Assert.Equal(0, target.GetAdjustedValue(0));
            Assert.Equal(1, target.GetAdjustedValue(1));
        }
        public void LinearCalibration_OnePoint()
        {
            LinearCalibration target = new LinearCalibration();

            target.AddCalibrationPoint(0, 1);
            Assert.AreEqual(0, target.GetAdjustedValue(1));
            Assert.AreEqual(1, target.CorrelationCoefficient);
        }
        public void LinearCalibration_TwoPoint_Simple()
        {
            LinearCalibration target = new LinearCalibration();

            target.AddCalibrationPoint(0, 1);
            target.AddCalibrationPoint(100, 101);
            Assert.AreEqual(50, target.GetAdjustedValue(51));
            Assert.AreEqual(1, target.CorrelationCoefficient);
        }
        private static double TransformLinear(LinearCalibration calibration, double value)
        {
            if (calibration == null)
            {
                return(0);
            }

            return((value - calibration.Offset) * calibration.Gain);
        }
        private void ViewCommand_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            //deep read the currently selected calibration
            LinearCalibration lc = LinearCalibration.GetAllLC("[IDCalibration] = " +
                                                              ((LinearCalibration)cbLCSelection.SelectedItem).CalibrationID, true)?.Single();
            CalibrationViewDialog cvDlg = new CalibrationViewDialog(ref lc);

            cvDlg.Show(); //just to show it, no results are necessary
        }
Beispiel #9
0
        public void TwoPoints_Double()
        {
            var target = new LinearCalibration();

            target.AddCalibrationPoint(0, 0);
            target.AddCalibrationPoint(100, 50);
            Assert.Equal(1, target.CorrelationCoefficient);
            Assert.Equal(50, target.GetAdjustedValue(25));
        }
Beispiel #10
0
        public void ThreePoints_Simple()
        {
            var target = new LinearCalibration();

            target.AddCalibrationPoint(0, 1);
            target.AddCalibrationPoint(50, 51);
            target.AddCalibrationPoint(100, 101);
            Assert.Equal(1, target.CorrelationCoefficient);
            Assert.Equal(25, target.GetAdjustedValue(26));
        }
Beispiel #11
0
        public void ThreePoints_Halve()
        {
            var target = new LinearCalibration();

            target.AddCalibrationPoint(0, 0);
            target.AddCalibrationPoint(50, 100);
            target.AddCalibrationPoint(100, 200);
            Assert.Equal(1, target.CorrelationCoefficient);
            Assert.Equal(75, target.GetAdjustedValue(150));
        }
        public void LinearCalibration_ThreePoint_Double()
        {
            LinearCalibration target = new LinearCalibration();

            target.AddCalibrationPoint(0, 0);
            target.AddCalibrationPoint(50, 25);
            target.AddCalibrationPoint(100, 50);
            Assert.AreEqual(80, target.GetAdjustedValue(40));
            Assert.AreEqual(1, target.CorrelationCoefficient);
        }
Beispiel #13
0
        public void ThreePoints_Freestyle_3()
        {
            var target = new LinearCalibration();

            target.AddCalibrationPoint(0, 1);
            target.AddCalibrationPoint(20, -10);
            target.AddCalibrationPoint(100, 50);
            Assert.Equal(0.93477, target.CorrelationCoefficient, 5);
            Assert.Equal(60.08439, target.GetAdjustedValue(25), 5);
            Assert.Equal(104.38819, target.GetAdjustedValue(50), 5);
            Assert.Equal(148.69198, target.GetAdjustedValue(75), 5);
        }
        public void LinearCalibration_ThreePoint_Freestyle_3()
        {
            LinearCalibration target = new LinearCalibration();

            target.AddCalibrationPoint(0, 1);
            target.AddCalibrationPoint(20, -10);
            target.AddCalibrationPoint(100, 50);
            Assert.AreEqual(60.08439, System.Math.Round(target.GetAdjustedValue(25), 5));
            Assert.AreEqual(104.38819, System.Math.Round(target.GetAdjustedValue(50), 5));
            Assert.AreEqual(148.69198, System.Math.Round(target.GetAdjustedValue(75), 5));
            Assert.AreEqual(0.93477, Math.Round(target.CorrelationCoefficient, 5));
        }
        public void LinearCalibration_ThreePoint_Freestyle_2()
        {
            LinearCalibration target = new LinearCalibration();

            target.AddCalibrationPoint(0, 1);
            target.AddCalibrationPoint(50, 49);
            target.AddCalibrationPoint(100, 100);
            Assert.AreEqual(24.74747, System.Math.Round(target.GetAdjustedValue(25), 5));
            Assert.AreEqual(50, target.GetAdjustedValue(50));
            Assert.AreEqual(75.25253, System.Math.Round(target.GetAdjustedValue(75), 5));
            Assert.AreEqual(0.99985, Math.Round(target.CorrelationCoefficient, 5));
        }
Beispiel #16
0
        public void ThreePoints_Freestyle_1()
        {
            var target = new LinearCalibration();

            target.AddCalibrationPoint(0, 0.5);
            target.AddCalibrationPoint(50, 50);
            target.AddCalibrationPoint(100, 99.5);
            Assert.Equal(1, target.CorrelationCoefficient);
            Assert.Equal(24.74747, target.GetAdjustedValue(25), 5);
            Assert.Equal(50, target.GetAdjustedValue(50));
            Assert.Equal(75.25253, target.GetAdjustedValue(75), 5);
        }
Beispiel #17
0
        public void Multipoint()
        {
            var target = new LinearCalibration();

            target.AddCalibrationPoint(0, 0.025);
            target.AddCalibrationPoint(1, 0.217);
            target.AddCalibrationPoint(2, 0.388);
            target.AddCalibrationPoint(3, 0.634);
            target.AddCalibrationPoint(4, 0.777);
            target.AddCalibrationPoint(5, 1.011);
            target.AddCalibrationPoint(6, 1.166);
            Assert.Equal(0.9976, target.CoefficientOfDetermination, 4);
            Assert.Equal(1.19, target.GetAdjustedValue(0.254), 2);
        }
 private void DeleteCommand_Executed(object sender, ExecutedRoutedEventArgs e)
 {
     try
     {
         LinearCalibration tmpLC = ((LinearCalibration)cbLCSelection.SelectedItem);
         LinearCalibration.Delete(tmpLC.CalibrationID);
         CALogger.WriteToLogFile(string.Format("Удалена калибровка ID{0};{1} - {2}",
                                               tmpLC.CalibrationID, tmpLC.Description, tmpLC.CalibrationType.ToString()));
         FillData();
     }
     catch
     {
         MessageBox.Show("Не удалось удалить калибровку!\nИмеются связанные данные.");
     }
 }
Beispiel #19
0
        public CalibrationDataDialog(ref LinearCalibration calibration)
        {
            InitializeComponent();
            lc = calibration;
            grdCalibrationDialog.DataContext = this;
            Array values = Enum.GetValues(typeof(ChemicalElemetCalibration));

            foreach (int value in values)
            {
                string display = Enum.GetName(typeof(ChemicalElemetCalibration), value);
                cbChemicalElemets.Items.Add(display);
                cbChemicalElemets.SelectedIndex = Array.IndexOf(values, calibration.CalibrationType, 0);
                cbChemicalElemets.IsEnabled     = false;
            }
        }
        public void CalcKaliumValue()
        {
            LinearCalibration lc;

            if (!lcDict.ContainsKey(KaliumCalibration))
            {
                lc = LinearCalibration.GetAllLC("[IDCalibration] = " + KaliumCalibration, true).FirstOrDefault();
                lcDict.Add(KaliumCalibration, lc);
            }
            else
            {
                lc = lcDict[KaliumCalibration];
            }
            KDry = lc.ValueToConcentration(KaliumValue, KaliumDiapason - 1) * KaliumVolume
                   / (2 * SampleCorrectedDryWeight);
        }
 private void FillData()
 {
     lcList.Clear();
     foreach (LinearCalibration clbr in LinearCalibration.GetAllLC("[CalibrationType] = N'" + type + "'"))
     {
         lcList.Add(clbr);
     }
     try
     {
         cbLCSelection.SelectedIndex = lcList.IndexOf(lcList.First(p => p.CalibrationID == CalibrationNumber));
     }
     catch
     {
         cbLCSelection.SelectedIndex = 0;
     }
 }
        public void LinearCalibration_Multipoint()
        {
            LinearCalibration target = new LinearCalibration();

            target.AddCalibrationPoint(0, 0.025);
            target.AddCalibrationPoint(1, 0.217);
            target.AddCalibrationPoint(2, 0.388);
            target.AddCalibrationPoint(3, 0.634);
            target.AddCalibrationPoint(4, 0.777);
            target.AddCalibrationPoint(5, 1.011);
            target.AddCalibrationPoint(6, 1.166);
            Assert.AreEqual(0.1929, Math.Round(target.Slope, 4));
            Assert.AreEqual(0.0240, Math.Round(target.Intercept, 4));
            Assert.AreEqual(0.9976, Math.Round(target.CoefficientOfDetermination, 4));
            Assert.AreEqual(1.19, Math.Round(target.GetAdjustedValue(0.254), 2));
        }
        private void NewCommand_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            LinearCalibration lc = new LinearCalibration()
            {
                CalibrationType =
                    (ChemicalElemetCalibration)Enum.Parse(typeof(ChemicalElemetCalibration), type)
            };
            CalibrationDataDialog cldDlg = new CalibrationDataDialog(ref lc);

            if (cldDlg.ShowDialog() == true)
            {
                CALogger.WriteToLogFile(string.Format("Создана калибровка {0} - {1}",
                                                      lc.Description, lc.CalibrationType.ToString()));
                lc.Insert();
                FillData();
            }
        }
        private void EditCommand_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            //deep read the currently selected calibration
            LinearCalibration lc = LinearCalibration.GetAllLC("[IDCalibration] = " +
                                                              ((LinearCalibration)cbLCSelection.SelectedItem).CalibrationID, true)?.Single();
            CalibrationDataDialog cldDlg = new CalibrationDataDialog(ref lc);

            if (cldDlg.ShowDialog() == true)
            {
                try
                {
                    lc.Update();
                    CALogger.WriteToLogFile(string.Format("Изменена калибровка ID{0};{1} - {2}",
                                                          lc.CalibrationID, lc.Description, lc.CalibrationType.ToString()));
                    FillData();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message + " в " + ex.Source, "Ошибка");
                }
            }
        }
        private void TakeAccelerationCalibrationSnapshot(ushort accX, ushort accY, ushort accZ)
        {
            var offset = (accX + accY) / 2d;
            var gravity = accZ - offset;

            Acceleration = new LinearCalibration(9.81 / gravity, offset);
        }
 private void TakeGuitarWhammyCalibrationSnapshot(byte x)
 {
     GuitarWhammy = new LinearCalibration(1, x);
 }
 private void TakeClassicControllerLeftTriggerCalibrationSnapshot(byte x)
 {
     ClassicControllerLeftTrigger = new LinearCalibration(1, x);
 }
        private void TakeNunchuckAccelerationCalibrationSnapshot(ushort x, ushort y, ushort z)
        {
            var offset = (x + y) / 2d;
            var gravity = z - offset;

            NunchuckAcceleration = new LinearCalibration(9.81 / gravity, offset);
        }
 public TwoPointCalibration(LinearCalibration x, LinearCalibration y)
 {
     X = x;
     Y = y;
 }
 public ThreePointCalibration(LinearCalibration x, LinearCalibration y, LinearCalibration z)
 {
     X = x;
     Y = y;
     Z = z;
 }
Beispiel #31
0
 public CalibrationViewDialog(ref LinearCalibration lc)
 {
     InitializeComponent();
     lcCalibration       = lc;
     grdMain.DataContext = this;
 }
 public ThreePointCalibration(LinearCalibration x, LinearCalibration y, LinearCalibration z)
 {
     X = x;
     Y = y;
     Z = z;
 }
 public TwoPointCalibration(LinearCalibration x, LinearCalibration y)
 {
     X = x;
     Y = y;
 }
        private static double TransformLinear(LinearCalibration calibration, double value)
        {
            if (calibration == null)
                return 0;

            return (value - calibration.Offset) * calibration.Gain;
        }