如何通过Bluegiga在BLE112上获得RSSI

时间:2013-12-17 14:33:41

标签: bluetooth bluetooth-lowenergy

在BLE112的程序中,我测量RSSI,然后打开LED。我为此目的编写了一个程序。我得到RSSI,如果该值大于-70 dBm,我打开P_03和P_04中的LED,如果该值小于-70 dBm,则LED关闭。 但是有一个问题:当我闪光模块时一切正常 - LED指示灯熄灭,但当我用BLE112连接手机时,LED指示灯亮,就这样了!他们不回应RSSI的陈述。 我无法找到有关此问题的任何信息,所以我决定问你这个问题。我附上了我的项目。 这是我获得RSSI并设置为高PIN码的代码的一部分:

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 个答案:

答案 0 :(得分:1)

“”int8“数据类型是带符号(二进制补码)的8位整数,这意味着实际上0-127表示那些实际值,128到255表示-128到-1。 BLE上的RSSI值始终为负,这意味着例如-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仍然可以工作。