モニター作成中っぽい何か。12


スイッチリセット後の状態遷移のリセット動作を実装しました。


僕の組んでる状態遷移の書き方は
初期化(INIT)で始まって必ず終了(EXIT)でシーケンスを出ることを想定とした書き方なので
今回のような突然の割り込み中断が発生した場合、
状態が終了以外でも抜けるという状況が生まれてしまい、上記約束事が守られません。
すると、次回そのシーケンスを実行しに行ったとき、
初期化から状態遷移が行われなくなってしまうという事態が発生してしまうので
新たに状態を初期化へ戻す関数を、必要と思われる各シーケンスに用意しました。
スイッチリセットが掛かった場合、
リセット要求側から状態リセット関数をコールして後始末を行うようにして、
次回シーケンス実行時、初期化から遷移が行われるようにしました。


swiSoftReset() なんて意見もあるでしょうが
いちいち main 関数が頭出しされるのが気持ち宜しくないと思ったので…。(^^;