sdks and tools - speed up your development - bob van andel president, allegro software bryan roe...
TRANSCRIPT
![Page 1: SDKs and Tools - Speed up your Development - Bob Van Andel President, Allegro Software Bryan Roe Senior Software Engineer, Intel](https://reader036.vdocuments.us/reader036/viewer/2022062320/56649d205503460f949f4e6b/html5/thumbnails/1.jpg)
SDKs and Tools- Speed up your Development -
Bob Van AndelPresident, Allegro Software
Bryan RoeSenior Software Engineer, Intel
![Page 2: SDKs and Tools - Speed up your Development - Bob Van Andel President, Allegro Software Bryan Roe Senior Software Engineer, Intel](https://reader036.vdocuments.us/reader036/viewer/2022062320/56649d205503460f949f4e6b/html5/thumbnails/2.jpg)
Overview SDK and Toolkits overview
Intel Development Tools for UPnP™ technology
Allegro SDK presentation
Q & A
![Page 3: SDKs and Tools - Speed up your Development - Bob Van Andel President, Allegro Software Bryan Roe Senior Software Engineer, Intel](https://reader036.vdocuments.us/reader036/viewer/2022062320/56649d205503460f949f4e6b/html5/thumbnails/3.jpg)
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
![Page 4: SDKs and Tools - Speed up your Development - Bob Van Andel President, Allegro Software Bryan Roe Senior Software Engineer, Intel](https://reader036.vdocuments.us/reader036/viewer/2022062320/56649d205503460f949f4e6b/html5/thumbnails/4.jpg)
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
![Page 5: SDKs and Tools - Speed up your Development - Bob Van Andel President, Allegro Software Bryan Roe Senior Software Engineer, Intel](https://reader036.vdocuments.us/reader036/viewer/2022062320/56649d205503460f949f4e6b/html5/thumbnails/5.jpg)
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
![Page 6: SDKs and Tools - Speed up your Development - Bob Van Andel President, Allegro Software Bryan Roe Senior Software Engineer, Intel](https://reader036.vdocuments.us/reader036/viewer/2022062320/56649d205503460f949f4e6b/html5/thumbnails/6.jpg)
Application Specific SDKs
AV Toolkits Allegro - RomPlug IGD Digital5 - D5 AV Intel - AV Microstacks Mediabolic - Mediabolic One Oregan - Digital Media Platform Simple Devices - SimpleWare
![Page 7: SDKs and Tools - Speed up your Development - Bob Van Andel President, Allegro Software Bryan Roe Senior Software Engineer, Intel](https://reader036.vdocuments.us/reader036/viewer/2022062320/56649d205503460f949f4e6b/html5/thumbnails/7.jpg)
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?
![Page 8: SDKs and Tools - Speed up your Development - Bob Van Andel President, Allegro Software Bryan Roe Senior Software Engineer, Intel](https://reader036.vdocuments.us/reader036/viewer/2022062320/56649d205503460f949f4e6b/html5/thumbnails/8.jpg)
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.
![Page 9: SDKs and Tools - Speed up your Development - Bob Van Andel President, Allegro Software Bryan Roe Senior Software Engineer, Intel](https://reader036.vdocuments.us/reader036/viewer/2022062320/56649d205503460f949f4e6b/html5/thumbnails/9.jpg)
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
![Page 10: SDKs and Tools - Speed up your Development - Bob Van Andel President, Allegro Software Bryan Roe Senior Software Engineer, Intel](https://reader036.vdocuments.us/reader036/viewer/2022062320/56649d205503460f949f4e6b/html5/thumbnails/10.jpg)
Allegro UPnP SDKs
![Page 11: SDKs and Tools - Speed up your Development - Bob Van Andel President, Allegro Software Bryan Roe Senior Software Engineer, Intel](https://reader036.vdocuments.us/reader036/viewer/2022062320/56649d205503460f949f4e6b/html5/thumbnails/11.jpg)
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
![Page 12: SDKs and Tools - Speed up your Development - Bob Van Andel President, Allegro Software Bryan Roe Senior Software Engineer, Intel](https://reader036.vdocuments.us/reader036/viewer/2022062320/56649d205503460f949f4e6b/html5/thumbnails/12.jpg)
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
![Page 13: SDKs and Tools - Speed up your Development - Bob Van Andel President, Allegro Software Bryan Roe Senior Software Engineer, Intel](https://reader036.vdocuments.us/reader036/viewer/2022062320/56649d205503460f949f4e6b/html5/thumbnails/13.jpg)
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.)
![Page 14: SDKs and Tools - Speed up your Development - Bob Van Andel President, Allegro Software Bryan Roe Senior Software Engineer, Intel](https://reader036.vdocuments.us/reader036/viewer/2022062320/56649d205503460f949f4e6b/html5/thumbnails/14.jpg)
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
![Page 15: SDKs and Tools - Speed up your Development - Bob Van Andel President, Allegro Software Bryan Roe Senior Software Engineer, Intel](https://reader036.vdocuments.us/reader036/viewer/2022062320/56649d205503460f949f4e6b/html5/thumbnails/15.jpg)
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
![Page 16: SDKs and Tools - Speed up your Development - Bob Van Andel President, Allegro Software Bryan Roe Senior Software Engineer, Intel](https://reader036.vdocuments.us/reader036/viewer/2022062320/56649d205503460f949f4e6b/html5/thumbnails/16.jpg)
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
![Page 17: SDKs and Tools - Speed up your Development - Bob Van Andel President, Allegro Software Bryan Roe Senior Software Engineer, Intel](https://reader036.vdocuments.us/reader036/viewer/2022062320/56649d205503460f949f4e6b/html5/thumbnails/17.jpg)
RomPlug Advanced Process Flow
PlugBuilder UPnP Compiler
Compiler, Linker, etc.
PlugBuild.xml Device.xml Services.xml
Boot Image
SSDP Control Tables Device.c, Device_v.c Services.c Action Templates Event Templates
![Page 18: SDKs and Tools - Speed up your Development - Bob Van Andel President, Allegro Software Bryan Roe Senior Software Engineer, Intel](https://reader036.vdocuments.us/reader036/viewer/2022062320/56649d205503460f949f4e6b/html5/thumbnails/18.jpg)
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
![Page 19: SDKs and Tools - Speed up your Development - Bob Van Andel President, Allegro Software Bryan Roe Senior Software Engineer, Intel](https://reader036.vdocuments.us/reader036/viewer/2022062320/56649d205503460f949f4e6b/html5/thumbnails/19.jpg)
<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>
PlugBuilder.xml Example
![Page 20: SDKs and Tools - Speed up your Development - Bob Van Andel President, Allegro Software Bryan Roe Senior Software Engineer, Intel](https://reader036.vdocuments.us/reader036/viewer/2022062320/56649d205503460f949f4e6b/html5/thumbnails/20.jpg)
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);
RomPlug Advanced - Action API
![Page 21: SDKs and Tools - Speed up your Development - Bob Van Andel President, Allegro Software Bryan Roe Senior Software Engineer, Intel](https://reader036.vdocuments.us/reader036/viewer/2022062320/56649d205503460f949f4e6b/html5/thumbnails/21.jpg)
RomPlug Advanced - Eventing API
Automatic Subscription Management Variable values retrieved Notify message created Individual Subscribers notified
extern Boolean RuPublishUpnpEvent(void *theTaskDataPtr, Unsigned16 theServiceId, Unsigned16 theServiceIndex,char **theVarList, Unsigned16 theVarListLength);
![Page 22: SDKs and Tools - Speed up your Development - Bob Van Andel President, Allegro Software Bryan Roe Senior Software Engineer, Intel](https://reader036.vdocuments.us/reader036/viewer/2022062320/56649d205503460f949f4e6b/html5/thumbnails/22.jpg)
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
![Page 23: SDKs and Tools - Speed up your Development - Bob Van Andel President, Allegro Software Bryan Roe Senior Software Engineer, Intel](https://reader036.vdocuments.us/reader036/viewer/2022062320/56649d205503460f949f4e6b/html5/thumbnails/23.jpg)
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);
RomPlug Control - Device Search
![Page 24: SDKs and Tools - Speed up your Development - Bob Van Andel President, Allegro Software Bryan Roe Senior Software Engineer, Intel](https://reader036.vdocuments.us/reader036/viewer/2022062320/56649d205503460f949f4e6b/html5/thumbnails/24.jpg)
void CpRegisterSsdpListener(void *theTaskDataPtr, cpSsdpListenerFuncPtr theListenerFuncPtr); ypedef enum {
eCpSsdpAlive,eCpSsdpBye,eCpSsdpExpired
} cpSsdpNotifyStatus;
typedef void (*cpSsdpListenerFuncPtr)(cpSsdpNotifyStatus theStatus, cpDiscoveryInfoPtr theDiscoveryInfoPtr);
RomPlug Control - Device Listen
![Page 25: SDKs and Tools - Speed up your Development - Bob Van Andel President, Allegro Software Bryan Roe Senior Software Engineer, Intel](https://reader036.vdocuments.us/reader036/viewer/2022062320/56649d205503460f949f4e6b/html5/thumbnails/25.jpg)
RomPlug Control - Get Description
Integrated Retrieval HTTP Client Retrieves Descriptions XML Parser turns into C structures
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);
![Page 26: SDKs and Tools - Speed up your Development - Bob Van Andel President, Allegro Software Bryan Roe Senior Software Engineer, Intel](https://reader036.vdocuments.us/reader036/viewer/2022062320/56649d205503460f949f4e6b/html5/thumbnails/26.jpg)
RomPlug Control - Actions
Application provides Action Arguments
UPnP™ Control builds XML/SOAP request
HTTP Client Sends/Retrieves SOAP request
UPnP™ Control parses XML/SOAP response
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);
![Page 27: SDKs and Tools - Speed up your Development - Bob Van Andel President, Allegro Software Bryan Roe Senior Software Engineer, Intel](https://reader036.vdocuments.us/reader036/viewer/2022062320/56649d205503460f949f4e6b/html5/thumbnails/27.jpg)
RomPlug Control - Event Handling
Integrated Event Handling Application provides Variable Action
routines HTTP Server receives Event Notification RomXML Parses Event Variables Variable sent to Variable Action routines
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);
![Page 28: SDKs and Tools - Speed up your Development - Bob Van Andel President, Allegro Software Bryan Roe Senior Software Engineer, Intel](https://reader036.vdocuments.us/reader036/viewer/2022062320/56649d205503460f949f4e6b/html5/thumbnails/28.jpg)
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.
![Page 29: SDKs and Tools - Speed up your Development - Bob Van Andel President, Allegro Software Bryan Roe Senior Software Engineer, Intel](https://reader036.vdocuments.us/reader036/viewer/2022062320/56649d205503460f949f4e6b/html5/thumbnails/29.jpg)
UPnP™ AV Architecture
MediaController
MediaServer
MediaRenderer
UPnP AV Actions and Events
Digital Media Stream
![Page 30: SDKs and Tools - Speed up your Development - Bob Van Andel President, Allegro Software Bryan Roe Senior Software Engineer, Intel](https://reader036.vdocuments.us/reader036/viewer/2022062320/56649d205503460f949f4e6b/html5/thumbnails/30.jpg)
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
![Page 31: SDKs and Tools - Speed up your Development - Bob Van Andel President, Allegro Software Bryan Roe Senior Software Engineer, Intel](https://reader036.vdocuments.us/reader036/viewer/2022062320/56649d205503460f949f4e6b/html5/thumbnails/31.jpg)
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
![Page 32: SDKs and Tools - Speed up your Development - Bob Van Andel President, Allegro Software Bryan Roe Senior Software Engineer, Intel](https://reader036.vdocuments.us/reader036/viewer/2022062320/56649d205503460f949f4e6b/html5/thumbnails/32.jpg)
RomPlug Media Controller High-Level APIs
Content Directory Actions
Rendering Control Actions
Connection Manager Actions
AV Transport Actions
DIDL Support
Event Management
Streaming Control
![Page 33: SDKs and Tools - Speed up your Development - Bob Van Andel President, Allegro Software Bryan Roe Senior Software Engineer, Intel](https://reader036.vdocuments.us/reader036/viewer/2022062320/56649d205503460f949f4e6b/html5/thumbnails/33.jpg)
RomPlug Toolkits RomPlug Basic Device
RomPlug Advanced Device
RomPlug Control
RomPlug IGD
RomPlug Media Server
RomPlug Media Renderer
RomPlug Media Controller
![Page 34: SDKs and Tools - Speed up your Development - Bob Van Andel President, Allegro Software Bryan Roe Senior Software Engineer, Intel](https://reader036.vdocuments.us/reader036/viewer/2022062320/56649d205503460f949f4e6b/html5/thumbnails/34.jpg)
RomPlug UPnP™ SDKs
THANK YOU!
![Page 35: SDKs and Tools - Speed up your Development - Bob Van Andel President, Allegro Software Bryan Roe Senior Software Engineer, Intel](https://reader036.vdocuments.us/reader036/viewer/2022062320/56649d205503460f949f4e6b/html5/thumbnails/35.jpg)
Foundation of the Connected Home