Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
ich habe gerade ein Hardware Projekt fertig, bei dem mein µC über die (bluetooth) serielle schnittstelle ADC-Daten und Zeitwerte verschickt. Nun habe ich bisher über Hyperterminal-ähnliche Programme kommuniziert und Daten gelesen, würde jetzt aber gerne -vorallem auch wegen der Verarbeitung und Anzeige der Daten zur Laufzeit ein LabView-VI dafür bauen.
Die absoluten Grundsätze zum Lesen/Schreiben von Daten in die serielle Schnittstelle sind mir bekannt: Meine Frage ist die, ob es (hier?) bereits funktionierende VI-Templates gibt, die sozusagen die Funktionen eines Hyperterminals übernehmen. Damit meine ich insbesondere ein Grundgerüst, bei dem zeichen eingegeben und gesendet werden (Eventbasiert?) und der Empfangsbuffer zu Zeitpunkten (z.B. wenn eine bestimmte Zahl an empfangenen bytes eingetroffen ist) ausgelesen und verarbeitet wird.
Zum Schluss möchte ich eine Executable bauen, mit der ich über verschiedene Buttons die Befehle (einzelne Bytes) an den µC schicken kann und die immer wenn ein Datenpaket (in meinem Fall 20Bytes) angekommen ist dieses verarbeitet.
Könntet ihr mir dazu Hinweise auf Templates oder Hilfen geben? Für mich ist insbesondere noch unklar wie ich den Buffer nach festen anzahlen von empfangenen Datenbytes auslese und sortiere: Mein HTerm Programm versteht das gesendete CR+LF ja insofern schon, dass ich die Pakete untereinander angezeigt bekomme - in diese Form muss ich meine Daten ja auch in Labview irgendwie bekommen!
(03.02.2014 18:10 )ExXeQtor schrieb: Für mich ist insbesondere noch unklar wie ich den Buffer nach festen anzahlen von empfangenen Datenbytes auslese und sortiere: Mein HTerm Programm versteht das gesendete CR+LF ja insofern schon, dass ich die Pakete untereinander angezeigt bekomme - in diese Form muss ich meine Daten ja auch in Labview irgendwie bekommen!
Hallo Alexander,
ein LF wird auch in LabView als Zeilenumbruch dargestellt. Insofern sollte das schonmal gleich aussehen.
Du kannst beim Konfigurieren der ser. SS. ein Ende-Zeichen setze, bis zu welchem jeweils gelesen werden soll. Ist dieses auf LF gesetzt, dann enthalten deine Pakete schonmal die Daten von LF bis LF. Diese kanst du dann parsen (ggf. vorher in bytes wandeln, je nachdem, was du erwartest) und entsprechende Aktionen ausführen.
Du kannst aber auch auf das Endezeichen verzichten und immer eine bestimmte Anzahl lesen, wenn die Sendung über keine SyncZeichen verfügt, was allerdings "gefährlicher" ist für den Fall, dass du mal aus dem Tritt kommst.
anbei nochmal ein einfaches Terminal-VI, das vielleicht für den LV-Anfänger leichter zu verstehen ist, da auf Queues und die Universalität durch die Serialisierungsfunktion bewusst verzichtet wurde.
Hallo Marko,
vielen Dank!
Ich denke ich werde mir beide morgen mal genau anschauen. Momentan habe ich eine Realisierung meines Terminalprogramms mit Graph-Anzeige in einer Queued-State-Machine Architektur vor, daher sind Queues gar nicht mal so schlecht gewesen! Aber so habe ich die Chance noch weiter vorne einzusteigen.
Danke!
(05.02.2014 20:38 )ExXeQtor schrieb: Momentan habe ich eine Realisierung meines Terminalprogramms mit Graph-Anzeige in einer Queued-State-Machine Architektur vor, daher sind Queues gar nicht mal so schlecht gewesen! Aber so habe ich die Chance noch weiter vorne einzusteigen.
Hallo Alexander,
versteh´mich nicht falsch! Natürlich ist das Terminal von Eugen meiner Simple-Variante vorzuziehen. Und wenn du eh schon mit Queues unterwegs bist, sowieso.
Ich wollte nur für andere Nutzer, die auf diesen Thread stoßen, noch ein ganz einfaches Terminal veröffentlichen, in dem man sich komplett auf die Verbindungserstellung und die Kommunikation konzentrieren kann - als ich vor ca. 8 Jahren das erste Mal diese bunten Queue-Leitungen sah, war ich erstmal überfordert