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
}
}