Skip to content

Introduction

Jane edited this page Jan 26, 2016 · 15 revisions

Table of Contents

Purpose

This SDK facilitates the development of iOS apps that utilize Wearable or Nearable Devices. It helps developing those apps in just a fraction of the time and requiring only minimal knowledge of the Wearable/Nearable domain. It handles these key aspects of utilizing these devices:

  1. Connecting to the Wearable/Nearable Devices.
  2. Retrieving data from a specific sensor.
  3. Making the data available in a standard way regardless of the sensor's make.
  4. Interpreting raw data and identifying meaningful situations that can be acted upon.

Scope

Domain Features Details
Device Connectivity Device Connectivity SDK 1. Facilitates connectivity with Bluetooth Smart (also known as Bluetooth Low Energy or BLE) devices.
2. Retrieves the raw data of the devices’ sensors.
Ready-made connectors to the following devices: 1. Texas Instruments SensorTag
2. Microsoft Band
3. GemSense
4. Future: Apple Watch
Extensibility 1. A developer can utilize the SDK to build a custom connector in order to connect with other BLE devices.
2. A code sample is provided.
Data dictionary Allows standardized utilization of inconsistently formatted data coming from different sensors while minimizing the burden on the developer.
Data Interpretation Interpretation SDK Facilitates the identification of real world phenomena from raw data.
Ready-made interpreters 1. Fall Detection
2. TBD
Extensibility 1. A developer can utilize the SDK to build a custom interpretation algorithm in order to identify different types of phenomena.
2. A code sample is provided.
Future: Gesture Recognition algorithm engine Employs a cloud service to analyze a recorded flow of data and generate an algorithm for identifying when the recorded gesture takes place.

Pre-requisites

Xcode 7.1 or higher

Key Resources provided

Device Connectors

Each device connector supports a specific physical Wearable/Nearable device. For example, the device connector `SensorTag` class supports the Texas Instruments SensorTag device.

 let sensorTag = SensorTag()

[eh:]

Sensors

Each device can have several sensors. The `sensors` class defines a number of types as variables for connecting to and collecting and processing data from the different sensors. For example the `accelerometer` sensor measures acceleration. It is supported by the `SensorTag()` device and it may be supported by other devices as well.

    controller.sensors.accelerometer.registerListener(accelerometerDataListener)

Interpretations

Each interpretation algorithm processes the sensors' data using an interpretation algorithm for identifying a specific situation. For example, the `FallDetection()` class identifies a device fall event based on analysis of motion data coming from an accelerometer sensor.

    controller.registerInterpretation(FallDetection(), withListener: fallDetected)

The `BaseInterpretation` class provides methods that help building interpretation algorithms. The `FallDetection()` class, for example, is a subclass of the `BaseInterpretation` class.

[eh:]

[eh:]