
MQTT-C ist ein MQTT V3.1.1-Client, der in C. MQTT geschrieben wurde, ist ein leichter Messaging-Protokoll mit Publisher-Subscriber-basiertem Messaging-Protokoll, das häufig in IoT- und Netzwerkanwendungen verwendet wird, bei denen hochrangige und niedrige Datenrate-Links erwartet werden. Der Zweck von MQTT-C ist es , einen tragbaren MQTT-Client für eingebettete Systeme und PCs gleichermaßen bereitzustellen. MQTT-C bietet dies durch eine transparente Plattformabstraktionsschicht (PAL), die das Portieren auf neuen Plattformen erleichtert. MQTT-C ist vollständig fadensicher, kann aber auch auf ein-betrügerischen Systemen vollkommen fein ausgeführt werden, wodurch MQTT-C für eingebettete Systeme und Mikrocontroller gut geeignet ist. Schließlich ist MQTT-C klein; Es gibt nur zwei Quelldateien mit insgesamt weniger als 2000 Zeilen.
Es war toll, von all den Orten zu hören, an denen MQTT-C verwendet wird! Bitte zögern Sie nicht, mit mir in Kontakt zu treten oder Probleme auf Github einzureichen!
Um MQTT-C zu verwenden, instanziieren Sie zuerst eine struct mqtt_client und initialisieren Sie es, indem Sie @REF mqtt_init aufrufen.
struct mqtt_client client ; /* instantiate the client */
mqtt_init ( & client , ...); /* initialize the client */Sobald Ihr Kunde initialisiert ist, müssen Sie eine Verbindung zu einem MQTT -Broker herstellen.
mqtt_connect ( & client , ...); /* send a connection request to the broker. */Zu diesem Zeitpunkt ist der Kunde einsatzbereit! Zum Beispiel können wir ein Thema wie SO abonnieren:
/* subscribe to "toaster/temperature" with a max QoS level of 0 */
mqtt_subscribe ( & client , "toaster/temperature" , 0 );Und wir können zu einem Thema wie SO veröffentlichen:
/* publish coffee temperature with a QoS level of 1 */
int temperature = 67 ;
mqtt_publish ( & client , "coffee/temperature" , & temperature , sizeof ( int ), MQTT_PUBLISH_QOS_1 );Das sind die Grundlagen! Von hier aus sind die Beispiele und API -Dokumentation gute Orte, um loszulegen.
Es gibt nur zwei Quelldateien , die erstellt werden müssen, mqtt.c und mqtt_pal.c . Diese Dateien sind ANSI C (C89) kompatibel und sollten mit jedem C -Compiler kompilieren.
Dann einfach #include <mqtt.h> .
Alternativ können Sie MQTT-C mit CMake oder dem bereitgestellten Makefile erstellen. Diese werden aus Gründen der Bequemlichkeit bereitgestellt.
Vorgebaute Dokumentation finden Sie hier: https://liambindle.ca/mqtt-c. Schauen Sie sich auch die Beispiele an.
Die @Ref -API -Dokumentation enthält alle Dokumentationsanwendungs -Programmierer, die benötigt werden sollten. Die @Ref-Pal-Dokumentation enthält alles, was Sie benötigen sollten, um MQTT-C auf eine neue Plattform zu portieren, und die anderen Module enthalten eine Dokumentation für MQTT-C-Entwickler.
Die MQTT-C-Unit-Tests verwenden das Cmocka Unit Testing Framework. Daher muss CMOCKA auf Ihrem Computer installiert werden, um die Unit -Tests zu erstellen und auszuführen. Aus Gründen der Bequemlichkeit ist ein einfaches "makefile" enthalten, um die Unit-Tests und Beispiele auf Unix-ähnlichen Maschinen zu erstellen. Die Unit -Tests und Beispiele können wie folgt erstellt werden:
$ make all Die Unit -Tests und Beispiele werden im Verzeichnis "bin/" gebaut. Die Unit -Tests können wie SO durchgeführt werden:
$ ./bin/tests [address [port]]Beachten Sie, dass die C -Adresse und die C -Portargumente optional sind, um den Speicherort des MQTT -Brokers anzugeben, der für die Tests verwendet werden soll. Wenn keine C -Adresse angegeben ist, wird der Mosquitto MQTT -Testserver verwendet. Wenn kein C -Port angegeben wird, wird Port 1883 verwendet.
MQTT-C bietet eine transparente Plattformabstraktionsschicht (PAL) in mqtt_pal.h und mqtt_pal.c . Diese Dateien deklarieren und implementieren die Typen und Aufrufe, die MQTT-C benötigt. In @Ref Pal finden Sie die vollständige Dokumentation des Kumpels.
Bitte zögern Sie nicht, hier Probleme und Ziehrequests einzureichen. Wenn Sie eine Pull-Request einreichen, stellen Sie bitte sicher, dass Sie Ihre Änderungen vollständig dokumentiert und die entsprechenden Unit-Tests hinzugefügt haben.
Dieses Projekt ist unter der MIT -Lizenz lizenziert. Weitere Informationen finden Sie in der Datei "LICENSE" .
MQTT-C wurde ursprünglich als CMPT 434 (Winter Semester, 2018) endgültig an der Universität von Saskatchewan entwickelt: