Hello,
I need to send 6 bytes via the Arduino TCP/IP Send block (be careful: the ethernet one, not the wifi one, which accepts uint8 vectors): The problem is that it only allows uint8.
However, I have a vector of 6 uint8 values, let's say [1,2,3,4,5,6] returned by my custom MATLAB function:
Now as you see, I have become rather desperate to bring my uint8s into a form suitable to send. Is there a way to use that Unbuffer properly? Or is it possible to somehow loop through the uints8 and pass them on to the block? Any other workaround?
Any help is appreciated - thanks a lot!
Best, Andreas

 채택된 답변

David Ding
David Ding 2017년 10월 17일

1 개 추천

Hi Andreas,
I see that you are trying to serialize the vector of uint8s coming from a MATLAB Function block. In this case, instead of using the "unbuffer" block, consider using a "Byte Unpack" block from the "Utilities" folder of the Simulink Support Package for Arduino Hardware, found in the Simulink Library Browser. I have attached the image for your reference.
For more information about the "Byte Unpack" block in the Arduino Support Package, please refer below:
Sincerely,
David

댓글 수: 3

Andreas Nagl
Andreas Nagl 2017년 10월 17일
편집: Andreas Nagl 2017년 10월 17일
Thanks. So, for example in order to get 1 uint8, 1 uint16 and again 1 uint8, I would simply set:
Output port dimensions: {[1], [2], [1]}
Outport datatypes: {'uint8', 'uint16', 'uint8'}
Did I understand that correctly? Seems easy enough...
David Ding
David Ding 2017년 10월 17일
Hi Andreas,
That is exactly correct! The "Byte Unpack" block of the support package is especially designed to serialize data to communicate to the Arduino Hardware.
Thanks,
David
Andreas Nagl
Andreas Nagl 2017년 10월 17일
Thank you, that was very helpful!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Arduino Hardware에 대해 자세히 알아보기

태그

질문:

2017년 10월 14일

댓글:

2017년 10월 17일

Community Treasure Hunt

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

Start Hunting!

Translated by