| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- using System;
- using SHJX.Service.Model.Control;
- using SHJX.Service.Common.Extend;
- 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.LiquidPump
- {
-
- /// 硫酸银
- /// </summary>
- public class SilverSulfatePort : SerialPortImp, PortControlImp
- {
- private static readonly ILogger logger = LogFactory.BuildLogger(typeof(SilverSulfatePort));
- /// <summary>
- /// <summary>
- /// 硫酸银
- /// </summary>
- /// <param name="config">配置</param>
- public SilverSulfatePort( ReadConfigUtil config) : base( config) { }
- public object Read(PortArgs args)
- {
- //return JudgeStorage(args.NodeId);
- object res = args.ReadWay switch
- {
- "OriginalPosition" => GetOriginalPosition(args),
- _ => JudgeStorage(args.NodeId),
- };
- return res;
- }
- 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.Normotopia => MotorStorage(args.NodeId, 1, "L"),
- WriteWay.Antiposition => MotorStorage(args.NodeId, 1, "H"),
- WriteWay.GoBack => MotorGoBackDissolvePort(args.NodeId, 3),
- WriteWay.Move => MotorMove(args.NodeId, args.Distance),
- 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;
- }
- }
- }
|