[ Главная · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 26 из 26
  • «
  • 1
  • 2
  • 24
  • 25
  • 26
Пытаюсь замутить свой симулятор.
V9Дата: Воскресенье, 13.07.2025, 17:27 | Сообщение # 501
Поездной диспетчер
Группа: Пользователи
Сообщений: 559
Награды: 12
Репутация: 3
Статус: Offline
Ок! Тогда делай (в отдельном каталоге). ВСЁ удали в каталоге Territory\1, можно оставить pult.ini.  Распакуй архив, что я присылаю. Должно заработать.
Прикрепления: 9854929.7z (33.6 Kb)
 
olegpersh999Дата: Воскресенье, 13.07.2025, 17:30 | Сообщение # 502
Начальник станции
Группа: Пользователи
Сообщений: 230
Награды: 3
Репутация: 0
Статус: Offline
V9, заработало! Спасибо огромное за помощь) Осталось ГИД под себя перенастроить)
 
V9Дата: Воскресенье, 13.07.2025, 18:58 | Сообщение # 503
Поездной диспетчер
Группа: Пользователи
Сообщений: 559
Награды: 12
Репутация: 3
Статус: Offline
Цитата olegpersh999 ()
V9, заработало! Спасибо огромное за помощь) Осталось ГИД под себя перенастроить)

dsim.ini со старого каталога возьми.

Добавлено (13.07.2025, 18:59)
---------------------------------------------
Цитата olegpersh999 ()
V9, заработало! Спасибо огромное за помощь) Осталось ГИД под себя перенастроить)

Отмечу, что благодаря твоей задаче, я нашел и исправил ошибку, которая у меня в коде проги была.

Добавлено (13.07.2025, 22:54)
---------------------------------------------
Закончил загрузку из .dat файлов. Условно, с этого момента мой сим полагается только и только на инфу, которая находится в файлах. Это означает, что ничего не мешает добавлять мне или кому-то еще дополнительные полигоны(территории) железных дорог без необходимости перекомпиляции исходного кода симулятора. Сим будет опираться только на сведения в файлах.

Потребуется еще тестрование на всех режимах и удаление всех диагностических-отладочных комментариев.

Но есть проблемы. (А) Мой сим может моделировать только протяженные в линию полигоны. Нет возможности "орисовать" и управлять разветвлением. (Б) Пока перегонные времена хода берутся из первого попавшегося пути данного перегона. Путей на перегоне может быть два(три, четыре), перегонные хода могут быть разные по ним. Мой сим в данный момент  не умеет в такие расклады.

upd. Но можно делать два(три...) полигона и рулить всеми. Скажем, полигон Сургут-НВ1 может "стыковаться" по УЯ с полигоном УЯ-Ноябрьск-I. Соответственно, можно провести по участку поезд с Сургута до УЯ, оттуда вести по полигону до Ноя-I И наоборот.

Добавлено (14.07.2025, 00:14)
---------------------------------------------
upd2. Была проблема, что при попытке толи откомпилирровать, толи запустить в более старших версиях джавы, все крашилось нафиг. Решил разобрать в какой точки, но крашится перестало. "само починилося". Хз где была проблема.

Добавлено (14.07.2025, 07:24)
---------------------------------------------
upd3. Выяснился еще один прикол, что заставлет думать об эффекте Манделы. У меня ранее, если я откомпилировал исходный текст в байт код Java'й более старшего уровня, то я не мог запустить на своей java 1.0.2. Просто не мог. Даже самые маленькие сниппиты кода. "Ничего удивительного!" - думал я - "В скомпилированном файле пишется версия Java, младшая отказываетяс запускать старшую, я бы так же сделал!" Но по итогу, сейчас у меня компилируется старшей версией, запускается на java 1.0.2 и прекрасно работает. Что подстрекает меня делать разработку в более старшей, а запускать в младшей. Так как в старшей исправили несколько ошибок компилятора, изза чего мне приходилось сильно к этому приспосабливаться, к примеру, разбивая код на более мелкие куски. Но! А вдруг я столкнусь с ситуацией, когда я веду-веду разработку в старшей версии, и внезапно все перестанет запускаться на младшей Версии? И что делать? В общем, "и хочется, и колется".

