MATLAB Answers


Unsuccessful at reading in UDP data

Asked by Mark
on 22 Aug 2014
Latest activity Commented on by Geoff Hayes
on 23 Aug 2014

I'm attempting to use MATLAB in a hardware in the loop simulation similar to what was done in "Design and implementation of hardware-in-the-loop-simulation for UAV using PID control method" by Sufrendi et al in 2013 with an ArduPilot based autopilot.

Basically, a program called Mission Planner traditionally sends out UDP data containing commands to a flight simulator (such as XPlane or FlightGear), and the simulator sends UDP back containing simulated sensor data.

I would like to use MATLAB in the place of the flight simulator. Using RawCap as a port sniffer, I can see that UDP data is being sent to the UDP port i'm trying to read in MATLAB on the loopback IP address, but am unable to read anything in. It appears as a bunch of hexadecimal data (probably MAVlink protocol, if that's important).

MATLAB code used:

sid = udp('',49000); fopen(sid); get(sid,'Status') fgetl(sid) fscanf(sid)

which returns

ans = ''

for both fgetl and fscanf.

I have also attempted to use the UDP block in simulink without success.

Any suggestions would be greatly appreciated!

  1 Comment

Mark - I don't have the Instrument Control Toolbox so can't comment on the use of the udp object, but I have used Kevin Bartlett's simple UDP communications app from the File Exchange to capture UDP messages sent over wi-fi from an Android phone (and send UDP messages between two running sessions of MATLAB). Perhaps it is worth a look.

0 Answers

Join the 15-year community celebration.

Play games and win prizes!

Learn more
Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!