Initialisation depot

This commit is contained in:
Serge NOEL
2026-02-10 12:12:11 +01:00
commit c3176e8d79
818 changed files with 52573 additions and 0 deletions

902
Wiki-print/data/article.md Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,898 @@
# 🛰️ MKII / Magnetometer
MKii est un dispositif de mesure magnétique, il est constitué de 7 capteurs immergés et reliés via un cable de 300m à une application Magnetometer chargée de l'acquisiion des données.
![Diagram 1](diagrams/diagram_1.svg)
C'est une application web moderne et responsive pour la visualisation de données de capteurs en temps réel avec des coordonnées X, Y, Z. Elle comprend :
- un logiciel d'acquisition
- une interface IHM
- un service windows pour synchroniser l'heure avec un GPS
- un simulateur Python
- un utilitaire pour lister les ports COM disponibles
## 📋 Dépôt Source
- Capteurs : [Sources]()
- Partie IHM : [Sources](https://gitea.aipice.local/HEXA-H/Mkii-IHM)
- Acquisition : [Sources](https://gitea.aipice.local/HEXA-H/Hdlc)
- Service GPS : [Sources](https://gitea.aipice.local/HEXA-H/GpsTimeSvc)
- Simulateur : [Sources]()
- Liste COM : [Sources]()
## ✨ Fonctionnalités
### Caractéristiques principales
- **Graphiques en Temps Réel** : Visualisation des données issue des capteurs en direct.
- **Graphiques Intelligent** : graphiques dynamique avec capacités de zoom, survol des valeurs, ...
- **Support Multi-capteurs** : affichage de 7 capteurs simultanément
- **Vues Individuelles/Combinées** : Affichage de l'ensemble des capteurs ainsi que le détail pour chacun
- **Contrôles d'Échelle et Décalage** : Ajustement en temps réel des valeurs d'échelle et de décalage des capteurs
- **Synchronisation de l'heure**: synchronisation de l'heure sur une référence fiable (GPS)
### Simulateur
Programme créé pour simuler le fonctionnement des la partie acquisition.
- **Simulateur Toujours Actif** : Le programme fonctionne en continu en arrière-plan
- **Contrôle d'Acquisition Instantané** : Réagit aux ordres de démarrage / arret
- **Communication d'État YAML** : Mises à jour d'état en temps réel via fichier `status.yaml`
- **Données** : Génère les données pour tous les capteurs configurés indépendamment de l'état activé
### Interface Utilisateur IHM
- **Interface Modale** : Sélection des capteurs, intégration de fichiers et paramètres dans des popups (modal box)
- **Suivit d'acquisition** : rafraichissment des graphiques uniquement en mode acquisition
- **État en Temps Réel** : Affichage en direct de l'état de l'acquisition et du nombre d'échantillons
- **Design Responsive** : Interface basée sur Bootstrap.
### Magnetometer
- **Simulateur Continu** : Génération de données de capteurs basée sur Python avec contrôle instantané
- **Lecteur CSV Magnétomètre** : Importer et relire des fichiers de données historiques
- **Lancement d'Application Externe** : Démarrer des applications externes et lire leurs fichiers de données
- **Entrée Temps Réel** : Prêt pour l'intégration de matériel de capteurs en direct
### Gestion de Configuration
- **Sauvegardes Automatiques** : Sauvegardes de configuration horodatées.
- **Mappage Dynamique des Capteurs** : Configurer les capteurs sans modifications de code
### Gestion des Données
- **Fichiers CSV** : Chaque acquisition crée des fichiers de données horodatés
- **Navigateur de Fichiers Historiques** : Charge et analyse les sessions de données précédentes
### Déploiement de Production
- **PHP 8.2/Apache** : Serveur web professionnel avec configuration personnalisée
- **Python 3.12** : pour la partie acquisition et simulateur
- **Cpp** : pour certains outils anexes (synchro GPS, ...)
## 🚀 Démarrage Rapide
### Déploiement de Production (Docker)
1. **Installation**
2. **Accéder à l'Application :**
- Interface Web : `http://localhost`
### Configuration de Développement
1. **Installer les Dépendances Python :**
```bash
pip install -r requirements.txt
```
2. **Démarrer le Simulateur Continu :**
```bash
python3 sensor_simulator.py --rate 10
```
3. **Démarrer l'Application :**
```bash
cd setup && ./startup.sh
```
4. **Démarrer le Simulateur de Capteurs :**
```bash
# Démarrage de base (contrôle manuel via interface web)
./start_simulator.sh
# Démarrage automatique avec projet et campagne
./start_simulator.sh --project test_project --campaign demo_run
```
5. **Contrôler l'Acquisition :**
- Interface Web : Utiliser les contrôles modaux ou l'interface principale
- CLI : `python3 simulator_control.py start --project monproject --campaign test`
## 🎮 Contrôle de l'acquisition / du simulateur
### Communication par Fichier d'État
L'IHM et Magnetometer.exe lisent régulièrement le fichier `config/status.yaml`, la communication se fait au travers de ce fichier.
```yaml
acquisition:
campaign: _
commands: []
current_file: _
project: _
sample_count: 0
status: Stopped
```
### Démarrage de l'application
Magnetometer.exe modifie le champs `status:` lors de l'initialisation des capteurs. Quand les capteurs sont correctement initialisés, status prend la valeur `status: Ready`
### Lancement d'une acquisition
L'IHM place dans status.yaml, les informations nécessaires :
```yaml
...
commands:
- type: start
project: <nom projet>
campaign: <nom mesure>
...
```
Le programme Magnetometer.exe 'voit' cette demande et déclanche la lecture des capteurs, il vide le champs 'commands', puis met à jour les informations à transmettre à l'IHM
```yaml
acquisition:
campaign: <nom mesure>
commands: []
current_file: MAGNETOMETER_<timestamp>_<nom projet>_<nom mesure>.csv
project: <nom projet>
sample_count: <nb mesures effectuées>
status: Running
```
### Arret d'une acquisition
L'IHM place dans status.yaml, les informations nécessaires :
```yaml
...
commands:
- type: stop
...
```
Le programme Magnetometer.exe 'voit' cette demande et arrete la lecture des capteurs, il vide le champs 'commands', puis met à jour les informations.
```yaml
acquisition:
campaign: -
commands: []
current_file: -
project: -
sample_count: 0
status: Idle
```
### Arret de magnetometer.exe
Le programme Magnetometer.exe met à jour les informations comme suit :
```yaml
acquisition:
campaign: -
commands: []
current_file: -
project: -
sample_count: 0
status: Not Running
```
## 📁 Fichiers de Données
### Génération CSV Automatique
- **Basé sur Session** : Chaque acquisition crée un nouveau fichier horodaté
- **Format** : `SENSOR_YYYY-MM-DD_HH-MM-SS_projet_campagne.csv`
- **Localisation** : Dossier `c:/Mkii/data/`
- **En-têtes** : Timestamp, Time_s, Bx, By, Bz, Temperature, Angle_X, Angle_Y, Angle_Z
### Accès aux Données Historiques
- **Navigateur de Fichiers** : Interface modale pour la sélection de fichiers historiques
- **Lecture** : Lecture en temps réel des données historiques
- **Importation** : Télécharger des fichiers CSV externes pour analyse
## 🏗️ Architecture
### Composants du Système
Le diagramme suivant représente le principe de fonctionnement de l'application.
Nous retrouvons les deux processus IHM et Magnetometer.exe qui sont deux applications autonomes. Elles échangent leurs informations au travers du fichier `c:/Mkii/config/status.yaml`
![Diagram 2](diagrams/diagram_2.svg)
### Prérequis
- La partie IHM est concue autour d'une page Web, il faut en conséquence que le port 80 soit disponible sur la machine.
### Points d'Accès
- 📊 **Ecran Principal** : http://localhost
- ⚙️ **Barre des tâches** : 🧲 click droit
## 📁 Structure des Fichiers
### Format de Fichier
Les fichiers CSV de magnétomètre ont la structure suivante :
- **Valeurs séparées par point-virgule** (`;`)
- **6 capteurs maximum** (Capteur 1-6)
- **Colonnes de données par capteur** :
- `Horodatage` - Horodatage Unix
- `Bx (nT)` - Champ magnétique axe X (nanotesla)
- `By (nT)` - Champ magnétique axe Y (nanotesla)
- `Bz (nT)` - Champ magnétique axe Z (nanotesla)
- `P (Bar)` - Pression (bar)
- `Temperature` - Température (°C)
- `Angle X/Y/Z` - Angles d'orientation
## ⚙️ Configuration
### Configuration des Capteurs
L'édition des capteurs peut être réalisée directement dans l'interface web :
```yaml
sensors:
sensor_1:
id: 1
name: "Accéléromètre Avant"
description: "Capteur accéléromètre panneau avant"
serial: "HEXAH-024545-001"
enabled: true
color:
x: "#FF6384" # Couleur axe X
y: "#36A2EB" # Couleur axe Y
z: "#4BC0C0" # Couleur axe Z
default_scale:
x: 1.0
y: 1.0
z: 1.0
default_offset:
x: 0.0
y: 0.0
z: 0.0
units: "g"
location: "Panneau Avant"
```
### Paramètres d'Affichage
```yaml
display:
max_sensors_displayed: 12 # Capteurs maximum à afficher (1-12)
default_time_window: 30 # secondes
default_update_rate: 100 # millisecondes (10 Hz)
chart_height: 300 # pixels
show_legend: true
show_grid: true
```
# 📊 Guide d'Utilisation
### Tableau de Bord Principal
#### Sources de Données
1. **Simulation de Capteurs** : Générateur de données intégré avec modes multiples
- Réaliste : Simule des données réelles d'accéléromètre
- Onde Sinusoïdale : Motifs d'ondes sinusoïdales mathématiques
- Aléatoire : Données aléatoires dans des plages spécifiées
- Zéro : Données plates pour tests
## 🎛️ Interface Utilisateur
### Tableau de Bord Principal
- **Graphiques Temps Réel** : Visualisation de données de capteurs en direct avec contrôle de streaming automatique
- **Panneau de Contrôle** : Démarrer/arrêter l'acquisition de données avec réponse instantanée
- **Affichage d'État** : État du simulateur en temps réel, nombre d'échantillons et état d'acquisition
- **Contrôles Modaux** : Interface propre avec dialogues modaux pour fonctionnalités avancées
### Composants Interface Modale
#### 📡 Modale de Sélection de Capteurs
- **Liste Dynamique de Capteurs** : Choisir quels capteurs afficher
- **Configuration Temps Réel** : Les changements s'appliquent immédiatement aux graphiques
- **Gestion des Capteurs** : Activer/désactiver les capteurs sans rechargement de page
#### 📂 Modale d'Intégration de Fichiers
- **Lancement d'Application Externe** : Démarrer des applications externes avec paramètres projet/campagne
- **Navigateur de Fichiers Historiques** : Parcourir et charger les sessions de données précédentes
- **Téléchargement de Fichier** : Importation manuelle de fichiers CSV pour analyse
- **Contrôles de Lecture** : Lecture temps réel avec contrôle de vitesse (0.5x à 5x)
#### ⚙️ Modale de Paramètres de Capteurs
- **Contrôles Échelle/Décalage** : Ajustement de données temps réel par axe
- **Configuration de Graphique** : Options d'affichage et fenêtres temporelles
- **Exportation de Données** : Exportation CSV avec gestion de session
### Contrôle d'Acquisition
- **Streaming de Graphiques Intelligent** : Les graphiques se mettent automatiquement en pause quand aucune acquisition
- **Réponse Instantanée** : Démarrer/arrêter l'acquisition sans délais de redémarrage de processus
- **Indicateurs d'État** : Retour visuel pour l'état d'acquisition et l'état du simulateur
- **Suivi de Progression** : Nombres d'échantillons temps réel et informations de fichier de données
## 🔧 Gestion de Configuration
### Système de Configuration YAML
Éditer la configuration à `/config.html` ou directement dans `config/config.yaml` :
```yaml
sensors:
sensor_1:
id: 1
name: "Magnétomètre X"
description: "Magnétomètre primaire axe X"
serial: "HEXAH-024545-001"
enabled: true
color:
x: "#FF6384"
y: "#36A2EB"
z: "#4BC0C0"
units: "nT"
location: "Position Avant"
```
### Traitement des Données
- **Conversion d'Horodatage** : Horodatages Unix convertis en objets Date JavaScript
- **Données de Champ Magnétique** : Valeurs Bx, By, Bz en nanotesla (nT) → Visualisation graphique
- **Données Environnementales** : Température en °C, Pression en Bar
- **Données d'Angle** : Angles format IEEE 754 automatiquement convertis en degrés
- **Taux Temps Réel** : Lecture de données à 10Hz (configurable)
- **Mises à Jour Statiques** : Température et angles se rafraîchissent toutes les 5 secondes
### Fonctionnalités d'Intégration
- **Mappage Automatique de Capteurs** : Capteurs de fichier (Capteur 1-6) → Capteurs d'application (sensor_1-6)
- **Respect de Configuration** : Affiche seulement les capteurs activés
- **Suivi de Progression** : Barre de progression visuelle avec capacité de navigation
- **Contrôle de Vitesse** : Ajuster la lecture de 0.5x à 5x vitesse
- **Gestion d'Erreurs** : Rapports d'erreurs complets et récupération
## <20> Système de Gestion d'État
L'application utilise `config/status.yaml` pour la communication en temps réel entre les composants :
```yaml
app:
mode: development # Mode application : development|production
test_trigger: false # Indicateur de déclenchement de test
acquisition:
type: stop # Opération courante : start|stop
current_file: null # Nom du fichier de données actif
mode: realistic # Mode simulation : realistic|sine|random|step|vibration
project: test_project # Nom du projet de collecte de données
campaign: demo_run # Nom de la campagne de collecte de données
running: false # État d'acquisition
sample_count: 0 # Nombre d'échantillons collectés
simulator:
commands: [] # File d'attente des commandes en attente
```
### Modes d'Application
- **`production`** : Mode d'opération standard
- Contrôles de test cachés dans l'interface
- Optimisé pour la collecte de données
- Mode par défaut pour le déploiement
- **`development`** : Mode de développement amélioré
- Contrôles de test visibles dans le tableau de bord
- Bouton "Exécuter Tests" activé
- Lien "Résultats des Tests" accessible
- Fonctionnalités de débogage améliorées
### Points de Terminaison API d'État
**Obtenir l'État Actuel :**
```bash
GET /api.php?action=get_status
```
**Définir le Mode d'Application :**
```bash
POST /api.php
Content-Type: application/json
{
"action": "send_simulator_command",
"command": {
"type": "set_mode",
"mode": "development"
}
}
```
**Déclencher les Tests (Mode Développement) :**
```bash
POST /api.php
Content-Type: application/json
{
"action": "send_simulator_command",
"command": {
"type": "trigger_tests",
"test_trigger": true
}
}
```
## <20>🔧 Développement
### Développement Local (sans Docker)
Pour le développement avec un serveur PHP local :
```bash
# Démarrer serveur de développement PHP (recommandé)
php -S localhost:8080
```
**Note :** Pour la fonctionnalité complète incluant la sauvegarde de configuration, utilisez le setup Docker au lieu du serveur PHP local.
### Développement Docker
Pour le développement avec changements de code en direct :
```bash
# Utiliser montages de volumes pour développement
cd setup/
docker-compose down
docker-compose up -d
# Surveiller les logs
docker-compose logs -f
```
### Permissions de Fichiers
S'assurer que le répertoire config est accessible en écriture :
```bash
chmod -R 755 config/
chown -R www-data:www-data config/ # Pour Apache
```
### Vue d'Ensemble de l'Architecture
#### Composants Frontend
- **index.html** : Tableau de bord principal avec graphiques temps réel
- **config.html** : Interface éditeur de configuration
- **Modules CSS** : Style responsive avec design moderne
- **Modules JavaScript** : Architecture modulaire ES6+
#### Modules JavaScript
- **sensor-chart.js** : Intégration Chart.js avec données streaming
- **data-logger.js** : Exportation CSV et gestion de données
- **config-manager.js** : Chargement et gestion de configuration
- **php-config-manager.js** : Persistance de configuration côté serveur
- **magneto-file-reader.js** : Analyse de fichiers CSV et extraction de données
- **magneto-file-integration.js** : Intégration UI pour lecteur de fichiers
#### Composants Backend
- **api.php** : API RESTful pour gestion de configuration
- **Alpine Linux** : Image de base Docker légère
- **Apache + PHP 8.2** : Serveur web avec support PHP moderne
- **Persistance de Volumes** : Volumes Docker pour persistance de données
## 🚀 Déploiement de Production
### Déploiement Docker (Recommandé)
1. **Configurer Environnement** :
```bash
git clone <repository>
cd Mkii
```
2. **Configurer Application** :
```bash
# Éditer configuration si nécessaire
nano config/config.yaml
```
3. **Déployer** :
```bash
cd setup/
./setup.sh
```
4. **Vérifier Déploiement** :
```bash
./status.sh
curl http://localhost:8080
```
### Déploiement Manuel
Pour déploiement manuel sur stack LAMP existante :
1. **Copier Fichiers** :
```bash
cp -r * /var/www/html/
```
2. **Définir Permissions** :
```bash
chown -R www-data:www-data /var/www/html/config/
chmod -R 755 /var/www/html/config/
```
3. **Configurer Apache** :
```apache
<Directory /var/www/html>
AllowOverride All
Require all granted
</Directory>
```
## 🛠️ Dépannage / Problèmes Courants
#### Configuration Non Sauvegardée
```bash
# Vérifier permissions fichiers
ls -la config/
# Devrait montrer : drwxr-xr-x www-data www-data
# Corriger permissions
sudo chown -R www-data:www-data config/
sudo chmod -R 755 config/
```
#### Graphiques Non Affichés
1. Vérifier console navigateur pour erreurs JavaScript
2. Vérifier que les bibliothèques Chart.js se chargent
3. S'assurer que la configuration des capteurs est valide
4. Vérifier que la source de données est active
#### Lecteur de Fichiers Non Fonctionnel
1. Vérifier que le format de fichier CSV correspond à la structure attendue
2. Vérifier console navigateur pour erreurs d'analyse
3. S'assurer que le fichier contient les en-têtes requis : "Horodatage", "Bx (nT)", etc.
4. Essayer avec fichier de données exemple du répertoire `/data/`
#### Problèmes Docker
```bash
# Vérifier état conteneur
cd setup/
./status.sh
# Voir logs
./logs.sh
# Redémarrer conteneurs
./restart.sh
# Reconstruire si nécessaire
./rebuild.sh
```
## Optimisation des Performances
#### Données Haute Fréquence
- Ajuster `max_buffer_size` dans la configuration
- Réduire le taux de mise à jour graphique si nécessaire
- Utiliser la décimation de données pour longs enregistrements
#### Performance Navigateur
- Vider cache navigateur si les graphiques deviennent lents
- Fermer onglets navigateur inutilisés
- Utiliser navigateur moderne avec accélération matérielle
#### Performance Docker
```bash
# Surveiller utilisation ressources
docker stats
# Ajuster limites mémoire dans docker-compose.yml si nécessaire
services:
sensor-viz-app:
mem_limit: 512m
```
## 📝 Référence API
### API de Configuration
#### GET /api.php?action=read
Obtenir configuration actuelle
```json
{
"success": true,
"config": { /* Config YAML en JSON */ }
}
```
#### POST /api.php
Sauvegarder configuration
```json
{
"action": "write",
"config": { /* Nouvelle configuration */ }
}
```
#### GET /api.php?action=backup
Créer sauvegarde configuration
```json
{
"success": true,
"backup_file": "config_backup_2025-07-28_14-30-15.yaml"
}
```
### Format d'Exportation de Données
L'exportation CSV inclut :
```csv
timestamp,sensor_id,x_raw,y_raw,z_raw,x_processed,y_processed,z_processed
2025-07-28T14:30:15.123Z,1,0.123,0.456,0.789,0.123,0.456,0.789
```
## 🔍 Surveillance
### Logs d'Application
```bash
# Logs Docker
cd setup/
./logs.sh
# Logs Apache (si déploiement manuel)
tail -f /var/log/apache2/error.log
tail -f /var/log/apache2/access.log
```
### Métriques de Performance
- **Taux de Données** : Affiché dans barre d'état tableau de bord
- **Utilisation Mémoire** : Surveiller via outils dev navigateur
- **Trafic Réseau** : Vérifier onglet réseau navigateur
- **Ressources Serveur** : Utiliser `htop` ou stats Docker
## 🤝 Contribution
### Style de Code
- Utiliser fonctionnalités JavaScript ES6+
- Suivre indentation cohérente (4 espaces)
- Ajouter commentaires JSDoc pour fonctions
- Utiliser HTML et CSS sémantiques
### Tests
- Tester avec fichiers de données magnétomètre exemple
- Vérifier persistance configuration
- Vérifier design responsive sur appareils mobiles
- Valider fonctionnalité exportation CSV
### Pull Requests
1. Fork le dépôt
2. Créer branche fonctionnalité
3. Ajouter tests pour nouvelle fonctionnalité
4. Mettre à jour documentation
5. Soumettre pull request avec description claire
## 🐳 Commandes Docker
Toutes les commandes Docker doivent être exécutées depuis le répertoire `setup/` :
```bash
# Naviguer vers répertoire setup
cd setup/
# Démarrer application
docker-compose up -d
# Voir logs
docker-compose logs -f
# Arrêter application
docker-compose down
# Redémarrer services
docker-compose restart
# Reconstruire conteneurs
docker-compose build --no-cache
# Accéder shell conteneur
docker-compose exec sensor-viz bash
```
### Scripts de Gestion
Le répertoire setup inclut des scripts de gestion pratiques :
```bash
cd setup/
# Configuration initiale
./setup.sh
# Vérifier état
./status.sh
# Voir logs
./logs.sh
# Redémarrer application
./restart.sh
# Arrêter application
./stop.sh
# Reconstruire application
./rebuild.sh
```
## 🔒 Considérations de Sécurité
### Protection des Données
- Fichiers de configuration protégés de l'accès web direct via règles Apache
- En-têtes CORS correctement configurés pour points de terminaison API
- Système de sauvegarde automatique empêche perte de configuration
- Validation d'entrée sur tous changements de configuration
- Aucune donnée sensible stockée dans localStorage navigateur
### Sécurité Téléchargement de Fichiers
- Validation fichiers CSV avant traitement
- Limites de taille de fichier appliquées
- Pas de stockage côté serveur pour données téléchargées
- Analyse côté client empêche vulnérabilités serveur
## 📈 Caractéristiques de Performance
### Performance Temps Réel
- Optimisé pour mises à jour de données soutenues à 10Hz
- Streaming Chart.js efficace avec mise en mémoire tampon circulaire
- Décimation automatique de données pour sessions longue durée
- Structures de données efficaces en mémoire
### Compatibilité Navigateur
- Navigateurs modernes avec support ES6+ requis
- Rendu Canvas accéléré matériellement
- Support WebWorker pour traitement arrière-plan
- Design responsive pour appareils mobiles
### Utilisation Ressources
- Utilisation mémoire typique : 50-100MB
- Utilisation CPU : <10% sur matériel moderne
- Bande passante réseau : Minimale (mises à jour config seulement)
- Stockage : Rétention données configurable
## 🏗️ Spécifications Techniques
### Technologies Frontend
- **HTML5** : Balisage sémantique avec fonctionnalités accessibilité
- **CSS3** : Mise en page Grid/Flexbox avec variables CSS
- **JavaScript ES6+** : Motifs async/await modernes
- **Chart.js 4.x** : Graphiques accélérés matériellement
- **Plugin Streaming** : Visualisation données temps réel
### Technologies Backend
- **PHP 8.2** : PHP moderne avec typage fort
- **Apache 2.4** : Serveur web prêt production
- **Alpine Linux** : Empreinte conteneur minimale
- **Docker Compose** : Orchestration multi-conteneurs
### Formats de Données
- **YAML** : Configuration lisible humainement
- **CSV** : Exportation données standard industrie
- **JSON** : Communication API
- **IEEE 754** : Représentation angles virgule flottante
## 📋 Exigences
### Exigences Système Minimales
- **CPU** : Processeur dual-core 1 GHz
- **RAM** : 2GB mémoire disponible
- **Stockage** : 1GB espace disque libre
- **Réseau** : 100 Mbps pour mises à jour temps réel
### Exigences Navigateur
- **Chrome/Chromium** : 80+
- **Firefox** : 75+
- **Safari** : 13+
- **Edge** : 80+
### Exigences Docker
- **Docker** : 20.10+
- **Docker Compose** : 2.0+
- **Ports Disponibles** : 8080
- **Volumes** : Accès système fichiers hôte
## 🎯 Cas d'Usage
### Applications de Recherche
- **Études Magnétomètre** : Visualisation champ magnétique temps réel
- **Analyse Accéléromètre** : Surveillance mouvement et vibration
- **Surveillance Environnementale** : Suivi température et orientation
- **Validation Données** : Comparaison en direct de capteurs multiples
### Applications Industrielles
- **Contrôle Qualité** : Validation capteurs temps réel
- **Surveillance Équipement** : Analyse vibration continue
- **Calibration** : Vérification décalage et échelle capteurs
- **Journalisation Données** : Enregistrement mesures automatisé
### Usage Éducatif
- **Démonstrations Physique** : Visualisation données capteurs en direct
- **Formation Ingénierie** : Analyse données monde réel
- **Exemples Programmation** : Motifs développement web modernes
- **Science des Données** : Workflows importation et analyse CSV
## 📄 Licence
Ce projet est open source et disponible pour usage éducatif et commercial.
## 🙏 Remerciements
### Bibliothèques Tierces
- **Chart.js** : Bibliothèque graphiques puissante avec support streaming
- **js-yaml** : Analyseur YAML JavaScript pour fichiers configuration
- **Alpine Linux** : Image de base Docker légère
- **Serveur HTTP Apache** : Plateforme serveur web fiable
### Support Format de Données
- **CSV Magnétomètre** : Support pour fichiers données magnétomètre externes
- **IEEE 754** : Gestion appropriée données angles virgule flottante
- **CSV Point-virgule** : Compatibilité format CSV européen
## 🤝 Contribution
Les contributions sont bienvenues ! Veuillez vous concentrer sur :
- Améliorations performance pour données haute fréquence
- Nouveaux modes simulation et motifs de données
- Support mobile amélioré et design responsive
- Formats exportation données additionnels et outils analyse
- Exemples intégration matériel capteurs réels
- Support étendu format données magnétomètre
### Mises à Jour Majeures Récentes
#### V2.0 - Architecture Simulateur Continu
- **Simulateur Toujours Actif** : Processus arrière-plan élimine délais démarrage
- **Contrôle Acquisition Instantané** : Démarrer/arrêter acquisition données sans surcharge processus
- **Streaming Graphiques Intelligent** : Pause/reprise automatique basée sur état acquisition
- **Contrôle Basé Commandes** : Contrôle professionnel via communication fichier état
#### V1.5 - Interface Utilisateur/UX Professionnelle
- **Interface Modale** : Interface propre et organisée avec dialogues modaux
- **État Temps Réel** : Surveillance simulateur en direct et affichage nombre échantillons
- **Graphiques Conscients Acquisition** : Graphiques se mettent intelligemment en pause quand pas d'acquisition
- **Gestion Fichiers Améliorée** : Navigateur fichiers données complet et contrôles
#### V1.0 - Fonctionnalités Core
- **Lecteur Fichiers Magnétomètre** : Système importation CSV complet pour données externes
- **Configuration Capteurs Dynamique** : Jusqu'à 12 capteurs avec configuration en direct
- **Déploiement Docker** : Conteneurs basés Alpine avec persistance volumes
- **Configuration Web** : Éditeur YAML avec système sauvegarde automatique
---
## 📞 Support & Documentation
### Liens Rapides
- **Application Principale** : http://localhost:8080
- **Éditeur Configuration** : http://localhost:8080/config.html
- **Documentation API** : API REST intégrée pour automatisation
- **Logs Conteneur** : `cd setup && ./logs.sh`
### Problèmes Courants
- **Port 8080 utilisé** : Changer port dans `setup/docker-compose.yml`
- **Problèmes permissions** : S'assurer volumes Docker ont permissions correctes
- **Simulateur ne répond pas** : Vérifier `config/status.yaml` pour communication
- **Fichiers CSV ne se chargent pas** : Vérifier format fichier correspond structure attendue
### Conseils Performance
- **Données haute fréquence** : Utiliser déploiement Docker pour meilleure performance
- **Gros fichiers** : Considérer chunking fichiers pour très gros ensembles données
- **Capteurs multiples** : Limiter capteurs actifs pour performance graphiques optimale
- **Acquisition arrière-plan** : Simulateur continue même quand navigateur fermé
---
**Construit avec** : Chart.js, JavaScript Vanilla, CSS3, HTML5, PHP 8.2, Apache, Alpine Linux, Docker
**🛰️ Visualisation de Données de Capteurs en Temps Réel - Système d'Acquisition Continue Professionnel !**

View File

@@ -0,0 +1,5 @@
title: Mkii
author: Serge NOEL
client: Naval Group
date: 2025-08-29
revision: 1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 23 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 23 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 23 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 17 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 17 KiB

BIN
Wiki-print/data/output.docx Normal file

Binary file not shown.

BIN
Wiki-print/data/output.odt Normal file

Binary file not shown.