Страница 1 из 1

Организация последовательности правил. Кто проехал маркер?

СообщениеДобавлено: 04.02.2011, 13:03
NickLon
Проблема:
Маневровый на станции во время маневра наткнулся на маркер с командами, предназначенными поездному составу. Как это обойти с помощью правил? Команды добавляются ScheduleAtTrackMark. Поясню, как она работает, если кто не знает. Настраивается правило, если на определенный маркер наедет ПС в определенном направлении (по стрелке или против), добавляется набор команд с заменой текущей команды или с добавлением в "хвост" списка команд. Логичное решение - поставить это правило в подчинение правилу, которое будет проверять на тип ПС, который проехал по маркеру. Но два события на одном и том же маркере в один момент времени произойти не могут: поезд наехал на маркер, сработала проверка на тип ПС (маневровый или поездной), а дальше проверка в ScheduleAtTrackMark уже не произойдет, точнее, произойдет, но вернет ложь, так как к моменту проверки подчиненного правила событие уже произошло. Тогда другой вариант, логично предположить, должен быть. Прошла проверка по главному правилу и если истина - вставлять команды. Есть и такое правило. Но там обязательно нужно указать в качестве аргумента машиниста, которому эти команды у будут "вручены". Но во-первых, там его можно задать только одного. И если машинист на маневровой работе по станции может быть и один, то поездных может быть сколько угодно.
Как быть, уважаемые гуру!?