Можно настроить поведение дискретной системы событий путем определения действий события и событий.
Вы можете:
Запланируйте события
Действия события Define в ответ на события
Инициализируйте события
Отмените события
Дискретная система событий может иметь эти типы событий и их цели.
Тип события | Цель | Цель |
---|---|---|
eventAcquireResource | Сущность | Позвольте сущности получать один или несколько ресурсов. |
eventDestroy | Сущность | Уничтожьте существующую сущность в устройстве хранения данных. |
eventForward | Сущность | Переместите сущность от ее текущего устройства хранения данных до другого порта хранения или выходного порта. |
eventIterate | Устройство хранения данных | Выполните итерации и процесс каждая сущность в устройстве хранения данных. |
eventReleaseResource | Сущность | Позвольте сущности высвобождать одни или несколько средств. |
eventReleaseAllResources | Сущность | Позвольте сущности высвобождать все ранее полученные средства. |
eventTestEntry | Устройство хранения данных | Создайте событие, чтобы указать, что политика приемки средств хранения информации изменяется, и устройство хранения данных повторно тестирует прибывающие сущности. |
eventTimer | Сущность | Создайте событие таймера. |
eventGenerate | Устройство хранения данных | Создайте сущность в устройстве хранения данных. |
Передайте события
Если прямое событие перестало работать из-за блокирования, прямое событие остается активным. Когда пробел становится доступным, дискретная система событий переносит прямое событие для мгновенного выполнения.
Маркировка событий
Можно запланировать несколько событий того же типа для того же агента. При использовании нескольких событий того же типа используйте теги, чтобы различать события. Например, сущность может иметь несколько таймеров с отличными тегами. Когда один таймер истекает, можно использовать tag
аргумент timer
метод, чтобы дифференцироваться, какой таймер это. Для получения дополнительной информации смотрите Пользовательский Блок системы хранения Сущности с Несколькими Событиями Таймера.
Если вы планируете два события с тем же самым, наклеивают того же агента, более позднее событие заменяет первое событие. Если вы планируете два события с различными тегами, дискретная система событий вызывает их отдельно.
Когда событие имеет место, дискретная система событий отвечает на него путем вызова соответствующего действия. Реализуйте эти действия как Систему object™ методы. Эта таблица приводит каждый метод действия и инициирующее событие.
Действие события | Инициирующее событие | Цель |
---|---|---|
blocked | eventForward | Названный, если после выполнения прямого события сущность не может уехать из-за блокирования от целевой системы хранения. |
destroy | eventDestroy | Названный, прежде чем сущность уничтожена и удалена из устройства хранения данных. |
entry | eventForward | Призванный запись сущности. |
exit | eventForward | Призванный выход сущности. Когда сущность передается от устройства хранения данных 1 к устройству хранения данных 2 , выходное действие устройства хранения данных 1 и затем действие записи устройства хранения данных 2 называются. |
generate | eventGenerate | Названный после того, как новая сущность создается в запоминающем элементе. |
iterate | eventIterate | После выполнения события Iterate этот метод вызывается для каждой сущности от передней стороны до задней части устройства хранения данных с опцией раннего завершения. Если к сущностям нужно обратиться из-за изменений значения ключа, обращение происходит после того, как целая итерация завершена. |
resourceAcquired | eventAcquireResource | Названный после успешного приобретения ресурса. Приобретение ресурса успешно, только если все заданные ресурсы получены. |
resourceReleased | eventReleaseResource | Названный после релиза ресурса. |
testEntry | eventTestEntry | Названный после тестового события записи. |
timer | eventTimer | Призванный выполнение события таймера сущности. |
Используйте эти методы, чтобы инициализировать пустые массивы и события дискретной системы событий.
Тип события | Цель |
---|---|
initEventArray | Инициализируйте массив события. |
initResourceArray | Инициализируйте массив спецификации ресурса. |
setupEvents | Инициализируйте события генерации сущности. |
Используйте эти методы, чтобы отменить ранее запланированные события дискретной системы событий.
Тип события | Цель |
---|---|
cancelAcquireResource | Отмена ранее запланировала событие приобретения ресурса |
cancelDestroy | Отмена ранее запланировала сущность, уничтожают событие. |
cancelForward | Сущность отмены передает событие. |
cancelGenerate | Отмена ранее запланировала событие генерации сущности. |
cancelIterate | Отмена, ранее запланированная, выполняет итерации события. |
cancelTimer | Отмена ранее запланировала событие таймера. |
Существует два отличных идентификатора для событий, обеспеченных matlab.DiscreteEventSystem
класс.
Тег — использует tag
как входной параметр для метода.
event1 = obj.eventTimer('mytimer1', 2); event2 = obj.eventTimer('mytimer2', 5);
Здесь, mytimer1
и mytimer2
используются в качестве тегов, чтобы относиться к этим двум событиям таймера.
Место назначения — Использование место назначения, чтобы идентифицировать передает события.
event1 = obj.eventForward('storage', 2, 0.8); event2 = obj.eventForward('output', 1, 2);
Здесь, storage
и output
используются, чтобы различать два, передают события.
События не различимы, когда их идентификаторы являются тем же самым. Эта таблица показывает, как идентифицировать событие, когда несколько событий того же типа действуют на ту же цель.
Тип события | Идентификация |
---|---|
eventAcquireResource | Тег |
eventGenerate | Тег |
eventIterate | Тег |
eventReleaseResource | Тег |
eventReleaseAllResources | Тег |
eventTimer | Тег |
eventForward | Место назначения |
Примечание
Если вы задаете событие, которое должно все же быть выполнено и второе событие с тем же типом и идентификатором, первое событие заменяется вторым.
blocked
| destroy
| entry
| eventForward
| eventGenerate
| generate
| matlab.DiscreteEventSystem
| matlab.System
| setupEvents