Files
DP44/DataPRO/IService/StateMachine/States/HardwareDiscoveryStart.cs
2026-04-17 14:55:32 -04:00

52 lines
1.6 KiB
C#

using System;
namespace DTS.DASLib.Service.StateMachine
{
public class HardwareDiscoveryStart : DASStateSelector
{
private void Start()
{
OnEnterState();
if (null != Status.HardwareDiscoveryParams.RequeryDevice)
{
Status.HardwareDiscoveryStatusInfo.RequeryDevice();
}
else { Status.HardwareDiscoveryStatusInfo.Ping(); }
}
private bool CanTransitToDownload()
{
return CanTransitToConfigure() && Status.HardwareDiscoveryParams.GoToDownload;
}
private bool CanTransitToConfigure()
{
return Status.HardwareDiscoveryParams.ProceedWhenDone && (Status.HardwareDiscoveryStatusInfo.AllDASFound || !Status.HardwareDiscoveryParams.RequireAllDASFound);
}
private bool CanTransitToArm()
{
return Status.HardwareDiscoveryParams.ProceedWhenDone && Status.HardwareDiscoveryStatusInfo.SomeUnitsInArmState;
}
public override IDASState StateSelector()
{
if (CanTransitToDownload())
return States.Instance.Download;
if (CanTransitToConfigure())
return States.Instance.Configure;
if (CanTransitToArm())
return States.Instance.Arm;
return States.Instance.HardwareDiscovery;
}
public override Action OnEntry
{
get => Start;
}
public override State State => State.HardwareDiscoveryStart;
}
}