mirror of
https://github.com/DCC-EX/CommandStation-EX.git
synced 2024-11-24 00:26:13 +01:00
Compare commits
2 Commits
ad09360a54
...
c0f69cd278
Author | SHA1 | Date | |
---|---|---|---|
|
c0f69cd278 | ||
|
d1f558d64f |
|
@ -1,4 +1,6 @@
|
||||||
/*
|
/*
|
||||||
|
* © 2024 Morten "Doc" Nielsen
|
||||||
|
* © 2023-2024 Paul M. Antoine
|
||||||
* © 2022 Bruno Sanches
|
* © 2022 Bruno Sanches
|
||||||
* © 2021 Fred Decker
|
* © 2021 Fred Decker
|
||||||
* © 2020-2022 Harald Barth
|
* © 2020-2022 Harald Barth
|
||||||
|
@ -174,31 +176,40 @@ bool EthernetInterface::checkLink() {
|
||||||
Ethernet.setLocalIP(myIP); // for static IP, set it again
|
Ethernet.setLocalIP(myIP); // for static IP, set it again
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
IPAddress ip = Ethernet.localIP(); // look what IP was obtained (dynamic or static)
|
|
||||||
server = new EthernetServer(IP_PORT); // Ethernet Server listening on default port IP_PORT
|
server = new EthernetServer(IP_PORT); // Ethernet Server listening on default port IP_PORT
|
||||||
server->begin();
|
server->begin();
|
||||||
|
IPAddress ip = Ethernet.localIP(); // look what IP was obtained (dynamic or static)
|
||||||
|
if (ip[0] == 0)
|
||||||
|
LCD(4,F("Awaiting DHCP..."));
|
||||||
|
while (ip[0] == 0) { // wait until we are given an IP address from the DHCP server
|
||||||
|
// LCD(4,F("."));
|
||||||
|
ip = Ethernet.localIP(); // look what IP was obtained (dynamic or static)
|
||||||
|
}
|
||||||
LCD(4,F("IP: %d.%d.%d.%d"), ip[0], ip[1], ip[2], ip[3]);
|
LCD(4,F("IP: %d.%d.%d.%d"), ip[0], ip[1], ip[2], ip[3]);
|
||||||
LCD(5,F("Port:%d"), IP_PORT);
|
LCD(5,F("Port:%d"), IP_PORT);
|
||||||
mdns.begin(Ethernet.localIP(), "dccex"); // hostname
|
mdns.begin(Ethernet.localIP(), WIFI_HOSTNAME); // hostname
|
||||||
mdns.addServiceRecord("dccex._withrottle", 2560, MDNSServiceTCP);
|
mdns.addServiceRecord(WIFI_HOSTNAME "._withrottle", IP_PORT, MDNSServiceTCP);
|
||||||
// only create a outboundRing it none exists, this may happen if the cable
|
// only create a outboundRing it none exists, this may happen if the cable
|
||||||
// gets disconnected and connected again
|
// gets disconnected and connected again
|
||||||
if(!outboundRing)
|
if(!outboundRing)
|
||||||
outboundRing=new RingStream(OUTBOUND_RING_SIZE);
|
outboundRing=new RingStream(OUTBOUND_RING_SIZE);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
} else { // connected
|
} else { // LinkOFF
|
||||||
DIAG(F("Ethernet cable disconnected"));
|
if (connected) { // Were connected, but no longer without a LINK!
|
||||||
connected=false;
|
DIAG(F("Ethernet cable disconnected"));
|
||||||
//clean up any client
|
connected=false;
|
||||||
for (byte socket = 0; socket < MAX_SOCK_NUM; socket++) {
|
//clean up any client
|
||||||
if(clients[socket].connected())
|
for (byte socket = 0; socket < MAX_SOCK_NUM; socket++) {
|
||||||
clients[socket].stop();
|
if(clients[socket].connected())
|
||||||
|
clients[socket].stop();
|
||||||
|
}
|
||||||
|
mdns.removeServiceRecord(IP_PORT, MDNSServiceTCP);
|
||||||
|
// tear down server
|
||||||
|
delete server;
|
||||||
|
server = nullptr;
|
||||||
|
LCD(4,F("IP: None"));
|
||||||
}
|
}
|
||||||
// tear down server
|
|
||||||
delete server;
|
|
||||||
server = nullptr;
|
|
||||||
LCD(4,F("IP: None"));
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
#include "StringFormatter.h"
|
#include "StringFormatter.h"
|
||||||
|
|
||||||
#define VERSION "5.2.27stm32ECvfmdns"
|
#define VERSION "5.2.27stm32ECvfmdns"
|
||||||
|
// 5.2.XX - Fix Ethernet cable disconnected message, wait for DHCP
|
||||||
// 5.2.XX - MDNS Generic library integration for Ethernet
|
// 5.2.XX - MDNS Generic library integration for Ethernet
|
||||||
// 5.2.XX - Variable frequency for DC mode
|
// 5.2.XX - Variable frequency for DC mode
|
||||||
// 5.2.27 - Bugfix: IOExpander memory allocation
|
// 5.2.27 - Bugfix: IOExpander memory allocation
|
||||||
|
|
Loading…
Reference in New Issue
Block a user