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!
SerialPort.DataReceived
// EDIT: Du scheinst Probleme mit deiner Shift-Taste zu haben...
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
Und generell zur seriellen SS hab ich auch noch einen Link:
Warum nimmst du nicht das DataReceived Event, dann musst du gar nicht pollen. Das Event wird gefeuert sobald was an der Schittstelle ankommt...
Vielen Dank fuer eure Beitraege. Der Tipp mit DataReceived war genial und hat zum Ziel gefuehrt!