From 355d58ede76d2dc455de7646b8faa2621f4f282e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20CHOMAZ?= Date: Mon, 11 Nov 2024 15:19:35 +0100 Subject: [PATCH] =?UTF-8?q?Cr=C3=A9ation=20du=20ReadMe=20pour=20pouvoir=20?= =?UTF-8?q?documenter=20nos=20services?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/readme.md | 132 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 services/readme.md diff --git a/services/readme.md b/services/readme.md new file mode 100644 index 0000000..a1bbe68 --- /dev/null +++ b/services/readme.md @@ -0,0 +1,132 @@ +# Présentation des divers services liés à BrainBlast. + +## 📟 Gestionnaire de Buzzer pour BrainBlast (*`Buzzer-Manager.js`*) + +Ce script Node.js gère les buzzers du jeu **BrainBlast** en utilisant MQTT pour la communication entre les buzzers et les autres composants du système. + +### 🚀 Fonctionnalités Principales +* **Connexion au Broker MQTT** : Se connecte à un broker MQTT (*`mqtt://localhost`* par défaut) pour envoyer et recevoir des messages. +* **Gestion des Buzzers** : + * **Blocage/Déblocage** : Bloque les buzzers lorsqu'un est activé pour empêcher les autres de répondre, et les débloque sur demande. + * **Mode Tilt** : Permet d'ignorer certains buzzers en les ajoutant au mode "tilt". +* **Validation des Données** : Vérifie que les informations reçues des buzzers sont valides (ID du buzzer, couleur, etc.). +* **Intégration Lumineuse** : Contrôle les effets lumineux en fonction des actions des buzzers via le gestionnaire de lumières. + + +### 🛠️ Configuration et Utilisation + +* **Installation des Dépendances** : +```bash +npm install mqtt +``` +* **Configuration** : + + * Modifier l'URL du broker MQTT et le client ID si nécessaire dans le script : + +```javascript +// Configuration du broker MQTT +const brokerUrl = 'mqtt://votre-broker'; +const clientId = 'buzzer_manager'; +``` + +* **Lancement du Script** : +```bash +node buzzer-manager.js +``` + +### 📡 Sujets MQTT Utilisés +* **Souscriptions** : + * `brainblast/buzzer/pressed/#` : Détecte lorsqu'un buzzer est pressé. + * `brainblast/buzzer/unlock` : Gère les demandes de déblocage des buzzers. + * `brainblast/buzzer/tilt` : Gère l'ajout ou le retrait des buzzers en mode tilt. +* **Publications** : + * `brainblast/buzzer/confirmation/{buzzer_id}` : Confirme la réception des actions des buzzers. + * `brainblast/buzzer/status` : Informe sur l'état actuel des buzzers (bloqués, débloqués, tilt). + * `brainblast/light/change` : Demande des changements d'effets lumineux au gestionnaire de lumières. + +--- + +## 🖥️ Moniteur de Statut des Buzzers pour BrainBlast (*`BuzzerWatcher.js`*) + +Ce script Node.js surveille l'état des buzzers du jeu **BrainBlast** en les pingant régulièrement et en publiant leur statut (en ligne/hors ligne) sur un broker MQTT. + +### 🚀 Fonctionnalités Principales + +* **Surveillance des Buzzers** : Pinge chaque buzzer à intervalles réguliers pour vérifier s'il est en ligne. +* **Publication MQTT** : Envoie le statut (`online` ou `offline`) de chaque buzzer sur un topic MQTT spécifié, permettant aux autres composants du système de réagir en conséquence. +* **Configuration Flexible** : Charge dynamiquement les adresses IP des buzzers et les paramètres MQTT depuis un fichier `config.json`. + +### 🛠️ Installation et Configuration +#### Prérequis + +* **Node.js** installé sur votre machine. +* Modules NPM requis : `ping` et `mqtt`. + +#### Installation des Dépendances +```bash +npm install ping mqtt +``` + +#### Configuration +1. **Fichier de Configuration** : Créez un fichier `config.json` dans le répertoire `\services\config\` avec le contenu suivant : + +```json +{ + "hosts": { + "buzzers": { + "IP": { + "buzzer1": "192.168.1.10", + "buzzer2": "192.168.1.11" + }, + "MQTTconfig": { + "mqttHost": "mqtt://localhost", + "mqttTopic": "brainblast/buzzers/status" + } + } + } +} +``` + +* **Adresses IP des Buzzers** : Remplacez par les adresses IP de vos buzzers. +* **Configuration MQTT** : + * `mqttHost` : L'adresse de votre broker MQTT. + * `mqttTopic` : Le topic sur lequel publier le statut des buzzers. + +2. **Chemin du Fichier de Configuration** : Assurez-vous que le chemin vers `config.json` dans le script est correct : + +```javascript +const config = JSON.parse(fs.readFileSync('\\services\\config\\config.json', 'utf8')); +``` + +### ▶️ Utilisation + +* **Lancement du Script** : +```bash +node BuzzerWatcher.js +``` + +Le script va : + + * Se connecter au broker MQTT spécifié. + * Pinger chaque buzzer toutes les 3 secondes. + * Publier le statut de chaque buzzer sur le topic MQTT configuré. + +### 📡 Topic MQTT Utilisés + +* **Publication** : + * **Topic** : `brainblast/buzzers/status` + * **Payload Exemple** : + +```json +{ + "buzzer": "buzzer1", + "ip": "192.168.1.10", + "status": "online" +} +``` + +### 💡 Notes +* **Personnalisation de l'Intervalle** : Vous pouvez modifier l'intervalle de ping en changeant la valeur dans `setInterval(pingAndPublish, 3000);` (valeur en millisecondes). +* **Extensibilité** : Pour ajouter plus de buzzers, il suffit d'ajouter leurs adresses IP dans le fichier `config.json`. + +--- \ No newline at end of file