46
Technical introduction to the new Windows Embedded CE 6.0 R3 Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Embed Size (px)

Citation preview

Page 1: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Technical introduction to the new Windows Embedded CE 6.0 R3

Pierre Cauchois - Dion HutchingsTechnical EvangelistsMicrosoft CorporationSession code: EMB301

Page 2: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

IntroducingWindows Embedded CE 6.0 R3

Page 3: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Agenda

Silverlight for Windows EmbeddedInternet Explorer EmbeddedAdobe FlashLite® 3.1.0Touch and GesturesConnection ManagerMicrosoft Office® and PDF ViewersBSPsQ&A

Page 4: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

What is CE 6.0 ?Windows Embedded CE 6.0 is NOT

Windows Mobile 6.0 (based on CE 5.0)

Windows Embedded CE 6.0 is…32-bit, real-time, multitasking OSHighly componentized (~700 components in CE 6.0)

Delivered as a granular set of componentsUse CE 6.0 Platform Builder tools to configure image

ScalableFootprint scales with functionality selected

Wide variety of CPU supportRuns on x86, ARM, MIPS and SH4

Page 5: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Silverlight for Windows Embedded

NowThird Era:

User Experiences (UX)

Engaging, touch sensitivegraphical

environmentswith video and sound

1990sSecond Era:

Graphical User Interfaces

Point-and-click

1970sFirst Era:

Command Line

Type

The Evolution of User Interface Design

Consumers buy based on your product’s UX, not specs. The next-generation cell phones and media players changed the playing field.

Page 6: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Silverlight for Windows Embedded

Technology formerly know as “Alchemy”

Native C++ application model

H/W acceleration

Subset of Silverlight 2.0

Shells and Application UIs

Expression Blend same tool for all Silverlight Designers

Page 7: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Silverlight for Windows Embeddeddemo

Page 8: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Silverlight Application Architecture

Application

XAML

Resources (Images,

Fonts)

Custom Controls

Silverlight Runtime

Silverlight Core

Rendering Engine

Platform Plug-in

(OpenGL ES 2.0, DDraw,

GDI, OpenVG )

Display Driver (BSP)

Page 9: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Silverlight App Development

Create a regular C++ applicationSubprojectSmart device project

Multiple ways to deploy XAML on deviceBoiler Plate Code is code common between all Silverlight for Windows Embedded Apps in WinMain

Page 10: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Silverlight for Windows Embedded Devdemo

Page 11: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Hardware Optimized for Silverlight

CacheMode="BitmapCache“Rasterizing phase skipped of cached object when

No direct change to attributes like width, height, brushes etcTransformations applied as opposed to changing baseline attributes

Hardware acceleration is achieved with transformations applied to cached objects by OpenGL or DirectDraw or other via Render Plug-In

Page 12: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Internet Explorer

Embedded

Page 13: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Backward compatibility with R2 IE 6.0 Control

Modified and optimized to support Panning and Zooming

Optimized Java script engine performance

Internet Explorer Embedded

Page 14: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

IE Embedded Architecture

Browser user interface (Silverlight or GDI)

Browser host

Silverlight for Windows Embedded

CWebBrowser wrapper of MSHTML

Silverlight rendering plug-in

OEM display driver (OpendGL, Ddraw, GDI,

etc.)

TileProxy interface

Tiling engine

Tiling engine rendering interface

Tiling engine rendering plug-in (OpenGL or Ddraw)

MSHTML engine

Public code

Privatecode

Optional

Page 15: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Tile Engine Overview

Panning and zooming

Hardware acceleration

Decouples user interaction and HTML page rendering

Breaks HTML page into an array of tiles

Page 16: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Tile size automatically calculated according to screen size and orientation

Tile Engine

Customizable to balance between performance and memory consumption

[HKEY_Local_Machine\Software\Microsoft\Internet Explorer\TileEngine\CachedScreen]default=4

Page 17: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Tile Engine

When user pans the web page to move left

When user zooms the page out

Page 18: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Consistent UI with Silverlight

Update existing controls or add new controls

No C++ code change neededControl types and x:names

must remain the same

Customizing IE Embedded UI

