Car Enter

Принимает агента-машину и пытается поместить его в качестве автомобиля в указанное место дорожной сети. Автомобиль можно поместить на указанную дорогу или парковку (это задается параметром Появляется).

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

Если в качестве места появления автомобиля указана дорога, в дорожную сеть он сможет попасть, только если на полосе впереди будет достаточно места. Чем больше скорость автомобиля, тем длиннее нужен путь для добавления в дорожную сеть. Автомобили, которые не могут попасть в дорожную сеть мгновенно, помещаютсяв очередь, находящуюся внутри блока CarEnter, откуда позже изымаются, когда на указанной полосе появляется достаточно места.

Если в качестве места появления автомобилей указана парковка, то они будут появляться в свободных парковочных местах указанной парковки и ждать либо пока не покинут дорожную сеть, либо пока не начнут движение, поступив в блок CarMoveTo. Если все места заняты, будет показано сообщение об ошибке.

Блок CarEnter используется вместе с блоком CarExit для моделирования части движения автомобиля на более высоком уровне абстракции, а не на детальном, физическом уровне.  

Демо модель: CarEnter and CarExit

Параметры

Появляется
В этом пункте вы указываете, будут ли добавляемые этим блоком в дорожную сеть автомобили появляться на дороге или на парковке.
на дороге - автомобили будут расположены в начале дороги, указанной ниже в параметре Дорога.
на парковке - автомобили будут расположены на случайно выбранном парковочном месте на парковке, указанной ниже в параметре Парковка.
Получить значение: appears
Установить новое значение во время выполнения: set_appears(новое значение
Допустимые значения: CarEnter.ON_ROADCarEnter.IN_PARKING_LOT
Дорога [динамический]
[Параметр виден, если выбрана опция Появляется на: дороге ] Дорога, на которой будет расположен автомобиль после начала движения. Автомобиль помещается на полосу дороги, заданную в параметре Помещается на полосу (основного движения или встречного движения). Полоса либо выбирается случайным образом (если выбрана опция Случайная полоса), либо явно задается пользователем в параметре Номер полосы.
Автомобиль не сразу появляется в указанной точке. Автомобиль появляется и начинает движение только когда:
- в указанной точке дороги достаточно места, чтобы избежать столкновения, и
- Блок CarMoveTo отправляет автомобиль в другое место дорожной сети.
Тип значения: Road
Локальная переменная:  car - автомобиль, добавляемый в дорожную сеть
Помещается на полосу
[Параметр виден, если выбрана опция Появляется на: дороге ] Определяет, будет ли автомобиль помещен на полосу основного движения или встречного движения дороги. Если у дороги нет указанного направления (т.е. это дорога с односторонним движением), вы увидите сообщение об ошибке.
Получить значение: laneDirection
Изменить значение: set_laneDirection(новое значение)
Допустимые значения: CarEnter.FORWARD_LANECarEnter.BACKWARD_LANE
Случайная полоса
[Параметр виден, если выбрана опция Появляется на: дороге] Указывает, будет ли автомобиль помещен на случайно выбранную полосу дороги. Если эта опция не выбрана, то автомобиль будет помещен  на полосу с номером, указанном в параметре Номер полосы.
Синтаксис: boolean isRandomLane
Изменить значение: set_isRandomLane(новое значение)
Номер полосы [динамический]
[Параметр виден, если не выбрана опция Случайная полоса] Здесь задается номер полосы дороги, на которую будет помещен автомобиль (нумерация полос начинается с нуля). Номера полос начинаются с внешней полосы. Если у выбранной Дороги нет полосы с указанным здесь номером, то вы увидите сообщение об ошибке.
Тип значения: int
Локальная переменная:  car - автомобиль, добавляемый в дорожную сеть
Парковка [динамический]
[Параметр виден, если выбрана опция Появляется на: парковке] Парковка, на которой, после поступления в этот блок, сразу появляется автомобиль. Если на парковке нет свободных мест, вы увидите ошибку. Автомобиль не покинет парковочное место, пока блок CarMoveTo не направит его в другое место дорожной сети.
Тип значения: ParkingLot
Локальная переменная:  car - автомобиль, добавляемый в дорожную сеть
Автомобиль
Длина [динамический]
Длина автомобиля, должна быть > 0.
Тип значения: 
double
Локальная переменная:  car - автомобиль, добавляемый в дорожную сеть
Начальная скорость [динамический]
Начальная скорость автомобиля. Начальная скорость должна быть >= 0. Если начальная скорость меньше предпочитаемой скорости, автомобиль начнет ускоряться до предпочитаемой скорости, как только блок CarMoveTo направит его в другое место дорожной сети.
Тип значения: double
Локальная переменная:  car - автомобиль, добавляемый в дорожную сеть
Предпочитаемая скорость [динамический]
Предпочитаемая скорость автомобиля. Предпочитаемая скорость должна быть >= 0. Если предпочитаемая скорость и начальная скорость равны 0, автомобиль не начнет движение, даже если блок CarMoveTo направит его в другое место дорожной сети. Автомобиль может начать движение, только если при вызове функции setPreferredSpeed(speed) задана положительная начальная скорость.
Автомобиль всегда пытается ехать со скоростью, равной предпочитаемой. Следующие факторы не позволяют автомобилю двигаться с предпочитаемой скоростью:
- Отсутствие возможности немедленно ускориться или замедлиться до предпочитаемой скорости
- Автомобиль впереди, движущийся со скоростью меньшей, чем предпочитаемая скорость этого автомобиля
- Стоп-линия с красным сигналом светофора впереди
- Близость к парковке или автобусной остановке, у которой автомобиль должен замедлиться, чтобы припарковаться или остановиться
- Скоростное ограничение
Тип значения: double
Локальная переменная:
 car - автомобиль, добавляемый в дорожную сеть
Макс. ускорение [динамический]
Максимальное ускорение автомобиля. Максимальное ускорение должно быть > 0.
Тип значения: double
Локальная переменная:  car - автомобиль, добавляемый в дорожную сеть
Макс. торможение [динамический]
Максимальное торможение автомобиля. Максимальное торможение должно быть > 0. Автомобиль замедляется с максимальным торможением только в экстремальных случаях. В остальных случаях используется определенная доля максимального торможения.
Тип значения: double
Локальная переменная:  car - автомобиль, добавляемый в дорожную сеть
Действия
При выходе [код]
Здесь вы можете задать код, который будет выполняться, когда автомобиль покинет блок.
Локальная переменная:  car - автомобиль, добавляемый в дорожную сеть

Функции

long count() - Возвращает количество автомобилей, добавленных в дорожную сеть данным блоком CarEnter.

Порты

in
Входной порт.
out
Выходной порт.