How to decode a UDP packet without byte unpack

조회 수: 25 (최근 30일)
Aaron Hamilton
Aaron Hamilton 2021년 9월 20일
편집: Jonas 2021년 9월 21일
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?

채택된 답변

Jonas
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개)

카테고리

Help CenterFile Exchange에서 String에 대해 자세히 알아보기

제품


릴리스

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by