Показать сообщение отдельно
Старый 30.10.2020, 03:34   #590
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,765
Вы сказали Спасибо: 899
Поблагодарили 1,213 раз(а) в 730 сообщениях
vicente стоит на развилке (репутация по умолчанию)
По умолчанию

Интересная вещь. Читал когда-то на форуме elvastower.com о перепитиях организации движения в OpenRails. Как известно, этот симулятор задуман был для того, чтобы поставить MSTS на "новые рельсы" - дать ему второе дыхание. Чтобы не пропали созданые маршруты, сценарии, подвижной состав... Вначале пути организация движения была перенесена "как есть" из MSTS, но немного позднее небезизвестной версии Х1370 всё было переработано чуть более, чем полностью. Именно с этим нововведением наши сигнализации "остались не у дел" в OpenRails. Так вот, автор разработки писал на форуме о причинах, по которым всё это было переделано "с нуля". И, вот, одной из причин было названо "отсутствие автодиспетчера" в MSTS. А, вот, в технической документации к сигнализации MSTS об автодиспетчере говорится прямо и понятно. То есть, явно кто-то напутал с терминологией. Много лет назад долгими ночами мы сидели с Игорем Забориным каждый за своим компьютером и трахались с MSTS, чтобы выяснить: как оно на самом деле работает. Целью.было создание открытой сигнализации, чего в конце концов не случилось. Но, в процессе многое стало понятно (обидно, но те вещи, к которым я приходил, гоняя ездюяины по сотне раз туда-сюда, оказалось гораздо раньше были "разжеваны" буржуями на "Стиме" и trainsim.con). Но, с другой стороны, это и порадовало. В смысле, что я всё правильно понял тогда. Принцип MSTS очень прост и практичен. Каждый поезд имеет своё "задание" - path. Он появляется в начале path и исчезает в конце. Между этими событиями можно задать ему что-то из определённого набора команд, очень ограниченного... точки разворота, точки ожидания, остановки на станциях, альтернативные маршруты и т.д. Если на пути есть узлы - стрелки, поезд "запрашивает" их согласно строго определённому алгоритму, связанному с параметром. SignalNumClearAhead, заданному в файле конфигурации сигнализации маршрута. Если узел не зарезервирован другим поездом, он получает этот узел и через узел строится маршут дальше согласно заданию. Если узел ограждён светофором - светофор откроется в случае если соблюдены остальные условия его скрипта. Если узел зарезервирован другим поездом - светофор будет закрыт через функцию BLOCK_JN_OBSTRUCTED, которая должна быть, опять опять-же, в этом скрипте прописана. На этом - почти всё. Единственное, что, может, следует добавить - если участок однопутный и есть поезд навстречу, а маршрут через узел проложен - неважно: сколько проходных светофоров на участке - поезд зарезервирует себе и следующий узел, чтобы встречный не занял этот совместный участок!
Всё это, включая существование блокировки (deadlock), непонятно и лаконично описано в документе по сигнализации MSTS.
И тут на заре развития OpenRails встаёт себе Роб Ротердинк и заявляет : в MSTS нет автодиспетчера! А он нам нужен! Организация движения - не идеальна. Пользователи "плавают" в сценариях. Нам нужно делать более сложные сценарии. Второй главной причиной вмешательства в механизм MSTS было отсутствие (якобы) возможности делать то, что они называют Call On - проезд запрещающего сигнала на занятый путь. На самом деле красные светофоры в MSTS можно спокойно проезжать даже на дефолтной сигнализации Marias Pass , через условно-разрешающий и маневровый аспекты, заложеные изначально в симулятор разработчиками.
Что в этом всём интересного и как это связано с нашим разговором?
Конечный вариант (а Роб отходит от дел и никто (пока) не решается даже приблизится к этой части кода) сигнализации OpenRails концептуально выглядит с этой точки зрения... примерно так же. Поезд имеет задание и запрашивает себе путь! Да, нюансы там есть, deadlock "отделён от государства", но... стало ли легче делать сложные сценарии (в добавилось множество функций)? Вопрос. У меня были случаи, когда простыми точками разворота deadlock сбивался к чертям и у Роба не было решений, кроме как закончить сервис, и из него создать новый.
Но, по моим понятиям, автодиспетчера как такового как не было - так и нет.

То о чем пишешь ты требует описания диспетчера. В одиночной поездке этот диспетчер должен просчитывать десятки, если не сотни вариантов на каждой станции. А на маршруте? Но, как бы ты не пришел к тому же самому : различать поезда диспетчер-то должен всё равно - по заданию. Или как?

Добавлено через 54 минуты
Всё-таки выставлю ролик, который снимал для себя в рабочем порядке. Прошу прощения за съёмку на телефон. На ролике - открытие светофора с ложным кроссовером. На место установки кроссовера на пути электрички указываю мышкой.


Последний раз редактировалось vicente; 30.10.2020 в 02:36.
vicente вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо vicente за это полезное сообщение:
Старый 01.01.2007, 12:00  
Яndex
Спонсор
 
 
Регистрация: 01.01.2007
Сообщения: 500


Реклама показывается изредка по случайному принципу
По умолчанию РЕКЛАМА