i2GRК посылке сообщений претензий нет. Мне не удалось поймать ложное сообщение по статусу светофора. А вот по направлению - да, и не раз. Поэтому я в обработчике не пользуюсь индексами.
Есть претензия к структуре сообщения. Предлагаю прикрепить метку в начале. Чтобы надежно отличать сообщение сигналки от других потенциальных объектов на рельсах.
Предлагаю в коде закрытого сигнала указывать причину (возвращаюсь к старой теме). Светофор знает, почему он закрыт, а локомотив - нет. И потом приходится мудрить с К огнем АЛСН.
а) ближайшему к светофору движущемуся локу бота
б) ближайшему к светофору локу игрока
Другими словами, к проинициализированному ПС.
Как я говорил, если между светофором и локом игрока поставить любой вагончик, РВ его не увидит и будет слать сообщение локу.
Так и есть. Но если к этому вагону подъехать, когда он проинициализируется, он поглотит сообщение. Интересно другое. Дефолтный светофор умеет видеть такой вагон. И при старте сценария, и в процессе игры. Его таблица занятости уверено фиксирует 1. Если въехать на этот БУ, в таблице уже будет 2. Если сцепиться, опять 1. Короче, дефолтный светофор умеет видеть всю картину.
Должна быть только начальная инициализация ID светофора "спереди" при загрузке сценария (ориентация самого лока/состава) и затем отслеживание сменившегося ID при движении.
Вы опять пытаетесь привязать ориентацию светофора к ПС. Зачем? Как светофор отличит локомотив игрока от локомотива АИ? А если будет несколько локомотивов? И на одном пути? Кому дать приоритет в начальной инициализации?
Я считаю, что нельзя привязываться к нестабильным и непредсказуемым факторам. Чем стабильнее исходные данные, тем надежнее система.