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!
[
attachment=41700]
[
attachment=41701]
[
attachment=41702]
Gerade das SubVI mit dem Vergleich fehlt.
Gruß Markus
Hallo,
tut mir Leid für die späte Meldung, ich bin im Urlaub gewesen. Ich lade noch das Vergleichs VI hoch. Ich wäre euch für eure Hilfe dankbar.
Grüße
Alex
![Offtopic2 Offtopic2](images/smilies/lvfsmilies/fun/offtopic2.gif)
Nicht drängeln (vgl.
LVF-Regeln). Nachhaken ist frühestens nach 24 h erlaubt!
Danke, Jens
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!
Grüße
Alexandra
Hallo Alexa,
dein String-2-Bytearray-VI hat ein Problem:
[
attachment=42043]
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...
Hier noch dein Main-VI ohne lokale Variablen:
[
attachment=42044]
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.