Sic.Framework-Nanjing-Baishi/MECF.Framework.Common/MECF/Framework/Common/Device/Bases/ChillerBase.cs

119 lines
3.6 KiB
C#
Raw Normal View History

2023-04-13 11:51:03 +08:00
using System;
using System.Xml;
using Aitex.Core.RT.DataCenter;
using Aitex.Core.RT.Device;
using Aitex.Core.RT.OperationCenter;
using MECF.Framework.Common.CommonData.DeviceData;
namespace MECF.Framework.Common.Device.Bases
{
public abstract class ChillerBase : BaseDevice, IDevice
{
public virtual bool IsConnected => true;
public virtual bool IsCH1Alarm { get; set; }
public virtual bool IsCH2Alarm { get; set; }
public virtual bool IsCH1Warning { get; set; }
public virtual bool IsCH2Warning { get; set; }
public virtual bool IsCH1On { get; set; }
public virtual bool IsCH2On { get; set; }
public virtual float CH1TemperatureSetpoint { get; set; }
public virtual float CH1TemperatureFeedback { get; set; }
public virtual float CH2TemperatureSetpoint { get; set; }
public virtual float CH2TemperatureFeedback { get; set; }
public virtual float CH1WaterFlow { get; set; }
public virtual float CH2WaterFlow { get; set; }
public virtual float TemperatureHighLimit { get; set; }
public virtual float TemperatureLowLimit { get; set; }
public virtual AITChillerData1 DeviceData { get; set; }
protected ChillerBase()
{
}
protected ChillerBase(string module, XmlElement node, string ioModule = "")
{
base.Module = (string.IsNullOrEmpty(node.GetAttribute("module")) ? module : node.GetAttribute("module"));
base.Name = node.GetAttribute("id");
}
public virtual bool Initialize()
{
DATA.Subscribe(base.Module + "." + base.Name + ".DeviceData", () => DeviceData);
DATA.Subscribe(base.Module + "." + base.Name + ".IsCH1On", () => IsCH1On);
DATA.Subscribe(base.Module + "." + base.Name + ".IsCH2On", () => IsCH2On);
DATA.Subscribe(base.Module + "." + base.Name + ".IsCH1Alarm", () => IsCH1Alarm);
DATA.Subscribe(base.Module + "." + base.Name + ".IsCH2Alarm", () => IsCH2Alarm);
DATA.Subscribe(base.Module + "." + base.Name + ".CH1TemperatureSetpoint", () => CH1TemperatureSetpoint);
DATA.Subscribe(base.Module + "." + base.Name + ".CH2TemperatureSetpoint", () => CH2TemperatureSetpoint);
DATA.Subscribe(base.Module + "." + base.Name + ".CH1TemperatureFeedback", () => CH1TemperatureFeedback);
DATA.Subscribe(base.Module + "." + base.Name + ".CH2TemperatureFeedback", () => CH2TemperatureFeedback);
DATA.Subscribe(base.Module + "." + base.Name + ".CH1WaterFlow", () => CH1WaterFlow);
DATA.Subscribe(base.Module + "." + base.Name + ".CH2WaterFlow", () => CH2WaterFlow);
OP.Subscribe(base.Module + "." + base.Name + ".SetChillerCH1On", delegate(string function, object[] args)
{
SetChillerCH1OnOff(Convert.ToBoolean(args[0]));
return true;
});
OP.Subscribe(base.Module + "." + base.Name + ".SetChillerCH2On", delegate(string function, object[] args)
{
SetChillerCH2OnOff(Convert.ToBoolean(args[0]));
return true;
});
OP.Subscribe(base.Module + "." + base.Name + ".SetChillerCH1Temperature", delegate(string function, object[] args)
{
SetChillerCH1Temperature(Convert.ToSingle(args[0]));
return true;
});
OP.Subscribe(base.Module + "." + base.Name + ".SetChillerCH2Temperature", delegate(string function, object[] args)
{
SetChillerCH2Temperature(Convert.ToSingle(args[0]));
return true;
});
return true;
}
public virtual void SetChillerCH1OnOff(bool isOn)
{
}
public virtual void SetChillerCH2OnOff(bool isOn)
{
}
public virtual void SetChillerCH1Temperature(float temperature)
{
}
public virtual void SetChillerCH2Temperature(float temperature)
{
}
public virtual void Terminate()
{
}
public virtual void Monitor()
{
}
public virtual void Reset()
{
}
}
}