Documentation sur les outils eMQTT5

eMQTT5 est un client MQTT v5.0 qui vise une faible utilisation des ressources pour les systèmes embarqués.

Il est fourni avec des exemples d'outils utiles qui vous permettront de vous connecter à un courtier MQTT v5.0, de vous abonner et de publier des messages, et d'analyser les paquets du réseau pour en comprendre la signification.

Construction

Comme d'habitude avec un dépôt Git, vous devrez d'abord le cloner :

$ git clone https://github.com/X-Ryl669/eMQTT5.git

Ensuite, vous le construirez. Vous aurez besoin d'installer cmake (veuillez vous référer à votre distribution pour obtenir cmake). La version minimale requise de cmake est la 3.7.

$ cd eMQTT5
$ mkdir build
$ cd build
$ cmake ..

Si vous avez ccmake, vous pouvez obtenir un menu pour activer/désactiver des fonctionnalités de la bibliothèque (remplacez la dernière ligne par ccmake ..)

Ensuite, vous construirez tous les outils de cette façon :

$ make

MQTTc

Le MQTTc est un exemple de client utilisant la bibliothèque fournie. Il est construit automatiquement lorsque vous construisez le logiciel. Vous l'appellerez ainsi :

$ ./tests/MQTTc
Usage is: ./MQTTc [options]
Options:
    --help or -h            Get this help message
    --server or -s arg          The server URL (for example 'mqtt.mine.com:1883')
    --username or -u arg            The username to use
    --password or -pw arg           The password to use
    --clientid or -c arg            The client identifier to use
    --keepalive or -k arg           The client keep alive time
    --publish or -pub arg           Publish on the topic the given message
    --retain or -r          Retain published message
    --qos or -q arg         Quality of service for publishing or subscribing
    --subscribe or -sub arg         The subscription topic
    --der or -d arg         Expected broker certificate in DER format
    --verbose or -v         Dump communication

La connexion à un courtier pour s'abonner à un sujet whatever se fait de cette manière :

$ ./tests/MQTTc -s demo.mqtt.com -u me -pw secret -sub whatever
Connected to mqtt://demo.mqtt.com
Subscribed to whatever
Waiting for messages...

Connexion à un courtier pour publier un message à whatever (essayez dans un nouveau terminal) :

$ ./tests/MQTTc -s demo.mqtt.com -u me -pw secret -pub whatever "My message"
Connected to mqtt://demo.mqtt.com
Published My message to whatever

Le premier terminal affichera :

Msg received: (8F4C)
  Topic: whatever
  Payload: My message

MQTTParsePacket

MQTTParsePacket est un outil utilisé pour analyser les paquets réseaux reçus/envoyés. Il peut être utile pour déboguer un problème de communication avec un courtier ou pour garantir la validité de la réponse du courtier. Vous pouvez l'utiliser de cette manière :

$ # Give it the raw bytes from network communication and it'll dump what it means
$ ./MQTTParsePacket 30 1E 00 18 73 74 61 74 75 73 2F 59 4F 4C 54 79 79 76 75 57 58 50 5A 2F 6C 6F 67 73 00 5B 31 5D
Detected PUBLISH packet
with size: 32
PUBLISH control packet (rlength: 30)
  Header: (type PUBLISH, retain 0, QoS 0, dup 0)
  PUBLISH packet (id 0x0000): Str (24 bytes): status/YOLTyyvuWXPZ/logs
  Properties with length VBInt: 0
  Payload (length: 3)

Article suivant