SlideShare una empresa de Scribd logo
1 de 45
Descargar para leer sin conexión
Harrison Chin
       Applications Engineer
harrison.chin@thisisant.com
Thank You!
What is ANT or ANT+?
• ANT is an ultra low power 2.4GHz wireless protocol
   – Shipped over 60+ Million devices so far
   – Can communicate for years using a single coin cell battery
   – Hundreds of transmitters can co-exist on the same RF
     channel without collision
   – Simple logical channels can be used separately or
     combined into complex topologies
   – Highly compact stack and common API across vendors
   – 8 byte Payload Broadcast and Acknowledged packets
      • Up to 24 byte Burst message packets
• ANT+ is a set of mutually agreed upon definitions for
  what the information sent over ANT represents
Building ANT Networks…Simply
• Point-to-point    M    S
Building ANT Networks…Simply
• Point-to-point
• Broadcast one-to-many
                          M



                      S       S
                          S
Building ANT Networks…Simply
• Point-to-point
• Broadcast one-to-many
Building ANT Networks…Simply
• Point-to-point
• Broadcast one-to-many
                                  S
• Star
                                  M

                              S       S


                          M               M
Building ANT Networks…Simply
• Point-to-point
• Broadcast one-to-many
• Star
Building ANT Networks…Simply
•   Point-to-point
•   Broadcast one-to-many
•   Star
•   Shared               S   S   S

                  M

                         S   S   S
Building ANT Networks…Simply
•   Point-to-point
•   Broadcast one-to-many
•   Star                                        …
•   Shared             M         M      M
                                                …
                                                               M


•   Asynchronous                     Over the Air



                      Scan                              Scan
                             M                      M
Building ANT Networks…Simply
•   Point-to-point
•   Broadcast one-to-many
•   Star
•   Shared
•   Asynchronous
                       1: Is   1: Is
                       that    that
                       fun?    fun?
                       2:No    2:No
                       idea…   idea…
ANT Networks…
          Simple to Sophisticated
•   Point-to-point
•   Broadcast one-to-many
•   Star
•   Shared
•   Asynchronous
•   Beyond the star…
Co-existence Management –
        Time Domain
Background Scanning Channel
   • Background scanning channel is receive only
   • Allows independent channels to stay open on the same physical
     radio
   • Useful to create asynchronous topologies, monitor messages, RSSI
     pairing schemes, etc


MASTER_1


MASTER_2


Background
Scanning
Continuous Scanning Mode
    • ‘Always on’ receiver: high power                    M
                                                                     M

    • Fully Bi-directional Communication                      Scan

                                                                     M
           – Channels can be responded to on-demand   M
                                                              M
    • Masters can transmit intermittently
    • Potentially hundreds of transmitters to one center node

MASTER_1


MASTER_2


Scanning
Mode
ANT+ Device Profiles
• Open definitions for device-level
  interoperability
  – Channel configuration
  – Data format
  – Data exchange mechanisms
ANT+ Device Profiles
Control

          Bidirectional communication
          Sensor: status
          Display: control
Geocache
Hint
Next location
Visitor count
Bicycle Speed & Cadence
          Bicycle Power
Cadence
Speed
Power
Activity Monitor

     Access   Searching…
      Point
Continuous Glucose Monitor




         Authenticated sessions
         Intermittent transmission scheme
         Live and stored data
ANT+ Interoperability
Android ANT Layers
              App            App            App         App            App           App



Created by:                                     Profiles
                                            ANT Radio Service

                    For Connectivity Chip                       For ANT USB sticks

                     ANT HAL Service                            ANT USB Service
                                                                               Applications
                         ANT HAL
Created by:
                    ANT Transport Driver
 & Chip         Physical Transport Driver               Android USB Host Feature
 Vendor                Vendor Specific Library                               Android System   Android
                               Android System

                      ANT Firmware                               ANT Firmware
                    Combo Connectivity Device                                 ANT USB Stick
