2015-01-06 20 views
5

Ho scaricato il codice sorgente AOSP per Lollipop 5.0. In api livello 21, sotto le impostazioni di scansione a basso consumo di bluetooth ci sono tre opzioni per la scansione dei dispositivi ble - SCAN_MODE_BALANCED, SCAN_MODE_LOW_LATENCY, SCAN_MODE_LOW_POWER. Sono basati su diversi intervalli di scansione e valori della finestra di scansione? In tal caso, dove posso trovare i valori definiti per queste macro nella directory del codice sorgente.Android AOSP - Definizione dell'intervallo di scansione e finestra di scansione nel codice sorgente Android

risposta

5

ho trovato di sotto dei valori in http://androidxref.com/5.0.0_r2/xref/packages/apps/Bluetooth/src/com/android/bluetooth/gatt/ScanManager.java mentre greping la parola chiave "SCAN_MODE_BALANCED":

/** 
    * Scan params corresponding to regular scan setting 
    */ 
    private static final int SCAN_MODE_LOW_POWER_WINDOW_MS = 500; 
    private static final int SCAN_MODE_LOW_POWER_INTERVAL_MS = 5000; 
    private static final int SCAN_MODE_BALANCED_WINDOW_MS = 2000; 
    private static final int SCAN_MODE_BALANCED_INTERVAL_MS = 5000; 
    private static final int SCAN_MODE_LOW_LATENCY_WINDOW_MS = 5000; 
    private static final int SCAN_MODE_LOW_LATENCY_INTERVAL_MS = 5000; 

    /** 
    * Scan params corresponding to batch scan setting 
    */ 
    private static final int SCAN_MODE_BATCH_LOW_POWER_WINDOW_MS = 1500; 
    private static final int SCAN_MODE_BATCH_LOW_POWER_INTERVAL_MS = 150000; 
    private static final int SCAN_MODE_BATCH_BALANCED_WINDOW_MS = 1500; 
    private static final int SCAN_MODE_BATCH_BALANCED_INTERVAL_MS = 15000; 
    private static final int SCAN_MODE_BATCH_LOW_LATENCY_WINDOW_MS = 1500; 
    private static final int SCAN_MODE_BATCH_LOW_LATENCY_INTERVAL_MS = 5000; 

checkout anche fuori ScanManager.ScanNative.configureRegularScanParams(). Due parametri scanWindow e scanInterval sono impostati in base all'impostazione di scansione (ScanSettings.SCAN_MODE_LOW_POWER, ScanSettings.SCAN_MODE_BALANCED, ScanSettings.SCAN_MODE_LOW_LATENCY), convertiti in unità BLE e quindi passati a gattSetScanParametersNative().

Spero che questo aiuti.

+0

Grazie @yanoken !! – HRG

+1

Che cosa significa esattamente se dico che ho impostato i miei ScanSettings su SCAN_MODE_LOW_LATENCY? Si dice che scansiona ogni 5 secondi per 5 secondi e poi ricomincia a scansionare? Non penso che sia così perché ho un'applicazione in cui gli aggiornamenti sono più veloci di ogni 5 secondi. Potresti per favore approfondire l'interpretazione di questi valori? – BigPenguin

1

Non sono sicuro se questo è accurato o se si può anche utilizzare per trovare i valori che avete bisogno, ma ho trovato un po 'di code from Google regarding scanning settings:

// Constants for Scan Cycle 
    // Low Power: 2.5 minute period with 1.5 seconds active (1% duty cycle) 
    /* @VisibleForTesting */ static final int LOW_POWER_IDLE_MILLIS = 148500; 
    /* @VisibleForTesting */ static final int LOW_POWER_ACTIVE_MILLIS = 1500; 

    // Balanced: 15 second period with 1.5 second active (10% duty cycle) 
    /* @VisibleForTesting */ static final int BALANCED_IDLE_MILLIS = 13500; 
    /* @VisibleForTesting */ static final int BALANCED_ACTIVE_MILLIS = 1500; 

    // Low Latency: 1.67 second period with 1.5 seconds active (90% duty cycle) 
    /* @VisibleForTesting */ static final int LOW_LATENCY_IDLE_MILLIS = 167; 
    /* @VisibleForTesting */ static final int LOW_LATENCY_ACTIVE_MILLIS = 1500; 
+0

Grazie Tim. Ma non riuscivo a trovare questo tipo di definizioni nel codice sorgente di Google Android. Dopo aver cercato al livello di driver ho trovato qualcosa come questo http://androidxref.com/5.0.0_r2/xref/external/bluetooth/bluedroid/stack/btm/btm_ble_int .h #define BTM_BLE_GAP_DISC_SCAN_INT 18/* Intervallo (scan_int) = 11,25 ms = 0x0010 * 0,625 ms */ #define BTM_BLE_GAP_DISC_SCAN_WIN 18/* scan_window = 11,25 ms = 0x0010 * 0,625 ms */ – HRG

+0

corrisponde alla finestra di scansione e intervallo di scansione. Ma mi chiedo come definiscono i valori per SCAN_MODE_BALANCED, SCAN_MODE_LOW_LATENCY, SCAN_MODE_LOW_POWER! – HRG

Problemi correlati