Laden...

serielle schnittstelle auslesen mit timer

Erstellt von _matthi_ vor 14 Jahren Letzter Beitrag vor 14 Jahren 2.714 Views
_
_matthi_ Themenstarter:in
12 Beiträge seit 2010
vor 14 Jahren
serielle schnittstelle auslesen mit timer

hallo leute,

ich habe eine rfid-antenne, an die immer wieder rfid-tags gehalten werden. Die antenne ist mittels serieller schnittstelle am pc angeschlossen.
Das auslesen der Tags funktioniert soweit wunderbar (ich benoetige ohnehin lediglich die 16-stellige hex-id).

Folgendermassen gehe ich vor:


im Konstruktor:
SerialPort sp = new SerialPort(...);

button1click()
{
 sp.open();
 timer1.enabled = true;
}

timer1_tick()
{
 richtextbox.appendtext( sp.readline() );
}

das problem ist aber, dass die windows form sich komplett aufhaengt (ich kann da drinnen nichts mehr machen ab dem zeitpunkt wo ich button1 anklicke). Was fuer ansaetze gibt es, dass ich das mit dem timer in den griff bekomme? habs schon mit threads versucht, das fuehrte aber auch nicht zum ziel 😦.

Viele gruesse und besten dank im voraus!

479 Beiträge seit 2008
vor 14 Jahren

SerialPort.DataReceived

// EDIT: Du scheinst Probleme mit deiner Shift-Taste zu haben...

[Follow me on Twitter](http://twitter.com/blendingsky)
49.485 Beiträge seit 2005
vor 14 Jahren

Hallo matthi,

das problem ist aber, dass die windows form sich komplett aufhaengt (ich kann da drinnen nichts mehr machen ab dem zeitpunkt wo ich button1 anklicke.

ich gehe davon aus, dass SerialPort.ReadLine solange blockiert, bis eine komplette Zeile übertragen wurde. Siehe auch [FAQ] Warum blockiert mein GUI?

herbivore

888 Beiträge seit 2007
vor 14 Jahren

Und generell zur seriellen SS hab ich auch noch einen Link:

Template SerialPort

M
231 Beiträge seit 2007
vor 14 Jahren

Warum nimmst du nicht das DataReceived Event, dann musst du gar nicht pollen. Das Event wird gefeuert sobald was an der Schittstelle ankommt...


Gruß MB

Home of DigiJay - DJ-Freeware

_
_matthi_ Themenstarter:in
12 Beiträge seit 2010
vor 14 Jahren

Vielen Dank fuer eure Beitraege. Der Tipp mit DataReceived war genial und hat zum Ziel gefuehrt!