Ich habe mir einen Spektrometer gebaut, der die Daten eines linearen Photodiodenchips über eine Teensy 4.1 per USB an den PC schickt.
Leider bin ich noch nciht so firm im Programmieren von diesem C++, aber es funktioniert zumindest.
Teensy sendet andauernd, ohne Handshake Daten per USB als Text in etwa dieser Form:
+Diodennummer 12Bit-Messwert-
also
+3648 1047-
Das klappt, und ich kann die Daten auch mittels VB.Net einlesen und als Spektrum darstellen.
Bisher mache ich das in einer Schleife, in der auch alles andere passiert.
Die Daten kommen nicht in einer fortlaufenden Reihenfolge, sondern (weil ich es nicht schneller kann) zufällig
Es wird also nicht jede Diode nach der Reihe ausgelesen, sondern immer einen zufälligen Zeitabschnitt gewartet,
bis irgend eine Diode messbar war.
Im VB-Programm wird ein Array gefüllt. Die Position im Array ist die Diodennummer, die ja übertragen wird,
und der Inhalt ist der Messwert. Nach einer unbestimmten Zeit sind alle Arraypositionen neu gefüllt.
(Leider ist mir noch keine schnellere Methode eingefallen)
Nun dachte ich daran, das Auslesen der Schnittstelle mit einem Backgroundworker? zu erledigen.
Ist das sinnvoll?
Es gibt doch inzwischen auch einige andere Methoden, um einen weitgehend unabhängigen
aber schnellen Ablauf der Programmteile zu bekommen.
Was würdet ihr dazu vorschlagen?
Leider bin ich noch nciht so firm im Programmieren von diesem C++, aber es funktioniert zumindest.
Teensy sendet andauernd, ohne Handshake Daten per USB als Text in etwa dieser Form:
+Diodennummer 12Bit-Messwert-
also
+3648 1047-
Das klappt, und ich kann die Daten auch mittels VB.Net einlesen und als Spektrum darstellen.
Bisher mache ich das in einer Schleife, in der auch alles andere passiert.
Die Daten kommen nicht in einer fortlaufenden Reihenfolge, sondern (weil ich es nicht schneller kann) zufällig
Es wird also nicht jede Diode nach der Reihe ausgelesen, sondern immer einen zufälligen Zeitabschnitt gewartet,
bis irgend eine Diode messbar war.
Im VB-Programm wird ein Array gefüllt. Die Position im Array ist die Diodennummer, die ja übertragen wird,
und der Inhalt ist der Messwert. Nach einer unbestimmten Zeit sind alle Arraypositionen neu gefüllt.
(Leider ist mir noch keine schnellere Methode eingefallen)
Nun dachte ich daran, das Auslesen der Schnittstelle mit einem Backgroundworker? zu erledigen.
Ist das sinnvoll?
Es gibt doch inzwischen auch einige andere Methoden, um einen weitgehend unabhängigen
aber schnellen Ablauf der Programmteile zu bekommen.
Was würdet ihr dazu vorschlagen?