Класс: matlab.DiscreteEventSystem
Пакет: mATLAB
Создайте событие таймера сущности
event=eventTimer(tag,delay)
создает событие, чтобы задержать сущность сроком на время. Можно затем запланировать таймер путем возврата его как выходного аргумента при реализации метода действия события, такого как event
=eventTimer(tag
,delay
)entry
.
Задайте событие таймера.
function [entity,event] = entry(obj,storage,entity,src) % Define a timer event % - The event is regarding the entity in current event action context % - The event has a custom tag 'timeout' % - The event will be executed 3.0 seconds later event = obj.eventTimer('timeout', 3.0); end
Этот пример использует пользовательский блок системы хранения сущности с одним входом, двумя выходными параметрами и запоминающим элементом. Сущность типа Part
с TimeOut
атрибут вводит устройство хранения данных пользовательского блока, который будет обработан. TimeOut
определяет максимальное позволенное время вычислений частей. Когда часть вводит устройство хранения данных, два события таймера активируются. Один таймер отслеживает время вычислений части в духовке. Когда этот таймер истекает, сущность передается выходу 1
. Другой таймер действует как отказоустойчивое и дорожки, если максимальное позволенное время вычислений превышено или нет. Когда этот таймер истекает, процесс отключен, и сущность передается выходу 2
.
Для получения дополнительной информации смотрите Пользовательский Блок системы хранения Сущности с Несколькими Событиями Таймера.
classdef CustomEntityStorageBlockTimer < matlab.DiscreteEventSystem % A custom entity storage block with one input port, two output ports, and one storage. % Nontunable properties properties (Nontunable) % Capacity Capacity = 1; end methods (Access=protected) function num = getNumInputsImpl(~) num = 1; end function num = getNumOutputsImpl(~) num = 2; end function entityTypes = getEntityTypesImpl(obj) entityTypes = obj.entityType('Part'); end function [inputTypes,outputTypes] = getEntityPortsImpl(obj) inputTypes = {'Part'}; outputTypes = {'Part' 'Part'}; end function [storageSpecs, I, O] = getEntityStorageImpl(obj) storageSpecs = obj.queueFIFO('Part', obj.Capacity); I = 1; O = [1 1]; end end methods function [entity,event] = PartEntry(obj,storage,entity,source) % Specify event actions when entity enters storage. ProcessingTime=randi([1 15]); event1 = obj.eventTimer('TimeOut', entity.data.TimeOut); event2 = obj.eventTimer('ProcessComplete', ProcessingTime); event = [event1 event2]; end function [entity, event] = timer(obj,storage,entity,tag) % Specify event actions for when scheduled timer completes. event = obj.initEventArray; switch tag case 'ProcessComplete' event = obj.eventForward('output', 1, 0); case 'TimeOut' event = obj.eventForward('output', 2, 0); end end end end
cancelDestroy
| cancelForward
| cancelGenerate
| cancelIterate
| cancelTimer
| eventDestroy
| eventForward
| eventGenerate
| eventIterate