SlideShare une entreprise Scribd logo
1  sur  45
Télécharger pour lire hors ligne
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!

Contenu connexe

Similaire à 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
 

Similaire à 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
 

Plus 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
 

Plus 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
 

Dernier

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 

Dernier (20)

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

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!