Hallo
ich habe folgendes Verständnis zu dem Thema
1. Im Modell werden von verschiedenen Sensormodulen Sensorwerte an den Empfänger übertrragen ca- alle 20ms eine Packetlänge von maximal 29Byte =1450 Byte/s
2. Der Empfänger hat eine begrenzte Bandbreite zur Übertragung der Sensorwerte zum Sender, wie viel weis nur Jeti. Und sicherlich gehen auf der Strecke auch das eine oder andere Packet verloren.
3. Der Sender durchläuft ca alle 25ms das Hauptprogramm und schreibt Daten in das Logfile
4. Schaut man ins Logfile, kann man sehen, dass in einer Sekunde ca 285 Sensorwerte eingetragen werden.
Die Herausforderung: Es gibt Sensormodule, die kontinuierlich alle Daten periodisch auf dem EX Bus zuschreiben - leider auch so unwichtige Informationen wie Versionsnummern.
Meine Erkenntnis und wesentliche Änderung an der EXBus lib ist, nur Daten auf den EXBus zu schreiben, von denen mein Sensormodul meint, dass die Daten aktualisiert werden sollten. Die einfachst Priorisierung ist z.B. eine angemessene Periodendauer.
Wenn mein GPS mit 2Hz arbeitet, werden auch nur 2 Werte in der Sekunde übertragen.
Der arme Empänger kann leider nicht priorisieren, ausser Jeti würde für jeden Sensorkanal eine Priorität konfigurierbar machen.
Wenn an einem Empfänger 3 Sensormodule angeschlossen sind und der Empfänger auch noch eigene Daten wie Spannung und RX Signalstärke ... senden soll, kommt man schnell auf 3x1450 + ? = ca 5000Byte/s
Im Log stehen ca 285 Werte und ein Wert besteht aus SensorNummer, Länge, Typ, Dezimal, Wert also 3-6 Byte => ca 1250Byte, dann kommen noch ca 40% Transportschutz und Kommunikation hinzu => 1800 Bytes/s die empfangen werden.
Somit ist leicht zu erkennen, dass der Downstrem vom Empfänger (5000 Byte) zum Sender (1800Byte) das Nadelöhr ist. Oder mit anderen Worten, es wird nicht jeder EXBus Wert übertragen, wenn die Kanalkapazität belegt ist. Wann ein Wert übertragen wird kann uns nur Jeti verraten, welche scheinbare Latenz ein Wert hat oder bekommt?
Eine Latenz von einem einzelnen Wert, wenn er quasi alleine übertragen wird, halte ich für dahingehend interessant, um festzustellen mit wie vielen Sensorwerten die Kanalkapazität erreicht wird.
Jedenfalls sollte man die Erwartungen an die Telemetrie nicht zu hoch ansetzen. Für eine Systemüberwachung reicht sie völlig aus, für eine Echtzeitauswertung von mehreren Sensorwerten kommt man schnell an die Systemgrenzen.
Gruß
Andre