SIM900 AT-Befehle Antwort Parsen
ich bin mit sim900 gps/gprs-Modul Schild-verbunden mit einem Arduino Uno, wie werde ich in der Lage sein, um eine Analyse der Reaktion meiner AT-Befehle? Oder wie kann ich entfernen Sie die 1. Zeile gedruckt in der Serie nach dem Absenden einen AT-Befehl?
AT+CMGL="ALL"
+CMGL: 1,"REC READ","+XXXXXXXXXX","","16/04/25,15:20:59+32"
Hilp akp si ralphh the pogi one mmalit mi pizza hehehehehe
+CMGL: 2,"REC READ","+XXXXXXXXXX","","16/04/25,21:51:33+32"
Yow!!!
OK
Beispiel auf den Ausgang oben, ich möchte, um loszuwerden, der AT+CMGL="ALL" und dann die Daten analysieren Links, was ist der beste Weg bei der Analyse der
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, das ist die richtige Frage zu stellen.
Nein, das ist die falsche Frage, denn wenn Sie sich sorgen darüber, ob echo oder nicht, Sie tun es falsch.
Die richtige Strategie für die Analyse AUF die Ausgabe des Befehls ist wie folgt:
"\r"
)."\r\n"
und dann analysieren, die Linie.ATI
, und zum analysieren dieser, könnten Sie berechtigterweise Sorge über echo oder nicht.Nun für die
AT+CMGL
Befehl, es ist ein wenig mehr Arbeit, denn die Antworten sind aufgeteilt auf mehrere Zeilen.Zunächst die beste Quelle für Informationen sein sollten, die Hersteller-spezifische Dokumentation, die zweite am besten das offizielle 3GPP 27.005 Spezifikation, Standardisierung der
AT+CMGL
Befehl.Antwort auf AT+CMGL im text-Modus wird angegeben, wie
daher nach Erhalt einer Zeile beginnend mit "+CMGL: "alle folgenden Zeilen, bis Sie Lesen, eine leere Zeile ("\r\n") gehört zu dieser.
Sehen diese Antwort auf die Allgemeine code-Struktur und Fluss, obwohl wie oben geschrieben die multi-line-Eigenschaft des response-braucht ein bisschen mehr handling. Ich würde verwendet haben, so etwas wie die folgenden (ungetesteten code):
Die erste Zeile
AT+CMGL="ALL"
scheint das echo. Können Sie deaktivieren, indem SieATE0
Ihr Modul in Ihremsetup
Funktion.Als für den rest der Daten, es haben alle das gleiche format. Sie können ganz einfach schreiben Sie Ihren parser mit verschiedenen string-manipulation Funktionen.
Wenn Sie
arduino
ich würde empfehlen, mit einer guten Bibliothek! Sie brauchen nicht zu viel über diese Sachen. Versuchen http://www.gsmlib.org/ oder finden Sie andere, die Sie mögen.Ich werde auch ein Beispiel hier.