Salut,
Après quelques semaines où j'étais pris par un autre projet, je viens de me remettre aux dev sur la montre (et par ricochet sur le LilyPI
).
1/ J'ai externalisé dans une librairie spécifique les objets Lvgl : ca sera plus facile pour gérer à la fois la TWatch et le LilyPI (voir éventuellement que d'autres personnes les réutilisent dans leurs propres projets). C'est ici :
https://github.com/destroyedlolo/emToile
Fait et ca marche
2/ je m'attaque maintenant au dur : la gestion de la boucle événementielle qui se trouve dans le .IMO.
Déjà, même si l’opération viagra (augmentation de la queue des messages) a permi de stabiliser "
un peu" la montre j'ai toujours un plantage systématique par exemple lorsque j'enlève un pull
(sans évidemment comprendre pourquoi).
Du coup, je vais faire comme avait l'IHM : je met tout a plat et je refais.
Dans le code de Lewis, tout est fait dans le loop() principale avec un mix de queues (et j'avoue ne pas bien comprendre pourquoi) et de flags ... dans mon code, la boucle principale ne va gérer que ce qui dépend de Lvgl, le reste sera dans des tâches dédiées gérées uniquement par des flags. Ca sera peut-être un peu déroutant pour "les débutants", mais ca devrait être plus facile a faire évoluer, ca optimisera l'utilisation des 2 coeurs du proc, et, j'espère plus fiable (en tout cas, ca éliminera les problèmes de rush).
Ensuite, j'ai vu qu'il y a 3 durées d'actions sur le bouton : shortpress, longpress et reboot.
Pour le moment, seul le 1er est pris en compte ; je compte utiliser le "longpress" pour mettre la montre en deepsleep pour une avoir une durée de la pile beaucoup plus grande (3, 4 jours ou plus, a voir). Mais pour ca, il va falloir que je bidouille là librairie de TTGO qui n'est pas prévu pour.
Toutes idées et évidemment la bienvenue. En tout cas, je m'éclate car en utilisant RTOS plutot que seul le monde Arduino, je replonge dans ce que je faisais sur Amiga, et ca ... c'est cool