Pierre Cauchois - Dion Hutchings Technical Evangelists Microsoft Corporation Session code: EMB301 R3
Download ReportTranscript 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.