![]() |
[QUOTE]Бука умеет аакуратно выделять под себя память, а правило нет (в результате трейнз выбивает в процессе сортировки светофоров и сборки маршрутов уже который раз ).[/QUOTE] Как правило, неправильно выделяет память программист... Я считаю, что правило необходимо.
|
[QUOTE]Как правило, неправильно выделяет память программист...[/QUOTE]ну да, две тысячи светофоров, у каждого из которых есть имя, и есть по 3-10 маршрутов, с запоминанием 5-6 имён стрелок в каждом. Итого около 60 000 строк. Плюс сортированный массив объектов, содержащих ссылки на все стрелки (ибо для быстого поиска Soup не очень выгоден: мы из него можем получать только строки имён, и будем сильно напрягать роутер).
А правило будет, я уж говорил, что оно будет дополнительным внешним интерфейсом к будке. |
А если пересчитывать маневровые маршруты не сразу по всей карте, а в пределах только станции? Так постепенно и пересчитать все станции. К тому же, элементарные маневровые маршруты гораздо короче поездных, а значит, имеют в себе гораздо меньше стрелок, что должно облегчить пересчёт.
И ещё: как планируется алгоритм сборки составных маршрутов? |
[QUOTE]А если пересчитывать маневровые маршруты не сразу по всей карте, а в пределах только станции?[/QUOTE]у меня все поездные маршруты в пределах каждой станции свои.
Алгоритм составных пока не придумал - надо вначале хоть элементарные сделать. |
[QUOTE=TRam_;204092]ну да, две тысячи светофоров, у каждого из которых есть имя, и есть по 3-10 маршрутов, с запоминанием 5-6 имён стрелок в каждом. Итого около 60 000 строк. Плюс сортированный массив объектов, содержащих ссылки на все стрелки (ибо для быстого поиска Soup не очень выгоден: мы из него можем получать только строки имён, и будем сильно напрягать роутер).[/QUOTE]
Чево? Суп — это тип данных, реализованный, скорее всего, на дереве, каким боком к нему относится загрузка роутера? Что-то памяти многовато требуется. Если у тебя есть имена всех стрелок, то зачем нужен массив ссылок? Есть же Router.GetObject(string)? |
[QUOTE] Есть же Router.GetObject(string)?[/QUOTE]= загрузка роутера.
[QUOTE]реализованный, скорее всего, на дереве[/QUOTE]бинарный поиск по длине или последним знакам названия (поскольку у нас стрелки как правило пронумерованы) не намного хуже дерева. |
Так ты что, каждый раз пробегаешь по всем стрелкам? Что-то я не понимаю вообще как оно работает.
|
[QUOTE]Так ты что, каждый раз пробегаешь по всем стрелкам? Что-то я не понимаю вообще как оно работает.[/QUOTE]я собираюсь пробегать по стрелкам станции при построении маневровых маршрутов.
Для поездных светофоров сделана база данных станций, объектами которых являются соупы с а) именами, типами и количеством поезных маршрутов светофоров б) подсоупами поездных маршрутов этих светофоров База стрелок по прямому назначению будут использоваться для получения ссылок на стрелки и для сохранения состояния занятости стрелок. |
[QUOTE]у да, две тысячи светофоров, у каждого из которых есть имя, и есть по 3-10 маршрутов, с запоминанием 5-6 имён стрелок в каждом.[/QUOTE] А зачем все маршруты хранить? Во-первых, можно хранить только актуальный список (без вариантных и т.п.), во-вторых, есть граф, есть Дейкстра, зачем вообще что-то хранить?
[QUOTE]А правило будет, я уж говорил, что оно будет дополнительным внешним интерфейсом к будке.[/QUOTE] Без будки обойдись. Что у тебя за мания карты всякой фигней захламлять по малейшему поводу? А если настройки понадобится изменить, что, по всем тремстам километрам эту будку искать? [QUOTE]я собираюсь пробегать по стрелкам станции при построении маневровых маршрутов.[/QUOTE] По ним вообще не нужно пробегать, раз у тебя, как постулировано в первом посте, есть граф. Даже тупым поиском в глубину пройтись (стек выдержит), выбрать кратчайший маршрут, удовлетворяющий условиям и voila. Резюме. Задумка хорошая, реализация вредная. |
[QUOTE]А зачем все маршруты хранить? Во-первых, можно хранить только актуальный список (без вариантных и т.п.), во-вторых, есть граф, есть Дейкстра, зачем вообще что-то хранить?[/QUOTE]затем чтоб что-то было. Я с лёгкостью могу сделать алгоритм для создания "нашего" маршрута до нужного траксайда, триггера и т.п., но всё это будет висеть в возухе.
[QUOTE]Даже тупым поиском в глубину пройтись (стек выдержит), выбрать кратчайший маршрут, удовлетворяющий условиям и voila.[/QUOTE]кратчайшим? Я тут пол темы выслушиваю, что пути, по которым поезд должен двигаться, должен выбирать человек (ибо кратчайший не всегда быстрейший), а ты тут начинаешь. [QUOTE]Без будки обойдись. Что у тебя за мания карты всякой фигней захламлять по малейшему поводу? А если настройки понадобится изменить, что, по всем тремстам километрам эту будку искать?[/QUOTE]п***. При встраивании в правило скрипт начинает криво работать. Я не знаю почему, и, несмотря на то, что у меня огромный опыт тестирования скриптов (намного больший, чем их написания), за сегодняшний день получить не смог. Так что объявляю публичными алгоритмы GetDescriptionHTML, LinkPropertyValue и GetPropertyType, и пляшу их копиями в правиле. Так что реализации у меня всегда будут кривыми. Ибо прислушиваюсь не к одному единственному мнению. |
ЛОЛ, я вдруг обнаружил что эта система пересчитывает вообще ВСЕ элементарные маршруты между светофорами в одном направлении... Я в шоке, за 15 минут расчитать почти всё Киевское направление вместе с Бекасовым, оказывается, пустяк...
|
Не, всё-таки поспешил хвастаться. Но кога влючил-таки систему с выкл. проверкой типа светофора, то маршруты тоже собирались быстро.
Рекордсменом на карте Москва-Нара могу назвать светофор ПГ3 ст. Бекасово-Сортировочное, у которого 49 элементарных маршрутов до следующих светофоров. Второе место поделили ПГ2 и Г2 той же станции с их 48 маршрутами :D |
[QUOTE]Без будки обойдись. Что у тебя за мания карты всякой фигней захламлять по малейшему поводу? А если настройки понадобится изменить, что, по всем тремстам километрам эту будку искать?[/QUOTE]"выносной пульт будки уже работает"
[URL=http://s004.radikal.ru/i208/1009/ea/88d99c7243bd.jpg][IMG]http://s004.radikal.ru/i208/1009/ea/88d99c7243bdt.jpg[/IMG][/URL] |
На каком минимальном билде фурычить будет?
|
ТРам, ты суперкрут. Прочитал тему, эта вещь будет очень полезна.
|
[QUOTE]На каком минимальном билде фурычить будет?[/QUOTE]думаю, что фурычить должно на всём, вплоть до 2006 .
|
Офф. ТРам, у кого-то разве ещё стоит 2006 оО
|
Ну, скрипты-то с 2006 особо не меняются... Особенно в области окошек и стрелок.
|
[B]already[/B]. И зачем ты подчеркивания вместо пробелов используешь?
|
[QUOTE] И зачем ты подчеркивания вместо пробелов используешь?[/QUOTE]потому что браузер не распознаёт даже те пробелы, которые вытянуты из string-table...
|
Значит, ты что-то не так делаешь. У Варза распознает, у меня тоже распознает и т.д.
|
Распознаёт один пробел между 2мя символами. А надо несколько.
PS - на один "плюсик" тоже неудобно нажимать, поэтому сделал ему расширитель. Да, простейшие алгоритмы проверки свободности маршрута написал (за исключением поиска ПС на стрелках, попавших туда не по маршруту), теперь буду готовить ему тестировочный браузер. Да, ещё одного не пойму. Почему если Sniff со стрелок пописывать в Init , то он не работает, а если в поток, с задержкой в 0.5 с, то работает? Типа мой объект создавался ДО стрелок? |
Окончательный (я надеюсь) вариант настроечного браузера
[URL=http://ipicture.ru/uploads/100926/HRxsdWKHdd.jpg][IMG]http://ipicture.ru/uploads/100926/thumbs/HRxsdWKHdd.jpg[/IMG][/URL] |
Несколько? Гугли HTML-разметку, кроме таблиц тебе ничего не потребуется.
Или класс HTMLWindow (common.gs) |
Разве ты здесь не видишь таблицу? Маршруты светофора находятся в 2 ячейках подтаблицы, которая окружена большой таблицей?
Таблица в данном случае не подходит, т.к. станции имеют названия разной длины, а разносить на 3 равные части название, ссылки сортировки списка маршрута и ссылки сборки маршрутов непрактично. ПС сейчас попробую собрать самый первый маршрут этой системой... |
Сори, что вмешиваюсь, не моя тема, но не понял - в ТРС применяется HTML разметка в интерфейсе?
* - в HTML таблице поля будут форматироваться по самому длинному названию - до ближайшего переноса, если совсем широко и "зажаты" остальные ячейки. |
[QUOTE]Сори, что вмешиваюсь, не моя тема, но не понял - в ТРС применяется HTML разметка в интерфейсе?[/QUOTE]да, конечно.
[QUOTE]* - в HTML таблице поля будут форматироваться по самому длинному названию - до ближайшего переноса, если совсем широко и "зажаты" остальные ячейки[/QUOTE]чего мне как раз не требуется - надо компактно расположенные "кнопки", но при этом удобно нажимаемые (т.е. чтоб были промежутки). |
В минибраузере применяется HTML-разметка в усеченном варианте, но для нужд ГУИ хватает.
|
Понятно, спасибо, больше не отвлекаю от фройлен Стрелка.
|
Ага, херовина заработала фактически с первого раза (только пришлось ковырнуть направление перегона -не в ту сторону выставляла)
Обнаружилась интересная особенность: число заранее заданных маршрутов на одну горловину не ограничено :). Это жутко оставляет - даж у Zork'a такого нет |
TRam_, у тебя какая редакция z7?
|
Station Buider . В тестировании первых версий (когда маршрутостроение было) я участия не принимал, пришлось 43 килобайта писать самому...
Не подскажешь, как надёжно отключить самооткрытие светофоров? |
Итак, самая первая бетка. Поддерживаются только элементарные маршруты, выбирать из элементарных наилучший он тоже пока не умеет. Если "приоритет -1", то задать маршрут нельзя будет. Будку ставить так же, как "главный контроллер z7" (обязательно, и только одну на карту). В самом "главном контроллере z7" обязательно ставить "направление перегонов - ручной/командный" и режим "Проф". Маршруты выполняются в порядке задания. Для отмены маршрута нажимать на его название в разделе его станции... Так, если не хотите понимать эту груду слов - ждите мануала. Система несовместима с z7 script DNC.
А я пока её обкатаю. Да, основное преимущество - стрелки после прокладывания по ним маршрута не блокируются. [url]http://narod.ru/disk/25445057000/z7-xpath%20v0.1.cdp.html[/url] [url]http://trainzold.mylivepage.ru/file/746/6353_z7-xpath_v0.1.cdp[/url] |
Так, небольшое исправление (после тестирования БМО выпал некритичнй баг, но лучше его убрать :) )
[url]http://narod.ru/disk/25445982000/z7-xpath%20v0.1a.cdp.html[/url] (старые удалил) Инструкции будут днём. |
[QUOTE]Да, основное преимущество - стрелки после прокладывания по ним маршрута не блокируются.[/QUOTE]
Т.е. маршрут не замыкается? И окончательным разрешением светофору на открытие является что-то другое, а не замкнутость маршрута? Или ты имел в виду, что стрелки разблокируются после освобождения или отмены собранного маршрута? На 41615 не хочет устанавливаться. |
[QUOTE]Или ты имел в виду, что стрелки разблокируются после освобождения или отмены собранного маршрута?[/QUOTE]я говорю стрелки не блокируются. НИКОГДА НЕ БЛОКИРУЮТСЯ. Ибо это не нужно.
Поэтому для автомашиниста следует применять правило, не трогающее стрелки, например STW drive. [QUOTE]И окончательным разрешением светофору на открытие является что-то другое, а не замкнутость маршрута? [/QUOTE]окончательное разрешение на открытие светофора даёт сама сигналка z7, а эта система проверяет свободность стрелок, и : в случае маршрутов по станции - свободность следующего парка, в случае маршрута на другую станцию - направление перегона. После успешной проверки переводит стрелки и включает на светофоре режим предоткрытия. Остальное, как уже сказал, делает сигналка. [QUOTE]На 41615 не хочет устанавливаться.[/QUOTE]это как? Скрипты с ошибками, или что? |
[QUOTE=TRam_;205355]я говорю стрелки не блокируются. НИКОГДА НЕ БЛОКИРУЮТСЯ. Ибо это не нужно.
Поэтому для автомашиниста следует применять правило, не трогающее стрелки, например STW drive. окончательное разрешение на открытие светофора даёт сама сигналка z7, а эта система проверяет свободность стрелок, и : в случае маршрутов по станции - свободность следующего парка, в случае маршрута на другую станцию - направление перегона. После успешной проверки переводит стрелки и включает на светофоре режим предоткрытия. Остальное, как уже сказал, делает сигналка. [/QUOTE] Хм, то есть подразумевается, что если юзаем твою систему, то извольте только ею и пользоваться? Симбиоз сей системы и, например, Path Control или Path Rule невозможен? Хм, смелое решение... Ну, посмотрим, может быть действительно, доверив всё твоей системе остальное можно выбросить на свалку истории? А почему режим "Проф", типа, чтоб предоткрытия не было входных/выходных/маршрутных? |
[QUOTE]это как? Скрипты с ошибками, или что?[/QUOTE]
Пишет "Unable to open......to reading" [QUOTE]я говорю стрелки не блокируются. НИКОГДА НЕ БЛОКИРУЮТСЯ. Ибо это не нужно. Поэтому для автомашиниста следует применять правило, не трогающее стрелки, например STW drive.[/QUOTE] Не согласен тут, маршрут должен замыкаться, это важно - исключается перевод стрелок в собранном маршруе, что особенно важно на больших станциях. [QUOTE]окончательное разрешение на открытие светофора даёт сама сигналка z7, а эта система проверяет свободность стрелок, и : в случае маршрутов по станции - свободность следующего парка, в случае маршрута на другую станцию - направление перегона. После успешной проверки переводит стрелки и включает на светофоре режим предоткрытия. Остальное, как уже сказал, делает сигналка.[/QUOTE] Я писал о минусах такого алгоритма: 1. в случае случайной комбинации положений стрелок (когда маршруты из них не собраны), когда между светофорами получается незамкнутый маршрут (который никто не собирал:)) светофор может открыться, когда не нужно, если перед ним есть ПС с машинистом. 2. будут старые проблемы с открытием светофора, когда едешь управлением назад или вагонами вперёд. Если бы получилось научить светофоры открываться только при замкнутом маршруте, невзирая на отсутствие/присутствие машиниста, наличие вагонов перед локом, положение машиниста к светофору спиной/лицом, вот это был бы реал и значительное упрощение работы со светофорами. Кто согласится со мной? |
[QUOTE]1. в случае случайной комбинации положений стрелок (когда маршруты из них не собраны), когда между светофорами получается незамкнутый маршрут (который никто не собирал) светофор может открыться, когда не нужно, если перед ним есть ПС с машинистом.
2. будут старые проблемы с открытием светофора, когда едешь управлением назад или вагонами вперёд.[/QUOTE] решение проблемы 1: все светофоры принудительно переведены в предзакрытое состояние, открываться не хотят и не могут (т.к. в предоткрытое состояние их переводила z7 script dnc, теперь она не используется) решение проблемы 2: развернуть поезд. (да каким угодно способом, может я чуть иную команду напишу, чем z7 turnround) [QUOTE]Не согласен тут, маршрут должен замыкаться, это важно - исключается перевод стрелок в собранном маршруе, что особенно важно на больших станциях.[/QUOTE]ты алгоритма не понял. Если ты не разрешаешь машинистам переводить стрелки, то их никто не переведёт, правильно? Без различия, большая или маленькая у нас станция. Система же помечает стрелки, готовящиеся к переведению, индивидуальным номером маршрута, так что 2 и более маршрута по одной стрелке провести невозможно. А если у нас перевести стрелки может только тот маршрут, который пометил все свои стрелки, то второй на эти стрелки полезть не сможет (до тех пор, пока поезд по маршруту не проедет или пользователь маршрут не разберёт). Да, вот, думаю, окончательная бета-версия, (в папках а не cdp-файлах), мануал уже делаю. [url]http://ifolder.ru/19529309[/url] [url]http://narod.ru/disk/25460442000/z7%20xPath%20v0.1b.rar.html[/url] [url]http://trainzold.mylivepage.ru/file/746/6354_z7_xPath_v0.1b.rar[/url] [QUOTE]светофоры открываться только при замкнутом маршруте, невзирая на отсутствие/присутствие машиниста, наличие вагонов перед локом, положение машиниста к светофору спиной/лицом, вот это был бы реал и значительное упрощение работы со светофорами. Кто согласится со мной?[/QUOTE]я против "положения машиниста". Потому что при развороте направления поезда машинист оказывается в первом вагоне с головы (вне зависимости от того, является ли первый вагон локомотивом или нет). По поводу "самооткрытия" - качай мою весч, и попробуй добиться хоть одного самооткрытия :) |
[QUOTE=CFM;205380]Пишет "Unable to open......to reading"
Не согласен тут, маршрут должен замыкаться, это важно - исключается перевод стрелок в собранном маршруе, что особенно важно на больших станциях. [/QUOTE] Я тоже был удивлен. Но если я правильно понял скорректированную задумку автора, стрелка, которая учавствует в собранном маршруте считается занятой. И если попытаться, но опять же таки, этой же разработкой собрать маршрут, в который входит занятая стрелка, то маршрут не соберется и стрелки не переведуться. Да, TRam? [QUOTE] Я писал о минусах такого алгоритма: 1. в случае случайной комбинации положений стрелок (когда маршруты из них не собраны), когда между светофорами получается незамкнутый маршрут (который никто не собирал:)) светофор может открыться, когда не нужно, если перед ним есть ПС с машинистом. [/QUOTE] В z7 версии Проф это, по-моему, исключено. Там не предотрытия входных/выходных/маршрутных, как в Проф2. Хотя сама по себе невозможность работать в версии Проф2 говорит скорее о слабости алгоритма, чем о его силе. Неужели нельзя жестко позакрывать предоткрытие? Вручную же можно. [QUOTE] 2. будут старые проблемы с открытием светофора, когда едешь управлением назад или вагонами вперёд. Если бы получилось научить светофоры открываться только при замкнутом маршруте, невзирая на отсутствие/присутствие машиниста, наличие вагонов перед локом, положение машиниста к светофору спиной/лицом, вот это был бы реал и значительное упрощение работы со светофорами. Кто согласится со мной?[/QUOTE] Ну, это уже из области улучшений.:rolleyes: Тут хотя бы те постулаты, которые в самом начале темы и разработки соблюдены были. Но об этом, думаю, можно судить только опробовав то, что нам было предложено. |
Текущее время: 11:23. Часовой пояс GMT +4. |
Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
© 2001-2019, Администраторы и разработчики Клуба Trainsim