1
0
mirror of https://github.com/DCC-EX/CommandStation-EX.git synced 2024-12-23 12:51:24 +01:00

MDNS Generic library integration

This commit is contained in:
pmantoine 2024-01-28 13:31:43 +09:00
parent 6cdde5d3c6
commit ad09360a54
4 changed files with 18 additions and 2 deletions

View File

@ -29,6 +29,10 @@
#include "CommandDistributor.h"
#include "WiThrottle.h"
#include "DCCTimer.h"
#include "MDNS_Generic.h"
EthernetUDP udp;
MDNS mdns(udp);
EthernetInterface * EthernetInterface::singleton=NULL;
/**
@ -175,6 +179,8 @@ bool EthernetInterface::checkLink() {
server->begin();
LCD(4,F("IP: %d.%d.%d.%d"), ip[0], ip[1], ip[2], ip[3]);
LCD(5,F("Port:%d"), IP_PORT);
mdns.begin(Ethernet.localIP(), "dccex"); // hostname
mdns.addServiceRecord("dccex._withrottle", 2560, MDNSServiceTCP);
// only create a outboundRing it none exists, this may happen if the cable
// gets disconnected and connected again
if(!outboundRing)
@ -242,7 +248,11 @@ void EthernetInterface::loop2() {
if (!clients[socket].connected()) { // stop any clients which disconnect
CommandDistributor::forget(socket);
clients[socket].stop();
#if defined(ARDUINO_ARCH_AVR)
clients[socket]=NULL;
#else
clients[socket]=(EthernetClient)nullptr;
#endif
//if (Diag::ETHERNET)
DIAG(F("Ethernet: disconnect %d "), socket);
return; // Trick: So that we do not continue in this loop with client that is NULL
@ -262,6 +272,8 @@ void EthernetInterface::loop2() {
}
}
mdns.run();
WiThrottle::loop(outboundRing);
// handle at most 1 outbound transmission

View File

@ -46,7 +46,7 @@
#define MAX_SOCK_NUM 10
#else
#include "Ethernet.h"
#define MAX_SOCK_NUM 4
// #define MAX_SOCK_NUM 4
#endif
#include "RingStream.h"

View File

@ -103,6 +103,7 @@ framework = arduino
lib_deps =
${env.lib_deps}
arduino-libraries/Ethernet
MDNS_Generic
SPI
monitor_speed = 115200
monitor_echo = yes
@ -251,6 +252,7 @@ framework = arduino
lib_deps = ${env.lib_deps}
stm32duino/STM32Ethernet @ ^1.3.0
stm32duino/STM32duino LwIP @ ^2.1.2
MDNS_Generic
build_flags = -std=c++17 -Os -g2 -Wunused-variable
monitor_speed = 115200
monitor_echo = yes
@ -266,6 +268,7 @@ framework = arduino
lib_deps = ${env.lib_deps}
stm32duino/STM32Ethernet @ ^1.3.0
stm32duino/STM32duino LwIP @ ^2.1.2
MDNS_Generic
build_flags = -std=c++17 -Os -g2 -Wunused-variable
monitor_speed = 115200
monitor_echo = yes

View File

@ -3,7 +3,8 @@
#include "StringFormatter.h"
#define VERSION "5.2.27stm32ECvf"
#define VERSION "5.2.27stm32ECvfmdns"
// 5.2.XX - MDNS Generic library integration for Ethernet
// 5.2.XX - Variable frequency for DC mode
// 5.2.27 - Bugfix: IOExpander memory allocation
// 5.2.26 - Silently ignore overridden HAL defaults