![]() |
Com Porttriggeravail
Hallo
Jetzt habe ich ein weiteres problem Ich kann jetzt schon mal sachen an die serielle schnittstelle senden und auch was empfangen. Nur leider bekomme ich immer nur 8 zeichen dargestelt und dann wechselt er die zeile. Gesendeter String siet so aus #190;195;21:00| aber im memo feld kommt an #190;19 5;21:00| einlesen tuhe ich das jetzt so
Code:
var
i : Word; c : Char; s : String; begin s:= '' ; for I := 1 to count -1 do begin c := ApdComPort1.GetChar; s := S + c; end; Memo1.Lines.Add(S); end; |
Re: Com Porttriggeravail
Hallo Stefan,
du wirst die Zeichen eventuell zwischenpuffern müssen und erst wenn du im Puffer erkennst, dass eine Zeilenende-Kennung empfangen wurde, übernimmst du die Zeile in das Memo. Andernfalls kannst du natürlich bei kleinen Datenmengen auch so vorgehen:
Delphi-Quellcode:
marabu
var
i : Word; c : Char; s : String; begin s := '' ; for i := 1 to count do s := s + ApdComPort1.GetChar; Memo.Text := Memo.Text + s; end; |
Re: Com Porttriggeravail
hi
aber der string ist wohl zu groß kanst du mir ein tipp geben wie das mit dem buffer gehen soll. danke stefan |
Re: Com Porttriggeravail
Du kannst mglw. auch das ApdDataPacket aus der selben Komponentensammlung nutzen !
Hier gibt es einen Start - und einen StopString. Sollten die Zeichen immer gleich sein, könntest Du als StartString # und als StopString | eintragen ! |
Re: Com Porttriggeravail
hallo chris
soll ich den string mit pos und copy auslesen oder gibt es da eine funkzion für. danke stefan |
Re: Com Porttriggeravail
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Stefan.
Zitat:
Grüße vom marabu |
Re: Com Porttriggeravail
Im ApdDatapacket gibt es ein Event OnStringPacket, das genau dann auftritt, wenn StartString und EndString über die RS232 Schnittstelle reingekommen sind.
Hier nur data (string) auswerten, dort sind alle daten zwischen Start und EndString enthalten( inclusive Start und EndString, wenn Includestring true, sonst ohne die Zeichen) |
Re: Com Porttriggeravail
erstmal danke für eure mühe
noch ne kleine frage wie kann ich Decimale zeichen senden im terminal habe ich ein butten dafuer moechte gerne 0..9 senden koennen. danke stefan |
Re: Com Porttriggeravail
Delphi-Quellcode:
Alles klar?
ComPort.Output := Chr(9); // sendet das Zeichen mit dem Wert 9
ComPort.Output := #9; // sendet das Zeichen mit dem Wert 9 ComPort.Output := '9'; // sendet das Zeichen '9' ComPort.Output := #$39; // sendet das Zeichen '9' marabu |
Re: Com Porttriggeravail
alles klar
danke jetzt komme ich zu meinen zielen vielein vielein dank stefan |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 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