Delphi-PRAXiS
Seite 3 von 5     123 45      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi An com port gesendete daten lesen (https://www.delphipraxis.net/148540-com-port-gesendete-daten-lesen.html)

schweindi 5. Mär 2010 20:19

Re: An com port gesendete daten lesen
 
es ist ein Nokia CS-15 usb umts modem, umts deswegen, weil unser Provider nur auf umts basis funktioniert.
Und es muss so über einen COM Port gehen, da die software leider veraltet ist.

Also von den Befehlen her:

At ... OK
at+cpin? ... +CPIN: Ready

usw... ganz einfaches gsm modem, es geht mir nur darum:

mit ComPort1.ReadStr(string,255) bekomme ich nur den jeweils ersten Buchstaben, ich will aber immer das ganze packet haben, wie kann man das einfach machen? Ich dachte nur wenn ich schon diese Paketoption habe, verwende ich sie doch gleich...

Virtuelles Modem:
Ein Programm, dass einen Com Anschluss simuliert und ausgibt, welche Befehle versendet & empfangen werden. Es ist halt einfacher so mein Programm auf Fehler zu prüfen.

Matczek 5. Mär 2010 20:25

Re: An com port gesendete daten lesen
 
Zitat:

Zitat von WoGe
... kann man auch ein ganz normales Handy mit Bluetooth nehmen. Hab ich mit meinem Uralt-Handy mal ausprobiert und ging einwandfrei. Hat zudem den Vorteil keinerlei Kabel zwischen Rechner und Handy notwendig.

Wenn man aber sowas wie (wichtige) Ausfälle via SMS melden muss sollte man sicherhaltshalber verdrahte GSM-Modems nehmen. Diese Verbindung bricht nur äusserst selten ab ;-)

Matczek 5. Mär 2010 20:30

Re: An com port gesendete daten lesen
 
[edit]okay okay ich lese bald richtig ich verspreche es!![/edit]

Da wird dir jemand mit TCOMPort Erfahrung weiterhelfen müssen.

gruss
Matthias

schweindi 5. Mär 2010 20:36

Re: An com port gesendete daten lesen
 
ja... :) viel glück dabei noch ^^

Ich will ja eigentlich nur wissen, wie ich die Echos vom Modem ausgeben kann in meinem Programm? Wie schon erwähnt verwende ich TComPort und das Paketobjekt funzt nicht bei mir.

Matczek 5. Mär 2010 21:14

Re: An com port gesendete daten lesen
 
Trage in deiner *.dfm vom Packet mal folgendes ein
Delphi-Quellcode:
StopString = #13
und nicht wie du geschrieben hattest
Delphi-Quellcode:
StopString = '#13'
Bei deinem wartet er auf den String "#13" beim anderen auf den Char #13 (CR)

gruss matthias

schweindi 5. Mär 2010 21:40

Re: An com port gesendete daten lesen
 
wunderbar!
ich dachte eig, wenn ich es im Object Inspector bei den Einstellungen einfüge, wird es eh als char gespeichert, naja dem war nicht so.

Gut jetzt hab ich auch gleich Start: #10 Stop: #13 eingefügt, das geht super.. jetzt noch die entscheidende Frage (ich komm mir echt schon doof vor): wo wird der String gespeicher??

Ich hab grad in Help gesucht, da wird nirgends eine methode zum auslesen bzw variable zum Speichern erwähnt!

schweindi 5. Mär 2010 22:15

Re: An com port gesendete daten lesen
 
ah ich habs gefunden:

Delphi-Quellcode:
procedure TForm1.ComDataPacket1Packet(Sender: TObject; const Str: String); //da ist es ja, das str!
begin
ShowMessage(str);
end;
wenn ich das so ausführe und im terminalfenster vom virtual com port das eingebe:
#10
OK
#13

(wäre ja standard antwort auf "AT") dann kommt eine eher größere MsgBox wo aber nichts drin steht!

Matczek 6. Mär 2010 09:23

Re: An com port gesendete daten lesen
 
ich hoffe du hast nicht "#10" eingegeben sonden einfach "AT"+<Enter> gedrückt!
Ersteres ist wieder der String "#10" und nicht das Steuerzeichen LF

bzgl der großen msgbox: schau dir mal "trim" an

Gruß
Matthias

schweindi 6. Mär 2010 11:42

Re: An com port gesendete daten lesen
 
nei, nein :) habe natürlich enter gedrückt!
Ich meinte: In meinem programm schreibe ich "at" und dann steht im Terinalfenster vom VirtualPort:
"Recieved: at" dann schreibe ich halt "ok+(enter)" und er erfasst zwar im delphi programm, dass sozusagen das packet aus ist, aber er zeigt mir nur ein leeres Fenster an, das je nach größe des ReadBuffers groß ist. Also er gibt mir den String nicht aus!

[EDIT] ich habe trim verwendet auf den String der in der MsgBox gezeigt wird und ja, die größe bleibt immer gleich, aber er zeigt keine buchstaben an... also so als ob die Packet Procedure von Tcomport falsch wäre... also ka was genau da noch falsch sein kann.[/edit]

schweindi 6. Mär 2010 12:37

Re: An com port gesendete daten lesen
 
so hab jetzt mal was überprüft:

1) Die Länge des output strings von TComDataPacket ist unterscheidlich, dh es werden Leerzeichen sozusagen "gelesen"
2) Ich hab den "Buffer" mal nach einer Eingabe des "Modems" ausgelesen:
Delphi-Quellcode:
//----
var str2 : TComBuffer;
begin
str2:=ComPort1.Buffer;
ShowMessage(Char(str2));
end;
das gibt nach jeder Ausgabe das Zeichen "é" aus... wieso??

vielleicht half das ja etwas weiter!?


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:30 Uhr.
Seite 3 von 5     123 45      

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-2025 by Thomas Breitkreuz