Android Components
App                       App                   App
                                               Profiles
 ANT+ Profile       ANT+ Profile
   Plug-in             Plug-in
                  ANT Radio Service
                                                      Applications


                   ANT HAL Service

                       ANT HAL
                              Android System


                    ANT Firmware
                Combo Connectivity Device
ANT+ Profile Plug-ins
       Make Implementing ANT+ Applications Easier


        App                                App
   Heart Rate PCC                 Remote Control PCC
                                                                 ANT+ API




 Heart Rate Plug-in                  Control Plug-in
                                                                  Plug-ins


ANT Channel Provider                  ANT Channel
                                             Channel API/ANT Radio Service
Plug-in Communicator Class
• A simple class which provides access to the
  ANT+ Plug-in
• Methods include…
   public static void requestAccess(…)
   public String getDeviceName()
   public int getAntDeviceID()
   public int getCurrentDeviceState()
   public void subscribeTo<EventName>(...)
   public void releaseAccess()
Request Access

public static void requestAccess(
    Activity userActivity,
    Context bindToContext,
    boolean skipPreferredSearch,
    IPluginAccessResultReceiver<AntPlusHeartRatePcc> resultReceiver,
    IDeviceStateChangeReceiver stateReceiver)
Device Discovery UI
Result Receiver

