' schrieb:Die Daten schicke mit mit 9600 bits / s .
Also grob 1000 Ascii-Zeichen / s. Bei 3 Zeichen, die du ausliest, also 3 ms pro Lesevorgang. Damit läuft deine Lese-Loop also mit grob 330 Hz, und da du jedes diese jeweils 3 bytes auch in deiner Consumer-Loop einzeln ausliest, läuft auch die mit 330 Hz. Und sooft schreibst du auch was in die Graphen, das finde ich schon heftig.
' schrieb:Meinst du ich soll also mit einem VISA read gleich 9 Bytes einlesen und dann meine Infos daraus ziehen ?? geht das schneller als 3 x 3 zu lesen ?
Insgesamt natürlich nicht, die Senderate kommt schließlich von deinem µC, aber deine Lese-Loop würde "nur noch" mit 100 Hz laufen. Besser.
Wenn du dann noch in deiner Consumer-Loop die Eigenschaft der Queue ausnutzt und nicht jedes Element einzeln ausliest, sondern durch geschickte Verzögerung z.B. immer 10 Datensätze, dann könntest du diese Schleife z.B. auf ca. 10 Hz drücken, das langt für das Update der Graphen völlig aus. Dann noch Charts, wenn du auf die Zeit-Info verzichten kannst (Bemerkung: Die kommt momentan sowieso nicht korrekt in deiner Consumer-Loop an, zwecks Race-Condition durch deine lokale Variable), und das ganze sollte schon besser laufen.
Gruß, Jens