Commit Graph

129 Commits

Author SHA1 Message Date
8ae42e1bc6 Backend: galerie session /s/{code} + upload API
Ajoute deux routes FastAPI :
- GET /s/{code} → galerie HTML mobile avec auto-refresh 15s
- POST /api/sessions/{code}/upload → stockage photo dans session_{code}/

Corrige layout admin : titre sm au lieu de lg, compteur sans chevauchement.
Wizard step 2 : code affiché en lg (96px) au lieu de xxl (300px).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 14:33:35 +02:00
a1a0ce0503 Scripts test liveview : pygame, pyqt6, opencv, tkinter - mesure FPS et premiere image 2026-04-09 12:42:50 +02:00
19d1998704 Suppression preview pendant capture : plus de conflit gphoto2, capture propre 2026-04-09 11:25:17 +02:00
a3c7d6e4e4 Capture en parallele du compte a rebours : photo prise pendant le 3 2 1 2026-04-09 11:21:19 +02:00
c31cab8dc0 Script bench camera : mesure temps preview et capture gphoto2 2026-04-09 11:14:06 +02:00
0d24c8af26 Kiosk PyQt6 WebEngine : alternative navigateur, process unique, auto-reload 2026-04-09 07:46:39 +02:00
b4ec4dbf3f Fix race condition gphoto2 : lock non-bloquant preview cede la place a la capture 2026-04-09 07:28:33 +02:00
57ac16d366 Retrait viewfinder : priorite a la capture fonctionnelle 2026-04-09 02:05:32 +02:00
95f1a597e6 Fix critique : camera.capturer() dans run_in_executor pour ne pas bloquer asyncio 2026-04-09 02:03:58 +02:00
718d17a49c Auto-reload page si erreur camera (10s) ou WS deconnecte (5s) 2026-04-09 02:01:35 +02:00
db751ca48c Retrait verrou camera et threading : revert approche simple sans deadlock 2026-04-09 02:00:11 +02:00
03102c803e Fix blocage asyncio viewfinder + bouton retour sur erreur camera 2026-04-09 01:54:46 +02:00
4273caf1ee Fix race condition gphoto2 : verrou camera sur preview et capture 2026-04-09 01:49:48 +02:00
076e6d0030 Canon LiveView : activer viewfinder gphoto2 avant capture_preview 2026-04-09 01:44:46 +02:00
a59f0ef766 Fix freeze liveview : bloquer surveiller_dslr pendant preview (conflit gphoto2) 2026-04-09 01:38:59 +02:00
94e3d68dd7 Preview DSLR : resize 960px + base64 hors asyncio pour fluidifier liveview 2026-04-09 01:36:20 +02:00
8e7fb61e90 Logo SikaPics : width forcee a 32vw (double taille naturelle 310px) 2026-04-09 01:27:16 +02:00
f4662807d4 Logo SikaPics 200% de la taille precedente (90vh->180vh) 2026-04-09 01:15:46 +02:00
1926e8fcf7 Logo SikaPics 200% (45vh->90vh) + QR code 150% (180->270px)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 22:46:26 +02:00
b871fc4c3b Preview push 30fps : thread de fond + diffusion WS sans polling
Avant : frontend poll WS toutes les 100ms -> gphoto2 bloquant -> lag
Apres : thread dedie capture en continu a 30fps, pusher asyncio
        diffuse a 20fps a tous les clients, frontend dit juste
        preview_start / preview_stop

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 22:21:29 +02:00
9a6ede02f6 Supprimer tout fallback webcam/simulation quand le DSLR est absent
- Preview gphoto2 echoue -> None direct, pas de webcam ni simulation
- Connexion sans DSLR -> mode erreur, camera non connectee
- Suppression _preview_webcam_fallback et _init_preview_fallback
- WS preview : appel direct camera.preview(), plus de logique speciale

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 22:17:20 +02:00
deca890b34 Admin: onglet Infos systeme (reseau, RAM, disque, temp, camera)
- Endpoint /api/systeme/info : IPs par interface, hostname, uptime,
  disque, RAM, temperature CPU, version Python, statut camera
- Onglet Infos dans le backoffice avec affichage visuel (barres, couleurs)
- Bouton Actualiser pour rafraichir les donnees en temps reel

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 20:55:34 +02:00
cf41f66367 Gestion erreurs capture : messages clairs a chaque etape
- Verification etat camera AVANT le lancement (pas de DSLR = erreur immediate)
- Detection erreur camera PENDANT le compte a rebours (pas de capture aveugle)
- Capture : erreur reseau catchee, retry x3, message explicite si echec
- Limite de photos : message + detail au lieu de retour accueil silencieux
- Strip/collage : verification resultat, message si generation echoue
- traiterCapture : try/catch global, plus de retour accueil silencieux
- Overlay erreur : titre + detail lisible, 4s avant retour accueil

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 20:47:58 +02:00
f9fd4c4f22 Fix erreur DSLR: detection immediate + message clair a l'ecran
- Backend: detecte quand le preview DSLR echoue (fallback silencieux)
  et envoie camera_erreur au frontend (debounce 5s)
