exponenta event banner

getInterfaceImpl

Установка системного объекта в качестве сообщения или данных

Синтаксис

interface = getInterfaceImpl(obj)

Описание

MATLAB ®interface = getInterfaceImpl(obj) определяет входы и выходы системного блока как данные или сообщение.

Сведения о времени выполнения

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. Используйте системные объекты для создания блоков для моделирования пользовательского поведения при отправке и получении сообщений, а также для управления полезной нагрузкой сообщений.

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

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

open_system('slexMessageArrivalExample');

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

getInterfaceImpl используется в этом примере для определения портов ввода и вывода сообщений в системном блоке MATLAB как для отправителя сообщения, так и для получателя сообщения. Для отправителя сообщения, 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

Установка распространителей и времени выборки

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

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

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

Моделирование модели и анализ результатов

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

См. также

Классы

Блоки

Представлен в R2021a