iTrace - Downloads

iTrace Eclipse v0.1.0 Documentation

Software Dependencies
  • Windows 10 x64
  • Microsoft Visual Studio 2017 (x86)
  • iTrace Core v0.1.0
System Requirements

System requirements for using iTrace VS Plugin are the same as the requirements for the eye tracker you intend to use. Please refer to your tracker vendor's documentation for exact specifications.

Installing the iTrace VS Plugin
  1. Download iTrace-VS-Plugin.vsix
  2. Double click iTrace-VS-Plugin.vsix to install the iTrace VS Plugin to Visual Studio 2017
How to Uninstall
  1. Go to the Visual Studio Tools menu and click Extensions and Updates
  2. Find iTrace VS Plugin and it will have the option to disable or uninstall the extension
  3. Click uninstall (the uninstall process will begin once you close all instances of Visual Studio 2017)
  4. When the iTrace VS Plugin VSIX Installer window appears, click Modify
  5. Click Close when the uninstall is complete

Basic Usage

  1. Open Visual Studio as an administrator
  2. Open the project you will run eye tracking on
  3. Configure socket port if required
  4. Connect to Core
  5. Start Tracking using the iTrace Core
  6. Stop Tracking using the iTrace Core
  7. Disonnect from the Core
    • Always disconnect before closing Visual Studio to ensure all XML tags in the output data are properly closed

To get eye tracking data, this plugin requires iTrace Core v0.1.0 to be downloaded and installed before you use the extension.

Ensure the iTrace VS Plugin has been installed as described above.

Opening Visual Studio as Administrator

This is to ensure the plugin has all the required permissions to connect and listen to sockets, and to create/write to files. Opening Visual Studio as an administrator can be done by right clicking the desktop shortcut for Visual Studio and selecting Run as administrator. If you are launching Visual Studio 2017 from the start menu you will need to right click the Visual Studio 2017 icon, use your mouse to highlight more, and then click Run as administrator.

Viewing the iTrace VS Plugin Window

You should see an iTrace VS Plugin window pane with controls if you have used it before. If it is your first time using the tool or it has not been saved as part of your Visual Studio window layout you can bring up the window by going to View → Other Windows → iTrace VS Plugin.

Changing the Socket Port

The socket port number setting can be found by going to Tools → Options and from that menu clicking on iTrace VS Plugin → iTrace VS Plugin Settings, then you can change the socket port number to your desired value and click OK. Valid socket port values are between 1025 and 65535.

This change goes into effect when you click the Connect to Core button so do this before beginning a session. Ensure all socket port changes are also done to the iTrace Core Application. Mismatched socket ports will result in you being unable to connect the two tools.

Connecting to iTrace Core

The iTrace VS Plugin window contains a button labeled Connect to Core. Clicking it will prompt the plugin to attempt to connect to the socket port specified in your iTrace VS Plugin Settings. Once successfully connected the button text will change to say Disconnect.

Attempting to Connect to Core will fail if the iTrace Core application is not running, the iTrace Core application is running but using a different socket port than specified for the iTrace VS Plugin, or if Visual Studio is not being run as administrator.

Recording Data

Start and stop data collection using the iTrace Core application. You can record multiple sessions in succession by choosing to start tracking again after you stop tracking as long as you have not disconnected the plugin yet. Starting a new session this way completes the previous session and beings the new one.

Disconnect from iTrace Core

If you are completely finished with data collection from your subject, stop the tracker using the iTrace Core application and then click Disconnect on the plugin. Closing Visual Studio without disconnecting will leave you with invalid XML document.

All data generated by the iTrace VS Plugin is stored in an XML format. Each file name begins with itrace_msvs_ and ends with a UTC Uinx format timestamp in milliseconds to indicate the start of the session. This timestamp is used to pair plugin data with the corresponding iTrace Core data.

An example output file would look something like this: itrace_msvs_1551994182719.xml

IDE Plugin XML Format

                    
                        <itrace_plugin session_id="">
                            <environment screen_width="" screen_height="" plugin_type="" />
                            <gazes>
                                <response event_id="" plugin_time="[timestamp_milli]" x="" y="" gaze_target="" gaze_target_type="" source_file_path="" source_file_line="" source_file_col="" editor_line_height="" editor_font_height="" editor_line_base_x="" editor_line_base_y="" />
                                ...
                            </gazes>
                        </itrace_plugin>
                    
                

itrace_plugin tag attributes:

  • session_id → unique identifier for a recording session

environment_tag attributes

  • screen_width → width of display in pixels used for the study
  • screen_height → height of display in pixels used for the study
  • plugin_type → plugin used to record gaze data

response attributes

  • event_id → synchronizing id from core data (provided by Core)
  • plugin_time → timestamp for data being recorded by tracker as a UTC Unix style timestamp in milliseconds
  • x → screen based x coordinate (provided by Core)
  • y → screen based y coordinate (provided by Core)
  • gaze_target → UI element or source code file under gaze
  • gaze_target_type → type of source code file or UI element
  • source_file_path → file path of open source code file under gaze
  • source_file_line → line in open source code file under gaze
  • source_file_col → col in open source code file under gaze
  • editor_line_height → size of editor line
  • editor_font_height → font height in editor
  • editor_line_base_x → line base x in editor
  • editor_line_base_y → line base y in editor