![]() |
Re: Verbindung mit COM-Schnittstelle aufbauen über TComPort
Scheint an Deiner Übertragunsgsstruktur zu liegen. Du musst Anfang und Ende finden. Was schickst Du denn für eine Abschlusssequenz, wenn die Übertragung des Prozessors beendet ist? CR/LF oder so?
Grüße, Messie |
Re: Verbindung mit COM-Schnittstelle aufbauen über TComPort
so nun hab ichs das schon mal geschafft, der string ist mit den richtigen daten gefüllt. es wird die zeichenkette im memo und im label agezeigt allerdings kommt es im memo noch manchmal zu störungen, bei denen dann nicht die ganze zeil erichtig übretragen wird.
Code dazu:
Delphi-Quellcode:
procedure TForm3.ComPort1RxBuf(Sender: TObject; const Buffer; Count: Integer);
var RXStr_LS1 : string; begin sleep(568); ComPort1.Readstr(Strx, 20); Memo1.Lines.Add(strx); if Strx = 'MV 26,92km/h 5,76m/s' then label24.caption := strx; Application.ProcessMessages; end; JETZT würde ich aber noch gerne aus der zeichenkette die beiden geschwindigkeiten auslesen und einzelen in einem label anzeigen lassen. dazu hab ich mir mal so möglichkeiten zur extraction angesehen, wie expect(),.... aber ich kenn mich da gar nicht aus. Wie könnt ich das am besten machen?? |
Re: Verbindung mit COM-Schnittstelle aufbauen über TComPort
Na denn, prüfe auf Vorkommen MV + #$20, lese erste Geschwindigkeit mittels Pos und Copy bis zum nächsten Leerzeichen und zweite Geschwindigkeit in gleicher Form aus und die Welt ist wieder in Ordnung.
oki |
Re: Verbindung mit COM-Schnittstelle aufbauen über TComPort
Zitat:
Grüße, Messie |
Re: Verbindung mit COM-Schnittstelle aufbauen über TComPort
Zitat:
|
Re: Verbindung mit COM-Schnittstelle aufbauen über TComPort
Danke für die schnellen Anworten Leute, aber ich check nicht wie ich pos() und copy() richtig einsetzen soll.
Und das funzt auch nicht:
Delphi-Quellcode:
@messie
if Strx = ('MV' + #$20) then
label24.caption := strx; ich fülle die werte mit nullen auf also an der stellenanzahl und belegung ändert sich gar nichts, Wie hilft mir das weiter? |
Re: Verbindung mit COM-Schnittstelle aufbauen über TComPort
Zitat:
Eher mit Pos:
Delphi-Quellcode:
Alles ungetestet.
if Pos('MV'+#20,strx) = 1 then
begin //aha, Du bist am Beginn Deiner Sequenz end; //andere Variante if Pos('MV'+#20,strx) > 0 then //ist die 3er-Squenz in der Variable enthalten? begin i := Pos('MV'+#20,strx); //Anfang suchen strZ := copy(strx,i+4,5);//damit solltest Du "26,92" im Kasten haben. end; Grüße, Messie |
Re: Verbindung mit COM-Schnittstelle aufbauen über TComPort
WOW vielen herzlichen DANK es klappt. JUHU :hello: :bounce2: :dancer:
Aber leider wars das noch nicht. Ich muss ja auch was senden. mit:
Delphi-Quellcode:
müsste doch eigentlich klappen oder? nur wie überprüf ichs am PC obs auch rausgegangen ist. Terminalprob hätt ich versucht aber ich kann ja nicht mit dem Programm und dem Hterm eine Verbindung aufbauen.
ComPort1.WriteStr('TEST');
Habt Ihr ne idee?? |
Re: Verbindung mit COM-Schnittstelle aufbauen über TComPort
Also eine Überprüfung der gesendeten Sachen ist nicht vorgesehen. Die Daten werden ins COM-Register geschrieben und dann irgendwie umgesetzt. Das macht unter Windows der Treiber und jeder macht es anders (sonst gäbe es keine virtuellen Ports einer BT-Hardware :wink: ). Da musst Du tatsächlich einen anderen Rechner mit Hyperterminal dranhängen (oder etwas Vergleichbares). Ich hab' für solche Zwecke immer ein ein Lauscherkabel bei mir - Du verbindest Deinen µC mit dem PC und lässt es laufen - am Lauscherport hängst Du Dein Notebook oder notfalls ein Oszi dran. Funzt meistens prima.
Grüße, Messie |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:27 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-2025 by Thomas Breitkreuz