magicant / bve-autopilot

Bve trainsim 用自動運転車両プラグイン
GNU Lesser General Public License v2.1
21 stars 5 forks source link

任意の type の地上子から閉塞の位置と現示を読み取る #53

Closed magicant closed 4 years ago

magicant commented 4 years ago

今は特定の type を持つ地上子を (それに合う互換モードで) 通過したときにだけ地上子から閉塞の位置と信号を読み取っている。しかし Beacon.Put 文では常に閉塞を指定する必要があるので、どの type の地上子を通過するときにも何らかの閉塞の位置と信号がプラグインには伝わってきている。それを積極的に利用するようにすれば、プラグインが知らない type の地上子からも閉塞の位置と信号を読み取れるのではないか? そうすれば互換モードでいちいち対応しなくてもいろいろな type の地上子に対応できるのでは?

magicant commented 4 years ago

とはいえ、知らない type の地上子から読み取った閉塞の位置と信号を信用して却ってうまくいかないことはあり得ないのだろうか?

magicant commented 4 years ago

以下の二つの理由によりうまくいかないので、やめ。

ある閉塞に対する信号を受信した後に信号が変わっても、同じ信号を再受信するための地上子が置かれていなければプラグインは古い信号に従ってしまう。

自車に並行して走る列車や自車を追い越す列車に対する現示を自然にするために、ダミーの閉塞や信号インデックスが用いられていることがある。存在しないはずの位置に閉塞を認識したり、制限速度が設定されていない信号インデックスを受信したりすると正しく動作できない可能性がある。