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

Download Report

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

Pierre Cauchois - Dion Hutchings
Technical Evangelists
Microsoft Corporation
Session code: EMB301
R3
Agenda
Silverlight for Windows Embedded
Internet Explorer Embedded
Adobe FlashLite® 3.1.0
Touch and Gestures
Connection Manager
Microsoft Office® and PDF Viewers
BSPs
Q&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 OS
Highly componentized (~700 components in CE
6.0)
Delivered as a granular set of components
Use CE 6.0 Platform Builder tools to
configure image
Scalable
Footprint scales with functionality selected
Wide variety of CPU support
Runs on x86, ARM, MIPS and SH4
Silverlight for Windows Embedded
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 Embedded
Silverlight Application Architecture
Application
Resources
(Images, Fonts)
XAML
Custom
Controls
Silverlight Runtime
Silverlight Core
Rendering
Engine
Platform Plug-in
(OpenGL ES
2.0, DDraw,
GDI, OpenVG )
Win32
GDI
Display Driver (BSP)
Silverlight App Development
Create a regular C++ application
Subproject
Smart device project
Multiple ways to deploy XAML on device
Boiler Plate Code is code common between all
Silverlight for Windows Embedded Apps in
WinMain
Silverlight for Windows Embedded Dev
Hardware Optimized for Silverlight
CacheMode="BitmapCache“
Rasterizing phase skipped of cached object when
No direct change to attributes like width, height, brushes etc
Transformations 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
Internet Explorer Embedded
Backward compatibility with R2 IE 6.0 Control
Modified and optimized to support
Panning and Zooming
Optimized Java script
engine performance
IE Embedded Architecture
Browser user interface (Silverlight or GDI)
Browser host
TileProxy interface
CWebBrowser wrapper
of MSHTML
Silverlight for
Windows Embedded
Tiling engine
Tiling engine
rendering interface
MSHTML engine
Public
code
Private
code
Tiling engine rendering plug-in
(OpenGL or Ddraw)
Optional
Silverlight rendering plug-in
OEM display driver
(OpendGL, Ddraw, GDI, etc.)
Tile Engine Overview
Panning and zooming
Hardware acceleration
Decouples user interaction and
HTML page rendering
Breaks HTML page into an array of tiles
Tile Engine
Customizable to balance
between performance and
memory consumption
Tile size automatically
calculated according to
screen size and orientation
[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
Customizing IE Embedded UI
Consistent UI with Silverlight
Update existing controls
or add new controls
No C++ code change needed
Control types and x:names
must remain the same
Internet Explorer Embedded
Flash Lite 3.1.0 Integration
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
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
Applications
GWES.dll
PhysicsEngine.dll
GestureAnimation.lib
TouchUtil.lib
TouchRecognizer.dll
TouchGesture.lib
OEM Recognizer.dll
Touch.dll
Gesture App Dev
Silverlight for Windows Embedded
SYSGEN_TOUCHGESTURE
Win32
WS_HSCROLL or WS_VSCROLL styles
Call SetWindowAutoGesture(hWnd, lpAutoGestureInfo)
User Controls
Handle 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
Deceleration
PHYSICSENGINE_MOVEMENT_MODE_DECELERATE
Boundary
PHYSICSENGINE_BOUNDARY_MODE_NONE
PHYSICSENGINE_BOUNDARY_MODE_RUBBERBAND
PHYSICSENGINE_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
Application
Application
ConnMgr.exe
RAS
Connection
Service
Provider
(CSPRas.dll)
RAS
Bluetooth
Connection
Service
Provider
(CSPBToice.dll)
Net Connection
Service
Provider
(CSPNet.dll)
Connection
manager
private OS
component
Winsock
PPP
Wireless
Internet
Application
requesting a
connection
Connection Manager
Connection
Planner
(ConnPlan.dll)
GPRS
Application
TAPI
Bluetooth Stack
Bluetooth
Enabled
Device
Wireless
Internet
Networking
private OS
component
AutoBind LSP
WLAN
Wireless
Internet
USB
Wireless
Internet
Device driver
OS Design Development
Set up all connections for the devices
Include entries for each connection in
provision.xml, the WAP provisioning doc
During 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 IsConnected
2. Fill a CONNMGR_CONNECTIONINFO structure
3. 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 Notifications
An 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_DISCONNECTED
CONNMGR_STATUS_SUSPENDED
CONNMGR_STATUS_CONNECTIONCANCELED
CONNMGR_STATUS_CONNECTIONDISABLED
CONNMGR_STATUS_WAITINGCONNECTION
CONNMGR_STATUS_WAITINGDISCONNECTION
Office and
PDF Viewers
Office & PDF Viewers
Installs as a 3rd party .msi
Appears in Platform Builder catalogue
4 viewer applications
Word
97-2003
and 2007
PowerPoint
97-2003
and 2007
Excel
97-2003
and 2007
Microsoft Confidential – NDA Only
Adobe PDF
Office & PDF Viewers
Multiple document tabbed interface
Full Screen or Windowed mode
Toolbars for navigation and zoom
Bookmarks pane for navigation to bookmarks
Localized into all Platform Builder
supported languages
Contains supporting files for PDF (Chinese, Japanese
and Korean)
36
Microsoft Confidential – NDA Only
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
37
Microsoft Confidential – NDA Only
Toolkit Installation
*
Order
Third Party Components
SP1
Vista SP
SP1
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
General
EMB202: What a desktop developer needs to know to develop for Windows Embedded
EMB304: Windows Embedded: from sensors to servers
EMB310: Windows Embedded: "Demos only“
Windows Embedded CE
EMB307: Windows Embedded CE6.0: Tools and Techniques to Face the Embedded Development
Challenges
EMB201: Windows Embedded CE and Connectivity
EMB305: From Expression Blend to Windows Embedded CE: build the UI of next generation devices
Windows Embedded Standard and POSReady
EMB303: Windows Embedded Standard 2011: How to Embed Windows 7 into Devices
EMB309: Create a Multitouch and Gesture Aware Device Using Windows Embedded Standard
2011
EMB308: Componentization Architecture in Windows Embedded Standard 2011
EMB306: Using Windows PowerShell on Windows Embedded Standard
EMB302: Deploying Windows Embedded with Style
EMB203: Using Windows Deployment Services And Microsoft System Center To Deploy And
Manage A Point-of-Service (POS)
HOLs, Interactive, Sunday and Demo Sessions
Interactive sessions
EMB01-IS: Delivering Applications as Appliances
EMB02-IS: Windows for Devices: Learn about the Future of Windows Embedded
EMB03-IS: The Schtick: Solving Real-Time Challenges, connectivity and GUI with Windows
Embedded CE
EMB04-IS: Deploying and maintaining Windows Embedded Standard with different
Hands On Lab
Higher Fidelity internet experience with Internet Explorer Embedded
Introduction to Connection Manager
Creating a custom Windows Embedded Standard 2011 operating system image for an application
New 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
Sunday and Demo Session
EMB101-SUN: Windows Embedded101
EMB01-Demo: Embedding Windows Seven into devices
Useful URLs
Microsoft Web sites
http://windowsembedded.com
http://msdn.microsoft.com/en-us/windowsembedded/ce/default.aspx
http://msdn.microsoft.com/en-us/windowsembedded/standard/default.aspx
http://technet.microsoft.com/en-us/windowsembedded/posready/default.aspx
Blogs
http://blogs.msdn.com/obloch
http://blogs.msdn.com/mikehall
http://blogs.msdn.com/jcoyne
Other
http://windowsfordevices
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.