2017-01-02 3 views
0

Ich arbeite mit einem BGS2-W-Modem. Ich habe eine C-App, die AT-Befehle an das Modem schreibt. Die Antworten des Modems sehen ungefähr so ​​aus: \ r \ n OK oder \ r \ n \ n OK. Immer wenn ich ein \ r oder ein \ n erhalte, denke ich, dass das Ende des Modems bei Antwort ist.Binärdatei herunterladen über GSM-Modem

Problem ist, ich versuche, eine Binärdatei über HTTP GET herunterladen und die Binärdatei kann und enthält '\ r' und '\ n'. Das verursacht Probleme, wenn ich versuche, die Modemantworten zu analysieren.

Wer jemals dieses Problem erlebt? Vielen Dank.

Antwort

0

Ich habe etwas gefunden von this file, Seite 237, gibt es ein HTTP-Download-Beispiel.

Bei Verwendung von AT^SISR = 4, [reqLength], ist ab der ersten Zeile der Antwort die verfügbare Datenlänge. Von hier aus sollten Sie diese Datenlänge verwenden, jedoch nicht als Endmarke.

Ab Seite 208 gibt es mehr Erklärung von^SISR.

0

Sie sollten nicht \ r oder \ n als eine Modemantwort betrachten, da diese Zeichen als legitimer Datenaustausch sowohl in Binärdateien als auch in ASCII-Dateien oder nur dem Header einer HTTP-Nachricht vorkommen können.
Der AT + RECV oder ein ähnlicher Befehl, den Ihr Modem zum Empfangen von Daten verwendet, muss ein Feld enthalten, das die Menge der empfangenen Daten angibt. Anschließend werden die Daten und dann die OK-Zeichenfolge angezeigt.
Konzentrieren Sie sich auf das Analysieren des Felds als Ganzes, sodass Sie diese Sonderzeichen innerhalb der erwarteten Daten ignorieren.

1

Im Allgemeinen verfügen die meisten Modems über einen Befehlsmodus und einen Datenmodus (Quelle: https://en.wikipedia.org/wiki/Command_and_Data_modes_(modem)). Wenn der Host einen Befehl sendet, um den Datenmodus aufzurufen, sendet das Modem eine "CONNECT" -Antwort und dann sollen Sie die Daten so interpretieren, wie sie sind. Bitte verwenden Sie das gleiche Konzept beim Schreiben Ihres C-Codes. Es ist gut, einen eigenen Code zu schreiben, aber ich schlage vor, dass Sie eine Open-Source-Bibliothek finden, die sich um die meisten Dinge kümmert.

+0

* "Wenn das Modem den Datenmodus verwenden möchte ..." * - Es liegt nicht am Modem. Der Befehl-gegen-Daten- (aka transparent) Modus wird vollständig vom Host gesteuert. Ansonsten ist Ihre Antwort die informativste der 3 aktuellen Antworten. – sawdust

+0

Einverstanden. Bearbeitete die Antwort entsprechend – manishg

Verwandte Themen