- Frontend: overlay d'erreur avec message si preview DSLR indisponible
- Frontend: si capture echoue, affiche le motif 3s avant retour accueil
  au lieu de retourner silencieusement

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 20:46:46 +02:00
ef6679dc97 Preview: overlay erreur si DSLR deconnecte pendant la capture
- Overlay semi-transparent sur le preview quand camera_erreur recue
- Timeout 3s : si aucune frame recue, affiche l'erreur automatiquement
- Disparait des que les frames reprennent (camera_ok ou nouvelle frame)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 20:42:05 +02:00
c27b7152d6 Theme Plymouth: chat photographe anime au boot
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 10:27:52 +02:00
5de771b9f9 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>
2026-04-08 10:07:09 +02:00
d719f4c100 Fix surveillance DSLR: detecte perte de connexion et reconnecte
- Teste get_summary() pour verifier que le DSLR repond
- Reconnecte apres 2 echecs consecutifs
- Fallback webcam si DSLR plus disponible

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 10:05:20 +02:00
cb102c9e4b Preview webcam pendant capture DSLR (pas de freeze entre les poses)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 08:37:38 +02:00
7df190b5bc Preview: fallback webcam quand le DSLR ne supporte pas le live view
Le Canon 6D ne supporte pas capture_preview() via gphoto2.
Utilise la webcam embarquee pour le preview tout en gardant le DSLR pour la capture.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 08:33:59 +02:00
eababa9ec8 Photos DSLR: 4000px max, JPEG 92% (~1.5-2 Mo)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 08:30:44 +02:00
61b9749ab7 Reduire resolution max photos DSLR a 2000px (plus rapide)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 08:30:15 +02:00
820dd40545 Logo 45vh + boutons photo/pellicule beaucoup plus gros (8rem icones, padding 3/5rem)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 08:28:37 +02:00
8975b0392f Fix multi-shot: countdown entre chaque photo + vider apercu precedent
- Preview relancee avant chaque countdown (l'utilisateur se voit)
- Countdown 3-2-1 entre chaque photo de la serie
- Apercu precedent vide au debut d'une nouvelle session
- Surveillance DSLR pausee pendant les captures

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 20:06:52 +02:00
c2b6b01f4f Auto-detection DSLR: bascule automatique quand branche/rebranche
- Verification toutes les 5s si un DSLR est disponible
- Bascule auto de webcam/simulation vers DSLR
- Reconnexion auto si le DSLR est deconnecte

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 20:05:24 +02:00
0f83c7a6b7 Retry capture frontend (3 tentatives) + ne pas abandonner sur erreur I/O
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 20:03:32 +02:00
3c308085af Redimensionner photos DSLR (max 3000px, JPEG 92%) pour affichage rapide
Les RAW du Canon 6D font 24Mo, trop lent pour le navigateur.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 19:29:31 +02:00
79b0084178 Fix capture DSLR: pause avant capture + retry si I/O in progress
- Frontend: arrete le preview 300ms avant la capture
- Backend: 3 tentatives avec 500ms entre chaque si DSLR occupe

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 19:27:54 +02:00
053e5dc7b4 Countdown transparent par dessus la preview live + texte blanc avec ombre
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 19:23:08 +02:00
9208c00d3e Fix API gphoto2 pour python-gphoto2 v2.5+ (suppression contexte)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 19:18:16 +02:00
4451c81ddd Fix liste appareils admin (objets source/nom au lieu de strings)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 19:14:59 +02:00
60cc5dc1d0 Logo 80vw/30vh
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 19:07:53 +02:00
6ec2e79d20 Logo accueil agrandi (500x200px max)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 19:07:27 +02:00
2c5431f9b2 Fix logo SikaPics (vrai PNG 310x201)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 19:03:55 +02:00
4b216d2692 Desactiver le cache navigateur pour les assets
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 18:58:56 +02:00
ec220079e0 Logo SikaPics via balise img (fix ::before invisible)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 18:53:10 +02:00
8b7a00b27e Logo SikaPics local + QR 180px + clavier virtuel email + QR conditionnel booth
- Logo SikaPics servi localement (/assets/logos/sikapics.png)
- QR code accueil agrandi a 180px
- Clavier AZERTY virtuel integre pour saisie email (tactile)
- Raccourcis @gmail, @hotmail, .com, .fr
- QR partage: affiche seulement si booth actif, lien vers galerie live
- Bouton QR visible si booth OU qr_code active

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 18:50:01 +02:00
d2ae366e2f Boutons Recharger + Quitter sur l'ecran de choix admin
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 18:42:16 +02:00
d49097a60d Fix: setupModes ne cible que les boutons de l'ecran mode (pas admin)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 18:38:07 +02:00
f8d83d8481 Fix clics qui traversent les ecrans (z-index + background opaque)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 18:29:56 +02:00