Добавлено (15.07.2025, 08:52)
---------------------------------------------
Решил немного порефакторить, смотрю на свои же куски кода и долго думаю - "Что это и зачем?"


Код
_this.curColorScheme = (byte)Math.min(_4th[0].length, _this.curColorScheme);

20 минут и наконец понял! "Это защита от переполнения массива! Чтобы не получить исключение IndexArrayOfBoundsException!" 
И далее понимаю, что в выражении ошибка, так как верно было бы т

Код
_this.curColorScheme = (byte)Math.min(_4th[0].length - 1, _this.curColorScheme);

Вот как-то так и идет!

Добавлено (15.07.2025, 22:36)
---------------------------------------------
Модель - это физический движок симулятора. Она двигает поезда, считает занятость/свободность, короч - отражает мир. Сижу, думаю - "Зачем может в симе потребоваться две независимые модели мира одновременно в одном процессе?"

Добавлено (18.07.2025, 18:55)
---------------------------------------------
Подзадолбался. Переносил загрузку станционных путей с одного места (загрузка в подпрограмме ГИДа) в место общей загрузки (загрузка всего полигона) с переписыванием алгоритма. Вначале все ошибки для пользователей четко расшифровывались - "В такой-то строке такого то числа вот именно такая-то ошибка!", под конец - "В такой-то строке такого-то числа есть какая-то ошибка!"

ps. Иду в направлении выведения на экран зеленого выносного пульта. Раньше всегда грузился ГИД (безусловно), и состояние путей на станциях грузилось именно там. Ибо изначально в проге вообще ничего кроме ГИДа не было. А сейчас условия меняются: ГИДов может не быть, может быть один, может быть много. Поэтому и полагаться на загрузку в коде ГИДа нельзя: ГИДа может не быть на экране!

PPS. Мечтаю о режиме игры, при котором ГИД нельзя вызвать на экран. Типа "есть пульт и достаточно!" Но в этом режиме диспетчер может по радиосвязи запросить - "А кто у меня там стоит на 5м пути Силинского?" - или - "Кто проследовал Урьевский?" - но это бы считалось "браком" диспетчера. А пользователь бы чертил у себя на бумаге график.

Добавлено (18.07.2025, 19:07)
---------------------------------------------
ppps. Уже получается, воспоминания! Первым делался ГИД. Станции везде одинаковые, поэтому я "забил" их жестко внутри программы, чтоыб не мучится. А вот пути были разные так как есть несколько вариантов полигона Сургут-НВ1. Zork, моя "реконструкция без двухпутки" и моя "реконструкция с двухпуткой". Поэтому секцию путей пришлось грузить, а так как кроме ГИДа ничего не было, то и грузил там в ГИДе. Блин, как это давно было!

Сообщение отредактировал
V9 - Воскресенье, 13.07.2025, 23:05
 
V9Дата: Пятница, 18.07.2025, 20:37 | Сообщение # 504
Поездной диспетчер
Группа: Пользователи
Сообщений: 559
Награды: 12
Репутация: 3
Статус: Offline
Посмотрел систему контроля версий. Оказывается загрузку путей я делал 20.07.2024, т.е. почти год назад. 

А сегодня годовщина! 18.07, год назад, была выпущена версия, 0.1.0.0, в которой появилась Модель движения поездов. Поезда начали ехать косо-криво. К сожалению, косо-криво они едут до сих пор.
Прикрепления: 1082618.png (177.3 Kb)
 
olegpersh999Дата: Суббота, 19.07.2025, 05:41 | Сообщение # 505
Начальник станции
Группа: Пользователи
Сообщений: 230
Награды: 3
Репутация: 0
Статус: Offline
Почему криво-косо?
 
