SIM900 FTP-Client

OP #2647638
Lesenswert?

Hallo Forum,

ich habe gerade ein Projekt mit einem GSM-Modul SIM900 von Simcom in 
Arbeit. Das Modul soll Binärdaten (JPG) an einen FTP-Server übertragen. 
Nun hat dieses Modul netterweise einen kompletten FTP-Clienten an Bord, 
man kann mit ein paar AT-Befehlen eine FTP-Verbindung aufbauen und Daten 
übertragen. Das ganze funktioniert soweit auch, allerdings habe ich 
jetzt ein dummes Problem:

Die FTP-Verbindung ist vom Typ Binär, die Daten werden mit 
AT+FTPPUT=2,<anzahl> an das Modul gesendet. Ist die Anzahl erreicht, 
antwortet das Modul mit OK. Wenn aber jetzt im binären Datenstrom ein 
0x0A enthalten ist, macht das Modul daraus ein 0x0D 0x0A. Ich habe also 
ein Byte mehr auf dem FTP-Server als ich gesendet habe. Alle anderen 
Bytes zwischen 0x00 und 0xFF werden einwandfrei übertragen.

Ich weiß nicht, ob man das SIM900 anders kunfigurieren kann, oder ob es 
irgend eine Escape-Sequenz für das 0x0A gibt. Im Moment komme ich nicht 
weiter, die Doku gibt diesbezüglich auch nix her. Hat jemand von Euch 
schonmal mit dem SIM900 gespielt und den integrierten FTP-Clienten 
verwendet?

Gruß,
Peter
#2647644
Lesenswert?

0xA (dec: 10) ist ein linefeed, da hängt das modul dann wohl automatisch 
ein carriage return 0xD (dec: 13) an. Das Modul scheint also nicht im 
Binärmodus zu arbeiten, sondern im Textmodus.
Es gibt natürlich die Möglichkeit die Binärdaten vorher in Base64 
umzuwandeln, aber das muss die Gegenseite natürlich erstmal wieder 
zurückwandeln.

Du könntest versuchen die Zeichen mit einem DataLink Escape (0x10) zu 
schützen, vielleicht erkennt das Modul dies. Ich würde aber eher 
versuchen das Modul in den Binärmodus zu bringen.

gruß cyblord
#2647681
Lesenswert?

Kenne leider das Modul gar nicht, aber das Verhalten lässt schon 
eindeutig auf Text schließen. Sowas im Binärmodus geht ja eigentlich 
nicht.

Grundsätzlich läuft ein Escapen ja immer gleich ab. Es gibt halt ein 
spezielles Escape Zeichen in der ASCII Tabelle, welches oft dafür 
verwendet wird. Aber es kann natürlich grundsätzlich jedes Zeichen als 
Escape Zeichen verwendet werden.
Der Sender erkennt das Escape Zeichen und behandelt das nachfolgende 
Zeichen anders als sonst. Und entfernt das Escape Zeichen vor dem 
Senden. Will man ein Escape Zeichen an sich senden, so doppelt man es. 
Der Sender entfernt dann einfach eines davon.

gruß cyblord
OP #2650100
Lesenswert?

So, Ursache gefunden, das SIM900 ist unschuldig. Ich habe die 
übertragene Datei mit Filezilla vom FTP-Server zurückgeholt. Steht jetzt 
Filezilla auf Typ "Auto" und die Datei ist vom Typ ".txt", wird der 
Dateiinhalt wie oben beschrieben manipuliert. Da habe ich mir also 
selber ein Bein gestellt.

Peter

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren