Вывод на com порт, выводит только часть текста
- Войдите на сайт для отправки комментариев
Сб, 06/07/2013 - 22:06
Как правильно решить такую задачу, пожалуйста, помгите
Вывожу на 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);
}
}