getInterfaceImpl

Установите Системный объект как сообщение или данные

Синтаксис

interface = getInterfaceImpl(obj)

Описание

MATLAB® interface = getInterfaceImpl(obj) задает входы и выходы блока System как данные или сообщение.

Подробные сведения о выполнении

getInterfaceImpl является частью matlab.System Класс и вызывается перед setupImpl способ.

Советы по разработке методов

Вы должны задать Access = protected для этого метода.

Вы не можете изменять никакие свойства в этом методе.

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

расширить все

Указатель на системный объект используется для доступа к свойствам, состояниям и методам, характерным для объекта. Если ваш getInterfaceImpl метод не использует объект, можно заменить этот вход на ~.

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

расширить все

MATLAB Системный блочный интерфейс, возвращенный как скаляр или вектор matlab.system.interface.* объекты. Использование matlab.system.interface.Input(signalName, signalType) для определения типов входных сигналов. Использование matlab.system.interface.Output(signalName, signalType) для определения типов выходных сигналов.

  • signalName - Определяет имя порта. Представлено символьным массивом.

  • signalType - Определяет тип порта. Значение либо matlab.system.interface.Data или matlab.system.interface.Message.

Примеры

расширить все

В этом примере показано, как отправлять, получать и обрабатывать сообщения с помощью блока MATLAB System. Используйте системные объекты для создания блоков для моделирования пользовательского поведения, чтобы отправлять и получать сообщения и управлять полезной нагрузкой сообщения.

Загрузка и открытие модели

Откройте модель системы отправки и получения сообщений. Эта модель содержит генератор случайных чисел в качестве источника данных. На основе этих данных отправитель сообщения отправляет сообщение с полезной нагрузкой синусоиды в блок очереди. Блок очереди хранит сообщения, и приемник сообщений преобразует сообщение обратно в данные.

open_system('slexMessageArrivalExample');

Использование getInterfaceImpl Системный объект API для задания портов сообщений

getInterfaceImpl используется в этом примере для определения входного и выходного портов сообщений в блоке MATLAB System как для отправителя сообщений, так и для приемника сообщений. Для отправителя сообщений, getInterfaceImpl используется для определения выхода системного блока MATLAB как сообщения. Это действие предлагает системному объекту создать выход сообщения. Для приемника сообщений, getInterfaceImpl используется для определения входов системного объекта как сообщения, а выходов.

%Function to send messages
function interface = getInterfaceImpl(~)
    import matlab.system.interface.*;
    interface = Output("Out1", Message);
end
%Function to receive messages and output as data
function interface = getInterfaceImpl(obj)
    import matlab.system.interface.*;
    interface = [Input("In1", Message), ...
        Output("Out1", Data), Output("out2", Data)];
end

Установите распространители и шаг расчета

В Message Sender необходимо установить следующие четыре распространителя: getOutputSizeImpl, getOutputDataTypeImpl, isOutputComplexImpl, isOutputFixedSizeImpl.

В этом примере очередь сообщений имеет максимальную емкость 16 сообщений. Генератор случайных чисел имеет шаг расчета 0,1. Приемник имеет шаг расчета 1. Приемник шага расчета сообщений устанавливается в системном блоке MATLAB с помощью getSampleTimeImpl API.

function sts = getSampleTimeImpl(obj)
    sts = createSampleTime(obj,'Type','Discrete', ...
    'SampleTime',obj.SampleTime);
end

Моделируйте модель и рецензируйте результаты

В блоке Scope отображаются результаты. Эти результаты показывают, что, когда вы запускаете больше симуляций, генератор случайных чисел выдает число, больше нуля 50% времени, как ожидалось.

См. также

Классы

Блоки

Введенный в R2021a