LabVIEWForum.de
Boolsche Werte zusammenfassen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Boolsche Werte zusammenfassen (/Thread-Boolsche-Werte-zusammenfassen)



Boolsche Werte zusammenfassen - Schü - 22.11.2010 09:42

Hallo liebe LabView-Gemeinde,
heute bin ich mal wieder auf ein Problem gestoßen, welches ich nicht so ohne Weiteres lösen konnte.

Ich arbeite an einem Projekt, bei dem ich mir Daten von einer SD-Card abgreife und sortiere. Es werden immer Blöcke übermittel, die aus 51 Teilen bestehen. Jeder einzelne Teil enthält 7Byte für einen Zeitstempel, 1Byte für einen Wertetyp und 2Byte für den Wert selber. Nach der Sortierung ist jetzt mein Problem, dass ich die 2Bit zu einem einzelnen Wert zusammenfassen muss. Da 2x ein Hex-Wert übertragen wird und im LabView schon ein Dezimalwert ankommt, dachte ich ich könnte das Ganze über boolsche Werte lösen.

Als Beispiel:

1. Es kommten zwei Hex-werte (0xC und 0x5) an und LabView gibt mir die Dezimalwerte (12 und 5)
2. Ich wandele diese Dezimalwerte in boolsche Arrays um und erhalte dann 0000 1100 und 0000 0101 (oder etwa nicht?)
3. Ich fasse irgendwie (das ist der Knackpunkt, wo ich nicht weiter weiß) beide Werte zu 0000 1100 0000 0101 zusammen
4. Das Boolsche Array wird wieder in einen Dezimalwert umgewandelt und erhalte dann 3077 was der entsprechende Wert ist.

Das zusammenfügen der beiden boolschen Werte ist mir ein Rätsel, da Addition, Multiplikation, AND und OR mich nicht weitergebracht haben.

Ich hoffe es ist einigermaßen verständlich. Wenn meine Idee absoluter Blödsinn ist, dann bin ich für bessere Vorschläge immer offen.

Liebe Grüße Schü

P.S.: wusste nicht zu welcher Rubrik das passt, drum hab ichs ins Allgemeine geschrieben.


Boolsche Werte zusammenfassen - RHeil - 22.11.2010 09:54

Ich glaube, Du denkst zu kompliziert.
Hexadezimal und dezimal sind nur unterschiedliche Repräsentationen der gleichen (binären) Daten.
Die kannst Du zusammensetzen, ohne sie erst umständlich zu konvertieren.

Zuerst mal: Wie sehen Deine Daten wirklich aus?
Du schreibst erst von 2x2 Bit, das Beispiel geht dann mit 2x4 Bit weiter.
Am besten lädst Du mal ein kleines VI hoch.

Hast Du Deine Werte schon in Integer-Drähten?
Dann sollte diese Formel zum richtigen Erebnis (197) führen: 16 * A + B
Wenn Du es mit booleschen Operationen machen möchtest: Die Multiplikation mit 16 entspricht einem Bit-Shift um 4 Bit. Die Addition bewirkt in diesem Fall das gleiche wie OR.


Boolsche Werte zusammenfassen - Ome - 22.11.2010 09:59

Moin,

also ich vermute du suchst nach so einer Lösung hier?

Gruß Ome


Boolsche Werte zusammenfassen - Lucki - 22.11.2010 10:02

Da gibt es zwei gleich einfache Möglichkeiten:
1.) Wie RHeil schon sagte, allerdings lautet die richtige Fomel C = 256*B + A
2.) Noch einfacher: Unter Numerisch/Datenverarbeitung gibt es die Funktion "Daten verbinden". Da schließt du die beiden Bytes an, und heraus kommt die gewünschte U16-Zahl


Boolsche Werte zusammenfassen - Schü - 22.11.2010 10:03

Das Problem ist, dass mir die Daten von einem kleinen Emulationsboard geschickt werden. Und somit das schwierig mit einem VI ist, zumal ich ja schon im Grundsatz ein Problem habe.

Zu den Werten. Ich habe einen Datenblock mit 512 Byte. In jedem Datenblock ist eine 10Byte lange Gruppe, die Informationen zu einem Wert enthält. Beispielsweise eine Temperatur. Von den 10 Byte sind die ersten 7 Byte ein Zeitstempel, dann kommt ein Byte mit einem Typ (sagt mir, dass es eine Temperatur ist) und dann kommen noch 2 Byte die den Wert enthalten.
Die Werte kommen als Hexwerte vom Board am Computer an und werden über USB und ausgelesen. Da habe ich die Werte dann wie du schon sagtest in einer Integerleitung drin. Problem ist halt weiterhin, dass ich nicht zwei 8bit Werte, sondern einen 16bit Wert brauche.

Diese zwei letzten Byte möchte ich nun zusammenfassen. Nach den obengenannten Bedingungen.

EDIT: Ome, ich kann deine Datei nicht öffnen, da LabView-Version nicht der Datei-Version entspricht - habe auf Arbeit nur 8.6 und nur daheim 2010

EDIT2: Habe das von RHeil umgesetzt und es funktioniert. Vielen Dank für die schnelle Hilfe


Boolsche Werte zusammenfassen - Ome - 22.11.2010 10:07

dann hier noch mal Lv86_img


Boolsche Werte zusammenfassen - RHeil - 22.11.2010 12:10

' schrieb:Da gibt es zwei gleich einfache Möglichkeiten:
1.) Wie RHeil schon sagte, allerdings lautet die richtige Fomel C = 256*B + A
2.) Noch einfacher: Unter Numerisch/Datenverarbeitung gibt es die Funktion "Daten verbinden". Da schließt du die beiden Bytes an, und heraus kommt die gewünschte U16-Zahl
:ahrg1:Wer lesen kann ist klar im Vorteil!
Ich hatte vorhin wohl die Worte "Bit" und "Byte" durcheinandergeschnissen, sorry.

Wenn es nur um ganze Bytes geht, dann ist "Daten verbinden" natürlich der bessere Weg.