Unflatten from String in C - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +---- Forum: DLL & externer Code (/Forum-DLL-externer-Code) +---- Thema: Unflatten from String in C (/Thread-Unflatten-from-String-in-C) Seiten: 1 2 |
Unflatten from String in C - dalb - 14.06.2008 19:11 Das Problem ist, dass die Daten auf Messrechnern über LabVIEW aufgenommen werden und abgespeichert werden und dann irgendwann mit Matlab, das auf dem Server installiert ist, analysiert werden. Unflatten from String in C - dc6xs - 14.06.2008 19:23 ' schrieb:Das Problem ist, dass die Daten auf Messrechnern über LabVIEW aufgenommen werden und abgespeichert werden und dann irgendwann mit Matlab, das auf dem Server installiert ist, analysiert werden. Irgendwie stört mich das irgendwann gerade etwas.. Für solche Fälle beitet sich doch eine Datenbank auf dem Server, auf dem auch Matlab läuft an.. Also Daten per LV über SQL und Netzwerk an den DB-Server, der legts ab und Matlab kann sich die Daten dort dann holen. Oder halt aufm LV-Rechner stündlich/täglich/wöchentlich eine neue Datei anlegen und die nach dem Speichern dann auf den Server übertragen. BTW: Sowohl LV als auch Matlab können sehr gut mit CVS-Daten umgehen, also warum nicht auf ein einfaches Textfile ausweichen? Aber hättest Du das gleich erzählt, dann hättest den ganzen Umweg über Unflatten from String fast sparen können.. Unflatten from String in C - dalb - 14.06.2008 19:51 ' schrieb:Irgendwie stört mich das irgendwann gerade etwas.. Es liegen leider schon viele Header Files in diesem Format vor. Die meisten Header liegen auch in einem schönen Format vor, ähnlich einer ini Datei, aber aus irgendwelchen Gründen muss der Header manchmal geflattet werden. Ich habe die LabVIEW Anwendung nicht gemacht. Ich habe jetzt nur diese Daten und soll diese in MAtlab analysieren. Unflatten from String in C - rolfk - 16.06.2008 07:41 ' schrieb:Ich habe leider immer noch keine Ahnung wie ich vorgehen soll. Also im Prinzip gilt was ich schon gesagt habe. Für Strings und Arrays fügt Flatten vor den Daten einen 32 bit int hinzu der angibt wieviele Elemente folgen. An sich recht einfach ausser dass Flatten default auch noch alles auf Big Endian standardisiert. Was Du mit Value meinst ist mir nicht deutlich. Entweder steht dort ein Skalar (double, single, integer) und dann ist es sehr einfach, ein Array (auch nicht viel schwiereiger siehe open), oder eine Variant (und dann hast Du eigentlich Pech gehabt). Zwar liesse sich das Variant Format in einem Flattened String wohl auch noch herausfinden aber das ist einfach sinnlos viel Arbeit für nichts. Da würde ich noch einfacher ein kleines LabVIEW Tool schreiben das die Daten mit Unflatten wieder einliesst und sie anschliessend in ein CSV oder ähnliches Textformat übersetzt. Kannst Du von Matlab sicher als Command Line Tool ausführen. Am Besten wäre halt schone eine richtige Datenbank gewesen aber das ist ja scheinbar leider guter Rat der zu spät kommt. Rolf Kalbermatter Unflatten from String in C - dalb - 16.06.2008 13:24 Wir fangen jetzt erst an Matlab zu verwenden und werden wohl langsam bei vielen Anwendungen zu Matlab wechseln. Ich kann mein Problem weiter eingrenzen: Die Dateien, die ich ich Matlab einlesen möchte werden über WriteKey (string) geschrieben. Nur die Values werden dabei geflattet. Die Values sind aber vorher Variant, wobei ich eigentlich nicht verstehe warum, da es sich eigentlich nur um Fließkommazahlen handelt soweit ich das überblicken kann. Ich habe mir jetzt folgendens überlegt: Ich lese alles ein und durchsuche den String nach den einzelnen Keys. Dann caste ich ab der Stelle nach dem Key. Dazu muss ich allerdings wissen wieviele Byte das Value hat. Steht jetzt in den ersten 4 Byte die Länge? Steht noch etwas über den Datentyp? Hier ein Ausschnitt aus so einer Datei: FIFO Settings=" 16Ü14D@P 82†@ñ 10FIFOSettings.ctt 2R P 5 ª@P 7 12@9CBinning (ms) @61AExternal Trigger Condition 14@6FStop Condition: 10@AAStop Count 1A@715Buffer Size (Photons) 14@6ENo of Channels 14@2FExt Latch DelayBMeasurement f@P 5 C@66Module 14@2EADC Resolution 12@2CDither Range 14@2FCount Increment 16@210Macro Time Clock 3ADC h@P 4 18@912SYNC ZC Level (mV) 16@211SYNC Freq Divider 16@911SYNC Holdoff (ns) 18@913SYNC Threshold (mV)4SYNC n@P 5 14@9ETAC Range (ns) E@28TAC Gain 14@9ETAC Offset (%) 16@911TAC Limit Low (%) 18@912TAC Limit High (%) 3TAC f@P 4 18@912CFD Limit Low (mV) 18@913CFD Limit High (mV) 16@911CFD ZC Level (mV) 16@910CFD Holdoff (ns) 3CFD19FIFO Settings (output)[0]2†@ñ 10FIFOSettings.ctt 2R P 5 ª@P 7 12@9 Gruß |