Вывод на com порт, выводит только часть текста

Нет ответов
smaster
Offline
Зарегистрирован: 27.06.2013

Как правильно решить такую задачу, пожалуйста, помгите

Вывожу на COM c помощью кода:

Serial.println(currStr);

В перемемнную String currStr = "";  записываеться если правильно понял текущая строка которая приходит на GSM модуль т.е. смс дак вот она всегда не более 14 символов, а как можно прочитать всю смс ку?

Код скетча ниже

    #include <SoftwareSerial.h>
    SoftwareSerial gprsSerial(7, 8);
        
    void setup()
    {
        gprsSerial.begin(19200); // подключаюсь к GSM модулю на скорости
        Serial.begin(9600); // поодключаюсь к COM порту
        
        gprsSerial.print("AT+CMGF=1\r");
        delay(300);
        gprsSerial.print("AT+CSCS=UCS2\r");
        delay(300);
        gprsSerial.print("AT+IFC=1, 1\r");
        delay(300);
        gprsSerial.print("AT+CPBS=\"SM\"\r");
        delay(300);
        gprsSerial.print("AT+CNMI=1,2,2,1,0\r");
        delay(500);
        }
     
    String currStr = ""; //
    boolean isStringMessage = false; // Переменная принимает значение True, если текущая строка является сообщением
     
    void loop()
    {
      
   if (!gprsSerial.available())
            return;
            
   char currSymb = gprsSerial.read();    
        if ('\r' == currSymb) {
                   
           if (isStringMessage) {
              

            Serial.println(currStr); //1

 
           } else {
                if (currStr.startsWith("+CMT")) {
                
                   isStringMessage = true;
                }
            }
            currStr = "";
        } else if ('\n' != currSymb) {
           
          currStr += String(currSymb);
        }
  }