skiff4832Дата: Суббота, 19.07.2025, 07:20 | Сообщение # 506
Станционный диспетчер
Группа: Пользователи
Сообщений: 51
Награды: 0
Репутация: 0
Статус: Offline
А где сама-то версия?
 
V9Дата: Суббота, 19.07.2025, 11:31 | Сообщение # 507
Поездной диспетчер
Группа: Пользователи
Сообщений: 559
Награды: 12
Репутация: 3
Статус: Offline
Цитата olegpersh999 ()
Почему криво-косо?

  • Команды по движению поездов ручками надо вводить.
  • Модель движения поездов кривая до безумия. По факту, контролирует только перегонные хода времени

Цитата skiff4832 ()
А где сама-то версия?
Будет выложена когда появится сам пульт (хоть какой-то) и появится возможность задавать движение поездов с пульта. На данный момент времени переделываются внутренности в рамках подготовки к появлению пульта. Внешне ничего в проге не поменялось с последнего релиза.
 
skiff4832Дата: Суббота, 19.07.2025, 12:12 | Сообщение # 508
Станционный диспетчер
Группа: Пользователи
Сообщений: 51
Награды: 0
Репутация: 0
Статус: Offline
Ну тогда все понятно. Будем ждать
 
olegpersh999Дата: Суббота, 19.07.2025, 12:48 | Сообщение # 509
Начальник станции
Группа: Пользователи
Сообщений: 230
Награды: 3
Репутация: 0
Статус: Offline
Так ты делаешь пульт для участка НВ - Сургут или для другого участка?
 
V9Дата: Суббота, 19.07.2025, 12:57 | Сообщение # 510
Поездной диспетчер
Группа: Пользователи
Сообщений: 559
Награды: 12
Репутация: 3
Статус: Offline
Планы по версиям.
0.3 - Пульт. Манипуляции с пульта движением поездов. Лампы. Спрятать/показать ГИД(ы).
0.4 - Расписание движения поездов. НГДП (возможно). Ввод поездов на полигон диспетчерами соседних участков (компом). Сейчас поезда вводить надо самому. 
0.5 - Сетевой протокол взаимодействия. Сейчас инфа по движению пишется моделью в текстовый файлик gid.txt, а подсистема ГИД читает файлик и показывает. Такой режим позволяет сделать многопользовательскую физическую модель движения поездов, но она достаточно "неточная", нет необходимой точности. Для многопользовательского режима с максимально точным движением требуется сетевая передача данных. Вот в 0.5 планируется делать.
0.6 - Путевой граф, путевое развитие. Физическая модель движения. Поезд будет рассчитываться в движении.
0.7, 0.8, 0.9, 1.0 - еще не придумал, что планируется.

Добавлено (19.07.2025, 13:45)
---------------------------------------------

Цитата olegpersh999 ()
Так ты делаешь пульт для участка НВ - Сургут или для другого участка?
Пульт будет работать для любых участков. Вся инфа берется из .DAT файлов и pult.bmp (картинка). Кроме того, уже реализована возможность играть на сквозных участках (2х и более) и возможность мультиплеера.

Добавлено (19.07.2025, 14:03)
---------------------------------------------

Цитата V9 ()
0.7, 0.8, 0.9, 1.0 - еще не придумал, что планируется.
Придумал задачу для 0.7: "Путейские окна + вариативный график движения поездов". Прога будет планировать путейские окна, а к ним строить вариативный график движения поездов.
 
olegpersh999Дата: Воскресенье, 20.07.2025, 10:07 | Сообщение # 511
Начальник станции
Группа: Пользователи
Сообщений: 230
Награды: 3
Репутация: 0
Статус: Offline
Цитата V9 ()
Придумал задачу для 0.7: "Путейские окна + вариативный график движения поездов"
оо, вот это интересно. А то поезда идут и идут, а окна только на двухпутке получается делать. Пока было мало поездов, спланировал 12 часовое окно на однопутном перегоне. Грузовые прятал по станциям и на двухпутке и пропускал только пассажирские. В итоге их соответственно пришлось поубивать и потом разъезжаться 
Прикрепления: 9523985.png (766.3 Kb) · 6835445.png (1.70 Mb)


