Closed magicant closed 4 years ago
「停車場へ移動」の時、Initialize
の後は 0 メートル地点から移動先地点までの間にある地上子に対して SetBeaconData
が一回づつ呼ばれる。この時、地上子の位置は分からない。その後最初に Elapse
が呼ばれるとき、渡される引数の Speed
や MrPressure
の値が正しくない (Speed
は 0 で、MrPressure
はおそらく Initialize
前の値? しかし Location
は正しそう)。その次に呼ばれる Elapse
への引数はどうやら正しい。
特に、通過駅に移動する場合でも最初の Elapse
で Speed
が 0 になっている。
結局 01ff4d87273cb8b452b83e662e22c9da49d9d6ba のやったことは正しかったのだろうか?
最初の Elapse
が呼ばれた時に地上子を処理することにより、地上子は 0 メートル地点ではなく移動先の位置にあったとみなして処理される。地上子の種類によっては、むしろ不都合がある?
「到達していない閉塞や制限速度区間の速度に合わせて無駄に早く減速してしまう」のを防ぐには今のやり方の方が良いかな。移動先の位置より後にまた地上子が置いてあれば問題ない。(地上子がない場合は速度超過の恐れあり)
ということで現状維持とする
「停車場へ移動」のとき、制限速度地上子や目標時刻設定地上子は無視する (あるいは少なくとも誤った位置を使用しないように補正する) べきでは? しかし通過駅に移動するときでも正しく判定できる?