Page 19: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Internet Explorer Embeddeddemo

Page 20: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Flash control in-line is replaced with an icon image. Eg.

When user clicks the image, a new IE 6.0 control

window pops up

The flash playing window doesn’t support panning

and zooming

Flash Lite 3.1.0 Integration

Page 21: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Touch and Gestures

Page 22: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Touch and Gestures

Built-in recognizers for pan and flick gestures

Allows developers to define their own gestures

Gestures can be animated in the UI Framework

Scrollable Win32 controls can be made gesture-aware

Page 23: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Architecture

PhysicsEngine.dll

TouchUtil.lib

Touch.dll

TouchRecognizer.dll

OEM Recognizer.dll

Applications

GWES.dll

GestureAnimation.lib

TouchGesture.lib

Page 24: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Gesture App Dev

Silverlight for Windows EmbeddedSYSGEN_TOUCHGESTURE

Win32WS_HSCROLL or WS_VSCROLL stylesCall SetWindowAutoGesture(hWnd, lpAutoGestureInfo)

User ControlsHandle WndProc messages for (GID_PAN, GID_END) & GID_SCROLL

Page 25: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Custom Gesture Recognizer

Create a DLL that exports the following two functions:Init(void): Call RegisterGesture()

RecognizeGesture(pInputs, cInputs)

[HKLM\System\GWE\Recognizers\RecognizerName] “Dll” = “RecognizerName.DLL” “Index” = DWORD:1 “Order” = DWORD:0

Page 26: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Physics Engine

The physics engine calculates well-defined animation points in response to a touch gesture

The physics engine generates a stream of animation points given initial velocity, angle and boundary conditions.

Include SYSGEN_PHYSICSENGINE (as well as SYSGEN_TOUCHGESTURE)

Page 27: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Default Gesture Animations

There are two ways to tweak the animation. You can set different tweaks for X-Axis and Y-Axis

DecelerationPHYSICSENGINE_MOVEMENT_MODE_DECELERATE

BoundaryPHYSICSENGINE_BOUNDARY_MODE_NONEPHYSICSENGINE_BOUNDARY_MODE_RUBBERBANDPHYSICSENGINE_BOUNDARY_MODE_BOUNCE

Page 28: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Connection Manager

Page 29: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Connection Manager

Invariably more than one physical network interface

Single API to request network connection

XML driven provisioning

Application doesn’t have to understand how these connections are established

If multiple connection requests, Connection Manager adds each request to a list and then establishes highest priority connection

Page 30: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Architecture

Connection Manager

Application Application Application

Connection Planner

(ConnPlan.dll)ConnMgr.exe

RAS Connection

Service Provider

(CSPRas.dll)

Bluetooth Connection

Service Provider

(CSPBToice.dll)

Net Connection

Service Provider

(CSPNet.dll)

RAS Winsock

PPP TAPI AutoBind LSP

GPRS Bluetooth Stack WLAN USB

Application requesting a connection

Connection manager private OS component

Networking private OS component

Device driverBluetooth Enabled Device

Wireless Internet

Wireless Internet

Wireless Internet

Wireless Internet

Page 31: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

OS Design Development

Set up all connections for the devicesInclude entries for each connection in provision.xml, the WAP provisioning docDuring device startup, process the provisioning doc by calling DMProcessConfigXML(…)

Page 32: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Setup a Network Connection

The basic steps to set up a network connection:

1. Create a variable IsConnected2. Fill a CONNMGR_CONNECTIONINFO structure3. Create a connection request:

• For an asynchronous request ConnMgrEstablishConnection()

• For a synchronous request ConnMgrEstablishConnectionSync()

4. When the connection succeeds, set IsConnected to true

Page 33: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Handling Connection NotificationsAn application can query the connection status at any time by calling ConnMgrConnectionStatus(hConnection, pdwStatus)The preferred approach is to add message-handling code for WM_CONNECTIONSTATE into your WndProc.Connection Manager reports the following states

CONNMGR_STATUS_DISCONNECTEDCONNMGR_STATUS_SUSPENDEDCONNMGR_STATUS_CONNECTIONCANCELEDCONNMGR_STATUS_CONNECTIONDISABLEDCONNMGR_STATUS_WAITINGCONNECTIONCONNMGR_STATUS_WAITINGDISCONNECTION

