Text an Serielle Schnittstelle senden, empfange und in "Echtzeit" vergleichen
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!
Text an Serielle Schnittstelle senden, empfange und in "Echtzeit" vergleichen
Hallo,
ich versuche folgendes VI zu erstellen:
Ich möchte die angegebene Zeile so oft, wie angegeben, an RS232 schicken. Dabei soll vor jeder Zeile ein Zeitstempel gesetzt werden. An COM2 sollen die übertragenen Zeilen empfangen werden und die empfangenen Zeilen mit den gesendeten Zeilen bitweise verglichen werden. Der Zeitstempel soll gesetzt werden, damit ein Verlust von mehreren Zeilen erkennbar ist. Der Zeitstempel soll dementsprechend nicht in den Vergleich mit einbezogen werden. Mein VI funktioniert soweit, nur das mit dem Vergleich klappt noch nicht ganz. Ich habe dafür ein SubVI eingesetzt, welches ich hier im Forum geseshen habe. Könntet ihr mal drüber schauen und evtl. Verbesserungsvorschläge bringen? Vielen Dank!
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
RE: Text an Serielle Schnittstelle senden, empfange und in "Echtzeit" vergleichen
Gerade das SubVI mit dem Vergleich fehlt.
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
RE: Text an Serielle Schnittstelle senden, empfange und in "Echtzeit" vergleichen
Hallo,
ich muss mich leider wieder an euch wenden und hoffen, dass mir diesmal jemand helfen kann. Das Problem ist immer noch dasselbe, ich habe in der Zwischenzeit etwas anderes machen müssen und mich mit dem Problem nich arg beschäftigt. Im ANhang findet ihr das momentane VI, mit welchem der Vergleich von zwei Strings durchgeführt wird. Ich war noch dabei es so einzurichten, dass der Vergleich erst losgeht, wenn sich im Empfangs-Puffer eine bestimmte ANzahl von Zeichen befindet. Das ist aber nicht so wichtig.
Jetzt geht es mir darum:
Der erste und der zweite String werden miteinander verglichen. Bei dem zweiten String fehlen Zeichen, die anderen Zeichen sind aber mit den im 1. String identisch. Zum Beispiel:
1. String: Hier ist ein Test Text, der mit einem anderen verglichen werden soll.
2. String: Hier ist ein Test Textderen verglichen werden soll.
Ich möchte es irgendwie hinkriegen, dass ab dem 1. ungleichen Zeichen am 2. String nach dem nächsten gleichen Zeichen gesucht wird, also eigentlich nach der Stelle, an der der Text im 1. String dem im 2. wieder entspricht. Die dazwischen fehlenden Zeichen sollen gezählt werden. Der Vergleich der Strings soll danach weiter gehen und wenn wiederholt Zeichen fehlen, dann soll das Programm genauso, wie beim 1. Mal vorgehen.
Hat irgend jemand eine Idee, wie ich es angehen soll? Ich habe absolut keine Ahnung und wäre euch für jeden Tipp sehr sehr sehr dankbar. Es ist sehr dringend!
RE: Text an Serielle Schnittstelle senden, empfange und in "Echtzeit" vergleichen
Hallo Alexa,
dein String-2-Bytearray-VI hat ein Problem:
Es hat einen internen Puffer (ich habe die lokale Variable durch eine Feedbacknode ersetzt)!
Noch schlimmer: es ist nicht reentrant: d.h. jeder Aufruf greift auf den gleichen Puffer zu und verändert diesen. Wie soll da jemals ein Vergleich sinnvol ablaufen, wenn du dieses VI mehrfach verwendest?
Außerdem: warum pustest du den U8-Datenstrom auf I64 auf? Das macht nur ~90% Speicherverschwendung...
RE: Text an Serielle Schnittstelle senden, empfange und in "Echtzeit" vergleichen
Danke Gerd,
aber ich muss leider feststellen, dass der Vergleich so nicht funktioniert. Ich muss mir einen anderen Weg überlegen. Das Thema kann geschlossen werden.