Loop de eventos

Clase 25 de 30 • Curso de IoT: Programación de Microcontroladores ESP32

Clase anteriorSiguiente clase
    Gabriel Obregón

    Gabriel Obregón

    student•
    hace 8 meses

    El Concepto del Event Loop en Programación de Bajo Nivel

    Cuando desarrollamos sistemas a bajo nivel que necesitan reaccionar a eventos impredecibles, es fundamental comprender el concepto de programación orientada a eventos.

    Ejemplo de un Evento Impredecible

    Imaginemos que nos conectamos a una red Wi-Fi. Desde que iniciamos la conexión hasta que recibimos la confirmación, puede pasar un tiempo desconocido, e incluso, la conexión podría no concretarse nunca.

    Dado que estos eventos no pueden predecirse con exactitud, es necesario implementar un sistema de eventos, el cual organiza y gestiona estas situaciones.

    ¿Qué es el Event Loop?

    El Event Loop es una estrategia utilizada en diferentes sistemas para manejar eventos de forma ordenada y eficiente. Se encarga de esperar continuamente la llegada de eventos y procesarlos en el orden en que se reciben.

    Ejemplos de eventos en diferentes sistemas:

    • Páginas web: No sabemos en qué momento el usuario hará clic o tocará la pantalla.
    • Redes Wi-Fi: No podemos predecir cuándo un dispositivo se conectará o desconectará.
    • Servidores: No sabemos en qué momento un cliente realizará una solicitud de información.

    Para gestionar estos eventos, el Event Loop opera de la siguiente manera:

    1. Un emisor genera un evento, que puede ser de distintos tipos:
      • "Nueva conexión" (ejemplo: un dispositivo se conecta a Wi-Fi).
      • "Desconexión" (ejemplo: un usuario abandona la página web).
      • "Clic" (ejemplo: un usuario presiona un botón en la interfaz).
      • "Petición al servidor" (ejemplo: un navegador solicita una página web).
    2. El evento contiene información relevante, como qué dispositivo se desconectó o qué usuario hizo la solicitud.
    3. El evento se agrega a la "cola de eventos", una estructura FIFO (First In, First Out, es decir, "primero en entrar, primero en salir").
    4. El Event Loop revisa la cola de eventos y, uno por uno, los envía al manejador de eventos adecuado.
    5. El manejador procesa el evento y ejecuta la acción correspondiente.

    Ventajas del Event Loop

    • Permite desarrollar aplicaciones asíncronas, es decir, que pueden responder a eventos sin bloquear otras operaciones.
    • Organiza el flujo de trabajo de manera más estructurada.
    • Es una técnica ampliamente utilizada en diversos lenguajes de programación.

    En el caso del ESP32, el SDK oficial incorpora un Event Loop, asegurando una gestión eficiente de los eventos en este entorno de desarrollo.

    Julio Cardenas

    Julio Cardenas

    student•
    hace 2 años

    event loop en esp32 . .

    event_loop_esp.png

    Mariana Valencia Gallego

    Mariana Valencia Gallego

    student•
    hace 2 años

    Cuando recién comencé a aprender a programar, el event loop era una de las cosas que más me costaba entender.

    Muy buena esta explicación

    Yimmy Cruz

    Yimmy Cruz

    student•
    hace 3 años

    La programación orientada a eventos se puede comparar con la organización de una fiesta. En una fiesta, los anfitriones definen las reglas básicas, como la hora de inicio y fin, la ubicación, el tipo de vestimenta, etc. Una vez que la fiesta comienza, los invitados llegan y empiezan a interactuar entre sí, cada uno haciendo sus propias cosas. Si algo interesante sucede, como una canción que les gusta a todos o alguien quiere hacer un brindis, los anfitriones pueden tomar medidas para aprovechar el momento y hacer que la fiesta sea más interesante.

    De manera similar, en la programación orientada a eventos, el código define reglas básicas y espera a que ocurran eventos. Cuando se produce un evento, se activa una parte específica del código, llamada "manejador de eventos", que procesa el evento y realiza la acción correspondiente.

    Por otro lado, el bucle de eventos se puede comparar con un asistente personal. Imagine que tiene un asistente personal que maneja su agenda y le notifica cuándo tiene una reunión o una cita. El asistente siempre está en espera, observando su agenda y esperando que se produzca un evento (una reunión, una cita, etc.). Cuando se produce un evento, el asistente le avisa y le ayuda a prepararse para la reunión o la cita.