Read UDP packets asynchronously from Simulink in MATLAB

1 回表示 (過去 30 日間)
Nick
Nick 2017 年 4 月 5 日
回答済み: Michael 2019 年 6 月 7 日
I have a very simple setup where I am generating a sine wave in simulink and sending it through a UDP block.
On the other hand I have MATLAB where I want to asynchronously fire a callback as soon as a packet is received.
On simulink I have my remote address set to 127.0.0.1 and my port to 25000.
In MATLAB I am using the following code.
u = udp('127.0.0.1', 25000);
u.ReadAsyncMode = 'continuous';
fopen(u);
u.BytesAvailableFcn = 'myfunction';
where myfunction simply prints a string.
However the callback is not being executed at all (it does work with echoudp). What could I be doing wrong?

回答 (1 件)

Michael
Michael 2019 年 6 月 7 日
I belive you need to use the function handle for myfunction
u = udp('127.0.0.1', 25000);
u.ReadAsyncMode = 'continuous';
fopen(u);
u.BytesAvailableFcn = @myfunction
function [] = myfunction(event, obj)
disp('Callback worked!')
end

カテゴリ

Help Center および File ExchangeSimulink Functions についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by