.. _gwdt:

=====================
Ground Watchdog Timer
=====================

The system is equipped with a ground watchdog timer (GWDT) that must be reset periodically using a telecommand. If the GWDT expires, it clears the boot tables for the ``rx`` and ``tx`` groups and reboots the system to return to the fallback settings (or default if no fallback configuration is stored). The GWDT is enabled by default with a timeout of 24 hours. The timeout value can be set between 1 hour (3600 seconds) and 1 week (604800 seconds) using the ``sys.gwdt.init`` property or set to zero to disable the timer.

The current GWDT counter value can be read back through the ``sys.gwdt.counter`` property. This value is initialized to ``sys.gwdt.init`` when the system boots, and decrements every second. It can only be reset by setting the ``sys.gwdt.reset`` property to the special value ``SL_SRS4_GWDT_RESET_KEY`` (``0xCCB1180C``).

The client library provides wrapper functions to reset and read the current GWDT value: :ref:`srs4-client-gwdt`

Reboot Timer
============

The ``sys.reboot`` property is used to engage a timer that reboots the system in a specified number of seconds. This can e.g. be used before experimenting with radio settings, to ensure the system returns to a working configuration without having to wait for a GWDT reboot. The reboot timer can not be enabled by default and will not reset any properties like the GWDT.

To enable it, set the ``sys.reboot`` property to the number of seconds until reboot. The property value can be read back and will decrement every second. To disable the timer, set the property to 0.
