View a markdown version of this page

bibliothèque CoreMQTT - FreeRTOS

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

bibliothèque CoreMQTT

Note

Le contenu de cette page n'est peut-être pas à jour. Reportez-vous à la page de la FreeRTOS.org bibliothèque pour obtenir la dernière mise à jour.

Introduction

La bibliothèque CoreMQTT est une implémentation cliente de la norme MQTT (Message Queue Telemetry Transport). La norme MQTT fournit un protocole de messagerie léger publish/subscribe (ou PubSub) qui s'exécute par-dessus TCP/IP et est souvent utilisé dans les cas d'utilisation de machine à machine (M2M) et d'Internet des objets (IoT).

La bibliothèque CoreMQTT est conforme à la norme de protocole MQTT 3.1.1. Cette bibliothèque a été optimisée pour un faible encombrement mémoire. La conception de cette bibliothèque couvre différents cas d'utilisation, allant des plateformes aux ressources limitées utilisant uniquement des messages QoS 0 MQTT PUBLISH aux plateformes riches en ressources utilisant des connexions QoS 2 MQTT PUBLISH sur TLS (Transport Layer Security). La bibliothèque fournit un menu de fonctions composables, qui peuvent être choisies et combinées pour répondre précisément aux besoins d'un cas d'utilisation particulier.

La bibliothèque est écrite en C et conçue pour être conforme aux normes ISO C90 et C:2012MISRA. Cette bibliothèque MQTT ne dépend d'aucune bibliothèque supplémentaire, à l'exception des bibliothèques suivantes :

  • La bibliothèque C standard

  • Interface de transport réseau mise en œuvre par le client

  • (Facultatif) Une fonction de temps de plateforme implémentée par l'utilisateur

La bibliothèque est découplée des pilotes réseau sous-jacents grâce à une spécification d'interface de transport simple d'envoi et de réception. Le rédacteur de l'application peut sélectionner une interface de transport existante ou implémenter la sienne en fonction de son application.

La bibliothèque fournit une API de haut niveau pour se connecter à un broker MQTT, subscribe/unsubscribe à un sujet, publier un message sur un sujet et recevoir des messages entrants. Cette API prend l'interface de transport décrite ci-dessus comme paramètre et l'utilise pour envoyer et recevoir des messages depuis et vers le broker MQTT.

La bibliothèque expose également des serializer/deserializer API de bas niveau. Cette API peut être utilisée pour créer une application IoT simple composée uniquement du sous-ensemble requis de fonctionnalités MQTT, sans aucune autre surcharge. L' serializer/deserializer API peut être utilisée conjointement avec n'importe quelle API de couche de transport disponible, comme les sockets, pour envoyer et recevoir des messages à destination et en provenance du courtier.

Lorsque vous utilisez des connexions MQTT dans des applications IoT, nous vous recommandons d'utiliser une interface de transport sécurisée, telle qu'une interface utilisant le protocole TLS.

Cette bibliothèque MQTT ne comporte aucune dépendance à la plate-forme, telle que le threading ou la synchronisation. Cette bibliothèque possède des preuves démontrant une utilisation sûre de la mémoire et l'absence d'allocation de tas, ce qui la rend adaptée aux microcontrôleurs IoT, mais également entièrement portable sur d'autres plateformes. Il peut être utilisé librement et est distribué sous la licence open source du MIT.

Taille du code de CoreMQTT (exemple généré avec GCC pour ARM) Cortex-M
Fichier Avec optimisation -O1 Avec l'optimisation -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
Estimations totales 8,5 K 6,9 K