examples/daemon: cherrypick traits fix

BUG: 27276010
Change-Id: I1c87df45681331eaf35c618cb72a975f273b44e8

daemon: register device after component init
7f2a5dcefb7e5d9785efeb4c68542fd3b2e4865f
daemon/light: fix light trait def
9e9023e1855760dd7545086f4204631ddf38703b
examples/speaker: fix volume trait
f7bfb6af844f3df9ef04ea8ddf8061763a21a837
examples/lock: fix lock trait
c96ee4e4e61dc308f685757b6fd5adcec3dd1614
Change-Id: I06d468faab07863f9af1eb81cf68a82707857fa4
Reviewed-on: https://weave-review.googlesource.com/2850
Reviewed-by: Vitaly Buka <vitalybuka@google.com>
4 files changed
tree: 3be7635f465d1a92952cf361d428132496b16c80
  1. examples/
  2. include/
  3. libweave/
  4. src/
  5. third_party/
  6. .clang-format
  7. .gitignore
  8. AUTHORS
  9. CONTRIBUTORS
  10. file_lists.mk
  11. libweave-test.pc.in
  12. libweave.pc.in
  13. LICENSE
  14. Makefile
  15. README.md
  16. tests.mk
  17. VERSION
README.md

Overview

libWeave is the library with device side implementation of Weave protocol.

Sources

Sources are located in git repository at https://weave.googlesource.com/weave/libweave/

Install Repo

Make sure you have a bin/ directory in your home directory and that it is included in your path:

mkdir ~/bin
PATH=~/bin:$PATH

Download the Repo tool and ensure that it is executable:

curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

Checkout code

repo init -u https://weave.googlesource.com/weave/manifest
repo sync

Directory structure

PathDescription
include/Includes to be used by device code
src/Implementation sources
examples/Example of device code
third_party/Dependencies
Makefile, *.mk filesBuild files

Quick start on Debian/Ubuntu

Install prerequisites

sudo apt-get update
sudo apt-get install \
  autoconf \
  automake \
  binutils \
  g++ \
  hostapd \
  libavahi-client-dev \
  libcurl4-openssl-dev \
  libevent-dev \
  libexpat1-dev \
  libnl-3-dev \
  libnl-route-3-dev \
  libssl-dev \
  libtool

Prerequisites

Common

  • autoconf
  • automake
  • binutils
  • libtool
  • libexpat1-dev

For tests

  • cmake
  • gtest (included; see third_party/get_gtest.sh)
  • gmock (included; see third_party/get_gtest.sh)

For examples

  • cmake
  • hostapd
  • libavahi-client-dev
  • libcurl4-openssl-dev
  • libevhtp (included; see third_party/get_libevhtp.sh)
  • libevent-dev

Compiling

The make --jobs/-j flag is encouraged, to speed up build time. For example

make -j

which happens to be the same as

make all -j

Build library

make out/Debug/libweave.so

Build examples

make all-examples

See the examples README for details.

Testing

Run tests

make test
make export-test

or

make testall

Making changes

Configure git

Make sure to have correct user in local or global config e.g.:

git config --local user.name "User Name"
git config --local user.email user.name@example.com

Start local branch

repo start <branch name> .

Edit code and commit locally e.g.

git commit -a -v

Upload CL

repo upload .

Request code review

Go to the url from the output of “repo upload” and add reviewers.