i2GRЗачем так кардинально? В дефолте достаточно ошибок, которые так же провоцируют баги. К примеру, поверхностный обзор сигналки от Thomson показывает, что сообщение
"REQUEST_TO_SPAD", вместо того, чтобы обработаться первым на его пути светофором (чего вполне достаточно), в некоторых случаях спокойно пересылается дальше, заставляя другие светофоры на него реагировать. Как следствие, вместо одного сообщения вперед по маршруту, возникает целая симфония сообщений разного содержания и направления, так как прореагировавший светофор запускает свои сообщения, которые заставляют реагировать следующие светофоры...
Я могу привести достаточно много примеров локомотивных скриптов, которые убивали производительность. Или раскидывали сообщения пачками направо и налево, хотя в этом не было никакой необходимости.
Всего только один пример.
В одном DMU каждый кадр (!) отсылалось сообщение, содержащее состояние дверей - открыто или закрыто. Следующий вагон, получив это сообщение, также отсылал в обе стороны (!) состояние своих дверей и плюс к тому пересылал это сообщение и дальше, и назад (!). В результате каждый вагон постоянно отправлял свои данные, получал чужие - отправлял и их, получал назад свои, пересылал по-новой свои, и получался такой себе "фон" сообщений, когда процессору просто не оставалось возможности работать с другими задачами, так как он обслуживал это закольцованное домино.
Самое обидное, что даже такая система не позволяла правильно реагировать первому вагону на открытые двери, если его остановить за пределами платформы. Система давала сбой.
В исправленном виде локомотив во время стоянки раз в секунду отправляет запрос в хвост состава. Этот запрос проходит до последнего вагона и больше никуда не пересылается. Все вагоны, получив этот запрос, шлют в ответ в противоположном направлении отчет о состоянии дверей. Всего один ответ.
Как следствие, у 8-вагонного состава раз в секунду рассылается 9 сообщений пока он стоит - в отличие от нескольких сот сообщений в секунду постоянно + ретрансляции.
После этого я никак не могу рассматривать дефолт и лежащие рядом поделки как эталон. Неужели у кого-то ещё осталось мнение, что дефолт - это правильно и надежно?
Причем тут прерывания, OCVC, и прочие Setup-ы, если не срабатывает даже из дефолтных пластиковых локов?
При том, что не имеет значение, какой локомотив отправил сообщение, важно, какую цепь процессов это сообщение проинициировало.
Осталось только сделать нелегкий выбор: работа сигналки а-ля дефолт или худо-бедно все фишки которые есть сейчас
Я выбираю исправленный дефолт с фишками, которые есть сейчас