exponenta event banner

queueFIFO

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

Определение хранилища очереди FIFO

Синтаксис

storage = queueFIFO(entityType,capacity)

Описание

storage = queueFIFO(entityType,capacity) определяет элемент хранения очереди FIFO. Используйте эту функцию при реализации getEntityStorageImpl способ.

Примечание

Эта страница описывает queueFIFO метод создания пользовательского системного блока дискретных событий. Сведения об использовании очереди с политикой сортировки FIFO см. в разделе Блок очереди объектов, предоставленный библиотекой SimEvents ®.

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

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

Тип объектов, с которыми работает новый элемент хранения.

Максимальное количество объектов, которые может содержать хранилище, указанное как двойное.

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

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

Хранилище очереди, содержащее объекты и сортирующее их в порядке FIFO.

Примеры

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

Укажите хранилище объектов очереди FIFO для объекта системы дискретных событий.

% Define a storage element as a FIFO queue
% - Entities in the queue are sorted in First-In-First-Out (FIFO) order
% - Queue can store entities of type 'myEntity'
% - Queue can store no more than 25 entities
storage = obj.queueFIFO('myEntity', 25); 

В этом примере показано, как использовать методы discrete-event System object™ для создания пользовательского блока хранения объектов, который имеет один входной порт, один выходной порт и один элемент хранения. Объект дискретного события System представляет собой экземпляр matlab.DiscreteEventSystem класс, который позволяет использовать методы реализации и сервиса, предоставляемые этим классом. Затем используется блок Система дискретных событий MATLAB для интеграции объекта System в модель SimEvents. Пользовательский блок системы дискретных событий MATLAB принимает объект из своего входного порта и направляет его в свой выходной порт с заданной задержкой. Дополнительные сведения см. в разделе Задержка объектов с помощью блока хранения настраиваемых объектов.

classdef CustomEntityStorageBlock < matlab.DiscreteEventSystem
                        
    % A custom entity storage block with one input, one output, and one storage. 
 
    % Nontunable properties 
    properties (Nontunable)
    % Capacity
        Capacity = 1;
    % Delay
        Delay=4;
    end
    
    methods (Access=protected)        
        function num = getNumInputsImpl(~)
            num = 1;
        end
        
        function num = getNumOutputsImpl(~)
            num = 1;
        end      
        
        function entityTypes = getEntityTypesImpl(obj)
            entityTypes = obj.entityType('Car');
        end
        
        function [inputTypes,outputTypes] = getEntityPortsImpl(obj)
            inputTypes = {'Car'};
            outputTypes = {'Car'};
        end

        function [storageSpecs, I, O] = getEntityStorageImpl(obj)
            storageSpecs = obj.queueFIFO('Car', obj.Capacity);
            I = 1;
            O = 1;
        end
       
    end
    
   methods
       
        function [entity,event] = CarEntry(obj,storage,entity,source)
            % Specify event actions when entity enters storage.
        
             event = obj.eventForward('output', 1, obj.Delay);
           
        end
     
    end
    
end
Представлен в R2016a