1 / 35

SDKs and Tools - Speed up your Development -

SDKs and Tools - Speed up your Development -. Bob Van Andel President, Allegro Software Bryan Roe Senior Software Engineer, Intel. Overview. SDK and Toolkits overview Intel Development Tools for UPnP ™ technology Allegro SDK presentation Q & A.

ena
Download Presentation

SDKs and Tools - Speed up your Development -

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SDKs and Tools - Speed up your Development - Bob Van Andel President, Allegro Software Bryan Roe Senior Software Engineer, Intel

  2. Overview • SDK and Toolkits overview • Intel Development Tools for UPnP™ technology • Allegro SDK presentation • Q & A

  3. SDKs and ToolkitsGetting you to market faster • Available for most processors • Available for most RTOS environments • Saves Building Core Technology • Shared Code Base means • Stronger Interoperability • More Engineering resources available • User Interface • Product Differentiation

  4. General Purpose SDKs • Work with Forum provided templates • Create your own templates • Provide strong foundation • Requires device specific code • Requires some SOAP/XML/HTTP knowledge • Allegro - RomPlug • Intel - Device Builder

  5. Application Specific SDKs • Include “digested” Forum templates • Reduces need for SOAP/XML/HTTP knowledge • Provides Application Specific API above UPnP™ Core • IGD Toolkits • Allegro - RomPlug IGD • Jungo - OpenRG

  6. Application Specific SDKs • AV Toolkits • Allegro - RomPlug IGD • Digital5 - D5 AV • Intel - AV Microstacks • Mediabolic - Mediabolic One • Oregan - Digital Media Platform • Simple Devices - SimpleWare

  7. SDK Vendor Questions • Where is the code base used? • What processors/RTOS are supported? • How do I get support? • Can I get source code? • Monolithic vs. Integrated components • Other vendor products?

  8. UPnP™ Test ToolsMaking sure your product works • UIC Certification Test Tool • Intel Test Tools • Device Spy • Device Sniffer • Device Validator • AV Media Controller • Network Light • etc.

  9. Intel Development Tools for UPnP™ Technology • Device Spy - Universal Control Point • Device Sniffer - SSDP Network Monitor • Device Validator - Device Validation • Device Author - Authoring tool for UPnP Description Documents • Device Relay - Interact with your device from a remote location • Device Builder - Generate custom code for your specific device and/or control point

  10. Allegro UPnP SDKs

  11. Allegro Foundation Toolkits • Strong Field-Proven Implementations • Shipping since 1996 • > 200 Customers (Cisco, D-Link, HP, etc.) • > 5,000,000 deployed devices • ANSI-C Source Code • Compact Resource Utilization • Any processor > 16bit addressing • Any RTOS with TCP stack

  12. Allegro Foundation Toolkits • RomPager Web Server Family • RomWebClient HTTP client Family • RomXML - Micro XML Parser/Framer • RomMailer/RomPOP - Email Clients • RomTLS - SSL Server/Client • RomSSH - SSH Server • RomCLI - Telnet and Command Line

  13. UPnP™ Technology • 0 - Automatic Address Assignment • 1 - Discover (SSDP) • 2 - Description (XML/HTTP) • 3 - Control (SOAP/XML/HTTP) • 4 - Eventing (GENA/HTTP) • 5 - Presentation (HTML/HTTP) • 6 - Application (IGD, AV, Printer, HA, etc.)

  14. RomPlug™ General Toolkits • Basic UPnP™ Device • Simple Discovery, Description, Presentation • No SOAP, or XML parsing required • Advanced UPnP™ Device • Full UPnP Implementation • Includes Web Server/Client, XML, SOAP • UPnP™ Control Point • Full UPnP Implementation • Includes Web Server/Client, XML, SOAP

  15. RomPlug Basic Device • Allows Windows Users to Find and Control a device using Internet Explorer • Discovery Services (SSDP) • Description / Presentation w/RomPager • Adds Small Footprint (5Kb) to WebServer • Simple API • Supports UPnP™ Basic Device Description • No Services

  16. RomPlug Advanced Device • Discovery, Description, Presentation • Adds Control and Eventing Services • Hides complexity of underlying protocols • Includes Web Server/ Client and XML • Includes PlugBuilder template compiler • Small Runtime Footprint (<100Kb for IGD) • Sample Templates for devices

  17. RomPlug Advanced Process Flow

  18. PlugBuilder Template Compiler • Used with RomPlug Advanced/Control • Compiles unmodified Forum or other UPnP templates • Uses PlugBuilder.xml to specify • Description value overrides • Service and Event URLs • Service Actions

  19. PlugBuilder.xml Example <a:RomPlug xmlns:a="urn:schemas-allegro-com:romplug-toolkit-1-0"> <Support>Advanced</Support> <DeviceDescription file=”Description.xml”> <device id=”1234”> <serialNumber> <a:GetData Access="Direct" AccessPtr="gDeviceSerialNumber" DataType="String"> </serialNumber> <UDN> <a:GetData Prefix=“uuid:” AccessType="Direct" AccessPtr="gRootDeviceUdn" DataType="String"> </UDN> </device> </DeviceDescription> <ServiceDescription type="urn:schemas-upnp-org:service:serviceType:v” file=”Services.xml” > <action name=”DoSomething” handler=”MyDoSomethingAction” /> <action name=”DoSomethingElse” handler=”MyDoSomethingElseAction” /> </ServiceDescription> </a:RomPlug>

  20. RomPlug Advanced - Action API typedef struct { Unsigned16 fServiceIndex; void * fInArgPtr; /* Argument list for Action */ void * fOutArgPtr; /* Normal Reply Arguments */ upnpErrorBody * fErrorPtr; char * fNamePtr; /* Action Name */ } rpSoapActionArg, *rpSoapActionArgPtr; typedef enum { eSoapCompleteOk, eSoapPending, eSoapCompleteErr } rpSoapResponse; static rpSoapResponse MyDoSomethingAction(void *theTaskDataPtr, rpSoapActionArgPtr theActionArgPtr);

  21. RomPlug Advanced - Eventing API extern Boolean RuPublishUpnpEvent(void *theTaskDataPtr, Unsigned16 theServiceId, Unsigned16 theServiceIndex, char **theVarList, Unsigned16 theVarListLength); • Automatic Subscription Management • Variable values retrieved • Notify message created • Individual Subscribers notified

  22. RomPlug Control • Discovery, Description, Control, Events • Hides complexity of underlying protocols • Includes PlugBuilder compiler • Search/Listen for UPnP™ Devices • Retrieve and Parse Device/Service Description • Control UPnP™ Device with Actions • Subscribe and Receive Events

  23. RomPlug Control - Device Search typedef enum { eCpReportAll, eCpReportRoot, eCpReportDevice, eCpReportUPnPDeviceType, eCpReportDomainDeviceType, } cpFilterType; extern cpSearchStatus CpInitSearch(void * theTaskPointer, cpFilterType theSearchTarget, char * theSearchData, Unsigned8 theXmitCount, Unsigned8 theXmitPeriod, Unsigned8 theTimeToLive, cpSearchCompletionFuncPtr theSearchCompletionPtr, void * theCookie); typedef void (*cpSearchCompletionFuncPtr)(cpSearchStatus theStatus, void * theCookie, cpDiscoveryInfoPtr theDiscoveryInfoPtr);

  24. RomPlug Control - Device Listen void CpRegisterSsdpListener(void *theTaskDataPtr, cpSsdpListenerFuncPtr theListenerFuncPtr); ypedef enum { eCpSsdpAlive, eCpSsdpBye, eCpSsdpExpired } cpSsdpNotifyStatus; typedef void (*cpSsdpListenerFuncPtr)(cpSsdpNotifyStatus theStatus, cpDiscoveryInfoPtr theDiscoveryInfoPtr);

  25. RomPlug Control - Get Description extern cpGetStatus CpGetDeviceDescription(void *theTaskDataPtr, cpDevicePtr theDevicePtr, void * theParsedDataBufferPtr, Unsigned32 theParsedDataBufferSize, CpGetCompletionFuncPtr theCompletionFunctionPtr, void * theCookie); typedef void (*cpGetCompletionFuncPtr)(cpGetStatus theStatus, cpRootDeviceDataPtr theRootDataPtr, Unsigned32 theDataSize, void * theCookie); • Integrated Retrieval • HTTP Client Retrieves Descriptions • XML Parser turns into C structures

  26. RomPlug Control - Actions void CpInvokeAction(void * theTaskDataPtr, cpDeviceDataPtr theDeviceDataPtr, char * theServiceIdPtr, char * theActionName, void * theActionArgsPtr, void * theActionResponsePtr, cpActionCompletionPtr theCompletionFuncPtr, void * theCookie); typedef void (*cpActionCompletionPtr)(cpActionStatus theStatus, void * theCookie, cpActionErrorInfoPtr theErrorInfoPtr); • Application provides Action Arguments • UPnP™ Control builds XML/SOAP request • HTTP Client Sends/Retrieves SOAP request • UPnP™ Control parses XML/SOAP response

  27. RomPlug Control - Event Handling cpSubStatus CpSubscribe(void * theTaskDataPtr, cpDeviceDataPtr theDeviceDataPtr, char * theServiceIdPtr, Unsigned16 theDeviceInstanceIndex, Unsigned16 theServiceInstanceIndex, cpSubNotificationFuncPtr theNotificationFuncPtr, void * theCookie); typedef void (*cpSubNotificationFuncPtr)(cpSubStatus theStatus, void *theSubscription, void *theCookie); • Integrated Event Handling • Application provides Variable Action routines • HTTP Server receives Event Notification • RomXML Parses Event Variables • Variable sent to Variable Action routines

  28. RomPlug Application Toolkits • Built on UPnP Forum Templates • Additional High-Level APIs to simplify device creation • Hides UPnP™ Core APIs (SOAP, XML, etc.) • RomPlug IGD • Configurable Device Types • Grouped Actions (POTS, PPP, DSL, etc.) • Sample SOAP actions for Address Assign, Interface Configuration, Port Mapping, etc.

  29. UPnP™ AV Architecture Media Controller UPnP AV Actions and Events Media Server Media Renderer Digital Media Stream

  30. RomPlug Media Server • High-Level APIs • Content Directory Service • Connection Manager Service • AV Transport Service • DIDL Support • General Database Support • HTTP Streaming Support with dynamic buffer insertion

  31. RomPlug Media Renderer • High-Level APIs • Rendering Control Service • Connection Manager Service • AV Transport Service • HTTP Streaming Support with dynamic buffer retrieval • Trick mode (FF, Skip, etc. ) support

  32. RomPlug Media Controller • High-Level APIs • Content Directory Actions • Rendering Control Actions • Connection Manager Actions • AV Transport Actions • DIDL Support • Event Management • Streaming Control

  33. RomPlug Toolkits • RomPlug Basic Device • RomPlug Advanced Device • RomPlug Control • RomPlug IGD • RomPlug Media Server • RomPlug Media Renderer • RomPlug Media Controller

  34. RomPlug UPnP™ SDKs THANK YOU!

  35. Foundation of the Connected Home

More Related