This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

sd_ble_uuid_vs_add over Serialization

Is sd_ble_uuid_vs_add available over the serialzation interface? How can we add a custom vendor ID over the interface if there isn't a serialzation function for it here?

  • I went ahead and added the functionality to sdk/Nordic/nrf51822/Source/ble/rpc/ble_rpc_cmd_decoder.c:

    
    static uint32_t uuid_vs_add_handle(uint8_t * p_command, uint32_t command_len)
    {
        uint32_t err_code;
        uint8_t uuid_type;
        uint32_t index = 0;
        ble_uuid128_t* p_uuid_data = (ble_uuid128_t*)&(p_command[index]);
    
        RPC_DECODER_LENGTH_CHECK(command_len, index, SD_BLE_UUID_VS_ADD);
    
        err_code = sd_ble_uuid_vs_add(p_uuid_data, &uuid_type);
    
        return ble_rpc_cmd_resp_send(SD_BLE_UUID_VS_ADD, err_code);
    }
    
    
    static uint32_t ble_base_cmd_decode(uint8_t * p_command, uint8_t op_code, uint32_t command_len)
    {
    ....
            case SD_BLE_UUID_VS_ADD:
                err_code = uuid_vs_add_handle(p_command, command_len);
                break;
    ....
    }
    
    

    Then call it with the SD_BLE_UUID_VS_ADD opcode followed by the 128-bit vendor base UUID.

    This seems to work fine. Anyone see an issue with this?

    P.S. Might be worth adding the corresponding encoder to ble_rpc_cmd_encoder.c as well.