我想知道它是否会做我所追求的。
我正在考虑用于家庭自动化的状态机,其逻辑类似于:
var stateMachine = new StateMachine<State, Trigger>(State.UnOccupied);
stateMachine.Configure(State.UnOccupied)
.Permit(Trigger.SensorActivity, State.Occupied)
.Ignore(Trigger.AlarmFullSet);
stateMachine.Configure(State.Occupied)
.Permit(Trigger.AlarmFullSet, State.UnOccupied)
.Permit(Trigger.AlarmPartSet, State.Asleep)
.PermitReentry(Trigger.SensorActivity);
stateMachine.Configure(State.Asleep)
.SubstateOf(State.Occupied)
.Permit(Trigger.AlarmUnset, State.Occupied);
但是,我想代表房子内房间的状态以及房子的整体状态..
IE
Home
House Object
Upstairs
Bedroom 1
Bedroom 2
Downstairs
Kitchen
Living Room
Garden
Front
Back
Side
因此,如果客厅被占用,那么楼下、房子和家也是如此。
提前道歉,我的 C# 不是最好的,我正在深陷其中!
是否可以定时离开状态......所以传感器可以触发一个房间被占用,然后更多的活动触发“重入”?(重新启动计数器/计时器/调整时间表)在占用状态条目上 - 然后在 15 分钟没有更多条目/活动事件后,该区域的占用清除并且该区域的状态转换为未占用。