тут еще не касаемс pdu формата эта едененица относится к +CMTI: "SM",1 тоесть то что стоит после запятой это номер смс я так понимаю
тут еще не касаемс pdu формата эта едененица относится к +CMTI: "SM",1 тоесть то что стоит после запятой это номер смс я так понимаю
Не трогай 1 строчку. Ардуина ее не видет (если и видет, я не знаю как).
Смотри 2 - ю строчку. Как описано здесь: - http://www.compcar.ru/forum/showpost...&postcount=126, убирай ненужную информацию, потом, с помощью http://arduino.cc/en/Reference/StringObject, вытаскиваю нужные символы.
Liliput 629 GL, Intel Atom N230 1.6, HDD 200 GB, ОЗУ 2GB, Globalsat GT-100.
gsm.read()=='1' без этого цикл
if(gsm.available() >0 && gsm.read()=='1'){gsm.println(" AT+CMGL=0 ");
digitalWrite(ledpin, HIGH);delay(1000);digitalWrite(ledpin, LOW);delay(1000);
for(int i=0;i<98;i++){inchar[i]=gsm.read();delay(100);}
//gsm.flush();
digitalWrite(ledpin, HIGH);delay(1000);digitalWrite(ledpin, LOW);delay(1000);
for(int i=0;i<98;i++){Serial.print(inchar[i]);}
digitalWrite(ledpin, HIGH);delay(1000);digitalWrite(ledpin, LOW);delay(1000);
gsm.println("AT+CMGD=1");
digitalWrite(ledpin, HIGH);delay(1000);digitalWrite(ledpin, LOW);delay(1000);
gsm.flush();
} начинает гонять покругу и остановить его не получалось а обработки pdu еще не касаемся пока только считываем из порта в массив и выводим массив на экран
Последний раз редактировалось Chip; 14.03.2012 в 01:56.
По массивам, это к Chip'u. Я сам еще не профессионал в этом деле.
Liliput 629 GL, Intel Atom N230 1.6, HDD 200 GB, ОЗУ 2GB, Globalsat GT-100.
думаю Chip много тут закритикует
Посмотрим, мне тоже интересно.
Liliput 629 GL, Intel Atom N230 1.6, HDD 200 GB, ОЗУ 2GB, Globalsat GT-100.
Без обид.
Давайте код заключать в спец. теги , в таком виде его читать не возможно, все сливается.
Пишите код по человечески , не нужно в одну строку писать кучу функций.
Я не хочу сидеть и править что бы он был читаем.
Последний раз редактировалось Chip; 14.03.2012 в 02:00.
спасибо учту это замечание
Вот такой скетч имеем на данный момент
проблема в том что не все числа принимаются из буфераPHP код:
#include <NewSoftSerial.h>
char inchar[100];
NewSoftSerial gsm(2,3);
int ledpin = 13;
void setup()
{
pinMode(ledpin, OUTPUT);
gsm.begin(19200);
Serial.begin(19200);
gsm.flush();
Serial.flush();
delay(100);
gsm.println("AT+CNMI=1,1");
delay(2000);
}
void loop()
{
if(gsm.available() >0 ){
gsm.println(" AT+CMGL=4 ");
for(int i=0;i<100;i++)
{
inchar[i]=gsm.read();
delay(3);
}
for(int i=0;i<100;i++)
{
Serial.print(inchar[i]);
delay(100);
}
}
}
07919730071111F1040B919706 - то что принимается
07919730071111F1040B919706109843F20000213041612235 610380700C - то что читаю через терминал
10380700C - эту часть сообщения нужно обробатывать
Последний раз редактировалось Chip; 16.03.2012 в 00:56.
Для начала поменяй скорость на 9600, софтовый UART больше чем 9600 не потянет
gsm.begin(9600);
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)