Un Watchdog est un processus qui permet de rebooter une pycom lorsqu'elle ne répond plus au bout d'un certain timer.
On initialise un watchdog en lui donnant un temps à décompter. Si le temps est écoulé il reboot la Wipy. Il est possible de remettre à 0 le décompte, on dit alors qu'on "nourri" le watchdog.
Attention, une fois le watchdog démarré, il n'est pas possible de le reconfigurer ou d'en changer la valeur.
Exemple de mise en place :
from machine import WDT
watchdog = WDT(timeout=2 * 1000) # enable it with a timeout of 2 seconds
# fait une tâche courte (1)
watchdog.feed() # Réinitialisation du watchdog
# fait une tâche courte mais qui peut bloquer le programme (2)
watchdog.feed()
# fait une tâche très longue > 2 secondes (3)
watchdog.feed()
print("Au revoir")
Dans cet exemple on met en place un watchdog qui doit être nourri toutes les 2 secondes. Si ce n'est pas le cas, il reboot la Wipy.
Attention : la mise en place d'un watchdog peut entraîner des reboots de Wipy de façon intempestif, il peut alors être très dur de se connecter sur la Wipy.