GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - bacnet-stack/bacnet-stack-zephyr: Zephyr OS integration of BACnet Stack

BranchesTags
Open more actions menu

Latest commit

 

History

347 Commits
347 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
codechecker
codechecker
 
 
zephyr
zephyr
 
 
.clang-format
.clang-format
 
 
.gitignore
.gitignore
 
 
.pre-commit-config.yaml
.pre-commit-config.yaml
 
 
AGENTS.md
AGENTS.md
 
 
CHANGELOG.md
CHANGELOG.md
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
SECURITY.md
SECURITY.md
 
 
samples.sh
samples.sh
 
 
subsys.sh
subsys.sh
 
 
unittest.sh
unittest.sh
 
 
west-ci.sh
west-ci.sh
 
 
west-ci.yml
west-ci.yml
 
 
west.yml
west.yml
 
 

Repository files navigation

bacnet-stack-zephyr

BACnet open source protocol for embedded systems using Zephyr OS integrated with BACnet Stack C library hosted on Sourceforge and Github sites.

  • Github
  • Sourceforge

Continuous Integration

This integration uses automated continuous integration services to assist in automated compilation, validation, linting, security scanning, and unit testing to produce robust C code.

Actions Status GitHub Workflow: BACnet Stack Zephyr Twister Unit Tests and Sample Build

Actions Status GitHub Workflow: CodeQL Analysis

What the code does

The Zephyr OS integration offers a collection of samples in the zephyr/samples folder that highlight the features of this BACnet integration, including some BACnet Basic dynamically created objects and services that can be used to quickly create a custom BACnet device on a variety of existing boards.

These samples are crafted to be simple and easy to understand, serving as a starting point for your own projects.

This repository is a Zephyr manifest-module, which means it can be used in either of the following ways:

  • As a module brought in by a different manifest (recommended for product development)

    [Prototyped but not verified] Add the following into the root manifest file (e.g., $workspace_dir/$manifest_repo/west.yml)

    # In external manifest repository, `west.yml`
    # to bring in the Zephyr integration of bacnet-stack
    # as a Zephyr module
    
      # Add the following under remotes:
        - name: bacnet-stack
          url-base: https://github.com/bacnet-stack
    
      # Add the following under projects:
        - name: bacnet
          repo-path: bacnet-stack-zephyr
          path: modules/lib/bacnet
          import:
            name-allowlist:
              - bacnet-stack
    
        - name: bacnet-stack
          path: modules/lib/bacnet/stack
    
    • As a workspace manifest repository (recommended for bacnet-stack contributions):

      west init -m https://github.com/bacnet-stack/bacnet-stack-zephyr --mr default $my_workspace

Backward Compatible Samples and Applications

Note that as Zephyr OS versions change, their API often changes. This library will use the following methods to accommodate the changes:

  1. Use defines from <zephyr/version.h> for API changes:

    #if ZEPHYR_VERSION_CODE >= ZEPHYR_VERSION(4,2,0)
    typedef uint64_t mgmt_event_t;
    #else
    typedef uint32_t mgmt_event_t;
    #endif
    
  2. In CMakeLists.txt, after find_package(Zephyr) has returned, by checking the Zephyr version for source files, include paths, or compile definitions:

    if ("${KERNEL_VERSION_STRING}" VERSION_GREATER_EQUAL "4.2.0")
    # Do stuff...
    endif()
    

    KERNEL_VERSION_STRING is not available before find_package(Zephyr) runs Kconfig, so this cannot select Kconfig fragments (CONF_FILE, EXTRA_CONF_FILE) or board overlays. See 3 and 4.

  3. In Kconfig, which is processed by the Zephyr tree being built. Kconfig is processed inside find_package(Zephyr), so CONF_FILE and EXTRA_CONF_FILE cannot be chosen from KERNEL_VERSION_STRING in CMakeLists.txt. When a symbol was renamed between Zephyr versions, use a sample Kconfig that selects both names, since selecting a symbol that the Zephyr tree does not define is ignored. See the b-asc sample.

  4. There is not a clean way to manage version breaking changes in .dts, .dtsi or .overlay files since the device tree compile occurs before the version.h file is generated.

Hello BACnet Stack

A simple "Hello World" sample that can be used with any supported board boards and prints "Hello BACnet-Stack" to the console.

BACnet Standardized Device Profiles

Device Profile - BACnet Smart Actuator (B-SA)

A device application demonstrating configuration of a BACnet Smart Actuator (B-SA) device profile that can be used with any supported boards.

Device Profile - BACnet Smart Sensor (B-SS)

A device application demonstrating configuration of a BACnet Smart Sensor (B-SS) device profile that can be used with any supported boards.

Device Profile - BACnet Lighting Device (B-LD)

A device application demonstrating configuration of a BACnet Lighting Device (B-LD) device profile that can be used with any supported boards.

Device Profile - BACnet Lighting Supervisor (B-LS)

A device application demonstrating configuration of a BACnet Lighting Supervisor (B-LS) device profile that can be used with any supported boards.

Device Profile - BACnet Application Specific Controller (B-ASC)

A device application demonstrating configuration of a BACnet Application Specific Controller (B-ASC) device profile that can be used with any supported boards.

BACnet File Shell

See the BACnet File shell guide for configuration, commands, and backup decoding details.

Coding Style and Guidelines

See Zephyr Project Coding Guidelines

About

Zephyr OS integration of BACnet Stack

Resources

Readme
Apache-2.0 license

Contributing

Contributing

Security policy

Security policy
Activity
Custom properties

Stars

13 stars

Watchers

2 watching

Forks

9 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.