2015-01-06 10 views
5

Pobrałem kod źródłowy AOSP dla Lollipop 5.0. Na poziomie 21 api, w ustawieniach bluetooth niskiego zużycia energii dostępne są trzy opcje skanowania urządzeń - SCAN_MODE_BALANCED, SCAN_MODE_LOW_LATENCY, SCAN_MODE_LOW_POWER. Czy są oparte na różnych odstępach czasu skanowania i okna skanowania? Jeśli tak, to gdzie mogę znaleźć wartości zdefiniowane dla tych makr w katalogu kodu źródłowego.Android AOSP - Definicja interwału skanowania i okna skanowania w kodzie źródłowym Androida

Odpowiedz

5

znalazłem poniżej wartości w http://androidxref.com/5.0.0_r2/xref/packages/apps/Bluetooth/src/com/android/bluetooth/gatt/ScanManager.java podczas greping słowa kluczowego "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; 

kasy też, ScanManager.ScanNative.configureRegularScanParams(). Dwie parametry: scanWindow i scanInterval są ustawiane zgodnie z ustawieniem skanowania (ScanSettings.SCAN_MODE_LOW_POWER, ScanSettings.SCAN_MODE_BALANCED, ScanSettings.SCAN_MODE_LOW_LATENCY), przekształcane w jednostki BLE, a następnie przekazywane do gattSetScanParametersNative().

Mam nadzieję, że to pomoże.

+0

Thankyou @yanoken !! – HRG

+1

Co to dokładnie oznacza, jeśli mówię, że ustawiłem ustawienia skanowania na SCAN_MODE_LOW_LATENCY? Czy to oznacza, że ​​skanuje co 5 sekund przez 5 sekund, a następnie rozpoczyna skanowanie ponownie - nie sądzę, że tak jest, ponieważ mam aplikację, w której aktualizacje są szybsze niż co 5 sekund. Czy mógłbyś wyjaśnić interpretację tych wartości? – BigPenguin

1

Nie jestem pewien, czy to jest dokładna lub czy można nawet używać go znaleźć wartości, których potrzebujesz, ale znalazłem kilka 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

Dziękuję Tim. Ale nie mogłem znaleźć takich definicji w kodzie źródłowym Google Android. Po wyszukaniu na poziomie sterownika znalazłem coś tutaj: 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/* 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

to powyższe odnosi się do okna skanowania i interwał skanowania. Ale zastanawiam się, jak definiują wartości dla SCAN_MODE_BALANCED, SCAN_MODE_LOW_LATENCY, SCAN_MODE_LOW_POWER! – HRG

Powiązane problemy