UDP compilation error in State-flow

2 views (last 30 days)
Hi.
I have linked an Arduino to Matlab using UDP as:
u = udp('10.0.0.177','RemotePort',8888,'LocalPort',9060); %Udp-protocol
fopen(u); %open tow
status = fscanf(u,'%s'); %read protocol as string
fclose(u); %close tow
delete(u); %delete protocol, release port
This worked fine until I wanted to call this as a function in State-flow. State-flow compiles the functions to C code and the udp function does not compile.
I tried to use compilible dsp.UDPReceiver as:
H = dsp.UDPReceiver('RemoteIPAddress','10.0.0.177','LocalIPPort',9060);
status = step(H);
release(H);
but this does not work. I found that step does not accept string, but the Arduino seems to only be able to send strings.
I also tried using the UDPReceiver block in Simulink but with very strange results. I receive numbers that dont match what is sent.
So I would like to either be able to compile the udp function or send strings via UDPReceiver, can anyone help me with that I would realy appreciate it.
/Martin

Accepted Answer

Martin
Martin on 19 Aug 2013
Answering my own question.
I was unable to get dsp.UDP working, instead I had to move the UDP communication outside State-flow into Simulink (using flags for commands) and call it as an embedded Matlab function.
Not optimal, but it seems to work.

More Answers (0)

Categories

Find more on Complex Logic in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!