@@ -69,7 +69,7 @@ static const char _ssdp_notify_template[] PROGMEM =
69
69
70
70
static const char _ssdp_packet_template[] PROGMEM =
71
71
" %s" // _ssdp_response_template / _ssdp_notify_template
72
- " CACHE-CONTROL: max-age=%u\r\n " // SSDP_INTERVAL
72
+ " CACHE-CONTROL: max-age=%u\r\n " // _interval
73
73
" SERVER: Arduino/1.0 UPNP/1.1 %s/%s\r\n " // _modelName, _modelNumber
74
74
" USN: %s\r\n " // _uuid
75
75
" %s: %s\r\n " // "NT" or "ST", _deviceType
@@ -130,6 +130,7 @@ SSDPClass::SSDPClass() :
130
130
_timer(0 ),
131
131
_port(80 ),
132
132
_ttl(SSDP_MULTICAST_TTL),
133
+ _interval(SSDP_INTERVAL),
133
134
_respondToAddr(0 ,0 ,0 ,0 ),
134
135
_respondToPort(0 ),
135
136
_pending(false ),
@@ -241,7 +242,7 @@ void SSDPClass::_send(ssdp_method_t method) {
241
242
int len = snprintf_P (buffer, sizeof (buffer),
242
243
_ssdp_packet_template,
243
244
valueBuffer,
244
- SSDP_INTERVAL ,
245
+ _interval ,
245
246
_modelName,
246
247
_modelNumber,
247
248
_uuid,
@@ -428,7 +429,7 @@ void SSDPClass::_update() {
428
429
if (_pending && (millis () - _process_time) > _delay) {
429
430
_pending = false ; _delay = 0 ;
430
431
_send (NONE);
431
- } else if (_notify_time == 0 || (millis () - _notify_time) > (SSDP_INTERVAL * 1000L )){
432
+ } else if (_notify_time == 0 || (millis () - _notify_time) > (_interval * 1000L )){
432
433
_notify_time = millis ();
433
434
_st_is_uuid = false ;
434
435
_send (NOTIFY);
@@ -493,11 +494,14 @@ void SSDPClass::setManufacturerURL(const char *url) {
493
494
strlcpy (_manufacturerURL, url, sizeof (_manufacturerURL));
494
495
}
495
496
496
-
497
497
void SSDPClass::setTTL (const uint8_t ttl) {
498
498
_ttl = ttl;
499
499
}
500
500
501
+ void SSDPClass::setInterval (uint32_t interval) {
502
+ _interval = interval;
503
+ }
504
+
501
505
void SSDPClass::_onTimerStatic (SSDPClass* self) {
502
506
self->_update ();
503
507
}
0 commit comments