コード例 #1
0
        public void DmmMeasurementRange_ExtraMax()
        {
            var r = new DmmMeasurementRange("Test", 0, 100, DmmMeasurementType.Unknown);

            Assert.AreEqual(0, r.MinimumExponent);
            Assert.AreEqual(9, r.MaximumExponent);
        }
コード例 #2
0
        public void DmmMeasurementRange_UndefinedRange()
        {
            var r = new DmmMeasurementRange(DmmMeasurementType.VoltageDC);

            Assert.AreEqual(-9, r.MinimumExponent);
            Assert.AreEqual(9, r.MaximumExponent);
        }
コード例 #3
0
        public void DmmMeasurementRange_Basic()
        {
            var r = new DmmMeasurementRange("Test", -3, 3, DmmMeasurementType.VoltageDC);

            Assert.AreEqual("Test", r.Title);
            Assert.AreEqual(-3, r.MinimumExponent);
            Assert.AreEqual(3, r.MaximumExponent);
            Assert.AreEqual(DmmMeasurementType.VoltageDC, r.MeasurementType);
        }
コード例 #4
0
        public void DmmMeasurementRange_SlightlyOver2()
        {
            var r = new DmmMeasurementRange("Test", 2, 4, DmmMeasurementType.VoltageDC);

            Assert.AreEqual("Test", r.Title);
            Assert.AreEqual(3, r.MinimumExponent);
            Assert.AreEqual(6, r.MaximumExponent);
            Assert.AreEqual(DmmMeasurementType.VoltageDC, r.MeasurementType);
        }
コード例 #5
0
        public void DmmMeasurement_RangeMilliToNone_Below()
        {
            var r = new DmmMeasurementRange("Current", -3, 3, DmmMeasurementType.CurrentDC);
            var m = new DmmMeasurement(0.0001M, r);

            Assert.AreEqual(0.1M, m.Value.Coefficient);
            Assert.AreEqual(-3, m.Value.Exponent);
            Assert.AreEqual("m", m.Value.SIPrefix);
            Assert.AreEqual("mA", m.SIUnit);
        }
コード例 #6
0
        public void DmmMeasurement_RangeMilliToNone_Above()
        {
            var r = new DmmMeasurementRange("Current", -3, 0, DmmMeasurementType.CurrentDC);
            var m = new DmmMeasurement(1000, r);

            Assert.AreEqual(1000, m.Value.Coefficient);
            Assert.AreEqual(0, m.Value.Exponent);
            Assert.AreEqual("", m.Value.SIPrefix);
            Assert.AreEqual("A", m.SIUnit);
        }
コード例 #7
0
ファイル: Random.cs プロジェクト: medo64/DmmLog
        private DmmMeasurement GetNextMeasurement()
        {
            var bytes = new byte[5];

            if (this.Readings.IsEmpty || (Rnd.Next(100) == 0))
            {
                switch (Rnd.Next(9))
                {
                case 0: this.Range = new DmmMeasurementRange(DmmMeasurementType.VoltageDC); break;

                case 1: this.Range = new DmmMeasurementRange(DmmMeasurementType.VoltageAC, "~"); break;

                case 2: this.Range = new DmmMeasurementRange(DmmMeasurementType.Resistance); break;

                case 3: this.Range = new DmmMeasurementRange(DmmMeasurementType.Diode); break;

                case 4: this.Range = new DmmMeasurementRange(DmmMeasurementType.Capacitance); break;

                case 5: this.Range = new DmmMeasurementRange(DmmMeasurementType.CurrentDC); break;

                case 6: this.Range = new DmmMeasurementRange(DmmMeasurementType.CurrentAC, "~"); break;

                case 7: this.Range = new DmmMeasurementRange(DmmMeasurementType.Frequency); break;

                default: this.Range = new DmmMeasurementRange(DmmMeasurementType.Unknown, "?"); break;
                }
                this.Readings.Clear();
                var newValue = Rnd.Next(-9, 10) * Math.Pow(10, Rnd.Next(-8, 9));
                this.Readings.Add(newValue);
            }
            else
            {
                var currValue = this.Readings.Average;
                var newDelta  = Rnd.Next(-200, 201) / 100.0;
                var newRange  = (currValue != 0) ? Math.Pow(10, Math.Truncate((Math.Log10(Math.Abs(currValue))))) : 1;
                if (newRange < 1)
                {
                    newRange /= 10;
                }
                var newValue = currValue + newDelta * newRange * 0.1;
                this.Readings.Add(newValue);
            }

            return(new DmmMeasurement(Convert.ToDecimal(this.Readings.Average), this.Range));
        }
コード例 #8
0
 public void DmmMeasurementRange_MinLargerThanMax()
 {
     var r = new DmmMeasurementRange("Test", 1, 0, DmmMeasurementType.Unknown);
 }