Блок RailSettings предоставляет низкоуровневый интерфейс для управления железнодорожным узлом, основанный на функциях Java и механизме обратных вызовов. Это обеспечивает совместимость ранее разработанных моделей с новой версией библиотеки, но вы можете использовать механизм обратных вызовов и для других целей, например, для сбора статистики по движению вагона по всему ж/д узлу.
Обратите внимание, что объект RailSettings не будет автоматически отслеживать пересечение нарисованных вами путей (т.e. мест, в которых пути пересекают друг друга без наличия стрелки), и предотвращать столкновения поездов в таких местах придется вам самим. Столкновения же поездов на стрелках будут определяться автоматически, и в таких случаях будут показываться сообщения об ошибках.
- Тип вагона
-
Тип вагонов. Если известно, что все вагоны будут являться объектами какого-то одного класса вагона, то имеет смысл указать этот класс здесь, чтобы все его поля и методы были напрямую доступны в действиях этого объекта RailSettings.
[Обратите внимание, что в описаниях ниже RC будет означать тип, указанный пользователем в поле Тип вагона. Если пользователь не изменит введенное там по умолчанию значение, то RC будет означать RailCar.]Далее: RC -
Тип вагона. Если вы используете какой-то свой тип для задания вагонов, то введите здесь имя агента этого типа.
Локальная переменная: int n — номер вагона в поезде, начиная с нуля
- При въезде на станцию
-
Здесь вы можете задать код, который будет выполняться каждый раз, когда вагон будет добавляться на железнодорожный узел.
RC car — вагон
RailwayNetwork railYard — сеть ж/д разметки, задающая ж/д узел
RailwayTrack track — путь, по которому вагон въезжает на ж/д узел - При выезде со станции
-
Здесь вы можете задать код, который будет выполняться каждый раз, когда вагон будет покидать железнодорожный узел.
RC car — вагон
RailwayNetwork railYard — сеть ж/д разметки, задающая ж/д узел
RailwayTrack track — путь, по которому вагон покидает ж/д узел - Вызывать onAtSwitch только для первого вагона
-
Если опция выбрана, то код Действия при приближении к стрелке будет выполняться только для первого вагона состава (или для движущегося отдельно вагона), иначе он будет выполняться для каждого вагона, приближающегося к стрелке (такое поведение принято по умолчанию).
Синтаксис: boolean callAtSwitchForFirstCarOnly
Значение по умолчанию: false - При приближении к стрелке
-
Здесь вы можете задать код, который будет выполняться каждый раз, когда вагон приблизится к стрелке. В этом коде все еще можно переключать состояние стрелки.
RC car — вагон
RailwayNetwork railYard — сеть ж/д разметки, задающая ж/д узел
RailwayTrack track — путь, по которому вагон приближается к стрелке
RailwaySwitch sw — стрелка - При въезде на путь
-
Здесь вы можете задать код, который будет выполняться каждый раз, когда вагон заедет на новый путь (и уже зарегистрирован на нем).
RC car — вагон
RailwayNetwork railYard — сеть ж/д разметки, задающая ж/д узел
RailwayTrack track — путь, на который заехал вагон
RailwaySwitch sw — стрелка, через которую вагон въезжает на путь - При выезде с пути
-
Здесь вы можете задать код, который будет выполняться каждый раз, когда вагон полностью покинет путь.
RC car — вагон
RailwayNetwork railYard — сеть ж/д разметки, задающая ж/д узел
RailwayTrack track — путь, который покинул вагон
RailwaySwitch sw — стрелка, через которую вагон покидает путь - При столкновении вагонов
-
Здесь вы можете задать код, который будет выполняться каждый раз, когда один вагон столкнется с другим вагоном. Код не вызывается для того вагона, в который врезался другой вагон.
RC car — вагон
boolean frontside — true, если с другим вагоном столкнулась передняя сторона вагона
RC other — другой вагон
RailwayNetwork railYard — сеть ж/д разметки, задающая ж/д узел
RailwayTrack track — путь, на котором это произошло - При достижении особой точки
-
Здесь вы можете задать код, который будет выполняться каждый раз, когда вагон достигнет особой точки, заданной методом callbackAt() для вагона RailCar.
RC car — вагон
RailwayTrack track — путь
RailwayNetwork railYard — сеть ж/д разметки, задающая ж/д узел
double offset — точка на пути
Object info — объект с информацией, который был передан в качестве аргумента метода callbackAt() - При щелчке по вагону
-
Здесь вы можете задать код, который будет выполняться каждый раз, когда пользователь будет щелкать мышью по вагону.
RC car — вагон
- Статистика
-
Функция Описание int getNCars() Возвращает количество вагонов, находящихся на этом железнодорожном узле. List<Agent> getCars() Возвращает вагоны, находящиеся на этом железнодорожном узле. - Обращение к вагонам и стрелкам
-
Функция Описание Agent getCar(int index) Возвращает вагон, находящийся на этом железнодорожном узле и имеющий заданный индекс index. Если такого вагона нет, то возвращает null. Switch[] getRouteSwitches(Track[] route) Возвращает все стрелки на указанном маршруте. - Маршрут
-
Функция Описание RailwayTrack[] getShortestPath(RailwayTrack sourceTrack, RailwayTrack targetTrack, boolean forwardOnTrack,double targetOffset, RailwayTrack[] avoidTracks) Возвращает кратчайший маршрут от sourceTrack до targetTrack (или null, если путь не найден).
sourceTrack — начальный путь
targetTrack — путь назначения
forwardOnTrack — если true, то направление поезда на пути — вперед
targetOffset — смещение по пути направления
avoidTracks — список путей, которых не должно быть в маршрутеRailwayTrack[] getShortestUnblockedPath(RailwayTrack sourceTrack, RailwayTrack targetTrack,boolean forwardOnTrack, double targetOffset, RailwayTrack[] avoidTracks) Возвращает кратчайший маршрут от sourceTrack до targetTrack (или null, если путь не найден) с учетом заблокированных путей.
sourceTrack — начальный путь
targetTrack — путь назначения
forwardOnTrack — если true, то направление поезда на пути — вперед
targetOffset — смещение по пути направления
avoidTracks — список путей, которых не должно быть в маршрутеRailwayTrack[] getShortestAvailablePath( Agent train,RailwayTrack sourceTrack, RailwayTrack targetTrack, boolean forwardOnTrack,double targetOffset, RailwayTrack[] avoidTracks) Возвращает кратчайший маршрут от sourceTrack до targetTrack (или null, если путь не найден) с учетом заблокированных и зарезервированных путей.
train — поезд, для которого необходимо найти кратчайший маршрут
sourceTrack — начальный путь
targetTrack — путь направления
forwardOnTrack — если true, то направление поезда на пути — вперед
targetOffset — смещение по пути направления
avoidTracks — список путей, которых не должно быть в маршруте - Добавление вагонов и поездов
-
Функция Описание void addCar(RC car, RailwayTrack track, double frontoffset, boolean orientation) Устарела, начиная с версии AnyLogic 6.5.1. Создавайте поезда и вагоны с помощью блока TrainSourceДобавляет (ранее созданный) вагон в ж/д модель и помещает его на заданный путь (в заданную точку, с заданным направлением). Обе стороны вагона должны находиться на одном и том же пути. Если вагон пересекает другой вагон, находящийся на пути, то выдается сообщение об ошибке.
car — добавляемый вагон
track — путь, на который помещается вагон
frontoffset — смещение переднего торца вагона от начала пути
orientation — если true, то направление вагона (от конца к началу) будет соответствовать направлению пути (от начала к концу)void addTrain(int n, RailwayTrack track, double frontoffset, boolean orientation) Устарела, начиная с версии AnyLogic 6.5.1. Создавайте поезда и вагоны с помощью блока TrainSourceСоздает поезд с заданным количеством вагонов и размещает его на заданной точке заданного пути с заданным направлением вагонов. Для создания вагонов используется настраиваемая функция newCar(). Если поезд пересекается с другими вагонами, которые уже размещены на заданном пути, то выдается сообщение об ошибке.
n — количество вагонов в поезде
track — путь, на который помещается поезд
frontoffset — смещение переднего торца первого вагона от начала пути
orientation — если true, то направление поезда (от хвоста к голове) будет соответствовать направлению пути (от начала к концу)
-
Как мы можем улучшить эту статью?
-