Hallo HTL,
Zitat:die Anzeige auf Escape Sequenzen gestellt und nach "\" gesucht, da diese ja in der Anzeige vorkommt. Nur wird es auch hier nicht gefunden
Wie willst du etwas finden, was überhaupt nicht im String (bzw. klarer: dessen "Rohdaten") enthalten ist?
Wieso soll der String Backslashes enthalten, nur weil du ihn im "\-Code-Display"-Modus darstellst? Wenn du den Displaymodus auf "Hex" umstellst: enthält der String dann plötzlich Leerzeichen und keine Backslashes mehr?
Dein String enthält WEDER Backslashes noch Leerzeichen!
Dein String ändert sich nicht, wenn du den Anzeigemodus umstellst!!!
Den Punkt mit dem "VI
mit aussagekräftigen Daten" hast du nur zur Hälfte befolgt, dein String enthält keinerlei Beispieldaten…
Vorschlag: Sag uns doch einfach mal, wie ein typischer String (s. Bilder im Beitrag #1) umgewandelt werden muss, damit du vernünftige Resultate bekommst! (Auch das hatte
Ludwig hier schon angemahnt, aber irgendwie scheinst du unsere Fragen und Hinweise zu ignorieren!)
(18.12.2015 10:36 )HTL_HL schrieb: [ -> ]Ich hab euch nun ein Bild des SubVI angehängt.
Das mit dem Anzeigemodus hilft mir nichts da ich wie schon vorher erwähnt nach \06\01 suchen und teilen kann.
Was ich aber vermute ist das der String weder Leerzeichen noch "\" enthält und ich die nur durch das Format "Escpae Sequenzen" entstehen.
RICHTIG! Nachdem man es dir 3x gesagt hast, verinnerlicht du es endlich!
(18.12.2015 10:36 )HTL_HL schrieb: [ -> ]Daher eine neue Frage: Gibt es eine Möglichkeit den String nach jeden Byte zu trennen? (Allerdings so wie es im Anzeigeformat HEX zu sehen ist, nicht wie im "Normalen"
String to Byte Array!
(18.12.2015 10:36 )HTL_HL schrieb: [ -> ]Ich habe jetzt auch das SubVI angehängt, die Anzeige auf Escape Sequenzen gestellt und nach "\" gesucht, da diese ja in der Anzeige vorkommt. Nur wird es auch hier nicht gefunden und der String geteilt.
Wie soll etwas gefunden werden, was dir nur in der Formatierung einer Anzeige dargestellt wird, aber gar nicht in den Daten vorhanden ist.
Im deinem anderen Thread wurde auch erwähnt, dass wir dir bei Kenntnis des Kommunikations-Protokolls wesentlich effektiver weiterhelfen könnten - leider Funkstille in dieser Hinsicht von dir.
Gruß, Jens
Das Problem ist das das VI dynamisch ist da die Messwerte ständig gesendet und verarbeitet werden.
Wenn ich die Anzeige nicht verändere bekomme ich irgendwelche ASCII Zeichen.
Erklärung:
0601 1002 0000 0000 1E00 0500 0000 000 900 0015, den Wert bekomme ich als Messwert (Anzeigemouds Hex)
0601 ist ein Indikator das es sich um einen Messwert handelt, die dahinter folgenden Bytes setzen sich aus verschiedenen Messwerten zusammen (CO2, NX..)
Ich möchte nun 0601 wegschneiden um die Messdaten ALLEINE zu verarbeiten, dieser Schritt funktioniert schon. (Im HauptVI wird im Binary Format nach \06\01 gesucht und gefunden)
Dies geschieht im Haupt VI. (Im Anzeigefenster Return Values wird dies auch richtig angezeigt, Modus: Hex)
Nun möchte ich im SubVi den bereits gekürzten String Byteweise aufteilen und weiterverarbeiten.
Meine Frage nun: Wie kann ich den bereits getrennten String byteweise teilen, um die getrennten Bytes zum errechnen der Messwerte heranzuziehen.
Ich hoffe ihr habt nun mein Problem verstanden.
PS: Zum Messgerät gibt es keinerlei Dokumentation da es eigentlich nicht dafür gedacht ist die Daten in einem Computer zu verarbeiten
Hallo HTL,
Zitat:Wie kann ich den bereits getrennten String byteweise teilen, um die getrennten Bytes zum errechnen der Messwerte heranzuziehen.
Das wurde weiter oben schon beantwortet - wer lesen kann, ist klar im Vorteil!
Zitat:Zum Messgerät gibt es keinerlei Dokumentation da es eigentlich nicht dafür gedacht ist die Daten in einem Computer zu verarbeiten
Was ist das denn für ein Blödsinn? Wenn eine Schnittstelle da ist und Daten rausgeschickt werden, dann hängt IMMER ein Computer dran, der die Daten auswertet! Vor allem, wenn die Daten in einem Binärformat verschickt werden…
Zitat:um die getrennten Bytes zum errechnen der Messwerte heranzuziehen.
Und wie lautet diese Umrechnung? Hast du nun Dokumentation oder nicht?
(18.12.2015 11:07 )GerdW schrieb: [ -> ]Hallo HTL,
Zitat:Wie kann ich den bereits getrennten String byteweise teilen, um die getrennten Bytes zum errechnen der Messwerte heranzuziehen.
Das wurde weiter oben schon beantwortet - wer lesen kann, ist klar im Vorteil!
Zitat:Zum Messgerät gibt es keinerlei Dokumentation da es eigentlich nicht dafür gedacht ist die Daten in einem Computer zu verarbeiten
Was ist das denn für ein Blödsinn? Wenn eine Schnittstelle da ist und Daten rausgeschickt werden, dann hängt IMMER ein Computer dran, der die Daten auswertet! Vor allem, wenn die Daten in einem Binärformat verschickt werden…
Zitat:um die getrennten Bytes zum errechnen der Messwerte heranzuziehen.
Und wie lautet diese Umrechnung? Hast du nun Dokumentation oder nicht?
Es handelt sich dabei um ein Abgasgerät genauer gesagt dme StarGas898
Es hat zwar eine RS232 Schnittstelle, diese funktioniert bei unserem Modell nicht. Daher haben wir auf den Leitungen mitgesnifft um zu schauen wo es brauchbare Daten gibt, quasi Gehackt
Die Daten verändern sich auch bei der Messung was bedeutet das es die richtigen Daten sind.
Zum Problem: Also muss ich mit String to Byte Array weiterarbeiten?
Ja, das musst du: Dann bekommst du die einzelnen Bytes in einem Array…
Wie Ludwig schon schrieb: wenn es schon an der Beschreibung einer Aufgabe hapert, ist die Lösung deutlich schwerer…
Zitat:Zum Messgerät gibt es keinerlei Dokumentation da es eigentlich nicht dafür gedacht ist die Daten in einem Computer zu verarbeiten
Es handelt sich dabei um ein Abgasgerät genauer gesagt dme StarGas898
Ich habe auf Anhieb eine Anleitung im Internet gefunden…
Die Anleitung zum Gerät spricht eindeutig von einem RS232-Port zum Anschluss an einen Computer - also ist dieses auch entsprechend vorgesehen!
Was sagt der Hersteller/Support zu deinem Problem?
Alles klar dann sind wir jetzt endlich auf selber Wellenlänge
Die Bytes kann ich jetzt in einer Arraytabelle anzeigen, aber wie verwende ich diese nun weiter um sie auf die spezifischen Anzeigen für die Messwerte zu bringen?
Hallo HTL,
Zitat:Die Bytes kann ich jetzt in einer Arraytabelle anzeigen
In einer Tabelle - oder in einem Array?
Zitat:aber wie verwende ich diese nun weiter um sie auf die spezifischen Anzeigen für die Messwerte zu bringen?
Wovon reden wir denn hier die ganze Zeit?
Frag den Hersteller noch einem Manual: dort steht, wie die Messwerte in diesen Bytes kodiert sind!
Wenn ihr schon am Sniffen seid: ihr solltet die gesnifften Daten mit den Anzeigewerten des Gerätes vergleichen.
Vielleicht könnt ihr dann erraten, welcher Wert
wo und
wie in diesem Array kodiert ist. Da du aber schon Probleme damit hast, überhaupt mit Binärwerten umzugehen, könnte das für dich schwierig werden…
Durch Sniffen haben wir selber ermittelt welches Byte für welchen Wert steht.
Meine Frage nun: Wie kann ich Array[0] zum block der Temperaturausgabe bringen, quasi jedes Byte einzeln rausführen
Array[1] zur Ausgabe des NX Wertes
usw... Die Umrechnung wissen wir schon die ist in den Blöcken in denen der Wert des Array[0] muss schon integriert.
Hallo HTL,
du fragst jetzt nicht etwa, wie man aus einem Array mit mehreren Werte einzelne Elemente indiziert?
(IndexArray)
Die Links in meiner Signatur führen auch zu LabVIEW-Grundlagenkursen…
Wozu eigentlich einzelne Anzeigeelemente, wenn man auch gleich ein Array anzeigen lassen kann?