tree: 418421907a2888d3f28037eba3020971ea7ca329 [path history] [tgz]
  1. bluez/
  2. dbus/
  3. args.gni
  4. BLEManagerImpl.cpp
  5. BLEManagerImpl.h
  6. BlePlatformConfig.h
  7. BUILD.gn
  8. CHIPDevicePlatformConfig.h
  9. CHIPDevicePlatformEvent.h
  10. CHIPLinuxStorage.cpp
  11. CHIPLinuxStorage.h
  12. CHIPLinuxStorageIni.cpp
  13. CHIPLinuxStorageIni.h
  14. CHIPPlatformConfig.h
  15. ConfigurationManagerImpl.cpp
  16. ConfigurationManagerImpl.h
  17. ConnectivityManagerImpl.cpp
  18. ConnectivityManagerImpl.h
  19. ConnectivityUtils.cpp
  20. ConnectivityUtils.h
  21. DeviceInstanceInfoProviderImpl.cpp
  22. DeviceInstanceInfoProviderImpl.h
  23. DiagnosticDataProviderImpl.cpp
  24. DiagnosticDataProviderImpl.h
  25. DnssdImpl.cpp
  26. DnssdImpl.h
  27. InetPlatformConfig.h
  28. KeyValueStoreManagerImpl.cpp
  29. KeyValueStoreManagerImpl.h
  30. Logging.cpp
  31. NetworkCommissioningDriver.h
  32. NetworkCommissioningEthernetDriver.cpp
  33. NetworkCommissioningThreadDriver.cpp
  34. NetworkCommissioningWiFiDriver.cpp
  35. OTAImageProcessorImpl.cpp
  36. OTAImageProcessorImpl.h
  37. PlatformManagerImpl.cpp
  38. PlatformManagerImpl.h
  39. PosixConfig.cpp
  40. PosixConfig.h
  41. README.md
  42. SystemPlatformConfig.h
  43. SystemTimeSupport.cpp
  44. ThreadStackManagerImpl.cpp
  45. ThreadStackManagerImpl.h
  46. WirelessDefs.h
src/platform/Linux/README.md

Overview of CHIP Linux Adaption

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

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

include/platform/Linux/PlatformManagerImpl.h
Linux/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/Linux/ConfigurationManagerImpl.h
Linux/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 PosixConfig class

include/platform/Linux/ConnectivityManagerImpl.h
Linux/ConnectivityManagerImpl.cpp

  • Concrete implementation of ConnectivityManager interface
  • Provides high-level APIs for managing device connectivity
  • Relies on various generic implementation classes to provide API functionality
  • Very much a work-in-progress in the Linux branch

include/platform/Linux/ThreadStackManagerImpl.h
Linux/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/Linux/BLEManagerImpl.h
Linux/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/Linux/Entropy.cpp

  • Implements interface to platform entropy source

platform/Linux/Logging.cpp

  • Adaption of chip debug logging to platform logging facility.

platform/Linux/PosixConfig.cpp

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