2015-01-06 15 views
5

Tôi đã tải xuống mã nguồn AOSP cho Lollipop 5.0. Ở mức api 21, trong cài đặt quét năng lượng thấp bluetooth có ba tùy chọn để quét các thiết bị ble- SCAN_MODE_BALANCED, SCAN_MODE_LOW_LATENCY, SCAN_MODE_LOW_POWER. Là dựa trên khoảng thời gian quét khác nhau và giá trị cửa sổ quét? Nếu vậy, tôi có thể tìm các giá trị được xác định cho các macro này trong thư mục mã nguồn ở đâu.Android AOSP - Định nghĩa khoảng thời gian quét và cửa sổ quét trong mã nguồn Android

Trả lời

5

tôi thấy bên dưới các giá trị trong http://androidxref.com/5.0.0_r2/xref/packages/apps/Bluetooth/src/com/android/bluetooth/gatt/ScanManager.java khi greping từ khóa "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; 

Đồng thời thanh toán ra ScanManager.ScanNative.configureRegularScanParams(). Hai thông số scanWindowscanInterval được đặt theo cài đặt quét (ScanSettings.SCAN_MODE_LOW_POWER, ScanSettings.SCAN_MODE_BALANCED, ScanSettings.SCAN_MODE_LOW_LATENCY), được chuyển đổi thành đơn vị BLE và sau đó được chuyển đến gattSetScanParametersNative().

Hy vọng điều này sẽ hữu ích.

+0

Thankyou @yanoken !! – HRG

+1

Điều đó có nghĩa là gì nếu tôi nói tôi đặt ScanSettings thành SCAN_MODE_LOW_LATENCY? Nó nói nó quét mỗi 5 giây trong 5 giây và sau đó bắt đầu quét lại - Tôi không nghĩ rằng đây là trường hợp như tôi có một ứng dụng mà các bản cập nhật nhanh hơn mỗi 5 giây. Bạn có thể giải thích kỹ lưỡng về việc diễn giải các giá trị này không? – BigPenguin

1

Tôi không chắc chắn nếu điều này là chính xác hoặc nếu bạn thậm chí có thể sử dụng nó để tìm ra giá trị mà bạn cần, nhưng tôi tìm thấy một số 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

Thankyou Tim. Nhưng tôi không thể tìm thấy loại định nghĩa như vậy trong mã nguồn google android .Sau khi tìm kiếm ở trình điều khiển cấp i tìm thấy một cái gì đó ở đây như thế này 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/* Khoảng thời gian (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

là ở trên tương ứng với cửa sổ quét và khoảng thời gian quét. Nhưng tôi tự hỏi cách chúng xác định các giá trị cho SCAN_MODE_BALANCED, SCAN_MODE_LOW_LATENCY, SCAN_MODE_LOW_POWER! – HRG

Các vấn đề liên quan