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!
ich bin Neueinsteiger in Labview, habe auch schon mir die Tutorials angesehen und durchgespielt. Das Einlesen von Daten über einen seriellen Port klappt mittlerweile auch gut. Was irgendwie nicht funktionieren will, ist die Konvertierung der Daten in Zahlen, bzw. der Darstellung in einem Diagramm. Über den seriellen Port wird ein String mit 3 Zeilen gesendet, erste Zeile für Datum/Uhrzeit, zweite Zeile für pH-Wert und 3. Zeile für O2. Kann mir einer eine kleine Hilfestellung geben, wie ich aus diesem langen String irgendeine Zahl aus einer bestimmten Zeile extrahiere?
Es wäre hilfreicher, wenn man den korrekten Antwortstring deines Gerätes kennen würde: manchmal muss man sich auch um irgendwelche Sonderzeichen (Spaces, Tabs, NL, CR, etc.) kümmern.
Ahh, vielen Dank, wie heißt dieser großartige Block? Das ist glaub ich genau was ich suche!
Okay, ja das stimmt, ich denke, ich müsste das dann in das Feld oben links mit ergänzen?! Was müsste ich denn rein informativ für CR und Tabs dort ergänzen, bzw. müsste ich bei Spaces auch was ergänzen? Gerade mal nachgeschaut, in meinem C-Code hab ich alles unnötige einfach ignoriert und gelöscht, weshalb ich gerade nicht sicher bin, ob es Tabs oder Spaces sind, würde es einfach mal ausprobieren und nochmal schauen.
BG
01.03.2017, 20:25 (Dieser Beitrag wurde zuletzt bearbeitet: 01.03.2017 20:26 von jg.)
(01.03.2017 19:57 )-cosmo- schrieb: Okay, ja das stimmt, ich denke, ich müsste das dann in das Feld oben links mit ergänzen?! Was müsste ich denn rein informativ für CR und Tabs dort ergänzen, bzw. müsste ich bei Spaces auch was ergänzen? Gerade mal nachgeschaut, in meinem C-Code hab ich alles unnötige einfach ignoriert und gelöscht, weshalb ich gerade nicht sicher bin, ob es Tabs oder Spaces sind, würde es einfach mal ausprobieren und nochmal schauen.
Einfach den Anzeigemodus des String Indicators umschalten, und schon werden die "Sonderzeichen" interpretierbar dargestellt.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
also so richtig will es noch nicht klappen, die erste Zeile (Datum) wird richtig eingelesen und angezeigt. Ab da klappt es allerdings nicht mehr. Habe mir hilfsweise nur ein Textfeld erstellt, um dieses anzuzeigen. Das Textfeld stammt aus dem originalen Output. Habe es auf dem Bild einmal mit Sonderzeichen und ohne angezeigt. Im Formatfeld habe ich alle fehlenden Zeichen ergänzt.
anbei mal die brachiale Methode: wenn der empfangene String so dämliche Zeichen(kombinationen) enthält, dann filtert man ihn einfach mal und macht ihn dadurch "sauber". Danach ist das Parsen des Strings deutlich einfacher!
Was ich als störend empfinde:
- Zeilenendezeichen mitten im String
- mehrfache Spaces hintereinander, um die Darstellung aufzuhübschen
- dieses "\11\13" am Stringanfang: kann man das nicht evtl. als TermChar verwenden, z.B. die "\13"?
Außerdem kann/sollte man bei Strings immer den Anzeigemodus sichtbar machen - wie im angehängten VI…
Ah super, das scheint zu klappen, allerdings aktualisiert er die Daten nicht nach erstmaligen Einlesen. Schon versucht, die Blöcke woanders hinzuverschieben, aber es muss ja in die innerste Schleife rein, wo ich auch die Anzeige beschreibe. Die Schleife zum Einlesen über den VISA Port läuft ja auch in einer Endlosschleife, da müsste doch auch das Beschreiben der Anzeigen endlos weitergehen, richtig? Warum sind die nach einmaligen Beschreiben nur statisch? Verstehe nicht ganz, warum sich die Variablen nicht mit ändern wollen.