commit | 34a4a93753258b0c782abb489f586e0c29d7fe74 | [log] [tgz] |
---|---|---|
author | Damian Królik <66667989+Damian-Nordic@users.noreply.github.com> | Mon Jul 20 20:07:50 2020 +0200 |
committer | GitHub <noreply@github.com> | Mon Jul 20 11:07:50 2020 -0700 |
tree | 6c7600e5e0c1945cf18e95bab7df2c49c72ea015 | |
parent | e3428ceb7d0f4cdbcef2c2f173d247347ea98fa5 [diff] |
Add support for nRF Connect SDK (#1494) * Add CMake module for building CHIP examples with Nordic NCS Currently Nordic platform layer of CHIP is based on nRF5 SDK. This commit is the first step needed to replace it with nRF Connect SDK based on Zephyr RTOS. While the old platform layer remains unchanged, add a CMake helper file which allows to build the entire CHIP using the NCS/Zephyr build system. * Port part of the door-lock example to Nordic Connect SDK Rewrite everything which doesn't depend on the CHIP platform layers using the NCS/Zephyr API. This includes functionality of the sample app related to LEDs, buttons, timers, message queues and logging. * Implement PlatformManagerImpl for nRF Connect SDK Implement PlatformManagerImpl for nRF Connect SDK based on generic implementation for Zephyr RTOS. Also provide initial implementation of functions to retrieve system time using Zephyr API and add Zephyr-based logging backend. The code compiles, but it requires other components to be tested. * Add empty stubs for nRF Connect platform layer This commit adds empty implementations of base platform functions. * Add ThreadStackManager implementation and enable OT This commit enables the OT stack in the Zephyr application. The ThreadStackManager allows the CHIP stack to control the state of the stack embedded into the Zephyr. It is required that all calls to this class are to be made from a cooperative task priority. * Adapt Inet layer to Zephyr networking API Make necessary changes to build CHIP Inet library using Zephyr networking API. Zephyr provides BSD-like socket interface, however a few things are missing: - some socket-related functions are not available, e.g. getsockname, recvmsg etc. Implement required replacements. - some constants are not available. In particular, some options passed to the setsockopt function must have been made optional. In case e.g. explicit multicast group management is needed we will have find another ways to implement that in Zephyr. - the whole ifaddrs library doesn't exist in Zephyr, so all the interface/address enumeration code must have been implemented for Zephyr. - disable TCP end point for nRF Connect SDK platform for now as it will require further changes. * Add ConnectivityManager for nRF Connect * Add README.md * Add ZCL server to the door-lock example for nRF Connect Co-authored-by: Rafał Kuźnia <rafal.kuznia@nordicsemi.no> * Apply code-review suggestions * Restyled by whitespace Co-authored-by: Rafał Kuźnia <rafal.kuznia@nordicsemi.no> Co-authored-by: Restyled.io <commits@restyled.io>
Visit connectedhomeip.com to learn more.
The Zigbee Alliance officially opened the Project Connected Home over IP (Project CHIP) Working Group on January 17 and is in the process of drafting the specification.
The Project’s design and technical processes are intended to be open and transparent to the general public, including to Work Group non-members wherever possible. The availability of this GitHub repository and its source code under an Apache v2 license is an important and demonstrable step to achieving this commitment.
The Project endeavors to bring together the best aspects of market-tested technologies and to redeploy them as a unified and cohesive whole-system solution. The overall goal of this approach is to bring the benefits of the Project to consumers and manufacturers as quickly as possible. As a result, what you observe in this repository is an implementation-first approach to the technical specification, vetting integrations in practice.
We would love for you to contribute to Project Connected Home over IP. Read our contribution guidelines here.
Instructions about how to build Project Connected Home over IP can be found here.
The Connected Home over IP repository is structured as follows:
File / Folder | Contents |
---|---|
.default-version | Default Project CHIP version if none is available via source code control tags, .dist-version , or .local-version |
bootstrap | GNU autotools bootstrap script for the Project CHIP build system |
bootstrap-configure | Convenience script that will bootstrap the Project CHIP build system, via bootstrap , and invoke configure |
build/ | Build system support content and build output directories |
BUILDING.md | More detailed information on configuring and building Project CHIP for different targets |
CODE_OF_CONDUCT.md | Code of Conduct for Project CHIP, and contributions to it |
CONTRIBUTING.md | Guidelines for contributing to Project CHIP |
CONTRIBUTORS.md | Contributors to Project CHIP |
docs/ | Documentation |
examples/ | Example firmware applications that demonstrate use of Project CHIP technology |
integrations/ | Third party integrations related to this project |
integrations/docker/ | Docker scripts and Dockerfiles |
LICENSE | Project CHIP License file (Apache 2.0) |
Makefile-Android | Convenience makefile for building Project CHIP against Android |
Makefile-Standalone | Convenience makefile for building Project CHIP as a standalone package on desktop and server systems |
README.md | This file |
src/ | Implementation of Project CHIP |
third_party/ | Third-party code used by Project CHIP |
tools/ | Tools needed to work with the Project CHIP repo |
Project CHIP is released under the Apache 2.0 license.