AGB  ·  Datenschutz  ·  Impressum  







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

Serielle Schnittstelle pollen

Ein Thema von DelphiManiac · begonnen am 24. Aug 2006 · letzter Beitrag vom 30. Aug 2006
Antwort Antwort
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#1

Serielle Schnittstelle pollen

  Alt 24. Aug 2006, 13:04
Hallo,

ja ich weiss das Thema 'RS232' gibt es schon ein paar mal, aber zu meiner Frage gibt es dort leider keine Lösung.
Also bitte nicht schlagen!!

Ich habe ein Gerät mit dem ich sowohl über USB als auch über RS232 kommunizieren muss.
Die Kommunikation erfolgt über eine DLL des Hersteller FTDI .
Diese klappt alles wunderbar.
Ich habe eine asynchrone Übertragung. --> Dass heißt ich frage Daten an und bekomme eine Antwort.

Ich muss nun folgendes machen :
1. Datenanfragen
2. Schnittstelle pollen bis erwartete Anzahl Bytes im Buffer, wenn nicht, nach einer bestimmten Anzahl Versuchen abbrechen.
Dass klappt auch wunderbar. Ich habe bei USB eine Funktion zur Abfrage der am Port liegenden Bytes.
Ich kann also folgendes machen:

Delphi-Quellcode:
  repeat {Pollen des USB-Ports}
    Sleep(1);
    QBytes:=Get_QBytes(1); // Bytes am Port
    inc(iPolling);
  until (QBytes =7) or (iPolling >100); 7 Bytes erwartet
3. Dann kann ich die Bytes vom Port lesen.


Ich habe alles im VCL-Thread.

Würde gerne (die gesamte Kommunikation) in einen externen Thread auslagern.

Nunja.

Nun zum Thema,

ich nutzte die AsyncPro Komponente.
Hier gibt es dass Ereignis:
ApdComPort1TriggerAvail(CP: TObject; Count: Word); Mein Problem nun ich will den Port abfragen können und nicht auf ein Ereignis warten müssen, da ich sonst bei einem
Thread(dem VCL-Thread) in Teufels Küche komme.


Vielleicht könnt ihr mir helfen
Gracias...
  Mit Zitat antworten Zitat
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#2

Re: Serielle Schnittstelle pollen

  Alt 30. Aug 2006, 15:42
Kann mir keiner helfen???
  Mit Zitat antworten Zitat
arnold mueller

Registriert seit: 27. Jul 2005
129 Beiträge
 
#3

Re: Serielle Schnittstelle pollen

  Alt 30. Aug 2006, 23:51
Hallo,

mit Apro kannst Du grundsätzlich mit ApdComPort1.GetChar ein Zeichen aus der Schnittstelle lesen. Allerdings habe ich damit schlechte Erfahrungen im Zusammenhang mit VCL Threads gemacht. Insbesondere auf Hyper-Threading Maschinen ist der interne Puffer der Apro Komponente durcheinander gekommen, sodass Zeichen doppelt (und dreifach) vorkamen.

Gruss,
Arno
  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 00:27 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