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

@@ -28,6 +28,14 @@ def main():
if status is None:
logging.error("Impossible d'obtenir le statut de la caméra depuis l'API")
# Dans le cas où une configuration active existe déjà, continuer avec celle-ci
if config.get("config_active", False) and config.get("nb_images_restantes", 0) > 0:
logging.info("Utilisation de la configuration locale existante")
timelapse_manager.run_capture_sequence(online=False) # Mode hors ligne si API inaccessible
else:
logging.info("Pas de configuration active, abandon de la capture")
sys.exit(1)
# Mise à jour de la configuration
@@ -42,10 +50,28 @@ def main():
if status.get("stop_flag", False):
logging.info("Demande d'arrêt détectée, confirmation au serveur")
api_client.confirm_stop()
# Réinitialiser l'état actif
config.update_config({
"config_active": False,
"nb_images_restantes": 0
})
sys.exit(0)
# Si le mode est IDLE et qu'aucune configuration n'est active, ne rien faire
if status.get("idle", True) and not config.get("config_active", False):
logging.info("Mode IDLE, aucune action à effectuer")
sys.exit(0)
# Exécuter la séquence de capture
timelapse_manager.run_capture_sequence(online=True)
sequence_completed = timelapse_manager.run_capture_sequence(online=True)
# Si la séquence est terminée (toutes les images capturées), notifier l'API
if sequence_completed and config.get("nb_images_restantes", 0) <= 0:
logging.info("Toutes les images ont été capturées, notification au serveur")
# TODO: Implémenter une méthode pour notifier la fin de la séquence
# api_client.notify_sequence_complete()
except Exception as e:
logging.error(f"Erreur lors de la capture en mode connecté: {e}")