Fiabilite Canon : veille/reveil relais, sequence boot, stats diagnostic, fin evenement, compteur consommables
- Preview thread : poll uniquement quand ecran capture actif, keepalive 30s sinon - Sequence boot Canon : power cycle relais si absent USB au demarrage - Veille auto 30min : Canon coupe par relais apres inactivite, reveil au preview_start - Stats diagnostic /api/canon/stats : keepalive, preview, captures, connexions - Escalade reconnexion adoucie : pas d'USB reset les 2 premieres tentatives - Hard reset relais 10s (resistance decharge 990ohm sur dummy battery 8V) - Gestion fin evenement : date_fin + bouton terminer + guard 403 impression - Compteur base sur min(papier, ruban) avec cap evenement optionnel - Pre-eclairage countdown : projecteurs ON 3s avant capture pour mesure expo - Canon _configurer_init() : ISO 800, drivemode Single, viewfinder, EXIF preserve - Admin : detail evenement, compteur consommables, galerie impression Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WyN9xFp84P9VaWT3Qe2DXu
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
|
||||
<meta name="google" content="notranslate">
|
||||
<meta http-equiv="Content-Language" content="fr">
|
||||
<link rel="stylesheet" href="/css/style.css?v=14">
|
||||
<link rel="stylesheet" href="/css/style.css?v=15">
|
||||
<link rel="stylesheet" href="/css/themes.css?v=2">
|
||||
</head>
|
||||
<body>
|
||||
@@ -20,12 +20,19 @@
|
||||
<button onclick="document.getElementById('printer-erreur').classList.add('cache')">✕</button>
|
||||
</div>
|
||||
|
||||
<!-- Overlay erreur camera -->
|
||||
<div id="camera-erreur" class="camera-erreur cache">
|
||||
<div class="camera-erreur-icon">📷</div>
|
||||
<p>Probleme de communication avec l'appareil photo</p>
|
||||
<span class="camera-erreur-sub">Reconnexion en cours...</span>
|
||||
<button onclick="document.getElementById('camera-erreur').classList.add('cache'); afficherEcran('accueil')" style="margin-top:2rem;padding:1rem 2rem;font-size:1.5rem;border-radius:1rem;border:none;background:#e91e63;color:#fff;cursor:pointer;">Retour accueil</button>
|
||||
<!-- Overlay erreur equipement (camera/imprimante) -->
|
||||
<div id="erreur-equipement" class="erreur-overlay cache">
|
||||
<div class="erreur-icon" id="erreur-equip-icon">📷</div>
|
||||
<div class="erreur-titre" id="erreur-equip-titre">Preparation en cours</div>
|
||||
<div class="erreur-msg" id="erreur-equip-msg">L'appareil photo se prepare, un instant...</div>
|
||||
<div class="erreur-spinner" id="erreur-equip-spinner"></div>
|
||||
<div class="erreur-steps cache" id="erreur-equip-steps"></div>
|
||||
<div id="erreur-equip-actions" style="display:flex;gap:1rem;flex-wrap:wrap;justify-content:center">
|
||||
<button class="erreur-btn erreur-btn-primaire cache" id="erreur-equip-btn-retry" onclick="erreurEquipRetry()">Reessayer</button>
|
||||
<button class="erreur-btn erreur-btn-secondaire cache" id="erreur-equip-btn-video" onclick="erreurEquipVideo()">Voir l'aide video</button>
|
||||
<button class="erreur-btn erreur-btn-secondaire cache" id="erreur-equip-btn-restart" onclick="erreurEquipRestart()">Redemarrer la borne</button>
|
||||
<button class="erreur-btn erreur-btn-secondaire" id="erreur-equip-btn-accueil" onclick="fermerErreurEquipement()">Retour accueil</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Ecran d'accueil -->
|
||||
@@ -385,6 +392,7 @@
|
||||
<button class="onglet" data-onglet="videos-admin" onclick="chargerVideosAdmin()">Videos</button>
|
||||
<button class="onglet" data-onglet="eclairage" onclick="demarrerEclairageLive();demarrerEclairageLiveExt()">Eclairage</button>
|
||||
<button class="onglet" data-onglet="wifi" onclick="chargerWifi()">WiFi</button>
|
||||
<button class="onglet" data-onglet="diagnostic" onclick="chargerDiagnostic()">Diagnostic</button>
|
||||
<button class="onglet" data-onglet="infos" onclick="chargerInfosSysteme()">Infos</button>
|
||||
</div>
|
||||
<div class="admin-onglets cache" id="onglets-evenement">
|
||||
@@ -466,9 +474,10 @@
|
||||
<span id="admin-compteur-limite-display" class="compteur-nombre petit">400</span>
|
||||
</div>
|
||||
<span class="compteur-label">photos restantes</span>
|
||||
<span id="admin-compteur-detail" class="compteur-label" style="font-size:0.7em;opacity:0.7;margin-top:2px"></span>
|
||||
</div>
|
||||
<div class="champ">
|
||||
<label>Limite totale</label>
|
||||
<label>Limite evenement (0 = pas de limite)</label>
|
||||
<input type="number" id="admin-compteur-limite" min="1" max="9999" value="400">
|
||||
</div>
|
||||
<div class="champ-row">
|
||||
@@ -693,7 +702,15 @@
|
||||
<label>Couleur secondaire</label>
|
||||
<input type="color" id="admin-couleur-secondaire" value="#ffffff">
|
||||
</div>
|
||||
<button class="btn-action" onclick="sauvegarderEvenement()">Sauvegarder</button>
|
||||
<div class="champ">
|
||||
<label>Date de fin (impression bloquee apres)</label>
|
||||
<input type="date" id="admin-date-fin">
|
||||
</div>
|
||||
<div class="champ-row">
|
||||
<button class="btn-action" onclick="sauvegarderEvenement()">Sauvegarder</button>
|
||||
<button class="btn-danger" id="btn-terminer-event" onclick="terminerEvenement()">Terminer l'evenement</button>
|
||||
</div>
|
||||
<div id="badge-event-termine" class="cache" style="background:#f44336;color:#fff;padding:8px 16px;border-radius:8px;text-align:center;font-weight:bold;margin-top:8px">Evenement termine — impression desactivee</div>
|
||||
|
||||
<div class="champ" id="lien-galerie-event" style="display:none">
|
||||
<label>Galerie en ligne</label>
|
||||
@@ -896,6 +913,7 @@
|
||||
<button class="btn-action btn-petit" onclick="relaisAction('projecteurs','on')">Projecteurs ON</button>
|
||||
<button class="btn-secondaire btn-petit" onclick="relaisAction('projecteurs','off')">Projecteurs OFF</button>
|
||||
<button class="btn-danger btn-petit" onclick="relaisAction('canon/power-cycle','on')">Power-cycle Canon</button>
|
||||
<button class="btn-danger btn-petit" style="background:#b71c1c" onclick="relaisAction('canon/hard-reset','on')">Hard Reset Canon</button>
|
||||
</div>
|
||||
<h4>Eclairage automatique</h4>
|
||||
<div class="champ">
|
||||
@@ -916,9 +934,57 @@
|
||||
<input type="number" id="relais-seuil-off" min="0" max="100" value="65" step="5">
|
||||
<span style="font-size:0.75rem;color:#888">Projecteurs s'eteignent</span>
|
||||
</div>
|
||||
<h4 style="margin-top:1.5rem">Veille</h4>
|
||||
<div class="champ">
|
||||
<label>Eteindre les projecteurs apres (minutes d'inactivite)</label>
|
||||
<input type="number" id="relais-veille-delai" min="0" max="60" value="0" step="1">
|
||||
<span style="font-size:0.75rem;color:#888">0 = jamais. Les projecteurs se rallument quand un utilisateur touche l'ecran</span>
|
||||
</div>
|
||||
<button class="btn-action" onclick="sauvegarderRelaisConfig()">Sauvegarder</button>
|
||||
</div>
|
||||
|
||||
<!-- Panneau Diagnostic -->
|
||||
<div class="admin-panneau" id="panneau-diagnostic">
|
||||
<h3>Sante du systeme</h3>
|
||||
<div class="diag-cards" id="diag-sante">
|
||||
<div class="diag-card" id="diag-camera">
|
||||
<div class="diag-icon">📷</div>
|
||||
<div class="diag-label">Camera</div>
|
||||
<div class="diag-status" id="diag-camera-status">--</div>
|
||||
</div>
|
||||
<div class="diag-card" id="diag-imprimante">
|
||||
<div class="diag-icon">🖨</div>
|
||||
<div class="diag-label">Imprimante</div>
|
||||
<div class="diag-status" id="diag-imp-status">--</div>
|
||||
</div>
|
||||
<div class="diag-card" id="diag-relais">
|
||||
<div class="diag-icon">🔌</div>
|
||||
<div class="diag-label">Relais</div>
|
||||
<div class="diag-status" id="diag-relais-status">--</div>
|
||||
</div>
|
||||
<div class="diag-card" id="diag-systeme">
|
||||
<div class="diag-icon">💻</div>
|
||||
<div class="diag-label">Systeme</div>
|
||||
<div class="diag-status" id="diag-sys-status">--</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3 style="margin-top:1.5rem">Actions</h3>
|
||||
<div class="diag-actions">
|
||||
<button class="btn-action" onclick="diagReconnecterCamera()">📷 Reconnecter camera</button>
|
||||
<button class="btn-action" onclick="diagReactiverImprimante()">🖨 Reactiver imprimante</button>
|
||||
<button class="btn-secondaire" onclick="diagRedemarrerBackend()">↻ Redemarrer backend</button>
|
||||
<button class="btn-secondaire" onclick="diagRefreshChromium()">🌐 Recharger navigateur</button>
|
||||
<button class="btn-danger" onclick="if(confirm('Redemarrer la borne ?'))diagRedemarrerSysteme()">⚠ Redemarrer la borne</button>
|
||||
</div>
|
||||
|
||||
<h3 style="margin-top:1.5rem">Logs backend <button class="btn-secondaire btn-petit" onclick="chargerLogs()" style="margin-left:0.5rem">↻ Actualiser</button></h3>
|
||||
<div id="diag-logs" class="diag-logs">Appuyer sur Actualiser...</div>
|
||||
|
||||
<h3 style="margin-top:1.5rem">Peripheriques USB <button class="btn-secondaire btn-petit" onclick="chargerUsb()" style="margin-left:0.5rem">↻</button></h3>
|
||||
<div id="diag-usb" class="diag-usb">--</div>
|
||||
</div>
|
||||
|
||||
<div class="admin-panneau" id="panneau-infos">
|
||||
<div class="infos-systeme-header">
|
||||
<h3>Informations systeme</h3>
|
||||
@@ -1079,11 +1145,11 @@
|
||||
</style>
|
||||
|
||||
<script src="/js/websocket.js?v=16"></script>
|
||||
<script src="/js/app.js?v=19"></script>
|
||||
<script src="/js/camera.js?v=18"></script>
|
||||
<script src="/js/app.js?v=24"></script>
|
||||
<script src="/js/camera.js?v=20"></script>
|
||||
<script src="/js/effects.js?v=4"></script>
|
||||
<script src="/js/gallery.js?v=4"></script>
|
||||
<script src="/js/share.js?v=8"></script>
|
||||
<script src="/js/admin.js?v=13"></script>
|
||||
<script src="/js/gallery.js?v=5"></script>
|
||||
<script src="/js/share.js?v=9"></script>
|
||||
<script src="/js/admin.js?v=17"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user