DrvAlive

Bildet die Basisklasse für die Implementierung eines Alive-Mechanismus für eine physikalische Verbindung. Im eingestellten Intervall (im Sekundenbereich) werden bestimmte Aktionen ausgelöst. So kann man sowohl einen Sende- als auch einen Empfangsmechanismus ableiten. Wird z.B. eine bestimmte Zeit lang nichts von einer bestimmten Peripheriekomponente empfangen, kann der Treiber dazu veranlasst werden, die Verbindung auf gestört und die der Peripheriekomponente zugeordneten Datenpunkte auf ungültig zu setzen. In Senderichtung wird zyklisch ein bestimmter parametrierter Datenpunkt an die Peripherie verschickt. Es empfiehlt sich, den Alivemechanismus an interne Datenpunkte zu koppeln, damit er leicht parametrierbar bleibt.

Diese Klasse stellt folgende virtuellen Methoden zur Verfügung:

  • restartTimer(): zieht den Timer des entsprechenden Objekts neu auf, stellt ihn auf den angegebenen Wert sec, der in einem Attribut der Klasse steht.

  • stopTimer(): setzt den internen Zustand des entsprechenden Alive-Objekts auf "nicht laufend".

  • timerExpired(): wird automatisch nach Ablauf des eingestellten Zeitintervalls aufgerufen, diese Funktion sollte abgeleitet werden. Hier werden alle Aktionen angegeben, die zyklisch ausgeführt werden sollen, wie z.B. das Versenden eines Alive-Datenpunktes und das erneute Aufziehen des Timers

  • setSec( unsigned int sec ): dient zum Setzen des Zeitintervalls, Angabe in Sekunden, mit 0 wird der Timer deaktiviert.

  • setUsec( unsigned int sec ): dient zum Setzen des Zeitintervalls, Angabe in Microsekunden.