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<ShakerDirection> GenerateShakerDirection()
|
{
|
List<ShakerDirection> shakerDirections= new List<ShakerDirection>();
|
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;
|
}
|
}
|
}
|