Beispiel #1
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);
        }
Beispiel #2
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);
        }
Beispiel #3
0
        private void PaintDigits(Graphics graphics, int left, int top, DmmMeasurement measurement)
        {
            if (measurement != null)
            {
                int integralDigitCount;
                var chars = GetChars(measurement.Value.Coefficient, out integralDigitCount);

                var y = top + this.DigitNumberSize.Height / 2;
                var x = left;

                if ((integralDigitCount > 0) && (integralDigitCount < Settings.SidebarDigitCount))   //has dot
                {
                    graphics.DrawString(".", this.DigitDotFont, SystemBrushes.GrayText, left + this.DigitMinusSize.Width + integralDigitCount * this.DigitNumberSize.Width + this.DigitDotSize.Width / 2, y, SFCenterMiddle);
                }

                for (int i = 0; i < (1 + Settings.SidebarDigitCount); i++)
                {
                    var ch = chars[i];
                    switch (ch)
                    {
                    case '+': {
                        x += this.DigitMinusSize.Width;
                    } break;

                    case '-': {
                        var brush = (integralDigitCount > 0) ? SystemBrushes.InfoText : SystemBrushes.GrayText;         //gray for OL
                        graphics.DrawString("-", this.DigitMinusFont, brush, x + this.DigitMinusSize.Width / 2, y, SFCenterMiddle);
                        x += this.DigitMinusSize.Width;
                    } break;

                    default: {
                        var font  = (i <= integralDigitCount) ? this.DigitIntegralFont : this.DigitFractionalFont;
                        var brush = (i <= integralDigitCount) ? SystemBrushes.InfoText : SystemBrushes.GrayText;
                        graphics.DrawString(chars[i].ToString(), font, brush, x + this.DigitNumberSize.Width / 2, y, SFCenterMiddle);
                        x += this.DigitNumberSize.Width + ((i == integralDigitCount) ? this.DigitDotSize.Width : 0);
                    } break;
                    }
                }

                if (measurement.ExtraMarking != null)
                {
                    graphics.DrawString(measurement.ExtraMarking, this.DigitMarkingFont, SystemBrushes.InfoText, left + this.DisplaySize.Width, y - this.DisplaySize.Height / 5, SFRightMiddle);
                }
                graphics.DrawString(measurement.SIUnit, this.DigitUnitFont, SystemBrushes.InfoText, left + this.DisplaySize.Width, y + this.DisplaySize.Height / 10, SFRightMiddle);
            }
        }