Hallo zusammen,
ich habe Probleme eine GPRS Verbindung zu einem privaten Netzwerk zu
initialisieren. Ich habe den APN, Benutername und Passwort.
Ich verwende das Telit GE864-Quad mit integriertem TCP/IP Stack.
Wenn ich jetzt aber nun den Sockel öffnen will, erhalte ich ein ERROR
zurück.
Hat vielleicht jemand bereits Erfahrung mit diesem Modem? Das Modem soll
nicht always online sein. nach dem versenden soll der sockel wieder
geschlossen werden.
Was sollte ich noch beachten, wenn ich serielle Daten via GPRS versenden
möchte?
GPRS VERBINDEN:
AT+CGATT = 1
Antwort: OK
Kontext definieren:
AT+CGDCONT= 1,”IP”,”apn”,”yyy.yy.yyy.yy”,0,0
Antwort: OK
TCP-IP Stack konfigurieren:
AT#SCFG = 1, 1, 512, 30, 300,100
Antwort: OK
Kontext aktivieren:
AT#SGACT = 1, 1, “xxxxxxx”,”xxxxxxxx” // Username und Passwort
Socket öffnen:
AT#SD = 1 , 0 , 20 , xxx.xx.xx.xxx, 0,0,1
Antwort: ERROR
Daten über Socket 1 versenden
AT#SSEND=1
>Test<CTRL-Z>
AT#SH = 1 , 0 , 20 , xxx.xx.xx.xxx, 0,0,1
Hallo, also dir ist aber schon klar, dass auf der anderen Seite ein Session Server sein muss. Wer hält den die Verbindung? ciao, Philipp
Hi Philipp, danke für deine Antwort. Genau ein Server muss immer hören ob war reinkommt. Mein Endgerät initiiert und beendet die Verbindung. Dann wird es wohl daran liegen, dass ich noch gar keine Server laufen gelassen hab. Aber das da gleich ERROR kommt, komisch.
Hallo, ja der erste Zugriff auf den Server öffnet die Session und über die ist dein GPRS-Modem permanent verbunden. So erfolgt dann auch die Kommunikation, denn die UMTS oder GPRS Dinger haben ja fast nie eine IP über die man sie erreichen kann (dyn. nach dem Aufbau natürlich). Hab ich schon oft in C# programmiert. ciao, Philipp
Hallo Philiip, kannst du mir da vielleicht zwecks der Initialisierung helfen? Ich habe eine Applikation geschrieben, die mir event-getriggert zunächst einen 15 sec Alarmruf und dann die Maschinenparameter via SMS auf mein Mobilfunktelefon versendet. Event--> Alarmruf --> SMS versenden. Das klappt soweit ganz gut. Allerdings möchte ich jetzt noch mehrere Datensätze. via GPRS versenden. Nur, bei mir happerts schon bei der Initialisierung. Wie muss ich das GPRS Initialisieren um dann einfach Daten an meine Gegenstelle zu senden? Meine Applikation soll dann nach einer bestimmten Zeit die Verbindung wieder trennen. Ich will also nicht eine permanente Verbindung zur Gegenstelle, den ich will ja, das bei einem Event eine SMS verschickt wird. Wäre wirklich nett, wenn du oder andere mir hierbei weiterhelfen könnten. Ich programmiere in C. Wie gesagt, ich verwende das Telit GE864 QUAD. Viele Grüße
Hallo, tja leider ist jedes Modem anders. Ich habe Sagem, u-blox und enfora verwendet und nur das Sagem hat gut funktioniert. Jedes Modem hat andere Befehle, da ist nichts mit dem AT-Befehlsstandard. Meine Befehle für TCP/IP fangen alle mit AT+KT... an. Also so ca (aus dem IP Manual von Telit) ... AT+CGDCONT=1,"IP","provider.apn.com","0.0.0.0" ---> Verbindung zu deinem APN, Protokoll IP und get dyn. IP AT#SD=3,0,80,"www.deinserver.com" ---> Verbindung zur IP/HOST auf Port 80 auf Kanal 3 (mehrere möglich) ATD*99***1# ---> connect Und dann kannst schon Daten senden ... Frage, warum sendest du nicht direkt eine SMS weg??? ciao, Philipp
Hallo Phillip,
Danke für die Antwort!
Da habe ich wohl das ATD*99***1# vergessen. Ich probiers gleich mal aus.
>>Frage, warum sendest du nicht direkt eine SMS weg???
wie meinst du das? Wegen dem zuerst durchgeführten "Anklingeln"?
Hallo, die SMS sendet das GSM-Modem oder dann der Server? Bin etwas verwirrt nun :-) ciao, Philipp
Hallo Philipp, sorry, das kann ich verstehen, war etwas blöd erklärt. Also mein Modem soll via GSM Dienst event-getriggert SMS an ein Mobilfunktelefon versenden. Bei Bedarf aber via GPRS größere Datenmengen an meine Server-Session. Noch eine Frage: Muss ich nach dem Aktivieren des Sockels wirklich noch ATD*99***1# eingeben oder reicht das, wenn ich nur den Socket aktiviere und dann mit AT#SSEND=1 meine Daten?
Hallo, ich glaube bei deinem Telit ist es wie beim Sagem, da macht das der Socket. Ich hab gerade nochmal nachgesehen (Code aus 2008) und ich habe auch nur den SEND drinnen. Wie machst du denn die Gegenstelle - also den Session Server? C, C++, C#,...? MS : http://msdn.microsoft.com/en-us/library/system.net.sockets.tcplistener.acceptsocket(v=vs.80).aspx Nach dem Connect musst du ein Thread aufmachen und der läuft dann in einer Endlosschleife und hört auf den Port. Wenn du den gleich zumachst, dann wirst du immer einen ERROR zurück bekommen. Nur wenn du den Stream schließt, dann wäre es richtig. ciao, Philipp
Hallo Bernd, vielleicht kann Dir Telit mit seinem Technical Support Forum weiterhelfen: http://www.telit.com/en/services/technical-forum.php Gruß, Kit
Hallo Phillip, Die Gegenstelle will ich mit LabView realisieren. Nur nochmals eine kurze Verständnisfrage: Mein Server soll ja im Grunde immer nur auf Nachrichten bzw. Daten von meinem GSM Modem warten! Also muss er im Grunde ja nur ständig am Port hören ob was von meinem GSM Modem kommt. Gibts da schon was fertiges wo ich nur noch den Port einstellen muss und mir die gesendeten Daten dann im Rohformat auf meinem PC anzeigt? VG
Hallo, naja es gibt 2 Methoden. Entweder du machst eine Session zwischen den beiden oder du sendest einen Request (zB. HTTP) und bekommst die Antwort. Was dein Modem kann musst du bitte Telit fragen. Wenn du einen HTTP Request absetzen kannst, dann ist es leicht. Einen Webserver mit XAMPP, PHP und die Daten kommen in ein File, DB, ... Den Webserver kannst ja auf jeden Port laufen lassen bzw. hat Labview sowas ??? Wenn nicht dann Google mal nach "session server", da bekommst jede Menge Demo oder Freeware zum Probieren. ciao, Philipp
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.