Ajouter la vérification des tâches en attente avant l'extinction et améliorer le script de connexion
This commit is contained in:
47
Automate.py
47
Automate.py
@@ -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"
|
|
||||||
"""
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user