池田邦彦氏著「Nゲージレイアウトプラン集50」のプラン41の続きで、単線閉塞両方向運転を再現するにあたり今回は自動センサーではなくPythonスクリプトでやってみようと思いスクリプトを書いてみました。理由は自動センサーを大量に使うと見た目が悪いというのとPythonでどの程度楽に作れるかを検証するためです。
作る区間は[山側]-[交換駅]-[海側]-[信号所]-[山側]の4区間で、交換駅は必ず止まり信号所は前方に列車がいなければ通過するという動作にします。またポイント(分岐器)は交換駅と信号所の前後に1つずつの計4つあるので通過させるためのセンサーは8個必要になりますが、その8個のセンサーにスクリプトを仕込むだけで閉塞を実行させることにします。
で、ざっと1時間ぐらいでスクリプトを書き上げ実行させたところ・・・全く機能せず見事に列車は正面衝突しました(^_^;) 理由はSetStatusDataIntやGetStatusDataIntの前に「obj.」を付けていなかったという初歩的な構文ミスでした。なので付けて実行させたところ、今度は、片や止まるべきところで列車が止まらず、片や止まってはいけないところで列車が止まるという全く予想しなかった状況になってしまいました(^_^;) ここからが試行錯誤の始まりです。で分かったことを書きますと、
①共通ステータスのコマンドには偽物がある(^_^;)
②自動センサーの向きは自動ではない(^_^;)
③同じ関数内でも違うイベント間ではローカル変数は使えない(^_^;)