2017-03-09 177 views
0

我現在專注於Android,但我相信這些問題的答案適用於任何操作系統,他們只會使用不同的功能來獲取數據。藍牙低功耗 - 雙方獲得RSSI?

建立BLE連接後,我可以將BluetoothGatt.readRemoteRssi()設置爲「讀取連接的遠程設備的RSSI」。

第一個問題:我是否正確理解了這個功能,它向我返回了我的Android設備正在接收的信號(從遠程BLE設備發送)的強度,對嗎?我認爲這是拋出我的函數名稱,不應該只是名稱readRssi()? readRemoteRssi()讓我覺得有一個伴隨函數readLocalRssi()。

第二個問題:假設我正確理解功能,是否有任何內置於藍牙的內容可以讓我問「遠程BLE設備看到RSSI是什麼?」換句話說,Android設備正在傳輸的信號中,有多少到達遠程BLE設備?

根據我得到的答案LATER

補充說,顯然我沒有解釋自己很好。讓我再嘗試一次。

遠程BLE設備正在以一定的功率進行傳輸,並且這些無線電波向四面八方傳播,其中一些波被我的移動設備接收。我的移動設備測量這些波的強度,並將其報告爲RSSI。 RSSI代表「接收信號強度指示器」,由於它是本地移動設備進行接收,因此將該功能命名爲「遠程」似乎很奇怪。 RSSI當然會測量來自遙控發射器的東西 - 否則它不會很有用。

類似地,移動設備以特定功率進行發送,並且這些無線電波向全方位發出,並且這些無線電波中的一些被遠程BLE設備接收。那個遠程BLE設備測量那些波浪的強度,那將是他的 RSSI的。我的第二個問題是詢問藍牙標準中是否有任何東西(預定義的特徵,例如像「電池電量」),讓我的移動設備查詢遠程BLE設備並詢問「嘿,夥計,你得到了多少信號?

+0

rssi與遠程設備的連接啓動並運行時如何工作?你的用例是什麼? – 7383

+0

我希望能夠向用戶顯示信號強度,以便他們可以判斷他們是否開始遠離遠程設備。我認爲在我開始看到數據包丟失和其他故障之前,信號強度會給我一個很長的指示。 –

回答

-1
am I understanding this function correctly, it is returning to me the strength of the signal 
(transmitted from the remote BLE device) that my Android device is receiving, right? 

實際上,rssi是基於從遠程設備接收到的廣告數據包通過ble芯片計算出來的。我們不直接從遠程設備獲取rssi值。

I think it's the function name that's throwing me off, shouldn't the name just be readRssi()? 

不,我們實際上是在閱讀遠程設備的rssi。

readRemoteRssi() makes me think there's a companion function readLocalRssi() somewhere. 

不,沒有這樣的方法,rssi在當前設備連接到的另一端被確定。

assuming I am understanding the function correctly, is there anything built into Bluetooth that lets me ask "what is the remote BLE device seeing for RSSI?" In other words, of the signal that the Android device is transmitting, how much of that is reaching the remote BLE device? 

這是rssi。它是根據接收的總數據包數量來計算的。

注:我的一些答案是根據我的經驗得出的。

+0

請指定-1的原因 – 7383

+0

感謝您加入並嘗試提供幫助,但我依靠StackOverflow獲得明確答案,而不是猜測。 –

+0

確定沒有問題。我來堆棧溢出的一些指針而不是明確的答案。我們每個人都有自己的思考過程。如果我沒有提到這個答案是我的猜測,我不會得到-1。那麼我不介意在這裏丟失點,但我相信我的大部分答案都是正確的,並以某種方式幫助人們進一步研究它。 – 7383