using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using XHandler.View; using XCore; using XImagingXhandler.XDAL; using DriverLib; using DriverLib.Engine; using System.Xml; using System.Windows.Threading; using DriverLibrary; using System.Windows; using XCommon.Log; using System.Reflection; using XHandler.View.MethodProperty; using static HxEnum.OperationTypeEnum; namespace XHandler.Controls { public class HomeControl { string strCurrentCulture = ""; LatticeBll latticeBll = new LatticeBll(); HomeBll homeBll = new HomeBll(); public RunWnd launchView = null; public HomeControl(string strCurrentCulture) { this.strCurrentCulture= strCurrentCulture; } #region 复位 /// /// 复位 /// /// 装载吸头的板位节点对象 /// 装载方法属性节点对象 /// 已选的通道数量 /// 0:连接谁;1:仿真 /// 本次使用前的吸头列表 /// 使用过的吸头列表 /// public bool ExecuteHome(XmlNode methodNode, float xAxisVal, float yAxisVal, float zAxisVal, bool isSimulator) { bool result = true; if (launchView._cancelSource.IsCancellationRequested) { result = false; return result; } if(strCurrentCulture.Equals("zh-CN")) { launchView.AddLogs("【" + DateTime.Now.ToString("HH:mm:ss:fff") + "】> Xhandler: 【" + methodNode.SelectSingleNode("name").InnerText + "】"+Properties.MachineRunResource.strStart.ToString()); } else { launchView.AddLogs("【" + DateTime.Now.ToString("HH:mm:ss:fff") + "】> Xhandler: 【" + methodNode.SelectSingleNode("name").InnerText + "】start:"); } // 状态2 初始化 黄蓝绿交替闪 HxResult ret = CommonBll.StatusLamp(2, isSimulator); HomeMParam homeMParam = new HomeMParam(); homeMParam.xAxisVal = xAxisVal; homeMParam.yAxisVal = yAxisVal; homeMParam.zAxisVal = zAxisVal; launchView.SetWaitOne();//暂停 ret = homeBll.ExecuteHome(homeMParam, isSimulator); if (ret.Result != ResultType.Success) { if (strCurrentCulture.Equals("zh-CN")) { launchView.AddLogs("【" + DateTime.Now.ToString("HH:mm:ss:fff") + "】>Xhandler: 【" + methodNode.SelectSingleNode("name").InnerText + "】"+ Properties.MachineRunResource.strProgress.ToString() + Properties.MachineRunResource.strHomeFail.ToString() + ret.AlarmInfo); } else { launchView.AddLogs("【" + DateTime.Now.ToString("HH:mm:ss:fff") + "】>Xhandler: 【" + methodNode.SelectSingleNode("name").InnerText + "】progress: home is fail! error information:" + ret.AlarmInfo); } OperateDialog plsConfirmOper = null; if (!launchView.isRemotingOper) { System.Windows.Application.Current.Dispatcher.Invoke(new Action(() => { plsConfirmOper = new OperateDialog(strCurrentCulture.Equals("zh-CN") ? Properties.MachineRunResource.strGoHomeFailWhatToDo : "The action of go home was fail! What do you want to do?"); plsConfirmOper.ShowDialog(); })); } else { launchView.OnError?.Invoke(launchView.remoteObjectCmd, "EC-1048", 5, Properties.MachineRunResource.strGoHomeFailWhatToDo, 2); plsConfirmOper = new OperateDialog(strCurrentCulture.Equals("zh-CN") ? Properties.MachineRunResource.strGoHomeFailWhatToDo : "The action of go home was fail! What do you want to do?"); plsConfirmOper.ShowDialog(); } if (plsConfirmOper != null && plsConfirmOper.OperMark == NodeOperationTypeEnum.Retry) // 重试 { return ExecuteHome(methodNode, xAxisVal, yAxisVal, zAxisVal, isSimulator); } else if (plsConfirmOper != null && plsConfirmOper.OperMark == NodeOperationTypeEnum.Cancel) // 终止 { if (launchView.isRemotingOper) { launchView.OnError?.Invoke(launchView.remoteObjectCmd, "EC-1049", 5, Properties.MachineRunResource.strHomeFailWasStoped, 2); } result = false; return result; } else if (plsConfirmOper != null && plsConfirmOper.OperMark == NodeOperationTypeEnum.Continue) // 跳过 { result = true; return result; } } else { if (strCurrentCulture.Equals("zh-CN")) { launchView.AddLogs("【" + DateTime.Now.ToString("HH:mm:ss:fff") + "】>Xhandler: 【" + methodNode.SelectSingleNode("name").InnerText + "】" + Properties.MachineRunResource.strProgress.ToString() + Properties.MachineRunResource.strHomeSuccess.ToString()); } else { launchView.AddLogs("【" + DateTime.Now.ToString("HH:mm:ss:fff") + "】>Xhandler: 【" + methodNode.SelectSingleNode("name").InnerText + "】progress:home is success!"); } } if (strCurrentCulture.Equals("zh-CN")) { launchView.AddLogs("【" + DateTime.Now.ToString("HH:mm:ss:fff") + "】>Xhandler: 【" + methodNode.SelectSingleNode("name").InnerText + "】" + Properties.MachineRunResource.strProgress.ToString() + Properties.MachineRunResource.strEnd.ToString()); } else { launchView.AddLogs("【" + DateTime.Now.ToString("HH:mm:ss:fff") + "】>Xhandler: 【" + methodNode.SelectSingleNode("name").InnerText + "】progress: complete;"); } return result; } #endregion } }