Tool/software:
Hello,
I m using code composer studio version 10.3.0.00007
ble sdk simplelink_cc2640r2_sdk_5_10_00_02
XDC tool version 3_51_03_28_core
external flash w25x40cluxig
predefined symbol MAX_NUM_BLE_CONNS=1
In ll_config.h, #define MAX_NUM_BLE_CONNS 3
This is my part of code to identified the destination
//find address of coin to connect in list of scanned coins
uint8 find_dest_addr() //// ** This function finds destination address for the shortest distance Coin or gateway **//
{
uint8_t scenario=0,diff=0; //
uint8_t i;
uint16_t dest_id=0xFFFF;
uint8_t dest_id_index;
uint8_t devices_in_range=0,devices_out_range=0;
int8 highest_RSSI = -96;
int8 lowest_RSSI = -60;
for (i=0;i<dev_list_index;i++)
{
if (scanned_coin_info[i].in_range == TRUE)
devices_in_range++;
else
devices_out_range++;
}
if (devices_out_range==0 && devices_in_range != 0 )
scenario = 1;
else if (devices_out_range!=0 && devices_in_range == 0 )
scenario = 2;
else if (devices_out_range!=0 && devices_in_range != 0)
scenario = 3;
else
scenario = 0xFF;
if(gatdata==0) //coin to gateway
{
if (scenario!=0xFF)
{
if(scenario==1 || scenario==3)
{
for (i=0;i<dev_list_index;i++)
{
if((scanned_coin_info[i].in_range == TRUE) && (scanned_coin_info[i].RSSI < lowest_RSSI) &&(scanned_coin_info[i].static_id< dest_id))
{
dest_id_index = i;
lowest_RSSI=scanned_coin_info[i].RSSI;
}
}
}
else if (scenario == 2)
{
for (i=0;i<dev_list_index;i++)
{
if((scanned_coin_info[i].in_range == FALSE) && (scanned_coin_info[i].RSSI > highest_RSSI))
{
dest_id_index = i;
highest_RSSI=scanned_coin_info[i].RSSI;
}
}
}
return dest_id_index;
}
}
else if(gatdata==1) //gateway to coin
{
dest_id=0x0000;
if (scenario!=0xFF)
{
if(scenario==1 || scenario==3)
{
if(same_dyn_id==1)
{
for (i=0;i<dev_list_index;i++)
{
if((scanned_coin_info[i].in_range == TRUE) && (scanned_coin_info[i].RSSI < lowest_RSSI) && (scanned_coin_info[i].static_id > dest_id))
{
dest_id_index = i;
lowest_RSSI=scanned_coin_info[i].RSSI;
}
}
}
else if(same_dyn_id==0)
{
for (i=0;i<dev_list_index;i++)
{
if((scanned_coin_info[i].in_range == TRUE) && (scanned_coin_info[i].dyn_id_16 > dest_id))
{
dest_id_index = i;
dest_id=scanned_coin_info[i].dyn_id_16;
}
}
}
}
else if (scenario == 2)
{
for (i=0;i<dev_list_index;i++)
{
if((scanned_coin_info[i].in_range == FALSE) && (scanned_coin_info[i].RSSI > highest_RSSI))
{
dest_id_index = i;
highest_RSSI=scanned_coin_info[i].RSSI;
}
}
}
}
return dest_id_index;
}
else
return 0xFF;
}
I want to implement simultaneous connections.please guide me.
Thanks