Send struct over UDP
18 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hi all,
I need to transmit a structured data over a UDP connection, which will be read from a C/C++-based application and saved on a similar struct (actualy the same, just designed in C).
Is it possibile to transmit it directly on the UDP (from Matlab, or Simulink, or both), mantaining the byte-to-byte order? I want to avoid packing the data on Matlab, and then unpacking the incoming data (on the C/C++ interface) with nested for loop and if/switch case conditions. Just directly assigned byte by byte the inconig pack to a C/C++ struct.
Any help or reference to alternative solutions will be appreciate.
Thanks
0 comentarios
Respuestas (1)
Jan Houska
el 17 de Oct. de 2021
Hi Andrea,
if you are using Simulink Desktop Real-Time, you can use the Packet Output block. The block allows you to specify a sequence of data types which together form the packet that is sent. This is the same as sending the structure with the elements equal to the data types specified. The block also supports sending multi-byte elements such as integers in little or big endian.
Good Luck, Jan
5 comentarios
Jan Houska
el 2 de Nov. de 2021
Hi Andrea,
the block does not support buses as input signal, so your only choice is to use Bus Selector to split the input bus to individual signals.
To reduce the number of signals somewhat, you can use e.g. '3*double' instead of 'double', 'double', 'double'. This will cause the three separate signals to be replaced by one vector signal of width 3. However, this only works for consecutive signals (structure fields) that are of the same datatype.
Good Luck, Jan
Ver también
Categorías
Más información sobre Model Preparation for Real-Time Simulation en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!