![]() |
Delphi-Version: 2009
SMS Server via COM TC35i
Guten Tag und Hallo! :)
Einleitung: Bei meinem derzeitigen Projekt handelt sich um ein Programm, mit der Aufgabe eines SMS Servers. Was macht dieser SMS Server? Er empfängt über Ethernet SMS Aufträge und schickt diese dann über eine COM Schnittstelle von ![]() mit Log Files, Zustandmaschinen, Zwischenspeichern etc. Leider macht mir diese Komplexität es auch unmöglich, Ausschnitte zu posten. Dies müsste aber in erster Linie weniger schlimm sein, es geht mir eher um eine Bestätigung einer Sache die mir aufgefallen ist. Außerdem noch eine Info vorraus: Das System ist in Delphi 2007 erstellt worden und ich habe es dann in 2009 neu aufgesetzt! Wärend des wechselns der Delphi Versionen hat sich Inhaltlich eines geändert und dies ist die Serielle Komponente. ################################################## ## Da ich nun ziemlich nah am Problem bin, möchte ich dieses kurz Umschreiben. Mein System besteht aus meinem PC, mit einer direkten seriellen Verbindung von 2-3 Meter zum TC35i. Außerdem hängt noch ein Adapter dazwischen welcher es mir erlaubt mithören zu können. D.h. ich klicke mich mit meinem Laptop ein und lese die empfangenen und gesendeten Daten ab. Der Inhalt den ich Sende besteht aus dem at+csca -> Servicecenter at+cmgf -> Textmode Sowie dem Problembefehl des SMS Sendens! Dieser wird wie folgt abgesetzt: at+cmgs="Handnummer",145<cr>Text<ctr+z> cr = chr(13) ctrl+z = chr(26) Wenn dieser Befehl so an das TC35i gesendet wird, ist das auch kein Problem. Denn es kommt wie es auch sollte auf meinem Handy eine SMS mit dem korrekten Text an. Nun ist mit wärend des laufenden Betriebes ein Trend aufgefallen: bei 100 SMS (ca. 1 Tag) werden 10 % zwar verschickt aber es werden bei dem Text zeichen abgeschnitten. (Wo wir jetzt bei der eigentlichen Frage wären) D.h. es kommen SMSen an mit Test als Text oder auch welche mit st oder nur t als Text. Ein Kollege von mir hatte bei einem anderem Programm, ein ähnliches Problem das Strings abgeschnitten wurden. Daher jetzt die Frage, ist einem von euch irgentwas bekannt dazu? Kann mir jemand weiter helfen? Was mich entgültig verwirrt ist, das wenn ich das ganze im Hyperterminal absetzte der selbe Trend entsteht. Bei der Änderung kam außerdem folgendes Problem auf: Die alte Komponente arbeitete mit SendData meine neue mit einem AnsiString: SendString. Außerdem der noch der Hinweis, der Befehl wird zusammen gesetzt. D.h. Handynummer und Text sind AnsiStrings. Der absolute Knüller kommt aber erst :) wer dachte ist ja ganz simpel dein TC35i ist defekt -> Nein, leider nicht :( Grund: Mit der alten Softwareversion unter 2007 mit der alten komponente funktioniert es dauerhaft sehr gut. Ich für meinen Teil verzweifel langsam an dem Thema, weil es für mich einfach nicht mehr Logisch ist. Evtl. gibt mir einer von euch einen Denkanstoß. Danke schonmal im vorraus dafür! Ansonsten wenn ihr noch irgentwelche Infos benötigt, dann werd ich probieren diese natürlich zu bringen. Einfach hier danach fragen. Daniel |
AW: SMS Server via COM TC35i
Welche Komponente zur Ansteuerung der seriellen Schnittstelle nutzt du denn jetzt und welche hast du vorher genutzt ?
(Nutzt du jetzt Async Prof, oder hast du es vorher genutzt ?) Chris |
AW: SMS Server via COM TC35i
Jetzt benutze ich die Async Prof. zu welcher ich verlinkt habe.
Vorher habe ich die Komponente : SerialPortNG benutzt. Finde dazu leider keinen Link. SerialPortNG: SendData(Data: pointer, Size: Cardinal) AsyncPro: PutString(AnsiString) alternativ wäre hier noch PutChar(const C:AnsiChar) Noch eine Info. Ich habe mit der alten Komponente unter 2009 ein Testprogramm gemacht. Ergebnis: selbe Problem wie oben beschrieben. -> Hääää Faktor². |
AW: SMS Server via COM TC35i
Tut mir leid, da kann ich nicht weiterhelfen, ausser den klugen Spruch, nochmal die Parameter
zu überprüfen. (Baudrate, Databits, Stopbits, RTS/CTs ..) Sorry Christian |
AW: SMS Server via COM TC35i
Trotzdem danke dir... war auch einer meiner ersten Gedanken. Leider passt das alles.
|
AW: SMS Server via COM TC35i
Hi,
versuch mal in Hyperterminal die SMS in 2 Teilen zu senden: 1) at+cmgs="Handnummer",145<cr> 2) Text<ctr+z> Eigentlich müsste nach dem ersten Senden (1) eine Meldung ausgegeben werden, erst dann den zweiten Teil senden. (zumindest ist es beim: 'Wavecom Fastrack Supreme 10 Quad Band Modem' so, ansonsten werden dort die ersten 8 Zeichen der SMS nicht übertragen) ![]() Auszug Seite 164: "After invoking the commands CMGW, CMGS, CMGC wait for the prompt ">" and then start to send text to the module..." |
AW: SMS Server via COM TC35i
Ich hätte folgende Idee: D2007 -> D2009 = Unicode ist dazu gekommen. Ich weiß jetzt nicht wo Du AsyncPro herbekommen hast, aber vielleicht stimmt da mit den Componenten etwas nicht. Da die letzte Version auf Sourceforge von AsyncPro auch schon etwas älter ist, kann ich mir das gut vorstellen. Ich arbeite Alternativ auch mit
![]() Ich würde mal in dieser Richtung ansetzen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz