2013-12-17 32 views
0

獲取BLE112上的RSSI我測量RSSI,然後打開LED。我爲此寫了一個程序。我得到RSSI,如果該值大於-70 dBm,則打開P_03和P_04中的LED,如果該值小於-70 dBm,則LED熄滅。 但有一個問題:當我閃光我的模塊一切正常 - 指示燈熄滅,但是當我用BLE112連接手機時,指示燈會亮起,這就是全部!他們不迴應RSSI的陳述。 我找不到任何關於這個問題的信息,所以我決定問你這個問題。我附上我的項目。 而這部分代碼在那裏我得到RSSI並設置爲高引腳:如何在BLE112程序中通過Bluegiga

event hardware_soft_timer(handle) 
if (connected) 
call connection_get_rssi(active_connection)(ret_connection, ret_rssi) 
if (ret_rssi > -80) 
call hardware_io_port_write(0, $18, $18) 
else 
call hardware_io_port_write(0, $18, 00) 
end if 
end if 

回答

1

「的‘INT8’的數據類型是有符號(補)8位整數,這意味着實際來看,0 -127代表那些實際值,而128到255代表-128到-1,因爲RSSI值在BLE上總是負的,這意味着例如-50的數學整數表示實際上是205。傑夫羅伯格

執行以下操作:

#Get RSSI value of connection 
call connection_get_rssi(connection_handle)(connection_handle,rssi)  
#Convert ASCII into integer 
rssi = $100 - rssi 

    #if device is within range... 
    if rssi >= 80 then... 

哦.. $ 100爲十六進制256。你可以簡單地使用256將仍然工作。