Page 34: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Office and PDF Viewers

Page 35: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Office & PDF Viewers

Microsoft Confidential – NDA Only

Installs as a 3rd party .msi

Appears in Platform Builder catalogue

4 viewer applications

Word 97-2003 and 2007

PowerPoint 97-2003 and 2007

Excel97-2003 and 2007

Adobe PDF

Page 36: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Office & PDF Viewers

Multiple document tabbed interfaceFull Screen or Windowed modeToolbars for navigation and zoomBookmarks pane for navigation to bookmarksLocalized into all Platform Builder supported languagesContains supporting files for PDF (Chinese, Japanese and Korean)

Microsoft Confidential – NDA Only36

Page 37: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

BSP Changes Required

There are no BSP changes required for Windows Embedded CE 6.0 R3

Add Render Plug-ins support for Silverlight and IE Embedded Tile Engine to take advantage of OpenGL or other h/w graphics library

Microsoft Confidential – NDA Only37

Page 38: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Toolkit Installation

Vista SP

SP1

SP1

Third Party Components

Ord

er

*

Page 39: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Summary

Deliver rich, immersive and differentiated UXs with Silverlight and Gestures Faster and Easier

Richer browsing experience with IE Embedded

Single API to manage multiple connections

Page 40: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Call to Action

Attend the other great breakout sessions

Try out the HOLs next door

HOLs will be posted online

Page 41: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Breakout Sessions

Windows Embedded Standard and POSReadyEMB303: Windows Embedded Standard 2011: How to Embed Windows 7 into DevicesEMB309: Create a Multitouch and Gesture Aware Device Using Windows Embedded Standard 2011EMB308: Componentization Architecture in Windows Embedded Standard 2011EMB306: Using Windows PowerShell on Windows Embedded StandardEMB302: Deploying Windows Embedded with StyleEMB203: Using Windows Deployment Services And Microsoft System Center To Deploy And Manage A Point-of-Service (POS)

Windows Embedded CEEMB307: Windows Embedded CE6.0: Tools and Techniques to Face the Embedded Development ChallengesEMB201: Windows Embedded CE and ConnectivityEMB305: From Expression Blend to Windows Embedded CE: build the UI of next generation devices

GeneralEMB202: What a desktop developer needs to know to develop for Windows EmbeddedEMB304: Windows Embedded: from sensors to serversEMB310: Windows Embedded: "Demos only“

Page 42: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

HOLs, Interactive, Sunday and Demo Sessions

Sunday and Demo SessionEMB101-SUN: Windows Embedded101EMB01-Demo: Embedding Windows Seven into devices

Hands On LabHigher Fidelity internet experience with Internet Explorer EmbeddedIntroduction to Connection ManagerCreating a custom Windows Embedded Standard 2011 operating system image for an applicationNew Servicing and Deployment Scenarios in Windows Embedded Standard 2011 Embedded Enabling Features in Windows Embedded Standard 2011 Configuring and Using PowerShell to Manage Windows Embedded Standard 2011 Devices

Interactive sessionsEMB01-IS: Delivering Applications as AppliancesEMB02-IS: Windows for Devices: Learn about the Future of Windows EmbeddedEMB03-IS: The Schtick: Solving Real-Time Challenges, connectivity and GUI with Windows Embedded CEEMB04-IS: Deploying and maintaining Windows Embedded Standard with different

Page 43: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Useful URLs

Otherhttp://windowsfordevices

Blogshttp://blogs.msdn.com/oblochhttp://blogs.msdn.com/mikehallhttp://blogs.msdn.com/jcoyne

Microsoft Web siteshttp://windowsembedded.comhttp://msdn.microsoft.com/en-us/windowsembedded/ce/default.aspxhttp://msdn.microsoft.com/en-us/windowsembedded/standard/default.aspxhttp://technet.microsoft.com/en-us/windowsembedded/posready/default.aspx

Page 44: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Q&A

Page 45: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

Complete an evaluation on CommNet and enter to win an Xbox 360 Elite!

Page 46: Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301

© 2009 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.