tree: 925abf38f024ac6f4eaa72e0f6c3451c77d9af12 [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. GlibTypeDeleter.h
  28. InetPlatformConfig.h
  29. KeyValueStoreManagerImpl.cpp
  30. KeyValueStoreManagerImpl.h
  31. Logging.cpp
  32. NetworkCommissioningDriver.h
  33. NetworkCommissioningEthernetDriver.cpp
  34. NetworkCommissioningThreadDriver.cpp
  35. NetworkCommissioningWiFiDriver.cpp
  36. OTAImageProcessorImpl.cpp
  37. OTAImageProcessorImpl.h
  38. PlatformManagerImpl.cpp
  39. PlatformManagerImpl.h
  40. PosixConfig.cpp
  41. PosixConfig.h
  42. README.md
  43. SystemPlatformConfig.h
  44. SystemTimeSupport.cpp
  45. ThreadStackManagerImpl.cpp
  46. ThreadStackManagerImpl.h
  47. 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.