私は後に何をするのだろうと思っています。ステートレスの階層的な状態
私はこれに似たいくつかのロジックとホームオートメーションのためのステートマシンを考えています:私は家とも家の全体的な状態の中に部屋の状態を表現したいしかし
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分後、そのエリアで占有が解消され、そのエリアでは占有されていない状態に移行します。