| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- using System;
- using System.Threading;
- using SHJX.Service.Common.Extend;
- using SHJX.Service.Model.Control;
- using SHJX.Service.Common.ReadXML;
- using SHJX.Service.ServerClient.Interface;
- using SHJX.Service.ServerClient.TempController;
- using SHJX.Service.Common.Logging;
- using Microsoft.Extensions.Logging;
- namespace SHJX.Service.ServerClient.RS485Control
- {
- public class MotorTPort : SerialPortImp, PortControlImp
- {
- private static readonly ILogger logger = LogFactory.BuildLogger(typeof(MotorTPort));
- /// <summary>
- /// T轴
- /// </summary>
- /// <param name="log">日志</param>
- /// <param name="config">配置</param>
- public MotorTPort( ReadConfigUtil config)
- : base( config)
- {
- config.GetSpeed.ForEach(item => {
- if (item.NodeName == "MotorT")
- speedT = item.Speed;
- });
- }
- private double speedT = 0;
- public object Read(PortArgs args)
- {
- object obj = args.ReadWay switch
- {
- "OriginalPosition" => GetOriginalPosition(args),
- _ => JudgeStorage(args.NodeId),
- };
- return obj;
- }
- public object GetOriginalPosition(PortArgs args)
- {
- var res = JudgeStorage(args.NodeId);
- if (res is null or { Length: 0 }) return false;
- return res[2].Equals('0');
- }
- public bool Write(PortArgs args)
- {
- var res = args.WriteWay switch
- {
- WriteWay.Move => Move(args.NodeId, args.Distance, 1000,speedT),
- WriteWay.GoBack => MotorGoBack(args.NodeId, 3),
- WriteWay.Stop => MotorStop(args.NodeId),
- WriteWay.Speed => MotorSpeed(args.NodeId, args.Distance),
- WriteWay.AcSpeed => MotorAcSpeed(args.NodeId, args.Distance),
- WriteWay.DeSpeed => MotorDeSpeed(args.NodeId, args.Distance),
- _ => throw new ArgumentNullException(args.WriteWay.GetEnumDesc<WriteWay>()),
- };
- return res;
- }
- }
- }
|