blob: 3961c866a74cbcd186807f85b87b636c66011109 [file] [log] [blame] [view] [edit]
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