Полезная нагрузка сообщения процесса Используя MATLAB System Block

В этом примере показано, как отправить, получите, и сообщения процесса с помощью блока 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% времени, как ожидалось.