eventIterate

Класс: matlab.DiscreteEventSystem
Пакет: mATLAB

Создайте сущность, выполняют итерации события

Синтаксис

event=eventIterate(storageID,tag,priority)

Описание

event=eventIterate(storageID,tag,priority) создает событие к неоднократно сущностям процесса запоминающего элемента. Можно затем запланировать это событие путем возврата его как выходного аргумента при реализации метода действия события, такого как exit.

Входные параметры

развернуть все

Индекс запоминающего элемента. Сущности в этом запоминающем элементе будут выполнены с помощью итераций.

Пользовательский тег этой сущности выполняет итерации события.

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

Выходные аргументы

развернуть все

Событие, что сущности процессов определенного запоминающего элемента.

Примеры

Выполните итерации сущностей запоминающего элемента

Задайте событие, чтобы выполнить итерации сущностей запоминающего элемента..

function event = exit(obj,storage,entity,dst)
    % Define an event to iterate entities of a storage element
    % - The event is regarding to storage element 2
    % - The event has a custom tag 'search'
    % - The event shall be executed at current simulation clock time
    % - The event has a priority of 10 (a smaller numeric value
    %   indicates a higher event priority) 
    event = obj.eventIterate(2, 'search', 10);
end

Пользовательский блок системы хранения сущности с выполняет итерации события

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

Для получения дополнительной информации смотрите, Создают Пользовательский Блок системы хранения Сущности с Событием Итерации.

classdef CustomEntityStorageBlockIteration < matlab.DiscreteEventSystem
    
    % A custom entity storage block with one input port and one storage element. 
    
    % Nontunable properties 
    properties (Nontunable)
        % Capacity
        Capacity = 5;
    end
    % Create the storage element with one input and one storage.
    methods (Access=protected)

        function num = getNumInputsImpl(obj)
            num = 1;
        end
        
        function num = getNumOutputsImpl(obj)
            num = 0;
        end
        
        function entityTypes = getEntityTypesImpl(obj)
            entityType1 = obj.entityType('Wheel');
            entityTypes = entityType1;
        end
        
        function [inputTypes,outputTypes] = getEntityPortsImpl(obj)
            inputTypes = {'Wheel'};
            outputTypes={};
            
        end
        
        function [storageSpecs, I, O] = getEntityStorageImpl(obj)
            storageSpecs = obj.queuePriority('Wheel',obj.Capacity, 'Diameter','ascending');
            I = 1;
            O = [];
            
        end
        
    end
    % Entity entry event action
    methods 

        function [entity, event] = WheelEntry(obj,storage,entity, source)
            % Entity entry invokes an iterate event.      
            event = obj.eventIterate(1, '');
        end

        % The itarate event action
        function [entity,event,next] = WheelIterate(obj,storage,entity,tag,cur)
            % Display wheel id, position in the storage, and diameter.
            coder.extrinsic('fprintf');
            fprintf('Wheel id %d, Current position %d, Diameter %d\n', ...
                entity.sys.id, cur.position, entity.data.Diameter);
            if cur.size == cur.position 
                fprintf('End of Iteration \n')
            end
            next = true;
            event=[];
        end
        
    end

end
Введенный в R2016a