1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-04-19 23:22:16 +03:00

enable long model versions

This commit is contained in:
John Doe 2015-07-04 23:16:00 +03:00 committed by Ivan Grokhotkov
parent 4fdba1b635
commit 9cb80528c7
3 changed files with 13 additions and 21 deletions

View File

@ -57,7 +57,7 @@ const char* _ssdp_notify_template =
const char* _ssdp_packet_template = const char* _ssdp_packet_template =
"%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" // SSDP_INTERVAL
"SERVER: Arduino/1.0 UPNP/1.1 %s/%u.%u\r\n" // _modelName, _modelNumber->major, _modelNumber->minor "SERVER: Arduino/1.0 UPNP/1.1 %s/%s\r\n" // _modelName, _modelNumber
"USN: uuid:%s-%02X%02X%02X%02X%02X%02X\r\n" // _base, _mac[0], _mac[1], _mac[2], _mac[3], _mac[4], _mac[5] "USN: uuid:%s-%02X%02X%02X%02X%02X%02X\r\n" // _base, _mac[0], _mac[1], _mac[2], _mac[3], _mac[4], _mac[5]
"LOCATION: http://%u.%u.%u.%u/ssdp/schema.xml\r\n" // WiFi.localIP() "LOCATION: http://%u.%u.%u.%u/ssdp/schema.xml\r\n" // WiFi.localIP()
"\r\n"; "\r\n";
@ -80,7 +80,7 @@ const char* _ssdp_schema_template =
"<presentationURL>%s</presentationURL>" "<presentationURL>%s</presentationURL>"
"<serialNumber>%s</serialNumber>" "<serialNumber>%s</serialNumber>"
"<modelName>%s</modelName>" "<modelName>%s</modelName>"
"<modelNumber>%u.%u</modelNumber>" "<modelNumber>%s</modelNumber>"
"<modelURL>%s</modelURL>" "<modelURL>%s</modelURL>"
"<manufacturer>%s</manufacturer>" "<manufacturer>%s</manufacturer>"
"<manufacturerURL>%s</manufacturerURL>" "<manufacturerURL>%s</manufacturerURL>"
@ -96,13 +96,12 @@ SSDPClass::SSDPClass(){
_presentationURL = (char*)os_malloc(SSDP_PRESENTATION_URL_SIZE); _presentationURL = (char*)os_malloc(SSDP_PRESENTATION_URL_SIZE);
_serialNumber = (char*)os_malloc(SSDP_SERIAL_NUMBER_SIZE); _serialNumber = (char*)os_malloc(SSDP_SERIAL_NUMBER_SIZE);
_modelName = (char*)os_malloc(SSDP_MODEL_NAME_SIZE); _modelName = (char*)os_malloc(SSDP_MODEL_NAME_SIZE);
_modelNumber = (ssdp_version_t*)os_malloc(SSDP_MODEL_VERSION_SIZE); _modelNumber = (char*)os_malloc(SSDP_MODEL_VERSION_SIZE);
_modelURL = (char*)os_malloc(SSDP_MODEL_URL_SIZE); _modelURL = (char*)os_malloc(SSDP_MODEL_URL_SIZE);
_manufacturer = (char*)os_malloc(SSDP_MANUFACTURER_SIZE); _manufacturer = (char*)os_malloc(SSDP_MANUFACTURER_SIZE);
_manufacturerURL = (char*)os_malloc(SSDP_MANUFACTURER_URL_SIZE); _manufacturerURL = (char*)os_malloc(SSDP_MANUFACTURER_URL_SIZE);
_modelNumber->major = 0; _modelNumber[0] = '\0';
_modelNumber->minor = 0;
_friendlyName[0] = '\0'; _friendlyName[0] = '\0';
_presentationURL[0] = '\0'; _presentationURL[0] = '\0';
_serialNumber[0] = '\0'; _serialNumber[0] = '\0';
@ -165,7 +164,7 @@ void SSDPClass::send(ssdp_method_t method){
_server.printf(_ssdp_packet_template, _server.printf(_ssdp_packet_template,
(method == NONE)?_ssdp_response_template:_ssdp_notify_template, (method == NONE)?_ssdp_response_template:_ssdp_notify_template,
SSDP_INTERVAL, SSDP_INTERVAL,
_modelName, _modelNumber->major, _modelNumber->minor, _modelName, _modelNumber,
_base, _mac[0], _mac[1], _mac[2], _mac[3], _mac[4], _mac[5], _base, _mac[0], _mac[1], _mac[2], _mac[3], _mac[4], _mac[5],
(uint8_t)(ip & 0xFF), (uint8_t)((ip >> 8) & 0xFF), (uint8_t)((ip >> 16) & 0xFF), (uint8_t)((ip >> 24) & 0xFF) (uint8_t)(ip & 0xFF), (uint8_t)((ip >> 8) & 0xFF), (uint8_t)((ip >> 16) & 0xFF), (uint8_t)((ip >> 24) & 0xFF)
); );
@ -179,7 +178,7 @@ void SSDPClass::schema(WiFiClient client){
_presentationURL, _presentationURL,
_serialNumber, _serialNumber,
_modelName, _modelName,
_modelNumber->major, _modelNumber->minor, _modelNumber,
_modelURL, _modelURL,
_manufacturer, _manufacturer,
_manufacturerURL, _manufacturerURL,
@ -300,9 +299,8 @@ void SSDPClass::setModelName(char *name){
strcpy(_modelName, name); strcpy(_modelName, name);
} }
void SSDPClass::setModelNumber(uint8_t major, uint8_t minor){ void SSDPClass::setModelNumber(char *num){
_modelNumber->major = major; strcpy(_modelNumber, num);
_modelNumber->minor = minor;
} }
void SSDPClass::setModelURL(char *url){ void SSDPClass::setModelURL(char *url){

View File

@ -41,7 +41,7 @@ License (MIT license):
#define SSDP_PRESENTATION_URL_SIZE 32 #define SSDP_PRESENTATION_URL_SIZE 32
#define SSDP_MODEL_NAME_SIZE 32 #define SSDP_MODEL_NAME_SIZE 32
#define SSDP_MODEL_URL_SIZE 32 #define SSDP_MODEL_URL_SIZE 32
#define SSDP_MODEL_VERSION_SIZE 2 #define SSDP_MODEL_VERSION_SIZE 32
#define SSDP_MANUFACTURER_SIZE 32 #define SSDP_MANUFACTURER_SIZE 32
#define SSDP_MANUFACTURER_URL_SIZE 32 #define SSDP_MANUFACTURER_URL_SIZE 32
@ -51,12 +51,6 @@ typedef enum {
NOTIFY NOTIFY
} ssdp_method_t; } ssdp_method_t;
typedef struct {
uint8_t major;
uint8_t minor;
} ssdp_version_t;
class SSDPClass{ class SSDPClass{
public: public:
SSDPClass(); SSDPClass();
@ -71,7 +65,7 @@ class SSDPClass{
void setURL(char *url); void setURL(char *url);
void setSerialNumber(char *serialNumber); void setSerialNumber(char *serialNumber);
void setModelName(char *name); void setModelName(char *name);
void setModelNumber(uint8_t major, uint8_t minor); void setModelNumber(char *num);
void setModelURL(char *url); void setModelURL(char *url);
void setManufacturer(char *name); void setManufacturer(char *name);
void setManufacturerURL(char *url); void setManufacturerURL(char *url);
@ -92,7 +86,7 @@ class SSDPClass{
char *_manufacturerURL; char *_manufacturerURL;
char *_modelName; char *_modelName;
char *_modelURL; char *_modelURL;
ssdp_version_t *_modelNumber; char *_modelNumber;
}; };
extern SSDPClass SSDP; extern SSDPClass SSDP;

View File

@ -38,7 +38,7 @@ void setup() {
SSDP.setSerialNumber((char*)"A0123456789"); SSDP.setSerialNumber((char*)"A0123456789");
SSDP.setURL((char*)"/"); SSDP.setURL((char*)"/");
SSDP.setModelName((char*)"ESP-12e"); SSDP.setModelName((char*)"ESP-12e");
SSDP.setModelNumber(1, 0); SSDP.setModelNumber((char*)"1.0");
SSDP.setModelURL((char*)"http://12e.espressif.com"); SSDP.setModelURL((char*)"http://12e.espressif.com");
SSDP.setManufacturer((char*)"Espressif"); SSDP.setManufacturer((char*)"Espressif");
SSDP.setManufacturerURL((char*)"http://espressif.com"); SSDP.setManufacturerURL((char*)"http://espressif.com");