Пытаюсь замутить свой симулятор.
|
|
V9 | Дата: Воскресенье, 10.08.2025, 10:16 | Сообщение # 541 |
Поездной диспетчер
Группа: Пользователи
Сообщений: 592
Награды: 12
Репутация: 3
Статус: Offline
|  Это GID.txt. Нева "убирает" 380й по НВ1 и "выставляет" 379. Но время одинаковое и id поезда тоже одинаковое. Загрузчик физической модели мира охреневает и уходит бесконечный цикл. Хорошо что нашел свою ошибку. Плохо что потратил на поиск много времени.
upd. Пояснение. Загрузчик пробегает по каждому поезду с его ID и обновляет "последнее событие" по нему. Тогда мы знаем какие команды можно будет отдать по поезду и когда. Если четный поезд проехал чумпас пять минут назад, мы не можем дать ему команду "прибудь-ть сейчас в Сургут!" Мы можем дать команду "прибудь в Лагнепас" или "проследуй Лангепас" и только. Может быть еще можно добавить в список возможных команд "тормозни и приступи к работе на таком-то км и пк". И всё это с учетом перегонного времени.
Соответстенно, когда следующая точка времени по этому поезду меньше предыдущей, ее не учитываем - "плохой GID!" Но не было учтено, что следующая точка времени может быть равна предыдущей, и ее надо обработать.
Сообщение отредактировал V9 - Воскресенье, 10.08.2025, 10:57
| |
| |
V9 | Дата: Воскресенье, 10.08.2025, 12:29 | Сообщение # 542 |
Поездной диспетчер
Группа: Пользователи
Сообщений: 592
Награды: 12
Репутация: 3
Статус: Offline
| (мысли)  3305 только что протарахтел Лангепас. ПодистимаГид взял сведения из GID.txt и отрисовала.
 21:10:13 поезд 3305/123 проследовал станцию Лангепас по I-му главному пути.
C Гидом все хорошо. Но подсистема пульт тоже анализирует GID.txt. Если поезд прибыл - мы рисуем занятость пути. Поезд уехал? Свободность. Но не видно прохода поезда на пульте. Момент прохода - вспышка.
Возникла мысль: "добавить дополнительные записи в gid.txt о том, что путь занялся и путь освободился. По замыслу выглядело бы так:

