using System.Diagnostics;
using Aitex.Core.RT.IOCore;
using Aitex.Core.Util;
namespace Aitex.Core.RT.Device.Devices
{
internal class IoTCHeaterLoop
{
private readonly DeviceTimer _rampTimer;
public IoTCHeaterLoop(int id, AOAccessor aoTargetSP, AOAccessor aoTempFromSensorToTC)
{
Debug.Assert(aoTargetSP != null);
Debug.Assert(aoTempFromSensorToTC != null);
Name = $"L{id}";
_rampTimer = new DeviceTimer();
AOTargetSP = aoTargetSP;
AOTempFromSensorTC = aoTempFromSensorToTC;
}
public string Name { get; }
///
/// TC Auto模式时控温目标温度。
///
public AOAccessor AOTargetSP { get; private set; }
///
/// 从温度传感器读到的实时温度通过此AO写入2704.
///
public AOAccessor AOTempFromSensorTC { get; private set; }
public DeviceTimer RampTimer => _rampTimer;
public float RampInitTemp { get; set; }
public float RampTargetTemp { get; set; }
public int RampDurationMs { get; private set; }
public void StartRamp(int duration)
{
RampDurationMs = duration;
_rampTimer.Start(duration);
}
public void StopRamp()
{
RampDurationMs = 0;
_rampTimer.Stop();
}
}
}