Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove subscription establishment bits from the MTRDevice base class. #35139

Merged

Conversation

bzbarsky-apple
Copy link
Contributor

_setupSubscriptionWithReason was only called from
_reattemptSubscriptionNowIfNeededWithReason.

_reattemptSubscriptionNowIfNeededWithReason was only called from:

  • _handleUnsolicitedMessageFromPublisher, which is only called in callbacks set up by _setupSubscriptionWithReason.
  • _triggerResubscribeWithReason, which only calls it when _reattemptingSubscription is YES. But that's only set to YES in _doHandleSubscriptionReset, see next item.
  • _doHandleSubscriptionReset, called from:
    • _handleSubscriptionReset: only called from callbacks set up by _setupSubscriptionWithReason.
    • _resetSubscriptionWithReasonString: called from unitTestResetSubscription and us detecting persisted data corruption in _clusterDataForPath. But we don't actually have persisted data in the MTRDevice base class anymore, so that's not reachable.

So _setupSubscriptionWithReason is not reachable and can be removed. And unitTestResetSubscription can be made a no-op on the base MTRDevice. And we can remove the _resetSubscriptionWithReasonString call in _clusterDataForPath.

Once those are done, the following become unreachable:

  • _handleSubscriptionReset
  • _handleSubscriptionError
  • Writing a nonzero value to _unitTestAttributesReportedSinceLastCheck
  • _markDeviceAsUnreachableIfNeverSubscribed
  • _handleResubscriptionNeededWithDelay
  • _handleSubscriptionEstablished
  • _handleUnsolicitedMessageFromPublisher
  • _createDataVersionFilterListFromDictionary
  • _setupConnectivityMonitoring
  • _resetSubscriptionWithReasonString

Once those have been removed, the following become unreachable:

  • HadSubscriptionEstablishedOnce
  • _stopConnectivityMonitoring
  • _doHandleSubscriptionError
  • _doHandleSubscriptionReset

Once those have been removed, the following become unreachable:

  • _setLastSubscriptionAttemptWait
  • Setting _lastSubscriptionFailureTime to non-nil
  • _clearSubscriptionPoolWork
  • _scheduleSubscriptionPoolWork
  • Use of _initialSubscribeStart
  • _storePersistedDeviceData
  • Use of _connectivityMonitor
  • Use of _lastSubscriptionFailureTimeForDescription
  • Any code depending on reattemptingSubscription being YES.
  • Use of _lastSubscriptionAttemptWait
  • Use of _lastSubscriptionAttemptWaitForDescription

Once those have been removed, _reattemptSubscriptionNowIfNeededWithReason is unreachable and can be removed.

At this point _currentReadClient and _currentSubscriptionCallback are always nil, so all code conditioned on those can be removed. Once that's done, _triggerResubscribeWithReason is a no-op, so it and all calls to it can be removed.

Since _lastSubscriptionFailureTime is always nil, all code guarded on it not being nil can be removed, so _readThroughSkipped becomes a no-op and _lastSubscriptionFailureTime can be removed.

At this point, the following are not reachable:

  • NeedToStartSubscriptionSetup
  • _changeInternalState

Once those are removed, _internalDeviceStateForDescription is unused, and _internalDeviceState is always MTRInternalDeviceStateUnsubscribed. So HaveSubscriptionEstablishedRightNow() always returns NO and can be removed.

At this point SubscriptionCallback is unused and can also be removed.

_setupSubscriptionWithReason was only called from
_reattemptSubscriptionNowIfNeededWithReason.

_reattemptSubscriptionNowIfNeededWithReason was only called from:

* _handleUnsolicitedMessageFromPublisher, which is only called in callbacks set
   up by _setupSubscriptionWithReason.
* _triggerResubscribeWithReason, which only calls it when
   _reattemptingSubscription is YES.  But that's only set to YES in
   _doHandleSubscriptionReset, see next item.
* _doHandleSubscriptionReset, called from:
   * _handleSubscriptionReset: only called from callbacks set up by
     _setupSubscriptionWithReason.
   * _resetSubscriptionWithReasonString: called from unitTestResetSubscription
     and us detecting persisted data corruption in _clusterDataForPath.  But we
     don't actually have persisted data in the MTRDevice base class anymore, so
     that's not reachable.

So _setupSubscriptionWithReason is not reachable and can be removed.  And
unitTestResetSubscription can be made a no-op on the base MTRDevice.  And we can
remove the _resetSubscriptionWithReasonString call in _clusterDataForPath.

Once those are done, the following become unreachable:

* _handleSubscriptionReset
* _handleSubscriptionError
* Writing a nonzero value to _unitTestAttributesReportedSinceLastCheck
* _markDeviceAsUnreachableIfNeverSubscribed
* _handleResubscriptionNeededWithDelay
* _handleSubscriptionEstablished
* _handleUnsolicitedMessageFromPublisher
* _createDataVersionFilterListFromDictionary
* _setupConnectivityMonitoring
* _resetSubscriptionWithReasonString

Once those have been removed, the following become unreachable:

* HadSubscriptionEstablishedOnce
* _stopConnectivityMonitoring
* _doHandleSubscriptionError
* _doHandleSubscriptionReset

Once those have been removed, the following become unreachable:

* _setLastSubscriptionAttemptWait
* Setting _lastSubscriptionFailureTime to non-nil
* _clearSubscriptionPoolWork
* _scheduleSubscriptionPoolWork
* Use of _initialSubscribeStart
* _storePersistedDeviceData
* Use of _connectivityMonitor
* Use of _lastSubscriptionFailureTimeForDescription
* Any code depending on reattemptingSubscription being YES.
* Use of _lastSubscriptionAttemptWait
* Use of _lastSubscriptionAttemptWaitForDescription

Once those have been removed, _reattemptSubscriptionNowIfNeededWithReason is
unreachable and can be removed.

At this point _currentReadClient and _currentSubscriptionCallback are always
nil, so all code conditioned on those can be removed.  Once that's done,
_triggerResubscribeWithReason is a no-op, so it and all calls to it can be
removed.

Since _lastSubscriptionFailureTime is always nil, all code guarded on it not
being nil can be removed, so _readThroughSkipped becomes a no-op and
_lastSubscriptionFailureTime can be removed.

At this point, the following are not reachable:

* NeedToStartSubscriptionSetup
* _changeInternalState

Once those are removed, _internalDeviceStateForDescription is unused, and
_internalDeviceState is always MTRInternalDeviceStateUnsubscribed.  So
HaveSubscriptionEstablishedRightNow() always returns NO and can be removed.

At this point SubscriptionCallback is unused and can also be removed.
Copy link

Review changes with SemanticDiff.

Copy link

github-actions bot commented Aug 21, 2024

PR #35139: Size comparison from 03a14ef to 9bcc564

