Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Com Porttriggeravail (https://www.delphipraxis.net/58733-com-porttriggeravail.html)

makowsky 11. Dez 2005 20:28


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;

marabu 11. Dez 2005 20:44

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:
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;
marabu

makowsky 11. Dez 2005 21:28

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

chrisw 12. Dez 2005 07:12

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 !

makowsky 12. Dez 2005 07:55

Re: Com Porttriggeravail
 
hallo chris

soll ich den string mit pos und copy auslesen oder gibt es da eine funkzion für.

danke stefan

marabu 12. Dez 2005 08:33

Re: Com Porttriggeravail
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Stefan.

Zitat:

Zitat von makowsky
kanst du mir ein tipp geben wie das mit dem buffer gehen soll.

Ich habe dir eine Demo erstellt. Schau mal rein.

Grüße vom marabu

chrisw 12. Dez 2005 09:43

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)

makowsky 12. Dez 2005 11:39

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

marabu 12. Dez 2005 12:15

Re: Com Porttriggeravail
 
Delphi-Quellcode:
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'
Alles klar?

marabu

makowsky 12. Dez 2005 12:19

Re: Com Porttriggeravail
 
alles klar

danke jetzt komme ich zu meinen zielen vielein vielein dank


stefan


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:30 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz