Oui j'ai commencer par le faire, mais comment je refait la déclaration EthernetServer server(server_port);
quand l'arduino est en route?
Un reboot suffit?
C'est repris en compte?
Bon j'ai testé ce week end mais impossible de changer la valeur au reboot de la carte.
La valeur est lue une fois par le programme à la compilation mais après je n'arrive pas à la changer.
renaudyes:
A la limite, tu peux la stocker dans l'EEPROM.
Avant de reboot, tu changes sa valeurs et ainsi de suite.
Par contre, je vois pas l'intérêt de changer de port ...
J'ai essayé mais le problème c'est que l'initialisation a lieue en dehors de la boucle Setup donc comment je fais pour récupérer la valeur AVANT l'init?
renaudyes:
Par contre, je vois pas l'intérêt de changer de port ...
Fredericzim:
Moi, c'est pareil, je ne comprend pas trop pourquoi tu veux changer de port ???
Dans mon réseau il y a plusieurs appareils, et pas tous sur le même port.
Du coup en sélectionnant le bon port depuis " l'exterieur " je me connecte sur le bon appareil en gérant la redirection des ports.
Par exemple, j'ai un serveur web qui va se diriger avec le port 80.
Un arduino uno+eth qui va rediriger vers le port 82
Et là j'aimerais rediriger vers le port 90 pour ma mega+eth.
Le soucis c'est que si pour une raison ou une autre le port 90 est déjà pris, je suis bloqué. Je dois recompiler et remettre le programme dans la carte pour que ça marche.
Alors qu'avec une interface web je pourrais le changer à la volée, ce serait plus pratique.
Si j'ai un conflit de port je voudrais pouvoir parametrer le shield avec une interface web plutot que de devoir le reprogrammer.
Je n'ai jamais utilisé un module ethernet, je ne sais donc pas comment on le fait :/. Une bref recherche sur internet ne m'as pas beaucoup aidé non plus.
J'ai plutôt l'impression qu'on ouvre le client et une fois que la tâche est terminée, on le ferme :
Ce qui revient à faire votre changement de port ( sans le reboot -> plus rapide ), sauf qu'ici on ouvre/ferme le client sur un même port ;).
// add this to includes
#include <utility/socket.h>
// in global variable area
EthernetServer server1(80);
EthernetServer server2(8080);
// set server to server1
EthernetServer server = server1;
// in setup
server.begin();
// to change ports
// change server to server2
server = server2;
// close all sockets
for(byte i = 0 ;i < MAX_SOCK_NUM;i++) {
close(i);
}
// start server2
server.begin();