correction bug + ajout d'une action sur demande de fermeture de l'appli

This commit is contained in:
Vincent BENOIT
2023-01-03 17:01:08 +01:00
parent e8706d0183
commit c80a21848b

View File

@@ -568,6 +568,7 @@ def listener(sock, logger):
global FLAG_CONF_UPDATE
global FLAG_HORAIRE_UPDATE
global FLAG_TH_CLOSE
global FLAG_SHUTDOWN
flag = True
logger.debug("Démarrage du serveur de communication avec le backend du configurateur")
while not FLAG_TH_CLOSE:
@@ -600,6 +601,9 @@ def listener(sock, logger):
elif data.decode('utf-8').startswith('ALIVE?'):
clientsocket.sendall(b"ALIVE\n")
data = b''
elif data.decode('utf-8').startswith('SHUTDOWN'):
FLAG_SHUTDOWN = True
data = b''
elif len(data) == 0:
# deconnexion du client
logger.debug("deconnexion du client ...")
@@ -670,7 +674,7 @@ def setup_module():
while True:
try:
GPIO.output(7, GPIO.LOW)
time.sleep(2)
time.sleep(3)
GPIO.output(7, GPIO.HIGH)
except ValueError as e:
return False
@@ -798,6 +802,7 @@ GSM_MODULE_INIT_STATE = False
FLAG_CONF_UPDATE = False
FLAG_HORAIRE_UPDATE = False
FLAG_TH_CLOSE = False
FLAG_SHUTDOWN = False
def main():
''' main function
@@ -822,6 +827,7 @@ def main():
global FLAG_CONF_UPDATE
global FLAG_HORAIRE_UPDATE
global FLAG_TH_CLOSE
global FLAG_SHUTDOWN
# Configuration loader
config = get_conf(logger)
@@ -896,7 +902,6 @@ def main():
# Si le module GSM doit être allumé et qu'il est éteint, on l'allume
if not GSM_MODULE_STATE:
logger.info("Allumage du module GSM HAT ...")
init_module()
if not setup_module():
logger.error("Erreur de configuration des GPIOs de la board")
ser.close()
@@ -938,13 +943,31 @@ def main():
else:
# Si le module GSM doit être éteint et qu'il est allumé, on l'eteint
if GSM_MODULE_STATE:
idx = 0
logger.debug("Fermeture du module GSM HAT ...")
init_module()
while idx < 5:
if not setup_module():
logger.error("Erreur de configuration des GPIOs de la board")
ser.close()
sys.exit(1)
else:
jdx = 0
while jdx < 5:
# send AT command to test the connection
ret, _ = send_at_cmd(cmd='AT', timeout=0.5, serObj=ser, logger=logger)
if ret == 2:
logger.error("Erreur d'envoie de la commande AT")
ser.close()
sys.exit(1)
elif ret == 1:
logger.info("Pas de réponse du module GSM HAT")
idx = 6
break
else:
logger.warning("Module GSM HAT allumé .. ({}/5)".format(jdx + 1))
jdx += 1
time.sleep(1)
GSM_MODULE_STATE = False
GSM_MODULE_INIT_STATE = False
GSM_MODULE_SIM_STATE = False
@@ -980,6 +1003,15 @@ def main():
out = ''
try:
while True:
# drapeau de fermeture de l'appli
if FLAG_SHUTDOWN:
# on ferme le module si il est ouvert
if GSM_MODULE_STATE:
if not setup_module():
logger.error("Erreur de configuration des GPIOs de la board")
raise KeyboardInterrupt
# Drapeau de mise à jour de la configuration, par le configurateur via le serveur (socket)
if FLAG_CONF_UPDATE:
logger.info("Configuration doit être rechargée ...")