CUL: LOVF detektieren oder credit10ms abfragen?

Begonnen von Matthias Gehre, 16 November 2014, 21:38:59

Vorheriges Thema - Nächstes Thema

Matthias Gehre

Ich hätte gerne etwas Input von euch zu folgendem Problem:
Wie kann ich (z.B. im MAX Modul) mit den credit10ms/der 1% Regel umgehen?

Mein bisheriger Ansatz sah so aus, dass ich den CUL nach seinen aktuellen credit10ms frage,
und falls nicht genug für das Senden einen Pakets da waren, dann wurde das Senden verschoben.

Nach folgender Anmerkung von Rudolf
ZitatDie credit10ms Abfrage vor jedem Senden halte ich fuer problematisch, weil das von CUL_MAX_Parse aufgerufene CUL_Get die CUL_MAX_Parse nochmal aufgeruft, falls vor dem Antwort auf die Daten MAX-Nachrichten sind. Weiterhin ist diese Abfrage inkompatibel mit FHEM2FHEM:RAW. Ich wuerde stattdessen diese Zaehlung im Modul selbst realisieren.
suche ich jetzt eine andere Möglichkeit.


Folgende Lösung fällt mir ein:
1) Ich zähle die Credits unabhänig vom CUL. Leider weiß ich dann nicht, wenn jemand anders den CUL benutzt (z.B. TI)
und ob der CUL resettet wurde etc. Ich glaube nicht, dass ich das robust machen kann.

2) Ich sende das Paket einfach immer sofort. Wenn keine Antwort vom MAX Gerät zurück kommt, dann sende ich es nach einem Warten nochmal.
Leider weiß ich nicht, ob ich 100 Sekunden warten muss, weil gerade keine Credits da sind;
oder ob ich sofort eine Wiederholung sende, weil nur die Übertragung gestört war.

Aus meiner Perspektive muss ich entweder vom CUL Modul wissen, wie die aktuellen credits sind,
oder ob ein Senden fehlgeschlagen ist (CUL_Write sollte etwas zurück geben, falls LOVF kommt).

Was denkt ihr?