Améliorer la gestion des configurations et des captures dans les scripts de timelapse
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user