cli324 tablet pc platform advanced topics software design engineer/test lead [email protected]

39
CLI324 CLI324 Tablet PC Platform Tablet PC Platform Advanced Topics Advanced Topics Software Design Engineer/Test Software Design Engineer/Test Lead Lead [email protected] [email protected]

Upload: emily-stevens

Post on 27-Dec-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com

CLI324CLI324

Tablet PC Platform Tablet PC Platform Advanced TopicsAdvanced Topics

Software Design Engineer/Test LeadSoftware Design Engineer/Test [email protected]@microsoft.com

Page 2: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com

MManagementanagementTToolsools

CCommunicationsommunications& & MMessagingessaging

Device Update Agent

Software Update Services

Live Communications Server

Exchange Server

Internet Security and Acceleration Server

Speech Server

Image Update

LLocation ocation SServiceservices

MMultimediaultimedia

MapPoint

DirectX

Windows Media

Visual Studio 2005DDevelopment evelopment TToolsools

MFC 8.0, ATL 8.0

Win32NNativeative

MManagedanaged

SServer erver SSideide

LLightweightightweight

RRelationalelationalSQL Server 2005 Express EditionEDB

DDa

taata

PPro

gra

mm

ing

ro

gra

mm

ing

MM

od

el

od

el

DDevice evice BBuilding uilding TToolsools

HHardware/ardware/DDriversrivers

Windows XP DDK

Windows Embedded Studio

Platform Builder

OEM/IHV SuppliedBSP

(ARM, SH4, MIPS)OEM Hardware and Standard Drivers

Standard PC Hardware and Drivers

SQL Server 2005SQL Server 2005 Mobile Edition

ASP.NET Mobile Controls ASP.NET

.NET Compact Framework .NET Framework

Microsoft Operations Manager

Systems Management Server

Page 3: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com

TopicsTopics

Overview of the Tablet SDK Overview of the Tablet SDK

Tablet Hardware APITablet Hardware API

Gesture SupportGesture Support

RealTimeStylus Plug-in Interfaces RealTimeStylus Plug-in Interfaces

Journal Note ReaderJournal Note Reader

Questions and AnswersQuestions and Answers

Page 4: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com

Ink ObjectInk Object

Primary Data Object in the Primary Data Object in the Tablet PlatformTablet Platform

Container for:Container for:Stroke dataStroke data

MetadataMetadata

Controls all means of persistenceControls all means of persistence

Extensible via ExtendedProperties Extensible via ExtendedProperties collectioncollection

Page 5: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com

Stroke ObjectStroke Object

Represents a single strokeRepresents a single strokeSingle pen down, pen move, pen up sequenceSingle pen down, pen move, pen up sequence

ExtendedPropertiesExtendedPropertiesAllows applications to access and store Allows applications to access and store custom datacustom data

DrawingAttributesDrawingAttributesControls the rendering of the strokeControls the rendering of the stroke

Rich API Rich API PacketData, BezierPoints, PacketData, BezierPoints,

PolylineCusps, SelfIntersectionsPolylineCusps, SelfIntersections

Page 6: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com

Strokes CollectionsStrokes Collections

What are Stroke collections?What are Stroke collections?Collections of references to strokesCollections of references to strokes

Not the stroke data itselfNot the stroke data itself

Important so you can pass a subset to the Important so you can pass a subset to the RecognizersRecognizers

Stroke Collections can share strokesStroke Collections can share strokesBoth Stroke collections include Stroke 3Both Stroke collections include Stroke 3

Strokes

Stroke (1)

Strokes

Stroke (2) Stroke (3) Stroke (4) Stroke (5)

Page 7: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com

Recognizer ContextRecognizer Context

Object for accessing handwriting Object for accessing handwriting recognizersrecognizers

Binds ink data to a particular language Binds ink data to a particular language for recognitionfor recognition

Performs synchronous or Performs synchronous or asynchronous handwriting recognitionasynchronous handwriting recognition

Recognition results and Recognition results and alternates returnedalternates returned

Attributes used to bias Attributes used to bias recognition resultsrecognition results

Page 8: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com

Tablet PC Platform Tablet PC Platform Hardware APIHardware API

Page 9: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com

Examining Tablet HardwareExamining Tablet Hardware

Electromagnetic digitizersElectromagnetic digitizersHigh resolution, High throughputHigh resolution, High throughput

There are two types of digitizersThere are two types of digitizersIntegrated and Non-IntegratedIntegrated and Non-Integrated

Multiple Digitizers are supportedMultiple Digitizers are supportedThe mouse is also represented as a digitizerThe mouse is also represented as a digitizer

