GithubHelp home page GithubHelp logo

zinwalin / ios-nrf-mesh-library Goto Github PK

View Code? Open in Web Editor NEW

This project forked from nordicsemiconductor/ios-nrf-mesh-library

0.0 1.0 0.0 114.17 MB

The Bluetooth Mesh Provisioner and Configurator library.

Home Page: https://www.nordicsemi.com/

License: BSD 3-Clause "New" or "Revised" License

Ruby 0.05% Swift 99.94% C 0.01%

ios-nrf-mesh-library's Introduction

GitHub license Version Carthage compatible SwiftPM Compatible

Bluetooth mesh library for iOS

The nRF Mesh library allows to provision Bluetooth mesh devices, configure and exchange messages.

It is written in Swift, and can be easily added to a 3rd part project using CocoaPods, SPM or Carthage.

See documentation for more information.

Features

The library is compatible with

  • Mesh Profile 1.0.1,
  • Mesh Model 1.0.1,
  • Mesh Device Properties 2.

The mesh network configuration (JSON schema) is compatible with

  • Mesh Configuration Database Profile 1.0.

Bluetooth mesh specifications are available at Bluetooth.com.

Supported features

  1. Provisioning with all features available in Mesh Profile 1.0.1, including OOB Public Key and all types of OOB, using GATT bearer.
  2. Configuration, including managing keys, publications, subscription, and hearbeats (both as client and server).
  3. Support for client and server models.
  4. Groups, including those with virtual labels.
  5. Scenes (both as client and server).
  6. Managing proxy filter.
  7. IV Index update (handled by Secure Network beacons).
  8. Key Refresh Procedure (using ConfigKeyRefreshPhaseSet messages, not Secure Network beacon).
  9. Hearbeats (both as client and server).
  10. Exporting network state with format compatible to Configuration Database Profile 1.0, including partial export.
  11. Option to use own transport layer with default GATT Bearer implementation available.

NOT (yet) supported features

The following features are not (yet) supported:

  1. The rest of models defined by Bluetooth SIG - PRs are welcome!*
  2. IV Index update (initiation) - not a top priority, as other nodes may initiate the update.
  3. Health server messages - in our TODO list.
  4. Remote provisioning - in our TODO list.
  5. Device Firmware Update (DFU) - in our TODO list.

nRF Mesh sample app

Most of the features listed above are demonstrated in nRF Mesh sample application.

Use pod try to install and set up the sample app when using CocoaPods.

The app is available on App Store.

Supported features

  1. Provisioning with all available features.
  2. Configuration of local and remote nodes.
  3. Managing network (provisioners, network and application keys, scenes), resetting and exporting configuration.
  4. Managing groups, including those with virtual labels.
  5. Sending group messages.
  6. UI for local models, which include:
    • Generic OnOff Client and Server,
    • Generic Level Client and Server,
    • Simple OnOff vendor model by Nordic.
  7. Support for some server models:
    • Generic OnOff,
    • Generic Level,
    • Vendor models.
  8. Scenes, both as client and server.
  9. Automatic connection to nearby nodes and automatic proxy filter management.

Testing

All features are tested against nRF5 SDK for Mesh and nRF Connect SDK based mesh devices.

Requirements

  • Xcode 12 or newer.
  • An iOS 10.0 or newer device with BLE capabilities.

Optional

Feedback

Any feedback is more than welcome. Please, test the app, test the library and check out the API.

Use Issues to report a bug, or ask a question. We also encourage to submit Pull Requests with new features or bug fixes.

License

BSD 3-Clause License.

ios-nrf-mesh-library's People

Contributors

philips77 avatar mostafaberg avatar sebasborda avatar trusbe avatar hinzclaudio avatar domir avatar ewouth avatar ball-hayden avatar horsejockey avatar peterhinson avatar elod avatar roshanrajaratnam avatar steffenern avatar bspinner avatar codepgq avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.