MATLAB Answers

Read UDP packets asynchronously from Simulink in MATLAB

3 views (last 30 days)
Nick
Nick on 5 Apr 2017
Answered: Michael on 7 Jun 2019
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?

Answers (1)

Michael
Michael on 7 Jun 2019
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

Community Treasure Hunt

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

Start Hunting!