CoreMQTT-Bibliothek - FreeRTOS

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

CoreMQTT-Bibliothek

Anmerkung

Der Inhalt dieser Seite ist möglicherweise nicht up-to-date. Bitte beziehen Sie sich auf dieFreeRTOS.org-Bibliotheksseitefür das neueste Update.

Einführung

Die CoreMQTT-Bibliothek ist eine Client-Implementierung vonMQTTStandard (Message Queue Telemetry Transport). Der MQTT-Standard bietet eine einfache Methode zum Veröffentlichen und Abonnieren (oderPubSub) Messaging-Protokoll, das auf TCP/IP basiert und häufig in Anwendungsfällen von Machine to Machine (M2M) und Internet der Dinge (IoT) verwendet wird.

Die CoreMQTT-Bibliothek ist kompatibel mitMQTT 3.1.1Protokollrichtlinien Diese Bibliothek wurde für einen geringen Speicherbedarf optimiert. Das Design dieser Bibliothek umfasst verschiedene Anwendungsfälle, von Plattformen mit eingeschränkten Ressourcen, die nur QoS 0 MQTT PUBLISH-Nachrichten verwenden, bis hin zu ressourcenreichen Plattformen, die QoS 2 MQTT PUBLISH über TLS (Transport Layer Security) -Verbindungen verwenden. Die Bibliothek bietet ein Menü mit zusammensetzbaren Funktionen, die ausgewählt und kombiniert werden können, um genau den Anforderungen eines bestimmten Anwendungsfalls zu entsprechen.

Die Bibliothek ist geschriebenCund so konzipiert, dass es konform istISO C90undMISRA C: 2012. Diese MQTT-Bibliothek hat keine Abhängigkeiten von zusätzlichen Bibliotheken außer den folgenden:

  • Die Standard-C-Bibliothek

  • Eine vom Kunden implementierte Netzwerktransportschnittstelle

  • (Optional) Eine vom Benutzer implementierte Plattformzeitfunktion

Die Bibliothek ist durch die Bereitstellung einer einfachen Spezifikation für die Sende- und Empfangsschnittstelle von den zugrunde liegenden Netzwerktreibern entkoppelt. Der Anwendungsautor kann je nach Anwendung eine vorhandene Transportschnittstelle auswählen oder eine eigene Schnittstelle implementieren.

Die Bibliothek bietet eine High-Level-API, um eine Verbindung zu einem MQTT-Broker herzustellen, ein Thema zu abonnieren/abzubestellen, eine Nachricht zu einem Thema zu veröffentlichen und eingehende Nachrichten zu empfangen. Diese API verwendet die oben beschriebene Transportschnittstelle als Parameter und verwendet sie zum Senden und Empfangen von Nachrichten an und vom MQTT-Broker.

Die Bibliothek stellt auch eine Low-Level-Serializer-/Deserializer-API zur Verfügung. Diese API kann verwendet werden, um eine einfache IoT-Anwendung zu erstellen, die nur aus der erforderlichen Teilmenge der MQTT-Funktionalität besteht, ohne zusätzlichen Aufwand. Die Serializer-/Deserializer-API kann in Verbindung mit jeder verfügbaren Transport-Layer-API wie Sockets verwendet werden, um Nachrichten an und vom Broker zu senden und zu empfangen.

Bei der Verwendung von MQTT-Verbindungen in IoT-Anwendungen empfehlen wir, eine sichere Transportschnittstelle zu verwenden, z. B. eine, die das TLS-Protokoll verwendet.

Diese MQTT-Bibliothek hat keine Plattformabhängigkeiten wie Threading oder Synchronisation. Diese Bibliothek hatBeweisedie eine sichere Speichernutzung und keine Heap-Zuweisung nachweisen, wodurch es für IoT-Mikrocontroller geeignet ist, aber auch vollständig auf andere Plattformen portierbar ist. Es kann frei verwendet werden und wird vertrieben unterMIT-Open-Source-Lizenz.

Codegröße von CoreMQTT (mit GCC für ARM Cortex-M generiertes Beispiel)
Datei Mit -O1-Optimierung Mit -Os-Optimierung
core_mqtt.c 4,0 K 3,4 K
core_mqtt_state.c 1,7 TSD. 1,3 K
core_mqtt_serializer.c 2,8K 2,2 K
Schätzungen insgesamt 8,5 K 6,9 K