Read full answer from serial device

Hi to all,
I have a serial device (9600, 8N1) that works in this way:
  • I send a request command, i.e., "OP\n"
  • it answers with "0.14\r\n52.32\r\n"
I need to always send a request command to obtain an answer from the device, so I should use a loop.
Now, I'm trying to use the serial functions under Matlab:
device = serialport("COM4",9600)
writeline(device,"OP")
readline(device)
it works, but I only get a part of the answer and not the full answer. I get the first double value and then I have to run it again to get the second one. Moreover, it seems that it is not able to handle the \r\n.
How can I continuously acquire from the device by correctly saving the values?
Thank you!

Answers (1)

Alexander
Alexander on 3 Oct 2023
Edited: Alexander on 3 Oct 2023
You are right, readline reads exactly to the first terminator, so it is handling the terminator correctly. Try "read" instead, e.g.:
data = read(device,17,"char");
But you have to parse the data afterwards to your needs.

Categories

Find more on MATLAB Support Packages in Help Center and File Exchange

Products

Release

R2022b

Asked:

on 3 Oct 2023

Edited:

on 3 Oct 2023

Community Treasure Hunt

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

Start Hunting!