Запись SMS из SIM800 в String

SoftwareSerial.h

Вызываю
SIM800.println(“AT+CMGF=1”);
delay(1000);

Если вызвать функцию после AT команды вывода смс вернет ли она текст всех смс для дальнейшего парсинга команд?
Читал то Serial.read() возвращает только один символ (передача байта по uart). И что буфер UART 80 символов - это что только 80 символов СМС выводит? Но в serial monitor вывел 35 смс и символов больше.

Будет ли работать функция типа этой и сколько символов в ответе serial можно обработать или число символов в ответе не ограничено?:

String text=“”;

String sms(){
do{
text += SIM800.read();
delay(10);
}while(SIM800.available())
return text;
}

А у вас дома через кран на кухне только стакан воды вытекает?

Ясно. Ну может у кого есть написанная функция чтения смс в String проверенная, тк не писал такого и не экспериментировал еще, все действия только AT командами делал?

Не делайте так. Прибавлять по символу к String - это отличный способ остаться в программе вовсе без памяти. При чтении каждого нового символа создается новый обьект.

Буфер Сериал даже меньше - 64 байта на Уно. Но это никак не мешает вам читать сообщения любой длины. Просто не надо их накапливать - прочитали один-два, десять символов - и сразу обрабатывайте. Так буфер не будет перполняться и вы сохраните возможность чтения новых данных

  1. Нет, не так.

просто нужно аккуратно пользоваться. И по времени у ТС потом делей написан, так что нет смысла в экономии времени.

Вся эта “стрингофобия” основана на идее продать сэкономленную память на базаре. Мне давно интересна цена покупки памяти. Почем нынче можно слить 300 байт из проекта на Ардуино?

я не против, пользуйтесь