今回は前々回の「時限式信号動作スクリプト」でも使っていた「1つのセンサーで2回感知するスクリプトテンプレート」です。
//----------------------------------------------------------------------
//1つのセンサーで2回感知するスクリプトテンプレート
//----------------------------------------------------------------------
//変数宣言
Var SensorEventID
Var VarSensorModeFlag
//スタート
SetSensorMode 0
SetEventSensor MethodSensorEvent SensorEventID
//メソッド
BeginFunc MethodSensorEvent
GetSensorMode VarSensorModeFlag
ifzero VarSensorModeFlag
//(先頭車両を感知した時の動作)
SetSensorMode 1
else
//(最後尾車両を感知した時の動作)
SetSensorMode 0
endif
EndFunc
//----------------------------------------------------------------------
という感じで、これは「編成長測定用センサースクリプト」で使っていたものとほぼ同じ。今回の方が「GetSensorMode」を使っている分、少しだけスッキリしているという程度です。2度同じ構造を使ったということは、多分他にも使い道はあるだろうということで採り上げてみました。
---*---*---*---
で、これは1つのセンサーで先頭車両の進入と最後尾車両の退出を感知できる。ということは、先頭車両の進入は感知したけど最後尾車両の退出を感知していない状態というのは、編成がセンサー上に存在するということで、駅に設置しておくとホームに編成が存在するか存在しないかを簡易的に判断することも出来るという訳ですねぇ。但し、これは先頭車両の進入が条件なので、最初から駅に停車している編成に対しては無効です。完璧ではないけど「最初から駅に停車していない」という条件下では間接的(理論値として)には使えるでしょう。
この辺の話になるとVRM入道「駅構内に編成がいるかいないかを判断する方法」が関係してきますが、今現在、私が検討中なのはエリアセンサーで編成が存在するか存在しないかを見ようという試み。
私の認識が今まで間違っていたのですが、センサーは編成が通過する瞬間だけを捉えるものではありませんでした。特定領域内に居れば走行中でも停車中でもいつでも捕捉できるんですねぇ。なので、認識距離を130mmとして256mmレールの真ん中におけば、256mmレール1本分のエリアセンサーが完成する訳で、これで直接的(実測値として)にフィードバックが得られて判別できるなぁなんて思っていたら、認識距離を幾ら変えても半径8mmのデフォルト状態から全く変化なし。なので思わず会議室に書き込んじゃいましたわ(笑)。
これが出来るようになれば、駅における判断ロジックにも使えそうな気がするので、果たして修正されるかどうかというところ。でも、これにもう1つ私が考えた「センサーチェーン」という構造もないとあまり使いやすくない気はするんですけどね。

<「センサーチェーン構造」であっけなく出来てしまった閉塞信号動作>
・・・まぁ、そのうち既出でなければ書くでしょう。結局のところ、前回の記事はVRM入道にて既出の内容だったので、「VRMスクリプト禅問答」を一通り見てからにしようと思っているところです。そのために現時点での106記事全ての目次なんかもこのブログの記事(まだ公開してませんけど)として作ってしまったし(笑)。
なので、連載は2回で一旦打ち切りですな。と書きつつ早々に3回目があるかもしれんですが。