Full report (77 builds for bl602, bl702, bl702l, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section 03a14ef 9bcc564 change % change
bl602 lighting-app bl602 FLASH 1278182 1278182 0 0.0
RAM 95880 95880 0 0.0
bl602+mfd FLASH 1292292 1292292 0 0.0
RAM 96024 96024 0 0.0
bl602+rpc FLASH 1317146 1317146 0 0.0
RAM 104304 104304 0 0.0
bl702 lighting-app bl702 FLASH 944224 944224 0 0.0
RAM 15209 15209 0 0.0
bl702+mfd FLASH 946624 946624 0 0.0
RAM 15353 15353 0 0.0
bl702+rpc FLASH 1039536 1039536 0 0.0
RAM 24221 24221 0 0.0
bl706-eth FLASH 647142 647142 0 0.0
RAM 25305 25305 0 0.0
bl706-wifi FLASH 894492 894492 0 0.0
RAM 14525 14525 0 0.0
bl702l lighting-app bl702l FLASH 960884 960884 0 0.0
RAM 16868 16868 0 0.0
bl702l+mfd FLASH 963506 963506 0 0.0
RAM 17012 17012 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 672417 672417 0 0.0
RAM 78300 78300 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 692277 692277 0 0.0
RAM 80932 80932 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 692277 692277 0 0.0
RAM 80932 80932 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 649213 649213 0 0.0
RAM 73368 73368 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 610929 610929 0 0.0
RAM 71292 71292 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 630557 630557 0 0.0
RAM 73844 73844 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 630557 630557 0 0.0
RAM 73844 73844 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 628969 628969 0 0.0
RAM 74308 74308 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 648677 648677 0 0.0
RAM 76860 76860 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 648677 648677 0 0.0
RAM 76860 76860 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 601989 601989 0 0.0
RAM 68340 68340 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 621849 621849 0 0.0
RAM 70972 70972 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 621849 621849 0 0.0
RAM 70972 70972 0 0.0
efr32 lighting-app BRD4187C FLASH 930500 930500 0 0.0
RAM 135096 135096 0 0.0
lock-app BRD4338a FLASH 740564 740556 -8 -0.0
RAM 208488 208488 0 0.0
window-app BRD4187C FLASH 1015656 1015656 0 0.0
RAM 127036 127036 0 0.0
esp32 all-clusters-app c3devkit DRAM 94192 94192 0 0.0
FLASH 1532618 1532618 0 0.0
IRAM 82538 82538 0 0.0
m5stack DRAM 115128 115128 0 0.0
FLASH 1542570 1542570 0 0.0
IRAM 117039 117039 0 0.0
linux air-purifier-app debug unknown 4624 4624 0 0.0
FLASH 2756149 2756149 0 0.0
RAM 128408 128408 0 0.0
all-clusters-app debug unknown 5408 5408 0 0.0
FLASH 6040396 6040396 0 0.0
RAM 509928 509928 0 0.0
all-clusters-minimal-app debug unknown 5304 5304 0 0.0
FLASH 5379084 5379084 0 0.0
RAM 240104 240104 0 0.0
bridge-app debug unknown 5288 5288 0 0.0
FLASH 4729230 4729230 0 0.0
RAM 216952 216952 0 0.0
chip-tool debug unknown 5832 5832 0 0.0
FLASH 12543304 12543304 0 0.0
RAM 558322 558322 0 0.0
chip-tool-ipv6only arm64 unknown 20352 20352 0 0.0
FLASH 11220508 11220508 0 0.0
RAM 608368 608368 0 0.0
fabric-admin debug unknown 5664 5664 0 0.0
FLASH 10925769 10925769 0 0.0
RAM 556522 556522 0 0.0
fabric-bridge-app debug unknown 4520 4520 0 0.0
FLASH 4550190 4550190 0 0.0
RAM 203648 203648 0 0.0
lighting-app debug+rpc+ui unknown 5936 5936 0 0.0
FLASH 5665281 5665281 0 0.0
RAM 228008 228008 0 0.0
lock-app debug unknown 5224 5224 0 0.0
FLASH 4784576 4784576 0 0.0
RAM 203736 203736 0 0.0
ota-provider-app debug unknown 4600 4600 0 0.0
FLASH 4424050 4424050 0 0.0
RAM 197720 197720 0 0.0
ota-requestor-app debug unknown 4536 4536 0 0.0
FLASH 4562668 4562668 0 0.0
RAM 202256 202256 0 0.0
shell debug unknown 4176 4176 0 0.0
FLASH 3077293 3077293 0 0.0
RAM 158936 158936 0 0.0
thermostat-no-ble arm64 unknown 9352 9352 0 0.0
FLASH 4364996 4364996 0 0.0
RAM 242416 242416 0 0.0
tv-app debug unknown 5496 5496 0 0.0
FLASH 6007141 6007141 0 0.0
RAM 583160 583160 0 0.0
tv-casting-app debug unknown 5168 5168 0 0.0
FLASH 10747917 10747917 0 0.0
RAM 645752 645752 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 909444 909444 0 0.0
RAM 142211 142211 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 881332 881332 0 0.0
RAM 140350 140350 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 841188 841188 0 0.0
RAM 141030 141030 0 0.0
nxp contact k32w0+release FLASH 577580 577580 0 0.0
RAM 70444 70444 0 0.0
k32w1+release FLASH 590208 590208 0 0.0
RAM 62488 62488 0 0.0
light k32w0+release FLASH 613008 613008 0 0.0
RAM 69916 69916 0 0.0
k32w1+release FLASH 674880 674880 0 0.0
RAM 71472 71472 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1639684 1639684 0 0.0
RAM 210904 210904 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1544372 1544372 0 0.0
RAM 207624 207624 0 0.0
light cy8ckit_062s2_43012 FLASH 1464188 1464188 0 0.0
RAM 200728 200728 0 0.0
lock cy8ckit_062s2_43012 FLASH 1463236 1463236 0 0.0
RAM 225064 225064 0 0.0
qpg lighting-app qpg6105+debug FLASH 656068 656068 0 0.0
RAM 105128 105128 0 0.0
lock-app qpg6105+debug FLASH 613992 613992 0 0.0
RAM 99612 99612 0 0.0
stm32 light STM32WB5MM-DK FLASH 478424 478424 0 0.0
RAM 144716 144716 0 0.0
telink air-quality-sensor-app tlsr9528a_retention FLASH 620280 620280 0 0.0
RAM 50932 50932 0 0.0
all-clusters-app tlsr9118bdk40d FLASH 680850 680850 0 0.0
RAM 149544 149544 0 0.0
all-clusters-minimal-app tlsr9528a FLASH 774178 774178 0 0.0
RAM 110704 110704 0 0.0
bridge-app tlsr9258a FLASH 679010 679010 0 0.0
RAM 91588 91588 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 621872 621872 0 0.0
RAM 50972 50972 0 0.0
light-switch-app-ota-shell-factory-data tlsr9528a FLASH 707762 707762 0 0.0
RAM 74312 74312 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 620560 620560 0 0.0
RAM 145532 145532 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 806732 806732 0 0.0
RAM 99456 99456 0 0.0
lock-app-dfu tlsr9528a FLASH 654854 654854 0 0.0
RAM 67008 67008 0 0.0
ota-requestor-app tlsr9258a FLASH 697026 697026 0 0.0
RAM 91272 91272 0 0.0
pump-app-usb tlsr9518adk80d FLASH 631318 631318 0 0.0
RAM 55752 55752 0 0.0
pump-controller-app tlsr9518adk80d FLASH 608828 608828 0 0.0
RAM 52996 52996 0 0.0
shell tlsr9518adk80d FLASH 466810 466810 0 0.0
RAM 68660 68660 0 0.0
smoke_co_alarm-app tlsr9528a_retention FLASH 628662 628662 0 0.0
RAM 52692 52692 0 0.0
temperature-measurement-app-mars-ota tlsr9518adk80d FLASH 652698 652698 0 0.0
RAM 56632 56632 0 0.0
thermostat tlsr9518adk80d FLASH 633974 633974 0 0.0
RAM 53392 53392 0 0.0
window-covering tlsr9118bdk40d FLASH 522774 522774 0 0.0
RAM 98532 98532 0 0.0
tizen all-clusters-app arm unknown 4820 4820 0 0.0
FLASH 1703568 1703568 0 0.0
RAM 89300 89300 0 0.0
chip-tool-ubsan arm unknown 10272 10272 0 0.0
FLASH 17393774 17393774 0 0.0
RAM 7598540 7598540 0 0.0

@bzbarsky-apple
Copy link
Contributor Author

Fast-tracking platform-specific fix with platform owner review.

@mergify mergify bot merged commit 4aac314 into project-chip:master Aug 22, 2024
67 checks passed
@bzbarsky-apple bzbarsky-apple deleted the remove-MTRDevice-base-subscription branch August 22, 2024 14:22
PeterC1965 pushed a commit to PeterC1965/connectedhomeip that referenced this pull request Aug 28, 2024
…project-chip#35139)

_setupSubscriptionWithReason was only called from
_reattemptSubscriptionNowIfNeededWithReason.

_reattemptSubscriptionNowIfNeededWithReason was only called from:

* _handleUnsolicitedMessageFromPublisher, which is only called in callbacks set
   up by _setupSubscriptionWithReason.
* _triggerResubscribeWithReason, which only calls it when
   _reattemptingSubscription is YES.  But that's only set to YES in
   _doHandleSubscriptionReset, see next item.
* _doHandleSubscriptionReset, called from:
   * _handleSubscriptionReset: only called from callbacks set up by
     _setupSubscriptionWithReason.
   * _resetSubscriptionWithReasonString: called from unitTestResetSubscription
     and us detecting persisted data corruption in _clusterDataForPath.  But we
     don't actually have persisted data in the MTRDevice base class anymore, so
     that's not reachable.

So _setupSubscriptionWithReason is not reachable and can be removed.  And
unitTestResetSubscription can be made a no-op on the base MTRDevice.  And we can
remove the _resetSubscriptionWithReasonString call in _clusterDataForPath.

Once those are done, the following become unreachable:

* _handleSubscriptionReset
* _handleSubscriptionError
* Writing a nonzero value to _unitTestAttributesReportedSinceLastCheck
* _markDeviceAsUnreachableIfNeverSubscribed
* _handleResubscriptionNeededWithDelay
* _handleSubscriptionEstablished
* _handleUnsolicitedMessageFromPublisher
* _createDataVersionFilterListFromDictionary
* _setupConnectivityMonitoring
* _resetSubscriptionWithReasonString

Once those have been removed, the following become unreachable:

* HadSubscriptionEstablishedOnce
* _stopConnectivityMonitoring
* _doHandleSubscriptionError
* _doHandleSubscriptionReset

Once those have been removed, the following become unreachable:

* _setLastSubscriptionAttemptWait
* Setting _lastSubscriptionFailureTime to non-nil
* _clearSubscriptionPoolWork
* _scheduleSubscriptionPoolWork
* Use of _initialSubscribeStart
* _storePersistedDeviceData
* Use of _connectivityMonitor
* Use of _lastSubscriptionFailureTimeForDescription
* Any code depending on reattemptingSubscription being YES.
* Use of _lastSubscriptionAttemptWait
* Use of _lastSubscriptionAttemptWaitForDescription

Once those have been removed, _reattemptSubscriptionNowIfNeededWithReason is
unreachable and can be removed.

At this point _currentReadClient and _currentSubscriptionCallback are always
nil, so all code conditioned on those can be removed.  Once that's done,
_triggerResubscribeWithReason is a no-op, so it and all calls to it can be
removed.

Since _lastSubscriptionFailureTime is always nil, all code guarded on it not
being nil can be removed, so _readThroughSkipped becomes a no-op and
_lastSubscriptionFailureTime can be removed.

At this point, the following are not reachable:

* NeedToStartSubscriptionSetup
* _changeInternalState

Once those are removed, _internalDeviceStateForDescription is unused, and
_internalDeviceState is always MTRInternalDeviceStateUnsubscribed.  So
HaveSubscriptionEstablishedRightNow() always returns NO and can be removed.

At this point SubscriptionCallback is unused and can also be removed.
bzbarsky-apple added a commit that referenced this pull request Aug 30, 2024
…ates (#34944)

* Start addressing comments from issue #34565

* Add WHM event test support

* Adapt test 2.3 to check for events

* Restyled by whitespace

* Restyled by clang-format

* Restyled by autopep8

* Fix failing CI build

* Restyled by clang-format

* Fix some CI build issues

* Update src/app/clusters/water-heater-management-server/water-heater-management-server.cpp

* Add event support and fix tank percentage steps

* Get tank percentage calculation and expected result correct

* Add a test for emergencyBoost=True being specified in the BoostStarted command

* Add and use a Energy_mWh type

* [NXP][docker] Update k32w1 SDK (#34927)

Signed-off-by: marius-alex-tache <[email protected]>

* [ESP32] Delta OTA Feature (#29011)

* [ESP32] Delta OTA Feature

* Fix some issues with header

* Update readme

* Some refactoring and cleanups

* Address review comments

* Apply suggestions from code review

Co-authored-by: Shubham Patil <[email protected]>

---------

Co-authored-by: PSONALl <[email protected]>
Co-authored-by: Rohit Jadhav <[email protected]>
Co-authored-by: Rohit Jadhav <[email protected]>
Co-authored-by: Shubham Patil <[email protected]>

* Fix typo in NXP dockerfile: missing backslash (#34931)

* Fixed test 1.6 and updated the scripts to work in CI. (#34918)

* Fixed test 1.6 and updated the scripts to work in CI.

* Restyled by autopep8

---------

Co-authored-by: Restyled.io <[email protected]>

* [NXP][k32w1] Fix docker image (#34935)

Create a separate folder for each west workspace.

Signed-off-by: marius-alex-tache <[email protected]>

* Checking third party deps doesn't pass after someone fixes it (#34872)

* Fixing this to stop breaking PRs

* Qualifying as expression

* Making this more readable now that it's an expression

* Implement the AndroidChipLogging (#34899)

* Refine android log priority based on category

This change adds ANDROID_LOG_INFO priority for kLogCategory_Progress.
Refine android log priorities to enhance debugging efficiency and
prepare an environment where lower-priority logs can be controlled and
excluded using the log filter function.

Signed-off-by: Youngho Yoon <[email protected]>

* Implement the AndroidChipLogging

Implemented the AndroidChipLogging.setLogFilter to enhance the logging
mechanism. This method allows for the filtering out of unnecessary or
redundant log messages, significantly reducing noise in the logs.
To use the log filter, call AndroidChipLogging.setLogFilter with the
appropriate filter criteria. The arg is log level in android.util.Log.
Example: AndroidChipLogging.setLogFilter(android.util.Log.ERROR)

Signed-off-by: Youngho Yoon <[email protected]>

* Restyled by google-java-format

---------

Signed-off-by: Youngho Yoon <[email protected]>
Co-authored-by: Restyled.io <[email protected]>

* Syslog and logging tweaks (#34941)

* Make syslog ident and facility overridable and tweak options

* Linux: Be a little less verbose when writing settings

* Add out-of-band msgs to add and remove Supported Areas and Maps (#34930)

* update the status field of progress elements at the end of a clean.

* Added some style suggestions from the review of PR 34887.

* update the readme.

* Added a simple message to add a map.

* Added an out-of-band message to add a supported area.

* Added out-of-band messages to remove supported maps and supported areas.

* Updated the rvc-app PICS values. Updated TC-SEAR-1.2 to include the necessary out-of-band messages to run the test in CI.

* refactored to improve readability.

* Restyled by clang-format

* Restyled by prettier-markdown

* Removed oddly duplicated method.

* Fixed the json value conversion types.

---------

Co-authored-by: Restyled.io <[email protected]>

* Restructured folders in chip-energy-management-app - no code change (#34879)

* Refactored file location for chip-energy-management-app. Updated esp32 and linux build files.

* Updated some all-clusters-app build and CMakeLists (linux, esp32, psoc6)

* Updated remaining build and CMakefiles with new folders.

* Fixed unit tests BUILD.gn

* Restyled by gn

* Missed Ameba .cmake

* Missed all-clusters-minimal-app/esp32/main/CMakeLists.txt

---------

Co-authored-by: Restyled.io <[email protected]>

* [NXP][config] Adding CMake support to build CHIP libs for NXP FreeRTOS platforms (#34901)

* [NXP][config][freertos] Adding support to build Matter lib and port files with cmake on NXP freertos platforms

Signed-off-by: Dina Benamar <[email protected]>

* [NXP][config][common] Create common .cmake file to include common configs between freertos & zephyr

Signed-off-by: Dina Benamar <[email protected]>

* [NXP][config][zephyr] Include common.cmake which adds common options to zephyr & freertos

Signed-off-by: Dina Benamar <[email protected]>

* [NXP][config][freertos] Updates to align with new flag introduction "chip_enable_secure_whole_factory_data"

Signed-off-by: Dina Benamar <[email protected]>

* [NXP][config][freertos] Set build_matter_standalone_lib to true to support building CHIP libs with CMake in matter-over-thread configuration

Signed-off-by: Dina Benamar <[email protected]>

---------

Signed-off-by: Dina Benamar <[email protected]>

* [chip-tool] Adjust the maximum value of 'discriminator' to align with spec (#34940)

* [examples][lock-common] Remove iostream include (#34952)

* iostream adds a lot of unnecessary functions when lock-app
   is compiled for non-linux platforms, increasing ram and
   flash consumption.
 * linux lock-app compiles without it

Signed-off-by: Andrei Menzopol <[email protected]>

* Fixed devcontainer creation for huge user ids (#34948)

* Enabling this for macOS Catalyst apps (#34956)

* Add new common NXP dockerfile (#34947)

* [NXP][docker image] Add new common NXP docker image for next SDK version

Signed-off-by: Martin Girardot <[email protected]>

* [NXP][docker image] remove k32w1 SDK clone as it will use common NXP SDK

Signed-off-by: Martin Girardot <[email protected]>

---------

Signed-off-by: Martin Girardot <[email protected]>

* Use timedInteraction for RevokeCommissioning in CCTRL_2_2 (#34957)

Co-authored-by: Andrei Litvin <[email protected]>

* [Fabric-Admin] Fix 'fabricsync sync-device' command always fails (#34938)

* [Fabric-Admin] Fix 'fabricsync sync-device' command always fails

* Use default random salt

* Update examples/fabric-admin/commands/pairing/OpenCommissioningWindowCommand.h

Co-authored-by: Abdul Samad <[email protected]>

* Address review comments

---------

Co-authored-by: Abdul Samad <[email protected]>

* Fix user_params usage (#34964)

* Fixed the discovery mode in esp32 factory script to a bitmap value instead of enum (#34900)

* Fix typo in wait_for_user_input (#34965)

* Remove wrong dependency to attribute id 82 (#34975)

This was a left-over attribute id before a spec change where attributes got removed. After that the attribute id 82dec is SetpointHoldExpiryTimestamp which has nothing to do with Presets

* replacing "stringcase" python package with internal implementation + generated java and kotlin code (#34949)

* changing matter_idl functions

* changing yaml runner functions

* removing stringcase from config and requirement files

* restyle

* improve string handling

* fixing generated java and kotlin code

* regenerate idl golden image for test_generators.py

* adding unit test

* restyle

* adding unit test to build.GN

* [Tizen] Update Tizen SDK to 8.0 (#34171)

* Update tizen to 8.0

* Install platform certificate

* Reverse restyle diff

* Review fix - version update

* Add information about used 7.0 tizen package

---------

Co-authored-by: Arkadiusz Bokowy <[email protected]>

* updated list of AcceptedCommands list for Thermostat cluster with Preset feature enabled (#34981)

* Update CCTRL 2.2 to not potentially use uninitialized variables in the class on teardown (#34955)

* Do not use uninitialized bits in teardown

* Extra guard for file remove

* Fix a few more instances of app_process

---------

Co-authored-by: Andrei Litvin <[email protected]>

* [Python] Auto-import all clusters into the chip.clusters namespace (#34928)

* Auto-import all clusters into the chip.clusters namespace

* Fix __all__ lists

* ZAP-generate __all__ with all clusters

* fix unused variable issue on non-macOS testing (#34970)

* Add constraint enforcement on responseTimeoutSeconds in commissioner control cluster (#34982)

* Add constraint enforcement on responseTimeoutSeconds

This adds constraints in the implementation and also fixes
up error codes in CCTRL_2_2 test.

* Fix comment

* Fix conversion error (#34989)

* Update ZAP to newest nightly to get fix for global types (#34996)

* Update zap.version

* Update zap.json

* Bump min ZAP version

* Regen ZAP files after update

* Restore extra newline

* Create new ICD Manager in fabric-admin to service KeepActive Command (#34894)

---------

Co-authored-by: Restyled.io <[email protected]>
Co-authored-by: yunhanw <[email protected]>

* [Silabs]Provision storage sourceset (#34929)

* Create a separte source_set for the provision storage implementation

* Fix efr32 build using provision flash storage

* fix argument duplication which is not needed.

* apply suggested renames

* [Telink] Update Docker image (Zephyr update) (#34980)

* [Telink] Update Docker image (Zephyr update)

* [Telink] Update Docker image (Zephyr update)

---------

Co-authored-by: Andrei Litvin <[email protected]>

* [DRLK] Bugfix: return INVALID_COMMAND when attempting to add/modify (#34120)

* [DRLK] Bugfix: return INVALID_COMMAND when attempting to add/modify
credential from a different fabric than the User/Credential's creator fabric

Add YAML test steps to verify correct behavior

Fixes #34119

* Restyled by prettier-yaml

* Update src/app/tests/suites/DL_UsersAndCredentials.yaml

Co-authored-by: Andrei Litvin <[email protected]>

---------

Co-authored-by: Restyled.io <[email protected]>
Co-authored-by: Andrei Litvin <[email protected]>

* [NXP][k32w1] Rework reference apps (#34926)

* [NXP][platform][common] Update pw RPC flag in streamer_nxp

Signed-off-by: marius-alex-tache <[email protected]>
(cherry picked from commit 4ae033a1bddd5d914e862791c111eebca41a62e8)

* [NXP][examples][common] Fix binding issue due to generated Zap flag renaming

Signed-off-by: Martin Girardot <[email protected]>
(cherry picked from commit b50b382478138ad02103e55194b0145b1e61e841)

* [NXP][examples][common] make-pretty update

(cherry picked from commit efc51cc65471f4f5f667947ef18a4656e1d29578)

* [NXP][examples][common] Fix contact-sensor-app always returning empty diagnostic logs

The LogProvider class method GetSizeForIntent() was always returning
zero as log size due to an incorrect evaluation of the result of the
SyncGetValue() call.

GetSizeForIntent() is evaluating the size of the diagnostic log by
trying to read the key using a zero length buffer. This action will
return the size of the key in storage, but it will also yield a
CHIP_ERROR_BUFFER_TOO_SMALL error code. GetSizeForIntent() however
was not expecting this error code and it was returning zero in all
situations when the status returned by SyncGetValue() was anything
else but CHIP_NO_ERROR.

The function was updated to take into account that, under these
circumstances, the SyncGetValue() function always returns
CHIP_ERROR_BUFFER_TOO_SMALL.

Signed-off-by: Marian Chereji <[email protected]>
Reviewed-by: Doru-Cristian Gucea <[email protected]>
(cherry picked from commit dd3b3b784318f73cf6f0390f79d1fdf0160169d3)

* [NXP][examples][common] Call init using the base class reference

Signed-off-by: marius-alex-tache <[email protected]>
(cherry picked from commit b7a0a0a4d88bd5d03b70f36b34c2475b614bd296)

* [NXP][examples][common] Update app task common code

New task base API:
- PostEventsProcessedAction - this will be called in the main loop,
after all events have been processed. An example of concrete action
is to animate some LEDs.
- PrintOnboardingInfo - the default implementation remains the same.
It can be overwritten by the concrete application task class.
- AppMatter_DisallowDeviceToSleep/AppMatter_AllowDeviceToSleep -
An application that uses low power mode should overwrite the API to
implement the allow/disallow entering low power mechanism.
Before taking the OT mutex, the device is disallowed to enter low power.
The device is allowed to enter low power after the OT mutex is released.

Other changes:
- The app event queue handle should be static such that the concrete
application task can initialize it during Start() call.
- The ticksToWait passed to xQueueReceived is used to specify
the maximum amount of time the task should block waiting for an event.
This can be modified according to the application needs, e.g. is needed
by an application that has LED animation.
- PostEvent should take into account ISR context when populating the event queue.
- PostEvent becomes a static method.
- Thread device type is specified by the following flag: CONFIG_THREAD_DEVICE_TYPE
This is set by default to kThreadDeviceType_Router.

Signed-off-by: marius-alex-tache <[email protected]>
(cherry picked from commit d88e78ea6c973eb736915110bb227ad3515eec98)

* [NXP][examples][common] Add additional common components

- Add led widget component
- Add diagnostic logs component - chip::NXP::App::DiagnosticLogsDemo::DisplayUsage
should be implemeneted to showcase how the diagnostic logs provider should be used.
- Add low power component - chip::NXP::App::LowPower::Init should be implemented
according to the application needs. A default example is implemented, which registers
an empty enter/exit low power callback.
- Add operational keystore component - the API contains two functions:
	- GetInstance - should return the address of a concrete operational keystore class
	- Init - can be used to register a persistent storage delegate in case the concrete
	  class is using persistent storage (which will be our case)
- Add user interface feedback component - this component defines an abstract interface
that can be implemented by applications in order to provide some kind of feedback to the user
in certain conditions: logging, LED animations, etc. Add example of lighting manager, which
uses LED animation for user feedback.
- Add clusters component - add an API for identify related callbacks. Add implementation for
common MatterPostAttributeChangeCallback, which delegates the work to the device manager component.
- Add RPC component - this is a simple Init API that can be used to initialize PW RPC related
components, such as UART.

Signed-off-by: marius-alex-tache <[email protected]>
(cherry picked from commit 46a1d3d673b9cae14d33c749e3741727449e6ff9)

* [NXP][examples][common] Add missing header in Identify

Signed-off-by: marius-alex-tache <[email protected]>
(cherry picked from commit 3abfee2c6eea327ae931a150733ac83639d157d5)

* [NXP][examples][common] Add multi-image OTA requestor initiator

Signed-off-by: marius-alex-tache <[email protected]>
(cherry picked from commit 5848e4d4e2d384c4bfe41714bd41e25c4b1ba1e8)

* [NXP][examples][common] Update pw RPC implementation

Update AppRpc API by adding two new methods used by the common
RPC implementation:
- ButtonHandler
- Reboot

Signed-off-by: marius-alex-tache <[email protected]>
(cherry picked from commit 5e40934145825c61444e43e479ed7ac5c26605a4)

* [NXP][examples][common] Small updates to common app code

- Add call to feedback manager init.
- Remove PostEventsProcessedAction. Call FeedbackMgr().DisplayInLoop()
directly in the main loop.
- Move PostEvent in AppTaskBase interface and make it virtual.
- Add demo of diagnostic logs usage.
- Update PrintOnboardingInfo to take into account user action requried
commissioning flow.
- Remove usage of deprecated sFunction from Lighting manager.
- Add LowPower::Init call.
- If FSL_OSA_TASK_ENABLE is used, then call AppTaskMain inside Start, instead
of creating the app task.
- Add PrintCurrentVersion API to print the software version string and software
version.
- Enclose DeviceInfoProviderImpl usage based on CONFIG_DEVICE_INFO_PROVIDER_IMPL
- Add diagnostic logs cluster init under the corresponding flag.

Signed-off-by: marius-alex-tache <[email protected]>
(cherry picked from commit 1619c92380275dc0466f9cf9dc9e818671406b06)

* [NXP][examples][common] Make Animate pure virtual

Signed-off-by: marius-alex-tache <[email protected]>
(cherry picked from commit eaf3789fc2d1e562fe030acc758e5f322b5f02d3)

* [NXP][examples][common] Add pw RPC init

RPC_TASK_STACK_SIZE and RPC_TASK_PRIORITY can now be defined
in the build system to override the default values.

Signed-off-by: marius-alex-tache <[email protected]>
(cherry picked from commit 7962d612b14502dc3f514c5c3d39891b086cfd63)

* [NXP][examples][common] Allow platforms to redefine the path to the FactoryDataProvider.h that needs to be included

Signed-off-by: Dina Benamar <[email protected]>
(cherry picked from commit 097cd999c4767572f8cc55fac18f93ac3cb5d50c)

* [NXP][examples][common] Add TestEventTriggerDelegate

 * TestEventTriggerDelegate is now used at Server Initialization
   to add the ICDManager instance as Handler

Signed-off-by: Andrei Menzopol <[email protected]>
(cherry picked from commit edce1dc967130589e74cdd9c8289719171141178)

* [NXP][examples][common] Minor updates for some components

The KVS wear stats are stored in the user diagnostic log key hence only
initialize this key if the KVS wear stats are not enabled.

Signed-off-by: Marian Chereji <[email protected]>

[nxp noup][examples][common] Remove UpdateState API

The interface can be simplified by calling RestoreState
instead of UpdateState when needed. This implies that the
caller must update the cluster attribute by itself.

Signed-off-by: marius-alex-tache <[email protected]>

[nxp noup][examples][common] Rename LightingManager to LedManager

Signed-off-by: marius-alex-tache <[email protected]>

* [NXP][examples][common] Add initial version of lighting app

- Copy lighting app sources to common folder
- Add device callbacks
- Use common OTA support
- Use common app factory data
- Use led widgets for lighting app
- Use common app task and button management
- Decouple lighting manager from app task
- Update LED status function
- Update lighting manager related flags
	Flags:
	- LIGHTING_MANAGER_ENABLE_DIMMABLE_LED to enable dimmable LED feature
	- LIGHTING_MANAGER_ENABLE_STATUS_LED to enable status LED usage
	These flags can be overwritten in AppConfig.h.
- Make lighting manager more configurable
- Create button manager
	The ButtonManager class should define the buttons callbacks and
	all callback delegates.

	Moved AppMatterButton_registerButtons implementation inside the
	button manager source file.
- Update lighting manager interface
- Replace lighting manager calls with feedback manager
	LightingManager now implements the UserFeedbackInterface abstract class and the
	dimmable feature was moved to a new class: LightingManagerDimmable.
- Move identify code in a separate file
- Remove deprecated #include statements from all files.
- Add commissioning complete state
	A boolean static member is added to AppTask. It is set when the
	kCommissioningComplete event is received. It should be used by
	other components if they need a way to check the state of the device.
- Add button action to switch to ICD active mode
- Add support for BooleanState in device callbacks
- Add diagnostic logs usage demo
- Enclose feedback manager calls in CONFIG_ENABLE_FEEDBACK flag
	This flag should be defined whenever the application must provide
	some kind of user interface feedback, such as LED animation.
	In case of low power, this flag will not be defined.
- Remove unused features (e.g. diagnostic logs)
- Overwrite event queue and ticks to wait
- Call PlatformMgrImpl API for PreInitMatterStack actions
- Replace PW_RPC_ENABLED with CONFIG_ENABLE_PW_RPC

Signed-off-by: marius-alex-tache <[email protected]>
(cherry picked from commit bed6655227d44900279cbd0ef547771da9143895)

* [NXP][examples][common] Add initial version of contact sensor

Signed-off-by: marius-alex-tache <[email protected]>
(cherry picked from commit 637580aa6c63048ae1a956807c284165c2af17ed)

* [NXP][openthread][k32w1] Update mbedtls target

Signed-off-by: marius-alex-tache <[email protected]>
(cherry picked from commit 3c84b1fd3987958bc0dcf49a283c281e48b400f8)

* [NXP][platform][k32w] OTA/FactoryData changes

 * Add FactoryDataDriver interface which handles factory data update
   functionality and factory data ram backup operations;
   must be implemented for each platform
 * Make FactoryDataProvider global instances
 * Move Restore mechanism and plain-text SignWithDacKey in
   common FactoryDataProvider
 * Adapt Validate and SearchForId to use factory data config
   which stores size, start, payload
 * Move OTAFactoryDataProcessor in common folder
 * Adapt to be generic and use FactoryDataDriver functions instead

Signed-off-by: Andrei Menzopol <[email protected]>
(cherry picked from commit 3a81c2367013c2a2ed08ecbbeac89ce15943998e)

* [NXP][platform][k32w1] SDK 2.15 platform updates

 * remove RNG_SetPseudoRandomNoSeed call to accomodate new RNG API changes.
 * add SDK root, SDK release, and SDK 2.15 gn arguments. They will be used
   to differentiate between SDK versions (2.12 vs 2.15) and release
   status (repo vs packages).

Signed-off-by: Andrei Menzopol <[email protected]>

[nxp noup][platform][k32w] Small fixes for k32w platform code

 * correct typos
 * remove executable access permissions
 * remove unused files
 * change openthread_root to ot-nxp/openthread-k32w1
 * use nxp_mbedtls gn target

Signed-off-by: Andrei Menzopol <[email protected]>
(cherry picked from commit 1905c1cea645506f8a88e514c2eacecea81ac385)

* [NXP][platform][k32w1] Add "chip_key_storage" solution selector and littlefs support

Updated the K32W1 platform build files by adding the "chip_key_storage"
selector which will help developers select an implementation option
for the key storage between "littlefs" and "fwk_nvm".

Signed-off-by: Marian Chereji <[email protected]>

[nxp noup][k32w1] Temporarily disable OpenThread settings save-on-idle when using LittleFS key storage

When using LittleFS key storage, the OpenThread settings save-on-idle
feature requires additional support in the application idle task,
which is not yet available. In order for the OT settings saving to
work at this stage and in this configuration, the save-on-idle
feature must be disabled until the required idle task support will be
implemented.

Signed-off-by: Marian Chereji <[email protected]>

[nxp noup][platform][k32w1] Fix minimum data chunk size required when programming the flash memory

According to the specifications, the internal flash memory of the
K32W1 platform supports programming chunks of memory which are 128
bytes long (instead of 256).

Signed-off-by: Marian Chereji <[email protected]>

[nxp noup][platform][k32w1] Increase LittleFS cache size to 1K to suppress frequent data synchronizations

A small cache size forces LittleFS to perform frequent data
synchronizations with the storage (flash memory) and this consumes a
number of data blocks which are not available in the K32W1 Matter
applications. To reduce the fast consumption of flash memory data
blocks, the LittleFS cache size was increased to 1KB.

Signed-off-by: Marian Chereji <[email protected]>
(cherry picked from commit 753f7d7390661bd5dbd29cc9cfa7d3a4e4728ba2)

* [NXP][platform][k32w1] Add Zephyr NVS based key storage build option

Added a new build option (chip_key_storage="nvs") which allows the
developers to use the Zephyr NVS file system as a key storage
solution.

Signed-off-by: Marian Chereji <[email protected]>
(cherry picked from commit 1d42e48d8f50f6e9999b49025ea3d71545e89a3d)

* [NXP][examples][k32w1] App updates

 * the sdk root was moved to platform args.
 * update readme files
 * Add CONNECTIVITY_MANAGER_THREAD_DEVICE_TYPE define.
 * Set define accordingly based on FTD/MTD configuration.
 * Solve issue when lighting-app is MTD but device type is set to
   Router because it was hardcoded.
 * Remove deprecated files
 * Move some headers in examples/platform for common usage

Signed-off-by: Andrei Menzopol <[email protected]>
(cherry picked from commit c2b626df132e058ce674df0ee20965b3029c462d)

* [NXP][examples][k32w1] Update ZclCallbacks after transition to common code

Signed-off-by: marius-alex-tache <[email protected]>

* [NXP][k32w1] Remove k32w parent folder

Signed-off-by: marius-alex-tache <[email protected]>

* [NXP][platform][k32w1] Add FactoryDataDriver implementation

Signed-off-by: marius-alex-tache <[email protected]>

* [NXP][platform][k32w] Remove k32w/common

This folder was moved to nxp/common/legacy area.

Signed-off-by: marius-alex-tache <[email protected]>
(cherry picked from commit 755081c71bde287e2d065e5fd9b1a0922c3b341a)

* [NXP][scripts] Minor updates for NXP related scripts

Add HWParams APP FactoryData support

 * Add proper format for HWParameters app factory data section
 * Put changes under new argument

Signed-off-by: Andrei Menzopol <[email protected]>

[nxp noup][scripts][common] Fix Crc16 attribute when using latest version

Signed-off-by: marius-alex-tache <[email protected]>

[nxp noup][scripts] Update structure k32w1 path

All k32w1 folders were moved under nxp, removing the k32w parent.

Signed-off-by: marius-alex-tache <[email protected]>

[nxp noup][scripts][ota] Update paths after k32w transition

Signed-off-by: marius-alex-tache <[email protected]>
(cherry picked from commit 4963ce98725b74e94f498f959d46edf4933fa56c)

* [NXP][platform][common] Add nxp_factory_data, nxp_ota gn targets

The application can use these targets to integrate the default, platform-specific
NXP factory data provider and OTA implementation. Each platform should define an
"nxp_factory_data" and "nxp_ota" source sets.

Usage:
deps += [ "${chip_root}/src/platform/nxp:nxp_factory_data" ]
deps += [ "${chip_root}/src/platform/nxp:nxp_ota" ]

Signed-off-by: marius-alex-tache <[email protected]>
(cherry picked from commit 4869c4a97134692fe87a59b9b69d33f836d9b2e9)

* [NXP][platform][common] Create NXPConfigNVS.cpp file, remove NXPConfig BLE dependencies

Signed-off-by: Martin Girardot <[email protected]>
(cherry picked from commit 50e14e4a1b9f8561126310e19ebbaf72ca7bbdbe)

* [NXP] revert mcxw71 headers

Signed-off-by: marius-alex-tache <[email protected]>

* [NXP][k32w1] Add default logging target

Signed-off-by: marius-alex-tache <[email protected]>

* [NXP][k32w1] Update paths to reference nxp_matter_support

Signed-off-by: marius-alex-tache <[email protected]>

* [NXP] Bump nxp_matter_support

Signed-off-by: marius-alex-tache <[email protected]>

* Restyled by whitespace

* Restyled by clang-format

* Restyled by gn

* Restyled by prettier-markdown

* Restyled by autopep8

* Restyled by isort

* [NXP][k32w1] Fix gn import order

Signed-off-by: marius-alex-tache <[email protected]>

* [NXP][k32w1] Fix wrong README reference

Signed-off-by: marius-alex-tache <[email protected]>

* [NXP][k32w1] Update workflow docker image

Signed-off-by: marius-alex-tache <[email protected]>

* [NXP][rw61x] Adding nxp_ota and nxp_factory_data as they are now mandatory

Signed-off-by: Gatien Chapon <[email protected]>

* [NXP][platform][common] Fix build warning

(cherry picked from commit 72b1cbaaf36fe6cf2af57a8c7ad3cc457b45c713)

* Restyled by gn

* [NXP][platform] Remove deprecated files

Signed-off-by: marius-alex-tache <[email protected]>

* [NXP][workflow] Create separate jobs for k32w0/k32w1

k32w0 builds use chip-build-k32w Docker image, but k32w1 builds
use chip-build-nxp Docker image.

Signed-off-by: marius-alex-tache <[email protected]>

* [NXP][k32w0] Adding nxp_ota and nxp_factory_data as they are now mandatory

Signed-off-by: marius-alex-tache <[email protected]>

* [NXP][scripts] Fix script issue when there is no --args

Signed-off-by: Martin Girardot <[email protected]>

* [NXP][k32w1] Disable SMU2

Signed-off-by: marius-alex-tache <[email protected]>

---------

Signed-off-by: marius-alex-tache <[email protected]>
Signed-off-by: Gatien Chapon <[email protected]>
Signed-off-by: Martin Girardot <[email protected]>
Co-authored-by: Martin Girardot <[email protected]>
Co-authored-by: Dina Benamar <[email protected]>
Co-authored-by: Marian Chereji <[email protected]>
Co-authored-by: Andrei Menzopol <[email protected]>
Co-authored-by: Restyled.io <[email protected]>
Co-authored-by: Gatien Chapon <[email protected]>
Co-authored-by: Yassine El Aissaoui <[email protected]>

* [Fabric-Sync] Simplify and update the fabric sync guide (#34993)

* [Fabric-Sync] Symplify and update the fabric sync guide

* Restyled by prettier-markdown

* Update docs/guides/fabric_synchronization_guide.md

Co-authored-by: Terence Hampson <[email protected]>

* Update docs/guides/fabric_synchronization_guide.md

Co-authored-by: saurabhst <[email protected]>

* Address review comments

---------

Co-authored-by: Restyled.io <[email protected]>
Co-authored-by: Terence Hampson <[email protected]>
Co-authored-by: saurabhst <[email protected]>

* [Darwin] Duplicate / begin raising `MTRDeviceController` (#34832)

* Keep MTRDeviceController.mm

* Copy MTRDeviceController.mm into MTRDeviceController_Concrete.mm

* Set back MTRDeviceController.mm file

* Keep MTRDeviceController.h

* Copy MTRDeviceController.h into MTRDeviceController_Concrete.h

* Set back MTRDeviceController.h file

* add `MTRDeviceController_Concrete` files

* WIP:  bring up `MTRDeviceController_Concrete`

* temporary init implementation

* only vend `MTRDeviceController` pointers

not concrete class (`instancetype`) pointers

* add `storedFabricIndex` (currently broken)

* reduce access of internal properties

* move C++-style fabric index and keypairs to protected ivars

* return base class pointer from constructors

rather than `instancetype`

* clean up property synthesis/ivars in concrete

* update merged code

* WIP:  get us building again, plus plan comments

* remove superfluous comments

* Update src/darwin/Framework/CHIP/MTRDeviceControllerFactory.h

* Restyled by clang-format

* move MTRDeviceController protected ivars

to standard `MTRDeviceController.h` header

* `MTRDeviceController_Concrete` isn't public API

thus no `MTR_AVAILABLE`

* remove commented code

* move ivar extension back to internal header

* Fixing TAPI

* Restyled by whitespace

* Restyled by clang-format

---------

Co-authored-by: Justin Wood <[email protected]>
Co-authored-by: Restyled.io <[email protected]>

* Update silabs docker image (#35011)

Co-authored-by: Andrei Litvin <[email protected]>

* Make BRBINFO_4_1 require commissioning (#35017)

* Make BRVINFO_4_1 require commissioning

* Also add icd registration

---------

Co-authored-by: Andrei Litvin <[email protected]>

* Disable TI builds from CI (#35024)

Co-authored-by: Andrei Litvin <[email protected]>

* Fix header usage in rvc (#35025)

Co-authored-by: Andrei Litvin <[email protected]>

* [Fabric-Admin] Add API to commission local bridge within its own fabric  (#35020)

* Add local bridge handle API

* Update examples/fabric-admin/commands/fabric-sync/FabricSyncCommand.cpp

Co-authored-by: saurabhst <[email protected]>

* Update examples/fabric-admin/commands/fabric-sync/FabricSyncCommand.cpp

Co-authored-by: saurabhst <[email protected]>

* Use VerifyOrDie to check pairingCommand

---------

Co-authored-by: saurabhst <[email protected]>

* [Android] Fix mDNS discover ANR issue (#34968)

* Fix mDNS discover ANR issue

* Restyled by google-java-format

---------

Co-authored-by: Restyled.io <[email protected]>

* [Android] Implement Establish PASE Connection for SetupCode (#34971)

* Implement Establish PASE Connection for SetupCode

* Restyled by google-java-format

* Restyled by clang-format

---------

Co-authored-by: Restyled.io <[email protected]>

* Adding XPC protocols for darwin (#35029)

* Initial checkin

* Cleaning up protocol

* Restyled by whitespace

* Restyled by clang-format

* Adding nodeID and controllerID for simple routing

* Moving to implied Non-null

* Removing these

---------

Co-authored-by: Restyled.io <[email protected]>

* Set FabricFiltered to True when reading Fabrics. (#35023)

Otherwise we get a fabric view on the list of fabrics which does
not change over time.

Co-authored-by: Andrei Litvin <[email protected]>

* Fix BRBINFO_4_1 to run further (#35026)

* Fix BRBINFO_4_1 to run further

* Restyled by autopep8

---------

Co-authored-by: Restyled.io <[email protected]>

* fabric sync guide: fix device-remote-port (#35035)

Signed-off-by: Doru Gucea <[email protected]>

* [TI] Update TI BLE Manager Task priority (#34852)

* Update TI BLE Manager task priority for initialization sequence

* Restyled by clang-format

---------

Co-authored-by: Restyled.io <[email protected]>

* Use RootEndponId for reading SupportsConcurrentConnection in CNET_1_4 (#34972)

* [Telink] Disable Wi-Fi LPM during the OTA (#35006)

* [Telink] Add OTAImageProcessorImplWiFi.h

* [Telink] remove IPv4 temporarry debug configs

* [Telink] w91 remove not connected PWM channels (#35005)

* telink: w91 remowe PWM channels

Signed-off-by: Dmytro Kashkarov <[email protected]>

* Restyled by whitespace

---------

Signed-off-by: Dmytro Kashkarov <[email protected]>
Co-authored-by: Dmytro Kashkarov <[email protected]>
Co-authored-by: Restyled.io <[email protected]>

* Optimize RAM utilization for WriteHandler (#34992)

* Pull RAM usage reduction from write impl

* remove some extra added includes

* Apply review comment from previous PR

* [Tizen] Implement GetThreadVersion() for Thread driver (#34976)

* [Tizen] Implement GetThreadVersion in thread stack manager

* Move otThreadGetVersion() usage to Thread stack manager class

* Update C++ style

* Make GetThreadVersion public interface

* Implement mock _GetThreadVersion() for Linux, NuttX and WebOS

* Copy over data model flags (#34995)

* TC-IDM-10.5: Plumb through allow_provisional flag (#35037)

* Fixes the Service Area server's `SkipArea` handling (#35019)

* Updated the rvc-example PICS XML files.

* update the handling of the SkipArea command to match the latest spec.

* Updated the name of SkipCurrentArea to SkipArea in the Instance and Delegate classes.

* Refactored SkipCurrentArea names to SkipArea in the RVC example app.

* Restyled by clang-format

---------

Co-authored-by: Restyled.io <[email protected]>

* Minimal TC_SWTCH fixes for 1.4-TE2 (#34986)

- Fixes only issues raised on script that block success
  - https://github.com/project-chip/matter-test-scripts/issues/337
  - https://github.com/project-chip/matter-test-scripts/issues/338

- Fixes done:
  - Prompt text improvement/fixes
  - Fixed crash in 2.5/2.6

* [MCORE.FS 1.3] make "app not found" easier to debug (#35038)

* Remove unused method, make missing app error easier to find

* Remove more todo for confirm we can run apps: we confirmed we can

---------

Co-authored-by: Andrei Litvin <[email protected]>

* [FS Example] Update the FS Example apps to support fabric sync setup process part II (#34990)

* examples/fabric-bridge-app/linux/CommissionerControl.cpp

* Implement reverse commissioning

* Update function names to align with spec

* Update compatible builds to docker version 74 (#35009)

* Check which build can update to latest version

* temporarry use docker version 72

* revert image for failed builds

* downgrade K32W image

* use K32W docker image 69

* Update compatible builds to docker version 74

* use docker version 73 for EFR32

* Prevent cancellation of task with timeout in asyncio runner.

I am yet unclear why on new python/os/websocket we do not get
a timeout error, however from what I could tell, wait_for would
cancel the websocket.recv and that stops instead of throwing
a timeout exception, resulting in a full success result.

Making this change seems to make the test TestPurposefulFailureExtraReportingOnToggle
pass on my machine (well ... fail as expected instead of passing with a
successful stop)

---------

Co-authored-by: Andrei Litvin <[email protected]>

* Fix test code build issues when INET_CONFIG_TCP_ENDPOINT is set to false (#35027)

* Prevent cancellation of task with timeout in asyncio runner. (#35045)

I am yet unclear why on new python/os/websocket we do not get
a timeout error, however from what I could tell, wait_for would
cancel the websocket.recv and that stops instead of throwing
a timeout exception, resulting in a full success result.

Making this change seems to make the test TestPurposefulFailureExtraReportingOnToggle
pass on my machine (well ... fail as expected instead of passing with a
successful stop)

Co-authored-by: Andrei Litvin <[email protected]>

* TC-IDM-10.2: Fix error message (#35044)

* [Darwin] New XPC Service (#34961)

* empty xpc service files

* XPC service needs to be C++ to use MTRLogging

* add tests; stub method signature

* start configuring test XPC listener

* add first test method to XPC service protocol

* tests: remove peformance test; add headers

* make MTRXPCService testable

* more working lines of XPC listener setup

* add dummy XPC service for testing

* add replying method to service protocol / implementation

* remove log - reply contents can be asserted

* make test interesting

* linty formatty

* remove personal development team from pbxproj

* fix new file headers

* less whitespace

* Restyled by whitespace

* Restyled by clang-format

* add new XPC device controller

* sketch out a first XPC method

* store WIP for rebase

* fix pbxproj merge mistake

* make WIP slightly more sensible

* WIP: remote proxy obj in `MTRDeviceController_XPC`

* more experiments

* WIP:  return type issue

run `MTRXPCServiceTests testMTRXPCServiceSetup` and see selection of proxy object method in `MTRDeviceController_XPC.m`/`initWithXPCListenerEndpointForTesting` around line 44 to see the problem.

* add `MTRDevice_XPC`

nothing exciting yet

* add device controller over XPC parameters stub

* add init split for XPC device controllers

not yet implemented, but there

* rename new XPC parameters class

`OverXPC` is already taken / means something else

* Restyled by whitespace

* Restyled by clang-format

* remove failing exploratory test

* lintfix

* Examples

* quickly attempt to fix test

unused variable -> warning -> error

* Restyled by whitespace

* Restyled by clang-format

* inevitably the file will need to be obj-C++

* prepare to use mach service name to create XPC connection

* allow for other XPC controller connection types for now

once mach service is working, i don't expect to need others, but easier to collapse classes than raise.

* constant for well-known matter plugin service name

* note to self and re-ordering of this code now what `XPCParameters` is a subclass

* XPC parameters should support secure coding

* don't keep around object proxy; make a new one when needed.  try calling the `checkIn` method when connecting.  remove old test methods that served their purpose.

* that doesn't need to be there.

* Restyled by whitespace

* Restyled by clang-format

* no longer fighting with compiler, have some `instancetype`

* extremely normal object construction

* somehow this header got thrown out

* Restyled by whitespace

* Restyled by clang-format

* Updating XPC interfaces

* hide `initWithMachServiceName:options:` constructor

tvOS/iOS compilation issues need a look

* make `MTRDeviceController_XPC` an XPC client

via `MTRXPCClientProtocol_MTRDeviceController`, which for the moment is empty

* remove initial tests

they served their purpose well but are no longer relevant

* call mach service constructor when appropriate

also logging

* remove some obsolete test methods

* more obsoletes fixed

* more obsolete removal and logging tweaks

* buildability tweaks

* Moving along

* Fixing header

* Fixing macros and codable

* Adding invoke?

* Restyled by whitespace

* Restyled by clang-format

* Actually hooking up to XPCConnection

* Actually hooking up to XPCConnection

* Adding XPC Parameters

* Adding XPC Parameter hookup

* Restyled by whitespace

* Restyled by clang-format

* true => YES

---------

Co-authored-by: Restyled.io <[email protected]>
Co-authored-by: Justin Wood <[email protected]>

* [Darwin] more XPC service tweaks (#35048)

* return `MTRDevice_XPC`s from XPC controller

* more logging

* move shadow property declarations to internal header

* declare `_setupDeviceForNodeID` as common internal device controller method

* prefetchedClusterData is nullable

* fix a few properties that needed raising to base class

* you get a log and you get a log EVERYONE GETS A LOG

* convert device map lock for use in subclasses

* check for optional delegate method impl before calling

* ivar no longer necessary with accessor method

underlying lock is the only state needed

* Restyled by clang-format

* remove more obsolete lock bits from `MTRDeviceController_XPC`

---------

Co-authored-by: Restyled.io <[email protected]>

* ModeSelect: Add setter API for SupportedModesManager. (#34809)

* Add setter API for SupportedModesManager

* Example changes

* Restyled by clang-format

* Fix namespace usage

* Address review comments

---------

Co-authored-by: Restyled.io <[email protected]>

* Python testing: Fix reporting on setup_class error (#35016)

* Python testing: Fix reporting on setup_class error

Also add error text to make the error easier to find.

* Restyled by isort

* Fix lint

* Change exemption to not carry chip_error reference

chip_error is a ctypes struct with a const char* pointer internally.
This cannot be pickled, so it's causing problems with the mobly
framework.

* Fix some tests using removed class member

---------

Co-authored-by: Restyled.io <[email protected]>

* Fixing darwin crashes, and XPC invalidation (#35056)

* Fixing crashes

* Restyled by clang-format

---------

Co-authored-by: Restyled.io <[email protected]>

* [TI] Switch Application for CC13x4_26x4 (#34916)

* Switch Application for TI CC13x4_26x4

* Added light-switch to CI and restyled changes

* OOB configs

* CI fix

* CI fix in all_targets_linux_x64.txt

* revert CI changes for switch-app

* updated args.gni comment for logging

* [Fabric-Admin] Fix the new added device failed to get reported (#35058)

* [Fabric-Admin] Fix the new added device failed to get reported

* Restyled by prettier-markdown

---------

Co-authored-by: Restyled.io <[email protected]>

* Fix failed to sync device when using dynamic setupPIN (#35061)

* improve `MTRDeviceController`/`_Concrete` (#35060)

logging

* Updates to BRBINFO_4_1 after issues discovered during TE2 (#35040)

* Updates to BRBINFO_4_1 after issues discovered during TE2

* Update test step 3 text

* Restyled by autopep8

---------

Co-authored-by: Restyled.io <[email protected]>

* Add fabric scoping to ECOINFO cluster attributes (#35022)

---------

Co-authored-by: Restyled.io <[email protected]>
Co-authored-by: Andrei Litvin <[email protected]>

* RVC DirectModeChange Feature Update for RVCCLEANM and RVCRUNM (#34994)

* Python Scripts TC_RVCCLEANM_2_2.py and TC_RVCRUNM_2_2.py updated
* Updated the python script TC_RVCCLEANM_2_2.py with two new steps '7a' For reading FeatureMap Attribute and '7b' for send ChangeToMode Command

* Updated the python script TC_RVCRUNM_2_2.py with two new steps '6a' For reading FeatureMap Attribute and '6b' for send ChangeToMode Command

* Updated TC_RVCOPSTATE_2_4.py with updated PICS as per Test Plan

* Python Script TC_RVCOPSTATE_2_4.py

* Updated TC_RVCOPSTATE_2_4.py with steps numbers update

* Restyled by autopep8

* Python Scripts TC_RVCCLEANM_2_2.py and TC_RVCRUNM_2_2.py updated
* Updated the python script TC_RVCCLEANM_2_2.py with two new steps '7a' For reading FeatureMap Attribute and '7b' for send ChangeToMode Command

* Updated the python script TC_RVCRUNM_2_2.py with two new steps '6a' For reading FeatureMap Attribute and '6b' for send ChangeToMode Command

* Updated TC_RVCOPSTATE_2_4.py with updated PICS as per Test Plan

* Python Script TC_RVCOPSTATE_2_4.py

* Updated TC_RVCOPSTATE_2_4.py with steps numbers update

* Restyled by autopep8

* Python Script TC_RVCRUNM_2_2.py and TC_RVCCLEANM_2_2.py

* Updated TC_RVCRUNM_2_2.py and TC_RVCCLEANM_2_2.py as per comments from ROB

* Restyled by autopep8

* Updated CI PICS Value For TC_RVCOPSTATE_2_4.py

* Updated PICS.yaml For TC_RVCOPSTATE_2_4.py

* Updated CI PICS file by removing RVCOPSTATE.S.C128.Rsp

* Updated RVC PICS value at location examples/rvc-app/rvc-common/pics/rvc-app-pics-values

---------

Co-authored-by: Restyled.io <[email protected]>

* [Fabric-Admin] We should only start the reverse commission process if the local fabric bridge is ready. (#35079)

* [Fabric-Admin] We should only start the reverse commission process if the local fabric is ready.

* Fix compile error

* [ICD] Add ICDM 3.2 Python Certification Script (#34782)

* Add ICDM 3.2 Python Certification Script

* fix restyle

* Restyled by prettier-json

* Restyled by isort

* restyle and linter fix

* Add CI test arguments

---------

Co-authored-by: Restyled.io <[email protected]>

* [FabricAdmin] Refactor FS specific attribute handlings out of general HandleAttributeData function (#35080)

* [FabricAdmin] Refactor attribute Data handling

* Use reference to pass chip::TLV::TLVReader

* Update examples/fabric-admin/device_manager/DeviceManager.h

Co-authored-by: Terence Hampson <[email protected]>

* Update function name

---------

Co-authored-by: Terence Hampson <[email protected]>

* Move step (#35070)

* Use PRIu32 instead of %u to print unsigned integer (#35069)

* soc: riscv: telink_b9x, telink_w91: Auto calculation of SETTINGS_NVS_SECTOR_COUNT (#34958)

- Remove sector count of NVS from metter kconfig

- Sector count of NVS now calculates on Zephyr side as the storage partition size divided by the sector size (4 KB)

Signed-off-by: Borys Nykytiuk <[email protected]>

* riscv: telink: tlsr9528a_4m_flash.overlay (#34945)

- follow telink flash rules .

Signed-off-by: Haiwen Xia <[email protected]>
Co-authored-by: Haiwen Xia <[email protected]>

* [Silabs] Update Silabs sdks version and related enablement (#35083)

* Update all sdks to new verions

* 9116 changes to support sdk update

* 917 changes to support sdk update

* Update to provision storage for configurable address

* bump matter_support submodule

* Bump docker image version used for silabs ci

* Restyled by clang-format

* Fix wifi ncp builds

---------

Co-authored-by: Mathieu Kardous <[email protected]>
Co-authored-by: Restyled.io <[email protected]>

* In TC-ICDM-3.4 make sure that a new session will be used after DUT reboots (#35092)

* after DUT reboots make sure that a new session will be used
fixes #34985

* updated comment to reflect closing the session than expiring it

* re-establish session only when not in CI

* [Darwin] MTRDeviceController_XPC client protocol xpc interface fix (#35087)

* Fix SkipArea logic and removed the use of memcpy (#35075)

* Updated the SkipArea serever handle to not error if the CurrentArea is null, according to the spec updates.

* Replaced the use of memcpy with CopyCharSpanToMutableCharSpan.

* Restyled by clang-format

---------

Co-authored-by: Restyled.io <[email protected]>

* Move delegate management into shared MTRDevice super-class. (#35084)

* Move delegate management into shared MTRDevice super-class.

MTRDevice_XPC and MTRDevice_Concrete can then share that code.

* Address review comments, fix TAPI build.

* [Darwin] MTRDevice_XPC delegate callbacks need to hold lock before _callDelegatesWithBlock (#35095)

* [Darwin] MTRDevice_XPC delegate callbacks need to hold lock before _callDelegatesWithBlock

* Add back _callDelegatesWithBlock to avoid conflict

* Add plumbing that allows fabric-bridge endpoints to report CADMIN attr (#35076)

* Make the MTRDevice ivars protected. (#35101)

It seems like by default we have the following visibility options here:

@private - subclasses can't touch, not workable.
@public - anyone can touch, not desirable.
@package - @public inside Matter.framework, @private ouside it. Does not export
           the symbols, but anyone inside Matter.framework can touch.
@protected - only subclasses can touch, but exports the symbols in case we have
             out-of-framework subclasses who want to touch it.  Since the
             declarations are in a project header that TAPI does not know about
             in release builds, we get complaints about mismatches between
             what's declared public and what's exported.

What we would really want here is "@protected inside Matter.framework, @private
ouside it", but that does not exist.  So this switches to @protected, and uses
linker arguments to not export the symbols in release builds.  Since the header
itself is not public, this accomplishes the same goal.  In debug builds, we do
expose project headers to TAPI, hence there we want to keep exporting the
symbols.

The linker arguments just prevent exporting all ivar symbols, since we shouldn't
be exporting any of those anyway.

* IDM-12.1: Also dump to log (#35098)

* IDM-12.1: Also dump to log

* simplify print command

* Address post merge comment (#35103)

* Address post merge comment

* Quick fix

* Update default file header for Matter.framework files. (#35106)

Removes blank line at the top, makes copyright year be saner.

* Add availability annotations to new XPC protocols. (#35107)

* TC-IDM-10.2: Add check for MACL (#35086)

* TC-IDM-10.2: Add check for MACL

Test: unit tests. Note this has not been tested against the example
      app as it is still under development.

* Update src/python_testing/TC_DeviceConformance.py

Co-authored-by: Tennessee Carmel-Veilleux <[email protected]>

* Update src/python_testing/TestConformanceTest.py

---------

Co-authored-by: Tennessee Carmel-Veilleux <[email protected]>

* [Darwin] New XPC bits need to initialize properly (#35110)

* Revert "Enabling this for macOS Catalyst apps (#34956)" (#35117)

This reverts commit 1d2ddd4131f3b6a10092d93a74ea58f0fe09510b.

* [Fabric-Sync] Update the FS setup guide to wait for reverse commissioning complete (#35115)

* [Fabric-Sync] Update the FS setup guide to wait for reverse commissing

* Restyled by prettier-markdown

---------

Co-authored-by: Restyled.io <[email protected]>

* [Fabric-Sync] Add VID/PID fields to IPC method CommissionNode (#35116)

* Add VID/PID field to IPC methode CommissionNode

* Use QRCodeSetupPayloadGenerator to generate pairing code

* Revert "TC-IDM-10.2: Add check for MACL (#35086)" (#35111)

This reverts commit 927c81857ae9288ffab4ffbd529979412f8cc5f1.

* Fix UnregisterAllCommandHandlersForEndpoint to work correctly. (#35100)

Fixes https://github.com/project-chip/connectedhomeip/issues/34953

* Add missing CFLAGS to instrument things for fuzzers. (#35082)

-fno-sanitize-coverage=pc-table is added since we are already using
inline-8bit-counters and trace-cmp to provide instrumentation for the
fuzzers. It also helps reduce memory usage and improve fuzzer performance.

* adding mandatory endpointComposition data to XML for ZAP to consume (#34818)

* adding endpointComposition data to XML for ZAP to consume

* explicitly adding constraint as defined by the spec and defining compositions types

* fix composition type tag

* changing back to prevent both types being true which is not allowed

* explciitly setting conformance and contraint to account for all scenarios

* Colorcontrol xml file sync with specs (#33612)

* doorlock xml file sync with specs and colorcontrol xml type changes

* build error resolved

* Restyled by clang-format

* build error resolved

* addressed review comments

* Restyled by clang-format

* Addressed review comments

* Restyled by clang-format

* build error solved

* build error solved

* build error solved

* build error solved

* build issue resolved

* Restyled by clang-format

* resolved build errors

* removed doorlock xml changes

* Restyled by clang-format

* resolved build errors

* Restyled by clang-format

* resolved build errors

* addressed review comments

* addressed review comments

* resolved build errors

* resolved build errors

* zap generated changes

* Restyled by clang-format

* Revert colorloopdirection type change

* build error resolved

* Restyled by clang-format

* rebased and zap generated

* color control xml file updated

* build error solved

* ameba build error resolved

* Restyled by clang-format

* ameba build error resolved

* doorlock changes removed

* ameba build error resolved

* ameba build error resolved

* addressed review comments

* addressed review comments

* Restyled by clang-format

* Addressed review comments

* Addressed review comments

* Restyled by clang-format

* build error resolved

* build error resolved

* addressed reviews comments and build error resolved

* Restyled by clang-format

* ZAP issue resolved

* scripts updated

* scripts updated

* added enum values in compatenum.h file

* Restyled by whitespace

* Restyled by clang-format

* added enum values in compatenum.h file

* Restyled by whitespace

* Restyled by clang-format

* added enum values in compatenum.h file

* added header file for to_underlying

* build error resolved

* build error resolved

---------

Co-authored-by: Restyled.io <[email protected]>

* Update Darwin availability annotations. (#35108)

* Make descriptions for MTRDevice clearly say whether it's the XPC version. (#35112)

This requires hoisting _nodeID and _deviceController ivars clearly into the
MTRDevice superclass, so they can be accessed from subclasses.

The XPC version does not have a bunch of the state the non-XPC one does, so for
now it does not try to log that

* removed invalid symlinks (#35129)

* Update MCORE_FS_1_2 to latest testplan (#35097)

* Removed Arithmetics operations relying on Unit test cluster from TC_S_2_2 and TC_S_2_3 (#35130)

* Add expiry to KeepActive as per spec into fabric-admin example (#35099)

* Add expiry to KeepActive as per spec into fabric-admin example

* Restyled by clang-format

* Self Review fix

* Restyled by clang-format

* Name fix

* Address PR comments

* Address PR comments

* Restyled by clang-format

* Address PR comments

---------

Co-authored-by: Restyled.io <[email protected]>

* Move TC_BR_5 to the right directory (#35128)

* Update the preset handle field in the SetActivePresetRequest c… (#35105)

* Update the preset handle field in the SetActivePresetRequestRequest command to be nullable

- Update the deleagte API for getting the active preset handle to return a nullable handle

* Return error if CopySpanToMutableSpan fails

* Restyled by clang-format

* Apply suggestions from code review

Co-authored-by: Boris Zbarsky <[email protected]>

---------

Co-authored-by: Restyled.io <[email protected]>
Co-authored-by: Boris Zbarsky <[email protected]>

* Fix fabric-bridge is accidentally added into sync list (#35132)

* Yaml scripts update (#35093)

* Removed scripts Test_TC_SC_4_10.yaml and Test_TC_SC_4_5.yaml as Test plan have removed them

* step numbers corrected  in Test_TC_CC_7_3.yaml and action id is updated in Test_TC_ACT_3_2.yaml

* Removed scripts Test_TC_SC_4_10.yaml and Test_TC_SC_4_5.yaml as Test plan have removed them

* step numbers corrected  in Test_TC_CC_7_3.yaml and action id is updated in Test_TC_ACT_3_2.yaml

* Reverted Action of Test_TC_ACT_3_2.yaml

* [Darwin] XPC interface for invoke needs to take into account the reply may contain non-property-list objects (#35131)

* Fix Darwin to handle renames of Color Control data types. (#35135)

https://github.com/project-chip/connectedhomeip/pull/33612 made the following changes to the Color Control cluster:

1) Renamed HueDirection to DirectionEnum
2) Renamed the ShortestDistance and LongestDistance values of DirectionEnum to
   Shortest and Longest, respectively.
3) Renamed HueMoveMode to MoveModeEnum.
4) Renamed HueStepMode to StepModeEnum.
5) Removed SaturationMoveMode in favor of MoveModeEnum.
6) Removed SaturationStepMode in favor of StepModeEnum.
7) Renamed ColorMode to ColorModeEnum.
8) Renamed the ColorTemperature value to ColorTemperatureMireds
8) Renamed ColorCapabilities to ColorCapabilitiesBitmap.
9) Renamed various fields of ColorCapabilitiesBitmap.
10) Renamed ColorLoopUpdateFlags to UpdateFlagsBitmap.
11) Renamed ColorLoopAction to ColorLoopActionEnum.
12) Added OptionsBitmap, EnhancedColorModeEnum, DriftCompensationEnum.
13) Renamed ColorLoopDirection to ColorLoopDirectionEnum.
14) Renamed the DecrementHue and IncrementHue values of ColorLoopDirectionEnum
    to Decrement and Increment, respectively.

This change adds the right renamed/introduced/deprecated annotations for the
above changes, and adds manual shims for the enums that got removed.

* Re-route deprecated android casting APIs to new ones (#35136)

* Remove subscription establishment bits from the MTRDevice base class. (#35139)

_setupSubscriptionWithReason was only called from
_reattemptSubscriptionNowIfNeededWithReason.

_reattemptSubscriptionNowIfNeededWithReason was only called from:

* _handleUnsolicitedMessageFromPublisher, which is only called in callbacks set
   up by _setupSubscriptionWithReason.
* _triggerResubscribeWithReason, which only calls it when
   _reattemptingSubscription is YES.  But that's only set to YES in
   _doHandleSubscriptionReset, see next item.
* _doHandleSubscriptionReset, called from:
   * _handleSubscriptionReset: only called from callbacks set up by
     _setupSubscriptionWithReason.
   * _resetSubscriptionWithReasonString: called from unitTestResetSubscription
     and us detecting persisted data corruption in _clusterDataForPath.  But we
     don't actually have persisted data in the MTRDevice base class anymore, so
     that's not reachable.

So _setupSubscriptionWithReason is not reachable and can be removed.  And
unitTestResetSubscription can be made a no-op on the base MTRDevice.  And we can
remove the _resetSubscriptionWithReasonString call in _clusterDataForPath.

Once those are done, the following become unreachable:

* _handleSubscriptionReset
* _handleSubscriptionError
* Writing a nonzero value to _unitTestAttributesReportedSinceLastCheck
* _markDeviceAsUnreachableIfNeverSubscribed
* _handleResubscriptionNeededWithDelay
* _handleSubscriptionEstablished
* _handleUnsolicitedMessageFromPublisher
* _createDataVersionFilterListFromDictionary
* _setupConnectivityMonitoring
* _resetSubscriptionWithReasonString

Once those have been removed, the following become unreachable:

* HadSubscriptionEstablishedOnce
* _stopConnectivityMonitoring
* _doHandleSubscriptionError
* _doHandleSubscriptionReset

Once those have been removed, the following become unreachable:

* _setLastSubscriptionAttemptWait
* Setting _lastSubscriptionFailureTime to non-nil
* _clearSubscriptionPoolWork
* _scheduleSubscriptionPoolWork
* Use of _initialSubscribeStart
* _storePersistedDeviceData
* Use of _connectivityMonitor
* Use of _lastSubscriptionFailureTimeForDescription
* Any code depending on reattemptingSubscription being YES.
* Use of _lastSubscriptionAttemptWait
* Use of _lastSubscriptionAttemptWaitForDescription

Once those have been removed, _reattemptSubscriptionNowIfNeededWithReason is
unreachable and can be removed.

At this point _currentReadClient and _currentSubscriptionCallback are always
nil, so all code conditioned on those can be removed.  Once that's done,
_triggerResubscribeWithReason is a no-op, so it and all calls to it can be
removed.

Since _lastSubscriptionFailureTime is always nil, all code guarded on it not
being nil can be removed, so _readThroughSkipped becomes a no-op and
_lastSubscriptionFailureTime can be removed.

At this point, the following are not reachable:

* NeedToStartSubscriptionSetup
* _changeInternalState

Once those are removed, _internalDeviceStateForDescription is unused, and
_internalDeviceState is always MTRInternalDeviceStateUnsubscribed.  So
HaveSubscriptionEstablishedRightNow() always returns NO and can be removed.

At this point SubscriptionCallback is unused and can also be removed.

* Enhance chip-tool's formatting for some IDs (#35088)

* Added logging functions

* Modify ZAP template file generation

* Updated files for CommandId support

* Updated manual tests for the new formatting

* Fixed variable name shadowing

* Fixed typo

* Added logging functions to fabric admin

* Restyled by whitespace

* Restyled by clang-format

* Fixed linking

* Fixed typo

* Fixed CommandId logging

* Updated ZAP generated files

* Restyled by clang-format

---------

Co-authored-by: Restyled.io <[email protected]>

* Truncate map and area names (#35127)

* Updated the setting of the area and map names so that if the name given is greater than the buffer size, it's truncated rater to set to empty.

* Restyled by clang-format

---------

Co-authored-by: Restyled.io <[email protected]>

* Add new CHIP_CONFIG_ADDRESS_RESOLVE_MIN_LOOKUP_TIME_MS and (#35102)

CHIP_CONFIG_ADDRESS_RESOLVE_MAX_LOOKUP_TIME_MS macros to CHIPConfig.
Use new lookup time min/max macros inside AddressResolve for default
kMinLookupTimeMsDefault and kMaxLookupTimeMsDefault to allow for applications
to override the time required to wait for an address lookup before timing
out.

* Fix CHIP REPL tests runner after changes in e407d40 (#34453)

* Fix CHIP REPL tests runner after changes in e407d40

The click framework does not have a support for async functions. The
async needs to be synchronized before applying click wrappers.

* Accept 0x, 0b or 0o prefix for int values

* Fix for non-string numbers

* Exclude Test_TC_BRBINFO_2_1 from chip-repl engine

* Log what happened in case of pseudo cluster creation failure

* Fix typo

* Fix typo when accessing TestGlobalStruct

* Fix new line

* use CHIP_DEVICE_CONFIG_FAILSAFE_EXPIRY_LENGTH_SEC define to arme the failsafe (#35137)

* Remove unnecessary invokeCommand overrides from MTRDevice_Concrete. (#35151)

The one part that is not shared with the XPC implementation is
_invokeCommandWithEndpointID:....  Everything else is just generic argument
massaging and forwarding that can keep living in the base MTRDevice.

* Remove readAttributeWithEndpointID implementation from MTRDevice. (#35150)

This is implemented (differently) by the different subclasses.

Once this implementation is removed, the following become unreachabl…
shgutte added a commit to shgutte/connectedhomeip that referenced this pull request Sep 10, 2024
…ates (project-chip#34944)

* Start addressing comments from issue #34565

* Add WHM event test support

* Adapt test 2.3 to check for events

* Restyled by whitespace

* Restyled by clang-format

* Restyled by autopep8

* Fix failing CI build

* Restyled by clang-format

* Fix some CI build issues

* Update src/app/clusters/water-heater-management-server/water-heater-management-server.cpp

* Add event support and fix tank percentage steps

* Get tank percentage calculation and expected result correct

* Add a test for emergencyBoost=True being specified in the BoostStarted command

* Add and use a Energy_mWh type

* [NXP][docker] Update k32w1 SDK (#34927)

Signed-off-by: marius-alex-tache <[email protected]>

* [ESP32] Delta OTA Feature (#29011)

* [ESP32] Delta OTA Feature

* Fix some issues with header

* Update readme

* Some refactoring and cleanups

* Address review comments

* Apply suggestions from code review

Co-authored-by: Shubham Patil <[email protected]>

---------

Co-authored-by: PSONALl <[email protected]>
Co-authored-by: Rohit Jadhav <[email protected]>
Co-authored-by: Rohit Jadhav <[email protected]>
Co-authored-by: Shubham Patil <[email protected]>

* Fix typo in NXP dockerfile: missing backslash (#34931)

* Fixed test 1.6 and updated the scripts to work in CI. (#34918)

* Fixed test 1.6 and updated the scripts to work in CI.

* Restyled by autopep8

---------

Co-authored-by: Restyled.io <[email protected]>

* [NXP][k32w1] Fix docker image (#34935)

Create a separate folder for each west workspace.

Signed-off-by: marius-alex-tache <[email protected]>

* Checking third party deps doesn't pass after someone fixes it (#34872)

* Fixing this to stop breaking PRs

* Qualifying as expression

* Making this more readable now that it's an expression

* Implement the AndroidChipLogging (#34899)

* Refine android log priority based on category

This change adds ANDROID_LOG_INFO priority for kLogCategory_Progress.
Refine android log priorities to enhance debugging efficiency and
prepare an environment where lower-priority logs can be controlled and
excluded using the log filter function.

Signed-off-by: Youngho Yoon <[email protected]>

* Implement the AndroidChipLogging

Implemented the AndroidChipLogging.setLogFilter to enhance the logging
mechanism. This method allows for the filtering out of unnecessary or
redundant log messages, significantly reducing noise in the logs.
To use the log filter, call AndroidChipLogging.setLogFilter with the
appropriate filter criteria. The arg is log level in android.util.Log.
Example: AndroidChipLogging.setLogFilter(android.util.Log.ERROR)

Signed-off-by: Youngho Yoon <[email protected]>

* Restyled by google-java-format

---------

Signed-off-by: Youngho Yoon <[email protected]>
Co-authored-by: Restyled.io <[email protected]>

* Syslog and logging tweaks (#34941)

* Make syslog ident and facility overridable and tweak options

* Linux: Be a little less verbose when writing settings

* Add out-of-band msgs to add and remove Supported Areas and Maps (#34930)

* update the status field of progress elements at the end of a clean.

* Added some style suggestions from the review of PR 34887.

* update the readme.

* Added a simple message to add a map.

* Added an out-of-band message to add a supported area.

* Added out-of-band messages to remove supported maps and supported areas.

* Updated the rvc-app PICS values. Updated TC-SEAR-1.2 to include the necessary out-of-band messages to run the test in CI.

* refactored to improve readability.

* Restyled by clang-format

* Restyled by prettier-markdown

* Removed oddly duplicated method.

* Fixed the json value conversion types.

---------

Co-authored-by: Restyled.io <[email protected]>

* Restructured folders in chip-energy-management-app - no code change (#34879)

* Refactored file location for chip-energy-management-app. Updated esp32 and linux build files.

* Updated some all-clusters-app build and CMakeLists (linux, esp32, psoc6)

* Updated remaining build and CMakefiles with new folders.

* Fixed unit tests BUILD.gn

* Restyled by gn

* Missed Ameba .cmake

* Missed all-clusters-minimal-app/esp32/main/CMakeLists.txt

---------

Co-authored-by: Restyled.io <[email protected]>

* [NXP][config] Adding CMake support to build CHIP libs for NXP FreeRTOS platforms (#34901)

* [NXP][config][freertos] Adding support to build Matter lib and port files with cmake on NXP freertos platforms

Signed-off-by: Dina Benamar <[email protected]>

* [NXP][config][common] Create common .cmake file to include common configs between freertos & zephyr

Signed-off-by: Dina Benamar <[email protected]>

* [NXP][config][zephyr] Include common.cmake which adds common options to zephyr & freertos

Signed-off-by: Dina Benamar <[email protected]>

* [NXP][config][freertos] Updates to align with new flag introduction "chip_enable_secure_whole_factory_data"

Signed-off-by: Dina Benamar <[email protected]>

* [NXP][config][freertos] Set build_matter_standalone_lib to true to support building CHIP libs with CMake in matter-over-thread configuration

Signed-off-by: Dina Benamar <[email protected]>

---------

Signed-off-by: Dina Benamar <[email protected]>

* [chip-tool] Adjust the maximum value of 'discriminator' to align with spec (#34940)

* [examples][lock-common] Remove iostream include (#34952)

* iostream adds a lot of unnecessary functions when lock-app
   is compiled for non-linux platforms, increasing ram and
   flash consumption.
 * linux lock-app compiles without it

Signed-off-by: Andrei Menzopol <[email protected]>

* Fixed devcontainer creation for huge user ids (#34948)

* Enabling this for macOS Catalyst apps (#34956)

* Add new common NXP dockerfile (#34947)

* [NXP][docker image] Add new common NXP docker image for next SDK version

Signed-off-by: Martin Girardot <[email protected]>

* [NXP][docker image] remove k32w1 SDK clone as it will use common NXP SDK

Signed-off-by: Martin Girardot <[email protected]>

---------

Signed-off-by: Martin Girardot <[email protected]>

* Use timedInteraction for RevokeCommissioning in CCTRL_2_2 (#34957)

Co-authored-by: Andrei Litvin <[email protected]>

* [Fabric-Admin] Fix 'fabricsync sync-device' command always fails (#34938)

* [Fabric-Admin] Fix 'fabricsync sync-device' command always fails

* Use default random salt

* Update examples/fabric-admin/commands/pairing/OpenCommissioningWindowCommand.h

Co-authored-by: Abdul Samad <[email protected]>

* Address review comments

---------

Co-authored-by: Abdul Samad <[email protected]>

* Fix user_params usage (#34964)

* Fixed the discovery mode in esp32 factory script to a bitmap value instead of enum (#34900)

* Fix typo in wait_for_user_input (#34965)

* Remove wrong dependency to attribute id 82 (#34975)

This was a left-over attribute id before a spec change where attributes got removed. After that the attribute id 82dec is SetpointHoldExpiryTimestamp which has nothing to do with Presets

* replacing "stringcase" python package with internal implementation + generated java and kotlin code (#34949)

* changing matter_idl functions

* changing yaml runner functions

* removing stringcase from config and requirement files

* restyle

* improve string handling

* fixing generated java and kotlin code

* regenerate idl golden image for test_generators.py

* adding unit test

* restyle

* adding unit test to build.GN

* [Tizen] Update Tizen SDK to 8.0 (#34171)

* Update tizen to 8.0

* Install platform certificate

* Reverse restyle diff

* Review fix - version update

* Add information about used 7.0 tizen package

---------

Co-authored-by: Arkadiusz Bokowy <[email protected]>

* updated list of AcceptedCommands list for Thermostat cluster with Preset feature enabled (#34981)

* Update CCTRL 2.2 to not potentially use uninitialized variables in the class on teardown (#34955)

* Do not use uninitialized bits in teardown

* Extra guard for file remove

* Fix a few more instances of app_process

---------

Co-authored-by: Andrei Litvin <[email protected]>

* [Python] Auto-import all clusters into the chip.clusters namespace (#34928)

* Auto-import all clusters into the chip.clusters namespace

* Fix __all__ lists

* ZAP-generate __all__ with all clusters

* fix unused variable issue on non-macOS testing (#34970)

* Add constraint enforcement on responseTimeoutSeconds in commissioner control cluster (#34982)

* Add constraint enforcement on responseTimeoutSeconds

This adds constraints in the implementation and also fixes
up error codes in CCTRL_2_2 test.

* Fix comment

* Fix conversion error (#34989)

* Update ZAP to newest nightly to get fix for global types (#34996)

* Update zap.version

* Update zap.json

* Bump min ZAP version

* Regen ZAP files after update

* Restore extra newline

* Create new ICD Manager in fabric-admin to service KeepActive Command (#34894)

---------

Co-authored-by: Restyled.io <[email protected]>
Co-authored-by: yunhanw <[email protected]>

* [Silabs]Provision storage sourceset (#34929)

* Create a separte source_set for the provision storage implementation

* Fix efr32 build using provision flash storage

* fix argument duplication which is not needed.

* apply suggested renames

* [Telink] Update Docker image (Zephyr update) (#34980)

* [Telink] Update Docker image (Zephyr update)

* [Telink] Update Docker image (Zephyr update)

---------

Co-authored-by: Andrei Litvin <[email protected]>

* [DRLK] Bugfix: return INVALID_COMMAND when attempting to add/modify (#34120)

* [DRLK] Bugfix: return INVALID_COMMAND when attempting to add/modify
credential from a different fabric than the User/Credential's creator fabric

Add YAML test steps to verify correct behavior

Fixes #34119

* Restyled by prettier-yaml

* Update src/app/tests/suites/DL_UsersAndCredentials.yaml

Co-authored-by: Andrei Litvin <[email protected]>

---------

Co-authored-by: Restyled.io <[email protected]>
Co-authored-by: Andrei Litvin <[email protected]>

* [NXP][k32w1] Rework reference apps (#34926)

* [NXP][platform][common] Update pw RPC flag in streamer_nxp

Signed-off-by: marius-alex-tache <[email protected]>
(cherry picked from commit 4ae033a1bddd5d914e862791c111eebca41a62e8)

* [NXP][examples][common] Fix binding issue due to generated Zap flag renaming

Signed-off-by: Martin Girardot <[email protected]>
(cherry picked from commit b50b382478138ad02103e55194b0145b1e61e841)

* [NXP][examples][common] make-pretty update

(cherry picked from commit efc51cc65471f4f5f667947ef18a4656e1d29578)

* [NXP][examples][common] Fix contact-sensor-app always returning empty diagnostic logs

The LogProvider class method GetSizeForIntent() was always returning
zero as log size due to an incorrect evaluation of the result of the
SyncGetValue() call.

GetSizeForIntent() is evaluating the size of the diagnostic log by
trying to read the key using a zero length buffer. This action will
return the size of the key in storage, but it will also yield a
CHIP_ERROR_BUFFER_TOO_SMALL error code. GetSizeForIntent() however
was not expecting this error code and it was returning zero in all
situations when the status returned by SyncGetValue() was anything
else but CHIP_NO_ERROR.

The function was updated to take into account that, under these
circumstances, the SyncGetValue() function always returns
CHIP_ERROR_BUFFER_TOO_SMALL.

Signed-off-by: Marian Chereji <[email protected]>
Reviewed-by: Doru-Cristian Gucea <[email protected]>
(cherry picked from commit dd3b3b784318f73cf6f0390f79d1fdf0160169d3)

* [NXP][examples][common] Call init using the base class reference

Signed-off-by: marius-alex-tache <[email protected]>
(cherry picked from commit b7a0a0a4d88bd5d03b70f36b34c2475b614bd296)

* [NXP][examples][common] Update app task common code

New task base API:
- PostEventsProcessedAction - this will be called in the main loop,
after all events have been processed. An example of concrete action
is to animate some LEDs.
- PrintOnboardingInfo - the default implementation remains the same.
It can be overwritten by the concrete application task class.
- AppMatter_DisallowDeviceToSleep/AppMatter_AllowDeviceToSleep -
An application that uses low power mode should overwrite the API to
implement the allow/disallow entering low power mechanism.
Before taking the OT mutex, the device is disallowed to enter low power.
The device is allowed to enter low power after the OT mutex is released.

Other changes:
- The app event queue handle should be static such that the concrete
application task can initialize it during Start() call.
- The ticksToWait passed to xQueueReceived is used to specify
the maximum amount of time the task should block waiting for an event.
This can be modified according to the application needs, e.g. is needed
by an application that has LED animation.
- PostEvent should take into account ISR context when populating the event queue.
- PostEvent becomes a static method.
- Thread device type is specified by the following flag: CONFIG_THREAD_DEVICE_TYPE
This is set by default to kThreadDeviceType_Router.

Signed-off-by: marius-alex-tache <[email protected]>
(cherry picked from commit d88e78ea6c973eb736915110bb227ad3515eec98)

* [NXP][examples][common] Add additional common components

- Add led widget component
- Add diagnostic logs component - chip::NXP::App::DiagnosticLogsDemo::DisplayUsage
should be implemeneted to showcase how the diagnostic logs provider should be used.
- Add low power component - chip::NXP::App::LowPower::Init should be implemented
according to the application needs. A default example is implemented, which registers
an empty enter/exit low power callback.
- Add operational keystore component - the API contains two functions:
	- GetInstance - should return the address of a concrete operational keystore class
	- Init - can be used to register a persistent storage delegate in case the concrete
	  class is using persistent storage (which will be our case)
- Add user interface feedback component - this component defines an abstract interface
that can be implemented by applications in order to provide some kind of feedback to the user
in certain conditions: logging, LED animations, etc. Add example of lighting manager, which
uses LED animation for user feedback.
- Add clusters component - add an API for identify related callbacks. Add implementation for
common MatterPostAttributeChangeCallback, which delegates the work to the device manager component.
- Add RPC component - this is a simple Init API that can be used to initialize PW RPC related
components, such as UART.

Signed-off-by: marius-alex-tache <[email protected]>
(cherry picked from commit 46a1d3d673b9cae14d33c749e3741727449e6ff9)

* [NXP][examples][common] Add missing header in Identify

Signed-off-by: marius-alex-tache <[email protected]>
(cherry picked from commit 3abfee2c6eea327ae931a150733ac83639d157d5)

* [NXP][examples][common] Add multi-image OTA requestor initiator

Signed-off-by: marius-alex-tache <[email protected]>
(cherry picked from commit 5848e4d4e2d384c4bfe41714bd41e25c4b1ba1e8)

* [NXP][examples][common] Update pw RPC implementation

Update AppRpc API by adding two new methods used by the common
RPC implementation:
- ButtonHandler
- Reboot

Signed-off-by: marius-alex-tache <[email protected]>
(cherry picked from commit 5e40934145825c61444e43e479ed7ac5c26605a4)

* [NXP][examples][common] Small updates to common app code

- Add call to feedback manager init.
- Remove PostEventsProcessedAction. Call FeedbackMgr().DisplayInLoop()
directly in the main loop.
- Move PostEvent in AppTaskBase interface and make it virtual.
- Add demo of diagnostic logs usage.
- Update PrintOnboardingInfo to take into account user action requried
commissioning flow.
- Remove usage of deprecated sFunction from Lighting manager.
- Add LowPower::Init call.
- If FSL_OSA_TASK_ENABLE is used, then call AppTaskMain inside Start, instead
of creating the app task.
- Add PrintCurrentVersion API to print the software version string and software
version.
- Enclose DeviceInfoProviderImpl usage based on CONFIG_DEVICE_INFO_PROVIDER_IMPL
- Add diagnostic logs cluster init under the corresponding flag.

Signed-off-by: marius-alex-tache <[email protected]>
(cherry picked from commit 1619c92380275dc0466f9cf9dc9e818671406b06)

* [NXP][examples][common] Make Animate pure virtual

Signed-off-by: marius-alex-tache <[email protected]>
(cherry picked from commit eaf3789fc2d1e562fe030acc758e5f322b5f02d3)

* [NXP][examples][common] Add pw RPC init

RPC_TASK_STACK_SIZE and RPC_TASK_PRIORITY can now be defined
in the build system to override the default values.

Signed-off-by: marius-alex-tache <[email protected]>
(cherry picked from commit 7962d612b14502dc3f514c5c3d39891b086cfd63)

* [NXP][examples][common] Allow platforms to redefine the path to the FactoryDataProvider.h that needs to be included

Signed-off-by: Dina Benamar <[email protected]>
(cherry picked from commit 097cd999c4767572f8cc55fac18f93ac3cb5d50c)

* [NXP][examples][common] Add TestEventTriggerDelegate

 * TestEventTriggerDelegate is now used at Server Initialization
   to add the ICDManager instance as Handler

Signed-off-by: Andrei Menzopol <[email protected]>
(cherry picked from commit edce1dc967130589e74cdd9c8289719171141178)

* [NXP][examples][common] Minor updates for some components

The KVS wear stats are stored in the user diagnostic log key hence only
initialize this key if the KVS wear stats are not enabled.

Signed-off-by: Marian Chereji <[email protected]>

[nxp noup][examples][common] Remove UpdateState API

The interface can be simplified by calling RestoreState
instead of UpdateState when needed. This implies that the
caller must update the cluster attribute by itself.

Signed-off-by: marius-alex-tache <[email protected]>

[nxp noup][examples][common] Rename LightingManager to LedManager

Signed-off-by: marius-alex-tache <[email protected]>

* [NXP][examples][common] Add initial version of lighting app

- Copy lighting app sources to common folder
- Add device callbacks
- Use common OTA support
- Use common app factory data
- Use led widgets for lighting app
- Use common app task and button management
- Decouple lighting manager from app task
- Update LED status function
- Update lighting manager related flags
	Flags:
	- LIGHTING_MANAGER_ENABLE_DIMMABLE_LED to enable dimmable LED feature
	- LIGHTING_MANAGER_ENABLE_STATUS_LED to enable status LED usage
	These flags can be overwritten in AppConfig.h.
- Make lighting manager more configurable
- Create button manager
	The ButtonManager class should define the buttons callbacks and
	all callback delegates.

	Moved AppMatterButton_registerButtons implementation inside the
	button manager source file.
- Update lighting manager interface
- Replace lighting manager calls with feedback manager
	LightingManager now implements the UserFeedbackInterface abstract class and the
	dimmable feature was moved to a new class: LightingManagerDimmable.
- Move identify code in a separate file
- Remove deprecated #include statements from all files.
- Add commissioning complete state
	A boolean static member is added to AppTask. It is set when the
	kCommissioningComplete event is received. It should be used by
	other components if they need a way to check the state of the device.
- Add button action to switch to ICD active mode
- Add support for BooleanState in device callbacks
- Add diagnostic logs usage demo
- Enclose feedback manager calls in CONFIG_ENABLE_FEEDBACK flag
	This flag should be defined whenever the application must provide
	some kind of user interface feedback, such as LED animation.
	In case of low power, this flag will not be defined.
- Remove unused features (e.g. diagnostic logs)
- Overwrite event queue and ticks to wait
- Call PlatformMgrImpl API for PreInitMatterStack actions
- Replace PW_RPC_ENABLED with CONFIG_ENABLE_PW_RPC

Signed-off-by: marius-alex-tache <[email protected]>
(cherry picked from commit bed6655227d44900279cbd0ef547771da9143895)

* [NXP][examples][common] Add initial version of contact sensor

Signed-off-by: marius-alex-tache <[email protected]>
(cherry picked from commit 637580aa6c63048ae1a956807c284165c2af17ed)

* [NXP][openthread][k32w1] Update mbedtls target

Signed-off-by: marius-alex-tache <[email protected]>
(cherry picked from commit 3c84b1fd3987958bc0dcf49a283c281e48b400f8)

* [NXP][platform][k32w] OTA/FactoryData changes

 * Add FactoryDataDriver interface which handles factory data update
   functionality and factory data ram backup operations;
   must be implemented for each platform
 * Make FactoryDataProvider global instances
 * Move Restore mechanism and plain-text SignWithDacKey in
   common FactoryDataProvider
 * Adapt Validate and SearchForId to use factory data config
   which stores size, start, payload
 * Move OTAFactoryDataProcessor in common folder
 * Adapt to be generic and use FactoryDataDriver functions instead

Signed-off-by: Andrei Menzopol <[email protected]>
(cherry picked from commit 3a81c2367013c2a2ed08ecbbeac89ce15943998e)

* [NXP][platform][k32w1] SDK 2.15 platform updates

 * remove RNG_SetPseudoRandomNoSeed call to accomodate new RNG API changes.
 * add SDK root, SDK release, and SDK 2.15 gn arguments. They will be used
   to differentiate between SDK versions (2.12 vs 2.15) and release
   status (repo vs packages).

Signed-off-by: Andrei Menzopol <[email protected]>

[nxp noup][platform][k32w] Small fixes for k32w platform code

 * correct typos
 * remove executable access permissions
 * remove unused files
 * change openthread_root to ot-nxp/openthread-k32w1
 * use nxp_mbedtls gn target

Signed-off-by: Andrei Menzopol <[email protected]>
(cherry picked from commit 1905c1cea645506f8a88e514c2eacecea81ac385)

* [NXP][platform][k32w1] Add "chip_key_storage" solution selector and littlefs support

Updated the K32W1 platform build files by adding the "chip_key_storage"
selector which will help developers select an implementation option
for the key storage between "littlefs" and "fwk_nvm".

Signed-off-by: Marian Chereji <[email protected]>

[nxp noup][k32w1] Temporarily disable OpenThread settings save-on-idle when using LittleFS key storage

When using LittleFS key storage, the OpenThread settings save-on-idle
feature requires additional support in the application idle task,
which is not yet available. In order for the OT settings saving to
work at this stage and in this configuration, the save-on-idle
feature must be disabled until the required idle task support will be
implemented.

Signed-off-by: Marian Chereji <[email protected]>

[nxp noup][platform][k32w1] Fix minimum data chunk size required when programming the flash memory

According to the specifications, the internal flash memory of the
K32W1 platform supports programming chunks of memory which are 128
bytes long (instead of 256).

Signed-off-by: Marian Chereji <[email protected]>

[nxp noup][platform][k32w1] Increase LittleFS cache size to 1K to suppress frequent data synchronizations

A small cache size forces LittleFS to perform frequent data
synchronizations with the storage (flash memory) and this consumes a
number of data blocks which are not available in the K32W1 Matter
applications. To reduce the fast consumption of flash memory data
blocks, the LittleFS cache size was increased to 1KB.

Signed-off-by: Marian Chereji <[email protected]>
(cherry picked from commit 753f7d7390661bd5dbd29cc9cfa7d3a4e4728ba2)

* [NXP][platform][k32w1] Add Zephyr NVS based key storage build option

Added a new build option (chip_key_storage="nvs") which allows the
developers to use the Zephyr NVS file system as a key storage
solution.

Signed-off-by: Marian Chereji <[email protected]>
(cherry picked from commit 1d42e48d8f50f6e9999b49025ea3d71545e89a3d)

* [NXP][examples][k32w1] App updates

 * the sdk root was moved to platform args.
 * update readme files
 * Add CONNECTIVITY_MANAGER_THREAD_DEVICE_TYPE define.
 * Set define accordingly based on FTD/MTD configuration.
 * Solve issue when lighting-app is MTD but device type is set to
   Router because it was hardcoded.
 * Remove deprecated files
 * Move some headers in examples/platform for common usage

Signed-off-by: Andrei Menzopol <[email protected]>
(cherry picked from commit c2b626df132e058ce674df0ee20965b3029c462d)

* [NXP][examples][k32w1] Update ZclCallbacks after transition to common code

Signed-off-by: marius-alex-tache <[email protected]>

* [NXP][k32w1] Remove k32w parent folder

Signed-off-by: marius-alex-tache <[email protected]>

* [NXP][platform][k32w1] Add FactoryDataDriver implementation

Signed-off-by: marius-alex-tache <[email protected]>

* [NXP][platform][k32w] Remove k32w/common

This folder was moved to nxp/common/legacy area.

Signed-off-by: marius-alex-tache <[email protected]>
(cherry picked from commit 755081c71bde287e2d065e5fd9b1a0922c3b341a)

* [NXP][scripts] Minor updates for NXP related scripts

Add HWParams APP FactoryData support

 * Add proper format for HWParameters app factory data section
 * Put changes under new argument

Signed-off-by: Andrei Menzopol <[email protected]>

[nxp noup][scripts][common] Fix Crc16 attribute when using latest version

Signed-off-by: marius-alex-tache <[email protected]>

[nxp noup][scripts] Update structure k32w1 path

All k32w1 folders were moved under nxp, removing the k32w parent.

Signed-off-by: marius-alex-tache <[email protected]>

[nxp noup][scripts][ota] Update paths after k32w transition

Signed-off-by: marius-alex-tache <[email protected]>
(cherry picked from commit 4963ce98725b74e94f498f959d46edf4933fa56c)

* [NXP][platform][common] Add nxp_factory_data, nxp_ota gn targets

The application can use these targets to integrate the default, platform-specific
NXP factory data provider and OTA implementation. Each platform should define an
"nxp_factory_data" and "nxp_ota" source sets.

Usage:
deps += [ "${chip_root}/src/platform/nxp:nxp_factory_data" ]
deps += [ "${chip_root}/src/platform/nxp:nxp_ota" ]

Signed-off-by: marius-alex-tache <[email protected]>
(cherry picked from commit 4869c4a97134692fe87a59b9b69d33f836d9b2e9)

* [NXP][platform][common] Create NXPConfigNVS.cpp file, remove NXPConfig BLE dependencies

Signed-off-by: Martin Girardot <[email protected]>
(cherry picked from commit 50e14e4a1b9f8561126310e19ebbaf72ca7bbdbe)

* [NXP] revert mcxw71 headers

Signed-off-by: marius-alex-tache <[email protected]>

* [NXP][k32w1] Add default logging target

Signed-off-by: marius-alex-tache <[email protected]>

* [NXP][k32w1] Update paths to reference nxp_matter_support

Signed-off-by: marius-alex-tache <[email protected]>

* [NXP] Bump nxp_matter_support

Signed-off-by: marius-alex-tache <[email protected]>

* Restyled by whitespace

* Restyled by clang-format

* Restyled by gn

* Restyled by prettier-markdown

* Restyled by autopep8

* Restyled by isort

* [NXP][k32w1] Fix gn import order

Signed-off-by: marius-alex-tache <[email protected]>

* [NXP][k32w1] Fix wrong README reference

Signed-off-by: marius-alex-tache <[email protected]>

* [NXP][k32w1] Update workflow docker image

Signed-off-by: marius-alex-tache <[email protected]>

* [NXP][rw61x] Adding nxp_ota and nxp_factory_data as they are now mandatory

Signed-off-by: Gatien Chapon <[email protected]>

* [NXP][platform][common] Fix build warning

(cherry picked from commit 72b1cbaaf36fe6cf2af57a8c7ad3cc457b45c713)

* Restyled by gn

* [NXP][platform] Remove deprecated files

Signed-off-by: marius-alex-tache <[email protected]>

* [NXP][workflow] Create separate jobs for k32w0/k32w1

k32w0 builds use chip-build-k32w Docker image, but k32w1 builds
use chip-build-nxp Docker image.

Signed-off-by: marius-alex-tache <[email protected]>

* [NXP][k32w0] Adding nxp_ota and nxp_factory_data as they are now mandatory

Signed-off-by: marius-alex-tache <[email protected]>

* [NXP][scripts] Fix script issue when there is no --args

Signed-off-by: Martin Girardot <[email protected]>

* [NXP][k32w1] Disable SMU2

Signed-off-by: marius-alex-tache <[email protected]>

---------

Signed-off-by: marius-alex-tache <[email protected]>
Signed-off-by: Gatien Chapon <[email protected]>
Signed-off-by: Martin Girardot <[email protected]>
Co-authored-by: Martin Girardot <[email protected]>
Co-authored-by: Dina Benamar <[email protected]>
Co-authored-by: Marian Chereji <[email protected]>
Co-authored-by: Andrei Menzopol <[email protected]>
Co-authored-by: Restyled.io <[email protected]>
Co-authored-by: Gatien Chapon <[email protected]>
Co-authored-by: Yassine El Aissaoui <[email protected]>

* [Fabric-Sync] Simplify and update the fabric sync guide (#34993)

* [Fabric-Sync] Symplify and update the fabric sync guide

* Restyled by prettier-markdown

* Update docs/guides/fabric_synchronization_guide.md

Co-authored-by: Terence Hampson <[email protected]>

* Update docs/guides/fabric_synchronization_guide.md

Co-authored-by: saurabhst <[email protected]>

* Address review comments

---------

Co-authored-by: Restyled.io <[email protected]>
Co-authored-by: Terence Hampson <[email protected]>
Co-authored-by: saurabhst <[email protected]>

* [Darwin] Duplicate / begin raising `MTRDeviceController` (#34832)

* Keep MTRDeviceController.mm

* Copy MTRDeviceController.mm into MTRDeviceController_Concrete.mm

* Set back MTRDeviceController.mm file

* Keep MTRDeviceController.h

* Copy MTRDeviceController.h into MTRDeviceController_Concrete.h

* Set back MTRDeviceController.h file

* add `MTRDeviceController_Concrete` files

* WIP:  bring up `MTRDeviceController_Concrete`

* temporary init implementation

* only vend `MTRDeviceController` pointers

not concrete class (`instancetype`) pointers

* add `storedFabricIndex` (currently broken)

* reduce access of internal properties

* move C++-style fabric index and keypairs to protected ivars

* return base class pointer from constructors

rather than `instancetype`

* clean up property synthesis/ivars in concrete

* update merged code

* WIP:  get us building again, plus plan comments

* remove superfluous comments

* Update src/darwin/Framework/CHIP/MTRDeviceControllerFactory.h

* Restyled by clang-format

* move MTRDeviceController protected ivars

to standard `MTRDeviceController.h` header

* `MTRDeviceController_Concrete` isn't public API

thus no `MTR_AVAILABLE`

* remove commented code

* move ivar extension back to internal header

* Fixing TAPI

* Restyled by whitespace

* Restyled by clang-format

---------

Co-authored-by: Justin Wood <[email protected]>
Co-authored-by: Restyled.io <[email protected]>

* Update silabs docker image (#35011)

Co-authored-by: Andrei Litvin <[email protected]>

* Make BRBINFO_4_1 require commissioning (#35017)

* Make BRVINFO_4_1 require commissioning

* Also add icd registration

---------

Co-authored-by: Andrei Litvin <[email protected]>

* Disable TI builds from CI (#35024)

Co-authored-by: Andrei Litvin <[email protected]>

* Fix header usage in rvc (#35025)

Co-authored-by: Andrei Litvin <[email protected]>

* [Fabric-Admin] Add API to commission local bridge within its own fabric  (#35020)

* Add local bridge handle API

* Update examples/fabric-admin/commands/fabric-sync/FabricSyncCommand.cpp

Co-authored-by: saurabhst <[email protected]>

* Update examples/fabric-admin/commands/fabric-sync/FabricSyncCommand.cpp

Co-authored-by: saurabhst <[email protected]>

* Use VerifyOrDie to check pairingCommand

---------

Co-authored-by: saurabhst <[email protected]>

* [Android] Fix mDNS discover ANR issue (#34968)

* Fix mDNS discover ANR issue

* Restyled by google-java-format

---------

Co-authored-by: Restyled.io <[email protected]>

* [Android] Implement Establish PASE Connection for SetupCode (#34971)

* Implement Establish PASE Connection for SetupCode

* Restyled by google-java-format

* Restyled by clang-format

---------

Co-authored-by: Restyled.io <[email protected]>

* Adding XPC protocols for darwin (#35029)

* Initial checkin

* Cleaning up protocol

* Restyled by whitespace

* Restyled by clang-format

* Adding nodeID and controllerID for simple routing

* Moving to implied Non-null

* Removing these

---------

Co-authored-by: Restyled.io <[email protected]>

* Set FabricFiltered to True when reading Fabrics. (#35023)

Otherwise we get a fabric view on the list of fabrics which does
not change over time.

Co-authored-by: Andrei Litvin <[email protected]>

* Fix BRBINFO_4_1 to run further (#35026)

* Fix BRBINFO_4_1 to run further

* Restyled by autopep8

---------

Co-authored-by: Restyled.io <[email protected]>

* fabric sync guide: fix device-remote-port (#35035)

Signed-off-by: Doru Gucea <[email protected]>

* [TI] Update TI BLE Manager Task priority (#34852)

* Update TI BLE Manager task priority for initialization sequence

* Restyled by clang-format

---------

Co-authored-by: Restyled.io <[email protected]>

* Use RootEndponId for reading SupportsConcurrentConnection in CNET_1_4 (#34972)

* [Telink] Disable Wi-Fi LPM during the OTA (#35006)

* [Telink] Add OTAImageProcessorImplWiFi.h

* [Telink] remove IPv4 temporarry debug configs

* [Telink] w91 remove not connected PWM channels (#35005)

* telink: w91 remowe PWM channels

Signed-off-by: Dmytro Kashkarov <[email protected]>

* Restyled by whitespace

---------

Signed-off-by: Dmytro Kashkarov <[email protected]>
Co-authored-by: Dmytro Kashkarov <[email protected]>
Co-authored-by: Restyled.io <[email protected]>

* Optimize RAM utilization for WriteHandler (#34992)

* Pull RAM usage reduction from write impl

* remove some extra added includes

* Apply review comment from previous PR

* [Tizen] Implement GetThreadVersion() for Thread driver (#34976)

* [Tizen] Implement GetThreadVersion in thread stack manager

* Move otThreadGetVersion() usage to Thread stack manager class

* Update C++ style

* Make GetThreadVersion public interface

* Implement mock _GetThreadVersion() for Linux, NuttX and WebOS

* Copy over data model flags (#34995)

* TC-IDM-10.5: Plumb through allow_provisional flag (#35037)

* Fixes the Service Area server's `SkipArea` handling (#35019)

* Updated the rvc-example PICS XML files.

* update the handling of the SkipArea command to match the latest spec.

* Updated the name of SkipCurrentArea to SkipArea in the Instance and Delegate classes.

* Refactored SkipCurrentArea names to SkipArea in the RVC example app.

* Restyled by clang-format

---------

Co-authored-by: Restyled.io <[email protected]>

* Minimal TC_SWTCH fixes for 1.4-TE2 (#34986)

- Fixes only issues raised on script that block success
  - https://github.com/project-chip/matter-test-scripts/issues/337
  - https://github.com/project-chip/matter-test-scripts/issues/338

- Fixes done:
  - Prompt text improvement/fixes
  - Fixed crash in 2.5/2.6

* [MCORE.FS 1.3] make "app not found" easier to debug (#35038)

* Remove unused method, make missing app error easier to find

* Remove more todo for confirm we can run apps: we confirmed we can

---------

Co-authored-by: Andrei Litvin <[email protected]>

* [FS Example] Update the FS Example apps to support fabric sync setup process part II (#34990)

* examples/fabric-bridge-app/linux/CommissionerControl.cpp

* Implement reverse commissioning

* Update function names to align with spec

* Update compatible builds to docker version 74 (#35009)

* Check which build can update to latest version

* temporarry use docker version 72

* revert image for failed builds

* downgrade K32W image

* use K32W docker image 69

* Update compatible builds to docker version 74

* use docker version 73 for EFR32

* Prevent cancellation of task with timeout in asyncio runner.

I am yet unclear why on new python/os/websocket we do not get
a timeout error, however from what I could tell, wait_for would
cancel the websocket.recv and that stops instead of throwing
a timeout exception, resulting in a full success result.

Making this change seems to make the test TestPurposefulFailureExtraReportingOnToggle
pass on my machine (well ... fail as expected instead of passing with a
successful stop)

---------

Co-authored-by: Andrei Litvin <[email protected]>

* Fix test code build issues when INET_CONFIG_TCP_ENDPOINT is set to false (#35027)

* Prevent cancellation of task with timeout in asyncio runner. (#35045)

I am yet unclear why on new python/os/websocket we do not get
a timeout error, however from what I could tell, wait_for would
cancel the websocket.recv and that stops instead of throwing
a timeout exception, resulting in a full success result.

Making this change seems to make the test TestPurposefulFailureExtraReportingOnToggle
pass on my machine (well ... fail as expected instead of passing with a
successful stop)

Co-authored-by: Andrei Litvin <[email protected]>

* TC-IDM-10.2: Fix error message (#35044)

* [Darwin] New XPC Service (#34961)

* empty xpc service files

* XPC service needs to be C++ to use MTRLogging

* add tests; stub method signature

* start configuring test XPC listener

* add first test method to XPC service protocol

* tests: remove peformance test; add headers

* make MTRXPCService testable

* more working lines of XPC listener setup

* add dummy XPC service for testing

* add replying method to service protocol / implementation

* remove log - reply contents can be asserted

* make test interesting

* linty formatty

* remove personal development team from pbxproj

* fix new file headers

* less whitespace

* Restyled by whitespace

* Restyled by clang-format

* add new XPC device controller

* sketch out a first XPC method

* store WIP for rebase

* fix pbxproj merge mistake

* make WIP slightly more sensible

* WIP: remote proxy obj in `MTRDeviceController_XPC`

* more experiments

* WIP:  return type issue

run `MTRXPCServiceTests testMTRXPCServiceSetup` and see selection of proxy object method in `MTRDeviceController_XPC.m`/`initWithXPCListenerEndpointForTesting` around line 44 to see the problem.

* add `MTRDevice_XPC`

nothing exciting yet

* add device controller over XPC parameters stub

* add init split for XPC device controllers

not yet implemented, but there

* rename new XPC parameters class

`OverXPC` is already taken / means something else

* Restyled by whitespace

* Restyled by clang-format

* remove failing exploratory test

* lintfix

* Examples

* quickly attempt to fix test

unused variable -> warning -> error

* Restyled by whitespace

* Restyled by clang-format

* inevitably the file will need to be obj-C++

* prepare to use mach service name to create XPC connection

* allow for other XPC controller connection types for now

once mach service is working, i don't expect to need others, but easier to collapse classes than raise.

* constant for well-known matter plugin service name

* note to self and re-ordering of this code now what `XPCParameters` is a subclass

* XPC parameters should support secure coding

* don't keep around object proxy; make a new one when needed.  try calling the `checkIn` method when connecting.  remove old test methods that served their purpose.

* that doesn't need to be there.

* Restyled by whitespace

* Restyled by clang-format

* no longer fighting with compiler, have some `instancetype`

* extremely normal object construction

* somehow this header got thrown out

* Restyled by whitespace

* Restyled by clang-format

* Updating XPC interfaces

* hide `initWithMachServiceName:options:` constructor

tvOS/iOS compilation issues need a look

* make `MTRDeviceController_XPC` an XPC client

via `MTRXPCClientProtocol_MTRDeviceController`, which for the moment is empty

* remove initial tests

they served their purpose well but are no longer relevant

* call mach service constructor when appropriate

also logging

* remove some obsolete test methods

* more obsoletes fixed

* more obsolete removal and logging tweaks

* buildability tweaks

* Moving along

* Fixing header

* Fixing macros and codable

* Adding invoke?

* Restyled by whitespace

* Restyled by clang-format

* Actually hooking up to XPCConnection

* Actually hooking up to XPCConnection

* Adding XPC Parameters

* Adding XPC Parameter hookup

* Restyled by whitespace

* Restyled by clang-format

* true => YES

---------

Co-authored-by: Restyled.io <[email protected]>
Co-authored-by: Justin Wood <[email protected]>

* [Darwin] more XPC service tweaks (#35048)

* return `MTRDevice_XPC`s from XPC controller

* more logging

* move shadow property declarations to internal header

* declare `_setupDeviceForNodeID` as common internal device controller method

* prefetchedClusterData is nullable

* fix a few properties that needed raising to base class

* you get a log and you get a log EVERYONE GETS A LOG

* convert device map lock for use in subclasses

* check for optional delegate method impl before calling

* ivar no longer necessary with accessor method

underlying lock is the only state needed

* Restyled by clang-format

* remove more obsolete lock bits from `MTRDeviceController_XPC`

---------

Co-authored-by: Restyled.io <[email protected]>

* ModeSelect: Add setter API for SupportedModesManager. (#34809)

* Add setter API for SupportedModesManager

* Example changes

* Restyled by clang-format

* Fix namespace usage

* Address review comments

---------

Co-authored-by: Restyled.io <[email protected]>

* Python testing: Fix reporting on setup_class error (#35016)

* Python testing: Fix reporting on setup_class error

Also add error text to make the error easier to find.

* Restyled by isort

* Fix lint

* Change exemption to not carry chip_error reference

chip_error is a ctypes struct with a const char* pointer internally.
This cannot be pickled, so it's causing problems with the mobly
framework.

* Fix some tests using removed class member

---------

Co-authored-by: Restyled.io <[email protected]>

* Fixing darwin crashes, and XPC invalidation (#35056)

* Fixing crashes

* Restyled by clang-format

---------

Co-authored-by: Restyled.io <[email protected]>

* [TI] Switch Application for CC13x4_26x4 (#34916)

* Switch Application for TI CC13x4_26x4

* Added light-switch to CI and restyled changes

* OOB configs

* CI fix

* CI fix in all_targets_linux_x64.txt

* revert CI changes for switch-app

* updated args.gni comment for logging

* [Fabric-Admin] Fix the new added device failed to get reported (#35058)

* [Fabric-Admin] Fix the new added device failed to get reported

* Restyled by prettier-markdown

---------

Co-authored-by: Restyled.io <[email protected]>

* Fix failed to sync device when using dynamic setupPIN (#35061)

* improve `MTRDeviceController`/`_Concrete` (#35060)

logging

* Updates to BRBINFO_4_1 after issues discovered during TE2 (#35040)

* Updates to BRBINFO_4_1 after issues discovered during TE2

* Update test step 3 text

* Restyled by autopep8

---------

Co-authored-by: Restyled.io <[email protected]>

* Add fabric scoping to ECOINFO cluster attributes (#35022)

---------

Co-authored-by: Restyled.io <[email protected]>
Co-authored-by: Andrei Litvin <[email protected]>

* RVC DirectModeChange Feature Update for RVCCLEANM and RVCRUNM (#34994)

* Python Scripts TC_RVCCLEANM_2_2.py and TC_RVCRUNM_2_2.py updated
* Updated the python script TC_RVCCLEANM_2_2.py with two new steps '7a' For reading FeatureMap Attribute and '7b' for send ChangeToMode Command

* Updated the python script TC_RVCRUNM_2_2.py with two new steps '6a' For reading FeatureMap Attribute and '6b' for send ChangeToMode Command

* Updated TC_RVCOPSTATE_2_4.py with updated PICS as per Test Plan

* Python Script TC_RVCOPSTATE_2_4.py

* Updated TC_RVCOPSTATE_2_4.py with steps numbers update

* Restyled by autopep8

* Python Scripts TC_RVCCLEANM_2_2.py and TC_RVCRUNM_2_2.py updated
* Updated the python script TC_RVCCLEANM_2_2.py with two new steps '7a' For reading FeatureMap Attribute and '7b' for send ChangeToMode Command

* Updated the python script TC_RVCRUNM_2_2.py with two new steps '6a' For reading FeatureMap Attribute and '6b' for send ChangeToMode Command

* Updated TC_RVCOPSTATE_2_4.py with updated PICS as per Test Plan

* Python Script TC_RVCOPSTATE_2_4.py

* Updated TC_RVCOPSTATE_2_4.py with steps numbers update

* Restyled by autopep8

* Python Script TC_RVCRUNM_2_2.py and TC_RVCCLEANM_2_2.py

* Updated TC_RVCRUNM_2_2.py and TC_RVCCLEANM_2_2.py as per comments from ROB

* Restyled by autopep8

* Updated CI PICS Value For TC_RVCOPSTATE_2_4.py

* Updated PICS.yaml For TC_RVCOPSTATE_2_4.py

* Updated CI PICS file by removing RVCOPSTATE.S.C128.Rsp

* Updated RVC PICS value at location examples/rvc-app/rvc-common/pics/rvc-app-pics-values

---------

Co-authored-by: Restyled.io <[email protected]>

* [Fabric-Admin] We should only start the reverse commission process if the local fabric bridge is ready. (#35079)

* [Fabric-Admin] We should only start the reverse commission process if the local fabric is ready.

* Fix compile error

* [ICD] Add ICDM 3.2 Python Certification Script (#34782)

* Add ICDM 3.2 Python Certification Script

* fix restyle

* Restyled by prettier-json

* Restyled by isort

* restyle and linter fix

* Add CI test arguments

---------

Co-authored-by: Restyled.io <[email protected]>

* [FabricAdmin] Refactor FS specific attribute handlings out of general HandleAttributeData function (#35080)

* [FabricAdmin] Refactor attribute Data handling

* Use reference to pass chip::TLV::TLVReader

* Update examples/fabric-admin/device_manager/DeviceManager.h

Co-authored-by: Terence Hampson <[email protected]>

* Update function name

---------

Co-authored-by: Terence Hampson <[email protected]>

* Move step (#35070)

* Use PRIu32 instead of %u to print unsigned integer (#35069)

* soc: riscv: telink_b9x, telink_w91: Auto calculation of SETTINGS_NVS_SECTOR_COUNT (#34958)

- Remove sector count of NVS from metter kconfig

- Sector count of NVS now calculates on Zephyr side as the storage partition size divided by the sector size (4 KB)

Signed-off-by: Borys Nykytiuk <[email protected]>

* riscv: telink: tlsr9528a_4m_flash.overlay (#34945)

- follow telink flash rules .

Signed-off-by: Haiwen Xia <[email protected]>
Co-authored-by: Haiwen Xia <[email protected]>

* [Silabs] Update Silabs sdks version and related enablement (#35083)

* Update all sdks to new verions

* 9116 changes to support sdk update

* 917 changes to support sdk update

* Update to provision storage for configurable address

* bump matter_support submodule

* Bump docker image version used for silabs ci

* Restyled by clang-format

* Fix wifi ncp builds

---------

Co-authored-by: Mathieu Kardous <[email protected]>
Co-authored-by: Restyled.io <[email protected]>

* In TC-ICDM-3.4 make sure that a new session will be used after DUT reboots (#35092)

* after DUT reboots make sure that a new session will be used
fixes #34985

* updated comment to reflect closing the session than expiring it

* re-establish session only when not in CI

* [Darwin] MTRDeviceController_XPC client protocol xpc interface fix (#35087)

* Fix SkipArea logic and removed the use of memcpy (#35075)

* Updated the SkipArea serever handle to not error if the CurrentArea is null, according to the spec updates.

* Replaced the use of memcpy with CopyCharSpanToMutableCharSpan.

* Restyled by clang-format

---------

Co-authored-by: Restyled.io <[email protected]>

* Move delegate management into shared MTRDevice super-class. (#35084)

* Move delegate management into shared MTRDevice super-class.

MTRDevice_XPC and MTRDevice_Concrete can then share that code.

* Address review comments, fix TAPI build.

* [Darwin] MTRDevice_XPC delegate callbacks need to hold lock before _callDelegatesWithBlock (#35095)

* [Darwin] MTRDevice_XPC delegate callbacks need to hold lock before _callDelegatesWithBlock

* Add back _callDelegatesWithBlock to avoid conflict

* Add plumbing that allows fabric-bridge endpoints to report CADMIN attr (#35076)

* Make the MTRDevice ivars protected. (#35101)

It seems like by default we have the following visibility options here:

@private - subclasses can't touch, not workable.
@public - anyone can touch, not desirable.
@package - @public inside Matter.framework, @private ouside it. Does not export
           the symbols, but anyone inside Matter.framework can touch.
@protected - only subclasses can touch, but exports the symbols in case we have
             out-of-framework subclasses who want to touch it.  Since the
             declarations are in a project header that TAPI does not know about
             in release builds, we get complaints about mismatches between
             what's declared public and what's exported.

What we would really want here is "@protected inside Matter.framework, @private
ouside it", but that does not exist.  So this switches to @protected, and uses
linker arguments to not export the symbols in release builds.  Since the header
itself is not public, this accomplishes the same goal.  In debug builds, we do
expose project headers to TAPI, hence there we want to keep exporting the
symbols.

The linker arguments just prevent exporting all ivar symbols, since we shouldn't
be exporting any of those anyway.

* IDM-12.1: Also dump to log (#35098)

* IDM-12.1: Also dump to log

* simplify print command

* Address post merge comment (#35103)

* Address post merge comment

* Quick fix

* Update default file header for Matter.framework files. (#35106)

Removes blank line at the top, makes copyright year be saner.

* Add availability annotations to new XPC protocols. (#35107)

* TC-IDM-10.2: Add check for MACL (#35086)

* TC-IDM-10.2: Add check for MACL

Test: unit tests. Note this has not been tested against the example
      app as it is still under development.

* Update src/python_testing/TC_DeviceConformance.py

Co-authored-by: Tennessee Carmel-Veilleux <[email protected]>

* Update src/python_testing/TestConformanceTest.py

---------

Co-authored-by: Tennessee Carmel-Veilleux <[email protected]>

* [Darwin] New XPC bits need to initialize properly (#35110)

* Revert "Enabling this for macOS Catalyst apps (#34956)" (#35117)

This reverts commit 1d2ddd4131f3b6a10092d93a74ea58f0fe09510b.

* [Fabric-Sync] Update the FS setup guide to wait for reverse commissioning complete (#35115)

* [Fabric-Sync] Update the FS setup guide to wait for reverse commissing

* Restyled by prettier-markdown

---------

Co-authored-by: Restyled.io <[email protected]>

* [Fabric-Sync] Add VID/PID fields to IPC method CommissionNode (#35116)

* Add VID/PID field to IPC methode CommissionNode

* Use QRCodeSetupPayloadGenerator to generate pairing code

* Revert "TC-IDM-10.2: Add check for MACL (#35086)" (#35111)

This reverts commit 927c81857ae9288ffab4ffbd529979412f8cc5f1.

* Fix UnregisterAllCommandHandlersForEndpoint to work correctly. (#35100)

Fixes https://github.com/project-chip/connectedhomeip/issues/34953

* Add missing CFLAGS to instrument things for fuzzers. (#35082)

-fno-sanitize-coverage=pc-table is added since we are already using
inline-8bit-counters and trace-cmp to provide instrumentation for the
fuzzers. It also helps reduce memory usage and improve fuzzer performance.

* adding mandatory endpointComposition data to XML for ZAP to consume (#34818)

* adding endpointComposition data to XML for ZAP to consume

* explicitly adding constraint as defined by the spec and defining compositions types

* fix composition type tag

* changing back to prevent both types being true which is not allowed

* explciitly setting conformance and contraint to account for all scenarios

* Colorcontrol xml file sync with specs (#33612)

* doorlock xml file sync with specs and colorcontrol xml type changes

* build error resolved

* Restyled by clang-format

* build error resolved

* addressed review comments

* Restyled by clang-format

* Addressed review comments

* Restyled by clang-format

* build error solved

* build error solved

* build error solved

* build error solved

* build issue resolved

* Restyled by clang-format

* resolved build errors

* removed doorlock xml changes

* Restyled by clang-format

* resolved build errors

* Restyled by clang-format

* resolved build errors

* addressed review comments

* addressed review comments

* resolved build errors

* resolved build errors

* zap generated changes

* Restyled by clang-format

* Revert colorloopdirection type change

* build error resolved

* Restyled by clang-format

* rebased and zap generated

* color control xml file updated

* build error solved

* ameba build error resolved

* Restyled by clang-format

* ameba build error resolved

* doorlock changes removed

* ameba build error resolved

* ameba build error resolved

* addressed review comments

* addressed review comments

* Restyled by clang-format

* Addressed review comments

* Addressed review comments

* Restyled by clang-format

* build error resolved

* build error resolved

* addressed reviews comments and build error resolved

* Restyled by clang-format

* ZAP issue resolved

* scripts updated

* scripts updated

* added enum values in compatenum.h file

* Restyled by whitespace

* Restyled by clang-format

* added enum values in compatenum.h file

* Restyled by whitespace

* Restyled by clang-format

* added enum values in compatenum.h file

* added header file for to_underlying

* build error resolved

* build error resolved

---------

Co-authored-by: Restyled.io <[email protected]>

* Update Darwin availability annotations. (#35108)

* Make descriptions for MTRDevice clearly say whether it's the XPC version. (#35112)

This requires hoisting _nodeID and _deviceController ivars clearly into the
MTRDevice superclass, so they can be accessed from subclasses.

The XPC version does not have a bunch of the state the non-XPC one does, so for
now it does not try to log that

* removed invalid symlinks (#35129)

* Update MCORE_FS_1_2 to latest testplan (#35097)

* Removed Arithmetics operations relying on Unit test cluster from TC_S_2_2 and TC_S_2_3 (#35130)

* Add expiry to KeepActive as per spec into fabric-admin example (#35099)

* Add expiry to KeepActive as per spec into fabric-admin example

* Restyled by clang-format

* Self Review fix

* Restyled by clang-format

* Name fix

* Address PR comments

* Address PR comments

* Restyled by clang-format

* Address PR comments

---------

Co-authored-by: Restyled.io <[email protected]>

* Move TC_BR_5 to the right directory (#35128)

* Update the preset handle field in the SetActivePresetRequest c… (#35105)

* Update the preset handle field in the SetActivePresetRequestRequest command to be nullable

- Update the deleagte API for getting the active preset handle to return a nullable handle

* Return error if CopySpanToMutableSpan fails

* Restyled by clang-format

* Apply suggestions from code review

Co-authored-by: Boris Zbarsky <[email protected]>

---------

Co-authored-by: Restyled.io <[email protected]>
Co-authored-by: Boris Zbarsky <[email protected]>

* Fix fabric-bridge is accidentally added into sync list (#35132)

* Yaml scripts update (#35093)

* Removed scripts Test_TC_SC_4_10.yaml and Test_TC_SC_4_5.yaml as Test plan have removed them

* step numbers corrected  in Test_TC_CC_7_3.yaml and action id is updated in Test_TC_ACT_3_2.yaml

* Removed scripts Test_TC_SC_4_10.yaml and Test_TC_SC_4_5.yaml as Test plan have removed them

* step numbers corrected  in Test_TC_CC_7_3.yaml and action id is updated in Test_TC_ACT_3_2.yaml

* Reverted Action of Test_TC_ACT_3_2.yaml

* [Darwin] XPC interface for invoke needs to take into account the reply may contain non-property-list objects (#35131)

* Fix Darwin to handle renames of Color Control data types. (#35135)

https://github.com/project-chip/connectedhomeip/pull/33612 made the following changes to the Color Control cluster:

1) Renamed HueDirection to DirectionEnum
2) Renamed the ShortestDistance and LongestDistance values of DirectionEnum to
   Shortest and Longest, respectively.
3) Renamed HueMoveMode to MoveModeEnum.
4) Renamed HueStepMode to StepModeEnum.
5) Removed SaturationMoveMode in favor of MoveModeEnum.
6) Removed SaturationStepMode in favor of StepModeEnum.
7) Renamed ColorMode to ColorModeEnum.
8) Renamed the ColorTemperature value to ColorTemperatureMireds
8) Renamed ColorCapabilities to ColorCapabilitiesBitmap.
9) Renamed various fields of ColorCapabilitiesBitmap.
10) Renamed ColorLoopUpdateFlags to UpdateFlagsBitmap.
11) Renamed ColorLoopAction to ColorLoopActionEnum.
12) Added OptionsBitmap, EnhancedColorModeEnum, DriftCompensationEnum.
13) Renamed ColorLoopDirection to ColorLoopDirectionEnum.
14) Renamed the DecrementHue and IncrementHue values of ColorLoopDirectionEnum
    to Decrement and Increment, respectively.

This change adds the right renamed/introduced/deprecated annotations for the
above changes, and adds manual shims for the enums that got removed.

* Re-route deprecated android casting APIs to new ones (#35136)

* Remove subscription establishment bits from the MTRDevice base class. (#35139)

_setupSubscriptionWithReason was only called from
_reattemptSubscriptionNowIfNeededWithReason.

_reattemptSubscriptionNowIfNeededWithReason was only called from:

* _handleUnsolicitedMessageFromPublisher, which is only called in callbacks set
   up by _setupSubscriptionWithReason.
* _triggerResubscribeWithReason, which only calls it when
   _reattemptingSubscription is YES.  But that's only set to YES in
   _doHandleSubscriptionReset, see next item.
* _doHandleSubscriptionReset, called from:
   * _handleSubscriptionReset: only called from callbacks set up by
     _setupSubscriptionWithReason.
   * _resetSubscriptionWithReasonString: called from unitTestResetSubscription
     and us detecting persisted data corruption in _clusterDataForPath.  But we
     don't actually have persisted data in the MTRDevice base class anymore, so
     that's not reachable.

So _setupSubscriptionWithReason is not reachable and can be removed.  And
unitTestResetSubscription can be made a no-op on the base MTRDevice.  And we can
remove the _resetSubscriptionWithReasonString call in _clusterDataForPath.

Once those are done, the following become unreachable:

* _handleSubscriptionReset
* _handleSubscriptionError
* Writing a nonzero value to _unitTestAttributesReportedSinceLastCheck
* _markDeviceAsUnreachableIfNeverSubscribed
* _handleResubscriptionNeededWithDelay
* _handleSubscriptionEstablished
* _handleUnsolicitedMessageFromPublisher
* _createDataVersionFilterListFromDictionary
* _setupConnectivityMonitoring
* _resetSubscriptionWithReasonString

Once those have been removed, the following become unreachable:

* HadSubscriptionEstablishedOnce
* _stopConnectivityMonitoring
* _doHandleSubscriptionError
* _doHandleSubscriptionReset

Once those have been removed, the following become unreachable:

* _setLastSubscriptionAttemptWait
* Setting _lastSubscriptionFailureTime to non-nil
* _clearSubscriptionPoolWork
* _scheduleSubscriptionPoolWork
* Use of _initialSubscribeStart
* _storePersistedDeviceData
* Use of _connectivityMonitor
* Use of _lastSubscriptionFailureTimeForDescription
* Any code depending on reattemptingSubscription being YES.
* Use of _lastSubscriptionAttemptWait
* Use of _lastSubscriptionAttemptWaitForDescription

Once those have been removed, _reattemptSubscriptionNowIfNeededWithReason is
unreachable and can be removed.

At this point _currentReadClient and _currentSubscriptionCallback are always
nil, so all code conditioned on those can be removed.  Once that's done,
_triggerResubscribeWithReason is a no-op, so it and all calls to it can be
removed.

Since _lastSubscriptionFailureTime is always nil, all code guarded on it not
being nil can be removed, so _readThroughSkipped becomes a no-op and
_lastSubscriptionFailureTime can be removed.

At this point, the following are not reachable:

* NeedToStartSubscriptionSetup
* _changeInternalState

Once those are removed, _internalDeviceStateForDescription is unused, and
_internalDeviceState is always MTRInternalDeviceStateUnsubscribed.  So
HaveSubscriptionEstablishedRightNow() always returns NO and can be removed.

At this point SubscriptionCallback is unused and can also be removed.

* Enhance chip-tool's formatting for some IDs (#35088)

* Added logging functions

* Modify ZAP template file generation

* Updated files for CommandId support

* Updated manual tests for the new formatting

* Fixed variable name shadowing

* Fixed typo

* Added logging functions to fabric admin

* Restyled by whitespace

* Restyled by clang-format

* Fixed linking

* Fixed typo

* Fixed CommandId logging

* Updated ZAP generated files

* Restyled by clang-format

---------

Co-authored-by: Restyled.io <[email protected]>

* Truncate map and area names (#35127)

* Updated the setting of the area and map names so that if the name given is greater than the buffer size, it's truncated rater to set to empty.

* Restyled by clang-format

---------

Co-authored-by: Restyled.io <[email protected]>

* Add new CHIP_CONFIG_ADDRESS_RESOLVE_MIN_LOOKUP_TIME_MS and (#35102)

CHIP_CONFIG_ADDRESS_RESOLVE_MAX_LOOKUP_TIME_MS macros to CHIPConfig.
Use new lookup time min/max macros inside AddressResolve for default
kMinLookupTimeMsDefault and kMaxLookupTimeMsDefault to allow for applications
to override the time required to wait for an address lookup before timing
out.

* Fix CHIP REPL tests runner after changes in e407d40 (#34453)

* Fix CHIP REPL tests runner after changes in e407d40

The click framework does not have a support for async functions. The
async needs to be synchronized before applying click wrappers.

* Accept 0x, 0b or 0o prefix for int values

* Fix for non-string numbers

* Exclude Test_TC_BRBINFO_2_1 from chip-repl engine

* Log what happened in case of pseudo cluster creation failure

* Fix typo

* Fix typo when accessing TestGlobalStruct

* Fix new line

* use CHIP_DEVICE_CONFIG_FAILSAFE_EXPIRY_LENGTH_SEC define to arme the failsafe (#35137)

* Remove unnecessary invokeCommand overrides from MTRDevice_Concrete. (#35151)

The one part that is not shared with the XPC implementation is
_invokeCommandWithEndpointID:....  Everything else is just generic argument
massaging and forwarding that can keep living in the base MTRDevice.

* Remove readAttributeWithEndpointID implementation from MTRDevice. (#35150)

This is implemented (differently) by the different subclasses.

Once this implementation is removed, the following become unreachabl…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

2 participants