Сообщение отредактировал
olegpersh999 - Воскресенье, 20.07.2025, 10:08
 
V9Дата: Воскресенье, 20.07.2025, 13:55 | Сообщение # 512
Поездной диспетчер
Группа: Пользователи
Сообщений: 559
Награды: 12
Репутация: 3
Статус: Offline
Прикрепления: 4125263.png (654.4 Kb)
 
V9Дата: Воскресенье, 20.07.2025, 17:06 | Сообщение # 513
Поездной диспетчер
Группа: Пользователи
Сообщений: 559
Награды: 12
Репутация: 3
Статус: Offline

Когда-то эта белая фигня станет зеленым пультом...
Прикрепления: 7834921.png (12.7 Kb)
 
olegpersh999Дата: Воскресенье, 20.07.2025, 17:14 | Сообщение # 514
Начальник станции
Группа: Пользователи
Сообщений: 230
Награды: 3
Репутация: 0
Статус: Offline
любопытно
 
V9Дата: Воскресенье, 20.07.2025, 21:04 | Сообщение # 515
Поездной диспетчер
Группа: Пользователи
Сообщений: 559
Награды: 12
Репутация: 3
Статус: Offline

"белая фигня" превратилась в зеленую, появились станции и пути. Далее долгая и мучительная настройка видимости и управляемости.
Прикрепления: 3485966.png (22.2 Kb)
 
skiff4832Дата: Воскресенье, 20.07.2025, 23:04 | Сообщение # 516
Станционный диспетчер
Группа: Пользователи
Сообщений: 51
Награды: 0
Репутация: 0
Статус: Offline
Довольно любопытно, ждем
 
V9Дата: Вторник, 22.07.2025, 08:15 | Сообщение # 517
Поездной диспетчер
Группа: Пользователи
Сообщений: 559
Награды: 12
Репутация: 3
Статус: Offline
Уперся в то, как должны быть представлены в data.dat станционные парки. Могут быть очень сложно сконструированные станции типа Агрыза, где куча парков, часть - последовательно расположенных, часть - параллельно.

Для моего сима, где упор на чтение из data.dat, это достаточно критично.

Добавлено (22.07.2025, 12:48)
---------------------------------------------
upd. Нет проблем. Временное решение сделаю на наше участок только, оно все равно будет временным так как основное решение будет графическим.

Добавлено (22.07.2025, 17:41)
---------------------------------------------
Код
[Data_Station_Yards]
;Информация по многопарковым станциям.
;1 - Код станции,
;2 - Смещение оси парка относительно оси станции по направлению роста километров, в сотнях метров. 10 = 10 сотен = 1 км. >1000 - минус значение,
;3 - Rоличество путей в парке
;4 и далее - номера путей в кодировке Data_Put
56,    0, 4, 102, 1101, 103, 105
56, 1011, 7, 7, 6, 5, 4, 3, 2, 1001

[Data_Station_Yards_Names]
;имена парков для индексации в ГИД(Пульта). Соотвествует порядку расположения парков в секции Data_Station_Yards
Pss, Frt

Сделал изменение в data.dat чтобы мой сим корректно отрабатывал многопарковые станции.

Добавлено (22.07.2025, 17:51)
---------------------------------------------
upd. Оказывается то, что мы называем "парк" в английском железнодорожном - "yard". Reception yard - парк приема, classification yard - сортировочный парк, departure yard - парк отправления.

Добавлено (22.07.2025, 17:53)
---------------------------------------------
https://en.wikipedia.org/wiki/Rail_yard

Добавлено (22.07.2025, 19:51)
---------------------------------------------
Вопрос к комьюнити!
Как вы бы хотели рулить пультом - с упором на мышь или с упором на клавиатуру?

