eventTimer

Класс: 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
Введенный в R2016a