• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Windows7 Sensor & Location Platform
 

Windows7 Sensor & Location Platform

on

  • 4,128 views

 

Statistics

Views

Total Views
4,128
Views on SlideShare
4,113
Embed Views
15

Actions

Likes
2
Downloads
53
Comments
0

5 Embeds 15

http://www.slideshare.net 6
http://www.slideee.com 4
http://www.linkedin.com 3
http://tagyorit.com 1
http://translate.googleusercontent.com 1

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Windows7 Sensor & Location Platform Windows7 Sensor & Location Platform Presentation Transcript

    • Windows 7 Deep Dive LabSensor & Location Platform
      Dennis Loktionov dloktionov@absolute.com
      July 16, 2009
    • Agenda
      Windows 7 Sensor & Location Platform
      • Introduction
      • Sensor Platform Architecture
      • Working with the Sensor API
      • Location Platform Architecture
      • Working with the Location API
      • Demos
      Questions
    • Introduction
      Definition
      Sensors measure a physical phenomenon or a physical interaction
      Sensor Types
      Ambient Light Sensors (ALS)
      Accelerometers
      Location Sensors
      GPS, Wi-Fi /cell tower triangulation, IP Geolocation
      Proximity Sensors
      Temperature Sensors
      Biometric Sensor*
      Others (Human presence, RFID)
    • Limitations of Sensors Today
      Sensors are integrated as vertical solutions
      Applications need to know sensor hardware specifics
      Limited adoption and scope
      Sensors are exposed as virtual COM ports
      Exclusive application access
      Not secure
      Proprietary data formats (NMEA, others)
    • Sensor Platform Overview
      Unified Driver Model for all types of sensors
      Physical sensors (e.g., GPS devices, Light Sensors)
      Logical sensor (e.g., Wi-Fi triangulation resolver)
      Standard APIs for accessing sensors
      COM-based Sensor API
      Works with drivers using the sensor class extension
      Benefits
      Implements native support for sensor and location devices on Windows
      No need to target vendor-specific APIs or to know hardware specifics
      Consistent interface for all sensor types
      Privacy and security
    • Sensor Platform Architecture
      Application
      Application
      Location and Other Sensors Control Panel
      Sensor API
      User
      System
      Sensor class extension
      UMDF sensor driver
      Sensor
      device
      This is a partial diagram of the Sensor and Location Platform, showing only sensor-related parts
    • Privacy and Access Control
      • Location data is considered private
      • Legal term: Personally identifiable information (PII)
      • User consent is required to share data
      • All sensors are disabled by default
      • Administrator rights required to enable a sensor
      • Sensors are configured on a per-user basis (not per application)
      • Enable Sensors dialog box
      is invoked by applications
    • Sensor API Architecture
      COM-based API (includes Sensorsapi.h and Sensors.h)
      Consists of these main interfaces:
      ISensorManager
      Sensor enumeration, attachment event, request permissions
      ISensor
      Get and set properties, get report, events (new report, detachment, state change, custom) and more
      ISensorDataReport
      Get sensor data report data fields
    • Sensor API Architecture
    • Sensors Explained
      Enumerated via category and type GUIDs
      Category represents what is being sensed (for example, environment, location, motion, electrical systems)
      Type represents how it is being sensed (for example, by thermometer, GPS, accelerometer, voltage)
      Properties
      Read-only (such as model) or read-write (such as report interval).
      Sensors may have custom properties
      Data
      Get (sensor-specific) data report object synchronously (not recommended) or asynchronously (events)
      Events
      State change, leave (detach), data updated, custom
      State
      Is sensor working properly? Do you have access?
    • Enumerating Sensors
      #include <sensorsapi.h>
      #include <sensors.h>
      HRESULT hr;
      CComPtr<ISensorManager> pSensorManager;
      pSensorManager.CoCreateInstance(CLSID_SensorManager);
      CComPtr<ISensorCollection> pALSCollection;
      CComPtr<ISensor> pALSSensor;
      // Get all the ALS sensors on the system
      pSensorManager->GetSensorsByType(SENSOR_TYPE_AMBIENT_LIGHT, &pALSCollection);
      hr = pSensorManager->RequestPermissions(
      0, // Owner window
      pALSCollection, // Collection of sensors requiring permissions
      TRUE); // Modal flag
      if(SUCCEEDED(hr))
      {
      pALSCollection->GetAt(0, &pALSSensor);
      }
    • Getting Current Light Level
      STDMETHODIMP CALSEventSink::OnDataUpdated(
      ISensor* pSensor, ISensorDataReport* pNewData)
      {
      PROPVARIANT lightLevel;
      PropVariantInit(&lightLevel);
      // Get the sensor reading from the ISensorDataReport object
      pNewData->GetSensorValue(SENSOR_DATA_TYPE_LIGHT_LEVEL_LUX, &lightLevel);
      // Extract the float value from the PROPVARIANT object
      float luxValue = V_FLOAT(lightLevel);
      // Normalize the light sensor data
      double lightNormalized = ::pow(luxValue, 0.4) / 100.0;
      // Handle UI changes based on the normalized LUX data
      // which ranges from 0.0 - 1.0 for a lux range of
      // 0 lux to 100,000 lux, this method represents such a
      // handler that would be implemented in your application
      UpdateUI(lightNormalized);
      PropVariantClear(&lightLevel);
      return S_OK;
      }
    • Sensor .NET Wrapper Architecture
    • Sensor .NET Wrapper Architecture
      • Sensor is an abstract base class with a derived type for each sensor type
      • Derived types can add properties and events
    • Sensor .NET Wrapper Architecture
      • SensorDataReport also has a derived type for each sensor type
      • Provides a strongly-typed way to access data
    • Ambient Light Sensor (ALS)
      Measure light intensity in LUX (lumens per square meter)
      Windows 7 includes class driver support for ACPI light sensors
      Working with OEMs to integrate light sensors into notebooks
      Adaptive brightness feature supported by Windows 7
      OS automatically adjusts display backlight
      Light-aware applications can use these sensors to optimize UI content for various lighting conditions
      Demo…
    • Sensor Development Kit
      • Based on Freescale JM Badge Board
      • Sensors
      • Ambient light sensor
      • 3D Accelerometer
      • Dual touch strip sensors
      • Developer tools
      • Sample firmware code
      • Sample driver code
      • Diagnostic and sample applications
      • Sensor Diagnostic Tool
      • Light-aware MSDN Reader
      • Marble game
      • Demo…
    • Location Platform Overview
      Single API call to answer “Where am I?”
      Provider (such as: GPS, IP resolver, Wi-Fi) independent
      Synchronous and asynchronous models
      Script or automation compatible
      Automatic transition between providers
      Most accurate providers have priority
      Concurrent access for multiple applications
      Default location
      Provided by user as fallback when no other sources are available
    • Location-Awareness Opportunities
      Useful local information
      Location based search for points of interest
      Mapping/navigation based on current location
      PC recovery service
      Social networking: Where are my friends and family?
      Others…
    • Location Platform API Overview
      The Windows 7 Location API is built on top of the Sensor API
      COM-based API (includes Locationapi.h)
      It is a high-level abstraction
      Leverages sensors which provide location information
      Some sensors (location providers) may be logical
      Ex: Wi-Fi hotspot triangulation
    • Location Platform Architecture
      Gadget or script
      Application
      Application
      Location API
      Location IDispatch Interface
      Sensor API
      User
      Location and Other Sensors Control Panel
      System
      Sensor class extension
      Sensor class extension
      UMDF sensor driver
      UMDF sensor driver
      Sensor
      device
      Logical location sensor
      (Triangulation)
    • Configuring Default Location
    • Location API Architecture
    • Types of Location Data
      Geographic data (ILatLongReport)
      Latitude, longitude, altitude, associated error required
      Most common format
      Best format for precise location
      Can reverse geo-code later
      Civic address (ICivicAddressReport)
      Zip code, country required
      Most human readable
      Best for ‘rough’ location estimates, street directions
      Demo…
    • 3D Bing Maps & Location Platform
      Demo…
    • Summary
      Sensor Platform overview & architecture
      Native Sensor API
      Managed Sensor API wrapper
      Native Location API
      Types of location data, default location
      Managed Location API wrapper
    • Questions ?
      Q&A
    • The End. Fin. Конец.
      THANKS