tree: 69c99a9f1d71d8942cafd1c0374df2b34131b63d [path history] [tgz]
  1. dbus/
  2. dbus_bindings/
  3. hal_bindings/
  4. src/
  5. udev/
  6. upstart/
  7. .gitignore
  8. build.rs
  9. Cargo.toml
  10. DIR_METADATA
  11. OWNERS
  12. README.md
uwbd/README.md

The UWB D-Bus Daemon

This repository implements the UWB D-Bus daemon, including the service written in Rust, the D-Bus and upstart configuration files, D-Bus interface and protobuf definition. The D-Bus daemon defines the D-Bus interface, initiates the UWB service from the uwb_core library, and delegates the requests to the UWB service.

Development Flow

Officially, this project is built by ChromeOS gentoo build system. However, the D-Bus daemon binary could also be built by cargo. Building the rust code by cargo could validate whether the code is compilable quickly.

Built by Gentoo

It follows the normal ChromeOS development flow.

(inside chroot)
$ cros-workon-<board> uwbd
$ emerge-<board> uwbd

Built by Cargo

THe uwb_uci_packets packet, which is a dependency of the D-Bus daemon, depends on the bluetooth_packetgen binary. So we should install the bluetooth_packetgen binary before building the D-Bus daemon by cargo.

(inside chroot)
$ sudo emerge floss_tools
$ cargo build

HAL Implementation

When initiating the UWB service from the uwb_core library, we need to inject the UCI HAL into it. The HAL implementation should be placed at src/uci_hal_impl.rs.

File Structure

  • dbus: D-Bus policy configuration
  • dbus_bindings: D-Bus interface xml
  • protos: The protobuf message definition
  • src: The rust implementation
  • upstart: The upstart configuration