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
{
///
/// 硫酸亚铁铵
///
public class FASPort : SerialPortImp, PortControlImp
{
private static readonly ILogger logger = LogFactory.BuildLogger(typeof(SerialPortImp));
///
/// 硫酸亚铁铵
///
/// 日志
/// 配置
public FASPort( ReadConfigUtil config) : base( config) { }
public object Read(PortArgs args)
{
return JudgeStorage(args.NodeId);
}
///
/// 写入
///
///
///
public bool Write(PortArgs args)
{
var res = args.WriteWay switch
{
WriteWay.Normotopia => MotorStorage(args.NodeId, 4, "L"),
WriteWay.Antiposition => MotorStorage(args.NodeId, 4, "H"),
WriteWay.Move => MotorMove(args.NodeId, args.Distance),
WriteWay.GoBack => MotorGoBackDissolvePort(args.NodeId, 5),
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())
};
return res;
}
}
}