| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- using System;
- using Polly;
- using System.Threading;
- using SHJX.Service.Common.Extend;
- using SHJX.Service.Model.Control;
- using SHJX.Service.Control.Modules;
- using SHJX.Service.Control.Interface;
- using SHJX.Service.Common.UserDelegate;
- using SHJX.Service.Common.ReadXML;
- namespace SHJX.Service.Control.Route.RouteController
- {
- public class ManiOperate : FlowControlOperateImp
- {
- private const string OpName = "Mani";
- public virtual bool Operate(ReadConfigUtil config, DataEventArgs data)
- {
- var res = false;
- var portArgs = new PortArgs
- {
- TypeName = OpName
- };
- switch (data.Task.RouteStep)
- {
- case "Mani_Loosen":
- if ( DataCentre.GetConfig.ManiGrabFeedBack)
- {
- var judgeValue = 0;
- Policy.HandleResult<bool>(Arg => Arg.Equals(false)).Retry(3, (resultArg, retryCount) =>
- {
- #region 松开
- portArgs.WriteWay = WriteWay.Normotopia;
- res = data.Client.Factory(OpName).Write(portArgs);
- #endregion
- #region 抓取
- portArgs.WriteWay = WriteWay.Antiposition;
- res = res && data.Client.Factory(OpName).Write(portArgs);
- #endregion
- judgeValue = retryCount;
- }).Execute(() =>
- {
- portArgs.ReadWay = "Judge";
- var judgeRes = Convert.ToBoolean(data.Client.Factory(OpName).Read(portArgs));
- #region 任务取消,加入取消缓存
- if (judgeValue.Equals(3) && !judgeRes)
- {
- portArgs.WriteWay = WriteWay.Normotopia;
- res = data.Client.Factory(OpName).Write(portArgs);
- Messager.Send("getCupError", data.Task);
- }
- #endregion
- res = judgeRes;
- return judgeRes;
- });
- }
- portArgs.WriteWay = WriteWay.Normotopia;//松开
- res = data.Client.Factory(OpName).Write(portArgs);
- break;
- case "Mani_Grab":
- portArgs.WriteWay = WriteWay.Antiposition;
- res = data.Client.Factory(OpName).Write(portArgs);
- if ( DataCentre.GetConfig.ManiGrabFeedBack)
- {
- var judgeValue = 0;
- Policy.HandleResult<bool>(Arg => Arg.Equals(false)).Retry(3, (resultArg, retryCount) =>
- {
- #region 松开
- portArgs.WriteWay = WriteWay.Normotopia;
- res = data.Client.Factory(OpName).Write(portArgs);
- #endregion
- #region 抓取
- portArgs.WriteWay = WriteWay.Antiposition;
- res = res && data.Client.Factory(OpName).Write(portArgs);
- #endregion
- judgeValue = retryCount;
- }).Execute(() =>
- {
- portArgs.ReadWay = "Judge";
- var judgeRes = Convert.ToBoolean(data.Client.Factory(OpName).Read(portArgs));
- #region 任务取消,加入取消缓存
- if (judgeValue.Equals(3) && !judgeRes)
- {
- portArgs.WriteWay = WriteWay.Normotopia;
- res = data.Client.Factory(OpName).Write(portArgs);
- //CancelCache.Set(data.Task.OriginLocalName, "Cancel");
- //data.DataManager.Delete(data.Task);
- Messager.Send("getCupError", data.Task);
- }
- #endregion
- res = judgeRes;
- return judgeRes;
- });
- }
- break;
- default:
- res = false;
- break;
- }
- Thread.Sleep(10);
- return res;
- }
- }
- }
|