mchobby / la-maison-pythonic

Projet didactique du livre "Python, Raspberry-Pi et Flask" avec ESP8266 sous MicroPython
https://shop.mchobby.be/fr/doc/1423-python-raspberry-pi-et-flask-capturez-des-donnees-telemetriques-et-realisez-des-tableaux-de-board-web-3232100014237.html
19 stars 13 forks source link

Probleme gestion des exeptions Asyncio sous micropython firmware 1.13 #7

Closed JJR04 closed 3 years ago

JJR04 commented 4 years ago

Bonjour,

En V1.13 du firmware micropython le module Asyncio semble avoir été modifié (comme dans les dernières versions de python).

La gestion des erreurs comme décrit page 222 et 223 ne fonctionne plus correctement.

En cas de problème la tâche plante et n'est plus redirigé vers la fonction led_error.

Je n'ai pas trouvé comment corriger correctement ce problème.

D'avance Merci pour votre aide,

Cordialement,

JJ

mchobby commented 3 years ago

Désolé, j'ai pris du temps pour m'y plonger. Il faut aussi capturer OSError dans l'except.

loop = asyncio.get_event_loop()
loop.create_task( run_every(capture_1min  , min=1  ) )
loop.create_task( run_every(heartbeat     , sec=10 ) )
try:
    # Execution du scheduler
    loop.run_until_complete( run_app_exit() )
except (OSError, Exception) as e :
    print( e )
    led_error( step=6 )