From f1a4349ec1420828a02e2fd28b02afb8519c1929 Mon Sep 17 00:00:00 2001
From: wells.liu <wells.liu@broconcentric.com>
Date: 星期四, 09 七月 2020 18:53:15 +0800
Subject: [PATCH] jog操作
---
src/Bro.M071.Process/UI/M071_MainForm.cs | 359 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 357 insertions(+), 2 deletions(-)
diff --git a/src/Bro.M071.Process/UI/M071_MainForm.cs b/src/Bro.M071.Process/UI/M071_MainForm.cs
index 92c0b25..df918c4 100644
--- a/src/Bro.M071.Process/UI/M071_MainForm.cs
+++ b/src/Bro.M071.Process/UI/M071_MainForm.cs
@@ -1,4 +1,6 @@
-锘縰sing Bro.UI.Model.Winform;
+锘縰sing Bro.Common.Base;
+using Bro.Common.Helper;
+using Bro.UI.Model.Winform;
using System;
using System.Collections.Generic;
using System.ComponentModel;
@@ -8,15 +10,368 @@
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
+using static Bro.Common.Helper.EnumHelper;
namespace Bro.M071.Process.UI
{
- [MenuNode("M071_MainForm", "閿洏妫�娴嬩富鐣岄潰", 3, "M071Node", true)]
+ [MenuNode("M071_MainForm", "杩愯鐣岄潰", 1, "M071Node", true)]
public partial class M071_MainForm : MenuFrmBase
{
+ Canvas cvImage = new Canvas();
+ M071Config Config => Process?.IConfig as M071Config;
+ M071Process Process_M071 => Process as M071Process;
+
public M071_MainForm()
{
InitializeComponent();
+
+ cvImage.IsShowElementList = false;
+ tsmiShowStatusBar.Checked = cvImage.IsShowStatusBar = false;
+ tsmiShowToolBar.Checked = cvImage.IsShowToolBar = false;
+ cvImage.Dock = DockStyle.Fill;
+ plImage.Controls.Add(cvImage);
+
+ tscEditLocation.Visible = tsmiShowEditor.Checked = false;
+
+ this.Load += async (s, e) =>
+ {
+ await Task.Delay(300);
+
+ cvImage.SetScreenSize();
+ };
}
+
+ public override void OnProcessUpdated()
+ {
+ base.OnProcessUpdated();
+
+ if (Config == null)
+ return;
+
+ if (string.IsNullOrWhiteSpace(Config.BackgroundImagePath))
+ return;
+
+ try
+ {
+ Bitmap image = (Bitmap)Image.FromFile(Config.BackgroundImagePath);
+ cvImage.LoadImage(image);
+ cvImage.SetScreenSize();
+ }
+ catch (Exception ex)
+ {
+ LogAsync(new LogMsg(DateTime.Now, "杞藉叆鑳屾櫙鍥惧紓甯�", ex.Message));
+ return;
+ }
+
+ cvImage.Elements.Clear();
+ lvMeasures.Items.Clear();
+ Config.MeasurementUnitCollection.ForEach(u =>
+ {
+ if (!u.IsEnabled)
+ return;
+
+ var ele = new KeyIndicator(u.Id, u.DisplayLocation);
+ cvImage.Elements.Add(ele);
+
+ ListViewItem item = new ListViewItem(u.GetDisplayText());
+ item.Tag = u.Id;
+ lvMeasures.Items.Add(item);
+ });
+
+ if (txtBarcode.IsHandleCreated)
+ txtBarcode.BeginInvoke(new Action(() => txtBarcode.ReadOnly = Config.IsBarcodeManulInputBlocked));
+
+ Process_M071.OnClearBarcode -= M071_MainForm_OnClearBarcode;
+ Process_M071.OnClearBarcode += M071_MainForm_OnClearBarcode;
+ Process_M071.OnUpdateResult -= M071_MainForm_UpdateResult;
+ Process_M071.OnUpdateResult += M071_MainForm_UpdateResult;
+ Process_M071.OnUpdateCT -= M071_MainForm_UpdateCT;
+ Process_M071.OnUpdateCT += M071_MainForm_UpdateCT;
+
+ Process_M071.OnMeasureStart -= M071_MainForm_MeasureStart;
+ Process_M071.OnMeasureStart += M071_MainForm_MeasureStart;
+
+ Process_M071.OnMachineStateChanged -= M071_MainForm_MachineStateChanged;
+ Process_M071.OnMachineStateChanged += M071_MainForm_MachineStateChanged;
+
+ Process_M071.OnFullResetDone -= Process_M071_FullResetDone;
+ Process_M071.OnFullResetDone += Process_M071_FullResetDone;
+ }
+
+ #region 鍥剧墖鍖哄彸閿彍鍗�
+ private void tsmiShowToolBar_CheckedChanged(object sender, EventArgs e)
+ {
+ cvImage.IsShowToolBar = tsmiShowToolBar.Checked;
+ }
+
+ private void tsmiShowStatusBar_CheckedChanged(object sender, EventArgs e)
+ {
+ cvImage.IsShowStatusBar = tsmiShowStatusBar.Checked;
+ }
+
+ private void tsmiShowEditor_CheckedChanged(object sender, EventArgs e)
+ {
+ tscEditLocation.Visible = tsmiShowEditor.Checked;
+ tscEditLocation.BringToFront();
+ }
+ #endregion
+
+ #region 鏍囩缂栬緫鍖�
+ private void lvMeasures_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ if (lvMeasures.SelectedItems.Count <= 0)
+ return;
+
+ var ele = cvImage.Elements.FirstOrDefault(u => u.ID == lvMeasures.SelectedItems[0].Tag.ToString());
+ propGridKeyIndicator.SelectedObject = ele;
+ }
+
+ private void btnCancelEdit_Click(object sender, EventArgs e)
+ {
+ cvImage.Elements.Clear();
+ lvMeasures.Items.Clear();
+ Config.MeasurementUnitCollection.ForEach(u =>
+ {
+ if (!u.IsEnabled)
+ return;
+
+ var ele = new KeyIndicator(u.Id, u.DisplayLocation);
+ cvImage.Elements.Add(ele);
+
+ ListViewItem item = new ListViewItem(u.GetDisplayText());
+ item.Tag = u.Id;
+ lvMeasures.Items.Add(item);
+ });
+
+ MessageBox.Show("鍙栨秷鏍囩淇敼");
+ }
+
+ private void btnConfirmEdit_Click(object sender, EventArgs e)
+ {
+ cvImage.Elements.ToList().ForEach(ele =>
+ {
+ var measure = Config.MeasurementUnitCollection.FirstOrDefault(u => u.Id == ele.ID);
+ if (measure != null)
+ {
+ measure.DisplayLocation = (ele as KeyIndicator).DisplayRect;
+ }
+ });
+
+ MessageBox.Show("鏍囩淇敼瀹屾垚");
+ }
+
+ private void lvMeasures_DoubleClick(object sender, EventArgs e)
+ {
+ if (lvMeasures.SelectedItems.Count <= 0)
+ return;
+
+ var ele = cvImage.Elements.FirstOrDefault(u => u.ID == lvMeasures.SelectedItems[0].Tag.ToString());
+ if (ele != null)
+ {
+ ele.State = ElementState.Selected;
+ cvImage.Invalidate();
+ }
+ }
+ #endregion
+
+ #region 涓婃柟鐘舵�佸尯
+
+ #region 鏉$爜
+ string _barcode = "";
+ private void M071_MainForm_KeyUp(object sender, KeyEventArgs e)
+ {
+ string keyStr = e.KeyCode.ToString();
+ if (keyStr.Length == 1)
+ {
+ _barcode += keyStr.ToUpper();
+ }
+
+ if (e.KeyValue == 13)
+ {
+ txtBarcode.Text = _barcode;
+ _barcode = "";
+ }
+
+ if (e.KeyValue == 27)
+ {
+ cvImage.Elements.ToList().ForEach(ele => ele.State = ElementState.Normal);
+ }
+ }
+
+ private void txtBarcode_TextChanged(object sender, EventArgs e)
+ {
+ Process_M071.BarCode = txtBarcode.Text.Trim();
+ }
+
+ private void M071_MainForm_OnClearBarcode()
+ {
+ txtBarcode.BeginInvoke(new Action(() => txtBarcode.Clear()));
+ }
+ #endregion
+
+ #region 鏈哄彴鐘舵��
+ private async void M071_MainForm_MachineStateChanged(MachineState state)
+ {
+ lblMachineState.BeginInvoke(new Action(() =>
+ {
+ switch (state)
+ {
+ case MachineState.Alarm:
+ btnStartMeasure.BackColor = lblMachineState.BackColor = Color.Red;
+ btnStartMeasure.ForeColor = lblMachineState.ForeColor = Color.White;
+ lblMachineState.Text = "璀︽姤";
+
+ btnStartMeasure.Enabled = false;
+ break;
+ case MachineState.Pause:
+ btnStartMeasure.BackColor = lblMachineState.BackColor = Color.Yellow;
+ btnStartMeasure.ForeColor = lblMachineState.ForeColor = Color.Black;
+ lblMachineState.Text = "鏆傚仠";
+
+ //btnStartMeasure.Text = "鏆傚仠娴嬮噺";
+ btnStartMeasure.Enabled = true;
+ break;
+ case MachineState.Ready:
+ btnStartMeasure.BackColor = lblMachineState.BackColor = Color.Lime;
+ btnStartMeasure.ForeColor = lblMachineState.ForeColor = Color.White;
+ lblMachineState.Text = "灏辩华";
+
+ btnStartMeasure.Enabled = true;
+ break;
+ case MachineState.Running:
+ btnStartMeasure.BackColor = lblMachineState.BackColor = Color.Lime;
+ btnStartMeasure.ForeColor = lblMachineState.ForeColor = Color.DarkGreen;
+ lblMachineState.Text = "杩愯";
+
+ btnStartMeasure.Enabled = true;
+ break;
+ case MachineState.Unknown:
+ btnStartMeasure.BackColor = lblMachineState.BackColor = SystemColors.Control;
+ btnStartMeasure.ForeColor = lblMachineState.ForeColor = SystemColors.ControlText;
+ lblMachineState.Text = "鏈煡";
+ break;
+ }
+ }));
+
+ await Task.Delay(100);
+ }
+ #endregion
+
+ #region 浜у搧缁撴灉
+ private async void M071_MainForm_UpdateCT(float ct)
+ {
+ lblCT.BeginInvoke(new Action(() =>
+ {
+ lblCT.Text = ct.ToString("f2") + " 绉�";
+ }));
+ await Task.Delay(100);
+ }
+
+ private async void M071_MainForm_UpdateResult(DateTime arg1, int result)
+ {
+ this.BeginInvoke(new Action(() =>
+ {
+ if (result == 1)
+ {
+ lblProductionState.BackColor = Color.Green;
+ lblProductionState.ForeColor = Color.White;
+ lblProductionState.Text = "OK";
+ }
+ else
+ {
+ lblProductionState.BackColor = Color.Red;
+ lblProductionState.ForeColor = Color.White;
+ lblProductionState.Text = "NG";
+ }
+
+ btnStartMeasure.Text = "寮�濮嬫祴閲�";
+ }));
+ await Task.Delay(100);
+ }
+
+ private async void M071_MainForm_MeasureStart()
+ {
+ this.BeginInvoke(new Action(() =>
+ {
+ lblProductionState.BackColor = SystemColors.Control;
+ lblProductionState.ForeColor = SystemColors.ControlText;
+ lblProductionState.Text = "娴嬭瘯涓�";
+
+ lblCT.Text = "";
+ }));
+ await Task.Delay(100);
+ }
+ #endregion
+
+ #endregion
+
+ private async void btnStartMeasure_Click(object sender, EventArgs e)
+ {
+ btnStartMeasure.Enabled = false;
+ bool isBreak = false;
+
+ if (btnStartMeasure.Text == "寮�濮嬫祴閲�")
+ {
+ await Task.Run(() =>
+ {
+ try
+ {
+ Process_M071.StartJob(null, null, null);
+ }
+ catch (Exception ex)
+ {
+ isBreak = true;
+
+ LogAsync(DateTime.Now, "娴佺▼寮傚父", ex.Message);
+ Process_M071.ExceptionRaisedInMonitor(ex);
+
+ btnStartMeasure.Text = "寮�濮嬫祴閲�";
+
+ }
+ });
+
+ if (!isBreak)
+ btnStartMeasure.Text = "鏆傚仠娴嬮噺";
+ }
+ else if (btnStartMeasure.Text == "缁х画娴嬮噺")
+ {
+ Process_M071.SwitchJobStatus(new OperationConfigBase() { InputPara = new List<int>() { 0 } }, null, null);
+ btnStartMeasure.Text = "鏆傚仠娴嬮噺";
+ }
+ else
+ {
+ Process_M071.SwitchJobStatus(new OperationConfigBase() { InputPara = new List<int>() { 1 } }, null, null);
+ btnStartMeasure.Text = "缁х画娴嬮噺";
+ }
+
+ btnStartMeasure.Enabled = true;
+ }
+
+ #region 澶嶄綅鎿嶄綔
+ private async void Process_M071_FullResetDone()
+ {
+ btnStartMeasure.BeginInvoke(new Action(() =>
+ {
+ btnStartMeasure.Enabled = true;
+ btnStartMeasure.Text = "寮�濮嬫祴閲�";
+ }));
+ await Task.Delay(100);
+ }
+
+ private void btnReset_MouseDown(object sender, MouseEventArgs e)
+ {
+ if (Process_M071.MachineState != MachineState.Running)
+ {
+ Process_M071.Reset(null, null, null);
+ }
+
+ Process_M071.ResetTimer.Change(-1, 1000 * 5);
+ }
+
+ private void btnReset_MouseUp(object sender, MouseEventArgs e)
+ {
+ Process_M071.ResetTimer.Change(-1, -1);
+ }
+ #endregion
}
}
--
Gitblit v1.8.0