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

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

Transcript of SDKs and Tools - Speed up your Development - Bob Van Andel President, Allegro Software Bryan Roe...

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

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.

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.

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.

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.

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.

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.

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.

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.

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.

Allegro UPnP SDKs

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

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.

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.

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.

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.

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.

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.

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.

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.

<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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

Foundation of the Connected Home