| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- using System;
- using SHJX.Service.Model.Control;
- using SHJX.Service.Control.Modules;
- using SHJX.Service.Control.Interface;
- using SHJX.Service.Common.ReadXML;
- namespace SHJX.Service.Control.Route.RouteController
- {
- public class MotorTOperate : FlowControlOperateImp
- {
- private const string OpName = "MotorT";
- public virtual bool Operate(ReadConfigUtil config, DataEventArgs data)
- {
- try
- {
- var res = data.Task.RouteStep switch
- {
- "T_Move_L" or "T_Move_W" => SendMove(data),
- "T_Move_GoBack_L" or "T_Move_GoBack_W" => SendGoBack(data),
- _ => throw new ArgumentNullException(data.Task.RouteStep),
- };
- return res;
- }
- catch (Exception)
- {
- throw;
- }
- }
- private bool SendMove(DataEventArgs data)
- {
- var portArgs = GetArg(data.Task.To);
- portArgs.WriteWay = WriteWay.Move;
- return data.Client.Factory(OpName).Write(portArgs);
- }
- private bool SendGoBack(DataEventArgs data)
- {
- var portArgs = GetArg(data.Task.To);
- portArgs.WriteWay = WriteWay.GoBack;
- portArgs.Distance = OpName.MotorFinal();
- return data.Client.Factory(OpName).Write(portArgs);
- }
- protected virtual PortArgs GetArg(string to)
- {
- return new()
- {
- TypeName = OpName,
- Distance = to.CalculateAreaPoint(OpName)
- };
- }
- }
- }
|