using SHJX.Service.Control.Interface; using SHJX.Service.Control.Modules; using SHJX.Service.Model.Control; using SHJX.Service.Common.ReadXML; namespace SHJX.Service.Control.Route.RouteController { public class MotorXOperate : FlowControlOperateImp { private const string OpName = "MotorX"; public virtual bool Operate(ReadConfigUtil config, DataEventArgs data) { var res = data.Task.RouteStep switch { "X_Move_From" => SetModbusValue(data, data.Task.From), "X_Move_To" => SetModbusValue(data, data.Task.To), _ => false }; return res; } private static bool SetModbusValue(DataEventArgs data, string local) { PortArgs portArgs = new() { WriteWay = WriteWay.Move, TypeName = OpName, Distance = local.CalculateAreaPoint(OpName) }; return data.Client.Factory(OpName).Write(portArgs); } } }