Go to file
YuhengLi 199e1ae9bf zblue: hfp: implement bt_sal_hfp_hf_send_battery_level API
bug: v/78000

Signed-off-by: YuhengLi <liyuheng@xiaomi.com>
2025-12-10 21:33:32 +08:00
.gitee add .github/CODEOWNERS PULL_REQUEST_TEMPLATE.md 2024-12-27 19:50:28 +08:00
.github Add bluetooth code owners configuration 2025-11-18 15:30:56 +08:00
debug bluetooth: add bt trace tool 2025-04-30 18:00:41 +08:00
dfx bluetooth: Fix the issue of Overflowed integer argument. 2025-10-15 10:20:50 +08:00
feature bluetooth: Fix the issue of failed GATTC deletion. 2025-12-03 09:48:19 +08:00
framework bluetooth: fix bt_adapter_set_debug_mode warning 2025-12-08 23:11:13 +08:00
img Merge commit 2024-11-25 17:34:53 +08:00
sample_code bluetooth: add sample adapter state debug 2025-10-30 14:19:51 +08:00
service zblue: hfp: implement bt_sal_hfp_hf_send_battery_level API 2025-12-10 21:33:32 +08:00
tests Merge commit 2024-11-25 17:34:53 +08:00
tools storage: fix memleak. 2025-11-28 21:04:53 +08:00
.clang-format Merge commit 2024-11-25 17:34:53 +08:00
.gitignore Merge commit 2024-11-25 17:34:53 +08:00
Android.bp bluetooth: Remove unused source file and add AVRCP control source to library 2025-11-28 21:36:20 +08:00
CMakeLists.txt zblue: add sal hfp C file 2025-12-10 21:33:32 +08:00
Kconfig bluetooth: fix gatt moudle ci break 2025-12-08 23:11:13 +08:00
LICENSE add ci.yml 2024-11-25 19:44:17 +08:00
Make.defs Bluetooth: update the include path for Vela Bluetooth interfaces. 2025-02-26 00:18:51 +08:00
Makefile zblue: add sal hfp C file 2025-12-10 21:33:32 +08:00
Makefile.host Merge commit 2024-11-25 17:34:53 +08:00
README.md Doc: Remove QuickAPP API details 2024-12-09 18:08:02 +08:00
README_zh-cn.md Doc: Remove QuickAPP API details 2024-12-09 18:08:02 +08:00
frameworkBluetooth.go Merge commit 2024-11-25 17:34:53 +08:00
frameworkBluetoothBin.go Vela-Android: Add support to multiple SPP client connections 2025-02-10 17:56:41 +08:00
test.py Merge commit 2024-11-25 17:34:53 +08:00

README.md

Overview of openvela Bluetooth

 English | [简体中文](README_zh-cn.md) 

1. Introduction to openvela Bluetooth

openvela Bluetooth has been certified for Bluetooth 5.4. It currently supports Bluetooth profiles listed as below:

  • Core

    • BR/EDR/BLE
    • GAP
    • L2CAP
    • GATT Client/Server
  • A2DP SRC/SNK

  • AVRCP CT/TG

  • HFP AG/HF

  • PAN

  • SPP

  • HID

  • HOGP

  • LEA

    • TMAP
    • CAP
    • BAP/ASCS/PACS/BASS
    • CSIP/CSIS
    • MCP/MCS
    • CCP/TBS
    • VCP/VCS
  • Mesh

openvela Bluetooth currently also supports a variety of open source and proprietary stacks such as Zephyr, Bluez, Bluedroid, Barrot, etc.

2. openvela Bluetooth Application Development

Third-party application developers may utilize the openvela QuickApp Feature to acquire system access capabilities.

Additionally, NDK interfaces are also provided to utilize all Bluetooth system-level capabilities. Please refer to header files in folder framework/include for more details.

3. openvela Bluetooth Driver Development

openvela Bluetooth supports multiple driver architectures. Taking the widely used BTH4 driver architecture as an example, chip manufacturers can implement a variable of the struct bt_driver_s structure type, and initialize the following member functions for it.

  • CODE int (*open)(FAR struct bt_driver_s *btdev);
  • CODE int (*send)(FAR struct bt_driver_s *btdev, enum bt_buf_type_e type, FAR void *data, size_t len);
  • CODE int (*ioctl)(FAR struct bt_driver_s *btdev, int cmd, unsigned long arg);
  • CODE void (*close)(FAR struct bt_driver_s *btdev);

The implementation of the above member functions depends on the specific type of HCI utilized, which refers to the physical bus linking the Host and the Controller.

Then, register the driver instance by passing the variable of the above structure type via the API bt_driver_register().

  • int bt_driver_register(FAR struct bt_driver_s *drv);

Please refer to the type definition in header file nuttx/include/nuttx/wireless/bluetooth/bt_driver.h. The figure below helps to provide a comprehensive understanding of its functioning within the openvela OS.

Note: chip manufacturers are not required to implement the receive() member function, for it will be initialized by the BTH4 driver.

  • CODE int (*receive)(FAR struct bt_driver_s *btdev, enum bt_buf_type_e type, FAR void *data, size_t len);

Upon receipt of HCI data from the chip, the vendor drivers should invoke the bt_netdev_receive() function, which in turn will trigger the receive() function to store the received HCI data.