Can you do the writeline function without the added terminator?

8 vues (au cours des 30 derniers jours)
Harrison
Harrison le 23 Avr 2024
Modifié(e) : Voss le 23 Avr 2024
I know that the writeline function adds the '\n' terminator at the end of a string, but I was wondering if there was a way to write strings without the terminator. Lets look at the following example:
s = serialport('COM7', 9600); % Open the serial port
choice = randi(2);
if choice == 1
writeline(s, "Bananas ");
elseif choice == 2
writeline(s, "Apples ");
end
writeline(s, "are good");
delete(s);
Notice how the intended output could either be "Bananas are good" or "Apples are good". However in practice, it becomes "Bananas
are good" or "Apples
are good". Is there any way to just stop this terminator from even activating?

Réponse acceptée

Voss
Voss le 23 Avr 2024
This documentation page:
states that the "Allowed terminator values are "LF" (default), "CR", "CR/LF", and integer values from 0 to 255", so it looks like there's no way to writeline without a terminator character. (But you could choose terminator 32 to use a space instead of a newline, for instance.)
However, in the case of your particular code, you can just construct the entire string you want to write before you write it, i.e.:
s = serialport('COM7', 9600); % Open the serial port
choice = randi(2);
if choice == 1
str = "Bananas ";
else
str = "Apples ";
end
str = str + "are good";
writeline(str);
delete(s);

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by