答:
///UUID List
uint8_t uuid_list_array[DEVICE_NUM][MESH_DEV_UUID_LEN] = {0};
///UUID List Index
int uuid_list_index = 0;
/*
uint8_t dev_uuid[MESH_DEV_UUID_LEN];
//p_dev_info.dev_uuid 为扫描到的UUID
*/
//UUID存储到二维数组的 算法,如下
do
{
if (uuid_list_index >= DEVICE_NUM)
{
os_printf(LM_CMD, LL_INFO," uuid_list_index >=%d Node Number =%d \n", DEVICE_NUM,uuid_list_index+1);
for (int i = 0; i < DEVICE_NUM; i++)
{
os_printf(LM_CMD, LL_INFO,"--- uuid_list_array[%d]= ",i);
for (int j = 0; j < MESH_DEV_UUID_LEN; j++)
{
os_printf(LM_CMD, LL_INFO,"%02X ",uuid_list_array[i][j]);
}
os_printf(LM_CMD, LL_INFO,"--- \n");
}
uuid_list_index = 0;
break;
}
memcpy(uuid_list_array[uuid_list_index], p_dev_info.dev_uuid, MESH_DEV_UUID_LEN);
os_printf(LM_CMD, LL_INFO, " uuid_list_array[%d]: ",uuid_list_index);
for(int j = 0; j < MESH_DEV_UUID_LEN; j++)
{os_printf(LM_CMD, LL_INFO, "%02X ",uuid_list_array[uuid_list_index][j]);}
os_printf(LM_CMD, LL_INFO, "\n");
uuid_list_index = uuid_list_index + 1;
if (uuid_list_index < DEVICE_NUM)
{
for (int n = 0; n < uuid_list_index; n++)
{
if (memcmp(uuid_list_array[n], p_dev_info.dev_uuid, MESH_DEV_UUID_LEN) == 0)
{
break;
}
else
{
memcpy(uuid_list_array[uuid_list_index], p_dev_info.dev_uuid, MESH_DEV_UUID_LEN);
os_printf(LM_CMD, LL_INFO, " uuid_list_array[%d]: ",uuid_list_index);
for(int j = 0; j < MESH_DEV_UUID_LEN; j++)
{os_printf(LM_CMD, LL_INFO, "%02X ",uuid_list_array[uuid_list_index][j]);}
os_printf(LM_CMD, LL_INFO, "\n");
// uuid_list_index = uuid_list_index + 1;
}
}
}
} while (0);
运行结果:

UUID重复存储,没有达到我想要的效果。。