Création du ReadMe pour pouvoir documenter nos services
This commit is contained in:
parent
18f91bf7f8
commit
355d58ede7
132
services/readme.md
Normal file
132
services/readme.md
Normal file
@ -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`.
|
||||||
|
|
||||||
|
---
|
Loading…
Reference in New Issue
Block a user