Вместо одной записи стало три. В 21:09 подсистема Пульт получила сигнал, что главный путь по Лангепасу занялся (это въехала голова 3305), минуту голова ехала до выходного и зафиксировала проследование Лангепаса в 21:10.. Проехав головой поезда выходной сигнал, километровый хвост еще минуту занимал главный путь и уехал в 21:11, освободив его.
К счастью, вовремя я упоролся в ошибку и выяснил, что при отдаче команды происходит пересканирование поездной ситуации, что защищает от отдачи "неправильной команды", смотреть чуть выше.
Но! Последний момент времени уже 21:11, а не 21:10. Команда уже "выключить лампу главного пути Лангепаса", а не "Проследование Лангепаса". Перегонное время до УЯ уже точно не рассчитается. Нужно править код загрузчика поездной обстановки, чтобы он не учитывал лампочки.
Мысленно посокрушавшись, я понял, что можно лампы просто писать в отдельный текстовый файл. Тогда GID.txt остнается чистым, где будет только движение. Подумав еще немного я понял, что нет смысла хранить записи по лампочкам по "движению поездов". Какая разница как они там загорались пять минут назад, если для лампочек нас интересует ситуация "здесь и сейчас"? Можно просто хранить "карту" ламп и обновлять ее. А подсистема пульт будет читать и по карте обновлять свои лампы. То есть надо иметь файл save.sav.
Но save.sav я планировал делать только в релизе 0.6, когда будет делаться "физическое движение поездов". Иил "физическая модель мира".Добавлено (10.08.2025, 14:10) --------------------------------------------- upd. Долго размышлял и делаю вывод, что пока будет всё таки не карта ламп на данном этапе, а список событий под названием pultlamps.txt, где будут движком фиксироваться последние события с лампами.
Возьмем предыдущий пример c 3305м. В GID.txt попадет запись:
Цитата 21:10:13;3305;50;1001;;3;123 А вот pultlamps.txt попадет другая запись: Цитата 21:09:13;3305;50;1001;;3;123 Похожая, но на минуту раньше. Что это даст? Пользователь, наведя мышь на главный путь Лангепаса, увидит подсказку "3305 проследует станцию".
Проехал поезд, пора лампу делать красной. Движок переписывает файл pultlamps, удаляя запись по 3305му нет, лампа автоматически становится желтой.
Бенефит: можно поставить несколько хозяек на один путь. Можно локотив резервом загнать в хвост грузовому поезду, чтобы пропустить встречный пакет(одиночный) поездов. И т.п.Добавлено (10.08.2025, 16:39) --------------------------------------------- Смотрю свою подсистему "Движок игры", тот кусок кода, который следит за временем и отрабатывает именно движение поездов. Начинается на строке 8684. Заканчивается на строке 8723. 40 строк кода. Из 7512 всего.
ps. Он предельно простой и тупой на данный момент. Если наступает момент времени, он переводит событие из "будущего" в "выполненное", переписывая GID.txt. Что вызывает обновления ГИДа и т.п. Добавлено (10.08.2025, 17:08) --------------------------------------------- upd. Физический движок сейчас "халявный". При запуске открывает ГИДы(тексты) и сканирует только на время, пытаясь определить "максимальный момент". Этот момент считается стартом отсчета. Далее сканируем распоряжения. И по мере протекания времени, распоряжения о движении переводим в выполненные.
Но это не работает с лампочками пульта. Тут надо делать разбор всего чтобы понять четко состояние лампочек пульта на момент начала запуска осчета. И сканирвать распоряжения, так как лампочки "прибытия" и "прохода" загораются до самого момента прибытия и прохода.
| |
| |
V9 | Дата: Понедельник, Вчера, 09:52 | Сообщение # 543 |
Поездной диспетчер
Группа: Пользователи
Сообщений: 592
Награды: 12
Репутация: 3
Статус: Offline
| Релиз 0.3.3. 1. Обеспечена совместимость в релизом Невы 0.9.3.6 для работы в качестве ГИДа. Но обспечена и обратная совместимость с Невой 0.9.3 и ранее. 2. Вся информация для конструирования полигона теперь берется из строго из .dat файлов, нет "зашитых внутри кода особенностей полигонов". 3. Появилась альфа версия окна пульта для режима симулятора DSim. Но поезда с пульта не отправляются.
Релиз выпущен так как дальше планируется дошлифовка окна пульта и некоторое время код будет неработоспособен. Поэтому сделан апдейт под новую Неву.
| |
| |
olegpersh999 | Дата: Понедельник, Вчера, 09:56 | Сообщение # 544 |
Начальник станции
Группа: Пользователи
Сообщений: 251
Награды: 3
Репутация: 0
Статус: Offline
| Совместимость с исправленной версии Невы 0.9.3.6 ? Потому что были какие-то косяки, Zork писал, что исправил, а файл перезаливался или нет?
| |
| |
V9 | Дата: Понедельник, Вчера, 10:32 | Сообщение # 545 |
Поездной диспетчер
Группа: Пользователи
Сообщений: 592
Награды: 12
Репутация: 3
Статус: Offline
| Цитата olegpersh999 (  ) Потому что были какие-то косяки, Zork писал, что исправил, а файл перезаливался или нет? Zork сообщал, что исправил ошибку по вылету по отдаче приказа на отмену стоянки пассажирскому по Силинскому. Исправленный релиз им не выложен.
| |
| |
olegpersh999 | Дата: Понедельник, Вчера, 19:33 | Сообщение # 546 |
Начальник станции
Группа: Пользователи
Сообщений: 251
Награды: 3
Репутация: 0
Статус: Offline
| Цитата V9 (  ) Прикрепления: dsim_0_3_3_0.zip (83.2 Kb) Не работает. В том плане, что нет изменений. Функции формирования длинносоставных по Покачевскому нетДобавлено (11.08.2025, 19:35) --------------------------------------------- Я скачал версию 0.9.6, поставил сверху вот этот архив и перенес свои сохранения и текстовые файлы. Пишет Неверный формат загрузки
| |
| |
V9 | Дата: Понедельник, Вчера, 20:06 | Сообщение # 547 |
Поездной диспетчер
Группа: Пользователи
Сообщений: 592
Награды: 12
Репутация: 3
Статус: Offline
| Нужно взять папку из ветки "реконструкция участка Сургут-НВ1", из поста http://pultneva.ru/forum/24-347-16750-16-1754329590
Там упакованная Нева 0.9.3.6 и адаптированные под нее data.dat с расписаниями от 2005 и 2012 годов. И вот на эту папку надо ставить Dsim 0.3.3 и туда копировать сохраненнки. Тогда должно заработать.
Если ничего не получится, упакуй сохраненки, gid.txt, gid_bmp &gid_dop.bmp и отправь мне. Я подготовлю полный рабочий готовый релиз.Добавлено (11.08.2025, 20:08) --------------------------------------------- upd. Просто Zork поменял формат данных в data.dat. 1. Я сначала мои модифицированные data.dat "реконструкции участка" адаптировал под зорковские изменения, чтобы они могли загружаться Пультом Нева. 2. А сейчас я адаптировал DSim чтобы DSim мог понимать новый формат data.dat.
| |
| |
olegpersh999 | Дата: Вторник, Сегодня, 06:58 | Сообщение # 548 |
Начальник станции
Группа: Пользователи
Сообщений: 251
Награды: 3
Репутация: 0
Статус: Offline
| вот Добавлено (12.08.2025, 06:59) --------------------------------------------- Data.dat я вижу, а упакованную Неву нет. Там даже exe файла нет Добавлено (12.08.2025, 10:50) --------------------------------------------- V9, все я разобрался) Добавлено (12.08.2025, 11:12) --------------------------------------------- Только ГИД не быстро обновляется. Что нужно сделать подскажи, пожалуйста?
| |
| |
V9 | Дата: Вторник, Сегодня, 11:33 | Сообщение # 549 |
Поездной диспетчер
Группа: Пользователи
Сообщений: 592
Награды: 12
Репутация: 3
Статус: Offline
|  Скорей всего тут проблема.
| |
| |
olegpersh999 | Дата: Вторник, Сегодня, 12:42 | Сообщение # 550 |
Начальник станции
Группа: Пользователи
Сообщений: 251
Награды: 3
Репутация: 0
Статус: Offline
| Спасибо)
| |
| |