Je cherche à changer l'IP du W5100 dans le setup() du sketch.
Pour ça j'affecte une ip avec un Ethernet.begin(mac, IP).
Un Serial.println(Ethernet.localIP()) me confirme la bonne affectation de l'IP.
J'envoie quelques trames UDP en broadcast avec une serie de :
udp.beginPacket(IPBroadcast, udpPort)
udp.write("-----")
udp.endPacket()
Wireshark me confirme le bon envoi des paquets UDP.
Je change l'IP avec un Ethernet.begin(mac, autreIP).
Un Serial.println(Ethernet.localIP()) me confirme le changement d'IP.
Par contre, les trames :
udp.beginPacket(IPBroadcast, udpPort)
udp.write("-----")
udp.endPacket()
ne passent plus (plus de trace dans Wireshark).
Y a t'il quelque chose de plus à réinitialiser ou le changement d'IP à chaud est impossible?
Pour l'instant je suis en mode "plateforme de développement", je ne souhaite pas perturber mon LAN.
Mon projet est que plusieurs arduino puissent s'auto-affecter des adresses IP lorsque le serveur DHCP n'est pas joingnable en se découvrant les uns les autres via des trames UDP. Je sais que les ip pourraient être affectées dans le sketch mais ça ne serait pas marrant.
Je pense que le problème vient plutôt de la librairie EthernetUDP.h que j'utilise mal ou qui ne permet pas le changement d'IP à chaud.