Overview of Zephyr Adaption

The following is a quick overview of the Zephyr adaptation of CHIP. Most of this code will have parallels in any new adaptation.

(All file names are relative to connectedhomeip/src/...).

include/platform/Zephyr/PlatformManagerImpl.h
Zephyr/PlatformManagerImpl.cpp

  • Concrete implementation of PlatformManager interface
  • Provides initialization of the CHIP stack and core event loop for the chip task
  • Relies on GenericPlatformManagerImpl_POSIX<> class to provide most of the implementation

include/platform/Zephyr/ConfigurationManagerImpl.h
Zephyr/ConfigurationManagerImpl.cpp

  • Concrete implementation of ConfigurationManager interface
  • Manages storage and retrieval of persistent configuration data
  • Relies on GenericConfigurationManagerImpl<> classes to implement most API functionality
  • Delegates low-level reading and writing of persistent values to ZephyrConfig class

include/platform/Zephyr/ThreadStackManagerImpl.h
Zephyr/ThreadStackManagerImpl.cpp

  • Concrete implementation of ThreadStackManager interface
  • Supports Thread stack initialization and core event loop processing
  • Relies on GenericThreadStackManagerImpl_OpenThread/POSIX<> classes to implement most API functionality

include/platform/Zephyr/BLEManagerImpl.h
Zephyr/BLEManagerImpl.cpp

  • Concrete implementation of the BLEManager interface
  • Maps CHIP‘s BLE interface abstractions (BleLayer, BlePlatformDelegate, BleApplicationDelegate) onto the platform’s native BLE services
  • Implements chip-compatible BLE advertising.

platform/Zephyr/Logging.cpp

  • Adaption of chip debug logging to platform logging facility.

platform/Zephyr/ZephyrConfig.cpp

  • Implements low-level read/write of persistent configuration values
  • Class API specifically designed to work in conjunction with the GenericConfigurationManagerImpl<> class.

platform/Zephyr/CHIPDevicePlatformEvent.h

  • Defines platform-specific event types and data for the chip Device Layer.