![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/744964/image.png)
How to decode a UDP packet without byte unpack
11 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Aaron Hamilton
am 20 Sep. 2021
Bearbeitet: Jonas
am 21 Sep. 2021
I'm using simulink udp_receive to get some data. the data is a mix of different data types. I can't use the byte unpack block because it's not supported for code generation. i made a matlab function instead to read this. I'm using something like
function [data1,data2, data3] = fcn(u)
data1 = u(1,1);
data2 = u(2,1);
data3 = u(3:10,1);
end
to read the the specific byte wich works for data1 and data2 because they are 'uint8'. but i can't read data that are double or float in data3. using (3:10) read all the bytes but doesn't assume them as one variable.
Any suggestions?
0 Kommentare
Akzeptierte Antwort
Jonas
am 21 Sep. 2021
Bearbeitet: Jonas
am 21 Sep. 2021
You can reassemble those 8 bytes into a 64 byte double by applying a bitshift to each byte to its correct position, using a bitor on all outputs of the bitshifts and then typecast the resulting uint64 to double.
Same can be done for the 4 bytes of a 'single' or float32.
It looks something like this:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/744964/image.png)
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu String finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!