How to decode a UDP packet without byte unpack
17 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Jonas
2021-9-21
编辑:Jonas
2021-9-21
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:
0 个评论
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!