PedCmdService


Команда для пешехода "пройти заданный сервис". Объект задает один физический сервис (кассу, турникет). Он обрабатывает одного пешехода мгновенно. Вход в объект заблокирован, пока сервис занят, и открывается, когда сервис становится свободен.

Используйте объект PedCmdQueue перед этим объектом. Объект PedCmdService следует использовать в том случае, если Ваша модель содержит всего один сервис, или если комбинация сервисов и очередей слишком сложна, чтобы ее можно было промоделировать с помощью объекта PedServices.

Демо модель: Pedestrian Services

Параметры класса

Класс пешехода
Класс пешехода, проходящего сквозь объект. Он должен быть унаследован от класса Ped. Вы используете собственный класс для создания пешеходов, то рекомендуем Вам указать его здесь, чтобы иметь возможность явно обращаться к собственным полям этого класса в динамических параметрах. В противном случае собственные поля класса будут недоступны.
Синтаксис T extends Ped
Значение по умолчанию Ped

Порты

Port in
Входной порт.
Port out
Выходной порт, через который пешеходы покидают объект в случае успешного завершения команды.
Port ccl
Выходной порт, через который пешеходы покидают объект в случае события "отмены" (возникшего в результате вызова метода cancel или метода cancelAll).

Параметры

Тип
Тип сервиса. Используйте Протяженный сервис, если Вам нужно, чтобы пешеходы двигались от начальной точки линии и затем продвигается к ее конечной точке. Используйте Точечный сервис, если пешеходы должны просто провести определенное время в какой-то точке сервиса.
Синтаксис int type
Значение по умолчанию: Точечный
Фигура (линия) 
Фигура (линия), отображающая сервис.
Синтаксис ShapeLine serviceShape
Время задержки [динамический]
Время обслуживания (в единицах модельного времени). Время, которое пешеход проводит в начальной точке протяженного сервиса, или в любой точке точечного сервиса.
Синтаксис double delay
Локальная переменная T ped - пешеход.
Значение по умолчанию: uniform(2.0*second(), 3.0*second())
Время восстановления [динамический]
Время восстановления сервиса после обслуживания пешехода, в течение которого сервис закрыт. Задается в секундах.
Синтаксис double recoveryTime
Локальная переменная T ped - пешеход.
Значение по умолчанию: 0.0
Ждать, пока пешеход покинет сервис
[Виден, если Тип сервиса Протяженный] Если опция выбрана (true), то сервис не начнет обслуживание нового пешехода, пока обслуживаемый в данный момент пешеход не дойдет до конечной точки линии или ломаной этого протяженного сервиса.
В качестве примера сервиса с таким дополнительным требованием можно привести контроль безопасности (кабинки проверки документов) в аэропорту, а в качестве сервиса без такого ограничения - турникеты.
Синтаксис boolean waitForPedToExit
Значение по умолчанию false
Действие при входе [динамический]
Код, выполняемый, когда пешеход поступает в объект.
Синтаксис void onEnter
Локальная переменная T ped - пешеход.
Действие при начале обслуживания [динамический]
Код, выполняемый, когда начинается обслуживание пешехода.
Синтаксис void onBeginService
Локальная переменная T ped - пешеход.
Действие при окончании обслуживания [динамический]
Код, выполняемый, когда заканчивается обслуживание пешехода, и он готов покинуть сервис.
Синтаксис void onEndService
Локальная переменная T ped - пешеход.
Действие при выходе [динамический]
Код, выполняемый, когда пешеход покидает объект через порт out.
Синтаксис void onExit
Локальная переменная  T ped - пешеход.
Действие при отмене [динамический]
Код, выполняемый, когда пешеход покидает объект через порт ccl.
Синтаксис void onCancel
Локальная переменная  T ped - пешеход.
Действие при освобождении [динамический]
Код, выполняемый, когда сервис становится свободным.
Синтаксис void onBecomeIdle
Прямое направление [динамический]
Если true, то пешеход проходит сервис в прямом направлении, если false – то в обратном.
Синтаксис boolean straightDirection
Локальная переменная  T ped - пешеход.
Значение по умолчанию: true
Точность достижения сервиса, в метрах [динамический]
Задает расстояние в метрах, на которое пешеход должен приблизиться к сервису, чтобы началось его обслуживание.
В случае линии или ломаной подразумевается расстояние до любой ее точки.
Синтаксис double serviceReachTolerance
Локальная переменная: T ped - пешеход
Значение по умолчанию 0.1

Функции

void take(T ped) - Передает заданного пешехода в сервис.

void cancel(T ped) - Заставляет пешехода немедленно покинуть объект через порт ccl. Для пешехода выполняется код параметра "Действие при отмене".

void cancelAll() - Заставляет всех пешеходов немедленно покинуть объект через порт ccl. Для каждого пешехода выполняется код параметра "Действие при отмене".

int size() - Возвращает количество пешеходов, находящихся внутри.

void ping(T ped) - Если вход в объект не заблокирован, то вызывает выполнение кода Действия при освобождении.

boolean isIdle(T ped) - Возвращает true, если в текущий момент времени сервис свободен и может обслужить пешехода.