init
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user