Подбиблиотека Simulink® Real-Time™ UDP непосредственно не поддерживает сигналы переменного размера. Входной порт блока UDP Send принимает только сигналы фиксированного размера.
Чтобы отправить сигналы переменного размера хотя UDP, определите максимальное количество элементов входного сигнала фиксированного размера, который вы ожидаете соединять с блоком. Затем используйте второй вход, Length
, чтобы задать число элементов этого входного сигнала, чтобы отправить через UDP.
Этот пример конфигурирует блок MATLAB function, чтобы принять сигнал переменного размера и карты, которые сигнализируют к выходному сигналу фиксированного размера. Это выводит количество соответствующих элементов. Можно вывести выходной сигнал фиксированного размера и число элементов к входным параметрам блока UDP Send.
Чтобы принять входной сигнал переменного размера, создайте блок MATLAB function.
В блоке MATLAB function введите код как следующий код. В этом коде максимальный размер входного сигнала переменного размера равняется 9.
function [y,y_length] = fcn(u) %#codegen y = uint8(zeros(9,1)); y_length = length(u); for a = 1:y_length y(a) = u(a); end
В Редакторе MATLAB® Function выберите Tools> Edit Data/Ports. В Ports and Data Manager выберите данные u
, и затем установите соответствующий флажок Variable size.
Выберите данные y
и введите размер сигнала ввода данных переменного размера в соответствующем параметре Size. В данном примере значением размера является 9
.
Обеспечьте источник сигнала переменного размера для блока MATLAB function.