' schrieb:Könntest du mir mal etwas genauer erklären was du da mit dem Eingangsstring anstellst (bzw. wie die Überprüfung auf L- M- oder H- Byte genau funktioniert)
Im VI steht doch alles drin...genauer ist's nicht zu erklären! Die wichtigsten Infos stehen in meinem ersten Post! Die gesendeten Daten beinhalten die Info (Bit 6+7), an welche Stelle im Messwert-Paket sie gehören, und das wird mit der Maskierung mit "11000000" überprüft. Entsprechend dem Ergebnis wird dann sortiert.
Wenn man zu einem willkürlichen Zeitpunkt anfängt zu lesen, kann es aber vorkommen, dass man nicht von Beginn eines Datenpakets (00xxxxxx = Low) liest, sondern erst ab dem zweiten (01xxxxxx = Mid) oder ab dem dritten Byte (10xxxxxx = High). Unvollständige Pakete müssen aber abgeschnitten werden, damit beim sortieren nicht Elemente eines Pakets mit Elementen eines anderen Pakets vermischt werden. Danach sollten im Eingangspuffer immer Bytes in der richtigen Reihenfolge stehen...
@IchSelbst:
Die Inkonsistenz der Bytes hab ich gesehen, konnte sie mir bisher aber nur durch einen "rauskopier-Fehler" erklären...ich guck's mir aber noch mal an. Wie oben gesagt, kann es aber eigentlich außer am Anfang nicht vorkommen, da das Lasermicrometer immer komplette Pakete schickt und diese dann auch komplett im Buffer stehen sollten. Wenn man unvollständige Pakete am Ende des Puffers hat, sollte das nichts ausmachen, das die "Extraktionsschleife" ja nur so oft läuft, wie das kleinste angeschlossene Array Elemente hat. Den Rest des unvollständigen Datenpakets liest man dann ja beim nächsten Mal aus und durch die Überprüfung wird das dann wieder abgeschnitten. Man verliert so zwar zwischendrin ein Paket, aber das ist IMHO zu vernachlässigen. Stimmst du mir zu?
Gruß
Achim