Améliorer la gestion des configurations et des captures dans les scripts de timelapse

This commit is contained in:
2025-04-27 17:06:55 +02:00
parent 610d220c3f
commit 2013c2cf41
6 changed files with 230 additions and 45 deletions

View File

@@ -23,22 +23,41 @@ def main():
logging.info("Démarrage de la capture d'images en mode hors ligne")
try:
# Chargement de la configuration
# Vérifier si une configuration active existe
is_active_config = config.get("config_active", False)
is_stopped = config.get("stop_current_config", False)
remaining_images = config.get("nb_images_restantes", 0)
interval = config.get("timelapse", 3) # Intervalle par défaut: 3 secondes
logging.info(f"Configuration: {remaining_images} images à capturer, intervalle de {interval}s")
if remaining_images <= 0:
logging.info("Aucune image à capturer en mode hors ligne")
# Si arrêté ou pas de configuration active, ne rien faire
if is_stopped:
logging.info("Configuration arrêtée, aucune action à effectuer")
return
# Exécuter la séquence de capture en mode hors ligne
timelapse_manager.run_capture_sequence(online=False)
if not is_active_config:
logging.info("Aucune configuration active en mode hors ligne")
return
if remaining_images <= 0:
logging.info("Aucune image restante à capturer")
# Désactiver la configuration puisqu'elle est terminée
config.update_config({"config_active": False})
return
# Envoi de l'intervalle au microcontrôleur si nécessaire
if interval > 0:
logging.info(f"Configuration: {remaining_images} images à capturer")
# Exécuter la séquence de capture en mode hors ligne
sequence_completed = timelapse_manager.run_capture_sequence(online=False)
# Obtenir l'intervalle de timelapse pour le microcontrôleur si nécessaire
interval = config.get("timelapse", 3)
if interval > 0 and is_active_config and not sequence_completed:
logging.info(f"Envoi de l'intervalle au microcontrôleur: {interval}s")
micro_controller.send_interval(interval)
else:
# Si la séquence est terminée, réinitialiser l'intervalle
if sequence_completed:
logging.info("Séquence terminée, réinitialisation de l'intervalle")
micro_controller.send_interval(0) # 0 pour désactiver
except Exception as e:
logging.error(f"Erreur lors de la capture en mode hors ligne: {e}")