принимаем из компорта в ардуино и парсим, какие есть варианты?
- Войдите на сайт для отправки комментариев
Втр, 21/06/2016 - 08:04
while (gsm.available())
{ //сохраняем входную строку в переменную val
ch = gsm.read();
val += char(ch);
delay(20);
}
последнее время меня этот вариант не устраивает, вероятно делей тому проблема.
что можно использовать взамен, более надежное в работе?
парсинг построчно :)
String readsmsstr() { String content = ""; boolean returnstr = false; char smschar; while (gprs.available() && returnstr == false) { smschar = gprs.read(); if (smschar == '\n') { returnstr = true; } else { content.concat(smschar); //складываем символы в строку } } return content; }ой, можно приписать подсказки по строкам? спасибо.
какие еще варианты подскажут? можно в ветке собирать примеры, желательно с подробным описанием что и как делается, чтобы многие понимали и учились. спасибо.
работа со строками, по подсказкам, serial print поможет
if (gprs.available()) { smsstr = readsmsstr(); Serial.println(smsstr); smsstr.trim(); if (smsstr.startsWith("+CMT")) { smsstr = readsmsstr(); smsstr.trim(); Serial.println(smsstr); } }хорошо, спрошу еще как обьявлять smsstr и readsmsstr ?
readsmsstr это функция, которую я дал в первом своем посте
а smsstr так - String smsstr;
и еще инклюд надо добавить
#include <String.h>
пробую в код поставить
'readsmsstr' was not declared in this scope
хотя указал:
софтсериал или иная библиотека?
в двух соснах заблудились ?
#include <SoftwareSerial.h> #include <String.h> String smsstr; SoftwareSerial gprs(7, 8); void setup() { // put your setup code here, to run once: Serial.begin(9600); gprs.begin(19200); } void loop() { // put your main code here, to run repeatedly: if (gprs.available()) { smsstr = readsmsstr(); Serial.println(smsstr); smsstr.trim(); if (smsstr.startsWith("+CMT")) { smsstr = readsmsstr(); smsstr.trim(); Serial.println(smsstr); } } } String readsmsstr() { String content = ""; boolean returnstr = false; char smschar; while (gprs.available() && returnstr == false) { smschar = gprs.read(); if (smschar == '\n') { returnstr = true; } else { content.concat(smschar); //складываем символы в строку } } return content; }