В продолжение чтения SMS - переменные, сравнение "символов" - нужна помощь
Значит такой набор есть: TFT 3,2" тачскрин монитор, GSM шилд на базе TC35, Arduino Mega 1280.
Научил выводить на монитор (вырезка из общего скетча):
Код:
if(Serial1.available())
{
bgsm[bsm++]=tgsm[i++]=Serial1.read();
if (bsm>=40)
{
bsm=0;
}
}
myGLCD.setFont(SmallFont);
myGLCD.print(bgsm, 5, 175);
myGLCD.setFont(BigFont);
Отображает нормально, правда вместо пробелов квадраты шлет, но латинские ЗАГЛАВНЫЕ буквы отчетливо.
Для начала, самая простая задача - определить что пришла SMS
Приходит от GSM модема строка: +CMTI: "SM", 1
Т.е. , пришла SMS и записана по нумером 1.
Алгоритм придумал следующий: проверяем каждую переменную массива.
Например, в массиве в переменной под индексом i появилась эта буква, значит в переменной с индексом i+1 нужна буква M.
SMS всегда будет записываться в 1 ячейку, но в дальнейшем надо научить видеть в какую ячейку записана и открывать.
Проблема: как научить ардуину найти букву S? Пытался так:
Код:
if (bgsm[bsm]=='S')
{
myGLCD.print("S OK", CENTER, 120);
Serial1.println("AT+CMGD=1");
}
Общий кусок -
Код:
if(Serial1.available())
{
bgsm[bsm++]=tgsm[i++]=Serial1.read();
if (bsm>=40)
{
bsm=0;
}
if (bgsm[bsm]=='S')
{
myGLCD.print("S OK", CENTER, 120);
Serial1.println("AT+CMGD=1");
}
}
myGLCD.setFont(SmallFont);
myGLCD.print(bgsm, 5, 175);
myGLCD.setFont(BigFont);
Re: В продолжение чтения SMS - переменные, сравнение "символов" - нужна помощь
Поехали дальше - есть у меня на экране кнопка для звонка на мою мобилу. Дак вот, ардуина звонит, я сбрасываю или она сама сбрасывает через 5 сек, модем шлет NO CARRIER и условие срабатывает!!!!!! Как такое может быть?:(
Пример:
1. шлю смс, на LCD показывает "SM", 1
2. звоню с ардуины
Код:
if((x>=10 & x<=260) & (y>=10 & y<=155))
{
myGLCD.print("Calling....", 160, 25);
Serial1.println("ATD+7XXXXXXXXXX;");
delay(12000);
Serial1.println("AT+CHUP");
}
После сброса звонка LCD - ATD+7XXXXXXXXXX; NO CARRIER - Вот на этом месте выполняется условие, AT+CMGD=1 OK ....
Re: В продолжение чтения SMS - переменные, сравнение "символов" - нужна помощь
Цитата:
Поехали дальше - есть у меня на экране кнопка для звонка на мою мобилу. Дак вот, ардуина звонит, я сбрасываю или она сама сбрасывает через 5 сек, модем шлет NO CARRIER и условие срабатывает!!!!!! Как такое может быть?
Выложи скетч полностью
Re: В продолжение чтения SMS - переменные, сравнение "символов" - нужна помощь
600 строк)))) Нашел вроде как в чем проблема....
Код:
if(Serial1.available())
{
bgsm[bsm]=Serial1.read();
if (bgsm[bsm]=='S')
{
s=bsm;
s++;
}
if (bsm==s)
{
if (bgsm[bsm]=='M')
{
myGLCD.print("S OK", CENTER, 120);
Serial1.println("AT+CMGR=1");
delay(200);
rsms=1;
}
}
bsm++;
}
bsm++ надо вынести...