2016-05-04 4 views
0

Hier ist mein Problem. Ich habe diese beiden Befehle:Lesen Sie die Benachrichtigung von AT + CPBR und speichern Sie es

sendATcommand("AT+CPBS=\"SM\"", 500); // Select the SIM phonebook 

sendATcommand("AT+CPBR=1,99", 100);  // To read ALL phonebook 

Und ich möchte das Ergebnis AT+CPBR in einer Variablen speichern. Wie kann ich das machen?

Beispiel des Ergebnisses: +CPBR:1,"690506990",129,"ANDROID"

Antwort

1

Sie können folgenden Code verwenden, um Ergebnis/Antwort vom GSM-Modul direkt nach Ausgabe AT-Befehl zu lesen.

char response[300]; 
for(int i = 0 ; Serial.available() > 0 && i<300 ; i++) { 
    response[i] = Serial.read(); 
    if(response[i]=='\n'|response[i]=='\0'|response[i]=='\r'){ 
     response[i]=='\0' 
     break; 
    } 
} 

Die Reaktion nach dem AT-Befehl wird in response[200] Zeichen-Array gespeichert werden.

+0

THX für deine Antwort, aber ich ist nicht gut response.here erhalten, was ich bekommen: 'AT-Befehl senden: AT + CPBS = "SM" AT Befehl: OK // der erste Befehl at don ‚t haben Problem AT-Befehl senden: AT + CPBR = 1,99 AT Befehl: + CPBR: 1, "696444834", 129 "ANDROID" // die Antwort für das GSM-Modul OK **************** ANTWORT ', // meine Antwortvariable wer ist ein ungelesener Charakter ' – isaac47

+0

Warum' i' wird zweimal inkrementiert? – Ouss4

+0

@ isaac47 können Sie das Problem ausarbeiten? Ich kann verstehen, was Sie sagen –

Verwandte Themen