|
|
|
|
@@ -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)
|
|
|
|
|
@@ -937,15 +943,34 @@ 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 ...")
|
|
|
|
|
if not setup_module():
|
|
|
|
|
logger.error("Erreur de configuration des GPIOs de la board")
|
|
|
|
|
ser.close()
|
|
|
|
|
sys.exit(1)
|
|
|
|
|
else:
|
|
|
|
|
GSM_MODULE_STATE = False
|
|
|
|
|
GSM_MODULE_INIT_STATE = False
|
|
|
|
|
GSM_MODULE_SIM_STATE = False
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
server_addr = "/tmp/uds_socket"
|
|
|
|
|
# Make sure the socket does not already exist
|
|
|
|
|
@@ -978,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 ...")
|
|
|
|
|
|