补全其他参数的下载参数
运行 停止 暂停的防呆操作
This commit is contained in:
@@ -71,6 +71,7 @@ namespace CapMachine.Wpf.Models
|
||||
/// </summary>
|
||||
private void InitConfig()
|
||||
{
|
||||
//未配置触发器 CanFire 返回值 false
|
||||
//状态机初始化
|
||||
StateMachine = new StateMachine<RunState, RunStateTrig>(RunState.Wait);
|
||||
|
||||
@@ -80,54 +81,82 @@ namespace CapMachine.Wpf.Models
|
||||
.PermitIf(RunStateTrig.AlarmTrig, RunState.Alarm, () => AlarmPreValid())
|
||||
.PermitIf(RunStateTrig.StartTrig, RunState.Run, () => RunPreValid())
|
||||
//.Permit(RunStateTrig.StartTrig, RunState.Run)
|
||||
//.Permit(RunStateTrig.ResetTrig, RunState.Wait)
|
||||
.PermitIf(RunStateTrig.EndTrig, RunState.Stop, () => StopPreValid())
|
||||
.PermitIf(RunStateTrig.PauseTrig, RunState.Pause, () => PausePreValid())
|
||||
.Ignore(RunStateTrig.ResetTrig)
|
||||
.Ignore(RunStateTrig.WaitTrig);
|
||||
.PermitIf(RunStateTrig.ResetTrig, RunState.Stop, () => StopPreValid());
|
||||
//.PermitIf(RunStateTrig.EndTrig, RunState.Stop, () => StopPreValid())
|
||||
//.PermitIf(RunStateTrig.PauseTrig, RunState.Pause, () => PausePreValid())
|
||||
//.Ignore(RunStateTrig.ResetTrig);
|
||||
//.Ignore(RunStateTrig.ContinueTrig)
|
||||
//.Ignore(RunStateTrig.WaitTrig);
|
||||
|
||||
StateMachine.Configure(RunState.Alarm)
|
||||
.OnEntry(t => AlarmEntryCall())
|
||||
.OnExit(t => AlarmExitCall())
|
||||
.PermitIf(RunStateTrig.WaitTrig, RunState.Wait, () => WaitPreValid())
|
||||
.PermitIf(RunStateTrig.ResetTrig, RunState.Wait, () => WaitPreValid())
|
||||
.PermitIf(RunStateTrig.StartTrig, RunState.Run, () => RunPreValid())
|
||||
.PermitIf(RunStateTrig.EndTrig, RunState.Stop, () => StopPreValid())
|
||||
.PermitIf(RunStateTrig.PauseTrig, RunState.Pause, () => PausePreValid())
|
||||
.Ignore(RunStateTrig.AlarmTrig);
|
||||
.PermitIf(RunStateTrig.ResetTrig, RunState.Stop, () => StopPreValid());
|
||||
//.PermitIf(RunStateTrig.StartTrig, RunState.Run, () => RunPreValid())
|
||||
//.PermitIf(RunStateTrig.EndTrig, RunState.Stop, () => StopPreValid())
|
||||
//.PermitIf(RunStateTrig.PauseTrig, RunState.Pause, () => PausePreValid())
|
||||
//.Ignore(RunStateTrig.ContinueTrig)
|
||||
//.Ignore(RunStateTrig.AlarmTrig);
|
||||
|
||||
StateMachine.Configure(RunState.Run)
|
||||
.OnEntry(t => RunEntryCall())
|
||||
.OnExit(t => RunExitCall())
|
||||
.PermitIf(RunStateTrig.WaitTrig, RunState.Wait, () => WaitPreValid())
|
||||
.PermitIf(RunStateTrig.ResetTrig, RunState.Wait, () => WaitPreValid())
|
||||
//.PermitIf(RunStateTrig.WaitTrig, RunState.Wait, () => WaitPreValid())
|
||||
.PermitIf(RunStateTrig.ResetTrig, RunState.Stop, () => StopPreValid())
|
||||
.PermitIf(RunStateTrig.AlarmTrig, RunState.Alarm, () => AlarmPreValid())
|
||||
.PermitIf(RunStateTrig.EndTrig, RunState.Stop, () => StopPreValid())
|
||||
.PermitIf(RunStateTrig.PauseTrig, RunState.Pause, () => PausePreValid())
|
||||
.Ignore(RunStateTrig.StartTrig);
|
||||
.PermitIf(RunStateTrig.PauseTrig, RunState.Pause, () => PausePreValid());
|
||||
//.PermitIf(RunStateTrig.ContinueTrig, RunState.Stop, () => false)
|
||||
//.Ignore(RunStateTrig.ContinueTrig)
|
||||
//.Ignore(RunStateTrig.StartTrig);
|
||||
|
||||
StateMachine.Configure(RunState.Stop)
|
||||
.OnEntry(t => StopEntryCall())
|
||||
.OnExit(t => StopExitCall())
|
||||
.PermitIf(RunStateTrig.WaitTrig, RunState.Wait, () => WaitPreValid())
|
||||
.PermitIf(RunStateTrig.ResetTrig, RunState.Wait, () => WaitPreValid())
|
||||
.PermitIf(RunStateTrig.AlarmTrig, RunState.Alarm, () => AlarmPreValid())
|
||||
.PermitIf(RunStateTrig.StartTrig, RunState.Run, () => RunPreValid())
|
||||
.PermitIf(RunStateTrig.PauseTrig, RunState.Pause, () => PausePreValid())
|
||||
.Ignore(RunStateTrig.EndTrig);
|
||||
.PermitIf(RunStateTrig.StartTrig, RunState.Run, () => RunPreValid());
|
||||
//.PermitIf(RunStateTrig.PauseTrig, RunState.Pause, () => PausePreValid())
|
||||
//.Ignore(RunStateTrig.ContinueTrig)
|
||||
//.Ignore(RunStateTrig.PauseTrig)
|
||||
//.Ignore(RunStateTrig.EndTrig);
|
||||
|
||||
StateMachine.Configure(RunState.Pause)
|
||||
.OnEntry(t => PauseEntryCall())
|
||||
.OnExit(t => PauseExitCall())
|
||||
.PermitIf(RunStateTrig.WaitTrig, RunState.Wait, () => WaitPreValid())
|
||||
.PermitIf(RunStateTrig.ResetTrig, RunState.Wait, () => WaitPreValid())
|
||||
.Permit(RunStateTrig.ContinueTrig, RunState.Run)
|
||||
//.PermitIf(RunStateTrig.WaitTrig, RunState.Wait, () => WaitPreValid())
|
||||
.PermitIf(RunStateTrig.ResetTrig, RunState.Stop, () => StopPreValid())
|
||||
.PermitIf(RunStateTrig.AlarmTrig, RunState.Alarm, () => AlarmPreValid())
|
||||
.PermitIf(RunStateTrig.StartTrig, RunState.Run, () => RunPreValid())
|
||||
.PermitIf(RunStateTrig.EndTrig, RunState.Stop, () => StopPreValid())
|
||||
.Ignore(RunStateTrig.PauseTrig);
|
||||
//.PermitIf(RunStateTrig.StartTrig, RunState.Run, () => RunPreValid())
|
||||
.Permit(RunStateTrig.EndTrig, RunState.Stop);
|
||||
//.Ignore(RunStateTrig.PauseTrig);
|
||||
|
||||
}
|
||||
|
||||
private bool _BtnStartState;
|
||||
/// <summary>
|
||||
/// 界面的开始按钮状态
|
||||
/// </summary>
|
||||
public bool BtnStartState
|
||||
{
|
||||
get { return _BtnStartState; }
|
||||
set { _BtnStartState = value; RaisePropertyChanged(); }
|
||||
}
|
||||
|
||||
private bool _BtnEndState;
|
||||
/// <summary>
|
||||
/// 界面的结束按钮状态
|
||||
/// </summary>
|
||||
public bool BtnEndState
|
||||
{
|
||||
get { return _BtnEndState; }
|
||||
set { _BtnEndState = value; RaisePropertyChanged(); }
|
||||
}
|
||||
|
||||
|
||||
|
||||
#region 验证状态
|
||||
|
||||
/// <summary>
|
||||
@@ -144,7 +173,7 @@ namespace CapMachine.Wpf.Models
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show($"WaitTrig-没有满足条件");
|
||||
MessageBox.Show($"WaitTrig-没有满足Wait条件");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -155,17 +184,19 @@ namespace CapMachine.Wpf.Models
|
||||
/// <returns></returns>
|
||||
public bool FireAlarm()
|
||||
{
|
||||
var Result = StateMachine.CanFire(RunStateTrig.AlarmTrig);
|
||||
if (Result)
|
||||
{
|
||||
StateMachine.Fire(RunStateTrig.AlarmTrig);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show($"AlarmTrig-没有满足条件");
|
||||
return false;
|
||||
}
|
||||
StateMachine.Fire(RunStateTrig.AlarmTrig);
|
||||
return true;
|
||||
//var Result = StateMachine.CanFire(RunStateTrig.AlarmTrig);
|
||||
//if (Result)
|
||||
//{
|
||||
// StateMachine.Fire(RunStateTrig.AlarmTrig);
|
||||
// return true;
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// MessageBox.Show($"AlarmTrig-没有满足条件");
|
||||
// return false;
|
||||
//}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -182,7 +213,7 @@ namespace CapMachine.Wpf.Models
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show($"ResetTrig-没有满足条件");
|
||||
MessageBox.Show($"ResetTrig-没有满足Reset条件");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -201,7 +232,7 @@ namespace CapMachine.Wpf.Models
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show($"StartTrig-没有满足条件");
|
||||
MessageBox.Show($"StartTrig-没有满足Start条件");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -220,7 +251,7 @@ namespace CapMachine.Wpf.Models
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show($"EndTrig-没有满足条件");
|
||||
MessageBox.Show($"EndTrig-没有满足End条件");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -239,12 +270,29 @@ namespace CapMachine.Wpf.Models
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show($"PauseTrig-没有满足条件");
|
||||
MessageBox.Show($"PauseTrig-没有满足Pause条件");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 进入 Continue 状态
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public bool FireContinue()
|
||||
{
|
||||
var Result = StateMachine.CanFire(RunStateTrig.ContinueTrig);
|
||||
if (Result)
|
||||
{
|
||||
StateMachine.Fire(RunStateTrig.ContinueTrig);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show($"ContinueTrig-没有满足Continue条件");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -293,12 +341,13 @@ namespace CapMachine.Wpf.Models
|
||||
/// <exception cref="NotImplementedException"></exception>
|
||||
private bool StopPreValid()
|
||||
{
|
||||
//运行切换到停止
|
||||
if (StateMachine.State == RunState.Run)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
return true;
|
||||
////运行切换到停止
|
||||
//if (StateMachine.State == RunState.Run)
|
||||
//{
|
||||
// return true;
|
||||
//}
|
||||
//return false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -334,6 +383,7 @@ namespace CapMachine.Wpf.Models
|
||||
|
||||
private void StopExitCall()
|
||||
{
|
||||
BtnEndState = false;
|
||||
Console.WriteLine($"{Name}-StopExitCall");
|
||||
}
|
||||
|
||||
@@ -342,6 +392,7 @@ namespace CapMachine.Wpf.Models
|
||||
/// </summary>
|
||||
private void StopEntryCall()
|
||||
{
|
||||
BtnEndState = true;
|
||||
RunStateMsg = "停止";
|
||||
Console.WriteLine($"{Name}-StopEntryCall");
|
||||
|
||||
@@ -350,6 +401,7 @@ namespace CapMachine.Wpf.Models
|
||||
|
||||
private void RunExitCall()
|
||||
{
|
||||
BtnStartState = false;
|
||||
//退出运行状态
|
||||
IsRunState = false;
|
||||
Console.WriteLine($"{Name}-RunExitCall");
|
||||
@@ -360,6 +412,7 @@ namespace CapMachine.Wpf.Models
|
||||
/// </summary>
|
||||
private void RunEntryCall()
|
||||
{
|
||||
BtnStartState = true;
|
||||
RunStateMsg = "运行";
|
||||
Console.WriteLine($"{Name}-RunEntryCall");
|
||||
//进入运行状态
|
||||
|
||||
Reference in New Issue
Block a user