I have the same problem as how to discovery 128bit characteristic UUID which is totally different form 128bit service UUID,the uuid in this question is the same with me,but I can not find solution .
I modified the ble_nus_c_init() like this:
#define BASE_UUID {{0xfb,0x34,0x9b,0x5f,0x80,0x00,0x00,0x80,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00}} #define BASE_UUID_FEE9 {{0xfb,0x34,0x9b,0x5f,0x80,0x00,0x00,0x80,0x00,0x10,0x00,0x00,0xe9,0xfe,0x00,0x00}} #define BASE_UUID_CHAR_RX {{0x00,0x96,0x12,0x16,0x54,0x92,0x75,0xb5,0xa2,0x45,0xfd,0xab,0x39,0xc4,0x4b,0xd4}} #define BASE_UUID_CHAR_TX {{0x01,0x96,0x12,0x16,0x54,0x92,0x75,0xb5,0xa2,0x45,0xfd,0xab,0x39,0xc4,0x4b,0xd4}} uint32_t ble_nus_c_init(ble_nus_c_t * p_ble_nus_c, ble_nus_c_init_t * p_ble_nus_c_init) { uint32_t err_code; ble_uuid_t uart_uuid,ble_uuid1,ble_uuid2; ble_uuid128_t nus_base_uuid =BASE_UUID; //NUS_BASE_UUID; ble_uuid128_t base_uuid1 = BASE_UUID_CHAR_RX; ble_uuid128_t base_uuid2 = BASE_UUID_CHAR_TX; VERIFY_PARAM_NOT_NULL(p_ble_nus_c); VERIFY_PARAM_NOT_NULL(p_ble_nus_c_init); err_code = sd_ble_uuid_vs_add(&nus_base_uuid, &p_ble_nus_c->uuid_type); VERIFY_SUCCESS(err_code); uart_uuid.type = p_ble_nus_c->uuid_type; uart_uuid.uuid = 0xfee9; //BLE_UUID_NUS_SERVICE; p_ble_nus_c->conn_handle = BLE_CONN_HANDLE_INVALID; p_ble_nus_c->evt_handler = p_ble_nus_c_init->evt_handler; p_ble_nus_c->handles.nus_tx_handle = BLE_GATT_HANDLE_INVALID; p_ble_nus_c->handles.nus_rx_handle = BLE_GATT_HANDLE_INVALID; ble_db_discovery_evt_register(&uart_uuid); ble_uuid1.uuid = 0; err_code = sd_ble_uuid_vs_add(&base_uuid1, &ble_uuid1.type); VERIFY_SUCCESS(err_code); ble_uuid2.uuid = 0; err_code = sd_ble_uuid_vs_add(&base_uuid2, &ble_uuid2.type); VERIFY_SUCCESS(err_code); err_code=ble_db_discovery_evt_register(&ble_uuid1); err_code=ble_db_discovery_evt_register(&ble_uuid2); return err_code; }
And I set NRF_SDH_BLE_VS_UUID_COUNT to 4 , modified the ram start and size.
I can't receive the event BLE_DB_DISCOVERY_COMPLETE, but receive event BLE_DB_DISCOVERY_ERROR and BLE_DB_DISCOVERY_SRV_NOT_FOUND
When I change 0xFEE9 to 0xFEE8 I can receive the event BLE_DB_DISCOVERY_COMPLETE,but characteristic.uuid.uuid = 0x00 I don't know why.
How to discovery 128bit characteristic UUID which is totally different form 128bit service UUID?
Can someone help me?
NRF52832 SDK14.2 code base "on ble_app_uart_c" pca10040 s132
Thanks.