entry

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

Действие события, когда сущность вводит запоминающий элемент

Синтаксис

[entity,events]=entry(obj,storage,entity,source)
[entity,events,out1,...]=entry(obj,storage,entity,source,in1,...)

Описание

[entity,events]=entry(obj,storage,entity,source) задает действия события объекта, когда сущность вводит устройство хранения данных.

[entity,events,out1,...]=entry(obj,storage,entity,source,in1,...) такие действия события объекта, когда блок имеет один или несколько портов входного сигнала и/или выходных портов сигнала.

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

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

Объект Discrete-event System.

Индекс запоминающего элемента.

Сущность, вводящая компонент устройства хранения данных. Сущность имеет эти поля:

  • sys (MATLAB structure) — Это имеет эти поля:

    • id 'double') — ID сущности

    • priority 'double') — Приоритет сущности

  • data — Данные сущности

Исходное местоположение сущности, такой как входной порт или запоминающий элемент. Это имеет эти поля:

  • type Символьный вектор) — Задают input или storage

  • index 'double') — Вводят или индекс устройства хранения данных

Любые вводы данных объекта. Эти входные параметры существуют только, когда объект имеет вводы данных.

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

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

Сущность, вводящая устройство хранения данных, возможно с измененными данными. Смотрите сущность.

События, которые будут запланированы. Используйте matlab.DiscreteEventSystem методы класса создать события. Каждое событие имеет эти поля:

  • type Символьный вектор) — Тип события

  • delay 'double') — Задерживаются перед событием

  • priority 'double') — Приоритет события

  • Storage 'double') — Индекс запоминающего элемента

  • tag Символьный вектор) — Тег события

  • location (MATLAB structure) — Источник или целевое местоположение сущности, смотрите источник

Выводы данных объекта. Необходимо задать эти выходные аргументы, когда объект имеет выводы данных.

Примеры

Действие события после записи сущности

Действие события для записи сущности в устройство хранения данных.

function [entity,events] = entry(obj,storage,entity,src)
    % Specify event actions when entity entered storage.
    disp(['Entity of ID ' num2str(entity.sys.id) ...
          ' has entered storage element ' num2str(storage)]);
    switch src.type
        case 'input'
            disp(['Entity came from input port ' num2str(src.index)]);
        case 'storage'
            disp(['Entity came from storage element ' num2str(src.index)]);
    end
    events = [ ...
        obj.eventDestroy(), ...    % Destroy the newly entered entity
        obj.eventIterate(2, '')];  % Iterate entities in storage element 2
end

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

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

Пользовательский блок MATLAB Discrete-Event System принимает сущность от своего входного порта и вперед этого к ее выходному порту с заданной задержкой. Для получения дополнительной информации смотрите Сущности Задержки с Пользовательским Блоком системы хранения Сущности.

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