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); }
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); }
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); } }