|
| [DANGER, irréversible] Retirer la dépendance à la connexion au réseau | |
| | Auteur | Message |
---|
Vincent14 Lapin nain
Localisation : Caen Nbr de messages : 23 Carottes : 3264
| Sujet: [DANGER, irréversible] Retirer la dépendance à la connexion au réseau Jeu 14 Avr 2016 - 22:50 | |
| Si vous avez réalisé un programme embarqué sur la bête qui ne nécessite aucune connexion à Internet, ceci peut vous intéresser. Dans le fichier /karotz/OkSetup/yaffs_start.sh, ligne 41 on peut lire : - Citation :
- /usr/bin/python /usr/scripts/wait_until_connected.py
J'ai été très surpris de voir le contenu du script wait_until_connected.py, car l'API HTTP peut être appelée depuis le lapin lui même via des scripts en Python. Le lapin peut être parfaitement autonome et finir sa vie bloqué si vous l'emportez dans un autre batiment (!) loin de votre wifi. J'ai rendu ce script non-bloquant en modifiant cette section comme il suit : - Citation :
- # Tout en haut
import threading
# ... # ... # ...
#main
def retry_connexion(): if len(sys.argv) > 1 and sys.argv[1] == "--quiet": wait_until_connected(False) else: wait_until_connected(True)
connexion_thread = threading.Thread(None, retry_connexion) connexion_thread.start() connexion_thread._Thread__stop() Mon Karotz s'allume désormais quoi qu'il arrive MAIS même dans des conditions normales je ne parviens plus à m'y connecter (je ne trouve plus son ip sur le réseau).Avez vous une idée pour rendre la connexion au réseau facultative sans toutefois la perdre ? | |
| | | DutchRabbits Nabz Junior
Localisation : Netherlands Nbr de messages : 54 Carottes : 3375
| Sujet: Re: [DANGER, irréversible] Retirer la dépendance à la connexion au réseau Dim 17 Avr 2016 - 14:50 | |
| Vincent, The networking code from Karotz is a real mess. I'm not sure why threading doesn't work, but you can change the "wait_until_connected.py" to give up after a short amount of time. On line 55, add a retry-counter. On line 56, check for the counter for a number of retries (for example 3) On line 60, lower the timeout (it is in seconds). On line 61, increment the counter. Current code: - Code:
-
while 1: os.system("logger -s \"[START] loading wifi config\"") if not ethernet and wifi: config.load_wifi() if not network.wait_wifi_status(300): continue if ethernet: config.load_ip("eth0") if wifi: config.load_ip("wlan0") os.system("logger -s \"[START] asking for ip\"") if not network.wait_ip(300): continue os.system("logger -s \"[START] network is ready to go\"") break
New code: - Code:
-
retrycount=0 while retrycount < 3: os.system("logger -s \"[START] loading wifi config\"") if not ethernet and wifi: config.load_wifi() if not network.wait_wifi_status(10): retrycount+=1 continue if ethernet: config.load_ip("eth0") if wifi: config.load_ip("wlan0") os.system("logger -s \"[START] asking for ip\"") if not network.wait_ip(300): continue os.system("logger -s \"[START] network is ready to go\"") break
| |
| | | | [DANGER, irréversible] Retirer la dépendance à la connexion au réseau | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |