using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml; using XCommon; using XCore; using XImagingXhandler.XDAL; using DataEntity; using DriverLib.Engine; namespace XCore { public class ShakerBll { #region 生成振动方向集合 public List GenerateShakerDirection() { List shakerDirections= new List(); ShakerDirection shakerDirection= new ShakerDirection(); shakerDirection.shakerdirection_id = "1"; shakerDirection.shakerdirection_name = "顺时针"; shakerDirections.Add(shakerDirection); shakerDirection = new ShakerDirection(); shakerDirection.shakerdirection_id = "2"; shakerDirection.shakerdirection_name = "逆时针"; shakerDirections.Add(shakerDirection); return shakerDirections; } #endregion string strCurrentCulture = ""; WellCalc wellCalc = new WellCalc(); LatticeBll latticeBll = new LatticeBll(); public ShakerBll() { strCurrentCulture = System.Threading.Thread.CurrentThread.CurrentCulture.Name; } public MethodShake GenerateMethodShakeDataByXmlNode(XmlNode xmlNode) { MethodShake methodShake = new MethodShake(); methodShake.isrun = xmlNode.SelectSingleNode("isrun").InnerText; methodShake.status = xmlNode.SelectSingleNode("status").InnerText; methodShake.name = xmlNode.SelectSingleNode("name").InnerText; methodShake.label = xmlNode.SelectSingleNode("label").InnerText; methodShake.strIndex = xmlNode.SelectSingleNode("strIndex").InnerText; methodShake.modeVal = Convert.ToInt32(xmlNode.SelectSingleNode("modeVal").InnerText); methodShake.shakeSpeed = Convert.ToDouble(xmlNode.SelectSingleNode("shakeSpeed").InnerText); methodShake.shakeDuringTime = Convert.ToInt32(xmlNode.SelectSingleNode("shakeDuringTime").InnerText); methodShake.shakeMoveSpeed = Convert.ToDouble(xmlNode.SelectSingleNode("shakeMoveSpeed").InnerText); methodShake.shakeMoveAngle = Convert.ToDouble(xmlNode.SelectSingleNode("shakeMoveAngle").InnerText); return methodShake; } public HxResult ExecuteShake(MethodShake methodShake, bool isSimulator = false) { HxResult ret = new HxResult(); if (!isSimulator) { if (methodShake.modeVal == 0) { ret = MethodAction.Instance.Shake((float)methodShake.shakeSpeed,(float)methodShake.shakeDuringTime); } else { ret = MethodAction.Instance.ShakerMove((float)methodShake.shakeMoveAngle, Convert.ToInt32(methodShake.shakeMoveSpeed)); } } else { CommonBll.DoSimulateDelay(); ret.Result = ResultType.Success; } return ret; } } }