AT befehle an ein Modem senden
-
Hallo leute,
Ich möchte ein Programm erstellen mit dem ich ähnlich wie mit zb dem Hyperterminal AT befehle an ein Modem senden kann. Jetzt würde ich gerne wissen ob dies Möglich ist bzw ob es schon Terminalkomponenten oder ähnliches gibt.
Greez
TheGeek
-
Hi,
du kannst die serielle Schnittstelle ansprechen, dafür gibt es reichlich Komponenten.
Darüber kannst du dann deine AT Befehle ans Modem senden.
-
hey,
welche komponente würdest du mir empfehlen mit der man dies relativ einfach umsetzen kann ? Denn ich habe zwar schon etwas gesucht doch leider nix wirklich passendes gefunden.
-
Für Borland Builder gibts die TComPort Komponenten für serielle Schnittstellen.
Guggst Du mal bei Google..
-
Komponenten kenn ich da zwar keine, aber einige Befehle die da auch sehr hilfreich sind:
CreateFile
GetCommState
SetCommState
WriteFile
ReadFileauch die Suchfunktion liefert einige Beispiele:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-122860-and-start-is-0-and-postdays-is-0-and-postorder-is-asc-and-highlight-is-%2Aport%2A.html
-
Hey leute,
habe mich mal duch ein paar websiten gewühlt und einige nützliche komponenten gefunden. Unter anderem gibt es auf dieser Seite ein paar SerialPort Komponenten.
Was mir jedoch bei allen Komponenten aufgefallen ist, ist die Tatsache das zwar Daten an das Modem gesendet werden
(erkennbar daran das die LED's am Modem kurz aufblinken) aber AT befehle werden fleißig ignoriert -.-also wenn ich zb mit der Komponente TCiaComPort eine verbindung aufbaue schaut das so aus:
void __fastcall TForm1::FormCreate(TObject *Sender) { ComPort->PortOpen(); } //--------------------------------------------------------------------------- void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action) { ComPort->PortClose(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString tmpStr = Edit1->Text; ComPort->Send(tmpStr.c_str(), tmpStr.Length()); }Wenn man jetzt auf den Button1 Klickt wird der text aus dem Edit1 feld an das Modem gesendet, doch wenn ich sowas wie atd4711 sende passiert nix
... wenn ich das gleiche in einer Terminalsoftware mache wird die nummer 4711 angewählt.Was mache ich falsch ... wird ein AT Befehl evtl. nicht wie ein String Übertragen ?
Danke
TheGeek
-
Ich vermute, daß ein carrage return bzw. line feed
"\r\n"fehlt. Im Terminal drückst du ja sicherlich auch <return> nach dem Kommando.
-
jup hab ich auch grade selber herausgefunden
denn mit"^m"klappts auch

PS: hab mir übrigens das TMS Async32 Komponenten Paket installiert und finde das die echt gut ist !