#!/usr/bin/env python3 # coding: utf-8 """ Script principal pour la capture d'images en mode hors ligne. Remplace l'ancien Time_Lapse_NoConnection.py """ import os import sys import time import logging from timelapse.config import config from timelapse.capture import timelapse_manager from timelapse.sensors import micro_controller def main(): """ Fonction principale pour la capture d'images en mode hors ligne. """ logging.info("-------------------------------------------------------------------") logging.info("Démarrage de la capture d'images en mode hors ligne") try: # 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) # Si arrêté ou pas de configuration active, ne rien faire if is_stopped: logging.info("Configuration arrêtée, aucune action à effectuer") return 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 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}") sys.exit(1) logging.info("Capture en mode hors ligne terminée") if __name__ == "__main__": main()