Upnp example emulating a Wemo switch
This commit is contained in:
parent
e17b1a5db6
commit
3c050bc4d1
8 changed files with 778 additions and 0 deletions
53
examples/upnp/httpd.c
Normal file
53
examples/upnp/httpd.c
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
#include <lwip/api.h>
|
||||
#include <string.h>
|
||||
#include <espressif/esp_common.h>
|
||||
|
||||
void httpd_task(void *pvParameters)
|
||||
{
|
||||
struct netconn *client = NULL;
|
||||
struct netconn *nc = netconn_new(NETCONN_TCP);
|
||||
if (nc == NULL) {
|
||||
printf("Failed to allocate socket\n");
|
||||
vTaskDelete(NULL);
|
||||
}
|
||||
netconn_bind(nc, IP_ADDR_ANY, 80);
|
||||
netconn_listen(nc);
|
||||
while (1) {
|
||||
err_t err = netconn_accept(nc, &client);
|
||||
if (err == ERR_OK) {
|
||||
struct netbuf *nb;
|
||||
if ((err = netconn_recv(client, &nb)) == ERR_OK) {
|
||||
struct sdk_station_config config;
|
||||
sdk_wifi_station_get_config(&config);
|
||||
char * buf =
|
||||
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\
|
||||
<root>\
|
||||
<device>\
|
||||
<deviceType>urn:Belkin:device:controllee:1</deviceType>\
|
||||
<friendlyName>hello</friendlyName>\
|
||||
<manufacturer>Belkin International Inc.</manufacturer>\
|
||||
<modelName>Emulated Socket</modelName>\
|
||||
<modelNumber>3.1415</modelNumber>\
|
||||
<UDN>uuid:Socket-1_0-38323636-4558-4dda-9188-cda0e6cc3dc0</UDN>\
|
||||
<serialNumber>221517K0101769</serialNumber>\
|
||||
<binaryState>0</binaryState>\
|
||||
<serviceList>\
|
||||
<service>\
|
||||
<serviceType>urn:Belkin:service:basicevent:1</serviceType>\
|
||||
<serviceId>urn:Belkin:serviceId:basicevent1</serviceId>\
|
||||
<controlURL>/upnp/control/basicevent1</controlURL>\
|
||||
<eventSubURL>/upnp/event/basicevent1</eventSubURL>\
|
||||
<SCPDURL>/eventservice.xml</SCPDURL>\
|
||||
</service>\
|
||||
</serviceList>\
|
||||
</device>\
|
||||
</root>";
|
||||
netconn_write(client, buf, strlen(buf), NETCONN_COPY);
|
||||
}
|
||||
netbuf_delete(nb);
|
||||
}
|
||||
printf("Closing connection\n");
|
||||
netconn_close(client);
|
||||
netconn_delete(client);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue