Ajouter la vérification des tâches en attente avant l'extinction et améliorer le script de connexion

This commit is contained in:
2025-04-27 19:22:36 +02:00
parent 7321243f8b
commit f704f96a7f
2 changed files with 44 additions and 10 deletions

View File

@@ -98,6 +98,24 @@ class Server:
with open(self.filename, "w") as file: with open(self.filename, "w") as file:
json.dump(dic, 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__": if __name__ == "__main__":
MC = MicroControler() MC = MicroControler()
server = Server() server = Server()
@@ -132,17 +150,26 @@ if __name__ == "__main__":
else: else:
server.create_this_Json(datas) server.create_this_Json(datas)
print("- New Config") 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"]) 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) time.sleep(1)
os.system("sudo shutdown now") 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"
"""

View File

@@ -7,9 +7,16 @@ check_internet() {
if check_internet; then if check_internet; then
echo "Connecté à internet" echo "Connecté à internet"
python Time_Lapse_Connection.py 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 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 else
echo "pas connecté à internet" echo "pas connecté à internet"
python Time_Lapse_NoConnection.py python Time_Lapse_NoConnection.py
sleep 5
fi fi
# Exécuter l'automate à la fin, après les délais
python Automate.py python Automate.py