using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; using Aitex.Core.Common.DeviceData; using Aitex.Core.RT.DataCenter; using Aitex.Core.RT.Device; using Aitex.Core.RT.Event; using Aitex.Core.RT.OperationCenter; namespace MECF.Framework.Common.Device.Bases { public abstract class HeaterBase : BaseDevice, IDevice { public virtual bool IsPowerOn { get; set; } public virtual float TempSetPoint { get; set; } public virtual float TempFeedback { get; set; } public virtual AITHeaterData DeviceData { get; set; } protected HeaterBase( ) : base( ) { } protected HeaterBase(string module, string name) : base(module, name, name, name) { } public virtual bool Initialize() { DATA.Subscribe($"{Module}.{Name}.DeviceData", () => DeviceData); DATA.Subscribe($"{Module}.{Name}.TempFeedback", () => TempFeedback); DATA.Subscribe($"{Module}.{Name}.TempSetPoint", () => TempSetPoint); DATA.Subscribe($"{Module}.{Name}.IsPowerOn", () => IsPowerOn); OP.Subscribe($"{Module}.{Name}.SetPowerOn", (function, args) => { SetPowerOnOff(true); return true; }); OP.Subscribe($"{Module}.{Name}.SetPowerOff", (function, args) => { SetPowerOnOff(false); return true; }); OP.Subscribe($"{Module}.{Name}.SetTemperature", (function, args) => { SetTemperature((float)args[0]); return true; }); return true; } public virtual void SetPowerOnOff(bool isOn) { } public virtual void SetTemperature(float temperature) { } public virtual void Terminate() { } public virtual void Monitor() { } public virtual void Reset() { } } }