LabVIEWForum.de
Virtueller Comport mit Interrupt - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: Hardware (/Forum-Hardware)
+--- Thema: Virtueller Comport mit Interrupt (/Thread-Virtueller-Comport-mit-Interrupt)



Virtueller Comport mit Interrupt - fosters - 01.06.2010 16:08

Hallo liebes Forum,

ich hänge an einem Problem, und weiß einfach nich, was falsch läuft.

Mein Vi soll Daten(aus einem uController) die es über den virtuellen Comport bekommt in eine Textdate schreiben.

Ich hatte erst folgende Lösung ausprobiert:
Sobald der Controller Daten zum senden bereit hat, hängt er in einer Whileschleife, bis LV das Zeichen "#" an ihn sendet.
Wenn LV zum Empfang bereit ist, dann sendet es die Raute "#" und der Controller schickt die Daten los.

Das hat auch prima geklappt, nur eben nicht immerSad
Wenn die Raute "#" -warum auch immer- nicht ankommt im Controller, dann hängt das ganze Programm.
Ungut ...



Also hab ich einen anderen Ansatz versucht:
Der Controller sendet wann er will und LV überwacht den Eingangspuffer.
Leider werden massenhaft Zeichen verschluckt und ich weiss nicht woran das liegt ...

Könnt Ihr mir helfen?


Gruß
Fosters


Hier mein Vi


Virtueller Comport mit Interrupt - eg - 01.06.2010 17:24

Hi!

Wie sieht ein Datensatz aus?


Virtueller Comport mit Interrupt - Y-P - 02.06.2010 06:57

Mach' doch auch mal die Initialisierung und das Schließen der Schnittstelle aus der Whileschliefe raus (also Initialisierung davor, Schließen dahinter).

Gruß Markus


Virtueller Comport mit Interrupt - Lucki - 02.06.2010 08:30

Mir gefällt das Protokoll und die Art es Empfangs so nicht. Sehr gut ist das Master-Slave-Prinzip, daß also der Contoller erst sendet, wenn er dazu aufgefordert wird.
Der PC (lv) sollte aber auch wissen, wann der Controller fertig ist mit senden. Wie funktioniert das bei Dir? Die Verwendung von "Bytes at Board" verheißt mir hier nichts Gutes.
Gut sind 2 Möglichkeiten:
1.) Die vom Controller gesendete Bytezahl ist genau bekannt. Dann einfach diese Byteszahl an Visa Read anschließen.
2.) Es wird vom Controller ein Abschlußzeichen (TermChar) gesendet. LV-Standard ist Ctrl-A. Bei Senden von Texten ist das die naheliegendste und beste Möglichkeit.

Grundsätzlich solle man auch Fehler abfangen, z.B Timeout und Rahmen-Synch-Fehler. Solche Fehler sind quasi normal und darauf muß so reagiert werden, daß das nicht gleich zum Abbruch des Programms oder zum Absturz oder Hängenbleiben des ganzen Systems führt.