Добавлено (22.07.2025, 21:36)
---------------------------------------------
в проекте перевалили за 7000 строк. Сейчас - 7075.

Сообщение отредактировал
V9 - Вторник, 22.07.2025, 18:03
 
olegpersh999Дата: Среда, Вчера, 06:53 | Сообщение # 518
Начальник станции
Группа: Пользователи
Сообщений: 230
Награды: 3
Репутация: 0
Статус: Offline
Цитата V9 ()
Как вы бы хотели рулить пультом - с упором на мышь или с упором на клавиатуру?
мне с мышкой удобнее
 
V9Дата: Среда, Вчера, 11:15 | Сообщение # 519
Поездной диспетчер
Группа: Пользователи
Сообщений: 559
Награды: 12
Репутация: 3
Статус: Offline
Цитата olegpersh999 ()
мне с мышкой удобнее

Записал!

Оффтоп.О сложностях разработки.

Я делаю так, что мой сим грузит инфу не из одного data.dat, а из трех файлов - data.dat, dsim.dat, polygon.dat. Замысел в том, что в других файлах можно уточнять инфу из data.dat. Скажем, сделать другое расписание с тем же графом путей. Другой граф путей (с тем же расписанием). В будущем, замысел, что будут еще временные метки, когда сим меняет структуру путей и(или) расписание "на ходу".

Но появились сложности.
  • Нельзя полагаться на расположение данных в data.dat. Так как данные могут быть перезаписаны из других файлах. Единственный выход: делать разбор данных и грузить разобранное в промежуточные хранилища. А потом, вторым этапом, проверять корректность данных и увязывать друг с другом, т.н. "линковка". 
  • На первом этапе проверяем, что, к примеру, в числах нет букв. И есть сами числа. Тут все просто: в момент ошибки мы укажем пользователю, где и какая ошибка.
  • Но есть еще ошибки линковки. Пример.
    Код
    [Data_Station_Yards]
    ;Информация по многопарковым станциям.
    ;1 - Код станции,
    ;2 - Смещение оси парка относительно оси станции по направлению роста километров, в сотнях метров. 10 = 10 сотен = 1 км. >1000 - минус значение,
    ;3 - Rоличество путей в парке
    ;4 и далее - номера путей в кодировке Data_Put
    56,    0, 4, 102, 1101, 103, 105
    56, 1011, 7, 7, 6, 5, 4, 3, 2, 1001

  • Добавлена информация о парках станции НВ1, код - 56. Лежит инфа в polygon.dat. Но пользователь по ошибке запихал polygon.dat не в Territory/1 (где есть НВ1) в полигон Territory/2, где НВ1 нет, зато есть двухпарковый Сургут (код - 41, парки другие, коды путей - другие). В момент загрузки секции данных мы ничего не знаем, есть у нас НВ1 или нет. Это выяснится в процессе линковки.
  • И тут проблема. Выяснив проблему, мы не можем указать пользователю, ни в каком файле была проблема, ни в какой строке файла была проблема. Проблему указать можем, а ткнуть пальцем - нет.
  • То есть. Требуется добавлять хранилища данных. Одно должно хранить сведения, из какого файла было прочитаны указанные данные. Во втором - построчное соотствие прочитанным данным и .dat-файла. Тогда при ошибке в момент линковки, прога сможет точно указать пользователю, где, какая проблема есть, в каком файле искать, в какой строке текста файла.
  • Но всё это дополнительные сложности с которыми приходится бороться.

Добавлено (23.07.2025, 20:17)
---------------------------------------------
Господа дистетчеры! Ищу регламент переговоров ДНЦ-ДСП по типовым операциям движения поездов.

Добавлено (23.07.2025, 20:48)
---------------------------------------------
upd. Это в рамках расчета потребного времени на перегоры. Дабы симулировать физическое ограничение диспетчеру на прием-отдачу команд.

 
  • Страница 26 из 26
  • «
  • 1
  • 2
  • 24
  • 25
  • 26
Поиск: