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:
|
||||
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"
|
||||
"""
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user