Je pense avoir trouvé la solution.
J'arrive maintenant à détecter si un ap wifi existe ou non grace
à la fonction print(wifi.sta.status()).
J'essaie en premier de me connecter sur le 2e ssid (celui du smartphone)
et continue mon boot normalement.
Si non, j'essaie de me connecter sur mon 1er ssid (celui de la maison)
et continue mon boot normalement.
Si non, j'essaie de me connecter sur le wifi qui se trouve dans eus_params.lua
et continue mon boot normalement.
Si non, je passe en mode setup gadget pour trouver une nouvelle configuration
Maintenant les *secrets* sont chargés au moment de l'init.lua et
l'aiguillage du boot *dsleep* se fait en fonction de la variable
node_mode. Ainsi c'est le même iniz.lua et wifi_init.lua pour les
différents projets NodeMCU.
Reste encore à faire de pouvoir sauver deux possibilités de connexions
WIFI dans les secrets_wifi afin de pouvoir se connecter sur le
WIFI du smartphone en cas de dépannage sur le terrain
Comme il peut démarrer maintenant tout seul depuis un power off,
il n'a plus moyen d'aller chercher la date sur Internet.
Il faut donc régulièrement quand on est connecté sur Internet, sauver
la date dans la flash afin qu'il puisse au moins partir d'une date pas
trop fausse quand il démarre sans nternet
J'ai vu que j'avais beaucoup trop de doublons au niveau des noms
des ap wifi comme par exemple *upc free*, j'enregistre donc
maintenant l'adresse mac de l'ap wifi aussi, ainsi j'arrive à
les différentier
Je change de méthode pour trouver les positions GPS, plus avec
Wigle car il y avait trop de bruit, mais maintenant en
enregistrement // du NodeMCU et du OSMand+ pour avoir la
corrélation GPS avec les timestamps d'enregistrement.
Reste encore maintenant à faire le calcul post traitement
pour pouvoir *coller* le positions GPS aux ap wifi *vu* par
le NodeMCU
L'ancien cat.lua, faisait sauter le buffer RAM de socat.
Le nouveau attend entre chaque ligne 50mS afin que le socat ait le
temps de vider le buffer de la trame réseau
Ajouté aussi, pour des tests de post traitements, le tout premier
fichier de logs des ap wifi quand j'ai fait le tour du quartier à
pied avec mon NodeMCU dans une boîte
Mon socat ne fonctionne plus avec les nouvelles version du firmeware
et mon pet tracker utilisait le module rtc-mem qui ne se trouvait pas
dans la version de dec 19.
J'ai donc dû modifier la procédure de boot afin de ne plus devoir
utiliser le module rtc-mem et de pouvoir revenir au firmeware de
dec 19 et pouvoir utiliser à nouveau mon socat qui est indispensable
afin de pouvoir récupérer les logs des ap wifi scannés lors de la sortie du chat
J'utilisais la possibilité de sauvegarder le flag de dsleep dans la rtc-mem afin de pouvoir différencier lors du boot si c'est un reset ou une sortie de sommeil profond.
Maintenant je vais partir du principe que quand il y a un *hardware RESET* c'est forcément une sortie de dsleep.
Si on veut avoir la *seconde chance* lors de la procédure de boot, il faudra utiliser le *power on RESET*