diff --git a/Automate.py b/Automate.py index f44a11f..218c9c5 100644 --- a/Automate.py +++ b/Automate.py @@ -98,6 +98,24 @@ class Server: with open(self.filename, "w") as file: json.dump(dic, file) + def has_pending_tasks(self): + """Vérifie s'il y a des captures en attente de synchronisation.""" + project_path = "//home//timelapse//Documents//Time_Lapse//PROJECT//" + offline_dir = os.path.join(project_path, "_offline") + + # Si le répertoire offline existe et n'est pas vide, il y a des tâches en attente + if os.path.exists(offline_dir) and os.listdir(offline_dir): + return True + + # Vérifier également les fichiers dans PROJECT qui pourraient être en attente d'envoi + if os.path.exists(project_path): + for item in os.listdir(project_path): + # Si c'est un dossier mais pas le dossier _offline + if os.path.isdir(os.path.join(project_path, item)) and item != "_offline": + return True + + return False + if __name__ == "__main__": MC = MicroControler() server = Server() @@ -132,17 +150,26 @@ if __name__ == "__main__": else: server.create_this_Json(datas) print("- New Config") - print("- Shut Down") - print("TimeLapse sent is : ", datas["timelapse"]) + + # Vérifier s'il y a des tâches en attente avant d'éteindre + print("- Vérification si des transferts d'images sont en cours...") + # Envoyer l'intervalle au microcontrôleur + print("TimeLapse sent is : ", datas["timelapse"]) MC.set_data_2_octets(datas["timelapse"]) + + # Attendre un moment pour s'assurer que les transferts se terminent + max_wait = 60 # Maximum 60 secondes d'attente + wait_interval = 5 # Vérifier toutes les 5 secondes + + for i in range(0, max_wait, wait_interval): + if server.has_pending_tasks(): + print(f"- Des images sont encore en cours de transfert, attente ({i}s)...") + time.sleep(wait_interval) + else: + print("- Aucun transfert en cours, extinction du système") + break + + print("- Extinction du système") time.sleep(1) os.system("sudo shutdown now") - - """ - #MC.set_data_2_octets(1) - - #MC .set_data_2_octets(datas["timelapse"]) - #le mot de passe c'est motdepasse - #nmcli dev wifi "le mot de passe c'est motdepasse" password "motdepasse" - """ diff --git a/script.sh b/script.sh index 6d6b000..e848324 100755 --- a/script.sh +++ b/script.sh @@ -7,9 +7,16 @@ check_internet() { if check_internet; then echo "Connecté à internet" python Time_Lapse_Connection.py + # Attendre un peu pour s'assurer que le processus de capture est terminé + sleep 5 python Send_data_stocked.py + # Attendre encore un peu pour s'assurer que l'envoi des données stockées est terminé + sleep 5 else echo "pas connecté à internet" python Time_Lapse_NoConnection.py + sleep 5 fi + +# Exécuter l'automate à la fin, après les délais python Automate.py