70 lines
2.5 KiB
Python
70 lines
2.5 KiB
Python
#!/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() |