2015-11-27 61 views
1

BLE是否支持ping操作,即向其他設備發送消息並接收其狀態?BLE是否支持Ping?

我想在Android上編寫一個應用程序,它會ping每個附近的設備並計算髮送時間和接收答案之間的時間,有可能嗎?

+0

不知道你喜歡做什麼。你可以掃描nerby設備,他們甚至會給你一個RSSI值。哪些可以用來計算距離 – woley

+0

我不想使用RSSI來計算距離我想要使用到達時間(ToA) – Radko

回答

3

正如您在評論中指出的那樣,您喜歡使用到達時間或到達時間差算法來計算基於藍牙的距離。

據我所知,這是目前在藍牙環境中更理想的方法。由於無線電信號以輕微的速度傳播(一納秒內約爲29.979釐米),您將需要較高的採樣分辨率才能獲得準確的結果。每毫微克的偏差都會導致大約30釐米的誤差。

隨着WiFi,這是用專用芯片組完成的。據我所知,這是目前不可能與Android,因爲它需要很多低級支持(芯片組和操作系統)

希望這會有所幫助!

這裏有一些來源

+0

當然這會有很大的幫助。 所以,我的第一個計劃失敗了。 是否有可能從android創建一個特殊的燈塔?特別的,因爲有了信標信號,我想添加信號的ID,使附近的設備能夠識別每個信號。 – Radko

+0

這應該是可能的。查看BLE GATT協議,可以讀取/寫入其他設備的特性(參數)。你將需要一個設備在外設模式和一個在中央模式。這應該是一個很好的開始https://www.youtube.com/watch?v=vUbFB1Qypg8 – woley

0

你可以很容易地看到發現的時間戳每個設備在onScanResult方法:

@Override 
public void onScanResult(int callbackType, ScanResult result){ 

Long lastSeen = result.getTimestampNanos(); 
//rest of your code 

} 

查看Android Documentation。您可以使用此時間戳和開始掃描的時間來獲取每個設備的近似響應時間。