Librería Arduino Timeout Task


La librería Timeout Task permite evaluar una determinada condición durante un intervalo de microsegundos especificado por el usuario, y ejecutar acciones en función del resultado obtenido durante la espera.

La clase Timeout Task está pensada para la ejecución de tareas costosas computacionalmente, sin que afecte al bucle de ejecución principal. Por ejemplo en comunicaciones, podemos esperar una señal de inicio durante un breve periodo y, si se recibe la señal, iniciar el proceso de recepción/envío propiamente dicho. Otro ejemplo podría ser comprobar si el estado de unas entradas es el esperado, y en caso afirmativo realizar un cálculo o iniciar un actuador.

Por otro lado, Timeout Task también es útil para implementar de forma sencilla un watchdog. Por ejemplo, encender un motor durante un cierto tiempo, y esperar que alcance un pulsador de fin de carrera. En caso de sobrepasar un tiempo razonable, detener el motor por seguridad.

Una instancia Timeout Task dispone de una condición y dos funciones de callback, OkCallback y TimeOutCallback. Al ejecutar la tarea, se evalúa la condición continuamente durante el tiempo especificado. Si en algún momento la condición es cierta, se ejecuta la función de OkCallback. Si, por el contrario, expira el tiempo de Timeout, se ejecuta la acción TimeOutCallback y se devuelve el flujo de control.

Se dispone de dos formas de uso de la librería. Una es instanciar un objeto de la clase TimeoutTask, y llamar a su método Run(). La forma alternativa es llamar directamente al método estático Run().

Manual de uso

Uso como objeto

La clase TimeoutTask puede instanciarse como un objeto a través de su constructor, y activarse con el método Run().

Uso con método estático

Alternativamente, podemos ejecutar la TimeoutTAsk a través del método estático Run().

Ejemplos

La librería Timeout Task incluye los siguientes ejemplos para ilustrar su uso.

  • TimeoutTask: Ejemplo como instancia actuando como Timeout

  • StaticTimeOutTask: Ejemplo con método estático Run()

  • Watchdog: Ejemplo como método estático actuando como Watchdog

Instalación

  • Descargar la última versión desde GitHub
  • Descomprimir el archivo
  • Copiar en tu carpeta de librerías (normalmente Mis Documentos\Arduino\libraries)
  • Relanzar el IDE de Arduino

Si te ha gustado esta entrada y quieres leer más sobre Arduino puedes consultar la sección
tutoriales de Arduino
Previous ¿Qué es Raspberry Pi?
Next Montar un API REST con NodeJs y Express

¡Deja un comentario!...

avatar
1000
wpDiscuz