-
-
Notifications
You must be signed in to change notification settings - Fork 346
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature: Simple Service Discovery Protocol (SSDP) #2114
Conversation
38e2b25
to
17c4b3b
Compare
@mikee47 Can you help me improve the memory usage in the SSDP component? I will use the proposed changes from you not only to improve this component but also to create a small document describing best practises in improving memory usage. |
460ef50
to
337128e
Compare
@slaff You may want to take a look at https://github.com/mikee47/Sming-UPnP which |
@mikee47 Let's merge your UpnP stuff then? |
@slaff OK, There's four separate libraries in Sming-UPnP: |
The names of the components look good to me :)
…On Fri, 16 Oct 2020, 19:17 Mike, ***@***.***> wrote:
@slaff <https://github.com/slaff> OK, There's four separate libraries in
Sming-UPnP: RapidXML, SSDP, UPnP and HueEmulator so I'll split them out
with those names. Let me know if you'd prefer different ones?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#2114 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAB4NHH5VJTFWENBCJRRDE3SLB52TANCNFSM4STJF3TA>
.
|
Closing in favour of the more advanced PR #2115. |
The framework contains three libraries: * RapidXML: Parsing, serialising and de-serialising XML data * SSDP: Simple Service Discovery Protocol server * UPnP: Framework to build UPnP compliant device stacks. Written from scratch with reference to the documented standards. The `Basic_UPnP` sample gives an idea of what can be done. See the library README for further details, The main purpose for this library was to provide an Alexa-compatible interface. It was important to provide a smooth end-user experience so that device discovery is reliable and painless. As such, device discovery and presentation is essentially complete, tested and working. Also included is the `Basic_Alexa` sample with `HueEmulator` library. Devices will appear in Windows explorer under 'Network'. You can find more comprehensive test tools at https://www.meshcommander.com/upnptools (Windows only - _Device Spy_ is the most interesting! See #2114 README for notes on testing in Linux. Both samples will run in Host emulator mode. Additional changes: * Add `isLocal()` methods to AccessPoint & Station classes * Add additional toString() functions/methods * Make SMING_ARCH available to code and use it to generate Hue device names * HTTP Headers Add `Accept` to standard header fields Move HTTP header field name handling into separate unit, and add BasicHttpHeaders * Fix HTTP content type field parsing May contain spaces which must be removed, for example: CONTENT-TYPE: text/xml ; charset="utf-8"\r\n Also map `application/xml` (as well as `text/xml`) to `MIME_XML` * Fix LimitedMemoryStream, and add `getStreamPointer` method Attempting to write data larger than available space discards all of it. Correct behaviour is to write as much as possible, but still discard the remainder. Also, seek operation (for reading) is now bi-directional between the start of the buffer and the current write position.
Initial implementation for service discovery in Sming. Can be used to announce service(s) and search based on searchType (deviceType). Comes with an example that demonstrates a simple workflow.