diff --git a/Rs.Controls/RsTray.Designer.cs b/Rs.Controls/RsTray.Designer.cs index 250592a..30d8d51 100644 --- a/Rs.Controls/RsTray.Designer.cs +++ b/Rs.Controls/RsTray.Designer.cs @@ -41,6 +41,9 @@ this.禁用ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.scanFailToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.selectedToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.configFailToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.linkedFailToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.scanOKToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.panel1.SuspendLayout(); this.tableLayoutPanel1.SuspendLayout(); this.contextMenuStrip1.SuspendLayout(); @@ -95,7 +98,10 @@ this.设置有料ToolStripMenuItem, this.禁用ToolStripMenuItem, this.scanFailToolStripMenuItem, - this.selectedToolStripMenuItem}); + this.selectedToolStripMenuItem, + this.configFailToolStripMenuItem, + this.linkedFailToolStripMenuItem, + this.scanOKToolStripMenuItem}); this.contextMenuStrip1.Name = "contextMenuStrip1"; resources.ApplyResources(this.contextMenuStrip1, "contextMenuStrip1"); // @@ -129,6 +135,24 @@ resources.ApplyResources(this.selectedToolStripMenuItem, "selectedToolStripMenuItem"); this.selectedToolStripMenuItem.Click += new System.EventHandler(this.selectedToolStripMenuItem_Click); // + // configFailToolStripMenuItem + // + this.configFailToolStripMenuItem.Name = "configFailToolStripMenuItem"; + resources.ApplyResources(this.configFailToolStripMenuItem, "configFailToolStripMenuItem"); + this.configFailToolStripMenuItem.Click += new System.EventHandler(this.configFailToolStripMenuItem_Click); + // + // linkedFailToolStripMenuItem + // + this.linkedFailToolStripMenuItem.Name = "linkedFailToolStripMenuItem"; + resources.ApplyResources(this.linkedFailToolStripMenuItem, "linkedFailToolStripMenuItem"); + this.linkedFailToolStripMenuItem.Click += new System.EventHandler(this.linkedFailToolStripMenuItem_Click); + // + // scanOKToolStripMenuItem + // + this.scanOKToolStripMenuItem.Name = "scanOKToolStripMenuItem"; + resources.ApplyResources(this.scanOKToolStripMenuItem, "scanOKToolStripMenuItem"); + this.scanOKToolStripMenuItem.Click += new System.EventHandler(this.scanOKToolStripMenuItem_Click); + // // RsTray // resources.ApplyResources(this, "$this"); @@ -157,5 +181,8 @@ private System.Windows.Forms.Label label1; private System.Windows.Forms.ToolStripMenuItem scanFailToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem selectedToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem configFailToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem linkedFailToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem scanOKToolStripMenuItem; } } diff --git a/Rs.Controls/RsTray.cs b/Rs.Controls/RsTray.cs index edc66b0..e26165a 100644 --- a/Rs.Controls/RsTray.cs +++ b/Rs.Controls/RsTray.cs @@ -80,7 +80,19 @@ namespace Rs.Controls /// /// 被选择 /// - Selected + Selected, + /// + /// Config mismatch + /// + ConfigFail, + /// + /// 过站失败 + /// + LinkedFail, + /// + /// 扫码成功 + /// + ScanOK, } public partial class RsTray : UserControl @@ -263,6 +275,22 @@ namespace Rs.Controls } return slots; } + + /// + /// 根据穴位的状态获取穴位 + /// + /// + /// + public List GetSlots(ESlotStatus[] status) + { + List slots = new List(); + foreach (KeyValuePair item in traySlotsDic) + { + if (status.Contains(item.Value.SlotStatus)) + slots.Add(item.Value); + } + return slots; + } /// /// 通过穴位的索引获取穴位 /// @@ -803,6 +831,48 @@ namespace Rs.Controls } DrawTrayAfterEvent?.Invoke(this, ESlotStatus.Selected, slots); } + + private void configFailToolStripMenuItem_Click(object sender, EventArgs e) + { + ChangeSlotStatus(ESlotStatus.ConfigFail); + List slots = new List(); + foreach (KeyValuePair kvSlot in traySlotsDic) + { + if (drawRect.IntersectsWith(kvSlot.Value.Bound)) + { + slots.Add(kvSlot.Value); + } + } + DrawTrayAfterEvent?.Invoke(this, ESlotStatus.ConfigFail, slots); + } + + private void linkedFailToolStripMenuItem_Click(object sender, EventArgs e) + { + ChangeSlotStatus(ESlotStatus.LinkedFail); + List slots = new List(); + foreach (KeyValuePair kvSlot in traySlotsDic) + { + if (drawRect.IntersectsWith(kvSlot.Value.Bound)) + { + slots.Add(kvSlot.Value); + } + } + DrawTrayAfterEvent?.Invoke(this, ESlotStatus.LinkedFail, slots); + } + + private void scanOKToolStripMenuItem_Click(object sender, EventArgs e) + { + ChangeSlotStatus(ESlotStatus.ScanOK); + List slots = new List(); + foreach (KeyValuePair kvSlot in traySlotsDic) + { + if (drawRect.IntersectsWith(kvSlot.Value.Bound)) + { + slots.Add(kvSlot.Value); + } + } + DrawTrayAfterEvent?.Invoke(this, ESlotStatus.ScanOK, slots); + } } /// @@ -890,6 +960,15 @@ namespace Rs.Controls case ESlotStatus.Selected: g.FillRectangle(new SolidBrush(Color.FromArgb(255, 0, 0)), Bound.X, Bound.Y, Bound.Width - 1, Bound.Height - 1); break; + case ESlotStatus.ConfigFail: + g.FillRectangle(new SolidBrush(Color.FromArgb(243, 103, 0)), Bound.X, Bound.Y, Bound.Width - 1, Bound.Height - 1); + break; + case ESlotStatus.LinkedFail: + g.FillRectangle(new SolidBrush(Color.FromArgb(181, 0, 0)), Bound.X, Bound.Y, Bound.Width - 1, Bound.Height - 1); + break; + case ESlotStatus.ScanOK: + g.FillRectangle(new SolidBrush(Color.FromArgb(34, 177, 76)), Bound.X, Bound.Y, Bound.Width - 1, Bound.Height - 1); + break; default: break; } diff --git a/Rs.Controls/RsTray.resx b/Rs.Controls/RsTray.resx index 1722cc9..82d70f7 100644 --- a/Rs.Controls/RsTray.resx +++ b/Rs.Controls/RsTray.resx @@ -144,26 +144,47 @@ 1 - - 2 + + tableLayoutPanel1 - - Fill + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 宋体, 13pt + + panel1 - - 146, 0 + + 0 - - 137, 36 + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="lblStatus" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="label1" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,50,Percent,50" /><Rows Styles="Percent,50" /></TableLayoutSettings> - + + Top + + + 0, 0 + + + 288, 38 + + 2 - - MiddleRight + + panel1 + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 2 + + + 2 lblStatus @@ -177,24 +198,6 @@ 0 - - Fill - - - 宋体, 13pt - - - 3, 0 - - - 137, 36 - - - 1 - - - MiddleLeft - label1 @@ -237,65 +240,119 @@ <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="lblStatus" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="label1" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,50,Percent,50" /><Rows Styles="Percent,50" /></TableLayoutSettings> - - Top + + Fill - - 0, 0 + + 宋体, 13pt - - 288, 38 + + 146, 0 - + + 137, 36 + + 2 - - panel1 + + MiddleRight - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + lblStatus - - $this + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 2 + + tableLayoutPanel1 + + + 0 + + + Fill + + + 宋体, 13pt + + + 3, 0 + + + 137, 36 + + + 1 + + + MiddleLeft + + + label1 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel1 + + + 1 17, 17 - 134, 22 + 180, 22 Set empty - 134, 22 + 180, 22 Set filled - 134, 22 + 180, 22 Disable - 134, 22 + 180, 22 ScanFail - 134, 22 + 180, 22 Selected + + 180, 22 + + + ConfigFail + + + 180, 22 + + + LinkedFail + + + 180, 22 + + + ScanOK + - 135, 114 + 181, 202 contextMenuStrip1 @@ -342,6 +399,24 @@ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + configFailToolStripMenuItem + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + linkedFailToolStripMenuItem + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + scanOKToolStripMenuItem + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + RsTray