Digitizers support various capabilitiesDigitizers support various capabilities# of stylus buttons, pressure, angle or rotation # of stylus buttons, pressure, angle or rotation attributesattributes

Ink Stroke PacketData varies between digitizersInk Stroke PacketData varies between digitizers

Page 10: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com

Tablet Hardware APITablet Hardware API

TabletTabletObject representation of a digitizerObject representation of a digitizer

Query for digitizer’s supported properties Query for digitizer’s supported properties

Get property metricsGet property metricse.g.: How many levels of pressure are e.g.: How many levels of pressure are supported?supported?

TabletsTabletsReturns collection of all connected Returns collection of all connected digitizersdigitizers

Including the mouseIncluding the mouse

Page 11: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com

Tablet Hardware API Tablet Hardware API ContinuedContinued

CursorCursorRepresents a stylusRepresents a stylus

Allows for access to stylus propertiesAllows for access to stylus propertiesInverted, Button state, NameInverted, Button state, Name

Available in all InkCollector/Overlay Available in all InkCollector/Overlay eventsevents

CursorInRange / CursorOut0fRangeCursorInRange / CursorOut0fRange

CursorDown / CursorUpCursorDown / CursorUp

CursorsCursorsCollection of Cursor objectsCollection of Cursor objects

Page 12: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com

Gesture SupportGesture Support

Page 13: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com

GesturesGestures

Collected through InkCollector, Collected through InkCollector, InkOverlay, or RealTimeStylusInkOverlay, or RealTimeStylus

Two Types: System or ApplicationTwo Types: System or Application

System GesturesSystem GesturesMimic mouse eventsMimic mouse events

Cannot be disabledCannot be disabled

Application GesturesApplication GesturesCan be single or multi-strokeCan be single or multi-stroke

Can be turned on/off individuallyCan be turned on/off individually

Page 14: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com

System GesturesSystem Gestures

Available GesturesAvailable GesturesTap Tap

DoubleTapDoubleTap

RightTapRightTap

DragDrag

RightDragRightDrag

HoldEnterHoldEnter

HoverEnterHoverEnter

HoverLeaveHoverLeave

Coordinates are Window CoordinatesCoordinates are Window Coordinates

Can’t be cancelled Can’t be cancelled

Page 15: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com

Application GesturesApplication Gestures

CollectionMode determines supportCollectionMode determines supportInkOnlyInkOnly

InkAndGestureInkAndGesture

GestureOnlyGestureOnly

Single versus Multi-Stroke GesturesSingle versus Multi-Stroke Gestures

Inform your users about gesture Inform your users about gesture supportsupport

Good UI feedbackGood UI feedback

Consistent use (i.e. Scratchout)Consistent use (i.e. Scratchout)

Page 16: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com

GesturesGestures

Focus: Scenario driven – Focus: Scenario driven – don’t over usedon’t over use

Page 17: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com

RealTimeStylus Plug-in RealTimeStylus Plug-in InterfacesInterfaces

Page 18: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com

RealTimeStylusRealTimeStylus

1.1. PerformancePerformanceDe-couples rendering and collection of inkDe-couples rendering and collection of ink

2.2. FlexibilityFlexibilityYou can control exactly how and when the You can control exactly how and when the ink is collected and renderedink is collected and rendered

3.3. ExtensibleExtensibleYou can create your own plug-ins to render You can create your own plug-ins to render and collect inkand collect ink

Page 19: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com

RealTimeStylusRealTimeStylus

1.1. PerformancePerformanceGives you the opportunity to ensure users Gives you the opportunity to ensure users see no lag when creating inksee no lag when creating ink

Collection of stylus input is moved off the Collection of stylus input is moved off the UI thread and is collected asynchronouslyUI thread and is collected asynchronously

Provides direct access to stylus input Provides direct access to stylus input eveneven before it is renderedbefore it is rendered

Queued events allow for separation of Real Queued events allow for separation of Real Time Collection thread and UI threadTime Collection thread and UI thread

Minimizes thread usage Minimizes thread usage (From 5 per instance to (From 5 per instance to 1 per process)1 per process)

Page 20: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com

RealTimeStylusRealTimeStylus

Focus: No lag renderingFocus: No lag rendering

Page 21: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com

RealTimeStylusRealTimeStylus

2.2. FlexibilityFlexibilityPlug-in based architecturePlug-in based architecture

You determine how you render and collect You determine how you render and collect ink based on which plug-ins you chooseink based on which plug-ins you choose

Plug-ins can be dynamically added, Plug-ins can be dynamically added, removed or re-orderedremoved or re-ordered

Page 22: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com

RealTimeStylusRealTimeStylus

3.3. ExtensibleExtensibleAllows for the creation of new Real Time Allows for the creation of new Real Time componentscomponents

