2015-01-06 27 views
5

Lollipop 5.0 için AOSP Kaynak kodunu indirdim. 21 nolu api seviyesinde, bluetooth düşük enerji tarama ayarları altında, SCAN_MODE_BALANCED, SCAN_MODE_LOW_LATENCY, SCAN_MODE_LOW_POWER telefon numaralarını taramak için üç seçenek vardır. Farklı tarama aralığı ve tarama penceresi değerlerine dayanıyor mu? Eğer öyleyse, bu makrolar için tanımlanan değerleri kaynak kod dizininde nerede bulabilirim.Android AOSP - android kaynak kodunda tarama aralığı ve tarama penceresinin tanımı

cevap

5

ben http://androidxref.com/5.0.0_r2/xref/packages/apps/Bluetooth/src/com/android/bluetooth/gatt/ScanManager.java değerlerin altında bulunmuştur "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; 

Ayrıca ScanManager.ScanNative.configureRegularScanParams dışarı ödeme(). İki param scanWindow ve scanInterval tarama ayarlarına göre ayarlanır (ScanSettings.SCAN_MODE_LOW_POWER, ScanSettings.SCAN_MODE_BALANCED, ScanSettings.SCAN_MODE_LOW_LATENCY), BLE birimlerine dönüştürülür ve daha sonra gattSetScanParametersNative() öğesine geçirilir.

Bu yardımcı olur umarım.

+0

Thankyou @yanoken !! – HRG

+1

ScanSettings'i SCAN_MODE_LOW_LATENCY olarak ayarladığımı söylersem tam olarak ne anlama gelir? 5 saniyede bir 5 saniyede bir tarama yaptığını ve tekrar taramaya başladığını söylüyor mu? - Güncellemelerin her 5 saniyeden daha hızlı olduğu bir uygulama olduğu için böyle bir durum olduğunu düşünmüyorum. Bu değerleri yorumlamaktan memnuniyet duyar mısınız? – BigPenguin

1

bu doğru olup olmadığından emin değilim ya sen bile gerek değerleri bulmak için kullanabilirsiniz, ancak bulursa bazı code from Google regarding scanning settings: anahtar kelimeyi greping ederken

// 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

Teşekkür ederim Tim. Ama ben google android kaynak kodunda bu tür tanımları bulamadım. Sürücü seviyesinde arama yaptıktan sonra bu http://androidxref.com/5.0.0_r2/xref/external/bluetooth/bluedroid/stack/btm/btm_ble_int gibi bir şey buldum. .h #define BTM_BLE_GAP_DISC_SCAN_INT 18/* Interval (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

tarama penceresine karşılık gelen ve tarama aralığı. Ama SCAN_MODE_BALANCED, SCAN_MODE_LOW_LATENCY, SCAN_MODE_LOW_POWER değerlerini nasıl tanımladıklarını merak ediyorum! – HRG

İlgili konular