LabVIEWForum.de
Case-Struktur, in best. Fall andere Aktion ausführen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Signaldarstellung (/Forum-Signaldarstellung)
+---- Thema: Case-Struktur, in best. Fall andere Aktion ausführen (/Thread-Case-Struktur-in-best-Fall-andere-Aktion-ausfuehren)



Case-Struktur, in best. Fall andere Aktion ausführen - LV-Starter - 22.12.2009 16:00

Hallo.

Ich bin mal wieder mit einer Anfänger-Frage hier.

Es geht um Folgendes:

Ich habe ein boolsches Array vorliegen.

Dieses muss manchester-decodiert werden, und zwar soll das wie folgt stattfinden:

Ich hole mir immer zwei Werte aus dem Array heraus, dann die nächsten beiden, und wieder die nächsten beiden usw.
"01" soll für 0 stehen
"10" soll für 1 stehen
soweit so gut, das ist auch kein problem, WENN alles passt.

Aber die werte "00" und "11" lassen ja logischerweise auf einen Fehler schließen, oder zeigen dass ich genau um ein Bit versetzt angefangen habe.

Für den Fall das die Schleife um ein Bit "versetzt" angefangen hat, würde ich einfach die Schleife nochmal neu starten lassen, allerdings würde ich dann gerne das Array um eine Stelle rotieren lassen,das selbiges nicht nochmal auftritt. Und genau da ist mein Problem.
Will ich in den Fall 0 für 00 oder 3 für 11 das rotieren "einbauen" bekomme ich Fehler, dass ich unverbindete Tunnel hätte.

Jetzt bin ich am überlegen wie ich das, ich nenne es mal "synchronisieren" der Decodierung, hinbekomme.

Allerdings fehlen mir dazu die Einfälle.

Wäre gut wenn mir jemand einen Denkansatz geben könnte.

MFG

Das programm OHNE die Fehlererkennung ist dabei.
LV-Version 8.6


Case-Struktur, in best. Fall andere Aktion ausführen - Y-P - 22.12.2009 19:03

Ich würd's so machen (wenn ich Dein Problem richtig verstanden habe):

[attachment=23327]
Lv86_img

Gruß Markus


Case-Struktur, in best. Fall andere Aktion ausführen - Lucki - 23.12.2009 11:24

Rotieren lassen wäre keine gute Idee. Denn dann kämen erstes und letztes bit zusammen und würde verglichen, obwohl sie doch gar nicht zusammen gehören. Du kannst nur wahlweise die Dekodierung bei Bit 0 oder bei Bit 1 beginnen lassen und nachschauen, wo es weniger Fehler gibt. Z.B so:
[attachment=23332]
Edit: false und true müssen vertauscht werden.


Case-Struktur, in best. Fall andere Aktion ausführen - LV-Starter - 02.01.2010 13:42

Danke schonmal an euch beide!

Ich löse es jetzt anders, simple aber effektiv.

Um den DAQ - Assistenten " zu aktivieren" also dass er die von mir gewünschte Anzahl von Samples macht, habe ich einen Taster.
Es wird quasi pro Tastendruck eine "Sequenz" gemessen.

Wenn beim decodieren 00 oder 11 ansteht, ergibt die = verknüpfung ein true, dieses true verwende ich um neben dem Start taster (mit einer Oder verknüpfung) eine neue messung mit dem DAQ - Assistenten auszulösen. Dann hab ich zwar ab und an "Fehlmessungen" aber das stört nicht weiter. So bekomm ich immerhin ständig das "richtige" Ergebnis.