Custom dynamic rendering, gesture Custom dynamic rendering, gesture recognition, disabled regions, etc.recognition, disabled regions, etc.

Customize your ink collection and Customize your ink collection and rendering to suit your needrendering to suit your need

Page 23: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com

Architecture (Overview)Architecture (Overview)

Pen Service

RealTimePlugIn(IStylusSyncPlugin)

RealTimeStylus

queue

RealTimePlugIn(IStylusSyncPlugin)

“Inking” Thread UI Thread

Ink CollectingObject

(IStylusAsyncPlugin)

storage

InkCollector

Page 24: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com

RealTimeStylus Plug-insRealTimeStylus Plug-ins

Object that implements a synchronous or Object that implements a synchronous or asynchronous interfaceasynchronous interface

SyncPlugin: fast custom renderingSyncPlugin: fast custom renderingAsyncPlugin: ink data collectionAsyncPlugin: ink data collection

Can manipulate packet dataCan manipulate packet dataRead, Modify, Add, or IgnoreRead, Modify, Add, or Ignore

Tablet OS includes two plug-insTablet OS includes two plug-insDynamic RenderingDynamic RenderingGesture Recognition Gesture Recognition

SDK includes two sample plug-insSDK includes two sample plug-insCustom RenderingCustom RenderingConstrained RegionConstrained Region

Page 25: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com

RealTimeStylus PluginRealTimeStylus Plugin

Focus:Focus:Flexibility in rendering ink Flexibility in rendering ink Flexibility in collecting stroke dataFlexibility in collecting stroke data

Page 26: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com

Journal Note ReaderJournal Note Reader

Page 27: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com

Journal Note ReaderJournal Note Reader

Provides Read-only access to Journal Provides Read-only access to Journal NotesNotes

Exposes all attributes in Journal filesExposes all attributes in Journal filesInk, Images, Title, Stationary, etc.Ink, Images, Title, Stationary, etc.

Enables your application to consume common Enables your application to consume common note filesnote files

JNT file is presented as an XML JNT file is presented as an XML documentdocument

Native and Managed versionsNative and Managed versions

DDownloadownload as an SDK update as an SDK update

Page 28: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com

Converting Journal NotesConverting Journal Notes

Ink object can save to Ink Serialized Ink object can save to Ink Serialized Format (ISF) or GIFFormat (ISF) or GIF

You may want to view ink on other You may want to view ink on other platforms (Pocket PC)platforms (Pocket PC)

Choose a format that is vector based so Choose a format that is vector based so the rich scalability of ink is preservedthe rich scalability of ink is preserved

Page 29: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com

Journal Reader With Journal Reader With Ink DividerInk Divider

Focus:Focus:Easy to consume Journal filesEasy to consume Journal files

Page 30: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com

MEDC Mobile PC TalksMEDC Mobile PC Talks

CLI204 - Tablet PC Development OverviewCLI204 - Tablet PC Development Overview

Speaker – Dave HaleSpeaker – Dave Hale

Time – Tuesday 5/10 11:30 AMTime – Tuesday 5/10 11:30 AM

CLI208 – Anywhere Access to DataCLI208 – Anywhere Access to Data

Speaker – Markus EggerSpeaker – Markus Egger

Time – Tuesday 5/10 3:00 PMTime – Tuesday 5/10 3:00 PM

CLI324 – Advanced Tablet PC Development TopicsCLI324 – Advanced Tablet PC Development Topics

Speaker – Todd LandstadSpeaker – Todd Landstad

Time – Wednesday 5/11 8:00 AMTime – Wednesday 5/11 8:00 AM

CLI205 – Basic Considerations for Mobile PC DevelopmentCLI205 – Basic Considerations for Mobile PC Development

Speaker – Michelle McKelveySpeaker – Michelle McKelvey

Time – Wednesday 5/11 11:30 AMTime – Wednesday 5/11 11:30 AM

CLI329 – Network AwarenessCLI329 – Network Awareness

Speaker – Dr. Neil RoodynSpeaker – Dr. Neil Roodyn

Time – Thursday 5/12 8:00 AMTime – Thursday 5/12 8:00 AM

Page 31: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com

Mobile Hands On Labs Mobile Hands On Labs At MEDCAt MEDC

Building Network-Aware Mobile PC Building Network-Aware Mobile PC ApplicationsApplications

Build a network-aware application using the Build a network-aware application using the Windows Network Location Awareness (NLA) APIWindows Network Location Awareness (NLA) API

Building Power-Aware Mobile PC ApplicationsBuilding Power-Aware Mobile PC ApplicationsLearn how to tune your applications to save power, Learn how to tune your applications to save power, extend battery life, and enhance the user's mobile extend battery life, and enhance the user's mobile PC experiencePC experience

