using DataBlockHelper; using DataBlockHelper.DBHelpers; using Mesnac.Action.Base; using Mesnac.Controls.ChemicalWeighing; using Mesnac.Controls.Default; using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Mesnac.Action.ChemicalWeighing.Dan { public class Class1 : ChemicalWeighingAction, IAction { Que que; public Timer timer; MCButton BtnA; MCButton BtnB; MCButton BtnC; public void Run(RuntimeParameter runtime) { RunIni(runtime); que = new Que(); var controller = GetAllControls(); PropertyInfo[] sourcePropertyInfoList = que.GetType().GetProperties(); foreach (PropertyInfo sourceProperty in sourcePropertyInfoList) { string name = sourceProperty.Name; var pro = controller.FirstOrDefault(x => x.Name == name) as HslLanternSimple; sourceProperty.SetValue(que, pro); } BtnA = controller.FirstOrDefault(x => x.Name == "BtnA") as MCButton; BtnB = controller.FirstOrDefault(x => x.Name == "BtnB") as MCButton; BtnC = controller.FirstOrDefault(x => x.Name == "BtnC") as MCButton; // M20.4 A线确认 //M20.5 B线确认 //M20.6 C线确认 BtnA.Click += (s, e) => { var a= PlcConnect.Instance.ReadBool("M20.4").Content; if (a) { MessageBox.Show("A线已经确认"); } else { PlcConnect.Instance.Write("M20.4",true); MessageBox.Show("A线确认成功"); } }; BtnB.Click += (s, e) => { var b = PlcConnect.Instance.ReadBool("M20.5").Content; if (b) { MessageBox.Show("B线已经确认"); } else { PlcConnect.Instance.Write("M20.5", true); MessageBox.Show("B线确认成功"); } }; BtnC.Click += (s, e) => { var c = PlcConnect.Instance.ReadBool("M20.6").Content; if (c) { MessageBox.Show("C线已经确认"); } else { PlcConnect.Instance.Write("M20.6", true); MessageBox.Show("C线确认成功"); } }; timer = new Timer(); timer.Interval = 1000; timer.Enabled = true; timer.Tick += new EventHandler(StateRefresh);//添加事件 } private void StateRefresh(object sender, EventArgs e) { if (GetAllControls().Count == 0) { timer.Stop(); timer.Dispose(); } Db92DengHelp dB92 = new Db92DengHelp(); var a = dB92.DegA; SetValue(que.HslAA,a.A); SetValue(que.HslAB, a.B); SetValue(que.HslAC, a.C); SetValue(que.HslAD, a.D); SetValue(que.HslAE, a.E); SetValue(que.HslAF, a.F); SetValue(que.HslAG, a.G); SetValue(que.HslAH, a.H); SetValue(que.HslAI, a.I); SetValue(que.HslAJ, a.J); SetValue(que.HslAK, a.K); SetValue(que.HslAL, a.L); SetValue(que.HslAM, a.M); SetValue(que.HslAN, a.N); SetValue(que.HslAO, a.O); a = dB92.DegB; SetValue(que.HslBA, a.A); SetValue(que.HslBB, a.B); SetValue(que.HslBC, a.C); SetValue(que.HslBD, a.D); SetValue(que.HslBE, a.E); SetValue(que.HslBF, a.F); SetValue(que.HslBG, a.G); SetValue(que.HslBH, a.H); SetValue(que.HslBI, a.I); SetValue(que.HslBJ, a.J); SetValue(que.HslBK, a.K); SetValue(que.HslBL, a.L); SetValue(que.HslBM, a.M); SetValue(que.HslBN, a.N); SetValue(que.HslBO, a.O); a = dB92.DegC; SetValue(que.HslCA, a.A); SetValue(que.HslCB, a.B); SetValue(que.HslCC, a.C); SetValue(que.HslCD, a.D); SetValue(que.HslCE, a.E); SetValue(que.HslCF, a.F); SetValue(que.HslCG, a.G); SetValue(que.HslCH, a.H); SetValue(que.HslCI, a.I); SetValue(que.HslCJ, a.J); SetValue(que.HslCK, a.K); SetValue(que.HslCL, a.L); SetValue(que.HslCM, a.M); SetValue(que.HslCN, a.N); SetValue(que.HslCO, a.O); } public void SetValue(HslLanternSimple simple,bool boolDeg) { if (boolDeg) { simple.LanternBackground=System.Drawing.Color.Green; } else { simple.LanternBackground = System.Drawing.Color.Gray; } } } public class Que { public HslLanternSimple HslAA { get; set; } public HslLanternSimple HslAB { get; set; } public HslLanternSimple HslAC { get; set; } public HslLanternSimple HslAD { get; set; } public HslLanternSimple HslAE { get; set; } public HslLanternSimple HslAF { get; set; } public HslLanternSimple HslAG { get; set; } public HslLanternSimple HslAH { get; set; } public HslLanternSimple HslAI { get; set; } public HslLanternSimple HslAJ { get; set; } public HslLanternSimple HslAK { get; set; } public HslLanternSimple HslAL { get; set; } public HslLanternSimple HslAM { get; set; } public HslLanternSimple HslAN { get; set; } public HslLanternSimple HslAO { get; set; } public HslLanternSimple HslBA { get; set; } public HslLanternSimple HslBB { get; set; } public HslLanternSimple HslBC { get; set; } public HslLanternSimple HslBD { get; set; } public HslLanternSimple HslBE { get; set; } public HslLanternSimple HslBF { get; set; } public HslLanternSimple HslBG { get; set; } public HslLanternSimple HslBH { get; set; } public HslLanternSimple HslBI { get; set; } public HslLanternSimple HslBJ { get; set; } public HslLanternSimple HslBK { get; set; } public HslLanternSimple HslBL { get; set; } public HslLanternSimple HslBM { get; set; } public HslLanternSimple HslBN { get; set; } public HslLanternSimple HslBO { get; set; } public HslLanternSimple HslCA { get; set; } public HslLanternSimple HslCB { get; set; } public HslLanternSimple HslCC { get; set; } public HslLanternSimple HslCD { get; set; } public HslLanternSimple HslCE { get; set; } public HslLanternSimple HslCF { get; set; } public HslLanternSimple HslCG { get; set; } public HslLanternSimple HslCH { get; set; } public HslLanternSimple HslCI { get; set; } public HslLanternSimple HslCJ { get; set; } public HslLanternSimple HslCK { get; set; } public HslLanternSimple HslCL { get; set; } public HslLanternSimple HslCM { get; set; } public HslLanternSimple HslCN { get; set; } public HslLanternSimple HslCO { get; set; } } }