AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Com Porttriggeravail

Ein Thema von makowsky · begonnen am 11. Dez 2005 · letzter Beitrag vom 12. Dez 2005
Antwort Antwort
makowsky

Registriert seit: 8. Nov 2004
Ort: Kiel
11 Beiträge
 
#1

Com Porttriggeravail

  Alt 11. Dez 2005, 20:28
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;
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Com Porttriggeravail

  Alt 11. Dez 2005, 20:44
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
  Mit Zitat antworten Zitat
makowsky

Registriert seit: 8. Nov 2004
Ort: Kiel
11 Beiträge
 
#3

Re: Com Porttriggeravail

  Alt 11. Dez 2005, 21:28
hi

aber der string ist wohl zu groß

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

danke stefan
  Mit Zitat antworten Zitat
Benutzerbild von chrisw
chrisw

Registriert seit: 11. Jan 2005
Ort: Schleswig
193 Beiträge
 
Delphi XE8 Professional
 
#4

Re: Com Porttriggeravail

  Alt 12. Dez 2005, 07:12
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 !
Christian Wahl
me, myself and I, die lustigen Drei !!
  Mit Zitat antworten Zitat
makowsky

Registriert seit: 8. Nov 2004
Ort: Kiel
11 Beiträge
 
#5

Re: Com Porttriggeravail

  Alt 12. Dez 2005, 07:55
hallo chris

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

danke stefan
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: Com Porttriggeravail

  Alt 12. Dez 2005, 08:33
Hallo Stefan.

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
Angehängte Dateien
Dateityp: zip apro-1_255.zip (2,6 KB, 13x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von chrisw
chrisw

Registriert seit: 11. Jan 2005
Ort: Schleswig
193 Beiträge
 
Delphi XE8 Professional
 
#7

Re: Com Porttriggeravail

  Alt 12. Dez 2005, 09:43
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)
Christian Wahl
me, myself and I, die lustigen Drei !!
  Mit Zitat antworten Zitat
makowsky

Registriert seit: 8. Nov 2004
Ort: Kiel
11 Beiträge
 
#8

Re: Com Porttriggeravail

  Alt 12. Dez 2005, 11:39
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
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#9

Re: Com Porttriggeravail

  Alt 12. Dez 2005, 12:15
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
  Mit Zitat antworten Zitat
makowsky

Registriert seit: 8. Nov 2004
Ort: Kiel
11 Beiträge
 
#10

Re: Com Porttriggeravail

  Alt 12. Dez 2005, 12:19
alles klar

danke jetzt komme ich zu meinen zielen vielein vielein dank


stefan
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:02 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