Cet article détaille un processus permettant de gérer la connexion des utilisateurs et la transmission des trames MQTT sur le réseau Meshtastic Gaulix. Des règles de routage des trames ont été mises en place afin de ne pas dépasser les 10 % d’utilisation de la fréquence par heure et de soulager les nœuds des trames qui ne leur sont pas destinées.
Diagramme détaillé du fonctionnement
Traitement des trames MQTT
Lorsqu’une trame MQTT arrive :
Validation initiale
- Vérification des doublons
- Si la trame est identifiée comme un doublon, elle est ignorée.
Trame avec destinataire
- Destinataire connecté
- Si le destinataire est connecté au serveur MQTT, la trame est transmise directement à ce nœud.
- Destinataire pas connecté
- Si la trame est de type « Message » ou « Admin » et que le destinataire n’est pas connecté :
- On identifie les nœuds locaux susceptibles de recevoir la trame.
- Si des nœuds locaux sont trouvés, la trame leur est transmise.
- Sinon, la trame est rejetée.
- Si la trame est de type « Message » ou « Admin » et que le destinataire n’est pas connecté :
Trame Broadcast
Lorsque la trame n’a pas de destinataire précisé :
- Vérification du type de trame
- Message : La trame est autorisée pour tous les nœuds.
- NodeInfo : Si la dernière transmission date de plus de 4 heures, la trame est autorisée pour tout le monde. Sinon, elle est rejetée.
- Télémétrie ou Position :
- Si la dernière transmission date de plus d’une heure, la trame est autorisée pour tous les nœuds.
- Si elle date de plus de 30 minutes mais moins d’une heure :
- On identifie les nœuds locaux. Si des nœuds sont trouvés, la trame leur est transmise.
- Sinon, elle est rejetée.
- Autre : Toute autre trame est rejetée.
Nombre de sauts autorisé
Si une trame est autorisée et qu’elle est pour tout le monde, elle est retransmise en LoRa. Si cette trame est un message, on l’autorise à faire plusieurs sauts.
Dans le cas contraire, elle n’est transmise qu’au nœud sans transmission LoRa.
Trouver les nœuds locaux
Cette fonction permet de déterminer quels nœuds locaux peuvent être contactés. Voici son fonctionnement :
- Recherche basée sur la position GPS
- Si une position GPS est disponible, les nœuds situés dans un rayon de 50 km sont identifiés.
- Recherche basée sur le département
- Si aucune position GPS n’est disponible ou si aucun nœud n’est trouvé dans la zone, les nœuds du même département sont récupérés via le système de nommage.
Conclusion
Ce système garantit une gestion efficace des trames MQTT en s’appuyant sur des critères précis. En intégrant des vérifications par type de trame et localisation des nœuds, il offre une transmission adaptée à la nature et au contexte de chaque interaction.
