Hi,
ich erfasse mit bis zu 115,2kBaud Messwerte von einem Lasermicrometer OptoControl2500 von MicroEpsilon. Das Gerät sendet einen fortlaufenden Datenstrom mit einer Paketgröße von drei Byte (Low, Mid, High). Im Lowbyte werden die Bits 0-5, im Midbyte die Bits 0-5 und im Highbyte (im meinem speziellen Fall) die Bits 0-3 als Nutzdaten gesendet, die beiden höchstwertigen Bits pro Byte identifizieren die Position des Bytes im Paket (Low: 00 / Mid: 01 / High: 10). Im Anhang ein Auszug aus dem Handbuch, der den Aufbau der gesendeten Daten beschreibt.
Ich habe so den Eindruck, dass die Methode, wie ich das bisher lese (mit "Bytes at serial port") und extrahiere - ich sag's mal vorsichtig - nur sub-optimal ist... Hat jemand Verbesserungsvorschläge? Das Problem an der ganzen Sache ist u.a., dass kein Trennzeichen zwischen den Paketen versendet wird. Wenn man ein solches hätte, könnte man im Datenstrom danach suchen und dann die folgenden drei Bytes rausziehen und wandeln. Ohne Trennzeichen besteht bei meiner Variante aber immer die Gefahr, dass man im Eingangspuffer kein vielfaches von drei (Bytes pro Paket) hat, d.h. so wie im angehängten Beispiel (mit willkürlich aus dem Datenstrom rauskopierten Daten) unterschiedlich viele Bytes (siehe im Beispiel: 63:61:60) hat, und so eine "Verschiebung" der Messwerte hat...Da die Messwerte nur im µ-Bereich schwanken, ist ein Fehler zwar nur schwer wirklich zu sehen, aber...
Hat jemand einen Vorschlag, wie man das optimieren könnte?
test_optocontrol.vi (Größe: 26,31 KB / Downloads: 422)
Gruß
Achim