Microsoft Surface Simulator is a Microsoft Windows application. You can use Surface Simulator together with Microsoft Visual C# 2008 Express Edition (or Microsoft Visual Studio 2008) to test Microsoft Surface applications on a separate workstation. Surface Simulator runs the applications and enables you to use a mouse or mice to simulate finger, blob, and tagged-object contacts, like the contacts that a user uses on a Microsoft Surface unit.
Surface Simulator replicates the user interface and behavior of a Microsoft Surface unit that is in user mode. Surface Simulator has access points, Launcher, and the loading screen. When you start an application in Surface Simulator, the application displays like it is on a Microsoft Surface unit.
You can use Surface Simulator to evaluate how an application and its user interface respond to basic input. For example, if you simulate a painting application and if you touch multiple colors, one at a time, and then add the colors to a mixing bucket, you can test the logic of the application and how well it mixes the colors by using the touch-based interface.
Surface Simulator runs with the appearance and functionality of a Microsoft Surface unit in user mode (the way that it appears to users). You can switch applications by using Launcher and the access points that display on the Launcher screen and the applications.
Surface Shell is always turned on when you use Surface Simulator, so you see the attract application and Launcher (if you have touched an access point on the attract application to start Launcher).
Microsoft Surface Simulator uses a 1024 × 768 simulation region to display Microsoft Surface applications. In this simulation region, Surface Simulator interprets mouse inputs as types of contacts (fingers, blobs, gestures, or tagged objects).
You do not have to have Microsoft Visual C# 2008 Express Edition (or Microsoft Visual Studio 2008) running when you start Surface Simulator. However, if Visual C# 2008 (or Visual Studio 2008) is running when you start Surface Simulator, make sure that you start Surface Simulator before you start a Microsoft Surface application from Visual C# 2008 (or Visual Studio 2008).
You must run Surface Simulator at the same privilege level as Visual C# 2008 (or Visual Studio 2008). If you start Visual C# 2008 (or Visual Studio 2008) as Administrator, you must also start Surface Simulator as Administrator. If you start Visual C# 2008 (or Visual Studio 2008) as a User, you must also start Surface Simulator as a User.
To start Surface Simulator, click Start, click All Programs, click Microsoft Surface SDK 1.0 SP1, click Tools, and then click Surface Simulator.
You can start a Microsoft Surface application from one of the following locations:
This section describes the types of Microsoft Surface contacts you can use in Surface Simulator and describes Surface Simulator's interface.
Surface Simulator enables you to use a mouse to simulate three types of Microsoft Surface input:
The following illustrations show the Surface Simulator interface with an attract application.
Surface Simulator interface includes the following pieces. (The numbers in the previous illustrations correspond to the numbers in the following list.)
This section describes how to work with Microsoft Surface contacts in Surface Simulator.
In the upper-left corner of the Surface Simulator window, you can use the buttons to simulate the different types of Microsoft Surface input (finger, blob, and tagged object). A contact is an instance of an input type that is interacting with the simulated region.
To simulate contact input, do the following:
You can also click the Contact Selector button and then select a contact on the simulated Microsoft Surface screen and drag it across the screen.
To simulate more than one contact, you can connect additional mice to your computer's USB ports.
A Surface Simulator contact can appear in one of the following states:
This section describes how to use Surface Simulator controls and contacts.
Click the Contact Selector button (or press CTRL+S) to choose the Contact Selector tool. You can then select contacts that are already placed in the simulation region by doing one of the following:
You can remove selected contacts by using the DELETE key.
For examples of multitouch gestures that you can simulate by using Contact Selector, see Common Microsoft Surface Actions in Surface Simulator.
Click the Finger button (or press CTRL+F) and then click in the active area to simulate a finger contact in the application. You can also click the Finger button and then drag it in the active area to simulate a dragging gesture across the application.
Press-and-hold the left mouse button and then right-click to place a finger contact, which leaves a finger pressed in that location of the application. You might use this procedure to press multiple controls at the same time (for example, buttons or pieces of content), to press-and-hold a control, or to anchor part of an interface. For example, you might use this procedure to hold a corner of a photo and then use the mouse to rotate the photo by interacting with the other corner.
Click the Blob button (or press CTRL+B) to simulate an arbitrary ellipse shape. This button works the same way as the Finger button. You might want to use blob input when users are pressing different parts of their hands on the surface. For example, if a user leaves a handprint on the screen, the application might need to receive blob input.
Click the Tag button (or press CTRL+T).
Click Tag Value, and enter the hexadecimal value you want.
Click the active area to simulate an object that is touching the screen and lifting up.
Press-and-hold in the active area, and then right-click to place the tagged object.
You can leave unlimited tagged-object contacts on the application. The Shopping Cart sample application demonstrates the code to use tagged-object contacts.
Click the Tag Value box and enter a valid hexadecimal value ("00" through "FF") for a tagged object.
Click the Identity Tag button (or press CTRL+I).
Click the Series box, and enter the hexadecimal series value that you want ("0000000000000000" through "7FFFFFFFFFFFFFFF").
Click the Value box, and enter the hexadecimal value that you want ("0000000000000000" through "7FFFFFFFFFFFFFFF").
Click the Identity Tag Series or Identity Tag Value boxes, and enter a valid hexadecimal value ("0000000000000000" through "7FFFFFFFFFFFFFFF") for a tagged object.
Click the Remove All Contacts button to remove all contacts that you have placed in the active area of the Surface Simulator window. You can also press the Delete key to remove all currently selected contacts. Click the Hide/Show Contacts button to hide all your placed contacts or to show all the contacts that you have hidden. These features enable you to clear any extra contacts from the user interface.
The following table shows the corresponding mouse actions in Surface Simulator for common actions on a Microsoft Surface unit. Some of these actions are also listed in the preceding sections.
Select a contact type (finger, blob, or tagged object).
Click the appropriate icon in the upper-left corner of the Surface Simulator window.
Simulate a tagged object by using a byte tag with a specific value.
Simulate a tagged object by using an identity tag with a specific series and value.
Modify the size or orientation of a blob contact before placing it.
Modify the size or orientation of a placed blob contact.
Touch the screen with finger.
Click the Finger button, and then click the active area.
Press a finger on the screen and hold indefinitely (place a finger contact).
Press-and-hold the Finger contact, and then right-click.
Drag a finger on the screen.
Press-and-hold, and then drag the Finger contact.
Drag two fingers on the screen.
Do one of the following:
Lift a finger off the screen.
Move the mouse over a placed contact until it becomes active, press-and-hold the contact, and then right-click it.
Rotate a finger.
Select a contact, and then rotate the mouse wheel up or down.
Touch the screen with a blob.
Click the Blob button, and then click the active area.
Touch the screen with a tagged object.
Click the Tagged Object button, and then click the active area.
Lift a tagged object off the screen.
Drag two fingers across the screen.
Place the first finger on the simulated screen, place the second finger on the simulated screen, use the Contact Selector button to select both finger contacts, and then drag the contacts by using the symbol in the center of the selection area.
Rotate two fingers around a central point.
Place the first finger on the simulator screen, place the second finger on the simulated screen, use the Contact Selector button to select both finger contacts, and then rotate the contacts by using the double-arrow pointer to the right of the selection area.
Drag two fingers apart (also known as a zoom gesture).
Place the first finger on the simulated screen, place the second finger on the simulated screen, use the Contact Selector to select both finger contacts, and then drag the contacts apart by clicking and holding one corner on the selection area and dragging it.
Remove all contacts.
Click the Remove All Contacts button in the upper-right corner of the active area. You can also press the DELETE key to remove all currently selected contacts.
Show or hide contacts.
Click the Hide/Show Contacts button in the upper-right corner of the active area.
Surface Simulator supports recording and playback. You can record a sequence of Microsoft Surface interactions for rapid, iterative testing. These recordings are saved as scripts that you can then play later.
When you want to record interactions on a computer, you can use the recording panel that appears at the bottom of Surface Simulator window.
You can also record interactions on a Microsoft Surface unit by using the recording panel that appears at the top of the Microsoft Surface screen on top of an application. To record and play interactions on a unit, log on the unit as an administrator and start Surface Simulator.
When you use the recording panel on a Microsoft Surface unit, you can use the following additional features:
Click the Record button () to start recording.
Complete gestures that you want to test by using the Surface Simulator controls.
Click the Pause button () to pause the recording, interact with the application, or change the interface so that the script moves to a new task when you play it.
Click the Stop button () to name and save your recorded script.
Click the Open button (), and then select a previously recorded script.
Click the Play button () to start playing the script.
Click the Pause button () to pause the playback or to physically interact with the application.
Click the Stop button () to stop recording. You must stop the script before you can load a new script.
Surface Simulator's recording feature is useful for the following areas:
The following procedure demonstrates an example of how you can use the recording and play features to create a test case that can be repeated:
Interact with the application by using Surface Simulator controls:
Click the Stop button () to finish and save the recording.
Make any changes to your code and reopen your application in Surface Simulator.
Click the Open button (), and then select the recorded script.
Click the Play button () to run the same test case.