public void onResultReceived(AntPlusHeartRatePcc result,
                                     int resultCode,
                                     int initialDeviceStateCode,
                                     Object asyncState)
{
switch(resultCode)
{
case AntPluginMsgDefines.MSG_REQACC_RESULT_whatSUCCESS:
          hrPcc = result;
          subscribeToEvents();
          break;
Result Receiver

case AntPluginMsgDefines.MSG_REQACC_RESULT_whatDEPENDENCYNOTINSTALLED:
           AlertDialog.Builder adlgBldr;
           adlgBldr = new AlertDialog.Builder(Activity_HeartRateSampler.this);
           adlgBldr.setTitle("Missing Dependency");
           adlgBldr.setMessage("The required applicationn"" +
           AntPlusHeartRatePcc.getMissingDependencyName() +
           “"n is not installed. Do you want to launch the Play Store to search for it?");
...
break;
Subscribing to Events
hrPcc.subscribeHeartRateDataEvent(
         new IHeartRateDataReceiver()
         {
                  public void onNewHeartRateData(
                            final int currentMessageCount,
                            final int computedHeartRate,
                            final int heartBeatCounter,
                            final int timestampOfLastBeat_1024s)
                  {
                            //Use data...
                  }
         } );
State Change Receiver

public void onDeviceStateChange(int newDeviceState)
{
          //Handle state change:
          //(TRACKING, SEARCHING, CLOSED, DEAD)
}
Release Access
 public static void releaseAccess()


• Releases the connection to the device (the plugin
  service will automatically shutdown when all apps
  have released access)
Channel Interface
•   Used for non-ANT+ applications
•   Development of Beta ANT+ profiles
•   Provides channels from all connected chips
•   Gives full access to individual ANT channel
    capabilities
    – Background scanning
    – Shared channels
    – Decimated receive rates
General Channel Flow
1.   Bind to the ANT Radio Service
2.   Get the ANT Channel Provider
3.   Acquire Channel(s)
4.   Configure Channel(s)
5.   Use Channel(s)
6.   Release the Channel(s) and Unbind
Bind to the ANT Radio Service
private AntService mAntRadioService = null;
private AntChannelProvider mAntChannelProvider = null;
private ServiceConnection mAntRadioServiceConnection =new ServiceConnection()
{
          @Override
          public void onServiceConnected(ComponentName name, IBinder service)
          {
                    mAntRadioService = new AntService(service);
                    mAntChannelProvider = mAntRadioService.getChannelProvider();
          }
          …
}
Acquire a Channel
AntChannel acquireChannel() throws ChannelNotAvailableException
{
   AntChannel antChannel = null;
   if(null != mAntChannelProvider)
   {
            antChannel = AntChannelProvider.acquireChannel(this, PredefinedNetwork.PUBLIC);
   }
   return antChannel;
}
Configuring an ANT Channel…
•   setAdapterWideLibConfig(LibConfig libConfig)
•   setChannelId(ChannelId channelId)
•   setPeriod(int period_32768unitsPerSecond)
•   setTransmitPower(int outputPowerLevelSetting)
•   setProximityThreshold(int searchThreshold)
•   setRfFreqency(int radioFrequencyOffset)
•   setSearchTimeout (LowPrioritySearchTimeout lowPrioritySearchTimeout)
•   …and more representing standard ANT Message Commands
Handling the Channel
public class ChannelCallback implements AntChannelMessageHandler
{
             @Override
             public void handleMessage(AntMessageFromAnt antMessage)
             {
                          switch(antMessage.getMessageType())
                          {
                                     case BROADCAST_DATA:
                                     case ACKNOWLEDGED_DATA:
                                                // Rx Data
                                                DataMessage rxMessage = (DataMessage)antMessage;
                                                processData(rxMessage.getPayload());
                                                break;
                                     case CHANNEL_EVENT:
                                                …
                          }
             }
}
Releasing the Channel
public void close()
{
          if (null != mAntChannel)
          {
                      mAntChannel.release();
                      mAntChannel = null;
          }
}
What could you do with…
• Simplicity
   – ANT+ Android Plug-ins
     handle discovery and
     profile interpretation for
     the developer
   – Unified ANT API across
     multiple vendors minimizes
     support costs
   – Small stack size and TDMA
     style coexistence reduces
     memory and
     computational costs
   – Individual logical channels
     are easy to work with
What could you do with…
• Extreme network
  flexibility
  – Enables large scale
    networks for small, coin
    cell operated devices
                                  Over the
    running for years
                                    Air
  – Hubs, phones, access
    points, etc can gather data
    and communicate
    concurrently
  – Scatternets, meshes, trees,
    etc, can be dynamically
    created and closed
  – Simple channels are the
    building blocks
Thank You!
Have a Great Droidcon!

Más contenido relacionado

Similar a Droidcon 2013 ant+ chin

Apache edgent with STM32f401 to watson iot platform
Apache edgent with STM32f401 to watson iot platformApache edgent with STM32f401 to watson iot platform
Apache edgent with STM32f401 to watson iot platformMostafa Ramezani
 
Wireless Sensor Networks with emphasis on DSR
Wireless Sensor Networks with emphasis on DSRWireless Sensor Networks with emphasis on DSR
Wireless Sensor Networks with emphasis on DSRAmrita Biswas
 
Enabling SDN for Service Providers by Khay Kid Chow
Enabling SDN for Service Providers by Khay Kid ChowEnabling SDN for Service Providers by Khay Kid Chow
Enabling SDN for Service Providers by Khay Kid ChowMyNOG
 
Wireless Sensor Networks: Nothing is Out of Reach
Wireless Sensor Networks: Nothing is Out of ReachWireless Sensor Networks: Nothing is Out of Reach
Wireless Sensor Networks: Nothing is Out of ReachEnergySec
 
Synched E Harvesting Wireless Sensors For Sensors Expo 2009 Dist
Synched E Harvesting Wireless Sensors For Sensors Expo 2009 DistSynched E Harvesting Wireless Sensors For Sensors Expo 2009 Dist
Synched E Harvesting Wireless Sensors For Sensors Expo 2009 Distswarms_2009
 
Remote authentication via biometrics1
Remote authentication via biometrics1Remote authentication via biometrics1
Remote authentication via biometrics1Omkar Salunke
 
Ble boise codecamp
Ble boise codecampBle boise codecamp
Ble boise codecampChip Keyes
 
5G and Open Reference Platforms
5G and Open Reference Platforms5G and Open Reference Platforms
5G and Open Reference PlatformsMichelle Holley
 
Track 1 session 2 - st dev con 2016 - dsp concepts - innovating iot+wearab...
Track 1   session 2 - st dev con 2016 -  dsp concepts - innovating iot+wearab...Track 1   session 2 - st dev con 2016 -  dsp concepts - innovating iot+wearab...
Track 1 session 2 - st dev con 2016 - dsp concepts - innovating iot+wearab...ST_World
 
เทคโนโลยีสารสนเทศสำหรับครู
เทคโนโลยีสารสนเทศสำหรับครูเทคโนโลยีสารสนเทศสำหรับครู
เทคโนโลยีสารสนเทศสำหรับครูBeauso English
 
ME4AWSN - a Modeling Environment for Architecting WSNs
ME4AWSN - a Modeling Environment for Architecting WSNsME4AWSN - a Modeling Environment for Architecting WSNs
ME4AWSN - a Modeling Environment for Architecting WSNsIvano Malavolta
 
AWS IoT 핸즈온 워크샵 - AWS IoT 소개 및  AWS 서비스 연동 방법 (김무현 솔루션즈 아키텍트)
AWS IoT 핸즈온 워크샵 - AWS IoT 소개 및  AWS 서비스 연동 방법  (김무현 솔루션즈 아키텍트)AWS IoT 핸즈온 워크샵 - AWS IoT 소개 및  AWS 서비스 연동 방법  (김무현 솔루션즈 아키텍트)
AWS IoT 핸즈온 워크샵 - AWS IoT 소개 및  AWS 서비스 연동 방법 (김무현 솔루션즈 아키텍트)Amazon Web Services Korea
 
WIRELWIRELESS INTEGRATED NETWORK SENSORS
WIRELWIRELESS INTEGRATED NETWORK SENSORSWIRELWIRELESS INTEGRATED NETWORK SENSORS
WIRELWIRELESS INTEGRATED NETWORK SENSORSDeepak Kumar Mohapatra
 
A Full End-to-End Platform as a Service for Smart City Applications
A Full End-to-End Platform as a Service for SmartCity ApplicationsA Full End-to-End Platform as a Service for SmartCity Applications
A Full End-to-End Platform as a Service for Smart City ApplicationsCharalampos Doukas
 
DEFCON 23 - Ian Latter - remote access the apt
DEFCON 23 - Ian Latter - remote access the aptDEFCON 23 - Ian Latter - remote access the apt
DEFCON 23 - Ian Latter - remote access the aptFelipe Prado
 

Similar a Droidcon 2013 ant+ chin (20)

Active network
Active networkActive network
Active network
 
Apache edgent with STM32f401 to watson iot platform
Apache edgent with STM32f401 to watson iot platformApache edgent with STM32f401 to watson iot platform
Apache edgent with STM32f401 to watson iot platform
 
Wireless Sensor Networks with emphasis on DSR
Wireless Sensor Networks with emphasis on DSRWireless Sensor Networks with emphasis on DSR
Wireless Sensor Networks with emphasis on DSR
 
Enabling SDN for Service Providers by Khay Kid Chow
Enabling SDN for Service Providers by Khay Kid ChowEnabling SDN for Service Providers by Khay Kid Chow
Enabling SDN for Service Providers by Khay Kid Chow
 
IOT beginnners
IOT beginnnersIOT beginnners
IOT beginnners
 
IOT beginnners
IOT beginnnersIOT beginnners
IOT beginnners
 
Wireless Sensor Networks: Nothing is Out of Reach
Wireless Sensor Networks: Nothing is Out of ReachWireless Sensor Networks: Nothing is Out of Reach
Wireless Sensor Networks: Nothing is Out of Reach
 
Synched E Harvesting Wireless Sensors For Sensors Expo 2009 Dist
Synched E Harvesting Wireless Sensors For Sensors Expo 2009 DistSynched E Harvesting Wireless Sensors For Sensors Expo 2009 Dist
Synched E Harvesting Wireless Sensors For Sensors Expo 2009 Dist
 
Remote authentication via biometrics1
Remote authentication via biometrics1Remote authentication via biometrics1
Remote authentication via biometrics1
 
Ble boise codecamp
Ble boise codecampBle boise codecamp
Ble boise codecamp
 
5G and Open Reference Platforms
5G and Open Reference Platforms5G and Open Reference Platforms
5G and Open Reference Platforms
 
Track 1 session 2 - st dev con 2016 - dsp concepts - innovating iot+wearab...
Track 1   session 2 - st dev con 2016 -  dsp concepts - innovating iot+wearab...Track 1   session 2 - st dev con 2016 -  dsp concepts - innovating iot+wearab...
Track 1 session 2 - st dev con 2016 - dsp concepts - innovating iot+wearab...
 
AWS IoT 深入探討
AWS IoT 深入探討AWS IoT 深入探討
AWS IoT 深入探討
 
เทคโนโลยีสารสนเทศสำหรับครู
เทคโนโลยีสารสนเทศสำหรับครูเทคโนโลยีสารสนเทศสำหรับครู
เทคโนโลยีสารสนเทศสำหรับครู
 
ME4AWSN - a Modeling Environment for Architecting WSNs
ME4AWSN - a Modeling Environment for Architecting WSNsME4AWSN - a Modeling Environment for Architecting WSNs
ME4AWSN - a Modeling Environment for Architecting WSNs
 
AWS IoT 핸즈온 워크샵 - AWS IoT 소개 및  AWS 서비스 연동 방법 (김무현 솔루션즈 아키텍트)
AWS IoT 핸즈온 워크샵 - AWS IoT 소개 및  AWS 서비스 연동 방법  (김무현 솔루션즈 아키텍트)AWS IoT 핸즈온 워크샵 - AWS IoT 소개 및  AWS 서비스 연동 방법  (김무현 솔루션즈 아키텍트)
AWS IoT 핸즈온 워크샵 - AWS IoT 소개 및  AWS 서비스 연동 방법 (김무현 솔루션즈 아키텍트)
 
WIRELWIRELESS INTEGRATED NETWORK SENSORS
WIRELWIRELESS INTEGRATED NETWORK SENSORSWIRELWIRELESS INTEGRATED NETWORK SENSORS
WIRELWIRELESS INTEGRATED NETWORK SENSORS
 
Types of Networks
Types of NetworksTypes of Networks
Types of Networks
 
A Full End-to-End Platform as a Service for Smart City Applications
A Full End-to-End Platform as a Service for SmartCity ApplicationsA Full End-to-End Platform as a Service for SmartCity Applications
A Full End-to-End Platform as a Service for Smart City Applications
 
DEFCON 23 - Ian Latter - remote access the apt
DEFCON 23 - Ian Latter - remote access the aptDEFCON 23 - Ian Latter - remote access the apt
DEFCON 23 - Ian Latter - remote access the apt
 

Más de Droidcon Berlin

Droidcon de 2014 google cast
Droidcon de 2014   google castDroidcon de 2014   google cast
Droidcon de 2014 google castDroidcon Berlin
 
Android programming -_pushing_the_limits
Android programming -_pushing_the_limitsAndroid programming -_pushing_the_limits
Android programming -_pushing_the_limitsDroidcon Berlin
 
Android industrial mobility
Android industrial mobility Android industrial mobility
Android industrial mobility Droidcon Berlin
 
From sensor data_to_android_and_back
From sensor data_to_android_and_backFrom sensor data_to_android_and_back
From sensor data_to_android_and_backDroidcon Berlin
 
new_age_graphics_android_x86
new_age_graphics_android_x86new_age_graphics_android_x86
new_age_graphics_android_x86Droidcon Berlin
 
Testing and Building Android
Testing and Building AndroidTesting and Building Android
Testing and Building AndroidDroidcon Berlin
 
Matchinguu droidcon presentation
Matchinguu droidcon presentationMatchinguu droidcon presentation
Matchinguu droidcon presentationDroidcon Berlin
 
Cgm life sdk_droidcon_2014_v3
Cgm life sdk_droidcon_2014_v3Cgm life sdk_droidcon_2014_v3
Cgm life sdk_droidcon_2014_v3Droidcon Berlin
 
The artofcalabash peterkrauss
The artofcalabash peterkraussThe artofcalabash peterkrauss
The artofcalabash peterkraussDroidcon Berlin
 
Raesch, gries droidcon 2014
Raesch, gries   droidcon 2014Raesch, gries   droidcon 2014
Raesch, gries droidcon 2014Droidcon Berlin
 
Android open gl2_droidcon_2014
Android open gl2_droidcon_2014Android open gl2_droidcon_2014
Android open gl2_droidcon_2014Droidcon Berlin
 
20140508 quantified self droidcon
20140508 quantified self droidcon20140508 quantified self droidcon
20140508 quantified self droidconDroidcon Berlin
 
Tuning android for low ram devices
Tuning android for low ram devicesTuning android for low ram devices
Tuning android for low ram devicesDroidcon Berlin
 
Froyo to kit kat two years developing & maintaining deliradio
Froyo to kit kat   two years developing & maintaining deliradioFroyo to kit kat   two years developing & maintaining deliradio
Froyo to kit kat two years developing & maintaining deliradioDroidcon Berlin
 
Droidcon2013 security genes_trendmicro
Droidcon2013 security genes_trendmicroDroidcon2013 security genes_trendmicro
Droidcon2013 security genes_trendmicroDroidcon Berlin
 

Más de Droidcon Berlin (20)

Droidcon de 2014 google cast
Droidcon de 2014   google castDroidcon de 2014   google cast
Droidcon de 2014 google cast
 
Android programming -_pushing_the_limits
Android programming -_pushing_the_limitsAndroid programming -_pushing_the_limits
Android programming -_pushing_the_limits
 
crashing in style
crashing in stylecrashing in style
crashing in style
 
Raspberry Pi
Raspberry PiRaspberry Pi
Raspberry Pi
 
Android industrial mobility
Android industrial mobility Android industrial mobility
Android industrial mobility
 
Details matter in ux
Details matter in uxDetails matter in ux
Details matter in ux
 
From sensor data_to_android_and_back
From sensor data_to_android_and_backFrom sensor data_to_android_and_back
From sensor data_to_android_and_back
 
droidparts
droidpartsdroidparts
droidparts
 
new_age_graphics_android_x86
new_age_graphics_android_x86new_age_graphics_android_x86
new_age_graphics_android_x86
 
5 tips of monetization
5 tips of monetization5 tips of monetization
5 tips of monetization
 
Testing and Building Android
Testing and Building AndroidTesting and Building Android
Testing and Building Android
 
Matchinguu droidcon presentation
Matchinguu droidcon presentationMatchinguu droidcon presentation
Matchinguu droidcon presentation
 
Cgm life sdk_droidcon_2014_v3
Cgm life sdk_droidcon_2014_v3Cgm life sdk_droidcon_2014_v3
Cgm life sdk_droidcon_2014_v3
 
The artofcalabash peterkrauss
The artofcalabash peterkraussThe artofcalabash peterkrauss
The artofcalabash peterkrauss
 
Raesch, gries droidcon 2014
Raesch, gries   droidcon 2014Raesch, gries   droidcon 2014
Raesch, gries droidcon 2014
 
Android open gl2_droidcon_2014
Android open gl2_droidcon_2014Android open gl2_droidcon_2014
Android open gl2_droidcon_2014
 
20140508 quantified self droidcon
20140508 quantified self droidcon20140508 quantified self droidcon
20140508 quantified self droidcon
 
Tuning android for low ram devices
Tuning android for low ram devicesTuning android for low ram devices
Tuning android for low ram devices
 
Froyo to kit kat two years developing & maintaining deliradio
Froyo to kit kat   two years developing & maintaining deliradioFroyo to kit kat   two years developing & maintaining deliradio
Froyo to kit kat two years developing & maintaining deliradio
 
Droidcon2013 security genes_trendmicro
Droidcon2013 security genes_trendmicroDroidcon2013 security genes_trendmicro
Droidcon2013 security genes_trendmicro
 

Último

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 

Último (20)

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 

Droidcon 2013 ant+ chin

  • 1. Harrison Chin Applications Engineer harrison.chin@thisisant.com
  • 3. What is ANT or ANT+? • ANT is an ultra low power 2.4GHz wireless protocol – Shipped over 60+ Million devices so far – Can communicate for years using a single coin cell battery – Hundreds of transmitters can co-exist on the same RF channel without collision – Simple logical channels can be used separately or combined into complex topologies – Highly compact stack and common API across vendors – 8 byte Payload Broadcast and Acknowledged packets • Up to 24 byte Burst message packets • ANT+ is a set of mutually agreed upon definitions for what the information sent over ANT represents
  • 4.
  • 6. Building ANT Networks…Simply • Point-to-point • Broadcast one-to-many M S S S
  • 7. Building ANT Networks…Simply • Point-to-point • Broadcast one-to-many
  • 8. Building ANT Networks…Simply • Point-to-point • Broadcast one-to-many S • Star M S S M M
  • 9. Building ANT Networks…Simply • Point-to-point • Broadcast one-to-many • Star
  • 10. Building ANT Networks…Simply • Point-to-point • Broadcast one-to-many • Star • Shared S S S M S S S
  • 11. Building ANT Networks…Simply • Point-to-point • Broadcast one-to-many • Star … • Shared M M M … M • Asynchronous Over the Air Scan Scan M M
  • 12. Building ANT Networks…Simply • Point-to-point • Broadcast one-to-many • Star • Shared • Asynchronous 1: Is 1: Is that that fun? fun? 2:No 2:No idea… idea…
  • 13. ANT Networks… Simple to Sophisticated • Point-to-point • Broadcast one-to-many • Star • Shared • Asynchronous • Beyond the star…
  • 15. Background Scanning Channel • Background scanning channel is receive only • Allows independent channels to stay open on the same physical radio • Useful to create asynchronous topologies, monitor messages, RSSI pairing schemes, etc MASTER_1 MASTER_2 Background Scanning
  • 16. Continuous Scanning Mode • ‘Always on’ receiver: high power M M • Fully Bi-directional Communication Scan M – Channels can be responded to on-demand M M • Masters can transmit intermittently • Potentially hundreds of transmitters to one center node MASTER_1 MASTER_2 Scanning Mode
  • 17. ANT+ Device Profiles • Open definitions for device-level interoperability – Channel configuration – Data format – Data exchange mechanisms
  • 19. Control Bidirectional communication Sensor: status Display: control
  • 21. Bicycle Speed & Cadence Bicycle Power Cadence Speed Power
  • 22. Activity Monitor Access Searching… Point
  • 23. Continuous Glucose Monitor Authenticated sessions Intermittent transmission scheme Live and stored data
  • 25. Android ANT Layers App App App App App App Created by: Profiles ANT Radio Service For Connectivity Chip For ANT USB sticks ANT HAL Service ANT USB Service Applications ANT HAL Created by: ANT Transport Driver & Chip Physical Transport Driver Android USB Host Feature Vendor Vendor Specific Library Android System Android Android System ANT Firmware ANT Firmware Combo Connectivity Device ANT USB Stick
  • 26. Android Components App App App Profiles ANT+ Profile ANT+ Profile Plug-in Plug-in ANT Radio Service Applications ANT HAL Service ANT HAL Android System ANT Firmware Combo Connectivity Device
  • 27. ANT+ Profile Plug-ins Make Implementing ANT+ Applications Easier App App Heart Rate PCC Remote Control PCC ANT+ API Heart Rate Plug-in Control Plug-in Plug-ins ANT Channel Provider ANT Channel Channel API/ANT Radio Service
  • 28. Plug-in Communicator Class • A simple class which provides access to the ANT+ Plug-in • Methods include… public static void requestAccess(…) public String getDeviceName() public int getAntDeviceID() public int getCurrentDeviceState() public void subscribeTo<EventName>(...) public void releaseAccess()
  • 29. Request Access public static void requestAccess( Activity userActivity, Context bindToContext, boolean skipPreferredSearch, IPluginAccessResultReceiver<AntPlusHeartRatePcc> resultReceiver, IDeviceStateChangeReceiver stateReceiver)
  • 31. Result Receiver public void onResultReceived(AntPlusHeartRatePcc result, int resultCode, int initialDeviceStateCode, Object asyncState) { switch(resultCode) { case AntPluginMsgDefines.MSG_REQACC_RESULT_whatSUCCESS: hrPcc = result; subscribeToEvents(); break;
  • 32. Result Receiver case AntPluginMsgDefines.MSG_REQACC_RESULT_whatDEPENDENCYNOTINSTALLED: AlertDialog.Builder adlgBldr; adlgBldr = new AlertDialog.Builder(Activity_HeartRateSampler.this); adlgBldr.setTitle("Missing Dependency"); adlgBldr.setMessage("The required applicationn"" + AntPlusHeartRatePcc.getMissingDependencyName() + “"n is not installed. Do you want to launch the Play Store to search for it?"); ... break;
  • 33. Subscribing to Events hrPcc.subscribeHeartRateDataEvent( new IHeartRateDataReceiver() { public void onNewHeartRateData( final int currentMessageCount, final int computedHeartRate, final int heartBeatCounter, final int timestampOfLastBeat_1024s) { //Use data... } } );
  • 34. State Change Receiver public void onDeviceStateChange(int newDeviceState) { //Handle state change: //(TRACKING, SEARCHING, CLOSED, DEAD) }
  • 35. Release Access public static void releaseAccess() • Releases the connection to the device (the plugin service will automatically shutdown when all apps have released access)
  • 36. Channel Interface • Used for non-ANT+ applications • Development of Beta ANT+ profiles • Provides channels from all connected chips • Gives full access to individual ANT channel capabilities – Background scanning – Shared channels – Decimated receive rates
  • 37. General Channel Flow 1. Bind to the ANT Radio Service 2. Get the ANT Channel Provider 3. Acquire Channel(s) 4. Configure Channel(s) 5. Use Channel(s) 6. Release the Channel(s) and Unbind
  • 38. Bind to the ANT Radio Service private AntService mAntRadioService = null; private AntChannelProvider mAntChannelProvider = null; private ServiceConnection mAntRadioServiceConnection =new ServiceConnection() { @Override public void onServiceConnected(ComponentName name, IBinder service) { mAntRadioService = new AntService(service); mAntChannelProvider = mAntRadioService.getChannelProvider(); } … }
  • 39. Acquire a Channel AntChannel acquireChannel() throws ChannelNotAvailableException { AntChannel antChannel = null; if(null != mAntChannelProvider) { antChannel = AntChannelProvider.acquireChannel(this, PredefinedNetwork.PUBLIC); } return antChannel; }
  • 40. Configuring an ANT Channel… • setAdapterWideLibConfig(LibConfig libConfig) • setChannelId(ChannelId channelId) • setPeriod(int period_32768unitsPerSecond) • setTransmitPower(int outputPowerLevelSetting) • setProximityThreshold(int searchThreshold) • setRfFreqency(int radioFrequencyOffset) • setSearchTimeout (LowPrioritySearchTimeout lowPrioritySearchTimeout) • …and more representing standard ANT Message Commands
  • 41. Handling the Channel public class ChannelCallback implements AntChannelMessageHandler { @Override public void handleMessage(AntMessageFromAnt antMessage) { switch(antMessage.getMessageType()) { case BROADCAST_DATA: case ACKNOWLEDGED_DATA: // Rx Data DataMessage rxMessage = (DataMessage)antMessage; processData(rxMessage.getPayload()); break; case CHANNEL_EVENT: … } } }
  • 42. Releasing the Channel public void close() { if (null != mAntChannel) { mAntChannel.release(); mAntChannel = null; } }
  • 43. What could you do with… • Simplicity – ANT+ Android Plug-ins handle discovery and profile interpretation for the developer – Unified ANT API across multiple vendors minimizes support costs – Small stack size and TDMA style coexistence reduces memory and computational costs – Individual logical channels are easy to work with
  • 44. What could you do with… • Extreme network flexibility – Enables large scale networks for small, coin cell operated devices Over the running for years Air – Hubs, phones, access points, etc can gather data and communicate concurrently – Scatternets, meshes, trees, etc, can be dynamically created and closed – Simple channels are the building blocks
  • 45. Thank You! Have a Great Droidcon!