| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- using System;
- using SHJX.Service.Model.Control;
- using SHJX.Service.Control.Modules;
- using SHJX.Service.Control.Interface;
- using System.Linq;
- using SHJX.Service.Common.ReadXML;
- namespace SHJX.Service.Control.Route.RouteController
- {
- public class MotorYOperate : FlowControlOperateImp
- {
- private const string OpName = "MotorY";
- public virtual bool Operate(ReadConfigUtil config, DataEventArgs data)
- {
- var res = data.Task.RouteStep switch
- {
- "Y_Move_From" => SetSerialPortData(data, data.Task.From),
- "Y_Move_To" => SetSerialPortData(data, data.Task.To),
- _ => throw new ArgumentNullException(data.Task.RouteStep),
- };
- return res;
- }
- private static bool SetSerialPortData(DataEventArgs data, string local)
- {
- PortArgs portArgs = new()
- {
- WriteWay = WriteWay.Move,
- TypeName = OpName,
- Distance = local.CalculateAreaPoint(OpName)
- };
- if (data.Client.Factory(OpName).Write(portArgs))
- {
- var motor = DataCentre.GetMotor.First(item => item.EquipmentName.Equals(OpName));
- if (motor is null) throw new ArgumentNullException(OpName);
- motor.FinalPoint += -portArgs.Distance / motor.ConvertRatio;
- var row = DataCentre._dataManager.Update(motor);
- return true;
- }
- return false;
- }
- }
- }
|