![]() |
Я пробовал инкримент. Если блок занят, прибавляется единица. Но, как только блок освобождается -- переменная обнуляется почему-то
[size="1"][color="Silver"]Добавлено через 2 минуты[/color][/size] [QUOTE=КЕ;539244] ///////////////////////////////////////////////////////////////////////////////////// SCRIPT TK_M1-V extern float enabled; extern float block_state (); extern float next_sig_lr (); extern float opp_sig_lr (); extern float state; ///{ state = 0; } if ( ( block_state() == BLOCK_CLEAR ) && ( next_sig_lr (SIGFN_NORMAL) <=1 ) && ( opp_sig_lr (SIGFN_NORMAL) <=1 ) ) { state = 1; }[/QUOTE] И что? Когда оппозит сбрасывается? Что со state? |
Да, и [I][B]dist_multi_sig_xx[/B][/I] до конца пути как проверяет? То есть как это в скрипте выглядит?
[size="1"][color="Silver"]Добавлено через 6 минут[/color][/size] [QUOTE=vicente;539247]И что? Когда оппозит сбрасывается? Что со state?[/QUOTE] Вот это я проверять буду, с трафиком. Посмотрю, как оно работает, но только послезавтра. |
[IMG][url=http://itmages.ru/image/view/5106146/480c7d5d][img]http://storage7.static.itmages.ru/i/16/1029/s_1477773489_2688766_480c7d5d20.png[/img][/url][/IMG]
[size="1"][color="Silver"]Добавлено через 1 минуту[/color][/size] [QUOTE=КЕ;539249]Да, и [I][B]dist_multi_sig_xx[/B][/I] до конца пути как проверяет? То есть как это в скрипте выглядит?[/QUOTE] Как в дефолте [QUOTE]SCRIPT UKSemDist // UK Semephore (Distance) extern float block_state (); extern float route_set (); extern float def_draw_state (); extern float dist_multi_sig_mr (); extern float state; extern float draw_state; extern float enabled; if ( //!enabled || // Not enabled/cleared to show natural state? !route_set() || // Switch not set as per link? dist_multi_sig_mr (SIGFN_NORMAL, SIGFN_DISTANCE) ==# SIGASP_STOP) { state = SIGASP_APPROACH_2; } else { state = SIGASP_CLEAR_2; } // Get draw state draw_state = def_draw_state (state); [/QUOTE] Проверяет головы NORMAL до следующего по пути DISTANCE. Если нет такового или путь заканчивается или есть на пути враждебная противошерстная стрелка - до места окончания пути Для Open Rails заблокированный светофор тоже является "окончанием пути". По скрипту, если есть [B]хоть один[/B] STOP , считается, что условие выполняется! [size="1"][color="Silver"]Добавлено через 15 минут[/color][/size] [url=http://itmages.ru/image/view/5106240/e1cafd4c][img]http://storage7.static.itmages.ru/i/16/1029/s_1477774733_3413209_e1cafd4c37.png[/img][/url] Как удержать аспект? :mad: |
Не удерживается даже в таком скрипте:
[SPOILER]SCRIPT TK_WB [I]extern float block_state (); extern float next_sig_lr (); extern float state; extern float draw_state; float next_N; float W;[/I] next_N = next_sig_lr (SIGFN_NORMAL); if ( ( state == 0 ) && ( block_state()!= BLOCK_CLEAR ) ) W = 1; else if ( ( ( next_N == 1 ) || ( next_N == 2 ) ) && W == 0 ) { state = 2; draw_state = 1; } /// из горловины на станц. путь else { state = 0; draw_state = 0; }[/SPOILER] Здесь переменная W задана для гашения белого в обратном направлении. Гаснет, но при обороте маневрового в горловине и движении обратно на станцию загорается белый, хотя сброс W в ноль не прописан в скрипте. То есть при перемене направления движения всё обнуляется заново независимо от скрипта.(?) Похоже, что при переходе из [I]!enabled[/I] в [I]enabled[/I] или обратно происходит то же самое. Переменная W - в принципе, тот же аспект. |
1. М-м-дя-я... "Головы" SHUNTING тоже оппозиты не читают, условие [B][I]opp_sig_lr (SIGFN_DISTANCE)[/I][/B] всегда возвращает "0". И в стабильной, и в последней тестовой версиях.
2. Если на станц. пути стоят вагоны, а за вагонами горит белый ( [I]state = 2;[/I]), то при этом на манёврах условие [I][B]if ( next_N == 2 )[/B][/I] не работает, [I][B]next_sig_xx[/B][/I] возвращает ноль (вроде как РЦ зашунтирована колёсами, и коды не проходят:)).:mad: Где можно посмотреть список внешних переменных для OR? |
[QUOTE=КЕ;539405]1. М-м-дя-я... "Головы" SHUNTING тоже оппозиты не читают, условие [B][I]opp_sig_lr (SIGFN_DISTANCE)[/I][/B] всегда возвращает "0". И в стабильной, и в последней тестовой версиях.
2. Если на станц. пути стоят вагоны, а за вагонами горит белый ( [I]state = 2;[/I]), то при этом на манёврах условие [I][B]if ( next_N == 2 )[/B][/I] не работает, [I][B]next_sig_xx[/B][/I] возвращает ноль (вроде как РЦ зашунтирована колёсами, и коды не проходят:)).:mad: Где можно посмотреть список внешних переменных для OR?[/QUOTE] Оппозит ловит только enabled светофор. По 2.... Чет-ты, кажется, "мудришь" там. Работает. Как это:[QUOTE]if (enabled && (block_state() !=# BLOCK_CLEAR) && (next_state ># SIGASP_RESTRICTING)) { state = SIGASP_STOP; }[/QUOTE] Так и это: [QUOTE] if (enabled && (block_state() !=# BLOCK_CLEAR) && (next_state ==# SIGASP_STOP)) { state = SIGASP_RESTRICTING; }[/QUOTE] Моя версия 3651 |
[quote]Оппозит ловит только [I]enabled[/I] светофор[/quote] - вообще [I]enabled[/I], или у которого он указан в скрипте?
У меня маневровый Б-С типа SHUNTING, из-за этого и разница. |
Всё, что я дал [URL="http://trainsim.ru/forum/showpost.php?p=539239&postcount=282"]здесь[/URL] - работает. Просто [S]добавь воды[/S] подставь и тести :cool:
[size="1"][color="Silver"]Добавлено через 1 минуту[/color][/size] [QUOTE=КЕ;539415]- вообще [I]enabled[/I], или у которого он указан в скрипте?[/QUOTE] Если у сигнала в скрипте прописана зависимость от оппозитной функции, эта зависимость будет проверяться только если сигнал перед поездом (enabled) |
Подставил, работает! А SNCA у него какой, -1?
Что же, получается, все маневровые Б-С на NORMAL переводить... |
Ну, это уже я не знаю )))
Я тебе тогда сразу сказал, что буду делать их NORMAL и сделал. По-другому с манёврами трафика проблемы. Маневровые не идеальны, есть несколько ситуаций, в которых приходится ехать "по приказу" на синий SAP, а также ситуация с занятым путём и красным на выходном. Хотя, с другой стороны, трафик не прицепляется к составу с локомотивом (для этого есть специальная WP), а идёт за ним по Нодам. [size="1"][color="Silver"]Добавлено через 1 минуту[/color][/size] Если решишь делать NORMAL-ами, советую ставить "заглушки" - маркеры РЦ (у меня они на точках выходных бэк-фэйсами, но можно и отдельно). Скрипты я дам. [size="1"][color="Silver"]Добавлено через 9 минут[/color][/size] [QUOTE=КЕ;539419]А SNCA у него какой, -1?.[/QUOTE] Да, [B]-1[/B] |
А что за маркеры РЦ, для чего они?
|
Скрипт РЦ (устанавливается на пути [B]после[/B] всех стрелок, у меня, как я уже сказал, это обратно-смотрящая голова, но можно отдельно делать)
[SPOILER]SCRIPT KRN23_RC_60 extern float block_state (); extern float next_sig_lr (); extern float def_draw_state (); extern float state; extern float draw_state; extern float enabled; extern float sig_feature (); float next_state; state = SIGASP_STOP; next_state = next_sig_lr (SIGFN_NORMAL); if (enabled && (block_state() ==# BLOCK_CLEAR) && (next_state ==# SIGASP_STOP)) { state = SIGASP_STOP_AND_PROCEED; } else if (enabled && (block_state() !=# BLOCK_CLEAR) && (next_state ==# SIGASP_STOP)) { state = SIGASP_RESTRICTING; } else if (enabled && (block_state() !=# BLOCK_CLEAR) && (next_state ==# SIGASP_STOP_AND_PROCEED)) { state = SIGASP_RESTRICTING; } else if (enabled && (block_state() !=# BLOCK_CLEAR) && (next_state ># SIGASP_RESTRICTING)) { state = SIGASP_STOP; } else if (enabled && (next_state ==# SIGASP_RESTRICTING)) { state = SIGASP_RESTRICTING; } else if (enabled && (block_state() ==# BLOCK_CLEAR) && (next_state ># SIGASP_RESTRICTING)) { state = next_state; } else { state = SIGASP_STOP; } draw_state = def_draw_state (state); [/SPOILER] В принципе, практически то же самое, что я давал, они у меня раньше отдельными светофорами стояли, но, если несколько маневровых, надо было их по-разному делать, я сделал, но потом обнаружилась проблема с приготовлением маршрута, поэтому сегодня он только маркер :) Маркеров несколько, отличаются только скоростью на SAP в конфиге в зависимости от пути (40 км/ч, 60... 80.... и т.д.) Сам маневровый [SPOILER]SCRIPT KRN23_WB_k2 extern float block_state (); extern float route_set (); extern float next_sig_lr (); extern float this_sig_lr (); extern float next_sig_mr (); extern float def_draw_state (); extern float state; extern float draw_state; extern float enabled; extern float sig_feature (); float next_state; next_state = next_sig_lr (SIGFN_NORMAL); if (route_set () ) { state = SIGASP_STOP; if (enabled && (block_state() ==# BLOCK_CLEAR)) { state = next_state; } draw_state = def_draw_state (state); } else { state = SIGASP_STOP; draw_state = 0; if (this_sig_lr (SIGFN_NORMAL) ># SIGASP_STOP) { draw_state = 2; } } [/SPOILER] Этих можешь ставить сколько угодно. Они будут работать в связке и каждый отдельно (то есть, можно завести сервис за один/два/три и только они будут работать, остальные будут держать входной 0) Всех дел :o [size="1"][color="Silver"]Добавлено через 4 минуты[/color][/size] Это[QUOTE]if (this_sig_lr (SIGFN_NORMAL) ># SIGASP_STOP) { draw_state = 2; }[/QUOTE]Потому что он линкованый у меня из-за скорости. Я пока их не трогаю, они у меня расставлены на маршруте, но сегодня скорость на SAP можно не устанавливать, делать один, а скорость задавать специальным маркером типа SPEED - новый тип только для ОР |
О, интересно! Что-то вроде было похожее у АРК с скоростями на SAP... Надо попробовать, потестировать вечером.
А, про ноды - если трафик идет "по ним", следующий сигнал с поездным значением отменяет это дело? |
Да, отменяет. На Ноды переводят RES и SAP, остальные возвращают.
|
Про спид-маркеры читал, даже по-английски немного понял.:) То есть можно после SAP-маневрового поставить это, чтоб заходить на станцию со ск. например, 40 км/ч при закрытом выходном? А МСТС что скажет, не пошлет меня лесом с такими маркерами?:)
[size="1"][color="Silver"]Добавлено через 7 минут[/color][/size] Тут еще дело в том, что делается скрипт ОР для версии сигналки, уже установленной на маршруте "Павловск". То есть в расстановке светофоров и маркеров все должно оставаться как есть, без изменений. Вот и пытаюсь что-то выжать из этого.:) |
Естественно, в МСТС всё нужно ставить. То есть, прописывать в конфиге на МСТС-овском языке. Никаких новых функций там нет. головы надо прописывать как INFO, SuHNT и тому подобное, с "левыми" конфигами и скриптами. А как же иначе?
[size="1"][color="Silver"]Добавлено через 2 минуты[/color][/size] Если на выходных у тебя есть "лишняя" голова, которую можно развернуть - отлично. Я на моделях Тимаса разворачивал не переставляя светофоры. У него там по 2 линка на главный путь и по 2 по неправильному с АЛСО, вот я по одной и "оттяпал" ))) |
У моих есть, но не у всех расставленных. И да, менял тоже, где были вторые головы.
_______________ Пробовал переводить сигналку в ручной режим по Ctrl+F9, но не понял, что же делать с этим... или это если сценарий "застрял"?:) |
Что это за Ctrl+F9? 0_0
[size="1"][color="Silver"]Добавлено через 2 минуты[/color][/size] Может, Alt+F9? |
Перепутал:o, вот так - Ctrl+M.
|
[URL="http://forum.zaborin.ru/topic.php?forum=7&topic=4&postid=1428607209#1428607209"]Manual Mode[/URL],что ли? Так оно "клинит" весь сценарий! Помни, что [B]ни одна[/B] стрелка в этом режиме не переводится автодиспетчером.
[size="1"][color="Silver"]Добавлено через 1 час 3 минуты[/color][/size] [IMG][url=http://itmages.ru/image/view/5117512/752d0fc3][img]http://storage3.static.itmages.ru/i/16/1101/h_1477961543_3299901_752d0fc3dd.png[/img][/url][/IMG] ;) [size="1"][color="Silver"]Добавлено через 49 минут[/color][/size] На скрине -- маневровый сигнал и "маркер РЦ". Стрелка остаётся "стерильной зоной". Когда состав на стрелке -- маневровый строго STOP, только так автодиспетчер может производить свои операции. |
Маркеры РЦ - обратнонаправленные головы у выходных, так? Стоп перед стрелкой - как только голова ПС дойдет до маневрового сигнала.
Вчера гонял свои маневровые светофоры SHUNTING, они оппозиты то видят, то не видят - не пойму, от чего зависимость... |
[QUOTE=КЕ;539433]Про спид-маркеры читал, даже по-английски немного понял.:) То есть можно после SAP-маневрового поставить это, чтоб заходить на станцию со ск. например, 40 км/ч при закрытом выходном[/QUOTE]
Не забывать заявлять специальный флажок в конфигурации [QUOTE]SignalAspect ( STOP_AND_PROCEED "No" SpeedKPH ( 60) signalflags (OR_NOSPEEDREDUCTION) ) SignalAspect ( RESTRICTING "No" SpeedKPH ( 20 ) signalflags (OR_NOSPEEDREDUCTION) ) [/QUOTE] ...чтобы трафики не притормаживали (до 5 миль/час) [QUOTE=КЕ;539433]Тут еще дело в том, что делается скрипт ОР для версии сигналки, уже установленной на маршруте "Павловск". То есть в расстановке светофоров и маркеров все должно оставаться как есть, без изменений. Вот и пытаюсь что-то выжать из этого.:)[/QUOTE] ИМХО... Маршрут вышел? Ариведерчи! Будут патчить - переставишь сигналы. Если кроме них *.tdb не будет изменён, сценарии пойдут, максимум - пересохранить сцену в редакторе без изменений. [size="1"][color="Silver"]Добавлено через 4 минуты[/color][/size] [QUOTE=КЕ;539480]Маркеры РЦ - обратнонаправленные головы у выходных, так? [/QUOTE] Эгэж :crazy: Но, можно и отдельным маркером делать - не принципиально. [QUOTE=КЕ;539480]Стоп перед стрелкой - как только голова ПС дойдет до маневрового сигнала [/QUOTE] Конечно! По [I][B]block_state()[/B][/I], как обычный NORMAL. [QUOTE=КЕ;539480]Вчера гонял свои маневровые светофоры SHUNTING, они оппозиты то видят, то не видят - не пойму, от чего зависимость...[/QUOTE] Не игрался с ними. Они не влияют на сервис, а посему неинтересны мне. С DISTANCE работаю на ПАБ и INFO на указателях, повторительных головках и т.д. [size="1"][color="Silver"]Добавлено через 1 час 22 минуты[/color][/size] [IMG][url=http://itmages.ru/image/view/5119838/a18df003][img]http://storage8.static.itmages.ru/i/16/1101/h_1478000417_3558211_a18df00398.png[/img][/url][/IMG] |
Тоже выходные с обратными головами? Малахитовка вроде...:)
|
Она самая :D
|
SignalNumClearAhead
Отказался от [B]-1[/B] на маневровых. Не очень хорошо получается. Он не учитывается, если поезд едет к нему. А, вот, после точки разворота на маневровом, светофор не "энэйблит" уже второй по ходу сигнал. [B]-1[/B], пока остаётся на светофорах прикрытия. Пока всё.
|
Ага, похоже вот и причина неработающих сигналов и у меня. Спасибо! Похожее было - не открывался Б-С маневрик с SNCA=-1 у точки разворота перед входной стрелкой.
|
Ну, отерываться-то он -- открывается. Только SAP по скрипту. Естественно, остаётся синим, но траф едет. Не айс, тем более, что ситуация вполне на RES и белый. Так что... входной надо расчитать, чтобы хватало на всё (у меня вообще предвходные этим делом заняты. Я их размножил и теперь имеются клоны на SNCA 2, 3, 4 и 5.)
|
А если поставить 2 подряд перед узлом, и один закопать?:D
|
Маневровых два?? Зачем?
|
Посмотреть, как будут работать...
|
А что, "ApproachControlSettings" только с NORMAL-ами работает?
|
не проверял
|
Да так и есть - нормалы срабатывают, а "шунты" - нет.
|
A DISTANCE?;)
|
Как и ШУНТИНГ - тоже не работают с этим. Надо к разрабам идтить челом бить...:)
|
Сходи-сходи! :D
Я никак не соберусь сходить и побить [S]по челу[/S] челом за функции [I]block_state ()[/I] и [I]next_sig_xx ()[/I] , которые на выходных работают по какому -то аЦкому алгоритму и совершенно не предсказуемы... Что-то мне подсказывает, что буду послан. Разработка заигрались "неосигналенными" маршрутами и [B]Timetable Mode[/B], все в данный момент скандалят, а автор всего, что касается организации движения просто непробиваем... |
Я б сходил бы, да в аглицкой мове не умён...:crazy:
А сколько там всего народу участвует в ORTS? --- [I]block_state () и next_sig_xx ()[/I] непонятно как срабатывают, когда выходишь со станции по удалению. Получается, что первый проходной какое-то время !enabled, но непонятно - как именно это время рассчитано в движке. Выходные, как я понял пока - даже если путь сервису не доходит до след. сигнала, и тот не виден на мониторе пути - скриптом его всё равно можно проверить, иначе бы маневровый на выходном по зависимости от [I]next_sig_lr(SIGFN_NORMAL) == 1;[/I] (state=1; у проходного по !enabled) не открывался бы. |
Уверен, что проблема с [I]enabled()[/I]? У меня другие выводы. Я "грешу" именно на функции [I]block_state ()[/I] и [I]next_sig_xx ()[/I]. Если ещё точнее, на то, как они взаимодействуют. Писать разрабу сигнализации никак не соберусь (с лета ещё). Сначала хочу проверить свои скрипты. Вдруг проблема там? Пока занят сценариями.
Насчет выходных, у меня, тогда, противоположная проблема: он должен давать RES на след RES, проходные по [I]!enabled()[/I] - RES. Если вывести путь сервиса за последнюю стрелку на главный ход, всё работает "на ура". Проблемы начинаются, когда манёвры идут внутри станции. Предварительно - блок высчитывается до первой стрелки за путём, она же даёт 0 по цепи. И всё! Арр... (ррр) - поездной аспект! Был вообще дикий случай: с одного пути в депо заходили один за другим 3 тепловоза "Из-под составов". Первый и третий уходили по маневровому аспекту, а средний - по поездному. |
Олег, ты на мониторе пути ничего странного не замечал? "Лишние" светофоры там показывались...:eek: На месте одного - два рядом.
Я сделал себе [URL="https://yadi.sk/i/bb4876-Ty9n7A"]вот такую текстуру[/URL] для него - с тонкими линиями вместо кружков, и сразу видно, что что-то здесь не так... [QUOTE=vicente;539891]Ну, о тестовой версии мог бы спросить! :confused: Я [URL="http://trainsim.ru/forum/showpost.php?p=537688&postcount=19"]пытался[/URL] :). А, вот, новости о версии 1.1 разочаровали. Я, если честно, хотел на неё "откатиться".[/QUOTE] Что наделали? |
[QUOTE=КЕ;539895]Что наделали?[/QUOTE]
Ну, вот, об этом самом и хотел сказать. Глюки внешних функций влияют на сигналы. Я когда-то писал, что на 0.9 до какого-то момента работало по-другому. На 1.1 пришлось переписывать логику, но, где-то я упустил момент начала этих глюков. Всё невозможно сразу проверить. Блокировки работают, трафики гоняют, на дисплее диспетчера не всегда отчетливо видно что именно там открывается и кому. Потом заметил в одном месте, потом в другом... и пошло-поехало... [QUOTE=КЕ;539895]Олег, ты на мониторе пути ничего странного не замечал? "Лишние" светофоры там показывались...:eek: На месте одного - два рядом... что-то здесь не так... [/QUOTE] Вижу давно это на Ctrl+Alt+F11. "Списывал" на "многоголовость" сигнальных точек, потому как проверил, что все они работают по SNCA четко. В поездном режиме вообще никаких проблем нет. Геморр начинается когда есть точки разворота... возможно и точки ожидания влияют перед окончанием трэка |
Текущее время: 06:22. Часовой пояс GMT +4. |
Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
© 2001-2019, Администраторы и разработчики Клуба Trainsim