Erreur camera: overlay plein ecran + pas de fallback webcam
Page splash au boot pour eviter l'erreur Firefox Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -59,10 +59,14 @@ async def surveiller_dslr():
|
||||
log.warning("DSLR ne repond plus, reconnexion...")
|
||||
_dslr_erreurs = 0
|
||||
camera.deconnecter()
|
||||
camera.connectee = False
|
||||
camera.mode = "erreur"
|
||||
await diffuser_ws({"type": "camera_erreur", "message": "Probleme de communication avec l'appareil photo"})
|
||||
# Tenter de reconnecter en boucle
|
||||
if len(dslrs) > 0:
|
||||
camera.connecter(source="gphoto2")
|
||||
else:
|
||||
camera.connecter() # fallback webcam
|
||||
if camera.connectee:
|
||||
await diffuser_ws({"type": "camera_ok"})
|
||||
elif len(dslrs) > 0:
|
||||
log.info(f"DSLR detecte : {dslrs[0][0]}, bascule automatique")
|
||||
camera.connecter(source="gphoto2")
|
||||
|
||||
@@ -1215,6 +1215,39 @@ h3 {
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
/* === Erreur camera === */
|
||||
.camera-erreur {
|
||||
position: fixed;
|
||||
top: 0; left: 0;
|
||||
width: 100%; height: 100%;
|
||||
background: rgba(0, 0, 0, 0.9);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
z-index: 999;
|
||||
gap: 1.5rem;
|
||||
}
|
||||
|
||||
.camera-erreur-icon {
|
||||
font-size: 6rem;
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.camera-erreur p {
|
||||
font-size: 1.8rem;
|
||||
font-weight: 600;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
padding: 0 2rem;
|
||||
}
|
||||
|
||||
.camera-erreur-sub {
|
||||
font-size: 1.1rem;
|
||||
color: #888;
|
||||
animation: pulse 1.5s infinite;
|
||||
}
|
||||
|
||||
/* === Clavier virtuel email === */
|
||||
.clavier-virtuel {
|
||||
display: flex;
|
||||
|
||||
@@ -11,6 +11,13 @@
|
||||
<body>
|
||||
<div id="app">
|
||||
|
||||
<!-- 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>
|
||||
</div>
|
||||
|
||||
<!-- Ecran d'accueil -->
|
||||
<section id="ecran-accueil" class="ecran actif">
|
||||
<!-- Fond video/gif en boucle -->
|
||||
|
||||
@@ -269,6 +269,15 @@ wsOnMessage('config_maj', (msg) => {
|
||||
appliquerConfig();
|
||||
});
|
||||
|
||||
// Erreur camera
|
||||
wsOnMessage('camera_erreur', (msg) => {
|
||||
document.getElementById('camera-erreur').classList.remove('cache');
|
||||
});
|
||||
|
||||
wsOnMessage('camera_ok', () => {
|
||||
document.getElementById('camera-erreur').classList.add('cache');
|
||||
});
|
||||
|
||||
// === WIZARD ===
|
||||
|
||||
let wizardStep = 1;
|
||||
|
||||
Reference in New Issue
Block a user