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

@@ -9,8 +9,10 @@ Remplace l'ancien Send_data_stocked.py
import os
import sys
import logging
import time
from timelapse.config import config
from timelapse.capture import timelapse_manager
from timelapse.api_client import api_client
def main():
@@ -21,14 +23,46 @@ def main():
logging.info("Démarrage de la synchronisation des données hors ligne")
try:
# Vérifier la connexion au serveur
camera_status = api_client.get_camera_status()
if camera_status is None:
logging.error("Impossible de se connecter au serveur. Synchronisation reportée.")
sys.exit(1)
# Vérifier si le système est en maintenance
if camera_status.get("maintenance", False):
logging.info("Caméra en mode maintenance, aucune synchronisation effectuée")
sys.exit(0)
# Synchroniser les captures hors ligne
start_time = time.time()
sync_count = timelapse_manager.sync_offline_captures()
duration = time.time() - start_time
if sync_count > 0:
logging.info(f"Synchronisation réussie de {sync_count} captures")
logging.info(f"Synchronisation réussie de {sync_count} captures en {duration:.2f} secondes")
# Vérifier s'il reste des images à synchroniser
remaining_offline = timelapse_manager.count_offline_captures()
if remaining_offline > 0:
logging.info(f"Il reste encore {remaining_offline} captures à synchroniser")
else:
logging.info("Toutes les captures hors ligne ont été synchronisées")
else:
logging.info("Aucune capture à synchroniser")
# Vérifier si un arrêt est demandé
if camera_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,
"stop_current_config": True
})
except Exception as e:
logging.error(f"Erreur lors de la synchronisation des données: {e}")
sys.exit(1)