Skip to content

jelderton/BartonCore

 
 

Repository files navigation

BartonCore

BartonCore is a comprehensive IoT device service framework designed to manage and interact with various devices over various underlying protocols and transports.

Table of Contents

Introduction

BartonCore produces a library for local IoT device management including a unified resource data model for devices implemented with any technology or protocol. A client of the library would typically expose the provided functionality to a local or cloud based service or user interface. These clients interface with the supported devices through a resource model that abstracts the underlying protocols and transports. This abstraction allows for the seamless extension of new protocols, transports, and device types through a pluggable extension design.

The library provides device facilities for:

  • discovery
  • commissioning/pairing (including secure credentialling)
  • configuration
  • firmware management
  • control
  • eventing

Included protocols and transports:

  • Matter
  • Zigbee
  • Thread

Additional features include:

  • Configuration backup and restore (coming soon)
  • Telemetry (coming soon)
  • Proactive fault detection

For a more detailed discussion of the architecture and design, see docs/barton-core-design.md.

Quickstart

# Check out the code and build with Docker
git clone https://github.com/rdkcentral/BartonCore.git
cd BartonCore
./dockerw ./build.sh

# Run the reference app which includes interactive CLI
./dockerw build/reference/barton-core-reference -z

Documentation

More detailed documentation can be found in the docs.

Dependencies

Primary dependencies include:

  • Matter SDK (optional)
  • Zigbee stack (optional)
  • OpenThread Border Router (optional)

BartonCore is modular, so the actual dependencies will change based on included functionality. See config/cmake/options.cmake for the available configuration options.

This project uses Docker to facilitate development and also be a record of dependencies. Please see docker/Dockerfile for details.

Development

Visual Studio Code is the preferred and supported development tool. This project includes devcontainer support and other vscode specific configuration to make it quick and easy to get started developing and debugging. See the vscode development guide for VSCode related details.

See the debugging doc for more information on debugging.

See the contributing doc for information on contributing to this project.

Known Issues

  • Adding custom device drivers is not officially supported by the public interfaces. This will be addressed soon.

About

Barton is a functional IoT contribution with Matter and Zigbee device support included

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 81.7%
  • C++ 12.7%
  • CMake 2.6%
  • Python 1.7%
  • Shell 1.1%
  • Dockerfile 0.2%