using DataEntity; using DataEntity.Share; using DataRWDAL; using DataRWDalDrive.Model; using DriverLib.Engine; using System; using System.Collections.Generic; using System.Linq; using System.Xml; using XCommon; using XCommon.Log; using XCore; using XCoreBLL; using XHandler.Controls.Run.Com; using XHandler.View; using XImagingXhandler.XDAL; namespace XHandler.Controls { /// /// 振荡运行处理 /// public class ShakeControl { string strCurrentCulture = ""; ShakerBll shakerBll = new ShakerBll(); public RunWnd launchView = null; public ShakeControl(string strCurrentCulture) { this.strCurrentCulture = strCurrentCulture; } #region 执行振荡,返回结果字符串 /// /// 执行振荡,返回结果字符串 /// /// 板位节点信息 /// 装载方法属性节点对象 /// 0:连接谁;1:仿真 /// public bool ExecuteShake(XmlNode xmlEnv, XmlNode methodNode, bool isSimulator) { bool result = true; HxResult ret = new HxResult(); if (launchView._cancelSource.IsCancellationRequested) { result = false; return result; } #region Start Log 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:"); } #endregion #region 数据准备 MethodShake methodShake = shakerBll.GenerateMethodShakeDataByXmlNode(methodNode); #endregion #region 执行构建 try { launchView.SetWaitOne();//暂停 ret = shakerBll.ExecuteShake(methodShake, 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.RunShakeResource.strShakeFailed.ToString() + ret.AlarmInfo); LoggerRunHelper.InfoLog("【" + DateTime.Now.ToString("HH:mm:ss:fff") + "】>Xhandler: 【" + methodNode.SelectSingleNode("name").InnerText + "】" + Properties.MachineRunResource.strProgress.ToString() + Properties.RunShakeResource.strShakeFailed.ToString() + ret.AlarmInfo); } else { launchView.AddLogs("【" + DateTime.Now.ToString("HH:mm:ss:fff") + "】>Xhandler: 【" + methodNode.SelectSingleNode("name").InnerText + "】progress: shake was failed! Error info:" + ret.AlarmInfo); LoggerRunHelper.InfoLog("【" + DateTime.Now.ToString("HH:mm:ss:fff") + "】>Xhandler: 【" + methodNode.SelectSingleNode("name").InnerText + "】progress: shake was failed! Error info:" + ret.AlarmInfo); } result = false; 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.RunShakeResource.strShakeSuccess.ToString()); LoggerRunHelper.InfoLog("【" + DateTime.Now.ToString("HH:mm:ss:fff") + "】>Xhandler: 【" + methodNode.SelectSingleNode("name").InnerText + "】" + Properties.MachineRunResource.strProgress.ToString() + Properties.RunShakeResource.strShakeSuccess.ToString()); } else { launchView.AddLogs("【" + DateTime.Now.ToString("HH:mm:ss:fff") + "】>Xhandler: 【" + methodNode.SelectSingleNode("name").InnerText + "】progress:shake was successful!"); LoggerRunHelper.InfoLog("【" + DateTime.Now.ToString("HH:mm:ss:fff") + "】>Xhandler: 【" + methodNode.SelectSingleNode("name").InnerText + "】progress:shake was successful!"); } } } catch (Exception ex) { LoggerHelper.ErrorLog("ERROR:", ex); if (strCurrentCulture.Equals("zh-CN")) { launchView.AddLogs("【" + DateTime.Now.ToString("HH:mm:ss:fff") + "】>Xhandler: 【" + methodNode.SelectSingleNode("name").InnerText + "】" + Properties.MachineRunResource.strError.ToString() + " 源 " + ex.Source + " 错误信息 " + ex.Message + ";"); } else { launchView.AddLogs("【" + DateTime.Now.ToString("HH:mm:ss:fff") + "】>Xhandler: 【" + methodNode.SelectSingleNode("name").InnerText + "】error:source:" + ex.Source + ";error:" + ex.Message + ";"); } result = false; } #endregion return result; } #endregion } }