Skip to content

Commit 966cd82

Browse files
John Doeigrr
authored andcommitted
enable long model versions
1 parent 7eb6e1f commit 966cd82

File tree

3 files changed

+13
-21
lines changed

3 files changed

+13
-21
lines changed

hardware/esp8266com/esp8266/libraries/ESP8266SSDP/ESP8266SSDP.cpp

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ const char* _ssdp_notify_template =
5757
const char* _ssdp_packet_template =
5858
"%s" // _ssdp_response_template / _ssdp_notify_template
5959
"CACHE-CONTROL: max-age=%u\r\n" // SSDP_INTERVAL
60-
"SERVER: Arduino/1.0 UPNP/1.1 %s/%u.%u\r\n" // _modelName, _modelNumber->major, _modelNumber->minor
60+
"SERVER: Arduino/1.0 UPNP/1.1 %s/%s\r\n" // _modelName, _modelNumber
6161
"USN: uuid:%s-%02X%02X%02X%02X%02X%02X\r\n" // _base, _mac[0], _mac[1], _mac[2], _mac[3], _mac[4], _mac[5]
6262
"LOCATION: http://%u.%u.%u.%u/ssdp/schema.xml\r\n" // WiFi.localIP()
6363
"\r\n";
@@ -80,7 +80,7 @@ const char* _ssdp_schema_template =
8080
"<presentationURL>%s</presentationURL>"
8181
"<serialNumber>%s</serialNumber>"
8282
"<modelName>%s</modelName>"
83-
"<modelNumber>%u.%u</modelNumber>"
83+
"<modelNumber>%s</modelNumber>"
8484
"<modelURL>%s</modelURL>"
8585
"<manufacturer>%s</manufacturer>"
8686
"<manufacturerURL>%s</manufacturerURL>"
@@ -96,13 +96,12 @@ SSDPClass::SSDPClass(){
9696
_presentationURL = (char*)os_malloc(SSDP_PRESENTATION_URL_SIZE);
9797
_serialNumber = (char*)os_malloc(SSDP_SERIAL_NUMBER_SIZE);
9898
_modelName = (char*)os_malloc(SSDP_MODEL_NAME_SIZE);
99-
_modelNumber = (ssdp_version_t*)os_malloc(SSDP_MODEL_VERSION_SIZE);
99+
_modelNumber = (char*)os_malloc(SSDP_MODEL_VERSION_SIZE);
100100
_modelURL = (char*)os_malloc(SSDP_MODEL_URL_SIZE);
101101
_manufacturer = (char*)os_malloc(SSDP_MANUFACTURER_SIZE);
102102
_manufacturerURL = (char*)os_malloc(SSDP_MANUFACTURER_URL_SIZE);
103103

104-
_modelNumber->major = 0;
105-
_modelNumber->minor = 0;
104+
_modelNumber[0] = '\0';
106105
_friendlyName[0] = '\0';
107106
_presentationURL[0] = '\0';
108107
_serialNumber[0] = '\0';
@@ -165,7 +164,7 @@ void SSDPClass::send(ssdp_method_t method){
165164
_server.printf(_ssdp_packet_template,
166165
(method == NONE)?_ssdp_response_template:_ssdp_notify_template,
167166
SSDP_INTERVAL,
168-
_modelName, _modelNumber->major, _modelNumber->minor,
167+
_modelName, _modelNumber,
169168
_base, _mac[0], _mac[1], _mac[2], _mac[3], _mac[4], _mac[5],
170169
(uint8_t)(ip & 0xFF), (uint8_t)((ip >> 8) & 0xFF), (uint8_t)((ip >> 16) & 0xFF), (uint8_t)((ip >> 24) & 0xFF)
171170
);
@@ -179,7 +178,7 @@ void SSDPClass::schema(WiFiClient client){
179178
_presentationURL,
180179
_serialNumber,
181180
_modelName,
182-
_modelNumber->major, _modelNumber->minor,
181+
_modelNumber,
183182
_modelURL,
184183
_manufacturer,
185184
_manufacturerURL,
@@ -300,9 +299,8 @@ void SSDPClass::setModelName(char *name){
300299
strcpy(_modelName, name);
301300
}
302301

303-
void SSDPClass::setModelNumber(uint8_t major, uint8_t minor){
304-
_modelNumber->major = major;
305-
_modelNumber->minor = minor;
302+
void SSDPClass::setModelNumber(char *num){
303+
strcpy(_modelNumber, num);
306304
}
307305

308306
void SSDPClass::setModelURL(char *url){

hardware/esp8266com/esp8266/libraries/ESP8266SSDP/ESP8266SSDP.h

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ License (MIT license):
4141
#define SSDP_PRESENTATION_URL_SIZE 32
4242
#define SSDP_MODEL_NAME_SIZE 32
4343
#define SSDP_MODEL_URL_SIZE 32
44-
#define SSDP_MODEL_VERSION_SIZE 2
44+
#define SSDP_MODEL_VERSION_SIZE 32
4545
#define SSDP_MANUFACTURER_SIZE 32
4646
#define SSDP_MANUFACTURER_URL_SIZE 32
4747

@@ -51,12 +51,6 @@ typedef enum {
5151
NOTIFY
5252
} ssdp_method_t;
5353

54-
typedef struct {
55-
uint8_t major;
56-
uint8_t minor;
57-
} ssdp_version_t;
58-
59-
6054
class SSDPClass{
6155
public:
6256
SSDPClass();
@@ -71,7 +65,7 @@ class SSDPClass{
7165
void setURL(char *url);
7266
void setSerialNumber(char *serialNumber);
7367
void setModelName(char *name);
74-
void setModelNumber(uint8_t major, uint8_t minor);
68+
void setModelNumber(char *num);
7569
void setModelURL(char *url);
7670
void setManufacturer(char *name);
7771
void setManufacturerURL(char *url);
@@ -92,7 +86,7 @@ class SSDPClass{
9286
char *_manufacturerURL;
9387
char *_modelName;
9488
char *_modelURL;
95-
ssdp_version_t *_modelNumber;
89+
char *_modelNumber;
9690
};
9791

9892
extern SSDPClass SSDP;

hardware/esp8266com/esp8266/libraries/ESP8266SSDP/examples/SSDP.ino

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ void setup() {
3838
SSDP.setSerialNumber((char*)"A0123456789");
3939
SSDP.setURL((char*)"/");
4040
SSDP.setModelName((char*)"ESP-12e");
41-
SSDP.setModelNumber(1, 0);
41+
SSDP.setModelNumber((char*)"1.0");
4242
SSDP.setModelURL((char*)"http://12e.espressif.com");
4343
SSDP.setManufacturer((char*)"Espressif");
4444
SSDP.setManufacturerURL((char*)"http://espressif.com");
@@ -54,4 +54,4 @@ void loop() {
5454
HTTP.handleClient();
5555
SSDP.update();
5656
delay(1);
57-
}
57+
}

0 commit comments

Comments
 (0)