diff --git a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Mesnac.Action.ChemicalWeighing.csproj b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Mesnac.Action.ChemicalWeighing.csproj
index 050fffa..fb455f1 100644
--- a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Mesnac.Action.ChemicalWeighing.csproj
+++ b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Mesnac.Action.ChemicalWeighing.csproj
@@ -176,6 +176,9 @@
False
..\..\..\PlugInPlatform\Mesnac.PlugIn.dll
+
+ ..\..\Microsoft.Office.Interop.Excel.dll
+
False
..\..\..\A3Lib\Json\Newtonsoft.Json.dll
diff --git a/Controls/Mesnac.Controls.ChemicalWeighing/HslLedDisplay.Designer.cs b/Controls/Mesnac.Controls.ChemicalWeighing/HslLedDisplay.Designer.cs
new file mode 100644
index 0000000..a480564
--- /dev/null
+++ b/Controls/Mesnac.Controls.ChemicalWeighing/HslLedDisplay.Designer.cs
@@ -0,0 +1,37 @@
+namespace Mesnac.Controls.ChemicalWeighing
+{
+ partial class HslLedDisplay
+ {
+ ///
+ /// 必需的设计器变量。
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// 清理所有正在使用的资源。
+ ///
+ /// 如果应释放托管资源,为 true;否则为 false。
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region 组件设计器生成的代码
+
+ ///
+ /// 设计器支持所需的方法 - 不要修改
+ /// 使用代码编辑器修改此方法的内容。
+ ///
+ private void InitializeComponent()
+ {
+ components = new System.ComponentModel.Container();
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ }
+
+ #endregion
+ }
+}
diff --git a/Controls/Mesnac.Controls.ChemicalWeighing/HslLedDisplay.cs b/Controls/Mesnac.Controls.ChemicalWeighing/HslLedDisplay.cs
new file mode 100644
index 0000000..9fc8600
--- /dev/null
+++ b/Controls/Mesnac.Controls.ChemicalWeighing/HslLedDisplay.cs
@@ -0,0 +1,1111 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Drawing.Drawing2D;
+using System.Drawing.Text;
+using System.Linq;
+using System.Net;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace Mesnac.Controls.ChemicalWeighing
+{
+ ///
+ /// 数码管显示的控件信息,可以显示一串数码管的信息
+ ///
+ // Token: 0x02000042 RID: 66
+ [Description("数码管显示控件,支持数字,小数点和特殊的英文字幕显示,支持显示单位")]
+ public partial class HslLedDisplay : UserControl
+ {
+ ///
+ /// 实例化一个默认的对象
+ ///
+ // Token: 0x0600058C RID: 1420 RVA: 0x00036438 File Offset: 0x00034638
+ public HslLedDisplay()
+ {
+ InitializeComponent();
+ base.SetStyle(ControlStyles.UserPaint | ControlStyles.SupportsTransparentBackColor, true);
+ base.SetStyle(ControlStyles.ResizeRedraw, true);
+ base.SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
+ base.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
+ base.ForeColor = Color.Tomato;
+
+ base.SuspendLayout();
+ base.AutoScaleMode = AutoScaleMode.None;
+ this.BackColor = Color.FromArgb(46, 46, 46);
+ base.Name = "HslLedDisplay";
+ base.Size = new Size(325, 58);
+ base.ResumeLayout(false);
+
+ }
+
+ ///
+ // Token: 0x0600058D RID: 1421 RVA: 0x00036510 File Offset: 0x00034710
+ protected override void OnPaint(PaintEventArgs e)
+ {
+ e.Graphics.SmoothingMode = SmoothingMode.HighQuality;
+ e.Graphics.TextRenderingHint = TextRenderingHint.ClearTypeGridFit;
+ this.PaintHslControls(e.Graphics, base.Width, base.Height);
+ base.OnPaint(e);
+ }
+
+ ///
+ // Token: 0x0600058E RID: 1422 RVA: 0x00036568 File Offset: 0x00034768
+ public void PaintHslControls(Graphics g, int width, int height)
+ {
+ bool flag = false;
+ if (!flag)
+ {
+ bool flag2 = width < 3 || height < 3;
+ if (!flag2)
+ {
+ int num = this.leftRightOffect;
+ int num2 = this.leftRightOffect;
+ bool flag3 = !string.IsNullOrEmpty(this.unitText);
+ if (flag3)
+ {
+ num2 = 2 + (int)g.MeasureString(this.unitText, this.Font).Width;
+ }
+ float num3 = (float)(width - num - num2) / 1f / (float)this.displayNumber;
+ int num4 = this.SumCharCount(this.displayText);
+ for (int i = 0; i < this.displayNumber; i++)
+ {
+ this.DrawNumber(g, (int)((float)i * num3) + num, 0, (int)num3, height, ' ', false);
+ }
+ bool flag4 = string.IsNullOrEmpty(this.displayText);
+ if (!flag4)
+ {
+ bool flag5 = this.displayNumber >= num4;
+ if (flag5)
+ {
+ int num5 = this.displayNumber - 1;
+ for (int j = this.displayText.Length - 1; j >= 0; j--)
+ {
+ bool flag6 = this.supportChars.Contains(this.displayText[j]);
+ if (flag6)
+ {
+ this.DrawNumber(g, (int)((float)num5 * num3) + num, 0, (int)num3, height, this.displayText[j], this.IsCharAfterSpot(this.displayText, j));
+ num5--;
+ bool flag7 = num5 < 0;
+ if (flag7)
+ {
+ break;
+ }
+ }
+ }
+ }
+ else
+ {
+ int num6 = 0;
+ for (int k = 0; k < this.displayText.Length; k++)
+ {
+ bool flag8 = this.supportChars.Contains(this.displayText[k]);
+ if (flag8)
+ {
+ this.DrawNumber(g, (int)((float)num6 * num3) + num, 0, (int)num3, height, this.displayText[k], this.IsCharAfterSpot(this.displayText, k));
+ num6++;
+ bool flag9 = num6 >= this.displayNumber;
+ if (flag9)
+ {
+ break;
+ }
+ }
+ }
+ }
+ bool flag10 = !string.IsNullOrEmpty(this.unitText);
+ if (flag10)
+ {
+ g.DrawString(this.unitText, this.Font, this.foreBrush, (float)(width - num2 - 2), 3f);
+ }
+ }
+ }
+ }
+ }
+
+ // Token: 0x0600058F RID: 1423 RVA: 0x000367CC File Offset: 0x000349CC
+ private int SumCharCount(string value)
+ {
+ int num = 0;
+ for (int i = 0; i < value.Length; i++)
+ {
+ bool flag = this.supportChars.Contains(value[i]);
+ if (flag)
+ {
+ num++;
+ }
+ }
+ return num;
+ }
+
+ // Token: 0x06000590 RID: 1424 RVA: 0x00036818 File Offset: 0x00034A18
+ private bool IsCharAfterSpot(string value, int index)
+ {
+ bool flag = string.IsNullOrEmpty(value);
+ bool result;
+ if (flag)
+ {
+ result = false;
+ }
+ else
+ {
+ bool flag2 = index >= value.Length - 1;
+ if (flag2)
+ {
+ result = false;
+ }
+ else
+ {
+ bool flag3 = value[index + 1] == '.';
+ result = flag3;
+ }
+ }
+ return result;
+ }
+
+ // Token: 0x06000591 RID: 1425 RVA: 0x00036864 File Offset: 0x00034A64
+ private void DrawHorizontalItem(Graphics g, Brush brush, int x, int y, int width)
+ {
+ Point[] points = new Point[]
+ {
+ new Point(x, y),
+ new Point(x - this.ledNumberSize / 2, y + this.ledNumberSize / 2),
+ new Point(x, y + this.ledNumberSize),
+ new Point(x + width, y + this.ledNumberSize),
+ new Point(x + width + this.ledNumberSize / 2, y + this.ledNumberSize / 2),
+ new Point(x + width, y),
+ new Point(x, y)
+ };
+ g.FillPolygon(brush, points);
+ }
+
+ // Token: 0x06000592 RID: 1426 RVA: 0x00036928 File Offset: 0x00034B28
+ private void DrawVerticalItem(Graphics g, Brush brush, int x, int y, int height)
+ {
+ Point[] points = new Point[]
+ {
+ new Point(x, y),
+ new Point(x, y + height),
+ new Point(x + this.ledNumberSize / 2, y + height + this.ledNumberSize / 2),
+ new Point(x + this.ledNumberSize, y + height),
+ new Point(x + this.ledNumberSize, y),
+ new Point(x + this.ledNumberSize / 2, y - this.ledNumberSize / 2),
+ new Point(x, y)
+ };
+ g.FillPolygon(brush, points);
+ }
+
+ // Token: 0x06000593 RID: 1427 RVA: 0x000369EC File Offset: 0x00034BEC
+ private void DrawNumber(Graphics g, int x, int y, int width, int height, char charValue, bool hasSpot)
+ {
+ bool[] array = new bool[9];
+ bool flag = charValue == this.supportChars[0];
+ if (flag)
+ {
+ bool[] array2 = new bool[]
+ {
+ true,
+ true,
+ true,
+ false,
+ true,
+ true,
+ true,
+ false,
+ false
+ };
+ array2[7] = hasSpot;
+ array = array2;
+ }
+ else
+ {
+ bool flag2 = charValue == this.supportChars[1];
+ if (flag2)
+ {
+ bool[] array3 = new bool[9];
+ array3[2] = true;
+ array3[5] = true;
+ array3[7] = hasSpot;
+ array = array3;
+ }
+ else
+ {
+ bool flag3 = charValue == this.supportChars[2];
+ if (flag3)
+ {
+ bool[] array4 = new bool[]
+ {
+ true,
+ false,
+ true,
+ true,
+ true,
+ false,
+ true,
+ false,
+ false
+ };
+ array4[7] = hasSpot;
+ array = array4;
+ }
+ else
+ {
+ bool flag4 = charValue == this.supportChars[3];
+ if (flag4)
+ {
+ bool[] array5 = new bool[]
+ {
+ true,
+ false,
+ true,
+ true,
+ false,
+ true,
+ true,
+ false,
+ false
+ };
+ array5[7] = hasSpot;
+ array = array5;
+ }
+ else
+ {
+ bool flag5 = charValue == this.supportChars[4];
+ if (flag5)
+ {
+ bool[] array6 = new bool[]
+ {
+ false,
+ true,
+ true,
+ true,
+ false,
+ true,
+ false,
+ false,
+ false
+ };
+ array6[7] = hasSpot;
+ array = array6;
+ }
+ else
+ {
+ bool flag6 = charValue == this.supportChars[5];
+ if (flag6)
+ {
+ bool[] array7 = new bool[]
+ {
+ true,
+ true,
+ false,
+ true,
+ false,
+ true,
+ true,
+ false,
+ false
+ };
+ array7[7] = hasSpot;
+ array = array7;
+ }
+ else
+ {
+ bool flag7 = charValue == this.supportChars[6];
+ if (flag7)
+ {
+ bool[] array8 = new bool[]
+ {
+ true,
+ true,
+ false,
+ true,
+ true,
+ true,
+ true,
+ false,
+ false
+ };
+ array8[7] = hasSpot;
+ array = array8;
+ }
+ else
+ {
+ bool flag8 = charValue == this.supportChars[7];
+ if (flag8)
+ {
+ bool[] array9 = new bool[]
+ {
+ true,
+ false,
+ true,
+ false,
+ false,
+ true,
+ false,
+ false,
+ false
+ };
+ array9[7] = hasSpot;
+ array = array9;
+ }
+ else
+ {
+ bool flag9 = charValue == this.supportChars[8];
+ if (flag9)
+ {
+ bool[] array10 = new bool[]
+ {
+ true,
+ true,
+ true,
+ true,
+ true,
+ true,
+ true,
+ false,
+ false
+ };
+ array10[7] = hasSpot;
+ array = array10;
+ }
+ else
+ {
+ bool flag10 = charValue == this.supportChars[9];
+ if (flag10)
+ {
+ bool[] array11 = new bool[]
+ {
+ true,
+ true,
+ true,
+ true,
+ false,
+ true,
+ true,
+ false,
+ false
+ };
+ array11[7] = hasSpot;
+ array = array11;
+ }
+ else
+ {
+ bool flag11 = charValue == this.supportChars[10];
+ if (flag11)
+ {
+ bool[] array12 = new bool[]
+ {
+ true,
+ true,
+ true,
+ true,
+ true,
+ true,
+ false,
+ false,
+ false
+ };
+ array12[7] = hasSpot;
+ array = array12;
+ }
+ else
+ {
+ bool flag12 = charValue == this.supportChars[11];
+ if (flag12)
+ {
+ bool[] array13 = new bool[]
+ {
+ false,
+ true,
+ false,
+ true,
+ true,
+ true,
+ true,
+ false,
+ false
+ };
+ array13[7] = hasSpot;
+ array = array13;
+ }
+ else
+ {
+ bool flag13 = charValue == this.supportChars[12];
+ if (flag13)
+ {
+ bool[] array14 = new bool[]
+ {
+ true,
+ true,
+ false,
+ false,
+ true,
+ false,
+ true,
+ false,
+ false
+ };
+ array14[7] = hasSpot;
+ array = array14;
+ }
+ else
+ {
+ bool flag14 = charValue == this.supportChars[13];
+ if (flag14)
+ {
+ bool[] array15 = new bool[]
+ {
+ false,
+ false,
+ false,
+ true,
+ true,
+ false,
+ true,
+ false,
+ false
+ };
+ array15[7] = hasSpot;
+ array = array15;
+ }
+ else
+ {
+ bool flag15 = charValue == this.supportChars[14];
+ if (flag15)
+ {
+ bool[] array16 = new bool[]
+ {
+ false,
+ false,
+ true,
+ true,
+ true,
+ true,
+ true,
+ false,
+ false
+ };
+ array16[7] = hasSpot;
+ array = array16;
+ }
+ else
+ {
+ bool flag16 = charValue == this.supportChars[15];
+ if (flag16)
+ {
+ bool[] array17 = new bool[]
+ {
+ true,
+ true,
+ false,
+ true,
+ true,
+ false,
+ true,
+ false,
+ false
+ };
+ array17[7] = hasSpot;
+ array = array17;
+ }
+ else
+ {
+ bool flag17 = charValue == this.supportChars[16];
+ if (flag17)
+ {
+ bool[] array18 = new bool[]
+ {
+ true,
+ true,
+ false,
+ true,
+ true,
+ false,
+ false,
+ false,
+ false
+ };
+ array18[7] = hasSpot;
+ array = array18;
+ }
+ else
+ {
+ bool flag18 = charValue == this.supportChars[17];
+ if (flag18)
+ {
+ bool[] array19 = new bool[]
+ {
+ false,
+ true,
+ true,
+ true,
+ true,
+ true,
+ false,
+ false,
+ false
+ };
+ array19[7] = hasSpot;
+ array = array19;
+ }
+ else
+ {
+ bool flag19 = charValue == this.supportChars[18];
+ if (flag19)
+ {
+ bool[] array20 = new bool[]
+ {
+ false,
+ true,
+ false,
+ true,
+ true,
+ true,
+ false,
+ false,
+ false
+ };
+ array20[7] = hasSpot;
+ array = array20;
+ }
+ else
+ {
+ bool flag20 = charValue == this.supportChars[19];
+ if (flag20)
+ {
+ bool[] array21 = new bool[]
+ {
+ false,
+ false,
+ true,
+ false,
+ false,
+ true,
+ true,
+ false,
+ false
+ };
+ array21[7] = hasSpot;
+ array = array21;
+ }
+ else
+ {
+ bool flag21 = charValue == this.supportChars[20];
+ if (flag21)
+ {
+ bool[] array22 = new bool[]
+ {
+ false,
+ true,
+ false,
+ false,
+ true,
+ false,
+ true,
+ false,
+ false
+ };
+ array22[7] = hasSpot;
+ array = array22;
+ }
+ else
+ {
+ bool flag22 = charValue == this.supportChars[21];
+ if (flag22)
+ {
+ bool[] array23 = new bool[]
+ {
+ false,
+ false,
+ false,
+ true,
+ true,
+ true,
+ true,
+ false,
+ false
+ };
+ array23[7] = hasSpot;
+ array = array23;
+ }
+ else
+ {
+ bool flag23 = charValue == this.supportChars[22];
+ if (flag23)
+ {
+ bool[] array24 = new bool[]
+ {
+ true,
+ true,
+ true,
+ true,
+ true,
+ false,
+ false,
+ false,
+ false
+ };
+ array24[7] = hasSpot;
+ array = array24;
+ }
+ else
+ {
+ bool flag24 = charValue == this.supportChars[23];
+ if (flag24)
+ {
+ bool[] array25 = new bool[9];
+ array25[3] = true;
+ array25[4] = true;
+ array25[7] = hasSpot;
+ array = array25;
+ }
+ else
+ {
+ bool flag25 = charValue == this.supportChars[24];
+ if (flag25)
+ {
+ bool[] array26 = new bool[]
+ {
+ false,
+ true,
+ true,
+ false,
+ true,
+ true,
+ true,
+ false,
+ false
+ };
+ array26[7] = hasSpot;
+ array = array26;
+ }
+ else
+ {
+ bool flag26 = charValue == this.supportChars[25];
+ if (flag26)
+ {
+ array = new bool[]
+ {
+ default(bool),
+ default(bool),
+ default(bool),
+ default(bool),
+ default(bool),
+ default(bool),
+ default(bool),
+ default(bool),
+ true
+ };
+ }
+ else
+ {
+ bool flag27 = charValue == this.supportChars[26];
+ if (flag27)
+ {
+ array = new bool[9];
+ }
+ else
+ {
+ bool flag28 = charValue == this.supportChars[27];
+ if (flag28)
+ {
+ bool[] array27 = new bool[9];
+ array27[3] = true;
+ array = array27;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ this.DrawNumber(g, x, y, width, height, array);
+ }
+
+ // Token: 0x06000594 RID: 1428 RVA: 0x00036FB0 File Offset: 0x000351B0
+ private void DrawNumber(Graphics g, int x, int y, int width, int height, bool[] array)
+ {
+ bool flag = array == null;
+ if (!flag)
+ {
+ bool flag2 = array.Length < 9;
+ if (!flag2)
+ {
+ int num = 5;
+ int num2 = 5;
+ int num3 = 3;
+ int num4 = 4;
+ int num5 = 2;
+ bool flag3 = this.ledNumberSize < 6;
+ if (flag3)
+ {
+ num3 = 2;
+ num4 = 3;
+ num5 = 1;
+ }
+ bool flag4 = this.ledNumberSize > 12;
+ if (flag4)
+ {
+ num3 = 5;
+ num4 = 6;
+ num5 = 3;
+ }
+ int width2 = width - num3 - num4 - 2 * this.ledNumberSize - 2 * num5;
+ int num6 = (height - num - num2 - 3 * this.ledNumberSize - 4 * num5) / 2;
+ bool flag5 = array[0];
+ if (flag5)
+ {
+ this.DrawHorizontalItem(g, this.foreBrush, x + num3 + this.ledNumberSize + num5, y + num, width2);
+ }
+ else
+ {
+ this.DrawHorizontalItem(g, this.backBrush, x + num3 + this.ledNumberSize + num5, y + num, width2);
+ }
+ bool flag6 = array[1];
+ if (flag6)
+ {
+ this.DrawVerticalItem(g, this.foreBrush, x + num3, y + num + this.ledNumberSize + num5, num6);
+ }
+ else
+ {
+ this.DrawVerticalItem(g, this.backBrush, x + num3, y + num + this.ledNumberSize + num5, num6);
+ }
+ bool flag7 = array[2];
+ if (flag7)
+ {
+ this.DrawVerticalItem(g, this.foreBrush, x + width - num4 - this.ledNumberSize, y + num + this.ledNumberSize + num5, num6);
+ }
+ else
+ {
+ this.DrawVerticalItem(g, this.backBrush, x + width - num4 - this.ledNumberSize, y + num + this.ledNumberSize + num5, num6);
+ }
+ bool flag8 = array[3];
+ if (flag8)
+ {
+ this.DrawHorizontalItem(g, this.foreBrush, x + num3 + this.ledNumberSize + num5, y + num + this.ledNumberSize + num6 + 2 * num5, width2);
+ }
+ else
+ {
+ this.DrawHorizontalItem(g, this.backBrush, x + num3 + this.ledNumberSize + num5, y + num + this.ledNumberSize + num6 + 2 * num5, width2);
+ }
+ bool flag9 = array[4];
+ if (flag9)
+ {
+ this.DrawVerticalItem(g, this.foreBrush, x + num3, y + num + 2 * this.ledNumberSize + 3 * num5 + num6, num6);
+ }
+ else
+ {
+ this.DrawVerticalItem(g, this.backBrush, x + num3, y + num + 2 * this.ledNumberSize + 3 * num5 + num6, num6);
+ }
+ bool flag10 = array[5];
+ if (flag10)
+ {
+ this.DrawVerticalItem(g, this.foreBrush, x + width - num4 - this.ledNumberSize, y + num + 2 * this.ledNumberSize + 3 * num5 + num6, num6);
+ }
+ else
+ {
+ this.DrawVerticalItem(g, this.backBrush, x + width - num4 - this.ledNumberSize, y + num + 2 * this.ledNumberSize + 3 * num5 + num6, num6);
+ }
+ bool flag11 = array[6];
+ if (flag11)
+ {
+ this.DrawHorizontalItem(g, this.foreBrush, x + num3 + this.ledNumberSize + num5, y + height - num2 - this.ledNumberSize, width2);
+ }
+ else
+ {
+ this.DrawHorizontalItem(g, this.backBrush, x + num3 + this.ledNumberSize + num5, y + height - num2 - this.ledNumberSize, width2);
+ }
+ bool flag12 = x + width - num5 * 2 < base.Width - 20;
+ if (flag12)
+ {
+ bool flag13 = array[7];
+ if (flag13)
+ {
+ g.FillEllipse(this.foreBrush, x + width - this.ledPointSize, y + height - num2 - this.ledPointSize * 2 + 1, this.ledPointSize * 2, this.ledPointSize * 2);
+ }
+ else
+ {
+ g.FillEllipse(this.backBrush, x + width - this.ledPointSize, y + height - num2 - this.ledPointSize * 2 + 1, this.ledPointSize * 2, this.ledPointSize * 2);
+ }
+ }
+ bool flag14 = array[8];
+ if (flag14)
+ {
+ Rectangle rect = new Rectangle(x + width / 2 - num5 * 2, y + num + this.ledNumberSize + num5 + num6 - num5 * 4, num5 * 4, num5 * 4);
+ g.FillEllipse(this.foreBrush, rect);
+ rect.Y += num5 + num5 + this.ledNumberSize + num5 + num5 * 4;
+ g.FillEllipse(this.foreBrush, rect);
+ }
+ }
+ }
+ }
+
+ ///
+ /// 获取或设置控件的背景色
+ ///
+ // Token: 0x170001B6 RID: 438
+ // (get) Token: 0x06000595 RID: 1429 RVA: 0x000373E9 File Offset: 0x000355E9
+ // (set) Token: 0x06000596 RID: 1430 RVA: 0x000373F1 File Offset: 0x000355F1
+ [Browsable(true)]
+ [Description("获取或设置控件的背景色")]
+ [Category("HslControls")]
+ [DefaultValue(typeof(Color), "[46, 46, 46]")]
+ [EditorBrowsable(EditorBrowsableState.Always)]
+ public override Color BackColor
+ {
+ get
+ {
+ return base.BackColor;
+ }
+ set
+ {
+ base.BackColor = value;
+ }
+ }
+
+ ///
+ /// 获取或设置数码管显示的位数
+ ///
+ // Token: 0x170001B7 RID: 439
+ // (get) Token: 0x06000597 RID: 1431 RVA: 0x000373FC File Offset: 0x000355FC
+ // (set) Token: 0x06000598 RID: 1432 RVA: 0x00037414 File Offset: 0x00035614
+ [Category("HslControls")]
+ [DefaultValue(6)]
+ [Description("获取或设置数码管显示的位数")]
+ public int DisplayNumber
+ {
+ get
+ {
+ return this.displayNumber;
+ }
+ set
+ {
+ bool flag = value >= 0 && value < 100;
+ if (flag)
+ {
+ this.displayNumber = value;
+ base.Invalidate();
+ }
+ }
+ }
+
+ ///
+ /// 获取或设置数码管显示的大小
+ ///
+ // Token: 0x170001B8 RID: 440
+ // (get) Token: 0x06000599 RID: 1433 RVA: 0x00037444 File Offset: 0x00035644
+ // (set) Token: 0x0600059A RID: 1434 RVA: 0x0003745C File Offset: 0x0003565C
+ [Category("HslControls")]
+ [DefaultValue(12)]
+ [Description("获取或设置数码管显示的大小")]
+ public int LedNumberSize
+ {
+ get
+ {
+ return this.ledNumberSize;
+ }
+ set
+ {
+ this.ledNumberSize = value;
+ base.Invalidate();
+ }
+ }
+
+ ///
+ /// 获取或设置数码管显示的内容
+ ///
+ // Token: 0x170001B9 RID: 441
+ // (get) Token: 0x0600059B RID: 1435 RVA: 0x00037470 File Offset: 0x00035670
+ // (set) Token: 0x0600059C RID: 1436 RVA: 0x00037488 File Offset: 0x00035688
+ [Category("HslControls")]
+ [DefaultValue("100.0")]
+ [Description("获取或设置数码管显示的内容")]
+ public string DisplayText
+ {
+ get
+ {
+ return this.displayText;
+ }
+ set
+ {
+ this.displayText = value;
+ base.Invalidate();
+ }
+ }
+
+ ///
+ /// 获取或设置数码管数字的背景色
+ ///
+ // Token: 0x170001BA RID: 442
+ // (get) Token: 0x0600059D RID: 1437 RVA: 0x0003749C File Offset: 0x0003569C
+ // (set) Token: 0x0600059E RID: 1438 RVA: 0x000374B4 File Offset: 0x000356B4
+ [Category("HslControls")]
+ [DefaultValue(typeof(Color), "[62, 62, 62]")]
+ [Description("获取或设置数码管数字的背景色")]
+ public Color DisplayBackColor
+ {
+ get
+ {
+ return this.backColor;
+ }
+ set
+ {
+ this.backColor = value;
+ this.backBrush.Dispose();
+ this.backBrush = new SolidBrush(this.backColor);
+ base.Invalidate();
+ }
+ }
+
+ ///
+ /// 获取或设置数码管数字的前景色
+ ///
+ // Token: 0x170001BB RID: 443
+ // (get) Token: 0x0600059F RID: 1439 RVA: 0x000374E2 File Offset: 0x000356E2
+ // (set) Token: 0x060005A0 RID: 1440 RVA: 0x000374EA File Offset: 0x000356EA
+ [Category("HslControls")]
+ [DefaultValue(typeof(Color), "Tomato")]
+ [Description("获取或设置数码管数字的前景色")]
+ [EditorBrowsable(EditorBrowsableState.Always)]
+ public override Color ForeColor
+ {
+ get
+ {
+ return base.ForeColor;
+ }
+ set
+ {
+ base.ForeColor = value;
+ this.foreBrush.Dispose();
+ this.foreBrush = new SolidBrush(value);
+ base.Invalidate();
+ }
+ }
+
+ ///
+ /// 获取或设置数码管数字的单位文本
+ ///
+ // Token: 0x170001BC RID: 444
+ // (get) Token: 0x060005A1 RID: 1441 RVA: 0x00037514 File Offset: 0x00035714
+ // (set) Token: 0x060005A2 RID: 1442 RVA: 0x0003751C File Offset: 0x0003571C
+ [Category("HslControls")]
+ [DefaultValue("")]
+ [Description("获取或设置数码管数字的单位文本")]
+ public string UnitText
+ {
+ get
+ {
+ return this.unitText;
+ }
+ set
+ {
+ this.unitText = value;
+ base.Invalidate();
+ }
+ }
+
+ ///
+ /// 获取或设置数码管两端的空闲长度
+ ///
+ // Token: 0x170001BD RID: 445
+ // (get) Token: 0x060005A3 RID: 1443 RVA: 0x0003752D File Offset: 0x0003572D
+ // (set) Token: 0x060005A4 RID: 1444 RVA: 0x00037535 File Offset: 0x00035735
+ [Category("HslControls")]
+ [DefaultValue(10)]
+ [Description("获取或设置数码管两端的空闲长度")]
+ public int LeftRightOffect
+ {
+ get
+ {
+ return this.leftRightOffect;
+ }
+ set
+ {
+ this.leftRightOffect = value;
+ base.Invalidate();
+ }
+ }
+
+ ///
+ /// 获取或设置数码管小数点的大小
+ ///
+ // Token: 0x170001BE RID: 446
+ // (get) Token: 0x060005A5 RID: 1445 RVA: 0x00037546 File Offset: 0x00035746
+ // (set) Token: 0x060005A6 RID: 1446 RVA: 0x0003754E File Offset: 0x0003574E
+ [Category("HslControls")]
+ [DefaultValue(2)]
+ [Description("获取或设置数码管小数点的大小")]
+ public int LedPointSize
+ {
+ get
+ {
+ return this.ledPointSize;
+ }
+ set
+ {
+ this.ledPointSize = value;
+ base.Invalidate();
+ }
+ }
+
+
+
+
+
+ // Token: 0x040002C6 RID: 710
+ private Color backColor = Color.FromArgb(62, 62, 62);
+
+ // Token: 0x040002C7 RID: 711
+ private Brush backBrush = new SolidBrush(Color.FromArgb(62, 62, 62));
+
+ // Token: 0x040002C8 RID: 712
+ private Brush foreBrush = new SolidBrush(Color.Tomato);
+
+ // Token: 0x040002C9 RID: 713
+ private int displayNumber = 6;
+
+ // Token: 0x040002CA RID: 714
+ private int ledNumberSize = 12;
+
+ // Token: 0x040002CB RID: 715
+ private string displayText = "100.0";
+
+ // Token: 0x040002CC RID: 716
+ private string supportChars = "0123456789AbCcdEFHhJLoPrU: -";
+
+ // Token: 0x040002CD RID: 717
+ private string unitText = string.Empty;
+
+ // Token: 0x040002CE RID: 718
+ private int leftRightOffect = 10;
+
+ // Token: 0x040002CF RID: 719
+ private int ledPointSize = 2;
+
+
+ }
+}
+
diff --git a/Controls/Mesnac.Controls.ChemicalWeighing/Mesnac.Controls.ChemicalWeighing.csproj b/Controls/Mesnac.Controls.ChemicalWeighing/Mesnac.Controls.ChemicalWeighing.csproj
index 62c7383..0f0f0cf 100644
--- a/Controls/Mesnac.Controls.ChemicalWeighing/Mesnac.Controls.ChemicalWeighing.csproj
+++ b/Controls/Mesnac.Controls.ChemicalWeighing/Mesnac.Controls.ChemicalWeighing.csproj
@@ -144,6 +144,12 @@
HslLanternSimple.cs
+
+ UserControl
+
+
+ HslLedDisplay.cs
+
UserControl