Upload
edmund-thomas
View
221
Download
1
Tags:
Embed Size (px)
Citation preview
Technical introduction to the new Windows Embedded CE 6.0 R3
Pierre Cauchois - Dion HutchingsTechnical EvangelistsMicrosoft CorporationSession code: EMB301
IntroducingWindows Embedded CE 6.0 R3
Agenda
Silverlight for Windows EmbeddedInternet Explorer EmbeddedAdobe FlashLite® 3.1.0Touch and GesturesConnection ManagerMicrosoft Office® and PDF ViewersBSPsQ&A
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
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.
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
Silverlight for Windows Embeddeddemo
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)
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
Silverlight for Windows Embedded Devdemo
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
Internet Explorer
Embedded
Backward compatibility with R2 IE 6.0 Control
Modified and optimized to support Panning and Zooming
Optimized Java script engine performance
Internet Explorer Embedded
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
Tile Engine Overview
Panning and zooming
Hardware acceleration
Decouples user interaction and HTML page rendering
Breaks HTML page into an array of tiles
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
Tile Engine
When user pans the web page to move left
When user zooms the page out
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
Internet Explorer Embeddeddemo
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
Touch and Gestures
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
Architecture
PhysicsEngine.dll
TouchUtil.lib
Touch.dll
TouchRecognizer.dll
OEM Recognizer.dll
Applications
GWES.dll
GestureAnimation.lib
TouchGesture.lib
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
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
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)
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
Connection Manager
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
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
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(…)
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
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
Office and PDF Viewers
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
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
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
Toolkit Installation
Vista SP
SP1
SP1
Third Party Components
Ord
er
*
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
Call to Action
Attend the other great breakout sessions
Try out the HOLs next door
HOLs will be posted online
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“
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
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
Q&A
Complete an evaluation on CommNet and enter to win an Xbox 360 Elite!
© 2009 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.