getInterfaceImpl

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

Синтаксис

interface = getInterfaceImpl(obj)

Описание

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

Детали во время выполнения

getInterfaceImpl часть matlab.System класс и называется перед setupImpl метод.

Метод, создающий советы

Необходимо установить Access = protected для этого метода.

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

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

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

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

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

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

Интерфейс блока MATLAB System, возвращенный как скаляр или вектор из 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 System как сообщение. Это действие запрашивает Системный объект создавать сообщение выход. Для Приемника сообщения, 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

Установите Распространителей и Шаг расчета

Следующие четыре распространителя должны быть установлены в Отправителе сообщения: getOutputSizeImplgetOutputDataTypeImplisOutputComplexImplisOutputFixedSizeImpl.

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

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

Симулируйте модель и рассмотрите результаты

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

Смотрите также

Классы

Блоки

Введенный в R2021a