Ein Funkloch, ein Gewitter oder eine unerwartete Störung und prompt reißt ein Telefongespräch ab oder ein gestreamtes Video stockt. Jeder kennt es, jeder hat es schon einmal erlebt. Manchmal genügt ein simpler Positionswechsel, manchmal muss man warten, bis ein Unwetter vorüberzieht oder eine Störung behoben ist. Es kommt auch vor, dass man sein Gerät neustarten muss.
Doch wie verhält sich ein rapidM2M Modul bei einer Störung und wie kann in der Device Logic (DLO) darauf reagiert werden?
Es gibt verschiedene Modi, wie ein rapidM2M Modul Verbindungen aufbaut. Je nach Modus verhält sich das rapidM2M leicht unterschiedlich. Intervall, Wakeup oder Online – hier geht es zur allgemeinen Übersicht der Modi.
Retrymechanismen im Modus Intervall
Das Modem wird nur bei Bedarf eingeschaltet und versucht dann, eine Verbindung aufzubauen. Kann keine vollständige Synchronisation mit dem Server stattfinden, so wird das Modem deaktiviert und nach 2 Minuten ein erneuter Versuch gestartet. Nach dem 3. erfolglosen Versuch wird abgebrochen. Im nächsten Intervall wird wieder versucht, eine neue Verbindung aufzubauen. Erst bei einer erfolgreichen Synchronisation wird der Zähler zurückgesetzt.
Retrymechanismen im Modus Wakeup
Das Modem ist dauerhaft eingeschaltet und verbindet nur im Intervall oder beim Empfang einer Wakeup SMS. Auch hier werden bei einer Verbindung 3 Versuche gestartet, um eine vollständige Synchronisation mit dem Server zu vollbringen. Während den Versuchen wird wieder 2 Minuten gewartet und in dieser Zeit wird das Modem deaktiviert und somit jedes Mal neu gestartet. Im nächsten Intervall wird wieder versucht, eine neue Verbindung aufzubauen. Erst bei einer erfolgreichen Synchronisation wird der Zähler zurückgesetzt.
Retrymechanismen im Modus Online
Das Modem ist dauerhaft eingeschaltet und hält eine Datenverbindung zum Server aufrecht. Bricht diese Verbindung unerwartet ab, so wird sofort versucht, eine neue Verbindung herzustellen. Auch hier werden in einem Abstand von 2 Minuten 3 Versuche gestartet. Sollte dies nicht funktionieren, so wird das Modem deaktiviert und kein neuer Versuch gestartet.
Erkennen und Reagieren in der DLO
Der Device Logic (DLO) stehen dafür einige Funktionen zur Verfügung:
- Mit rM2M_TxSetMode kann der Verbindungsmodus eingestellt werden.
- Mit rM2M_TxStart kann eine Verbindung zum Server angestoßen werden.
- Mit rM2M_TxGetStatus kann der aktuelle Status abgefragt werden.
Für einen reibungsfreien Ablauf sollte zyklisch der Status abgefragt und gegebenen Falls darauf reagiert werden.
Status | Bedeutung |
RM2M_TX_STARTED | es wird gerade versucht, eine Verbindung zum Server aufzubauen |
RM2M_TX_ACTIVE | eine Verbindung zum Server ist gerade aktiv (z.B. während einer Synchronisation im Modus Intervall oder ständig im Modus Online) |
RM2M_TX_WAKEUPABLE | der Modus Wakeup ist aktiv und das Gerät kann durch ein SMS geweckt werden |
RM2M_TX_RETRY | das rapidM2M befindet sich gerade zwischen 2 Versuchen, eine Verbindung zum Server aufzubauen |
RM2M_TX_FAILED | bedeutet, eine Verbindung konnte trotz mehrerer Versuche nicht aufgebaut werden |
Nach einem rM2M_TxStart wird zuerst das Flag RM2M_TX_ACTIVE aktiv und das DLO weiß, dass das rapidM2M den Befehl richtig verstanden hat. Erhält man das Flag RM2M_TX_RETRY, so muss das DLO noch nicht reagieren, denn das rapidM2M startet eine erneute Verbindung automatisch. Erst wenn das Flag RM2M_TX_FAILED erkannt wird, sollte das DLO entsprechend reagieren.
Wie soll sich die DLO am besten Verhalten?
Im Intervallbetrieb ist ein Ausfall einer Verbindung meist kein großes Problem, da die relevanten Daten ohnehin am rapidM2M gespeichert bleiben und so nur Zeitverzögert zum Server synchronisiert werden. Natürlich kann trotzdem zeitnahe ein erneuter Verbindungsaufbau gestartet werden.
Im Onlinebetrieb stellt ein Ausfall meistens größere Probleme dar. Stellwerte kommen unter Umständen nicht zum Gerät oder Einstellungen werden nicht übernommen. Hier empfiehlt es sich, je nach Dringlichkeit, bereits auf das RM2M_TX_RETRY, aber zumindest auf RM2M_TX_FAILED zu reagieren und eine erneute Verbindung zu triggern.