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!
Hey danke Achim, das sieht echt vielversprechend aus.
Ich hab mal ein komplettes Beispiel-File als Default Value in das String-Control-Feld eingefügt. Dieselben Daten als HEX-Datensatz findest du als Text-File im Anhang. Ich habe es leider selbst nur als HEX-File bekommen. Bei der Konvertierung in ASCII-Code sind mir leider die End of Line ("0D" HEX =CR) flöten gegangen, keine Ahnung wieso.
Im Header steht zusätzlich noch die Filegröße (leider variable Größe von max. 9 byte) und " 2 ? ", diese Zeichenfolge wird standardmäßig eingefügt. Da sich der Header jetzt ein bisschen verändert hat, klappt die Aufschlüsselung für das boolsche Array nicht mehr. Ich habe mal versucht das anzupassen. Scheint auch zu funktionieren.
Wie ich die Daten bekomme ist mir eigentlich klar. Ich habs im angehängten Bild mal für die Zeile, die du in deinem VI verwendet hast, versucht aufzuschlüsseln. Dort waren es ja 2 Sensoren die Daten gesendet haben. Die Werte mit der 1 gehören also zum ersten Sensor der sendet und die Werte mit einer 2 zum 2. Sensor der sendet. Ich glaube ich hätte vorher mal erwähnen sollen, dass die Werte von HEX in Dezimalzahlen umgerechnet werden sollen.
Ich denke außerdem, dass du in deinem VI den Counter (1.byte der Messwertzeile) und die Zeit (ist ein Wert in Sekunden;2.-5.byte der Messwertzeile) vergessen hast.
Die Counter und Zeit-Bytes werden für einen Messpunkt am Anfang der Zeile nur einmal mitgeschickt, da sie ja für alle Sensoren gleich sind.
Nochmal eine Frage zum Layout:
In dem Cluster wird ja jetzt immer nur eine Messwertzeile dargestellt. Wie schaff ich das denn, dass alle Messwertzeilen kontinuierlich untereinander geschrieben werden, also im Beispiel-File alle 38 ?
Und kann man die quasi messwertzeilenweise darstellen, so dass am Ende dieselben Werte alle untereinander stehen ? Also quasi vom Layout her wie in dem Bild in Beitrag 7 in dem Thread.
Danke nochmals für deine schon gegebenen Ideen.
Mfg Karl-Heinz
Anzeige
07.11.2007, 17:27 (Dieser Beitrag wurde zuletzt bearbeitet: 08.11.2007 06:47 von Achim.)
ahhhhhhhh....jetzt hab ichs gecheckt...du hast in EINER Zeile die Werte von bis zu acht Sensoren, dann kommt der Seperator...d.h. es kommen mal 3 Sensoren pro Zeile, mal kommen 5 Sensoren etc....das ist dann schon ein bisschen komplizierter...evtl. guck ich morgen nochmal danach! Interessiert mich selber...wird wohl auf ein Splitting in ner Whileschleife rauslaufen...
A.
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
ich habe mit dem Beispiel-File ein bisschen rumprobiert...leider ist es aber so, dass da wohl noch irgendwelche Zeichen mitreingerutscht sind, die da nix verloren haben...zumindest nach deinen Informationen. Kopier den Inhalt der Beispieldatei mal in ein Textfeld (Ansicht: HEX Display). Da sieht man, dass die dreizehnte Zeile "leer" ist, in der neunten Zeile taucht nach dem Seperator 0x0A noch ein 0x07 auf...das schmeißt die Geschichte ein bisschen über den Haufen.
Ist das wirklich ein Original-File, oder hast du da noch irgendwie was umgewandelt oder werden noch irgendwelche Steuerzeichen mitgesendet (z.B. alle xxx Zeichen eine Art Checksumme)? So komm ich nicht weiter, und das ist mir jetzt auch langsam zu zeitaufwändig...
Evtl. guck ich nochmal, wenn du nochmal was zu dem File gesagt hast...
Gruß
Achim
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
ja es ist ein Original-File. Ich habe nochmal ein Bild von dem Beispiel-File gemacht und angehängt, darin ist das String-Feld in eine Breite von 24byte, also der Länge einer Messwertzeile für 2 sendende Sensoren eingestellt (eine Messwertzeile beginnt immer in der rechten Spalte mit dem linken Byte = der Counter der Zeile)).
Das zweite 0A in der 12. Zeile von oben in dem Bild ist der Counter der nächsten Zeile also Dezimal 10. Ich weiß, dass ist nicht ganz glücklich, aber ich bekomm die Daten leider so. Daher war deine Idee aus deinem obigen VI, immer nach der Byte-Anzahl einer Messwertzeile abzuschneiden echt sehr gut.
Alle anderen 0A's im File, die nicht unter den anderen Seperatoren stehen, sind auch Teil der Messwerte, also in DEZ eine 10.
Die 07 habe ich auch nur hinter einem 0A in der 9. Zeile gefunden, das ist auch der Counter der Zeile.
Ich weiß natürlich, dass du bestimmt besser zu tun hast, als mir hier aus der Patsche zu helfen und du hast sicherlich selber viel zu tun, aber du würdest mir damit echt helfen, denn dieses Problem übersteigt leider bei weitem meine LV-Kenntnisse.
Ich wäre dir echt dankbar, wenn du mir noch dieses eine mal weiterhelfen könntest.
Mfg Karl-Heinz
also das wird mir jetzt zu anstrengend *grins*...nee, ich hab erstens momentan keine Idee und zweitens keine Zeit mehr! Wenn man es irgendwie bewerkstelligen könnte, die ganzen Counter rauszuschmeißen....das blöde ist ja, dass die Zeilen unterschiedlich lang sein können, bis ein Seperator kommt, man kann also nicht einfach nach soundsoviel Byte auftrennen. Und die Suche nach rn bzw. nur nach n oder nur nach r scheitert daran, dass diese Zeichen natürlich auch als Messwerte reinkommen können. Da ne allgemeine Regel zu finden wird sicher ganz schön aufwendig....ganz ehrlich: Das ist ein ganz bescheidenes Dateiformat!
Frag mal bei Lucki an...der hat irgendwie ein Händchen für sowas!
Gruß
Achim
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)