exponenta event banner

Настройка поведения системы с дискретными событиями с помощью событий и действий с событиями

Поведение системы с дискретными событиями можно настроить путем определения событий и действий с событиями.

Вы можете:

  • Планирование событий

  • Определение действий события в ответ на события

  • Инициализация событий

  • Отменить события

Типы событий и действия с ними

Типы событий

Система с дискретными событиями может иметь эти типы событий и их цели.

Тип событияЦельЦель
eventAcquireResourceПредприятиеРазрешить сущности получать один или несколько ресурсов.
eventDestroyПредприятиеУничтожить существующую сущность в хранилище.
eventForwardПредприятиеПереместите объект из текущего хранилища в другое хранилище или выходной порт.
eventIterateХранениеИтерация и обработка каждого объекта в хранилище.
eventReleaseResourceПредприятиеРазрешить сущности освобождать один или несколько ресурсов.
eventReleaseAllResourcesПредприятиеРазрешить сущности освобождать все ранее полученные ресурсы.
eventTestEntryХранениеСоздайте событие, указывающее, что политика приемки хранилища изменена и хранилище повторно проверяет поступающие объекты.
eventTimerПредприятиеСоздание события таймера.
eventGenerateХранениеСоздайте сущность внутри хранилища.
  • Пересылка событий

    Если событие forward завершается неуспешно из-за блокировки, событие forward остается активным. Когда пространство становится доступным, система дискретных событий переносит прямое событие для немедленного выполнения.

  • Маркирование событий

    Можно запланировать несколько событий одного типа для одного и того же актера. При использовании нескольких событий одного типа используйте теги для различения событий. Например, объект может иметь несколько таймеров с различными тегами. По истечении одного таймера можно использовать tag аргумент timer способ дифференцирования таймера. Дополнительные сведения см. в разделе Блок хранилища настраиваемых сущностей с несколькими событиями таймера.

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

Действия с событиями

Когда происходит событие, система дискретных событий реагирует на него, вызывая соответствующее действие. Реализуйте эти действия в качестве методов object™ системы. В этой таблице перечислены каждый метод действия и инициирующее событие.

Действие событияИнициирующее событиеЦель
blockedeventForwardВызывается, если при выполнении события пересылки объект не может выйти из-за блокировки из целевого хранилища.
destroyeventDestroyВызывается до того, как объект будет уничтожен и удален из хранилища.
entryeventForwardВызывается по записи сущности.
exiteventForwardВызывается при выходе из сущности. При пересылке объекта из хранилища 1 к хранению 2, действие выхода хранилища 1 а затем входное действие хранилища 2 называются.
generateeventGenerateВызывается после создания новой сущности внутри элемента хранения.
iterateeventIterateПосле выполнения события Iterate этот метод вызывается для каждого объекта от передней до задней части хранилища с возможностью досрочного прекращения. Если к объектам необходимо прибегнуть из-за изменения значения ключа, обращение происходит после завершения всей итерации.
resourceAcquiredeventAcquireResourceВызывается после успешного получения ресурсов. Получение ресурсов успешно только в том случае, если получены все указанные ресурсы.
resourceReleasedeventReleaseResourceВызывается после выпуска ресурса.
testEntryeventTestEntryВызывается после события записи теста.
timereventTimerВызывается при выполнении события таймера объекта.

Инициализация событий

Эти методы используются для инициализации пустых массивов и событий системы с дискретными событиями.

Тип событияЦель
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Место назначения

Примечание

Если определено событие, которое еще не выполнено, и второе событие с тем же типом и идентификатором, первое событие заменяется вторым.

См. также

| | | | | | | |

Связанные темы