CAN-Kommunikation in paralleler While-Schleife
Guten Morgen zusammen,
ich kommuniziere über einen Peak CAN USB mit verschiedenen Geräten über einen proprietären CAN-Bus. Die eigentlich Schnittstelle in Labview funktioniert schon, d.h. ich kann Nachrichten empfangen und senden. Allerdings ist mein Labview-Programm in Bezug auf die genannte Kommunikation "ablaufgesteuert" aufgebaut. An den entsprechenden Stellen im Programm sende ich Nachrichten und warte dann auf Antworten, um diese zu verarbeiten.
Die genannte Struktur möchte ich nun so anpassen, dass die eigentliche Kommunikation in einer parallelen While-Schleife abläuft. Hier kann ich Nachrichten bereits bezüglich eines bestimmten Befehlsbereichs oder in Bezug auf einzelne Teilnehmer vorfiltern, um nur Nachrichten in meinen Eingangsbuffer zu schreiben, die von Interesse für mich sind. Auf diesen Buffer greife ich dann von meinem Hauptprogramm aus zu, reagiere auf Nachrichten und muss hier vermutlich auch Nachrichten löschen, die nicht relevant sind, um ein Überlaufen des Buffers zu verhindern.
Meine Hauptfrage bezieht sich nun darauf, wie ich den beschriebenen Buffer gestalte (vermutlich als Array von einem Cluster?) und wie die beiden Schleifen (Kommunikation und Hauptprogramm) miteinander kommunizieren bzw. gleichzeitig auf dem Buffer schreiben und lesen können?
Natürlich gibt es zusätzlich einen Ausgangsbuffer, den ich aber dann entsprechend aufbauen kann.
Vielleicht habt ihr ja den ein oder anderen Tipp für mich, wie ich das sinnvoll aufbauen kann.
Im Voraus besten Dank dafür!
|