mirror of
https://github.com/esp8266/Arduino.git
synced 2025-04-19 23:22:16 +03:00
Set a value for SSDP notify interval (#7110)
* Set a value for SSDP notify interval, default to 1200 seconds. * Changed uint8_t to uint32_t Co-authored-by: david gauchard <gauchard@laas.fr>
This commit is contained in:
parent
e39cbe6328
commit
b64e8da2e2
@ -69,7 +69,7 @@ static const char _ssdp_notify_template[] PROGMEM =
|
|||||||
|
|
||||||
static const char _ssdp_packet_template[] PROGMEM =
|
static const char _ssdp_packet_template[] PROGMEM =
|
||||||
"%s" // _ssdp_response_template / _ssdp_notify_template
|
"%s" // _ssdp_response_template / _ssdp_notify_template
|
||||||
"CACHE-CONTROL: max-age=%u\r\n" // SSDP_INTERVAL
|
"CACHE-CONTROL: max-age=%u\r\n" // _interval
|
||||||
"SERVER: Arduino/1.0 UPNP/1.1 %s/%s\r\n" // _modelName, _modelNumber
|
"SERVER: Arduino/1.0 UPNP/1.1 %s/%s\r\n" // _modelName, _modelNumber
|
||||||
"USN: %s\r\n" // _uuid
|
"USN: %s\r\n" // _uuid
|
||||||
"%s: %s\r\n" // "NT" or "ST", _deviceType
|
"%s: %s\r\n" // "NT" or "ST", _deviceType
|
||||||
@ -130,6 +130,7 @@ SSDPClass::SSDPClass() :
|
|||||||
_timer(0),
|
_timer(0),
|
||||||
_port(80),
|
_port(80),
|
||||||
_ttl(SSDP_MULTICAST_TTL),
|
_ttl(SSDP_MULTICAST_TTL),
|
||||||
|
_interval(SSDP_INTERVAL),
|
||||||
_respondToAddr(0,0,0,0),
|
_respondToAddr(0,0,0,0),
|
||||||
_respondToPort(0),
|
_respondToPort(0),
|
||||||
_pending(false),
|
_pending(false),
|
||||||
@ -241,7 +242,7 @@ void SSDPClass::_send(ssdp_method_t method) {
|
|||||||
int len = snprintf_P(buffer, sizeof(buffer),
|
int len = snprintf_P(buffer, sizeof(buffer),
|
||||||
_ssdp_packet_template,
|
_ssdp_packet_template,
|
||||||
valueBuffer,
|
valueBuffer,
|
||||||
SSDP_INTERVAL,
|
_interval,
|
||||||
_modelName,
|
_modelName,
|
||||||
_modelNumber,
|
_modelNumber,
|
||||||
_uuid,
|
_uuid,
|
||||||
@ -428,7 +429,7 @@ void SSDPClass::_update() {
|
|||||||
if (_pending && (millis() - _process_time) > _delay) {
|
if (_pending && (millis() - _process_time) > _delay) {
|
||||||
_pending = false; _delay = 0;
|
_pending = false; _delay = 0;
|
||||||
_send(NONE);
|
_send(NONE);
|
||||||
} else if(_notify_time == 0 || (millis() - _notify_time) > (SSDP_INTERVAL * 1000L)){
|
} else if(_notify_time == 0 || (millis() - _notify_time) > (_interval * 1000L)){
|
||||||
_notify_time = millis();
|
_notify_time = millis();
|
||||||
_st_is_uuid = false;
|
_st_is_uuid = false;
|
||||||
_send(NOTIFY);
|
_send(NOTIFY);
|
||||||
@ -493,11 +494,14 @@ void SSDPClass::setManufacturerURL(const char *url) {
|
|||||||
strlcpy(_manufacturerURL, url, sizeof(_manufacturerURL));
|
strlcpy(_manufacturerURL, url, sizeof(_manufacturerURL));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void SSDPClass::setTTL(const uint8_t ttl) {
|
void SSDPClass::setTTL(const uint8_t ttl) {
|
||||||
_ttl = ttl;
|
_ttl = ttl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SSDPClass::setInterval(uint32_t interval) {
|
||||||
|
_interval = interval;
|
||||||
|
}
|
||||||
|
|
||||||
void SSDPClass::_onTimerStatic(SSDPClass* self) {
|
void SSDPClass::_onTimerStatic(SSDPClass* self) {
|
||||||
self->_update();
|
self->_update();
|
||||||
}
|
}
|
||||||
|
@ -71,13 +71,13 @@ class SSDPClass{
|
|||||||
void setUUID(const String& uuid) { setUUID(uuid.c_str()); }
|
void setUUID(const String& uuid) { setUUID(uuid.c_str()); }
|
||||||
void setUUID(const char *uuid);
|
void setUUID(const char *uuid);
|
||||||
|
|
||||||
void setName(const String& name) { setName(name.c_str()); }
|
void setName(const String& name) { setName(name.c_str()); }
|
||||||
void setName(const char *name);
|
void setName(const char *name);
|
||||||
void setURL(const String& url) { setURL(url.c_str()); }
|
void setURL(const String& url) { setURL(url.c_str()); }
|
||||||
void setURL(const char *url);
|
void setURL(const char *url);
|
||||||
void setSchemaURL(const String& url) { setSchemaURL(url.c_str()); }
|
void setSchemaURL(const String& url) { setSchemaURL(url.c_str()); }
|
||||||
void setSchemaURL(const char *url);
|
void setSchemaURL(const char *url);
|
||||||
void setSerialNumber(const String& serialNumber) { setSerialNumber(serialNumber.c_str()); }
|
void setSerialNumber(const String& serialNumber) { setSerialNumber(serialNumber.c_str()); }
|
||||||
void setSerialNumber(const char *serialNumber);
|
void setSerialNumber(const char *serialNumber);
|
||||||
void setSerialNumber(const uint32_t serialNumber);
|
void setSerialNumber(const uint32_t serialNumber);
|
||||||
void setModelName(const String& name) { setModelName(name.c_str()); }
|
void setModelName(const String& name) { setModelName(name.c_str()); }
|
||||||
@ -92,6 +92,7 @@ class SSDPClass{
|
|||||||
void setManufacturerURL(const char *url);
|
void setManufacturerURL(const char *url);
|
||||||
void setHTTPPort(uint16_t port);
|
void setHTTPPort(uint16_t port);
|
||||||
void setTTL(uint8_t ttl);
|
void setTTL(uint8_t ttl);
|
||||||
|
void setInterval(uint32_t interval);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void _send(ssdp_method_t method);
|
void _send(ssdp_method_t method);
|
||||||
@ -104,6 +105,7 @@ class SSDPClass{
|
|||||||
SSDPTimer* _timer;
|
SSDPTimer* _timer;
|
||||||
uint16_t _port;
|
uint16_t _port;
|
||||||
uint8_t _ttl;
|
uint8_t _ttl;
|
||||||
|
uint32_t _interval;
|
||||||
|
|
||||||
IPAddress _respondToAddr;
|
IPAddress _respondToAddr;
|
||||||
uint16_t _respondToPort;
|
uint16_t _respondToPort;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user