Espruino:Справочник по API/Класс E/enableWatchdog()

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин (Cubewriter) Контакты:</br>* Skype: cubewriter</br>* E-mail: cubewriter@gmail.com</br>* Максим Кузьмин на freelance.ru
Проверка/Оформление/Редактирование: Мякишев Е.А.


Функция E.enableWatchdog()[1]

Синтаксис

E.enableWatchdog(timeout, isAuto)

Параметры

  • timeout – таймаут до сброса сторожевого таймера (в секундах)
  • isAuto – если задать здесь undefined или true, сторожевой таймер будет автоматически сброшен. Если нет, вам нужно будет самостоятельно вызвать E.kickWatchdog()

Возвращаемое значение

Нет.

Описание

Сбрасывает сторожевой таймер. Если в течение заданного таймаута сторожевой таймер сброшен не будет, это сбросит саму Espruino.

Если задать в isAuto значение false, вам нужно будет самостоятельно вызвать E.kickWatchdog(), иначе будет выполнен сброс чипа.

Пример 1:

E.enableWatchdog(0.5); // автоматический режим                                                        
while(1); // Espruino перезагрузится, потому что не находилась
          // в состоянии простоя в течение 0.5 секунд

Пример 2:

E.enableWatchdog(1, false);                                                         
setInterval(function() {
  if (everything_ok)
    E.kickWatchdog();
}, 500);
// Espruino будет сброшена, если в «everything_ok» будет «false»
// или если не будет вызвана функция setInterval()

Примечание: Эта функция реализована только в STM32- и nRF5x-устройствах (все это – официальные платы Espruino).

Примечание: На STM32-устройствах (Pico, WiFi, Original), использующих setDeepSleep(1), вам нужно будет явно разбудить Espruino при помощи setInterval(), где интервал должен быть меньше, чем таймаут сторожевого таймера. В противном случае сторожевой таймер не сбросится, и плата будет перезагружена. Сделать это можно при помощи setInterval("", time_in_milliseconds).

Примечание: Эта функция не доступна для устройств с маленькой flash-памятью.

См.также

Внешние ссылки