Biblioteca coreMQTT - FreeRTOS

Biblioteca coreMQTT

nota

Es posible que el contenido de esta página no esté actualizado. Consulte la página de la biblioteca de FreeRTOS.org para obtener la última actualización.

Introducción

La biblioteca coreMQTT es una implementación de cliente del estándar MQTT (Message Queue Telemetry Transport). El estándar MQTT proporciona un protocolo de mensajería ligero de publicación/suscripción (o PubSub) que se ejecuta sobre TCP/IP y se usa a menudo en casos de uso de máquina a máquina (M2M) e Internet de las cosas (IoT).

La biblioteca coreMQTT cumple con el estándar de protocolo MQTT 3.1.1. Esta biblioteca se ha optimizado para reducir el consumo de memoria. El diseño de esta biblioteca abarca diferentes casos de uso, desde plataformas con recursos limitados que utilizan únicamente mensajes QoS 0 MQTT PUBLISH hasta plataformas con muchos recursos que utilizan QoS 2 MQTT PUBLISH a través de conexiones TLS (Transport Layer Security). La biblioteca proporciona un menú de funciones componibles, que se pueden elegir y combinar para adaptarse con precisión a las necesidades de un caso de uso concreto.

La biblioteca está escrita en C y está diseñada para cumplir con las normas ISO C90 y MISRA C:2012. Esta biblioteca MQTT no depende de ninguna biblioteca adicional, excepto de las siguientes:

  • La biblioteca C estándar

  • Una interfaz de transporte de red implementada por el cliente

  • (Opcional) Una función horaria de plataforma implementada por el usuario

La biblioteca está desacoplada de los controladores de red subyacentes mediante una especificación sencilla de interfaz de transporte de envío y recepción. El autor de la aplicación puede seleccionar una interfaz de transporte existente o implementar la suya propia según convenga para su aplicación.

La biblioteca proporciona una API de alto nivel para conectarse a un agente de MQTT, suscribirse o cancelar la suscripción a un tema, publicar un mensaje en un tema y recibir los mensajes entrantes. Esta API toma como parámetro la interfaz de transporte descrita anteriormente y la utiliza para enviar y recibir mensajes desde y hacia el agente de MQTT.

La biblioteca también expone una API de serializador/deserializador de bajo nivel. Esta API se puede usar para crear una aplicación de IoT simple que consista solo en el subconjunto requerido de la funcionalidad MQTT, sin ningún otro tipo de sobrecarga. La API de serializador/deserializador se puede utilizar junto con cualquier API de capa de transporte disponible, como los sockets, para enviar y recibir mensajes desde y hacia el agente.

Cuando utilice conexiones MQTT en aplicaciones de IoT, le recomendamos que utilice una interfaz de transporte segura, como una que utilice el protocolo TLS.

Esta biblioteca MQTT no tiene dependencias de plataforma, como el subprocesamiento o la sincronización. La biblioteca tiene pruebas que muestran un uso seguro de la memoria y la ausencia de asignación de pilas, lo que la hace adecuada para microcontroladores de IoT, pero también es totalmente portátil a otras plataformas. Se puede utilizar libremente y se distribuye bajo la licencia de código abierto de MIT.

Tamaño de código de coreMQTT (ejemplo generado con GCC para ARM Cortex-M)
Archivos Con optimización -O1 Con optimización -Os
core_mqtt.c 4,0 K 3,4 K
core_mqtt_state.c 1,7 K 1,3 K
core_mqtt_serializer.c 2,8 K 2,2 K
Estimaciones totales 8,5 K 6,9 K