Building Managed Applications with Microsoft Building Managed Applications with Microsoft Windows XP Tablet PC SDK Windows XP Tablet PC SDK

Create a cool Tablet application using the Windows Create a cool Tablet application using the Windows XP Tablet PC Edition SDK 1.7XP Tablet PC Edition SDK 1.7

Page 32: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com

The Tablet And Mobile The Tablet And Mobile PC Developer CenterPC Developer Centerhttp://msdn.microsoft.com/mobilepchttp://msdn.microsoft.com/mobilepc

Page 33: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com

Tablet PC Developer CenterTablet PC Developer Center

The latest technical articlesThe latest technical articles

DownloadsDownloads

Developer resourcesDeveloper resources

Regular columnsRegular columns

..

NewsgroupsNewsgroups

Featured partnersFeatured partners

and more…and more…

Page 34: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com

Attend a free chat or web castAttend a free chat or web casthttp://www.microsoft.com/communities/chats/default.mspxhttp://www.microsoft.com/communities/chats/default.mspx http://www.microsoft.com/usa/webcasts/default.asp http://www.microsoft.com/usa/webcasts/default.asp

List of newsgroupsList of newsgroupshttp://communities2.microsoft.com/communities/newsgroups/en-us/default.aspxhttp://communities2.microsoft.com/communities/newsgroups/en-us/default.aspx

MS Community SitesMS Community Siteshttp://www.microsoft.com/communities/default.mspx http://www.microsoft.com/communities/default.mspx

Locate Local User Groups and Community SitesLocate Local User Groups and Community Siteshttp://www.microsoft.com/communities/usergroups/default.mspx http://www.microsoft.com/communities/usergroups/default.mspx http://www.microsoft.com/communities/related/default.mspxhttp://www.microsoft.com/communities/related/default.mspx

Page 35: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com

While at MEDC 2005…While at MEDC 2005…Fill outFill out an evaluation for this session an evaluation for this session

Randomly selected instant Randomly selected instant WINWIN prizes! prizes!

Use Use real technology in a labreal technology in a lab Instructor led Instructor led Reef E/FReef E/F & & Breakers LBreakers L

Self-paced Self-paced Reef B/CReef B/C

VisitVisit the Microsoft Product Pavilion the Microsoft Product Pavilion

in the Exhibit Hall in the Exhibit Hall Shorelines BShorelines B

Page 36: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com

After The Conference…After The Conference…

DevelopDevelop

BuildBuild

InstallInstall

BuildBuild

JoinJoin

InstallInstall

EnterEnter

JoinJoin

Full-featured trial versions of Windows CE Full-featured trial versions of Windows CE and/or Windows XP Embeddedand/or Windows XP Embedded

Cool stuff & tell us about it: Cool stuff & tell us about it: msdn.microsoft.com/embedded/community msdn.microsoft.com/embedded/community

Windows Embedded Partner Program:Windows Embedded Partner Program:www.mswep.com www.mswep.com

Windows Mobile 5.0 Eval Kit including Windows Mobile 5.0 Eval Kit including Visual Studio 2005 Beta 2Visual Studio 2005 Beta 2

Mobile2Market Contest and win up to $25000: Mobile2Market Contest and win up to $25000: mobile2marketcontest.com mobile2marketcontest.com

Microsoft Solutions Partner Program:Microsoft Solutions Partner Program:partner.microsoft.com partner.microsoft.com

Page 37: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com

Tools & ResourcesTools & Resources

msdn.microsoft.com/msdn.microsoft.com/ embeddedembedded

microsoft.public.microsoft.public. windowsxp.embeddedwindowsxp.embedded windowsce.platbuilderwindowsce.platbuilder windowsce.embedded.vcwindowsce.embedded.vc

blogs.msdn.com/blogs.msdn.com/ mikehallmikehall

Windows CE 5.0 Eval KitWindows CE 5.0 Eval KitWindows XP Embedded Eval KitWindows XP Embedded Eval Kit

msdn.microsoft.com/msdn.microsoft.com/ mobilitymobility

microsoft.public.microsoft.public. pocketpc.developer pocketpc.developer smartphone.developer smartphone.developer dotnet.framework.compactframeworkdotnet.framework.compactframework

blogs.msdn.com/blogs.msdn.com/ windowsmobilewindowsmobile vsdteamvsdteam netcfteamnetcfteam

Windows Mobile 5.0 Eval KitWindows Mobile 5.0 Eval Kit

WebsitesWebsites

NewsgroupsNewsgroups

BlogsBlogs

ToolsTools

BuildBuild DevelopDevelop

Page 38: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com
Page 39: CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead toddLand@microsoft.com

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