robím diaľkovú signalizácia z bytu cez GSM, v spojení Nano + SIM900. Hlavnú časť mám hotovú, len to preimplementovávam z Ericssonu t230 na SIM900.
Riešim ale, akko overiť, že sa SMS naozaj odoslala, resp. nedošlo k chybe na module alebo výpadku siete.
Niečo podobné som skúšal u tej t230 cez AT+CREG?
Nefunguje to ale spoľahlivo, keď počas behu odpojím komunikáciu modulu, stále mi to vracia poslednú hodnotu z funkcie nižšie.
Riešili ste niekto niečo podobné?
Kód: Vybrať všetko
byte testujGSM()
{
phone.println("AT+CREG?"); //posle at prikaz
delay(1000);
char response[200];
for(int i = 0 ; phone.available() > 0 && i<200 ; i++) {
response[i] = phone.read();
//Serial.print("Nacitane:");
//Serial.print(response[i]); //vypise nacitane, netreba, na kontrolu a ladenie
}
// Vyhodnotenie vystupu
if(strstr(response, "+CREG: 0,0\r\n")){
// Serial.println("NEREGISTROVANY, NEHLADAM SIET");
telefonPripraveny = false;
}
else if(strstr(response, "+CREG: 0,1\r\n")){
// Serial.println("DOMACA SIET");
telefonPripraveny = true;
}
else if(strstr(response, "+CREG: 0,2\r\n")){
// Serial.println("NEREGISTROVANY, HLADANIE NOVEJ SIETE");
telefonPripraveny = false;
}
else if(strstr(response, "+CREG: 0,3\r\n")){
// Serial.println("ZAKAZANA REGISTRACIA");
telefonPripraveny = false;
}
else if(strstr(response, "+CREG: 0,4\r\n")){
//Serial.println("NEZNAMA CHYBA");
telefonPripraveny = false;
}
else if(strstr(response, "+CREG: 0,5\r\n")){
// Serial.println("ROAMING");
telefonPripraveny = true;
}
else if(strstr(response, "")){
// Serial.println("CHYBA KOMUNIKACIE");
telefonPripraveny = false;
}
return telefonPripraveny;
delay(1000);