diff --git a/.github/actions/checkout-submodules-and-bootstrap/action.yaml b/.github/actions/checkout-submodules-and-bootstrap/action.yaml index f7db541c9f2140..d60a69ce6d62fd 100644 --- a/.github/actions/checkout-submodules-and-bootstrap/action.yaml +++ b/.github/actions/checkout-submodules-and-bootstrap/action.yaml @@ -33,8 +33,9 @@ runs: # there is roughly 1.4GB that remains in this cache that is useless from # this point onwards. shell: bash + continue-on-error: true run: | - du -sh $HOME/.cipd-cache-dir/ || true + du -sh $HOME/.cipd-cache-dir/ rm -rf $HOME/.cipd-cache-dir/ || echo "Removing cipd cache dir failed" - name: Dump disk info after checkout submodule & Bootstrap shell: bash diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index bf6bc47597b6c3..5412d2956536dc 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -332,6 +332,39 @@ jobs: pip3 install -r src/setup_payload/python/requirements.txt python3 src/setup_payload/tests/run_python_setup_payload_gen_test.py out/chip-tool + build_linux_python_lighting_device: + name: Build on Linux (python lighting-app) + + runs-on: ubuntu-latest + if: github.actor != 'restyled-io[bot]' + + container: + image: ghcr.io/project-chip/chip-build:21 + volumes: + - "/tmp/log_output:/tmp/test_logs" + options: --sysctl "net.ipv6.conf.all.disable_ipv6=0 + net.ipv4.conf.all.forwarding=1 net.ipv6.conf.all.forwarding=1" + + steps: + - name: Dump GitHub context + env: + GITHUB_CONTEXT: ${{ toJSON(github) }} + run: echo "$GITHUB_CONTEXT" + - name: Dump Concurrency context + env: + CONCURRENCY_CONTEXT: ${{ github.ref }}-${{ github.workflow }}-${{ (github.event_name == 'pull_request' && github.event.number) || (github.event_name == 'workflow_dispatch' && github.run_number) || github.sha }} + run: echo "$CONCURRENCY_CONTEXT" + - name: Checkout + uses: actions/checkout@v4 + - name: Checkout submodules & Bootstrap + uses: ./.github/actions/checkout-submodules-and-bootstrap + with: + platform: linux + + - name: Setup Build + run: | + scripts/build_python_device.sh --chip_detail_logging true + build_darwin: name: Build on Darwin (clang, python_lib, simulated) runs-on: macos-latest diff --git a/.github/workflows/examples-linux-arm.yaml b/.github/workflows/examples-linux-arm.yaml index 371ecac04d11a7..44fdc7eac2b25d 100644 --- a/.github/workflows/examples-linux-arm.yaml +++ b/.github/workflows/examples-linux-arm.yaml @@ -59,6 +59,7 @@ jobs: --target linux-arm64-chip-cert-clang \ --target linux-arm64-all-clusters-clang \ --target linux-arm64-chip-tool-ipv6only-clang \ + --target linux-arm64-chip-tool-nodeps-ipv6only \ --target linux-arm64-lock-clang \ --target linux-arm64-minmdns-clang \ --target linux-arm64-light-rpc-ipv6only-clang \ diff --git a/.github/workflows/full-android.yaml b/.github/workflows/full-android.yaml index 73eff529be6576..319cce82a3c217 100644 --- a/.github/workflows/full-android.yaml +++ b/.github/workflows/full-android.yaml @@ -63,6 +63,7 @@ jobs: # This should not generally be needed, however android CI runs out of space # We do not need pigweed cross compile here because we use android NDK # compilers. Removing this package saves a significant amount of space. + continue-on-error: true run: | du -sh .environment/cipd/packages/arm rm -rf .environment/cipd/packages/arm diff --git a/.github/workflows/smoketest-android.yaml b/.github/workflows/smoketest-android.yaml index 456820deecedb3..6b493cbb990627 100644 --- a/.github/workflows/smoketest-android.yaml +++ b/.github/workflows/smoketest-android.yaml @@ -52,6 +52,7 @@ jobs: # This should not generally be needed, however android CI runs out of space # We do not need pigweed cross compile here because we use android NDK # compilers. Removing this package save significant amount of space. + continue-on-error: true run: | du -sh .environment/cipd/packages/arm rm -rf .environment/cipd/packages/arm diff --git a/config/nrfconnect/chip-module/Kconfig.features b/config/nrfconnect/chip-module/Kconfig.features index 522b52f8b7fe3d..9b5a1e7aee9029 100644 --- a/config/nrfconnect/chip-module/Kconfig.features +++ b/config/nrfconnect/chip-module/Kconfig.features @@ -267,4 +267,13 @@ choice CHIP_LAST_FABRIC_REMOVED_ACTION endchoice +config CHIP_LAST_FABRIC_REMOVED_ACTION_DELAY + int "After removing the last fabric wait defined time [in milliseconds] to perform an action" + depends on !CHIP_LAST_FABRIC_REMOVED_NONE + default 500 + help + After removing the last fabric the device will wait for the defined time and then perform + an action chosen by the CHIP_LAST_FABRIC_REMOVED_ACTION option. This schedule will allow for + avoiding race conditions before the device removes non-volatile data. + endif # CHIP diff --git a/config/telink/chip-module/CMakeLists.txt b/config/telink/chip-module/CMakeLists.txt index 6a1a2393b8627a..e9d506e538f131 100644 --- a/config/telink/chip-module/CMakeLists.txt +++ b/config/telink/chip-module/CMakeLists.txt @@ -160,6 +160,14 @@ else() unset(GLOBAL_DTC_OVERLAY_FILE) endif() +if(EXISTS "${CHIP_ROOT}/src/platform/telink/${FLASH_SIZE}_flash.overlay") + set(FLASH_DTC_OVERLAY_FILE "${CHIP_ROOT}/src/platform/telink/${FLASH_SIZE}_flash.overlay") + message(STATUS "Flash memory size is set to: " ${FLASH_SIZE} "b") +else() + set(FLASH_DTC_OVERLAY_FILE "${CHIP_ROOT}/src/platform/telink/2m_flash.overlay") + message(STATUS "Flash memory size is set to: 2mb") +endif() + if(EXISTS "${CHIP_ROOT}/config/telink/app/bootloader.conf") set(GLOBAL_BOOTLOADER_CONF_OVERLAY_FILE "${CHIP_ROOT}/config/telink/app/bootloader.conf") else() @@ -177,7 +185,7 @@ if (CONFIG_BOOTLOADER_MCUBOOT) add_custom_target(build_mcuboot ALL COMMAND west build -b ${BOARD} -d build_mcuboot ${ZEPHYR_BASE}/../bootloader/mcuboot/boot/zephyr - -- -DOVERLAY_CONFIG=${GLOBAL_BOOTLOADER_CONF_OVERLAY_FILE} -DDTC_OVERLAY_FILE="${GLOBAL_DTC_OVERLAY_FILE};${USB_BOOT_DTC_OVERLAY_FILE}" + -- -DOVERLAY_CONFIG=${GLOBAL_BOOTLOADER_CONF_OVERLAY_FILE} -DDTC_OVERLAY_FILE="${GLOBAL_DTC_OVERLAY_FILE};${FLASH_DTC_OVERLAY_FILE};${USB_BOOT_DTC_OVERLAY_FILE}" COMMAND cp ${PROJECT_BINARY_DIR}/../modules/chip-module/build_mcuboot/zephyr/zephyr.bin ${PROJECT_BINARY_DIR}/zephyr.mcuboot.bin ) diff --git a/data_model/clusters/ACL-Cluster.xml b/data_model/clusters/ACL-Cluster.xml new file mode 100644 index 00000000000000..2cbcbd01c9a11a --- /dev/null +++ b/data_model/clusters/ACL-Cluster.xml @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/AccountLogin.xml b/data_model/clusters/AccountLogin.xml new file mode 100644 index 00000000000000..e249e0319e4487 --- /dev/null +++ b/data_model/clusters/AccountLogin.xml @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/AdminCommissioningCluster.xml b/data_model/clusters/AdminCommissioningCluster.xml new file mode 100644 index 00000000000000..b2cffacf87e121 --- /dev/null +++ b/data_model/clusters/AdminCommissioningCluster.xml @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/AirQuality.xml b/data_model/clusters/AirQuality.xml new file mode 100644 index 00000000000000..dcaf38bc586cf5 --- /dev/null +++ b/data_model/clusters/AirQuality.xml @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/AlarmBase.xml b/data_model/clusters/AlarmBase.xml new file mode 100644 index 00000000000000..b169d4fe9be24a --- /dev/null +++ b/data_model/clusters/AlarmBase.xml @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/ApplicationBasic.xml b/data_model/clusters/ApplicationBasic.xml new file mode 100644 index 00000000000000..48ce9673675e1d --- /dev/null +++ b/data_model/clusters/ApplicationBasic.xml @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/ApplicationLauncher.xml b/data_model/clusters/ApplicationLauncher.xml new file mode 100644 index 00000000000000..91ebf6b5937446 --- /dev/null +++ b/data_model/clusters/ApplicationLauncher.xml @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/AudioOutput.xml b/data_model/clusters/AudioOutput.xml new file mode 100644 index 00000000000000..8ace3342ce2132 --- /dev/null +++ b/data_model/clusters/AudioOutput.xml @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/BallastConfiguration.xml b/data_model/clusters/BallastConfiguration.xml new file mode 100644 index 00000000000000..a6d553ddcc6ead --- /dev/null +++ b/data_model/clusters/BallastConfiguration.xml @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/BasicInformationCluster.xml b/data_model/clusters/BasicInformationCluster.xml new file mode 100644 index 00000000000000..6dbeab0f1a60cb --- /dev/null +++ b/data_model/clusters/BasicInformationCluster.xml @@ -0,0 +1,318 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/Binding-Cluster.xml b/data_model/clusters/Binding-Cluster.xml new file mode 100644 index 00000000000000..02b2219fcd0331 --- /dev/null +++ b/data_model/clusters/Binding-Cluster.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/BooleanState.xml b/data_model/clusters/BooleanState.xml new file mode 100644 index 00000000000000..5b298075fbaefc --- /dev/null +++ b/data_model/clusters/BooleanState.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/Channel.xml b/data_model/clusters/Channel.xml new file mode 100644 index 00000000000000..3227cf9a5a446e --- /dev/null +++ b/data_model/clusters/Channel.xml @@ -0,0 +1,193 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/ColorControl.xml b/data_model/clusters/ColorControl.xml new file mode 100644 index 00000000000000..142e1a58ab7a67 --- /dev/null +++ b/data_model/clusters/ColorControl.xml @@ -0,0 +1,1023 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/ConcentrationMeasurement.xml b/data_model/clusters/ConcentrationMeasurement.xml new file mode 100644 index 00000000000000..ad239e700eacf9 --- /dev/null +++ b/data_model/clusters/ConcentrationMeasurement.xml @@ -0,0 +1,252 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/ContentLauncher.xml b/data_model/clusters/ContentLauncher.xml new file mode 100644 index 00000000000000..32b47a77c233a3 --- /dev/null +++ b/data_model/clusters/ContentLauncher.xml @@ -0,0 +1,297 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/Descriptor-Cluster.xml b/data_model/clusters/Descriptor-Cluster.xml new file mode 100644 index 00000000000000..956fb411e91a22 --- /dev/null +++ b/data_model/clusters/Descriptor-Cluster.xml @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/DiagnosticLogsCluster.xml b/data_model/clusters/DiagnosticLogsCluster.xml new file mode 100644 index 00000000000000..2fb6fc298ac7b5 --- /dev/null +++ b/data_model/clusters/DiagnosticLogsCluster.xml @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/DiagnosticsEthernet.xml b/data_model/clusters/DiagnosticsEthernet.xml new file mode 100644 index 00000000000000..0ceb98841a7793 --- /dev/null +++ b/data_model/clusters/DiagnosticsEthernet.xml @@ -0,0 +1,173 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/DiagnosticsGeneral.xml b/data_model/clusters/DiagnosticsGeneral.xml new file mode 100644 index 00000000000000..e03b1c04f13ddf --- /dev/null +++ b/data_model/clusters/DiagnosticsGeneral.xml @@ -0,0 +1,319 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/DiagnosticsSoftware.xml b/data_model/clusters/DiagnosticsSoftware.xml new file mode 100644 index 00000000000000..4a4d5508be51d5 --- /dev/null +++ b/data_model/clusters/DiagnosticsSoftware.xml @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/DiagnosticsThread.xml b/data_model/clusters/DiagnosticsThread.xml new file mode 100644 index 00000000000000..2f8e97b150ffc2 --- /dev/null +++ b/data_model/clusters/DiagnosticsThread.xml @@ -0,0 +1,691 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/DiagnosticsWiFi.xml b/data_model/clusters/DiagnosticsWiFi.xml new file mode 100644 index 00000000000000..ce0d8ae0e59c0f --- /dev/null +++ b/data_model/clusters/DiagnosticsWiFi.xml @@ -0,0 +1,257 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/DishwasherAlarm.xml b/data_model/clusters/DishwasherAlarm.xml new file mode 100644 index 00000000000000..487a522a661af7 --- /dev/null +++ b/data_model/clusters/DishwasherAlarm.xml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/DoorLock.xml b/data_model/clusters/DoorLock.xml new file mode 100644 index 00000000000000..a0c5f9e63be3d7 --- /dev/null +++ b/data_model/clusters/DoorLock.xml @@ -0,0 +1,2296 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/FanControl.xml b/data_model/clusters/FanControl.xml new file mode 100644 index 00000000000000..121f954055bcfe --- /dev/null +++ b/data_model/clusters/FanControl.xml @@ -0,0 +1,296 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/FlowMeasurement.xml b/data_model/clusters/FlowMeasurement.xml new file mode 100644 index 00000000000000..66ad022c2c64ef --- /dev/null +++ b/data_model/clusters/FlowMeasurement.xml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/GeneralCommissioningCluster.xml b/data_model/clusters/GeneralCommissioningCluster.xml new file mode 100644 index 00000000000000..a25cdfc6ac934e --- /dev/null +++ b/data_model/clusters/GeneralCommissioningCluster.xml @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/Group-Key-Management-Cluster.xml b/data_model/clusters/Group-Key-Management-Cluster.xml new file mode 100644 index 00000000000000..78db5376ebef14 --- /dev/null +++ b/data_model/clusters/Group-Key-Management-Cluster.xml @@ -0,0 +1,232 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/Groups.xml b/data_model/clusters/Groups.xml new file mode 100644 index 00000000000000..b0b8379e840d5b --- /dev/null +++ b/data_model/clusters/Groups.xml @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/Identify.xml b/data_model/clusters/Identify.xml new file mode 100644 index 00000000000000..cc9bf06b474eca --- /dev/null +++ b/data_model/clusters/Identify.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/IlluminanceMeasurement.xml b/data_model/clusters/IlluminanceMeasurement.xml new file mode 100644 index 00000000000000..c9be9fa6879293 --- /dev/null +++ b/data_model/clusters/IlluminanceMeasurement.xml @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/KeypadInput.xml b/data_model/clusters/KeypadInput.xml new file mode 100644 index 00000000000000..81f16ec0830aef --- /dev/null +++ b/data_model/clusters/KeypadInput.xml @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/Label-Cluster-FixedLabel.xml b/data_model/clusters/Label-Cluster-FixedLabel.xml new file mode 100644 index 00000000000000..7087883e611edb --- /dev/null +++ b/data_model/clusters/Label-Cluster-FixedLabel.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/Label-Cluster-Label.xml b/data_model/clusters/Label-Cluster-Label.xml new file mode 100644 index 00000000000000..6b29c2cf44caad --- /dev/null +++ b/data_model/clusters/Label-Cluster-Label.xml @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/Label-Cluster-UserLabel.xml b/data_model/clusters/Label-Cluster-UserLabel.xml new file mode 100644 index 00000000000000..e9d8dda4610b4f --- /dev/null +++ b/data_model/clusters/Label-Cluster-UserLabel.xml @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/LaundryWasherControls.xml b/data_model/clusters/LaundryWasherControls.xml new file mode 100644 index 00000000000000..0f0c70d9b5825c --- /dev/null +++ b/data_model/clusters/LaundryWasherControls.xml @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/LevelControl.xml b/data_model/clusters/LevelControl.xml new file mode 100644 index 00000000000000..0cc15f95168ce3 --- /dev/null +++ b/data_model/clusters/LevelControl.xml @@ -0,0 +1,305 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/LocalizationConfiguration.xml b/data_model/clusters/LocalizationConfiguration.xml new file mode 100644 index 00000000000000..2b1297fb8f8e0e --- /dev/null +++ b/data_model/clusters/LocalizationConfiguration.xml @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/LocalizationTimeFormat.xml b/data_model/clusters/LocalizationTimeFormat.xml new file mode 100644 index 00000000000000..9c0ffa062fec58 --- /dev/null +++ b/data_model/clusters/LocalizationTimeFormat.xml @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/LocalizationUnit.xml b/data_model/clusters/LocalizationUnit.xml new file mode 100644 index 00000000000000..8a5179dafb0aff --- /dev/null +++ b/data_model/clusters/LocalizationUnit.xml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/LowPower.xml b/data_model/clusters/LowPower.xml new file mode 100644 index 00000000000000..f8ee432eef58a7 --- /dev/null +++ b/data_model/clusters/LowPower.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/MediaInput.xml b/data_model/clusters/MediaInput.xml new file mode 100644 index 00000000000000..8b6f4008f372f6 --- /dev/null +++ b/data_model/clusters/MediaInput.xml @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/MediaPlayback.xml b/data_model/clusters/MediaPlayback.xml new file mode 100644 index 00000000000000..21001d287f6120 --- /dev/null +++ b/data_model/clusters/MediaPlayback.xml @@ -0,0 +1,248 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/ModeBase.xml b/data_model/clusters/ModeBase.xml new file mode 100644 index 00000000000000..7c0e4ae07648b7 --- /dev/null +++ b/data_model/clusters/ModeBase.xml @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/ModeSelect.xml b/data_model/clusters/ModeSelect.xml new file mode 100644 index 00000000000000..2fff860458f0e5 --- /dev/null +++ b/data_model/clusters/ModeSelect.xml @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/Mode_Dishwasher.xml b/data_model/clusters/Mode_Dishwasher.xml new file mode 100644 index 00000000000000..88bb8da4045695 --- /dev/null +++ b/data_model/clusters/Mode_Dishwasher.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/Mode_LaundryWasher.xml b/data_model/clusters/Mode_LaundryWasher.xml new file mode 100644 index 00000000000000..96190a4009850c --- /dev/null +++ b/data_model/clusters/Mode_LaundryWasher.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/Mode_RVCClean.xml b/data_model/clusters/Mode_RVCClean.xml new file mode 100644 index 00000000000000..94862d27905718 --- /dev/null +++ b/data_model/clusters/Mode_RVCClean.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/Mode_RVCRun.xml b/data_model/clusters/Mode_RVCRun.xml new file mode 100644 index 00000000000000..6f83ac88816322 --- /dev/null +++ b/data_model/clusters/Mode_RVCRun.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/Mode_Refrigerator.xml b/data_model/clusters/Mode_Refrigerator.xml new file mode 100644 index 00000000000000..adf4bdebdca97d --- /dev/null +++ b/data_model/clusters/Mode_Refrigerator.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/NetworkCommissioningCluster.xml b/data_model/clusters/NetworkCommissioningCluster.xml new file mode 100644 index 00000000000000..740c23debbd6c2 --- /dev/null +++ b/data_model/clusters/NetworkCommissioningCluster.xml @@ -0,0 +1,471 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/OTASoftwareUpdate.xml b/data_model/clusters/OTASoftwareUpdate.xml new file mode 100644 index 00000000000000..2c87e6aa1039c9 --- /dev/null +++ b/data_model/clusters/OTASoftwareUpdate.xml @@ -0,0 +1,60 @@ + + + \ No newline at end of file diff --git a/data_model/clusters/OccupancySensing.xml b/data_model/clusters/OccupancySensing.xml new file mode 100644 index 00000000000000..1dd5cbe6156865 --- /dev/null +++ b/data_model/clusters/OccupancySensing.xml @@ -0,0 +1,181 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/OnOff.xml b/data_model/clusters/OnOff.xml new file mode 100644 index 00000000000000..6faa08547a8eb8 --- /dev/null +++ b/data_model/clusters/OnOff.xml @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/OperationalCredentialCluster.xml b/data_model/clusters/OperationalCredentialCluster.xml new file mode 100644 index 00000000000000..a5d25d07d57ecc --- /dev/null +++ b/data_model/clusters/OperationalCredentialCluster.xml @@ -0,0 +1,320 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/OperationalState.xml b/data_model/clusters/OperationalState.xml new file mode 100644 index 00000000000000..5e969ff0793b5a --- /dev/null +++ b/data_model/clusters/OperationalState.xml @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/OperationalState_RVC.xml b/data_model/clusters/OperationalState_RVC.xml new file mode 100644 index 00000000000000..3a2fa80b2857e2 --- /dev/null +++ b/data_model/clusters/OperationalState_RVC.xml @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/PowerSourceCluster.xml b/data_model/clusters/PowerSourceCluster.xml new file mode 100644 index 00000000000000..d34e75942c1a3c --- /dev/null +++ b/data_model/clusters/PowerSourceCluster.xml @@ -0,0 +1,810 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/PowerSourceConfigurationCluster.xml b/data_model/clusters/PowerSourceConfigurationCluster.xml new file mode 100644 index 00000000000000..d186842379aaf6 --- /dev/null +++ b/data_model/clusters/PowerSourceConfigurationCluster.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/PressureMeasurement.xml b/data_model/clusters/PressureMeasurement.xml new file mode 100644 index 00000000000000..70093485639090 --- /dev/null +++ b/data_model/clusters/PressureMeasurement.xml @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/PumpConfigurationControl.xml b/data_model/clusters/PumpConfigurationControl.xml new file mode 100644 index 00000000000000..f943afc3c99ae4 --- /dev/null +++ b/data_model/clusters/PumpConfigurationControl.xml @@ -0,0 +1,442 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/RefrigeratorAlarm.xml b/data_model/clusters/RefrigeratorAlarm.xml new file mode 100644 index 00000000000000..5c2ea3c6853c20 --- /dev/null +++ b/data_model/clusters/RefrigeratorAlarm.xml @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/ResourceMonitoring.xml b/data_model/clusters/ResourceMonitoring.xml new file mode 100644 index 00000000000000..e5a178a5700f8c --- /dev/null +++ b/data_model/clusters/ResourceMonitoring.xml @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/Scenes.xml b/data_model/clusters/Scenes.xml new file mode 100644 index 00000000000000..185f1d5cad37bc --- /dev/null +++ b/data_model/clusters/Scenes.xml @@ -0,0 +1,504 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/SmokeCOAlarm.xml b/data_model/clusters/SmokeCOAlarm.xml new file mode 100644 index 00000000000000..d24f696e3a3384 --- /dev/null +++ b/data_model/clusters/SmokeCOAlarm.xml @@ -0,0 +1,303 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/Switch.xml b/data_model/clusters/Switch.xml new file mode 100644 index 00000000000000..e66d2de6d8da83 --- /dev/null +++ b/data_model/clusters/Switch.xml @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/TargetNavigator.xml b/data_model/clusters/TargetNavigator.xml new file mode 100644 index 00000000000000..3a49e7b5c6c838 --- /dev/null +++ b/data_model/clusters/TargetNavigator.xml @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/TemperatureControl.xml b/data_model/clusters/TemperatureControl.xml new file mode 100644 index 00000000000000..f457238bab1d8a --- /dev/null +++ b/data_model/clusters/TemperatureControl.xml @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/TemperatureMeasurement.xml b/data_model/clusters/TemperatureMeasurement.xml new file mode 100644 index 00000000000000..e1603fd3358bc3 --- /dev/null +++ b/data_model/clusters/TemperatureMeasurement.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/Thermostat.xml b/data_model/clusters/Thermostat.xml new file mode 100644 index 00000000000000..bf221b7e8cd1cd --- /dev/null +++ b/data_model/clusters/Thermostat.xml @@ -0,0 +1,900 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/ThermostatUserInterfaceConfiguration.xml b/data_model/clusters/ThermostatUserInterfaceConfiguration.xml new file mode 100644 index 00000000000000..6c8d1d920e6ef7 --- /dev/null +++ b/data_model/clusters/ThermostatUserInterfaceConfiguration.xml @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/TimeSync.xml b/data_model/clusters/TimeSync.xml new file mode 100644 index 00000000000000..c7ad7b0032aaf7 --- /dev/null +++ b/data_model/clusters/TimeSync.xml @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/WakeOnLAN.xml b/data_model/clusters/WakeOnLAN.xml new file mode 100644 index 00000000000000..eede336182e6dc --- /dev/null +++ b/data_model/clusters/WakeOnLAN.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/WaterContentMeasurement.xml b/data_model/clusters/WaterContentMeasurement.xml new file mode 100644 index 00000000000000..8b1ff6a9a049bc --- /dev/null +++ b/data_model/clusters/WaterContentMeasurement.xml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/WindowCovering.xml b/data_model/clusters/WindowCovering.xml new file mode 100644 index 00000000000000..7eefe853c91d0a --- /dev/null +++ b/data_model/clusters/WindowCovering.xml @@ -0,0 +1,694 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/bridge-clusters-Actions.xml b/data_model/clusters/bridge-clusters-Actions.xml new file mode 100644 index 00000000000000..f9b17944739dca --- /dev/null +++ b/data_model/clusters/bridge-clusters-Actions.xml @@ -0,0 +1,378 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/bridge-clusters-BridgedDeviceBasicInformation.xml b/data_model/clusters/bridge-clusters-BridgedDeviceBasicInformation.xml new file mode 100644 index 00000000000000..126f8c19454e32 --- /dev/null +++ b/data_model/clusters/bridge-clusters-BridgedDeviceBasicInformation.xml @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/spec_sha b/data_model/spec_sha new file mode 100644 index 00000000000000..7229ef3c31127b --- /dev/null +++ b/data_model/spec_sha @@ -0,0 +1 @@ +472add052fa00d436207faecd5ea9a5759c4b2ce diff --git a/docs/guides/nrfconnect_factory_data_configuration.md b/docs/guides/nrfconnect_factory_data_configuration.md index 1cc4bf01adccfb..d30a12f1e82025 100644 --- a/docs/guides/nrfconnect_factory_data_configuration.md +++ b/docs/guides/nrfconnect_factory_data_configuration.md @@ -247,7 +247,7 @@ To use this script, complete the following steps: b. Add output file path: ``` - -o + -o ``` c. Generate SPAKE2 verifier using one of the following methods: @@ -357,7 +357,7 @@ $ python scripts/tools/nrfconnect/generate_nrfconnect_chip_factory_data.py \ --passcode 20202021 \ --product_finish "matte" \ --product_color "black" \ ---out "build.json"' \ +--out "build.json" \ --schema "scripts/tools/nrfconnect/nrfconnect_factory_data.schema" ``` diff --git a/examples/air-quality-sensor-app/air-quality-sensor-common/air-quality-sensor-app.matter b/examples/air-quality-sensor-app/air-quality-sensor-common/air-quality-sensor-app.matter index f811b3164af645..b468be273d3509 100644 --- a/examples/air-quality-sensor-app/air-quality-sensor-common/air-quality-sensor-app.matter +++ b/examples/air-quality-sensor-app/air-quality-sensor-common/air-quality-sensor-app.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -43,7 +43,7 @@ server cluster Identify = 3 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -76,13 +76,13 @@ server cluster Descriptor = 29 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -90,7 +90,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -148,7 +148,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -172,7 +172,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -235,20 +235,20 @@ server cluster BasicInformation = 40 { /** Provides an interface for providing OTA software updates */ client cluster OtaSoftwareUpdateProvider = 41 { - enum ApplyUpdateActionEnum : ENUM8 { + enum ApplyUpdateActionEnum : enum8 { kProceed = 0; kAwaitNextAction = 1; kDiscontinue = 2; } - enum DownloadProtocolEnum : ENUM8 { + enum DownloadProtocolEnum : enum8 { kBDXSynchronous = 0; kBDXAsynchronous = 1; kHTTPS = 2; kVendorSpecific = 3; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kUpdateAvailable = 0; kBusy = 1; kNotAvailable = 2; @@ -309,13 +309,13 @@ client cluster OtaSoftwareUpdateProvider = 41 { /** Provides an interface for downloading and applying OTA software updates */ server cluster OtaSoftwareUpdateRequestor = 42 { - enum AnnouncementReasonEnum : ENUM8 { + enum AnnouncementReasonEnum : enum8 { kSimpleAnnouncement = 0; kUpdateAvailable = 1; kUrgentUpdateAvailable = 2; } - enum ChangeReasonEnum : ENUM8 { + enum ChangeReasonEnum : enum8 { kUnknown = 0; kSuccess = 1; kFailure = 2; @@ -323,7 +323,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { kDelayByProvider = 4; } - enum UpdateStateEnum : ENUM8 { + enum UpdateStateEnum : enum8 { kUnknown = 0; kIdle = 1; kQuerying = 2; @@ -384,7 +384,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -392,7 +392,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -448,7 +448,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -464,7 +464,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -473,13 +473,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -588,7 +588,7 @@ server cluster NetworkCommissioning = 49 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -598,7 +598,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -612,7 +612,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -620,14 +620,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -693,7 +693,7 @@ server cluster GeneralDiagnostics = 51 { /** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster SoftwareDiagnostics = 52 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWaterMarks = 0x1; } @@ -727,19 +727,19 @@ server cluster SoftwareDiagnostics = 52 { /** The Thread Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems */ server cluster ThreadNetworkDiagnostics = 53 { - enum ConnectionStatusEnum : ENUM8 { + enum ConnectionStatusEnum : enum8 { kConnected = 0; kNotConnected = 1; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kLinkDown = 1; kHardwareFailure = 2; kNetworkJammed = 3; } - enum RoutingRoleEnum : ENUM8 { + enum RoutingRoleEnum : enum8 { kUnspecified = 0; kUnassigned = 1; kSleepyEndDevice = 2; @@ -749,7 +749,7 @@ server cluster ThreadNetworkDiagnostics = 53 { kLeader = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; kMLECounts = 0x4; @@ -890,19 +890,19 @@ server cluster ThreadNetworkDiagnostics = 53 { /** The Wi-Fi Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster WiFiNetworkDiagnostics = 54 { - enum AssociationFailureCauseEnum : ENUM8 { + enum AssociationFailureCauseEnum : enum8 { kUnknown = 0; kAssociationFailed = 1; kAuthenticationFailed = 2; kSsidNotFound = 3; } - enum ConnectionStatusEnum : ENUM8 { + enum ConnectionStatusEnum : enum8 { kConnected = 0; kNotConnected = 1; } - enum SecurityTypeEnum : ENUM8 { + enum SecurityTypeEnum : enum8 { kUnspecified = 0; kNone = 1; kWEP = 2; @@ -911,7 +911,7 @@ server cluster WiFiNetworkDiagnostics = 54 { kWPA3 = 5; } - enum WiFiVersionEnum : ENUM8 { + enum WiFiVersionEnum : enum8 { kA = 0; kB = 1; kG = 2; @@ -921,7 +921,7 @@ server cluster WiFiNetworkDiagnostics = 54 { kAh = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; } @@ -964,7 +964,7 @@ server cluster WiFiNetworkDiagnostics = 54 { /** The Ethernet Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster EthernetNetworkDiagnostics = 55 { - enum PHYRateEnum : ENUM8 { + enum PHYRateEnum : enum8 { kRate10M = 0; kRate100M = 1; kRate1G = 2; @@ -977,7 +977,7 @@ server cluster EthernetNetworkDiagnostics = 55 { kRate400G = 9; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; } @@ -1003,13 +1003,13 @@ server cluster EthernetNetworkDiagnostics = 55 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -1044,12 +1044,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -1160,12 +1160,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -1232,7 +1232,7 @@ server cluster GroupKeyManagement = 63 { /** Attributes for reporting air quality classification */ server cluster AirQuality = 91 { - enum AirQualityEnum : ENUM8 { + enum AirQualityEnum : enum8 { kUnknown = 0; kGood = 1; kFair = 2; @@ -1242,7 +1242,7 @@ server cluster AirQuality = 91 { kExtremelyPoor = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kFair = 0x1; kModerate = 0x2; kVeryPoor = 0x4; @@ -1286,7 +1286,7 @@ server cluster RelativeHumidityMeasurement = 1029 { /** Attributes for reporting carbon monoxide concentration measurements */ server cluster CarbonMonoxideConcentrationMeasurement = 1036 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -1294,13 +1294,13 @@ server cluster CarbonMonoxideConcentrationMeasurement = 1036 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -1311,7 +1311,7 @@ server cluster CarbonMonoxideConcentrationMeasurement = 1036 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -1333,7 +1333,7 @@ server cluster CarbonMonoxideConcentrationMeasurement = 1036 { /** Attributes for reporting carbon dioxide concentration measurements */ server cluster CarbonDioxideConcentrationMeasurement = 1037 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -1341,13 +1341,13 @@ server cluster CarbonDioxideConcentrationMeasurement = 1037 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -1358,7 +1358,7 @@ server cluster CarbonDioxideConcentrationMeasurement = 1037 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -1380,7 +1380,7 @@ server cluster CarbonDioxideConcentrationMeasurement = 1037 { /** Attributes for reporting nitrogen dioxide concentration measurements */ server cluster NitrogenDioxideConcentrationMeasurement = 1043 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -1388,13 +1388,13 @@ server cluster NitrogenDioxideConcentrationMeasurement = 1043 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -1405,7 +1405,7 @@ server cluster NitrogenDioxideConcentrationMeasurement = 1043 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -1427,7 +1427,7 @@ server cluster NitrogenDioxideConcentrationMeasurement = 1043 { /** Attributes for reporting ozone concentration measurements */ server cluster OzoneConcentrationMeasurement = 1045 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -1435,13 +1435,13 @@ server cluster OzoneConcentrationMeasurement = 1045 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -1452,7 +1452,7 @@ server cluster OzoneConcentrationMeasurement = 1045 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -1474,7 +1474,7 @@ server cluster OzoneConcentrationMeasurement = 1045 { /** Attributes for reporting PM2.5 concentration measurements */ server cluster Pm25ConcentrationMeasurement = 1066 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -1482,13 +1482,13 @@ server cluster Pm25ConcentrationMeasurement = 1066 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -1499,7 +1499,7 @@ server cluster Pm25ConcentrationMeasurement = 1066 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -1521,7 +1521,7 @@ server cluster Pm25ConcentrationMeasurement = 1066 { /** Attributes for reporting formaldehyde concentration measurements */ server cluster FormaldehydeConcentrationMeasurement = 1067 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -1529,13 +1529,13 @@ server cluster FormaldehydeConcentrationMeasurement = 1067 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -1546,7 +1546,7 @@ server cluster FormaldehydeConcentrationMeasurement = 1067 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -1568,7 +1568,7 @@ server cluster FormaldehydeConcentrationMeasurement = 1067 { /** Attributes for reporting PM1 concentration measurements */ server cluster Pm1ConcentrationMeasurement = 1068 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -1576,13 +1576,13 @@ server cluster Pm1ConcentrationMeasurement = 1068 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -1593,7 +1593,7 @@ server cluster Pm1ConcentrationMeasurement = 1068 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -1615,7 +1615,7 @@ server cluster Pm1ConcentrationMeasurement = 1068 { /** Attributes for reporting PM10 concentration measurements */ server cluster Pm10ConcentrationMeasurement = 1069 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -1623,13 +1623,13 @@ server cluster Pm10ConcentrationMeasurement = 1069 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -1640,7 +1640,7 @@ server cluster Pm10ConcentrationMeasurement = 1069 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -1662,7 +1662,7 @@ server cluster Pm10ConcentrationMeasurement = 1069 { /** Attributes for reporting total volatile organic compounds concentration measurements */ server cluster TotalVolatileOrganicCompoundsConcentrationMeasurement = 1070 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -1670,13 +1670,13 @@ server cluster TotalVolatileOrganicCompoundsConcentrationMeasurement = 1070 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -1687,7 +1687,7 @@ server cluster TotalVolatileOrganicCompoundsConcentrationMeasurement = 1070 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -1709,7 +1709,7 @@ server cluster TotalVolatileOrganicCompoundsConcentrationMeasurement = 1070 { /** Attributes for reporting radon concentration measurements */ server cluster RadonConcentrationMeasurement = 1071 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -1717,13 +1717,13 @@ server cluster RadonConcentrationMeasurement = 1071 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -1734,7 +1734,7 @@ server cluster RadonConcentrationMeasurement = 1071 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; diff --git a/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter b/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter index efd0d098cb872d..ac9416034aa63f 100644 --- a/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter +++ b/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -49,11 +49,11 @@ server cluster Identify = 3 { /** Attributes and commands for group configuration and manipulation. */ server cluster Groups = 4 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kGroupNames = 0x1; } - bitmap NameSupportBitmap : BITMAP8 { + bitmap NameSupportBitmap : bitmap8 { kGroupNames = 0x80; } @@ -117,15 +117,15 @@ server cluster Groups = 4 { } /** Attributes and commands for scene configuration and manipulation. */ -server cluster Scenes = 5 { - bitmap Feature : BITMAP32 { +provisional server cluster Scenes = 5 { + bitmap Feature : bitmap32 { kSceneNames = 0x1; kExplicit = 0x2; kTableSize = 0x4; kFabricScenes = 0x8; } - bitmap ScenesCopyMode : BITMAP8 { + bitmap ScenesCopyMode : bitmap8 { kCopyAllScenes = 0x1; } @@ -286,33 +286,33 @@ server cluster Scenes = 5 { /** Attributes and commands for switching devices between 'On' and 'Off' states. */ client cluster OnOff = 6 { - enum DelayedAllOffEffectVariantEnum : ENUM8 { + enum DelayedAllOffEffectVariantEnum : enum8 { kDelayedOffFastFade = 0; kNoFade = 1; kDelayedOffSlowFade = 2; } - enum DyingLightEffectVariantEnum : ENUM8 { + enum DyingLightEffectVariantEnum : enum8 { kDyingLightFadeOff = 0; } - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kDelayedAllOff = 0; kDyingLight = 1; } - enum StartUpOnOffEnum : ENUM8 { + enum StartUpOnOffEnum : enum8 { kOff = 0; kOn = 1; kToggle = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kLighting = 0x1; kDeadFrontBehavior = 0x2; } - bitmap OnOffControlBitmap : BITMAP8 { + bitmap OnOffControlBitmap : bitmap8 { kAcceptOnlyWhenOn = 0x1; } @@ -355,33 +355,33 @@ client cluster OnOff = 6 { /** Attributes and commands for switching devices between 'On' and 'Off' states. */ server cluster OnOff = 6 { - enum DelayedAllOffEffectVariantEnum : ENUM8 { + enum DelayedAllOffEffectVariantEnum : enum8 { kDelayedOffFastFade = 0; kNoFade = 1; kDelayedOffSlowFade = 2; } - enum DyingLightEffectVariantEnum : ENUM8 { + enum DyingLightEffectVariantEnum : enum8 { kDyingLightFadeOff = 0; } - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kDelayedAllOff = 0; kDyingLight = 1; } - enum StartUpOnOffEnum : ENUM8 { + enum StartUpOnOffEnum : enum8 { kOff = 0; kOn = 1; kToggle = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kLighting = 0x1; kDeadFrontBehavior = 0x2; } - bitmap OnOffControlBitmap : BITMAP8 { + bitmap OnOffControlBitmap : bitmap8 { kAcceptOnlyWhenOn = 0x1; } @@ -430,23 +430,23 @@ server cluster OnOffSwitchConfiguration = 7 { /** Attributes and commands for controlling devices that can be set to a level between fully 'On' and fully 'Off.' */ server cluster LevelControl = 8 { - enum MoveMode : ENUM8 { + enum MoveMode : enum8 { kUp = 0; kDown = 1; } - enum StepMode : ENUM8 { + enum StepMode : enum8 { kUp = 0; kDown = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kOnOff = 0x1; kLighting = 0x2; kFrequency = 0x4; } - bitmap LevelControlOptions : BITMAP8 { + bitmap LevelControlOptions : bitmap8 { kExecuteIfOff = 0x1; kCoupleColorTempToLevel = 0x2; } @@ -551,7 +551,7 @@ server cluster BinaryInputBasic = 15 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -604,13 +604,13 @@ server cluster Binding = 30 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -618,7 +618,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -674,19 +674,19 @@ server cluster AccessControl = 31 { /** This cluster provides a standardized way for a Node (typically a Bridge, but could be any Node) to expose action information. */ server cluster Actions = 37 { - enum ActionErrorEnum : ENUM8 { + enum ActionErrorEnum : enum8 { kUnknown = 0; kInterrupted = 1; } - enum ActionStateEnum : ENUM8 { + enum ActionStateEnum : enum8 { kInactive = 0; kActive = 1; kPaused = 2; kDisabled = 3; } - enum ActionTypeEnum : ENUM8 { + enum ActionTypeEnum : enum8 { kOther = 0; kScene = 1; kSequence = 2; @@ -696,13 +696,13 @@ server cluster Actions = 37 { kAlarm = 6; } - enum EndpointListTypeEnum : ENUM8 { + enum EndpointListTypeEnum : enum8 { kOther = 0; kRoom = 1; kZone = 2; } - bitmap CommandBits : BITMAP16 { + bitmap CommandBits : bitmap16 { kInstantAction = 0x1; kInstantActionWithTransition = 0x2; kStartAction = 0x4; @@ -761,7 +761,7 @@ server cluster Actions = 37 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -785,7 +785,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -849,20 +849,20 @@ server cluster BasicInformation = 40 { /** Provides an interface for providing OTA software updates */ client cluster OtaSoftwareUpdateProvider = 41 { - enum ApplyUpdateActionEnum : ENUM8 { + enum ApplyUpdateActionEnum : enum8 { kProceed = 0; kAwaitNextAction = 1; kDiscontinue = 2; } - enum DownloadProtocolEnum : ENUM8 { + enum DownloadProtocolEnum : enum8 { kBDXSynchronous = 0; kBDXAsynchronous = 1; kHTTPS = 2; kVendorSpecific = 3; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kUpdateAvailable = 0; kBusy = 1; kNotAvailable = 2; @@ -923,13 +923,13 @@ client cluster OtaSoftwareUpdateProvider = 41 { /** Provides an interface for downloading and applying OTA software updates */ server cluster OtaSoftwareUpdateRequestor = 42 { - enum AnnouncementReasonEnum : ENUM8 { + enum AnnouncementReasonEnum : enum8 { kSimpleAnnouncement = 0; kUpdateAvailable = 1; kUrgentUpdateAvailable = 2; } - enum ChangeReasonEnum : ENUM8 { + enum ChangeReasonEnum : enum8 { kUnknown = 0; kSuccess = 1; kFailure = 2; @@ -937,7 +937,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { kDelayByProvider = 4; } - enum UpdateStateEnum : ENUM8 { + enum UpdateStateEnum : enum8 { kUnknown = 0; kIdle = 1; kQuerying = 2; @@ -1016,7 +1016,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -1031,12 +1031,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -1056,13 +1056,13 @@ server cluster TimeFormatLocalization = 44 { user. As such, Nodes that visually or audibly convey measurable values to the user need a mechanism by which they can be configured to use a user’s preferred unit. */ server cluster UnitLocalization = 45 { - enum TempUnitEnum : ENUM8 { + enum TempUnitEnum : enum8 { kFahrenheit = 0; kCelsius = 1; kKelvin = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTemperatureUnit = 0x1; } @@ -1088,7 +1088,7 @@ server cluster PowerSourceConfiguration = 46 { /** This cluster is used to describe the configuration and capabilities of a physical power source that provides power to the Node. */ server cluster PowerSource = 47 { - enum BatApprovedChemistryEnum : ENUM16 { + enum BatApprovedChemistryEnum : enum16 { kUnspecified = 0; kAlkaline = 1; kLithiumCarbonFluoride = 2; @@ -1124,7 +1124,7 @@ server cluster PowerSource = 47 { kZincCerium = 32; } - enum BatChargeFaultEnum : ENUM8 { + enum BatChargeFaultEnum : enum8 { kUnspecified = 0; kAmbientTooHot = 1; kAmbientTooCold = 2; @@ -1138,20 +1138,20 @@ server cluster PowerSource = 47 { kSafetyTimeout = 10; } - enum BatChargeLevelEnum : ENUM8 { + enum BatChargeLevelEnum : enum8 { kOK = 0; kWarning = 1; kCritical = 2; } - enum BatChargeStateEnum : ENUM8 { + enum BatChargeStateEnum : enum8 { kUnknown = 0; kIsCharging = 1; kIsAtFullCharge = 2; kIsNotCharging = 3; } - enum BatCommonDesignationEnum : ENUM16 { + enum BatCommonDesignationEnum : enum16 { kUnspecified = 0; kAAA = 1; kAA = 2; @@ -1235,38 +1235,38 @@ server cluster PowerSource = 47 { k32600 = 80; } - enum BatFaultEnum : ENUM8 { + enum BatFaultEnum : enum8 { kUnspecified = 0; kOverTemp = 1; kUnderTemp = 2; } - enum BatReplaceabilityEnum : ENUM8 { + enum BatReplaceabilityEnum : enum8 { kUnspecified = 0; kNotReplaceable = 1; kUserReplaceable = 2; kFactoryReplaceable = 3; } - enum PowerSourceStatusEnum : ENUM8 { + enum PowerSourceStatusEnum : enum8 { kUnspecified = 0; kActive = 1; kStandby = 2; kUnavailable = 3; } - enum WiredCurrentTypeEnum : ENUM8 { + enum WiredCurrentTypeEnum : enum8 { kAC = 0; kDC = 1; } - enum WiredFaultEnum : ENUM8 { + enum WiredFaultEnum : enum8 { kUnspecified = 0; kOverVoltage = 1; kUnderVoltage = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWired = 0x1; kBattery = 0x2; kRechargeable = 0x4; @@ -1320,7 +1320,7 @@ server cluster PowerSource = 47 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -1328,7 +1328,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -1384,7 +1384,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -1400,7 +1400,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -1409,13 +1409,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -1524,13 +1524,13 @@ server cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -1538,7 +1538,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -1561,7 +1561,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -1571,7 +1571,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -1585,7 +1585,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -1593,14 +1593,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -1666,7 +1666,7 @@ server cluster GeneralDiagnostics = 51 { /** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster SoftwareDiagnostics = 52 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWaterMarks = 0x1; } @@ -1700,19 +1700,19 @@ server cluster SoftwareDiagnostics = 52 { /** The Thread Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems */ server cluster ThreadNetworkDiagnostics = 53 { - enum ConnectionStatusEnum : ENUM8 { + enum ConnectionStatusEnum : enum8 { kConnected = 0; kNotConnected = 1; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kLinkDown = 1; kHardwareFailure = 2; kNetworkJammed = 3; } - enum RoutingRoleEnum : ENUM8 { + enum RoutingRoleEnum : enum8 { kUnspecified = 0; kUnassigned = 1; kSleepyEndDevice = 2; @@ -1722,7 +1722,7 @@ server cluster ThreadNetworkDiagnostics = 53 { kLeader = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; kMLECounts = 0x4; @@ -1863,19 +1863,19 @@ server cluster ThreadNetworkDiagnostics = 53 { /** The Wi-Fi Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster WiFiNetworkDiagnostics = 54 { - enum AssociationFailureCauseEnum : ENUM8 { + enum AssociationFailureCauseEnum : enum8 { kUnknown = 0; kAssociationFailed = 1; kAuthenticationFailed = 2; kSsidNotFound = 3; } - enum ConnectionStatusEnum : ENUM8 { + enum ConnectionStatusEnum : enum8 { kConnected = 0; kNotConnected = 1; } - enum SecurityTypeEnum : ENUM8 { + enum SecurityTypeEnum : enum8 { kUnspecified = 0; kNone = 1; kWEP = 2; @@ -1884,7 +1884,7 @@ server cluster WiFiNetworkDiagnostics = 54 { kWPA3 = 5; } - enum WiFiVersionEnum : ENUM8 { + enum WiFiVersionEnum : enum8 { kA = 0; kB = 1; kG = 2; @@ -1894,7 +1894,7 @@ server cluster WiFiNetworkDiagnostics = 54 { kAh = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; } @@ -1937,7 +1937,7 @@ server cluster WiFiNetworkDiagnostics = 54 { /** The Ethernet Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster EthernetNetworkDiagnostics = 55 { - enum PHYRateEnum : ENUM8 { + enum PHYRateEnum : enum8 { kRate10M = 0; kRate100M = 1; kRate1G = 2; @@ -1950,7 +1950,7 @@ server cluster EthernetNetworkDiagnostics = 55 { kRate400G = 9; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; } @@ -1976,7 +1976,7 @@ server cluster EthernetNetworkDiagnostics = 55 { /** Accurate time is required for a number of reasons, including scheduling, display and validating security materials. */ server cluster TimeSynchronization = 56 { - enum GranularityEnum : ENUM8 { + enum GranularityEnum : enum8 { kNoTimeGranularity = 0; kMinutesGranularity = 1; kSecondsGranularity = 2; @@ -1984,11 +1984,11 @@ server cluster TimeSynchronization = 56 { kMicrosecondsGranularity = 4; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kTimeNotAccepted = 2; } - enum TimeSourceEnum : ENUM8 { + enum TimeSourceEnum : enum8 { kNone = 0; kUnknown = 1; kAdmin = 2; @@ -2008,13 +2008,13 @@ server cluster TimeSynchronization = 56 { kGNSS = 16; } - enum TimeZoneDatabaseEnum : ENUM8 { + enum TimeZoneDatabaseEnum : enum8 { kFull = 0; kPartial = 1; kNone = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTimeZone = 0x1; kNTPClient = 0x2; kNTPServer = 0x4; @@ -2118,7 +2118,7 @@ server cluster TimeSynchronization = 56 { Two types of switch devices are supported: latching switch (e.g. rocker switch) and momentary switch (e.g. push button), distinguished with their feature flags. Interactions with the switch device are exposed as attributes (for the latching switch) and as events (for both types of switches). An interested party MAY subscribe to these attributes/events and thus be informed of the interactions, and can perform actions based on this, for example by sending commands to perform an action such as controlling a light or a window shade. */ server cluster Switch = 59 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kLatchingSwitch = 0x1; kMomentarySwitch = 0x2; kMomentarySwitchRelease = 0x4; @@ -2168,13 +2168,13 @@ server cluster Switch = 59 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -2209,12 +2209,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -2325,12 +2325,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -2445,8 +2445,10 @@ server cluster BooleanState = 69 { /** Allows servers to ensure that listed clients are notified when a server is available for communication. */ server cluster IcdManagement = 70 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCheckInProtocolSupport = 0x1; + kUserActiveModeTrigger = 0x2; + kLongIdleTimeSupport = 0x4; } fabric_scoped struct MonitoringRegistrationStruct { @@ -2491,7 +2493,7 @@ server cluster IcdManagement = 70 { /** Attributes and commands for selecting a mode from a list of supported options. */ server cluster ModeSelect = 80 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kOnOff = 0x1; } @@ -2529,14 +2531,14 @@ server cluster ModeSelect = 80 { /** Attributes and commands for selecting a mode from a list of supported options. */ server cluster LaundryWasherMode = 81 { - enum ModeTag : ENUM16 { + enum ModeTag : enum16 { kNormal = 16384; kDelicate = 16385; kHeavy = 16386; kWhites = 16387; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kOnOff = 0x1; } @@ -2576,12 +2578,12 @@ server cluster LaundryWasherMode = 81 { /** Attributes and commands for selecting a mode from a list of supported options. */ server cluster RefrigeratorAndTemperatureControlledCabinetMode = 82 { - enum ModeTag : ENUM16 { + enum ModeTag : enum16 { kRapidCool = 16384; kRapidFreeze = 16385; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kOnOff = 0x1; } @@ -2621,14 +2623,14 @@ server cluster RefrigeratorAndTemperatureControlledCabinetMode = 82 { /** This cluster supports remotely monitoring and controling the different typs of functionality available to a washing device, such as a washing machine. */ server cluster LaundryWasherControls = 83 { - enum NumberOfRinsesEnum : ENUM8 { + enum NumberOfRinsesEnum : enum8 { kNone = 0; kNormal = 1; kExtra = 2; kMax = 3; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kSpin = 0x1; kRinse = 0x2; } @@ -2647,12 +2649,12 @@ server cluster LaundryWasherControls = 83 { /** Attributes and commands for selecting a mode from a list of supported options. */ server cluster RvcRunMode = 84 { - enum ModeTag : ENUM16 { + enum ModeTag : enum16 { kIdle = 16384; kCleaning = 16385; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kStuck = 65; kDustBinMissing = 66; kDustBinFull = 67; @@ -2663,7 +2665,7 @@ server cluster RvcRunMode = 84 { kBatteryLow = 72; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kOnOff = 0x1; } @@ -2703,17 +2705,17 @@ server cluster RvcRunMode = 84 { /** Attributes and commands for selecting a mode from a list of supported options. */ server cluster RvcCleanMode = 85 { - enum ModeTag : ENUM16 { + enum ModeTag : enum16 { kDeepClean = 16384; kVacuum = 16385; kMop = 16386; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kCleaningInProgress = 64; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kOnOff = 0x1; } @@ -2753,7 +2755,7 @@ server cluster RvcCleanMode = 85 { /** Attributes and commands for configuring the temperature control, and reporting temperature. */ server cluster TemperatureControl = 86 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTemperatureNumber = 0x1; kTemperatureLevel = 0x2; kTemperatureStep = 0x4; @@ -2778,7 +2780,7 @@ server cluster TemperatureControl = 86 { /** Attributes and commands for configuring the Refrigerator alarm. */ server cluster RefrigeratorAlarm = 87 { - bitmap AlarmMap : BITMAP32 { + bitmap AlarmMap : bitmap32 { kDoorOpen = 0x1; } @@ -2802,13 +2804,13 @@ server cluster RefrigeratorAlarm = 87 { /** Attributes and commands for selecting a mode from a list of supported options. */ server cluster DishwasherMode = 89 { - enum ModeTag : ENUM16 { + enum ModeTag : enum16 { kNormal = 16384; kHeavy = 16385; kLight = 16386; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kOnOff = 0x1; } @@ -2848,7 +2850,7 @@ server cluster DishwasherMode = 89 { /** Attributes for reporting air quality classification */ server cluster AirQuality = 91 { - enum AirQualityEnum : ENUM8 { + enum AirQualityEnum : enum8 { kUnknown = 0; kGood = 1; kFair = 2; @@ -2858,7 +2860,7 @@ server cluster AirQuality = 91 { kExtremelyPoor = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kFair = 0x1; kModerate = 0x2; kVeryPoor = 0x4; @@ -2876,25 +2878,25 @@ server cluster AirQuality = 91 { /** This cluster provides an interface for observing and managing the state of smoke and CO alarms. */ server cluster SmokeCoAlarm = 92 { - enum AlarmStateEnum : ENUM8 { + enum AlarmStateEnum : enum8 { kNormal = 0; kWarning = 1; kCritical = 2; } - enum ContaminationStateEnum : ENUM8 { + enum ContaminationStateEnum : enum8 { kNormal = 0; kLow = 1; kWarning = 2; kCritical = 3; } - enum EndOfServiceEnum : ENUM8 { + enum EndOfServiceEnum : enum8 { kNormal = 0; kExpired = 1; } - enum ExpressedStateEnum : ENUM8 { + enum ExpressedStateEnum : enum8 { kNormal = 0; kSmokeAlarm = 1; kCOAlarm = 2; @@ -2906,18 +2908,18 @@ server cluster SmokeCoAlarm = 92 { kInterconnectCO = 8; } - enum MuteStateEnum : ENUM8 { + enum MuteStateEnum : enum8 { kNotMuted = 0; kMuted = 1; } - enum SensitivityEnum : ENUM8 { + enum SensitivityEnum : enum8 { kHigh = 0; kStandard = 1; kLow = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kSmokeAlarm = 0x1; kCOAlarm = 0x2; } @@ -2985,7 +2987,7 @@ server cluster SmokeCoAlarm = 92 { /** Attributes and commands for configuring the Dishwasher alarm. */ server cluster DishwasherAlarm = 93 { - bitmap AlarmMap : BITMAP32 { + bitmap AlarmMap : bitmap32 { kInflowError = 0x1; kDrainError = 0x2; kDoorError = 0x4; @@ -2994,7 +2996,7 @@ server cluster DishwasherAlarm = 93 { kWaterLevelError = 0x20; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kReset = 0x1; } @@ -3030,14 +3032,14 @@ server cluster DishwasherAlarm = 93 { /** This cluster supports remotely monitoring and, where supported, changing the operational state of any device where a state machine is a part of the operation. */ server cluster OperationalState = 96 { - enum ErrorStateEnum : ENUM8 { + enum ErrorStateEnum : enum8 { kNoError = 0; kUnableToStartOrResume = 1; kUnableToCompleteOperation = 2; kCommandInvalidInState = 3; } - enum OperationalStateEnum : ENUM8 { + enum OperationalStateEnum : enum8 { kStopped = 0; kRunning = 1; kPaused = 2; @@ -3090,7 +3092,7 @@ server cluster OperationalState = 96 { /** This cluster supports remotely monitoring and, where supported, changing the operational state of a Robotic Vacuum. */ server cluster RvcOperationalState = 97 { - enum ErrorStateEnum : ENUM8 { + enum ErrorStateEnum : enum8 { kFailedToFindChargingDock = 64; kStuck = 65; kDustBinMissing = 66; @@ -3101,7 +3103,7 @@ server cluster RvcOperationalState = 97 { kMopCleaningPadMissing = 71; } - enum OperationalStateEnum : ENUM8 { + enum OperationalStateEnum : enum8 { kSeekingCharger = 64; kCharging = 65; kDocked = 66; @@ -3151,18 +3153,18 @@ server cluster RvcOperationalState = 97 { /** Attributes and commands for monitoring HEPA filters in a device */ server cluster HepaFilterMonitoring = 113 { - enum ChangeIndicationEnum : ENUM8 { + enum ChangeIndicationEnum : enum8 { kOK = 0; kWarning = 1; kCritical = 2; } - enum DegradationDirectionEnum : ENUM8 { + enum DegradationDirectionEnum : enum8 { kUp = 0; kDown = 1; } - enum ProductIdentifierTypeEnum : ENUM8 { + enum ProductIdentifierTypeEnum : enum8 { kUPC = 0; kGTIN8 = 1; kEAN = 2; @@ -3170,7 +3172,7 @@ server cluster HepaFilterMonitoring = 113 { kOEM = 4; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCondition = 0x1; kWarning = 0x2; kReplacementProductList = 0x4; @@ -3199,18 +3201,18 @@ server cluster HepaFilterMonitoring = 113 { /** Attributes and commands for monitoring activated carbon filters in a device */ server cluster ActivatedCarbonFilterMonitoring = 114 { - enum ChangeIndicationEnum : ENUM8 { + enum ChangeIndicationEnum : enum8 { kOK = 0; kWarning = 1; kCritical = 2; } - enum DegradationDirectionEnum : ENUM8 { + enum DegradationDirectionEnum : enum8 { kUp = 0; kDown = 1; } - enum ProductIdentifierTypeEnum : ENUM8 { + enum ProductIdentifierTypeEnum : enum8 { kUPC = 0; kGTIN8 = 1; kEAN = 2; @@ -3218,7 +3220,7 @@ server cluster ActivatedCarbonFilterMonitoring = 114 { kOEM = 4; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCondition = 0x1; kWarning = 0x2; kReplacementProductList = 0x4; @@ -3247,7 +3249,7 @@ server cluster ActivatedCarbonFilterMonitoring = 114 { /** An interface to a generic way to secure a door */ server cluster DoorLock = 257 { - enum AlarmCodeEnum : ENUM8 { + enum AlarmCodeEnum : enum8 { kLockJammed = 0; kLockFactoryReset = 1; kLockRadioPowerCycled = 3; @@ -3258,13 +3260,13 @@ server cluster DoorLock = 257 { kForcedUser = 8; } - enum CredentialRuleEnum : ENUM8 { + enum CredentialRuleEnum : enum8 { kSingle = 0; kDual = 1; kTri = 2; } - enum CredentialTypeEnum : ENUM8 { + enum CredentialTypeEnum : enum8 { kProgrammingPIN = 0; kPIN = 1; kRFID = 2; @@ -3273,20 +3275,20 @@ server cluster DoorLock = 257 { kFace = 5; } - enum DataOperationTypeEnum : ENUM8 { + enum DataOperationTypeEnum : enum8 { kAdd = 0; kClear = 1; kModify = 2; } - enum DlLockState : ENUM8 { + enum DlLockState : enum8 { kNotFullyLocked = 0; kLocked = 1; kUnlocked = 2; kUnlatched = 3; } - enum DlLockType : ENUM8 { + enum DlLockType : enum8 { kDeadBolt = 0; kMagnetic = 1; kOther = 2; @@ -3301,7 +3303,7 @@ server cluster DoorLock = 257 { kEurocylinder = 11; } - enum DlStatus : ENUM8 { + enum DlStatus : enum8 { kSuccess = 0; kFailure = 1; kDuplicate = 2; @@ -3311,7 +3313,7 @@ server cluster DoorLock = 257 { kNotFound = 139; } - enum DoorLockOperationEventCode : ENUM8 { + enum DoorLockOperationEventCode : enum8 { kUnknownOrMfgSpecific = 0; kLock = 1; kUnlock = 2; @@ -3329,7 +3331,7 @@ server cluster DoorLock = 257 { kManualUnlock = 14; } - enum DoorLockProgrammingEventCode : ENUM8 { + enum DoorLockProgrammingEventCode : enum8 { kUnknownOrMfgSpecific = 0; kMasterCodeChanged = 1; kPinAdded = 2; @@ -3339,21 +3341,21 @@ server cluster DoorLock = 257 { kIdDeleted = 6; } - enum DoorLockSetPinOrIdStatus : ENUM8 { + enum DoorLockSetPinOrIdStatus : enum8 { kSuccess = 0; kGeneralFailure = 1; kMemoryFull = 2; kDuplicateCodeError = 3; } - enum DoorLockUserStatus : ENUM8 { + enum DoorLockUserStatus : enum8 { kAvailable = 0; kOccupiedEnabled = 1; kOccupiedDisabled = 3; kNotSupported = 255; } - enum DoorLockUserType : ENUM8 { + enum DoorLockUserType : enum8 { kUnrestricted = 0; kYearDayScheduleUser = 1; kWeekDayScheduleUser = 2; @@ -3362,7 +3364,7 @@ server cluster DoorLock = 257 { kNotSupported = 255; } - enum DoorStateEnum : ENUM8 { + enum DoorStateEnum : enum8 { kDoorOpen = 0; kDoorClosed = 1; kDoorJammed = 2; @@ -3371,7 +3373,7 @@ server cluster DoorLock = 257 { kDoorAjar = 5; } - enum LockDataTypeEnum : ENUM8 { + enum LockDataTypeEnum : enum8 { kUnspecified = 0; kProgrammingCode = 1; kUserIndex = 2; @@ -3385,7 +3387,7 @@ server cluster DoorLock = 257 { kFace = 10; } - enum LockOperationTypeEnum : ENUM8 { + enum LockOperationTypeEnum : enum8 { kLock = 0; kUnlock = 1; kNonAccessUserEvent = 2; @@ -3393,7 +3395,7 @@ server cluster DoorLock = 257 { kUnlatch = 4; } - enum OperatingModeEnum : ENUM8 { + enum OperatingModeEnum : enum8 { kNormal = 0; kVacation = 1; kPrivacy = 2; @@ -3401,7 +3403,7 @@ server cluster DoorLock = 257 { kPassage = 4; } - enum OperationErrorEnum : ENUM8 { + enum OperationErrorEnum : enum8 { kUnspecified = 0; kInvalidCredential = 1; kDisabledUserDenied = 2; @@ -3409,7 +3411,7 @@ server cluster DoorLock = 257 { kInsufficientBattery = 4; } - enum OperationSourceEnum : ENUM8 { + enum OperationSourceEnum : enum8 { kUnspecified = 0; kManual = 1; kProprietaryRemote = 2; @@ -3422,13 +3424,13 @@ server cluster DoorLock = 257 { kBiometric = 9; } - enum UserStatusEnum : ENUM8 { + enum UserStatusEnum : enum8 { kAvailable = 0; kOccupiedEnabled = 1; kOccupiedDisabled = 3; } - enum UserTypeEnum : ENUM8 { + enum UserTypeEnum : enum8 { kUnrestrictedUser = 0; kYearDayScheduleUser = 1; kWeekDayScheduleUser = 2; @@ -3441,7 +3443,7 @@ server cluster DoorLock = 257 { kRemoteOnlyUser = 9; } - bitmap DaysMaskMap : BITMAP8 { + bitmap DaysMaskMap : bitmap8 { kSunday = 0x1; kMonday = 0x2; kTuesday = 0x4; @@ -3451,19 +3453,19 @@ server cluster DoorLock = 257 { kSaturday = 0x40; } - bitmap DlCredentialRuleMask : BITMAP8 { + bitmap DlCredentialRuleMask : bitmap8 { kSingle = 0x1; kDual = 0x2; kTri = 0x4; } - bitmap DlCredentialRulesSupport : BITMAP8 { + bitmap DlCredentialRulesSupport : bitmap8 { kSingle = 0x1; kDual = 0x2; kTri = 0x4; } - bitmap DlDefaultConfigurationRegister : BITMAP16 { + bitmap DlDefaultConfigurationRegister : bitmap16 { kEnableLocalProgrammingEnabled = 0x1; kKeypadInterfaceDefaultAccessEnabled = 0x2; kRemoteInterfaceDefaultAccessIsEnabled = 0x4; @@ -3472,7 +3474,7 @@ server cluster DoorLock = 257 { kLEDSettingsSet = 0x80; } - bitmap DlKeypadOperationEventMask : BITMAP16 { + bitmap DlKeypadOperationEventMask : bitmap16 { kUnknown = 0x1; kLock = 0x2; kUnlock = 0x4; @@ -3483,7 +3485,7 @@ server cluster DoorLock = 257 { kNonAccessUserOpEvent = 0x80; } - bitmap DlKeypadProgrammingEventMask : BITMAP16 { + bitmap DlKeypadProgrammingEventMask : bitmap16 { kUnknown = 0x1; kProgrammingPINChanged = 0x2; kPINAdded = 0x4; @@ -3491,14 +3493,14 @@ server cluster DoorLock = 257 { kPINChanged = 0x10; } - bitmap DlLocalProgrammingFeatures : BITMAP8 { + bitmap DlLocalProgrammingFeatures : bitmap8 { kAddUsersCredentialsSchedulesLocally = 0x1; kModifyUsersCredentialsSchedulesLocally = 0x2; kClearUsersCredentialsSchedulesLocally = 0x4; kAdjustLockSettingsLocally = 0x8; } - bitmap DlManualOperationEventMask : BITMAP16 { + bitmap DlManualOperationEventMask : bitmap16 { kUnknown = 0x1; kThumbturnLock = 0x2; kThumbturnUnlock = 0x4; @@ -3512,7 +3514,7 @@ server cluster DoorLock = 257 { kManualUnlock = 0x400; } - bitmap DlRFIDOperationEventMask : BITMAP16 { + bitmap DlRFIDOperationEventMask : bitmap16 { kUnknown = 0x1; kLock = 0x2; kUnlock = 0x4; @@ -3522,13 +3524,13 @@ server cluster DoorLock = 257 { kUnlockInvalidSchedule = 0x40; } - bitmap DlRFIDProgrammingEventMask : BITMAP16 { + bitmap DlRFIDProgrammingEventMask : bitmap16 { kUnknown = 0x1; kRFIDCodeAdded = 0x20; kRFIDCodeCleared = 0x40; } - bitmap DlRemoteOperationEventMask : BITMAP16 { + bitmap DlRemoteOperationEventMask : bitmap16 { kUnknown = 0x1; kLock = 0x2; kUnlock = 0x4; @@ -3538,7 +3540,7 @@ server cluster DoorLock = 257 { kUnlockInvalidSchedule = 0x40; } - bitmap DlRemoteProgrammingEventMask : BITMAP16 { + bitmap DlRemoteProgrammingEventMask : bitmap16 { kUnknown = 0x1; kProgrammingPINChanged = 0x2; kPINAdded = 0x4; @@ -3548,7 +3550,7 @@ server cluster DoorLock = 257 { kRFIDCodeCleared = 0x40; } - bitmap DlSupportedOperatingModes : BITMAP16 { + bitmap DlSupportedOperatingModes : bitmap16 { kNormal = 0x1; kVacation = 0x2; kPrivacy = 0x4; @@ -3556,7 +3558,7 @@ server cluster DoorLock = 257 { kPassage = 0x10; } - bitmap DoorLockDayOfWeek : BITMAP8 { + bitmap DoorLockDayOfWeek : bitmap8 { kSunday = 0x1; kMonday = 0x2; kTuesday = 0x4; @@ -3566,7 +3568,7 @@ server cluster DoorLock = 257 { kSaturday = 0x40; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPINCredential = 0x1; kRFIDCredential = 0x2; kFingerCredentials = 0x4; @@ -3790,7 +3792,7 @@ server cluster DoorLock = 257 { /** Provides an interface for controlling and adjusting automatic window coverings. */ server cluster WindowCovering = 258 { - enum EndProductType : ENUM8 { + enum EndProductType : enum8 { kRollerShade = 0; kRomanShade = 1; kBalloonShade = 2; @@ -3818,7 +3820,7 @@ server cluster WindowCovering = 258 { kUnknown = 255; } - enum Type : ENUM8 { + enum Type : enum8 { kRollerShade = 0; kRollerShade2Motor = 1; kRollerShadeExterior = 2; @@ -3832,7 +3834,7 @@ server cluster WindowCovering = 258 { kUnknown = 255; } - bitmap ConfigStatus : BITMAP8 { + bitmap ConfigStatus : bitmap8 { kOperational = 0x1; kOnlineReserved = 0x2; kLiftMovementReversed = 0x4; @@ -3842,7 +3844,7 @@ server cluster WindowCovering = 258 { kTiltEncoderControlled = 0x40; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kLift = 0x1; kTilt = 0x2; kPositionAwareLift = 0x4; @@ -3850,20 +3852,20 @@ server cluster WindowCovering = 258 { kPositionAwareTilt = 0x10; } - bitmap Mode : BITMAP8 { + bitmap Mode : bitmap8 { kMotorDirectionReversed = 0x1; kCalibrationMode = 0x2; kMaintenanceMode = 0x4; kLedFeedback = 0x8; } - bitmap OperationalStatus : BITMAP8 { + bitmap OperationalStatus : bitmap8 { kGlobal = 0x3; kLift = 0xC; kTilt = 0x30; } - bitmap SafetyStatus : BITMAP16 { + bitmap SafetyStatus : bitmap16 { kRemoteLockout = 0x1; kTamperDetection = 0x2; kFailedCommunication = 0x4; @@ -3934,11 +3936,11 @@ server cluster WindowCovering = 258 { /** This cluster provides control of a barrier (garage door). */ server cluster BarrierControl = 259 { - bitmap BarrierControlCapabilities : BITMAP8 { + bitmap BarrierControlCapabilities : bitmap8 { kPartialBarrier = 0x1; } - bitmap BarrierControlSafetyStatus : BITMAP16 { + bitmap BarrierControlSafetyStatus : bitmap16 { kRemoteLockout = 0x1; kTemperDetected = 0x2; kFailedCommunication = 0x4; @@ -3966,7 +3968,7 @@ server cluster BarrierControl = 259 { /** An interface for configuring and controlling pumps. */ server cluster PumpConfigurationAndControl = 512 { - enum ControlModeEnum : ENUM8 { + enum ControlModeEnum : enum8 { kConstantSpeed = 0; kConstantPressure = 1; kProportionalPressure = 2; @@ -3975,14 +3977,14 @@ server cluster PumpConfigurationAndControl = 512 { kAutomatic = 7; } - enum OperationModeEnum : ENUM8 { + enum OperationModeEnum : enum8 { kNormal = 0; kMinimum = 1; kMaximum = 2; kLocal = 3; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kConstantPressure = 0x1; kCompensatedPressure = 0x2; kConstantFlow = 0x4; @@ -3992,7 +3994,7 @@ server cluster PumpConfigurationAndControl = 512 { kLocalOperation = 0x40; } - bitmap PumpStatusBitmap : BITMAP16 { + bitmap PumpStatusBitmap : bitmap16 { kDeviceFault = 0x1; kSupplyfault = 0x2; kSpeedLow = 0x4; @@ -4088,13 +4090,13 @@ server cluster PumpConfigurationAndControl = 512 { /** An interface for configuring and controlling the functionality of a thermostat. */ server cluster Thermostat = 513 { - enum SetpointAdjustMode : ENUM8 { + enum SetpointAdjustMode : enum8 { kHeat = 0; kCool = 1; kBoth = 2; } - enum ThermostatControlSequence : ENUM8 { + enum ThermostatControlSequence : enum8 { kCoolingOnly = 0; kCoolingWithReheat = 1; kHeatingOnly = 2; @@ -4103,13 +4105,13 @@ server cluster Thermostat = 513 { kCoolingAndHeatingWithReheat = 5; } - enum ThermostatRunningMode : ENUM8 { + enum ThermostatRunningMode : enum8 { kOff = 0; kCool = 3; kHeat = 4; } - enum ThermostatSystemMode : ENUM8 { + enum ThermostatSystemMode : enum8 { kOff = 0; kAuto = 1; kCool = 3; @@ -4121,7 +4123,7 @@ server cluster Thermostat = 513 { kSleep = 9; } - bitmap DayOfWeek : BITMAP8 { + bitmap DayOfWeek : bitmap8 { kSunday = 0x1; kMonday = 0x2; kTuesday = 0x4; @@ -4132,7 +4134,7 @@ server cluster Thermostat = 513 { kAway = 0x80; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kHeating = 0x1; kCooling = 0x2; kOccupancy = 0x4; @@ -4142,7 +4144,7 @@ server cluster Thermostat = 513 { kLocalTemperatureNotExposed = 0x40; } - bitmap ModeForSequence : BITMAP8 { + bitmap ModeForSequence : bitmap8 { kHeatSetpointPresent = 0x1; kCoolSetpointPresent = 0x2; } @@ -4183,13 +4185,13 @@ server cluster Thermostat = 513 { } /** An interface for controlling a fan in a heating/cooling system. */ -server cluster FanControl = 514 { - enum AirflowDirectionEnum : ENUM8 { +provisional server cluster FanControl = 514 { + enum AirflowDirectionEnum : enum8 { kForward = 0; kReverse = 1; } - enum FanModeEnum : ENUM8 { + enum FanModeEnum : enum8 { kOff = 0; kLow = 1; kMedium = 2; @@ -4199,7 +4201,7 @@ server cluster FanControl = 514 { kSmart = 6; } - enum FanModeSequenceEnum : ENUM8 { + enum FanModeSequenceEnum : enum8 { kOffLowMedHigh = 0; kOffLowHigh = 1; kOffLowMedHighAuto = 2; @@ -4208,12 +4210,12 @@ server cluster FanControl = 514 { kOffOn = 5; } - enum StepDirectionEnum : ENUM8 { + enum StepDirectionEnum : enum8 { kIncrease = 0; kDecrease = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kMultiSpeed = 0x1; kAuto = 0x2; kRocking = 0x4; @@ -4222,13 +4224,13 @@ server cluster FanControl = 514 { kAirflowDirection = 0x20; } - bitmap RockBitmap : BITMAP8 { + bitmap RockBitmap : bitmap8 { kRockLeftRight = 0x1; kRockUpDown = 0x2; kRockRound = 0x4; } - bitmap WindBitmap : BITMAP8 { + bitmap WindBitmap : bitmap8 { kSleepWind = 0x1; kNaturalWind = 0x2; } @@ -4276,53 +4278,53 @@ server cluster ThermostatUserInterfaceConfiguration = 516 { /** Attributes and commands for controlling the color properties of a color-capable light. */ server cluster ColorControl = 768 { - enum ColorLoopAction : ENUM8 { + enum ColorLoopAction : enum8 { kDeactivate = 0; kActivateFromColorLoopStartEnhancedHue = 1; kActivateFromEnhancedCurrentHue = 2; } - enum ColorLoopDirection : ENUM8 { + enum ColorLoopDirection : enum8 { kDecrementHue = 0; kIncrementHue = 1; } - enum ColorMode : ENUM8 { + enum ColorMode : enum8 { kCurrentHueAndCurrentSaturation = 0; kCurrentXAndCurrentY = 1; kColorTemperature = 2; } - enum HueDirection : ENUM8 { + enum HueDirection : enum8 { kShortestDistance = 0; kLongestDistance = 1; kUp = 2; kDown = 3; } - enum HueMoveMode : ENUM8 { + enum HueMoveMode : enum8 { kStop = 0; kUp = 1; kDown = 3; } - enum HueStepMode : ENUM8 { + enum HueStepMode : enum8 { kUp = 1; kDown = 3; } - enum SaturationMoveMode : ENUM8 { + enum SaturationMoveMode : enum8 { kStop = 0; kUp = 1; kDown = 3; } - enum SaturationStepMode : ENUM8 { + enum SaturationStepMode : enum8 { kUp = 1; kDown = 3; } - bitmap ColorCapabilities : BITMAP16 { + bitmap ColorCapabilities : bitmap16 { kHueSaturationSupported = 0x1; kEnhancedHueSupported = 0x2; kColorLoopSupported = 0x4; @@ -4330,14 +4332,14 @@ server cluster ColorControl = 768 { kColorTemperatureSupported = 0x10; } - bitmap ColorLoopUpdateFlags : BITMAP8 { + bitmap ColorLoopUpdateFlags : bitmap8 { kUpdateAction = 0x1; kUpdateDirection = 0x2; kUpdateTime = 0x4; kUpdateStartHue = 0x8; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kHueAndSaturation = 0x1; kEnhancedHue = 0x2; kColorLoop = 0x4; @@ -4574,13 +4576,13 @@ server cluster ColorControl = 768 { } /** Attributes and commands for configuring a lighting ballast. */ -server cluster BallastConfiguration = 769 { - bitmap BallastStatusBitmap : BITMAP8 { +provisional server cluster BallastConfiguration = 769 { + bitmap BallastStatusBitmap : bitmap8 { kBallastNonOperational = 0x1; kLampFailure = 0x2; } - bitmap LampAlarmModeBitmap : BITMAP8 { + bitmap LampAlarmModeBitmap : bitmap8 { kLampBurnHours = 0x1; } @@ -4608,7 +4610,7 @@ server cluster BallastConfiguration = 769 { /** Attributes and commands for configuring the measurement of illuminance, and reporting illuminance measurements. */ server cluster IlluminanceMeasurement = 1024 { - enum LightSensorTypeEnum : ENUM8 { + enum LightSensorTypeEnum : enum8 { kPhotodiode = 0; kCMOS = 1; } @@ -4642,7 +4644,7 @@ server cluster TemperatureMeasurement = 1026 { /** Attributes and commands for configuring the measurement of pressure, and reporting pressure measurements. */ server cluster PressureMeasurement = 1027 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kExtended = 0x1; } @@ -4687,18 +4689,18 @@ server cluster RelativeHumidityMeasurement = 1029 { /** Attributes and commands for configuring occupancy sensing, and reporting occupancy status. */ server cluster OccupancySensing = 1030 { - enum OccupancySensorTypeEnum : ENUM8 { + enum OccupancySensorTypeEnum : enum8 { kPIR = 0; kUltrasonic = 1; kPIRAndUltrasonic = 2; kPhysicalContact = 3; } - bitmap OccupancyBitmap : BITMAP8 { + bitmap OccupancyBitmap : bitmap8 { kOccupied = 0x1; } - bitmap OccupancySensorTypeBitmap : BITMAP8 { + bitmap OccupancySensorTypeBitmap : bitmap8 { kPIR = 0x1; kUltrasonic = 0x2; kPhysicalContact = 0x4; @@ -4717,7 +4719,7 @@ server cluster OccupancySensing = 1030 { /** Attributes for reporting carbon monoxide concentration measurements */ server cluster CarbonMonoxideConcentrationMeasurement = 1036 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -4725,13 +4727,13 @@ server cluster CarbonMonoxideConcentrationMeasurement = 1036 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -4742,7 +4744,7 @@ server cluster CarbonMonoxideConcentrationMeasurement = 1036 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -4772,7 +4774,7 @@ server cluster CarbonMonoxideConcentrationMeasurement = 1036 { /** Attributes for reporting carbon dioxide concentration measurements */ server cluster CarbonDioxideConcentrationMeasurement = 1037 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -4780,13 +4782,13 @@ server cluster CarbonDioxideConcentrationMeasurement = 1037 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -4797,7 +4799,7 @@ server cluster CarbonDioxideConcentrationMeasurement = 1037 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -4827,7 +4829,7 @@ server cluster CarbonDioxideConcentrationMeasurement = 1037 { /** Attributes for reporting nitrogen dioxide concentration measurements */ server cluster NitrogenDioxideConcentrationMeasurement = 1043 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -4835,13 +4837,13 @@ server cluster NitrogenDioxideConcentrationMeasurement = 1043 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -4852,7 +4854,7 @@ server cluster NitrogenDioxideConcentrationMeasurement = 1043 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -4882,7 +4884,7 @@ server cluster NitrogenDioxideConcentrationMeasurement = 1043 { /** Attributes for reporting ozone concentration measurements */ server cluster OzoneConcentrationMeasurement = 1045 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -4890,13 +4892,13 @@ server cluster OzoneConcentrationMeasurement = 1045 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -4907,7 +4909,7 @@ server cluster OzoneConcentrationMeasurement = 1045 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -4937,7 +4939,7 @@ server cluster OzoneConcentrationMeasurement = 1045 { /** Attributes for reporting PM2.5 concentration measurements */ server cluster Pm25ConcentrationMeasurement = 1066 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -4945,13 +4947,13 @@ server cluster Pm25ConcentrationMeasurement = 1066 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -4962,7 +4964,7 @@ server cluster Pm25ConcentrationMeasurement = 1066 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -4992,7 +4994,7 @@ server cluster Pm25ConcentrationMeasurement = 1066 { /** Attributes for reporting formaldehyde concentration measurements */ server cluster FormaldehydeConcentrationMeasurement = 1067 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -5000,13 +5002,13 @@ server cluster FormaldehydeConcentrationMeasurement = 1067 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -5017,7 +5019,7 @@ server cluster FormaldehydeConcentrationMeasurement = 1067 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -5047,7 +5049,7 @@ server cluster FormaldehydeConcentrationMeasurement = 1067 { /** Attributes for reporting PM1 concentration measurements */ server cluster Pm1ConcentrationMeasurement = 1068 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -5055,13 +5057,13 @@ server cluster Pm1ConcentrationMeasurement = 1068 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -5072,7 +5074,7 @@ server cluster Pm1ConcentrationMeasurement = 1068 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -5102,7 +5104,7 @@ server cluster Pm1ConcentrationMeasurement = 1068 { /** Attributes for reporting PM10 concentration measurements */ server cluster Pm10ConcentrationMeasurement = 1069 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -5110,13 +5112,13 @@ server cluster Pm10ConcentrationMeasurement = 1069 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -5127,7 +5129,7 @@ server cluster Pm10ConcentrationMeasurement = 1069 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -5157,7 +5159,7 @@ server cluster Pm10ConcentrationMeasurement = 1069 { /** Attributes for reporting total volatile organic compounds concentration measurements */ server cluster TotalVolatileOrganicCompoundsConcentrationMeasurement = 1070 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -5165,13 +5167,13 @@ server cluster TotalVolatileOrganicCompoundsConcentrationMeasurement = 1070 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -5182,7 +5184,7 @@ server cluster TotalVolatileOrganicCompoundsConcentrationMeasurement = 1070 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -5212,7 +5214,7 @@ server cluster TotalVolatileOrganicCompoundsConcentrationMeasurement = 1070 { /** Attributes for reporting radon concentration measurements */ server cluster RadonConcentrationMeasurement = 1071 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -5220,13 +5222,13 @@ server cluster RadonConcentrationMeasurement = 1071 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -5237,7 +5239,7 @@ server cluster RadonConcentrationMeasurement = 1071 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -5310,43 +5312,43 @@ server cluster ElectricalMeasurement = 2820 { } /** The Test Cluster is meant to validate the generated code */ -server cluster UnitTesting = 4294048773 { - enum SimpleEnum : ENUM8 { +internal server cluster UnitTesting = 4294048773 { + enum SimpleEnum : enum8 { kUnspecified = 0; kValueA = 1; kValueB = 2; kValueC = 3; } - bitmap Bitmap16MaskMap : BITMAP16 { + bitmap Bitmap16MaskMap : bitmap16 { kMaskVal1 = 0x1; kMaskVal2 = 0x2; kMaskVal3 = 0x4; kMaskVal4 = 0x4000; } - bitmap Bitmap32MaskMap : BITMAP32 { + bitmap Bitmap32MaskMap : bitmap32 { kMaskVal1 = 0x1; kMaskVal2 = 0x2; kMaskVal3 = 0x4; kMaskVal4 = 0x40000000; } - bitmap Bitmap64MaskMap : BITMAP64 { + bitmap Bitmap64MaskMap : bitmap64 { kMaskVal1 = 0x1; kMaskVal2 = 0x2; kMaskVal3 = 0x4; kMaskVal4 = 0x4000000000000000; } - bitmap Bitmap8MaskMap : BITMAP8 { + bitmap Bitmap8MaskMap : bitmap8 { kMaskVal1 = 0x1; kMaskVal2 = 0x2; kMaskVal3 = 0x4; kMaskVal4 = 0x40; } - bitmap SimpleBitmap : BITMAP8 { + bitmap SimpleBitmap : bitmap8 { kValueA = 0x1; kValueB = 0x2; kValueC = 0x4; @@ -5632,8 +5634,8 @@ server cluster UnitTesting = 4294048773 { } /** The Fault Injection Cluster provide a means for a test harness to configure faults(for example triggering a fault in the system). */ -server cluster FaultInjection = 4294048774 { - enum FaultType : ENUM8 { +internal server cluster FaultInjection = 4294048774 { + enum FaultType : enum8 { kUnspecified = 0; kSystemFault = 1; kInetFault = 2; @@ -6236,7 +6238,7 @@ endpoint 1 { callback attribute acceptedCommandList; callback attribute eventList; callback attribute attributeList; - ram attribute featureMap default = 3; + ram attribute featureMap default = 7; ram attribute clusterRevision default = 5; handle command AddScene; @@ -7379,7 +7381,7 @@ endpoint 2 { callback attribute acceptedCommandList; callback attribute eventList; callback attribute attributeList; - ram attribute featureMap default = 3; + ram attribute featureMap default = 7; ram attribute clusterRevision default = 5; handle command AddScene; diff --git a/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap b/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap index b05a00644b10fc..a1f092db8b44c5 100644 --- a/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap +++ b/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap @@ -6998,7 +6998,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "7", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -21300,7 +21300,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "7", "reportable": 1, "minInterval": 1, "maxInterval": 65534, diff --git a/examples/all-clusters-app/nrfconnect/main/include/AppTask.h b/examples/all-clusters-app/nrfconnect/main/include/AppTask.h index 2bd1956dbcf64e..4db18dba683c0e 100644 --- a/examples/all-clusters-app/nrfconnect/main/include/AppTask.h +++ b/examples/all-clusters-app/nrfconnect/main/include/AppTask.h @@ -34,13 +34,10 @@ struct k_timer; struct Identify; -class AppFabricTableDelegate; class AppTask { public: - friend class AppFabricTableDelegate; - static AppTask & Instance(void) { static AppTask sAppTask; diff --git a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter index 73ac50358c13b4..d8edc24a8e391d 100644 --- a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter +++ b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -49,11 +49,11 @@ server cluster Identify = 3 { /** Attributes and commands for group configuration and manipulation. */ server cluster Groups = 4 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kGroupNames = 0x1; } - bitmap NameSupportBitmap : BITMAP8 { + bitmap NameSupportBitmap : bitmap8 { kGroupNames = 0x80; } @@ -117,15 +117,15 @@ server cluster Groups = 4 { } /** Attributes and commands for scene configuration and manipulation. */ -server cluster Scenes = 5 { - bitmap Feature : BITMAP32 { +provisional server cluster Scenes = 5 { + bitmap Feature : bitmap32 { kSceneNames = 0x1; kExplicit = 0x2; kTableSize = 0x4; kFabricScenes = 0x8; } - bitmap ScenesCopyMode : BITMAP8 { + bitmap ScenesCopyMode : bitmap8 { kCopyAllScenes = 0x1; } @@ -241,33 +241,33 @@ server cluster Scenes = 5 { /** Attributes and commands for switching devices between 'On' and 'Off' states. */ server cluster OnOff = 6 { - enum DelayedAllOffEffectVariantEnum : ENUM8 { + enum DelayedAllOffEffectVariantEnum : enum8 { kDelayedOffFastFade = 0; kNoFade = 1; kDelayedOffSlowFade = 2; } - enum DyingLightEffectVariantEnum : ENUM8 { + enum DyingLightEffectVariantEnum : enum8 { kDyingLightFadeOff = 0; } - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kDelayedAllOff = 0; kDyingLight = 1; } - enum StartUpOnOffEnum : ENUM8 { + enum StartUpOnOffEnum : enum8 { kOff = 0; kOn = 1; kToggle = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kLighting = 0x1; kDeadFrontBehavior = 0x2; } - bitmap OnOffControlBitmap : BITMAP8 { + bitmap OnOffControlBitmap : bitmap8 { kAcceptOnlyWhenOn = 0x1; } @@ -304,23 +304,23 @@ server cluster OnOff = 6 { /** Attributes and commands for controlling devices that can be set to a level between fully 'On' and fully 'Off.' */ server cluster LevelControl = 8 { - enum MoveMode : ENUM8 { + enum MoveMode : enum8 { kUp = 0; kDown = 1; } - enum StepMode : ENUM8 { + enum StepMode : enum8 { kUp = 0; kDown = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kOnOff = 0x1; kLighting = 0x2; kFrequency = 0x4; } - bitmap LevelControlOptions : BITMAP8 { + bitmap LevelControlOptions : bitmap8 { kExecuteIfOff = 0x1; kCoupleColorTempToLevel = 0x2; } @@ -403,7 +403,7 @@ server cluster LevelControl = 8 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -455,13 +455,13 @@ server cluster Binding = 30 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -469,7 +469,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -525,19 +525,19 @@ server cluster AccessControl = 31 { /** This cluster provides a standardized way for a Node (typically a Bridge, but could be any Node) to expose action information. */ server cluster Actions = 37 { - enum ActionErrorEnum : ENUM8 { + enum ActionErrorEnum : enum8 { kUnknown = 0; kInterrupted = 1; } - enum ActionStateEnum : ENUM8 { + enum ActionStateEnum : enum8 { kInactive = 0; kActive = 1; kPaused = 2; kDisabled = 3; } - enum ActionTypeEnum : ENUM8 { + enum ActionTypeEnum : enum8 { kOther = 0; kScene = 1; kSequence = 2; @@ -547,13 +547,13 @@ server cluster Actions = 37 { kAlarm = 6; } - enum EndpointListTypeEnum : ENUM8 { + enum EndpointListTypeEnum : enum8 { kOther = 0; kRoom = 1; kZone = 2; } - bitmap CommandBits : BITMAP16 { + bitmap CommandBits : bitmap16 { kInstantAction = 0x1; kInstantActionWithTransition = 0x2; kStartAction = 0x4; @@ -611,7 +611,7 @@ server cluster Actions = 37 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -635,7 +635,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -691,20 +691,20 @@ server cluster BasicInformation = 40 { /** Provides an interface for providing OTA software updates */ client cluster OtaSoftwareUpdateProvider = 41 { - enum ApplyUpdateActionEnum : ENUM8 { + enum ApplyUpdateActionEnum : enum8 { kProceed = 0; kAwaitNextAction = 1; kDiscontinue = 2; } - enum DownloadProtocolEnum : ENUM8 { + enum DownloadProtocolEnum : enum8 { kBDXSynchronous = 0; kBDXAsynchronous = 1; kHTTPS = 2; kVendorSpecific = 3; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kUpdateAvailable = 0; kBusy = 1; kNotAvailable = 2; @@ -765,13 +765,13 @@ client cluster OtaSoftwareUpdateProvider = 41 { /** Provides an interface for downloading and applying OTA software updates */ server cluster OtaSoftwareUpdateRequestor = 42 { - enum AnnouncementReasonEnum : ENUM8 { + enum AnnouncementReasonEnum : enum8 { kSimpleAnnouncement = 0; kUpdateAvailable = 1; kUrgentUpdateAvailable = 2; } - enum ChangeReasonEnum : ENUM8 { + enum ChangeReasonEnum : enum8 { kUnknown = 0; kSuccess = 1; kFailure = 2; @@ -779,7 +779,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { kDelayByProvider = 4; } - enum UpdateStateEnum : ENUM8 { + enum UpdateStateEnum : enum8 { kUnknown = 0; kIdle = 1; kQuerying = 2; @@ -858,7 +858,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -873,12 +873,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -896,13 +896,13 @@ server cluster TimeFormatLocalization = 44 { user. As such, Nodes that visually or audibly convey measurable values to the user need a mechanism by which they can be configured to use a user’s preferred unit. */ server cluster UnitLocalization = 45 { - enum TempUnitEnum : ENUM8 { + enum TempUnitEnum : enum8 { kFahrenheit = 0; kCelsius = 1; kKelvin = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTemperatureUnit = 0x1; } @@ -916,7 +916,7 @@ server cluster UnitLocalization = 45 { /** This cluster is used to describe the configuration and capabilities of a physical power source that provides power to the Node. */ server cluster PowerSource = 47 { - enum BatApprovedChemistryEnum : ENUM16 { + enum BatApprovedChemistryEnum : enum16 { kUnspecified = 0; kAlkaline = 1; kLithiumCarbonFluoride = 2; @@ -952,7 +952,7 @@ server cluster PowerSource = 47 { kZincCerium = 32; } - enum BatChargeFaultEnum : ENUM8 { + enum BatChargeFaultEnum : enum8 { kUnspecified = 0; kAmbientTooHot = 1; kAmbientTooCold = 2; @@ -966,20 +966,20 @@ server cluster PowerSource = 47 { kSafetyTimeout = 10; } - enum BatChargeLevelEnum : ENUM8 { + enum BatChargeLevelEnum : enum8 { kOK = 0; kWarning = 1; kCritical = 2; } - enum BatChargeStateEnum : ENUM8 { + enum BatChargeStateEnum : enum8 { kUnknown = 0; kIsCharging = 1; kIsAtFullCharge = 2; kIsNotCharging = 3; } - enum BatCommonDesignationEnum : ENUM16 { + enum BatCommonDesignationEnum : enum16 { kUnspecified = 0; kAAA = 1; kAA = 2; @@ -1063,38 +1063,38 @@ server cluster PowerSource = 47 { k32600 = 80; } - enum BatFaultEnum : ENUM8 { + enum BatFaultEnum : enum8 { kUnspecified = 0; kOverTemp = 1; kUnderTemp = 2; } - enum BatReplaceabilityEnum : ENUM8 { + enum BatReplaceabilityEnum : enum8 { kUnspecified = 0; kNotReplaceable = 1; kUserReplaceable = 2; kFactoryReplaceable = 3; } - enum PowerSourceStatusEnum : ENUM8 { + enum PowerSourceStatusEnum : enum8 { kUnspecified = 0; kActive = 1; kStandby = 2; kUnavailable = 3; } - enum WiredCurrentTypeEnum : ENUM8 { + enum WiredCurrentTypeEnum : enum8 { kAC = 0; kDC = 1; } - enum WiredFaultEnum : ENUM8 { + enum WiredFaultEnum : enum8 { kUnspecified = 0; kOverVoltage = 1; kUnderVoltage = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWired = 0x1; kBattery = 0x2; kRechargeable = 0x4; @@ -1145,7 +1145,7 @@ server cluster PowerSource = 47 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -1153,7 +1153,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -1209,7 +1209,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -1225,7 +1225,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -1234,13 +1234,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -1349,13 +1349,13 @@ server cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -1363,7 +1363,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -1386,7 +1386,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -1396,7 +1396,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -1410,7 +1410,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -1418,14 +1418,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -1485,7 +1485,7 @@ server cluster GeneralDiagnostics = 51 { /** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster SoftwareDiagnostics = 52 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWaterMarks = 0x1; } @@ -1513,19 +1513,19 @@ server cluster SoftwareDiagnostics = 52 { /** The Thread Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems */ server cluster ThreadNetworkDiagnostics = 53 { - enum ConnectionStatusEnum : ENUM8 { + enum ConnectionStatusEnum : enum8 { kConnected = 0; kNotConnected = 1; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kLinkDown = 1; kHardwareFailure = 2; kNetworkJammed = 3; } - enum RoutingRoleEnum : ENUM8 { + enum RoutingRoleEnum : enum8 { kUnspecified = 0; kUnassigned = 1; kSleepyEndDevice = 2; @@ -1535,7 +1535,7 @@ server cluster ThreadNetworkDiagnostics = 53 { kLeader = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; kMLECounts = 0x4; @@ -1628,19 +1628,19 @@ server cluster ThreadNetworkDiagnostics = 53 { /** The Wi-Fi Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster WiFiNetworkDiagnostics = 54 { - enum AssociationFailureCauseEnum : ENUM8 { + enum AssociationFailureCauseEnum : enum8 { kUnknown = 0; kAssociationFailed = 1; kAuthenticationFailed = 2; kSsidNotFound = 3; } - enum ConnectionStatusEnum : ENUM8 { + enum ConnectionStatusEnum : enum8 { kConnected = 0; kNotConnected = 1; } - enum SecurityTypeEnum : ENUM8 { + enum SecurityTypeEnum : enum8 { kUnspecified = 0; kNone = 1; kWEP = 2; @@ -1649,7 +1649,7 @@ server cluster WiFiNetworkDiagnostics = 54 { kWPA3 = 5; } - enum WiFiVersionEnum : ENUM8 { + enum WiFiVersionEnum : enum8 { kA = 0; kB = 1; kG = 2; @@ -1659,7 +1659,7 @@ server cluster WiFiNetworkDiagnostics = 54 { kAh = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; } @@ -1692,7 +1692,7 @@ server cluster WiFiNetworkDiagnostics = 54 { /** The Ethernet Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster EthernetNetworkDiagnostics = 55 { - enum PHYRateEnum : ENUM8 { + enum PHYRateEnum : enum8 { kRate10M = 0; kRate100M = 1; kRate1G = 2; @@ -1705,7 +1705,7 @@ server cluster EthernetNetworkDiagnostics = 55 { kRate400G = 9; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; } @@ -1733,7 +1733,7 @@ server cluster EthernetNetworkDiagnostics = 55 { Two types of switch devices are supported: latching switch (e.g. rocker switch) and momentary switch (e.g. push button), distinguished with their feature flags. Interactions with the switch device are exposed as attributes (for the latching switch) and as events (for both types of switches). An interested party MAY subscribe to these attributes/events and thus be informed of the interactions, and can perform actions based on this, for example by sending commands to perform an action such as controlling a light or a window shade. */ server cluster Switch = 59 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kLatchingSwitch = 0x1; kMomentarySwitch = 0x2; kMomentarySwitchRelease = 0x4; @@ -1783,13 +1783,13 @@ server cluster Switch = 59 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -1819,12 +1819,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -1935,12 +1935,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -2055,7 +2055,7 @@ server cluster BooleanState = 69 { /** Attributes and commands for selecting a mode from a list of supported options. */ server cluster ModeSelect = 80 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kOnOff = 0x1; } @@ -2090,7 +2090,7 @@ server cluster ModeSelect = 80 { /** Attributes and commands for configuring the temperature control, and reporting temperature. */ server cluster TemperatureControl = 86 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTemperatureNumber = 0x1; kTemperatureLevel = 0x2; kTemperatureStep = 0x4; @@ -2115,7 +2115,7 @@ server cluster TemperatureControl = 86 { /** An interface to a generic way to secure a door */ server cluster DoorLock = 257 { - enum AlarmCodeEnum : ENUM8 { + enum AlarmCodeEnum : enum8 { kLockJammed = 0; kLockFactoryReset = 1; kLockRadioPowerCycled = 3; @@ -2126,13 +2126,13 @@ server cluster DoorLock = 257 { kForcedUser = 8; } - enum CredentialRuleEnum : ENUM8 { + enum CredentialRuleEnum : enum8 { kSingle = 0; kDual = 1; kTri = 2; } - enum CredentialTypeEnum : ENUM8 { + enum CredentialTypeEnum : enum8 { kProgrammingPIN = 0; kPIN = 1; kRFID = 2; @@ -2141,20 +2141,20 @@ server cluster DoorLock = 257 { kFace = 5; } - enum DataOperationTypeEnum : ENUM8 { + enum DataOperationTypeEnum : enum8 { kAdd = 0; kClear = 1; kModify = 2; } - enum DlLockState : ENUM8 { + enum DlLockState : enum8 { kNotFullyLocked = 0; kLocked = 1; kUnlocked = 2; kUnlatched = 3; } - enum DlLockType : ENUM8 { + enum DlLockType : enum8 { kDeadBolt = 0; kMagnetic = 1; kOther = 2; @@ -2169,7 +2169,7 @@ server cluster DoorLock = 257 { kEurocylinder = 11; } - enum DlStatus : ENUM8 { + enum DlStatus : enum8 { kSuccess = 0; kFailure = 1; kDuplicate = 2; @@ -2179,7 +2179,7 @@ server cluster DoorLock = 257 { kNotFound = 139; } - enum DoorLockOperationEventCode : ENUM8 { + enum DoorLockOperationEventCode : enum8 { kUnknownOrMfgSpecific = 0; kLock = 1; kUnlock = 2; @@ -2197,7 +2197,7 @@ server cluster DoorLock = 257 { kManualUnlock = 14; } - enum DoorLockProgrammingEventCode : ENUM8 { + enum DoorLockProgrammingEventCode : enum8 { kUnknownOrMfgSpecific = 0; kMasterCodeChanged = 1; kPinAdded = 2; @@ -2207,21 +2207,21 @@ server cluster DoorLock = 257 { kIdDeleted = 6; } - enum DoorLockSetPinOrIdStatus : ENUM8 { + enum DoorLockSetPinOrIdStatus : enum8 { kSuccess = 0; kGeneralFailure = 1; kMemoryFull = 2; kDuplicateCodeError = 3; } - enum DoorLockUserStatus : ENUM8 { + enum DoorLockUserStatus : enum8 { kAvailable = 0; kOccupiedEnabled = 1; kOccupiedDisabled = 3; kNotSupported = 255; } - enum DoorLockUserType : ENUM8 { + enum DoorLockUserType : enum8 { kUnrestricted = 0; kYearDayScheduleUser = 1; kWeekDayScheduleUser = 2; @@ -2230,7 +2230,7 @@ server cluster DoorLock = 257 { kNotSupported = 255; } - enum DoorStateEnum : ENUM8 { + enum DoorStateEnum : enum8 { kDoorOpen = 0; kDoorClosed = 1; kDoorJammed = 2; @@ -2239,7 +2239,7 @@ server cluster DoorLock = 257 { kDoorAjar = 5; } - enum LockDataTypeEnum : ENUM8 { + enum LockDataTypeEnum : enum8 { kUnspecified = 0; kProgrammingCode = 1; kUserIndex = 2; @@ -2253,7 +2253,7 @@ server cluster DoorLock = 257 { kFace = 10; } - enum LockOperationTypeEnum : ENUM8 { + enum LockOperationTypeEnum : enum8 { kLock = 0; kUnlock = 1; kNonAccessUserEvent = 2; @@ -2261,7 +2261,7 @@ server cluster DoorLock = 257 { kUnlatch = 4; } - enum OperatingModeEnum : ENUM8 { + enum OperatingModeEnum : enum8 { kNormal = 0; kVacation = 1; kPrivacy = 2; @@ -2269,7 +2269,7 @@ server cluster DoorLock = 257 { kPassage = 4; } - enum OperationErrorEnum : ENUM8 { + enum OperationErrorEnum : enum8 { kUnspecified = 0; kInvalidCredential = 1; kDisabledUserDenied = 2; @@ -2277,7 +2277,7 @@ server cluster DoorLock = 257 { kInsufficientBattery = 4; } - enum OperationSourceEnum : ENUM8 { + enum OperationSourceEnum : enum8 { kUnspecified = 0; kManual = 1; kProprietaryRemote = 2; @@ -2290,13 +2290,13 @@ server cluster DoorLock = 257 { kBiometric = 9; } - enum UserStatusEnum : ENUM8 { + enum UserStatusEnum : enum8 { kAvailable = 0; kOccupiedEnabled = 1; kOccupiedDisabled = 3; } - enum UserTypeEnum : ENUM8 { + enum UserTypeEnum : enum8 { kUnrestrictedUser = 0; kYearDayScheduleUser = 1; kWeekDayScheduleUser = 2; @@ -2309,7 +2309,7 @@ server cluster DoorLock = 257 { kRemoteOnlyUser = 9; } - bitmap DaysMaskMap : BITMAP8 { + bitmap DaysMaskMap : bitmap8 { kSunday = 0x1; kMonday = 0x2; kTuesday = 0x4; @@ -2319,19 +2319,19 @@ server cluster DoorLock = 257 { kSaturday = 0x40; } - bitmap DlCredentialRuleMask : BITMAP8 { + bitmap DlCredentialRuleMask : bitmap8 { kSingle = 0x1; kDual = 0x2; kTri = 0x4; } - bitmap DlCredentialRulesSupport : BITMAP8 { + bitmap DlCredentialRulesSupport : bitmap8 { kSingle = 0x1; kDual = 0x2; kTri = 0x4; } - bitmap DlDefaultConfigurationRegister : BITMAP16 { + bitmap DlDefaultConfigurationRegister : bitmap16 { kEnableLocalProgrammingEnabled = 0x1; kKeypadInterfaceDefaultAccessEnabled = 0x2; kRemoteInterfaceDefaultAccessIsEnabled = 0x4; @@ -2340,7 +2340,7 @@ server cluster DoorLock = 257 { kLEDSettingsSet = 0x80; } - bitmap DlKeypadOperationEventMask : BITMAP16 { + bitmap DlKeypadOperationEventMask : bitmap16 { kUnknown = 0x1; kLock = 0x2; kUnlock = 0x4; @@ -2351,7 +2351,7 @@ server cluster DoorLock = 257 { kNonAccessUserOpEvent = 0x80; } - bitmap DlKeypadProgrammingEventMask : BITMAP16 { + bitmap DlKeypadProgrammingEventMask : bitmap16 { kUnknown = 0x1; kProgrammingPINChanged = 0x2; kPINAdded = 0x4; @@ -2359,14 +2359,14 @@ server cluster DoorLock = 257 { kPINChanged = 0x10; } - bitmap DlLocalProgrammingFeatures : BITMAP8 { + bitmap DlLocalProgrammingFeatures : bitmap8 { kAddUsersCredentialsSchedulesLocally = 0x1; kModifyUsersCredentialsSchedulesLocally = 0x2; kClearUsersCredentialsSchedulesLocally = 0x4; kAdjustLockSettingsLocally = 0x8; } - bitmap DlManualOperationEventMask : BITMAP16 { + bitmap DlManualOperationEventMask : bitmap16 { kUnknown = 0x1; kThumbturnLock = 0x2; kThumbturnUnlock = 0x4; @@ -2380,7 +2380,7 @@ server cluster DoorLock = 257 { kManualUnlock = 0x400; } - bitmap DlRFIDOperationEventMask : BITMAP16 { + bitmap DlRFIDOperationEventMask : bitmap16 { kUnknown = 0x1; kLock = 0x2; kUnlock = 0x4; @@ -2390,13 +2390,13 @@ server cluster DoorLock = 257 { kUnlockInvalidSchedule = 0x40; } - bitmap DlRFIDProgrammingEventMask : BITMAP16 { + bitmap DlRFIDProgrammingEventMask : bitmap16 { kUnknown = 0x1; kRFIDCodeAdded = 0x20; kRFIDCodeCleared = 0x40; } - bitmap DlRemoteOperationEventMask : BITMAP16 { + bitmap DlRemoteOperationEventMask : bitmap16 { kUnknown = 0x1; kLock = 0x2; kUnlock = 0x4; @@ -2406,7 +2406,7 @@ server cluster DoorLock = 257 { kUnlockInvalidSchedule = 0x40; } - bitmap DlRemoteProgrammingEventMask : BITMAP16 { + bitmap DlRemoteProgrammingEventMask : bitmap16 { kUnknown = 0x1; kProgrammingPINChanged = 0x2; kPINAdded = 0x4; @@ -2416,7 +2416,7 @@ server cluster DoorLock = 257 { kRFIDCodeCleared = 0x40; } - bitmap DlSupportedOperatingModes : BITMAP16 { + bitmap DlSupportedOperatingModes : bitmap16 { kNormal = 0x1; kVacation = 0x2; kPrivacy = 0x4; @@ -2424,7 +2424,7 @@ server cluster DoorLock = 257 { kPassage = 0x10; } - bitmap DoorLockDayOfWeek : BITMAP8 { + bitmap DoorLockDayOfWeek : bitmap8 { kSunday = 0x1; kMonday = 0x2; kTuesday = 0x4; @@ -2434,7 +2434,7 @@ server cluster DoorLock = 257 { kSaturday = 0x40; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPINCredential = 0x1; kRFIDCredential = 0x2; kFingerCredentials = 0x4; @@ -2519,7 +2519,7 @@ server cluster DoorLock = 257 { /** Provides an interface for controlling and adjusting automatic window coverings. */ server cluster WindowCovering = 258 { - enum EndProductType : ENUM8 { + enum EndProductType : enum8 { kRollerShade = 0; kRomanShade = 1; kBalloonShade = 2; @@ -2547,7 +2547,7 @@ server cluster WindowCovering = 258 { kUnknown = 255; } - enum Type : ENUM8 { + enum Type : enum8 { kRollerShade = 0; kRollerShade2Motor = 1; kRollerShadeExterior = 2; @@ -2561,7 +2561,7 @@ server cluster WindowCovering = 258 { kUnknown = 255; } - bitmap ConfigStatus : BITMAP8 { + bitmap ConfigStatus : bitmap8 { kOperational = 0x1; kOnlineReserved = 0x2; kLiftMovementReversed = 0x4; @@ -2571,7 +2571,7 @@ server cluster WindowCovering = 258 { kTiltEncoderControlled = 0x40; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kLift = 0x1; kTilt = 0x2; kPositionAwareLift = 0x4; @@ -2579,20 +2579,20 @@ server cluster WindowCovering = 258 { kPositionAwareTilt = 0x10; } - bitmap Mode : BITMAP8 { + bitmap Mode : bitmap8 { kMotorDirectionReversed = 0x1; kCalibrationMode = 0x2; kMaintenanceMode = 0x4; kLedFeedback = 0x8; } - bitmap OperationalStatus : BITMAP8 { + bitmap OperationalStatus : bitmap8 { kGlobal = 0x3; kLift = 0xC; kTilt = 0x30; } - bitmap SafetyStatus : BITMAP16 { + bitmap SafetyStatus : bitmap16 { kRemoteLockout = 0x1; kTamperDetection = 0x2; kFailedCommunication = 0x4; @@ -2626,7 +2626,7 @@ server cluster WindowCovering = 258 { /** An interface for configuring and controlling pumps. */ server cluster PumpConfigurationAndControl = 512 { - enum ControlModeEnum : ENUM8 { + enum ControlModeEnum : enum8 { kConstantSpeed = 0; kConstantPressure = 1; kProportionalPressure = 2; @@ -2635,14 +2635,14 @@ server cluster PumpConfigurationAndControl = 512 { kAutomatic = 7; } - enum OperationModeEnum : ENUM8 { + enum OperationModeEnum : enum8 { kNormal = 0; kMinimum = 1; kMaximum = 2; kLocal = 3; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kConstantPressure = 0x1; kCompensatedPressure = 0x2; kConstantFlow = 0x4; @@ -2652,7 +2652,7 @@ server cluster PumpConfigurationAndControl = 512 { kLocalOperation = 0x40; } - bitmap PumpStatusBitmap : BITMAP16 { + bitmap PumpStatusBitmap : bitmap16 { kDeviceFault = 0x1; kSupplyfault = 0x2; kSpeedLow = 0x4; @@ -2734,13 +2734,13 @@ server cluster PumpConfigurationAndControl = 512 { /** An interface for configuring and controlling the functionality of a thermostat. */ server cluster Thermostat = 513 { - enum SetpointAdjustMode : ENUM8 { + enum SetpointAdjustMode : enum8 { kHeat = 0; kCool = 1; kBoth = 2; } - enum ThermostatControlSequence : ENUM8 { + enum ThermostatControlSequence : enum8 { kCoolingOnly = 0; kCoolingWithReheat = 1; kHeatingOnly = 2; @@ -2749,13 +2749,13 @@ server cluster Thermostat = 513 { kCoolingAndHeatingWithReheat = 5; } - enum ThermostatRunningMode : ENUM8 { + enum ThermostatRunningMode : enum8 { kOff = 0; kCool = 3; kHeat = 4; } - enum ThermostatSystemMode : ENUM8 { + enum ThermostatSystemMode : enum8 { kOff = 0; kAuto = 1; kCool = 3; @@ -2767,7 +2767,7 @@ server cluster Thermostat = 513 { kSleep = 9; } - bitmap DayOfWeek : BITMAP8 { + bitmap DayOfWeek : bitmap8 { kSunday = 0x1; kMonday = 0x2; kTuesday = 0x4; @@ -2778,7 +2778,7 @@ server cluster Thermostat = 513 { kAway = 0x80; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kHeating = 0x1; kCooling = 0x2; kOccupancy = 0x4; @@ -2788,7 +2788,7 @@ server cluster Thermostat = 513 { kLocalTemperatureNotExposed = 0x40; } - bitmap ModeForSequence : BITMAP8 { + bitmap ModeForSequence : bitmap8 { kHeatSetpointPresent = 0x1; kCoolSetpointPresent = 0x2; } @@ -2819,13 +2819,13 @@ server cluster Thermostat = 513 { } /** An interface for controlling a fan in a heating/cooling system. */ -server cluster FanControl = 514 { - enum AirflowDirectionEnum : ENUM8 { +provisional server cluster FanControl = 514 { + enum AirflowDirectionEnum : enum8 { kForward = 0; kReverse = 1; } - enum FanModeEnum : ENUM8 { + enum FanModeEnum : enum8 { kOff = 0; kLow = 1; kMedium = 2; @@ -2835,7 +2835,7 @@ server cluster FanControl = 514 { kSmart = 6; } - enum FanModeSequenceEnum : ENUM8 { + enum FanModeSequenceEnum : enum8 { kOffLowMedHigh = 0; kOffLowHigh = 1; kOffLowMedHighAuto = 2; @@ -2844,12 +2844,12 @@ server cluster FanControl = 514 { kOffOn = 5; } - enum StepDirectionEnum : ENUM8 { + enum StepDirectionEnum : enum8 { kIncrease = 0; kDecrease = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kMultiSpeed = 0x1; kAuto = 0x2; kRocking = 0x4; @@ -2858,13 +2858,13 @@ server cluster FanControl = 514 { kAirflowDirection = 0x20; } - bitmap RockBitmap : BITMAP8 { + bitmap RockBitmap : bitmap8 { kRockLeftRight = 0x1; kRockUpDown = 0x2; kRockRound = 0x4; } - bitmap WindBitmap : BITMAP8 { + bitmap WindBitmap : bitmap8 { kSleepWind = 0x1; kNaturalWind = 0x2; } @@ -2895,53 +2895,53 @@ server cluster ThermostatUserInterfaceConfiguration = 516 { /** Attributes and commands for controlling the color properties of a color-capable light. */ server cluster ColorControl = 768 { - enum ColorLoopAction : ENUM8 { + enum ColorLoopAction : enum8 { kDeactivate = 0; kActivateFromColorLoopStartEnhancedHue = 1; kActivateFromEnhancedCurrentHue = 2; } - enum ColorLoopDirection : ENUM8 { + enum ColorLoopDirection : enum8 { kDecrementHue = 0; kIncrementHue = 1; } - enum ColorMode : ENUM8 { + enum ColorMode : enum8 { kCurrentHueAndCurrentSaturation = 0; kCurrentXAndCurrentY = 1; kColorTemperature = 2; } - enum HueDirection : ENUM8 { + enum HueDirection : enum8 { kShortestDistance = 0; kLongestDistance = 1; kUp = 2; kDown = 3; } - enum HueMoveMode : ENUM8 { + enum HueMoveMode : enum8 { kStop = 0; kUp = 1; kDown = 3; } - enum HueStepMode : ENUM8 { + enum HueStepMode : enum8 { kUp = 1; kDown = 3; } - enum SaturationMoveMode : ENUM8 { + enum SaturationMoveMode : enum8 { kStop = 0; kUp = 1; kDown = 3; } - enum SaturationStepMode : ENUM8 { + enum SaturationStepMode : enum8 { kUp = 1; kDown = 3; } - bitmap ColorCapabilities : BITMAP16 { + bitmap ColorCapabilities : bitmap16 { kHueSaturationSupported = 0x1; kEnhancedHueSupported = 0x2; kColorLoopSupported = 0x4; @@ -2949,14 +2949,14 @@ server cluster ColorControl = 768 { kColorTemperatureSupported = 0x10; } - bitmap ColorLoopUpdateFlags : BITMAP8 { + bitmap ColorLoopUpdateFlags : bitmap8 { kUpdateAction = 0x1; kUpdateDirection = 0x2; kUpdateTime = 0x4; kUpdateStartHue = 0x8; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kHueAndSaturation = 0x1; kEnhancedHue = 0x2; kColorLoop = 0x4; @@ -2978,13 +2978,13 @@ server cluster ColorControl = 768 { } /** Attributes and commands for configuring a lighting ballast. */ -server cluster BallastConfiguration = 769 { - bitmap BallastStatusBitmap : BITMAP8 { +provisional server cluster BallastConfiguration = 769 { + bitmap BallastStatusBitmap : bitmap8 { kBallastNonOperational = 0x1; kLampFailure = 0x2; } - bitmap LampAlarmModeBitmap : BITMAP8 { + bitmap LampAlarmModeBitmap : bitmap8 { kLampBurnHours = 0x1; } @@ -3003,7 +3003,7 @@ server cluster BallastConfiguration = 769 { /** Attributes and commands for configuring the measurement of illuminance, and reporting illuminance measurements. */ server cluster IlluminanceMeasurement = 1024 { - enum LightSensorTypeEnum : ENUM8 { + enum LightSensorTypeEnum : enum8 { kPhotodiode = 0; kCMOS = 1; } @@ -3034,7 +3034,7 @@ server cluster TemperatureMeasurement = 1026 { /** Attributes and commands for configuring the measurement of pressure, and reporting pressure measurements. */ server cluster PressureMeasurement = 1027 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kExtended = 0x1; } @@ -3077,18 +3077,18 @@ server cluster RelativeHumidityMeasurement = 1029 { /** Attributes and commands for configuring occupancy sensing, and reporting occupancy status. */ server cluster OccupancySensing = 1030 { - enum OccupancySensorTypeEnum : ENUM8 { + enum OccupancySensorTypeEnum : enum8 { kPIR = 0; kUltrasonic = 1; kPIRAndUltrasonic = 2; kPhysicalContact = 3; } - bitmap OccupancyBitmap : BITMAP8 { + bitmap OccupancyBitmap : bitmap8 { kOccupied = 0x1; } - bitmap OccupancySensorTypeBitmap : BITMAP8 { + bitmap OccupancySensorTypeBitmap : bitmap8 { kPIR = 0x1; kUltrasonic = 0x2; kPhysicalContact = 0x4; @@ -3117,17 +3117,17 @@ server cluster WakeOnLan = 1283 { /** This cluster provides an interface for controlling the current Channel on a device. */ server cluster Channel = 1284 { - enum ChannelStatusEnum : ENUM8 { + enum ChannelStatusEnum : enum8 { kSuccess = 0; kMultipleMatches = 1; kNoMatches = 2; } - enum LineupInfoTypeEnum : ENUM8 { + enum LineupInfoTypeEnum : enum8 { kMSO = 0; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kChannelList = 0x1; kLineupInfo = 0x2; } @@ -3169,7 +3169,7 @@ server cluster Channel = 1284 { /** This cluster provides an interface for UX navigation within a set of targets on a device or endpoint. */ server cluster TargetNavigator = 1285 { - enum TargetNavigatorStatusEnum : ENUM8 { + enum TargetNavigatorStatusEnum : enum8 { kSuccess = 0; kTargetNotFound = 1; kNotAllowed = 2; @@ -3203,7 +3203,7 @@ server cluster TargetNavigator = 1285 { /** This cluster provides an interface for controlling Media Playback (PLAY, PAUSE, etc) on a media device such as a TV or Speaker. */ server cluster MediaPlayback = 1286 { - enum MediaPlaybackStatusEnum : ENUM8 { + enum MediaPlaybackStatusEnum : enum8 { kSuccess = 0; kInvalidStateForCommand = 1; kNotAllowed = 2; @@ -3212,14 +3212,14 @@ server cluster MediaPlayback = 1286 { kSeekOutOfRange = 5; } - enum PlaybackStateEnum : ENUM8 { + enum PlaybackStateEnum : enum8 { kPlaying = 0; kPaused = 1; kNotPlaying = 2; kBuffering = 3; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kAdvancedSeek = 0x1; kVariableSpeed = 0x2; } @@ -3249,7 +3249,7 @@ server cluster MediaPlayback = 1286 { /** This cluster provides an interface for controlling the Input Selector on a media device such as a TV. */ server cluster MediaInput = 1287 { - enum InputTypeEnum : ENUM8 { + enum InputTypeEnum : enum8 { kInternal = 0; kAux = 1; kCoax = 2; @@ -3264,7 +3264,7 @@ server cluster MediaInput = 1287 { kOther = 11; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNameUpdates = 0x1; } @@ -3307,7 +3307,7 @@ server cluster LowPower = 1288 { /** This cluster provides an interface for controlling a device like a TV using action commands such as UP, DOWN, and SELECT. */ server cluster KeypadInput = 1289 { - enum CecKeyCode : ENUM8 { + enum CecKeyCode : enum8 { kSelect = 0; kUp = 1; kDown = 2; @@ -3396,13 +3396,13 @@ server cluster KeypadInput = 1289 { kData = 118; } - enum KeypadInputStatusEnum : ENUM8 { + enum KeypadInputStatusEnum : enum8 { kSuccess = 0; kUnsupportedKey = 1; kInvalidKeyInCurrentState = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNavigationKeyCodes = 0x1; kLocationKeys = 0x2; kNumberKeys = 0x4; @@ -3428,18 +3428,18 @@ server cluster KeypadInput = 1289 { /** This cluster provides an interface for launching content on a media player device such as a TV or Speaker. */ server cluster ContentLauncher = 1290 { - enum ContentLaunchStatusEnum : ENUM8 { + enum ContentLaunchStatusEnum : enum8 { kSuccess = 0; kUrlNotAvailable = 1; kAuthFailed = 2; } - enum MetricTypeEnum : ENUM8 { + enum MetricTypeEnum : enum8 { kPixels = 0; kPercentage = 1; } - enum ParameterEnum : ENUM8 { + enum ParameterEnum : enum8 { kActor = 0; kChannel = 1; kCharacter = 2; @@ -3456,12 +3456,12 @@ server cluster ContentLauncher = 1290 { kVideo = 13; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kContentSearch = 0x1; kURLPlayback = 0x2; } - bitmap SupportedStreamingProtocol : BITMAP32 { + bitmap SupportedStreamingProtocol : bitmap32 { kDASH = 0x1; kHLS = 0x2; } @@ -3512,7 +3512,7 @@ server cluster ContentLauncher = 1290 { /** This cluster provides an interface for controlling the Output on a media device such as a TV. */ server cluster AudioOutput = 1291 { - enum OutputTypeEnum : ENUM8 { + enum OutputTypeEnum : enum8 { kHDMI = 0; kBT = 1; kOptical = 2; @@ -3521,7 +3521,7 @@ server cluster AudioOutput = 1291 { kOther = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNameUpdates = 0x1; } @@ -3549,13 +3549,13 @@ server cluster AudioOutput = 1291 { /** This cluster provides an interface for launching content on a media player device such as a TV or Speaker. */ server cluster ApplicationLauncher = 1292 { - enum ApplicationLauncherStatusEnum : ENUM8 { + enum ApplicationLauncherStatusEnum : enum8 { kSuccess = 0; kAppNotAvailable = 1; kSystemBusy = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kApplicationPlatform = 0x1; } @@ -3601,7 +3601,7 @@ server cluster ApplicationLauncher = 1292 { /** This cluster provides information about an application running on a TV or media player device which is represented as an endpoint. */ server cluster ApplicationBasic = 1293 { - enum ApplicationStatusEnum : ENUM8 { + enum ApplicationStatusEnum : enum8 { kStopped = 0; kActiveVisibleFocus = 1; kActiveHidden = 2; @@ -3654,43 +3654,43 @@ server cluster AccountLogin = 1294 { } /** The Test Cluster is meant to validate the generated code */ -server cluster UnitTesting = 4294048773 { - enum SimpleEnum : ENUM8 { +internal server cluster UnitTesting = 4294048773 { + enum SimpleEnum : enum8 { kUnspecified = 0; kValueA = 1; kValueB = 2; kValueC = 3; } - bitmap Bitmap16MaskMap : BITMAP16 { + bitmap Bitmap16MaskMap : bitmap16 { kMaskVal1 = 0x1; kMaskVal2 = 0x2; kMaskVal3 = 0x4; kMaskVal4 = 0x4000; } - bitmap Bitmap32MaskMap : BITMAP32 { + bitmap Bitmap32MaskMap : bitmap32 { kMaskVal1 = 0x1; kMaskVal2 = 0x2; kMaskVal3 = 0x4; kMaskVal4 = 0x40000000; } - bitmap Bitmap64MaskMap : BITMAP64 { + bitmap Bitmap64MaskMap : bitmap64 { kMaskVal1 = 0x1; kMaskVal2 = 0x2; kMaskVal3 = 0x4; kMaskVal4 = 0x4000000000000000; } - bitmap Bitmap8MaskMap : BITMAP8 { + bitmap Bitmap8MaskMap : bitmap8 { kMaskVal1 = 0x1; kMaskVal2 = 0x2; kMaskVal3 = 0x4; kMaskVal4 = 0x40; } - bitmap SimpleBitmap : BITMAP8 { + bitmap SimpleBitmap : bitmap8 { kValueA = 0x1; kValueB = 0x2; kValueC = 0x4; @@ -4377,7 +4377,7 @@ endpoint 1 { callback attribute acceptedCommandList; callback attribute eventList; callback attribute attributeList; - ram attribute featureMap default = 3; + ram attribute featureMap default = 7; ram attribute clusterRevision default = 5; handle command AddScene; @@ -4940,7 +4940,7 @@ endpoint 2 { callback attribute acceptedCommandList; callback attribute eventList; callback attribute attributeList; - ram attribute featureMap default = 3; + ram attribute featureMap default = 7; ram attribute clusterRevision default = 5; handle command AddScene; diff --git a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.zap b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.zap index a900aea4ea362f..5bcfc9393e1dce 100644 --- a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.zap +++ b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.zap @@ -17,6 +17,12 @@ } ], "package": [ + { + "pathRelativity": "relativeToZap", + "path": "../../../src/app/zap-templates/app-templates.json", + "type": "gen-templates-json", + "version": "chip-v1" + }, { "pathRelativity": "relativeToZap", "path": "../../../src/app/zap-templates/zcl/zcl.json", @@ -24,12 +30,6 @@ "category": "matter", "version": 1, "description": "Matter SDK ZCL data" - }, - { - "pathRelativity": "relativeToZap", - "path": "../../../src/app/zap-templates/app-templates.json", - "type": "gen-templates-json", - "version": "chip-v1" } ], "endpointTypes": [ @@ -4802,7 +4802,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "7", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -11082,7 +11082,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "7", "reportable": 1, "minInterval": 1, "maxInterval": 65534, diff --git a/examples/all-clusters-minimal-app/nrfconnect/main/include/AppTask.h b/examples/all-clusters-minimal-app/nrfconnect/main/include/AppTask.h index 7db9b0b4c7b3ad..0d5a9f1f1dc84f 100644 --- a/examples/all-clusters-minimal-app/nrfconnect/main/include/AppTask.h +++ b/examples/all-clusters-minimal-app/nrfconnect/main/include/AppTask.h @@ -34,13 +34,10 @@ struct k_timer; struct Identify; -class AppFabricTableDelegate; class AppTask { public: - friend class AppFabricTableDelegate; - static AppTask & Instance(void) { static AppTask sAppTask; diff --git a/examples/bridge-app/bridge-common/bridge-app.matter b/examples/bridge-app/bridge-common/bridge-app.matter index b7fa59ec98c131..ab58f23b7de890 100644 --- a/examples/bridge-app/bridge-common/bridge-app.matter +++ b/examples/bridge-app/bridge-common/bridge-app.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -49,33 +49,33 @@ server cluster Identify = 3 { /** Attributes and commands for switching devices between 'On' and 'Off' states. */ server cluster OnOff = 6 { - enum DelayedAllOffEffectVariantEnum : ENUM8 { + enum DelayedAllOffEffectVariantEnum : enum8 { kDelayedOffFastFade = 0; kNoFade = 1; kDelayedOffSlowFade = 2; } - enum DyingLightEffectVariantEnum : ENUM8 { + enum DyingLightEffectVariantEnum : enum8 { kDyingLightFadeOff = 0; } - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kDelayedAllOff = 0; kDyingLight = 1; } - enum StartUpOnOffEnum : ENUM8 { + enum StartUpOnOffEnum : enum8 { kOff = 0; kOn = 1; kToggle = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kLighting = 0x1; kDeadFrontBehavior = 0x2; } - bitmap OnOffControlBitmap : BITMAP8 { + bitmap OnOffControlBitmap : bitmap8 { kAcceptOnlyWhenOn = 0x1; } @@ -94,23 +94,23 @@ server cluster OnOff = 6 { /** Attributes and commands for controlling devices that can be set to a level between fully 'On' and fully 'Off.' */ server cluster LevelControl = 8 { - enum MoveMode : ENUM8 { + enum MoveMode : enum8 { kUp = 0; kDown = 1; } - enum StepMode : ENUM8 { + enum StepMode : enum8 { kUp = 0; kDown = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kOnOff = 0x1; kLighting = 0x2; kFrequency = 0x4; } - bitmap LevelControlOptions : BITMAP8 { + bitmap LevelControlOptions : bitmap8 { kExecuteIfOff = 0x1; kCoupleColorTempToLevel = 0x2; } @@ -202,7 +202,7 @@ server cluster LevelControl = 8 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -254,13 +254,13 @@ client cluster Binding = 30 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ client cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -268,7 +268,7 @@ client cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -327,13 +327,13 @@ client cluster AccessControl = 31 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -341,7 +341,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -397,19 +397,19 @@ server cluster AccessControl = 31 { /** This cluster provides a standardized way for a Node (typically a Bridge, but could be any Node) to expose action information. */ server cluster Actions = 37 { - enum ActionErrorEnum : ENUM8 { + enum ActionErrorEnum : enum8 { kUnknown = 0; kInterrupted = 1; } - enum ActionStateEnum : ENUM8 { + enum ActionStateEnum : enum8 { kInactive = 0; kActive = 1; kPaused = 2; kDisabled = 3; } - enum ActionTypeEnum : ENUM8 { + enum ActionTypeEnum : enum8 { kOther = 0; kScene = 1; kSequence = 2; @@ -419,13 +419,13 @@ server cluster Actions = 37 { kAlarm = 6; } - enum EndpointListTypeEnum : ENUM8 { + enum EndpointListTypeEnum : enum8 { kOther = 0; kRoom = 1; kZone = 2; } - bitmap CommandBits : BITMAP16 { + bitmap CommandBits : bitmap16 { kInstantAction = 0x1; kInstantActionWithTransition = 0x2; kStartAction = 0x4; @@ -491,7 +491,7 @@ server cluster Actions = 37 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -515,7 +515,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -596,7 +596,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -611,12 +611,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -636,13 +636,13 @@ server cluster TimeFormatLocalization = 44 { user. As such, Nodes that visually or audibly convey measurable values to the user need a mechanism by which they can be configured to use a user’s preferred unit. */ server cluster UnitLocalization = 45 { - enum TempUnitEnum : ENUM8 { + enum TempUnitEnum : enum8 { kFahrenheit = 0; kCelsius = 1; kKelvin = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTemperatureUnit = 0x1; } @@ -657,7 +657,7 @@ server cluster UnitLocalization = 45 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -665,7 +665,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -721,7 +721,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -737,7 +737,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -746,13 +746,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -861,13 +861,13 @@ server cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -875,7 +875,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -898,7 +898,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -908,7 +908,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -922,7 +922,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -930,14 +930,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -1003,7 +1003,7 @@ server cluster GeneralDiagnostics = 51 { /** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster SoftwareDiagnostics = 52 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWaterMarks = 0x1; } @@ -1035,19 +1035,19 @@ server cluster SoftwareDiagnostics = 52 { /** The Thread Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems */ server cluster ThreadNetworkDiagnostics = 53 { - enum ConnectionStatusEnum : ENUM8 { + enum ConnectionStatusEnum : enum8 { kConnected = 0; kNotConnected = 1; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kLinkDown = 1; kHardwareFailure = 2; kNetworkJammed = 3; } - enum RoutingRoleEnum : ENUM8 { + enum RoutingRoleEnum : enum8 { kUnspecified = 0; kUnassigned = 1; kSleepyEndDevice = 2; @@ -1057,7 +1057,7 @@ server cluster ThreadNetworkDiagnostics = 53 { kLeader = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; kMLECounts = 0x4; @@ -1196,19 +1196,19 @@ server cluster ThreadNetworkDiagnostics = 53 { /** The Wi-Fi Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster WiFiNetworkDiagnostics = 54 { - enum AssociationFailureCauseEnum : ENUM8 { + enum AssociationFailureCauseEnum : enum8 { kUnknown = 0; kAssociationFailed = 1; kAuthenticationFailed = 2; kSsidNotFound = 3; } - enum ConnectionStatusEnum : ENUM8 { + enum ConnectionStatusEnum : enum8 { kConnected = 0; kNotConnected = 1; } - enum SecurityTypeEnum : ENUM8 { + enum SecurityTypeEnum : enum8 { kUnspecified = 0; kNone = 1; kWEP = 2; @@ -1217,7 +1217,7 @@ server cluster WiFiNetworkDiagnostics = 54 { kWPA3 = 5; } - enum WiFiVersionEnum : ENUM8 { + enum WiFiVersionEnum : enum8 { kA = 0; kB = 1; kG = 2; @@ -1227,7 +1227,7 @@ server cluster WiFiNetworkDiagnostics = 54 { kAh = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; } @@ -1268,7 +1268,7 @@ server cluster WiFiNetworkDiagnostics = 54 { /** The Ethernet Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster EthernetNetworkDiagnostics = 55 { - enum PHYRateEnum : ENUM8 { + enum PHYRateEnum : enum8 { kRate10M = 0; kRate100M = 1; kRate1G = 2; @@ -1281,7 +1281,7 @@ server cluster EthernetNetworkDiagnostics = 55 { kRate400G = 9; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; } @@ -1309,7 +1309,7 @@ server cluster EthernetNetworkDiagnostics = 55 { Two types of switch devices are supported: latching switch (e.g. rocker switch) and momentary switch (e.g. push button), distinguished with their feature flags. Interactions with the switch device are exposed as attributes (for the latching switch) and as events (for both types of switches). An interested party MAY subscribe to these attributes/events and thus be informed of the interactions, and can perform actions based on this, for example by sending commands to perform an action such as controlling a light or a window shade. */ server cluster Switch = 59 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kLatchingSwitch = 0x1; kMomentarySwitch = 0x2; kMomentarySwitchRelease = 0x4; @@ -1360,13 +1360,13 @@ server cluster Switch = 59 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -1401,12 +1401,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -1517,12 +1517,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } diff --git a/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter b/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter index 1b47f3788f1da6..4a1eaf789ea786 100644 --- a/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter +++ b/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -43,11 +43,11 @@ server cluster Identify = 3 { /** Attributes and commands for group configuration and manipulation. */ server cluster Groups = 4 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kGroupNames = 0x1; } - bitmap NameSupportBitmap : BITMAP8 { + bitmap NameSupportBitmap : bitmap8 { kGroupNames = 0x80; } @@ -112,33 +112,33 @@ server cluster Groups = 4 { /** Attributes and commands for switching devices between 'On' and 'Off' states. */ server cluster OnOff = 6 { - enum DelayedAllOffEffectVariantEnum : ENUM8 { + enum DelayedAllOffEffectVariantEnum : enum8 { kDelayedOffFastFade = 0; kNoFade = 1; kDelayedOffSlowFade = 2; } - enum DyingLightEffectVariantEnum : ENUM8 { + enum DyingLightEffectVariantEnum : enum8 { kDyingLightFadeOff = 0; } - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kDelayedAllOff = 0; kDyingLight = 1; } - enum StartUpOnOffEnum : ENUM8 { + enum StartUpOnOffEnum : enum8 { kOff = 0; kOn = 1; kToggle = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kLighting = 0x1; kDeadFrontBehavior = 0x2; } - bitmap OnOffControlBitmap : BITMAP8 { + bitmap OnOffControlBitmap : bitmap8 { kAcceptOnlyWhenOn = 0x1; } @@ -161,23 +161,23 @@ server cluster OnOff = 6 { /** Attributes and commands for controlling devices that can be set to a level between fully 'On' and fully 'Off.' */ server cluster LevelControl = 8 { - enum MoveMode : ENUM8 { + enum MoveMode : enum8 { kUp = 0; kDown = 1; } - enum StepMode : ENUM8 { + enum StepMode : enum8 { kUp = 0; kDown = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kOnOff = 0x1; kLighting = 0x2; kFrequency = 0x4; } - bitmap LevelControlOptions : BITMAP8 { + bitmap LevelControlOptions : bitmap8 { kExecuteIfOff = 0x1; kCoupleColorTempToLevel = 0x2; } @@ -262,7 +262,7 @@ server cluster LevelControl = 8 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -314,13 +314,13 @@ client cluster Binding = 30 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -328,7 +328,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -386,7 +386,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -410,7 +410,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -473,20 +473,20 @@ server cluster BasicInformation = 40 { /** Provides an interface for providing OTA software updates */ client cluster OtaSoftwareUpdateProvider = 41 { - enum ApplyUpdateActionEnum : ENUM8 { + enum ApplyUpdateActionEnum : enum8 { kProceed = 0; kAwaitNextAction = 1; kDiscontinue = 2; } - enum DownloadProtocolEnum : ENUM8 { + enum DownloadProtocolEnum : enum8 { kBDXSynchronous = 0; kBDXAsynchronous = 1; kHTTPS = 2; kVendorSpecific = 3; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kUpdateAvailable = 0; kBusy = 1; kNotAvailable = 2; @@ -547,13 +547,13 @@ client cluster OtaSoftwareUpdateProvider = 41 { /** Provides an interface for downloading and applying OTA software updates */ server cluster OtaSoftwareUpdateRequestor = 42 { - enum AnnouncementReasonEnum : ENUM8 { + enum AnnouncementReasonEnum : enum8 { kSimpleAnnouncement = 0; kUpdateAvailable = 1; kUrgentUpdateAvailable = 2; } - enum ChangeReasonEnum : ENUM8 { + enum ChangeReasonEnum : enum8 { kUnknown = 0; kSuccess = 1; kFailure = 2; @@ -561,7 +561,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { kDelayByProvider = 4; } - enum UpdateStateEnum : ENUM8 { + enum UpdateStateEnum : enum8 { kUnknown = 0; kIdle = 1; kQuerying = 2; @@ -640,7 +640,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -655,12 +655,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -677,7 +677,7 @@ server cluster TimeFormatLocalization = 44 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -685,7 +685,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -741,13 +741,13 @@ server cluster GeneralCommissioning = 48 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -755,7 +755,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -778,7 +778,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -788,7 +788,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -802,7 +802,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -810,14 +810,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -883,7 +883,7 @@ server cluster GeneralDiagnostics = 51 { /** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster SoftwareDiagnostics = 52 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWaterMarks = 0x1; } @@ -917,19 +917,19 @@ server cluster SoftwareDiagnostics = 52 { /** The Thread Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems */ server cluster ThreadNetworkDiagnostics = 53 { - enum ConnectionStatusEnum : ENUM8 { + enum ConnectionStatusEnum : enum8 { kConnected = 0; kNotConnected = 1; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kLinkDown = 1; kHardwareFailure = 2; kNetworkJammed = 3; } - enum RoutingRoleEnum : ENUM8 { + enum RoutingRoleEnum : enum8 { kUnspecified = 0; kUnassigned = 1; kSleepyEndDevice = 2; @@ -939,7 +939,7 @@ server cluster ThreadNetworkDiagnostics = 53 { kLeader = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; kMLECounts = 0x4; @@ -1080,19 +1080,19 @@ server cluster ThreadNetworkDiagnostics = 53 { /** The Wi-Fi Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster WiFiNetworkDiagnostics = 54 { - enum AssociationFailureCauseEnum : ENUM8 { + enum AssociationFailureCauseEnum : enum8 { kUnknown = 0; kAssociationFailed = 1; kAuthenticationFailed = 2; kSsidNotFound = 3; } - enum ConnectionStatusEnum : ENUM8 { + enum ConnectionStatusEnum : enum8 { kConnected = 0; kNotConnected = 1; } - enum SecurityTypeEnum : ENUM8 { + enum SecurityTypeEnum : enum8 { kUnspecified = 0; kNone = 1; kWEP = 2; @@ -1101,7 +1101,7 @@ server cluster WiFiNetworkDiagnostics = 54 { kWPA3 = 5; } - enum WiFiVersionEnum : ENUM8 { + enum WiFiVersionEnum : enum8 { kA = 0; kB = 1; kG = 2; @@ -1111,7 +1111,7 @@ server cluster WiFiNetworkDiagnostics = 54 { kAh = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; } @@ -1154,7 +1154,7 @@ server cluster WiFiNetworkDiagnostics = 54 { /** The Ethernet Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster EthernetNetworkDiagnostics = 55 { - enum PHYRateEnum : ENUM8 { + enum PHYRateEnum : enum8 { kRate10M = 0; kRate100M = 1; kRate1G = 2; @@ -1167,7 +1167,7 @@ server cluster EthernetNetworkDiagnostics = 55 { kRate400G = 9; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; } @@ -1193,13 +1193,13 @@ server cluster EthernetNetworkDiagnostics = 55 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -1234,12 +1234,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -1350,12 +1350,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -1439,18 +1439,18 @@ server cluster FixedLabel = 64 { /** Attributes and commands for configuring occupancy sensing, and reporting occupancy status. */ client cluster OccupancySensing = 1030 { - enum OccupancySensorTypeEnum : ENUM8 { + enum OccupancySensorTypeEnum : enum8 { kPIR = 0; kUltrasonic = 1; kPIRAndUltrasonic = 2; kPhysicalContact = 3; } - bitmap OccupancyBitmap : BITMAP8 { + bitmap OccupancyBitmap : bitmap8 { kOccupied = 0x1; } - bitmap OccupancySensorTypeBitmap : BITMAP8 { + bitmap OccupancySensorTypeBitmap : bitmap8 { kPIR = 0x1; kUltrasonic = 0x2; kPhysicalContact = 0x4; diff --git a/examples/chef/devices/rootnode_airpurifier_airqualitysensor_temperaturesensor_humiditysensor_thermostat_56de3d5f45.matter b/examples/chef/devices/rootnode_airpurifier_airqualitysensor_temperaturesensor_humiditysensor_thermostat_56de3d5f45.matter index becc2994f937e9..2da641921c68d5 100644 --- a/examples/chef/devices/rootnode_airpurifier_airqualitysensor_temperaturesensor_humiditysensor_thermostat_56de3d5f45.matter +++ b/examples/chef/devices/rootnode_airpurifier_airqualitysensor_temperaturesensor_humiditysensor_thermostat_56de3d5f45.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -49,11 +49,11 @@ server cluster Identify = 3 { /** Attributes and commands for group configuration and manipulation. */ server cluster Groups = 4 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kGroupNames = 0x1; } - bitmap NameSupportBitmap : BITMAP8 { + bitmap NameSupportBitmap : bitmap8 { kGroupNames = 0x80; } @@ -118,7 +118,7 @@ server cluster Groups = 4 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -151,13 +151,13 @@ server cluster Descriptor = 29 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -165,7 +165,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -223,7 +223,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -247,7 +247,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -310,7 +310,7 @@ server cluster BasicInformation = 40 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -318,7 +318,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -374,7 +374,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -390,7 +390,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -399,13 +399,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -514,13 +514,13 @@ server cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -528,7 +528,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -551,7 +551,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -561,7 +561,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -575,7 +575,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -583,14 +583,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -656,13 +656,13 @@ server cluster GeneralDiagnostics = 51 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -697,12 +697,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -813,12 +813,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -885,7 +885,7 @@ server cluster GroupKeyManagement = 63 { /** Attributes for reporting air quality classification */ server cluster AirQuality = 91 { - enum AirQualityEnum : ENUM8 { + enum AirQualityEnum : enum8 { kUnknown = 0; kGood = 1; kFair = 2; @@ -895,7 +895,7 @@ server cluster AirQuality = 91 { kExtremelyPoor = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kFair = 0x1; kModerate = 0x2; kVeryPoor = 0x4; @@ -913,18 +913,18 @@ server cluster AirQuality = 91 { /** Attributes and commands for monitoring HEPA filters in a device */ server cluster HepaFilterMonitoring = 113 { - enum ChangeIndicationEnum : ENUM8 { + enum ChangeIndicationEnum : enum8 { kOK = 0; kWarning = 1; kCritical = 2; } - enum DegradationDirectionEnum : ENUM8 { + enum DegradationDirectionEnum : enum8 { kUp = 0; kDown = 1; } - enum ProductIdentifierTypeEnum : ENUM8 { + enum ProductIdentifierTypeEnum : enum8 { kUPC = 0; kGTIN8 = 1; kEAN = 2; @@ -932,7 +932,7 @@ server cluster HepaFilterMonitoring = 113 { kOEM = 4; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCondition = 0x1; kWarning = 0x2; kReplacementProductList = 0x4; @@ -957,18 +957,18 @@ server cluster HepaFilterMonitoring = 113 { /** Attributes and commands for monitoring activated carbon filters in a device */ server cluster ActivatedCarbonFilterMonitoring = 114 { - enum ChangeIndicationEnum : ENUM8 { + enum ChangeIndicationEnum : enum8 { kOK = 0; kWarning = 1; kCritical = 2; } - enum DegradationDirectionEnum : ENUM8 { + enum DegradationDirectionEnum : enum8 { kUp = 0; kDown = 1; } - enum ProductIdentifierTypeEnum : ENUM8 { + enum ProductIdentifierTypeEnum : enum8 { kUPC = 0; kGTIN8 = 1; kEAN = 2; @@ -976,7 +976,7 @@ server cluster ActivatedCarbonFilterMonitoring = 114 { kOEM = 4; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCondition = 0x1; kWarning = 0x2; kReplacementProductList = 0x4; @@ -1001,13 +1001,13 @@ server cluster ActivatedCarbonFilterMonitoring = 114 { /** An interface for configuring and controlling the functionality of a thermostat. */ server cluster Thermostat = 513 { - enum SetpointAdjustMode : ENUM8 { + enum SetpointAdjustMode : enum8 { kHeat = 0; kCool = 1; kBoth = 2; } - enum ThermostatControlSequence : ENUM8 { + enum ThermostatControlSequence : enum8 { kCoolingOnly = 0; kCoolingWithReheat = 1; kHeatingOnly = 2; @@ -1016,13 +1016,13 @@ server cluster Thermostat = 513 { kCoolingAndHeatingWithReheat = 5; } - enum ThermostatRunningMode : ENUM8 { + enum ThermostatRunningMode : enum8 { kOff = 0; kCool = 3; kHeat = 4; } - enum ThermostatSystemMode : ENUM8 { + enum ThermostatSystemMode : enum8 { kOff = 0; kAuto = 1; kCool = 3; @@ -1034,7 +1034,7 @@ server cluster Thermostat = 513 { kSleep = 9; } - bitmap DayOfWeek : BITMAP8 { + bitmap DayOfWeek : bitmap8 { kSunday = 0x1; kMonday = 0x2; kTuesday = 0x4; @@ -1045,7 +1045,7 @@ server cluster Thermostat = 513 { kAway = 0x80; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kHeating = 0x1; kCooling = 0x2; kOccupancy = 0x4; @@ -1055,7 +1055,7 @@ server cluster Thermostat = 513 { kLocalTemperatureNotExposed = 0x40; } - bitmap ModeForSequence : BITMAP8 { + bitmap ModeForSequence : bitmap8 { kHeatSetpointPresent = 0x1; kCoolSetpointPresent = 0x2; } @@ -1088,13 +1088,13 @@ server cluster Thermostat = 513 { } /** An interface for controlling a fan in a heating/cooling system. */ -server cluster FanControl = 514 { - enum AirflowDirectionEnum : ENUM8 { +provisional server cluster FanControl = 514 { + enum AirflowDirectionEnum : enum8 { kForward = 0; kReverse = 1; } - enum FanModeEnum : ENUM8 { + enum FanModeEnum : enum8 { kOff = 0; kLow = 1; kMedium = 2; @@ -1104,7 +1104,7 @@ server cluster FanControl = 514 { kSmart = 6; } - enum FanModeSequenceEnum : ENUM8 { + enum FanModeSequenceEnum : enum8 { kOffLowMedHigh = 0; kOffLowHigh = 1; kOffLowMedHighAuto = 2; @@ -1113,12 +1113,12 @@ server cluster FanControl = 514 { kOffOn = 5; } - enum StepDirectionEnum : ENUM8 { + enum StepDirectionEnum : enum8 { kIncrease = 0; kDecrease = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kMultiSpeed = 0x1; kAuto = 0x2; kRocking = 0x4; @@ -1127,13 +1127,13 @@ server cluster FanControl = 514 { kAirflowDirection = 0x20; } - bitmap RockBitmap : BITMAP8 { + bitmap RockBitmap : bitmap8 { kRockLeftRight = 0x1; kRockUpDown = 0x2; kRockRound = 0x4; } - bitmap WindBitmap : BITMAP8 { + bitmap WindBitmap : bitmap8 { kSleepWind = 0x1; kNaturalWind = 0x2; } @@ -1186,7 +1186,7 @@ server cluster RelativeHumidityMeasurement = 1029 { /** Attributes for reporting carbon monoxide concentration measurements */ server cluster CarbonMonoxideConcentrationMeasurement = 1036 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -1194,13 +1194,13 @@ server cluster CarbonMonoxideConcentrationMeasurement = 1036 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -1211,7 +1211,7 @@ server cluster CarbonMonoxideConcentrationMeasurement = 1036 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -1240,7 +1240,7 @@ server cluster CarbonMonoxideConcentrationMeasurement = 1036 { /** Attributes for reporting carbon dioxide concentration measurements */ server cluster CarbonDioxideConcentrationMeasurement = 1037 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -1248,13 +1248,13 @@ server cluster CarbonDioxideConcentrationMeasurement = 1037 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -1265,7 +1265,7 @@ server cluster CarbonDioxideConcentrationMeasurement = 1037 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -1294,7 +1294,7 @@ server cluster CarbonDioxideConcentrationMeasurement = 1037 { /** Attributes for reporting nitrogen dioxide concentration measurements */ server cluster NitrogenDioxideConcentrationMeasurement = 1043 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -1302,13 +1302,13 @@ server cluster NitrogenDioxideConcentrationMeasurement = 1043 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -1319,7 +1319,7 @@ server cluster NitrogenDioxideConcentrationMeasurement = 1043 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -1348,7 +1348,7 @@ server cluster NitrogenDioxideConcentrationMeasurement = 1043 { /** Attributes for reporting ozone concentration measurements */ server cluster OzoneConcentrationMeasurement = 1045 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -1356,13 +1356,13 @@ server cluster OzoneConcentrationMeasurement = 1045 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -1373,7 +1373,7 @@ server cluster OzoneConcentrationMeasurement = 1045 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -1402,7 +1402,7 @@ server cluster OzoneConcentrationMeasurement = 1045 { /** Attributes for reporting PM2.5 concentration measurements */ server cluster Pm25ConcentrationMeasurement = 1066 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -1410,13 +1410,13 @@ server cluster Pm25ConcentrationMeasurement = 1066 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -1427,7 +1427,7 @@ server cluster Pm25ConcentrationMeasurement = 1066 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -1456,7 +1456,7 @@ server cluster Pm25ConcentrationMeasurement = 1066 { /** Attributes for reporting formaldehyde concentration measurements */ server cluster FormaldehydeConcentrationMeasurement = 1067 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -1464,13 +1464,13 @@ server cluster FormaldehydeConcentrationMeasurement = 1067 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -1481,7 +1481,7 @@ server cluster FormaldehydeConcentrationMeasurement = 1067 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -1510,7 +1510,7 @@ server cluster FormaldehydeConcentrationMeasurement = 1067 { /** Attributes for reporting PM1 concentration measurements */ server cluster Pm1ConcentrationMeasurement = 1068 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -1518,13 +1518,13 @@ server cluster Pm1ConcentrationMeasurement = 1068 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -1535,7 +1535,7 @@ server cluster Pm1ConcentrationMeasurement = 1068 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -1564,7 +1564,7 @@ server cluster Pm1ConcentrationMeasurement = 1068 { /** Attributes for reporting PM10 concentration measurements */ server cluster Pm10ConcentrationMeasurement = 1069 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -1572,13 +1572,13 @@ server cluster Pm10ConcentrationMeasurement = 1069 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -1589,7 +1589,7 @@ server cluster Pm10ConcentrationMeasurement = 1069 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -1618,7 +1618,7 @@ server cluster Pm10ConcentrationMeasurement = 1069 { /** Attributes for reporting total volatile organic compounds concentration measurements */ server cluster TotalVolatileOrganicCompoundsConcentrationMeasurement = 1070 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -1626,13 +1626,13 @@ server cluster TotalVolatileOrganicCompoundsConcentrationMeasurement = 1070 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -1643,7 +1643,7 @@ server cluster TotalVolatileOrganicCompoundsConcentrationMeasurement = 1070 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -1672,7 +1672,7 @@ server cluster TotalVolatileOrganicCompoundsConcentrationMeasurement = 1070 { /** Attributes for reporting radon concentration measurements */ server cluster RadonConcentrationMeasurement = 1071 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -1680,13 +1680,13 @@ server cluster RadonConcentrationMeasurement = 1071 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -1697,7 +1697,7 @@ server cluster RadonConcentrationMeasurement = 1071 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; diff --git a/examples/chef/devices/rootnode_airqualitysensor_e63187f6c9.matter b/examples/chef/devices/rootnode_airqualitysensor_e63187f6c9.matter index ebe77f6be91ead..c65c69aa5fac3d 100644 --- a/examples/chef/devices/rootnode_airqualitysensor_e63187f6c9.matter +++ b/examples/chef/devices/rootnode_airqualitysensor_e63187f6c9.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -43,7 +43,7 @@ server cluster Identify = 3 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -76,13 +76,13 @@ server cluster Descriptor = 29 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -90,7 +90,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -148,7 +148,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -172,7 +172,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -235,20 +235,20 @@ server cluster BasicInformation = 40 { /** Provides an interface for providing OTA software updates */ client cluster OtaSoftwareUpdateProvider = 41 { - enum ApplyUpdateActionEnum : ENUM8 { + enum ApplyUpdateActionEnum : enum8 { kProceed = 0; kAwaitNextAction = 1; kDiscontinue = 2; } - enum DownloadProtocolEnum : ENUM8 { + enum DownloadProtocolEnum : enum8 { kBDXSynchronous = 0; kBDXAsynchronous = 1; kHTTPS = 2; kVendorSpecific = 3; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kUpdateAvailable = 0; kBusy = 1; kNotAvailable = 2; @@ -309,13 +309,13 @@ client cluster OtaSoftwareUpdateProvider = 41 { /** Provides an interface for downloading and applying OTA software updates */ server cluster OtaSoftwareUpdateRequestor = 42 { - enum AnnouncementReasonEnum : ENUM8 { + enum AnnouncementReasonEnum : enum8 { kSimpleAnnouncement = 0; kUpdateAvailable = 1; kUrgentUpdateAvailable = 2; } - enum ChangeReasonEnum : ENUM8 { + enum ChangeReasonEnum : enum8 { kUnknown = 0; kSuccess = 1; kFailure = 2; @@ -323,7 +323,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { kDelayByProvider = 4; } - enum UpdateStateEnum : ENUM8 { + enum UpdateStateEnum : enum8 { kUnknown = 0; kIdle = 1; kQuerying = 2; @@ -402,7 +402,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -417,12 +417,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -439,7 +439,7 @@ server cluster TimeFormatLocalization = 44 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -447,7 +447,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -503,7 +503,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -519,7 +519,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -528,13 +528,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -643,13 +643,13 @@ server cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -657,7 +657,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -680,7 +680,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -690,7 +690,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -704,7 +704,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -712,14 +712,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -785,7 +785,7 @@ server cluster GeneralDiagnostics = 51 { /** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster SoftwareDiagnostics = 52 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWaterMarks = 0x1; } @@ -819,13 +819,13 @@ server cluster SoftwareDiagnostics = 52 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -860,12 +860,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -976,12 +976,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -1065,7 +1065,7 @@ server cluster FixedLabel = 64 { /** Attributes for reporting air quality classification */ server cluster AirQuality = 91 { - enum AirQualityEnum : ENUM8 { + enum AirQualityEnum : enum8 { kUnknown = 0; kGood = 1; kFair = 2; @@ -1075,7 +1075,7 @@ server cluster AirQuality = 91 { kExtremelyPoor = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kFair = 0x1; kModerate = 0x2; kVeryPoor = 0x4; @@ -1121,7 +1121,7 @@ server cluster RelativeHumidityMeasurement = 1029 { /** Attributes for reporting carbon monoxide concentration measurements */ server cluster CarbonMonoxideConcentrationMeasurement = 1036 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -1129,13 +1129,13 @@ server cluster CarbonMonoxideConcentrationMeasurement = 1036 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -1146,7 +1146,7 @@ server cluster CarbonMonoxideConcentrationMeasurement = 1036 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -1176,7 +1176,7 @@ server cluster CarbonMonoxideConcentrationMeasurement = 1036 { /** Attributes for reporting carbon dioxide concentration measurements */ server cluster CarbonDioxideConcentrationMeasurement = 1037 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -1184,13 +1184,13 @@ server cluster CarbonDioxideConcentrationMeasurement = 1037 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -1201,7 +1201,7 @@ server cluster CarbonDioxideConcentrationMeasurement = 1037 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -1231,7 +1231,7 @@ server cluster CarbonDioxideConcentrationMeasurement = 1037 { /** Attributes for reporting nitrogen dioxide concentration measurements */ server cluster NitrogenDioxideConcentrationMeasurement = 1043 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -1239,13 +1239,13 @@ server cluster NitrogenDioxideConcentrationMeasurement = 1043 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -1256,7 +1256,7 @@ server cluster NitrogenDioxideConcentrationMeasurement = 1043 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -1286,7 +1286,7 @@ server cluster NitrogenDioxideConcentrationMeasurement = 1043 { /** Attributes for reporting ozone concentration measurements */ server cluster OzoneConcentrationMeasurement = 1045 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -1294,13 +1294,13 @@ server cluster OzoneConcentrationMeasurement = 1045 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -1311,7 +1311,7 @@ server cluster OzoneConcentrationMeasurement = 1045 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -1341,7 +1341,7 @@ server cluster OzoneConcentrationMeasurement = 1045 { /** Attributes for reporting PM2.5 concentration measurements */ server cluster Pm25ConcentrationMeasurement = 1066 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -1349,13 +1349,13 @@ server cluster Pm25ConcentrationMeasurement = 1066 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -1366,7 +1366,7 @@ server cluster Pm25ConcentrationMeasurement = 1066 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -1396,7 +1396,7 @@ server cluster Pm25ConcentrationMeasurement = 1066 { /** Attributes for reporting formaldehyde concentration measurements */ server cluster FormaldehydeConcentrationMeasurement = 1067 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -1404,13 +1404,13 @@ server cluster FormaldehydeConcentrationMeasurement = 1067 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -1421,7 +1421,7 @@ server cluster FormaldehydeConcentrationMeasurement = 1067 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -1451,7 +1451,7 @@ server cluster FormaldehydeConcentrationMeasurement = 1067 { /** Attributes for reporting PM1 concentration measurements */ server cluster Pm1ConcentrationMeasurement = 1068 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -1459,13 +1459,13 @@ server cluster Pm1ConcentrationMeasurement = 1068 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -1476,7 +1476,7 @@ server cluster Pm1ConcentrationMeasurement = 1068 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -1506,7 +1506,7 @@ server cluster Pm1ConcentrationMeasurement = 1068 { /** Attributes for reporting PM10 concentration measurements */ server cluster Pm10ConcentrationMeasurement = 1069 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -1514,13 +1514,13 @@ server cluster Pm10ConcentrationMeasurement = 1069 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -1531,7 +1531,7 @@ server cluster Pm10ConcentrationMeasurement = 1069 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -1561,7 +1561,7 @@ server cluster Pm10ConcentrationMeasurement = 1069 { /** Attributes for reporting total volatile organic compounds concentration measurements */ server cluster TotalVolatileOrganicCompoundsConcentrationMeasurement = 1070 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -1569,13 +1569,13 @@ server cluster TotalVolatileOrganicCompoundsConcentrationMeasurement = 1070 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -1586,7 +1586,7 @@ server cluster TotalVolatileOrganicCompoundsConcentrationMeasurement = 1070 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -1616,7 +1616,7 @@ server cluster TotalVolatileOrganicCompoundsConcentrationMeasurement = 1070 { /** Attributes for reporting radon concentration measurements */ server cluster RadonConcentrationMeasurement = 1071 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -1624,13 +1624,13 @@ server cluster RadonConcentrationMeasurement = 1071 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -1641,7 +1641,7 @@ server cluster RadonConcentrationMeasurement = 1071 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; diff --git a/examples/chef/devices/rootnode_basicvideoplayer_0ff86e943b.matter b/examples/chef/devices/rootnode_basicvideoplayer_0ff86e943b.matter index 14d207c47ed05e..11eef7f41cb6c8 100644 --- a/examples/chef/devices/rootnode_basicvideoplayer_0ff86e943b.matter +++ b/examples/chef/devices/rootnode_basicvideoplayer_0ff86e943b.matter @@ -3,33 +3,33 @@ /** Attributes and commands for switching devices between 'On' and 'Off' states. */ server cluster OnOff = 6 { - enum DelayedAllOffEffectVariantEnum : ENUM8 { + enum DelayedAllOffEffectVariantEnum : enum8 { kDelayedOffFastFade = 0; kNoFade = 1; kDelayedOffSlowFade = 2; } - enum DyingLightEffectVariantEnum : ENUM8 { + enum DyingLightEffectVariantEnum : enum8 { kDyingLightFadeOff = 0; } - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kDelayedAllOff = 0; kDyingLight = 1; } - enum StartUpOnOffEnum : ENUM8 { + enum StartUpOnOffEnum : enum8 { kOff = 0; kOn = 1; kToggle = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kLighting = 0x1; kDeadFrontBehavior = 0x2; } - bitmap OnOffControlBitmap : BITMAP8 { + bitmap OnOffControlBitmap : bitmap8 { kAcceptOnlyWhenOn = 0x1; } @@ -48,7 +48,7 @@ server cluster OnOff = 6 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -81,13 +81,13 @@ server cluster Descriptor = 29 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -95,7 +95,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -153,7 +153,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -177,7 +177,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -240,20 +240,20 @@ server cluster BasicInformation = 40 { /** Provides an interface for providing OTA software updates */ client cluster OtaSoftwareUpdateProvider = 41 { - enum ApplyUpdateActionEnum : ENUM8 { + enum ApplyUpdateActionEnum : enum8 { kProceed = 0; kAwaitNextAction = 1; kDiscontinue = 2; } - enum DownloadProtocolEnum : ENUM8 { + enum DownloadProtocolEnum : enum8 { kBDXSynchronous = 0; kBDXAsynchronous = 1; kHTTPS = 2; kVendorSpecific = 3; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kUpdateAvailable = 0; kBusy = 1; kNotAvailable = 2; @@ -314,13 +314,13 @@ client cluster OtaSoftwareUpdateProvider = 41 { /** Provides an interface for downloading and applying OTA software updates */ server cluster OtaSoftwareUpdateRequestor = 42 { - enum AnnouncementReasonEnum : ENUM8 { + enum AnnouncementReasonEnum : enum8 { kSimpleAnnouncement = 0; kUpdateAvailable = 1; kUrgentUpdateAvailable = 2; } - enum ChangeReasonEnum : ENUM8 { + enum ChangeReasonEnum : enum8 { kUnknown = 0; kSuccess = 1; kFailure = 2; @@ -328,7 +328,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { kDelayByProvider = 4; } - enum UpdateStateEnum : ENUM8 { + enum UpdateStateEnum : enum8 { kUnknown = 0; kIdle = 1; kQuerying = 2; @@ -407,7 +407,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -422,12 +422,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -444,7 +444,7 @@ server cluster TimeFormatLocalization = 44 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -452,7 +452,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -508,7 +508,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -524,7 +524,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -533,13 +533,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -648,13 +648,13 @@ server cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -662,7 +662,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -685,7 +685,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -695,7 +695,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -709,7 +709,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -717,14 +717,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -790,7 +790,7 @@ server cluster GeneralDiagnostics = 51 { /** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster SoftwareDiagnostics = 52 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWaterMarks = 0x1; } @@ -824,13 +824,13 @@ server cluster SoftwareDiagnostics = 52 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -865,12 +865,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -981,12 +981,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -1080,17 +1080,17 @@ server cluster WakeOnLan = 1283 { /** This cluster provides an interface for controlling the current Channel on a device. */ server cluster Channel = 1284 { - enum ChannelStatusEnum : ENUM8 { + enum ChannelStatusEnum : enum8 { kSuccess = 0; kMultipleMatches = 1; kNoMatches = 2; } - enum LineupInfoTypeEnum : ENUM8 { + enum LineupInfoTypeEnum : enum8 { kMSO = 0; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kChannelList = 0x1; kLineupInfo = 0x2; } @@ -1145,7 +1145,7 @@ server cluster Channel = 1284 { /** This cluster provides an interface for UX navigation within a set of targets on a device or endpoint. */ server cluster TargetNavigator = 1285 { - enum TargetNavigatorStatusEnum : ENUM8 { + enum TargetNavigatorStatusEnum : enum8 { kSuccess = 0; kTargetNotFound = 1; kNotAllowed = 2; @@ -1179,7 +1179,7 @@ server cluster TargetNavigator = 1285 { /** This cluster provides an interface for controlling Media Playback (PLAY, PAUSE, etc) on a media device such as a TV or Speaker. */ server cluster MediaPlayback = 1286 { - enum MediaPlaybackStatusEnum : ENUM8 { + enum MediaPlaybackStatusEnum : enum8 { kSuccess = 0; kInvalidStateForCommand = 1; kNotAllowed = 2; @@ -1188,14 +1188,14 @@ server cluster MediaPlayback = 1286 { kSeekOutOfRange = 5; } - enum PlaybackStateEnum : ENUM8 { + enum PlaybackStateEnum : enum8 { kPlaying = 0; kPaused = 1; kNotPlaying = 2; kBuffering = 3; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kAdvancedSeek = 0x1; kVariableSpeed = 0x2; } @@ -1225,7 +1225,7 @@ server cluster MediaPlayback = 1286 { /** This cluster provides an interface for controlling the Input Selector on a media device such as a TV. */ server cluster MediaInput = 1287 { - enum InputTypeEnum : ENUM8 { + enum InputTypeEnum : enum8 { kInternal = 0; kAux = 1; kCoax = 2; @@ -1240,7 +1240,7 @@ server cluster MediaInput = 1287 { kOther = 11; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNameUpdates = 0x1; } @@ -1283,7 +1283,7 @@ server cluster LowPower = 1288 { /** This cluster provides an interface for controlling a device like a TV using action commands such as UP, DOWN, and SELECT. */ server cluster KeypadInput = 1289 { - enum CecKeyCode : ENUM8 { + enum CecKeyCode : enum8 { kSelect = 0; kUp = 1; kDown = 2; @@ -1372,13 +1372,13 @@ server cluster KeypadInput = 1289 { kData = 118; } - enum KeypadInputStatusEnum : ENUM8 { + enum KeypadInputStatusEnum : enum8 { kSuccess = 0; kUnsupportedKey = 1; kInvalidKeyInCurrentState = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNavigationKeyCodes = 0x1; kLocationKeys = 0x2; kNumberKeys = 0x4; @@ -1404,7 +1404,7 @@ server cluster KeypadInput = 1289 { /** This cluster provides an interface for controlling the Output on a media device such as a TV. */ server cluster AudioOutput = 1291 { - enum OutputTypeEnum : ENUM8 { + enum OutputTypeEnum : enum8 { kHDMI = 0; kBT = 1; kOptical = 2; @@ -1413,7 +1413,7 @@ server cluster AudioOutput = 1291 { kOther = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNameUpdates = 0x1; } diff --git a/examples/chef/devices/rootnode_colortemperaturelight_hbUnzYVeyn.matter b/examples/chef/devices/rootnode_colortemperaturelight_hbUnzYVeyn.matter index 15936224e0275b..3def96eec50970 100644 --- a/examples/chef/devices/rootnode_colortemperaturelight_hbUnzYVeyn.matter +++ b/examples/chef/devices/rootnode_colortemperaturelight_hbUnzYVeyn.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -49,11 +49,11 @@ server cluster Identify = 3 { /** Attributes and commands for group configuration and manipulation. */ server cluster Groups = 4 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kGroupNames = 0x1; } - bitmap NameSupportBitmap : BITMAP8 { + bitmap NameSupportBitmap : bitmap8 { kGroupNames = 0x80; } @@ -118,33 +118,33 @@ server cluster Groups = 4 { /** Attributes and commands for switching devices between 'On' and 'Off' states. */ server cluster OnOff = 6 { - enum DelayedAllOffEffectVariantEnum : ENUM8 { + enum DelayedAllOffEffectVariantEnum : enum8 { kDelayedOffFastFade = 0; kNoFade = 1; kDelayedOffSlowFade = 2; } - enum DyingLightEffectVariantEnum : ENUM8 { + enum DyingLightEffectVariantEnum : enum8 { kDyingLightFadeOff = 0; } - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kDelayedAllOff = 0; kDyingLight = 1; } - enum StartUpOnOffEnum : ENUM8 { + enum StartUpOnOffEnum : enum8 { kOff = 0; kOn = 1; kToggle = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kLighting = 0x1; kDeadFrontBehavior = 0x2; } - bitmap OnOffControlBitmap : BITMAP8 { + bitmap OnOffControlBitmap : bitmap8 { kAcceptOnlyWhenOn = 0x1; } @@ -181,23 +181,23 @@ server cluster OnOff = 6 { /** Attributes and commands for controlling devices that can be set to a level between fully 'On' and fully 'Off.' */ server cluster LevelControl = 8 { - enum MoveMode : ENUM8 { + enum MoveMode : enum8 { kUp = 0; kDown = 1; } - enum StepMode : ENUM8 { + enum StepMode : enum8 { kUp = 0; kDown = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kOnOff = 0x1; kLighting = 0x2; kFrequency = 0x4; } - bitmap LevelControlOptions : BITMAP8 { + bitmap LevelControlOptions : bitmap8 { kExecuteIfOff = 0x1; kCoupleColorTempToLevel = 0x2; } @@ -280,7 +280,7 @@ server cluster LevelControl = 8 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -313,13 +313,13 @@ server cluster Descriptor = 29 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -327,7 +327,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -385,7 +385,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -409,7 +409,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -472,20 +472,20 @@ server cluster BasicInformation = 40 { /** Provides an interface for providing OTA software updates */ client cluster OtaSoftwareUpdateProvider = 41 { - enum ApplyUpdateActionEnum : ENUM8 { + enum ApplyUpdateActionEnum : enum8 { kProceed = 0; kAwaitNextAction = 1; kDiscontinue = 2; } - enum DownloadProtocolEnum : ENUM8 { + enum DownloadProtocolEnum : enum8 { kBDXSynchronous = 0; kBDXAsynchronous = 1; kHTTPS = 2; kVendorSpecific = 3; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kUpdateAvailable = 0; kBusy = 1; kNotAvailable = 2; @@ -546,13 +546,13 @@ client cluster OtaSoftwareUpdateProvider = 41 { /** Provides an interface for downloading and applying OTA software updates */ server cluster OtaSoftwareUpdateRequestor = 42 { - enum AnnouncementReasonEnum : ENUM8 { + enum AnnouncementReasonEnum : enum8 { kSimpleAnnouncement = 0; kUpdateAvailable = 1; kUrgentUpdateAvailable = 2; } - enum ChangeReasonEnum : ENUM8 { + enum ChangeReasonEnum : enum8 { kUnknown = 0; kSuccess = 1; kFailure = 2; @@ -560,7 +560,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { kDelayByProvider = 4; } - enum UpdateStateEnum : ENUM8 { + enum UpdateStateEnum : enum8 { kUnknown = 0; kIdle = 1; kQuerying = 2; @@ -621,7 +621,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -629,7 +629,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -685,7 +685,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -701,7 +701,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -710,13 +710,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -825,13 +825,13 @@ server cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -839,7 +839,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -862,7 +862,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -872,7 +872,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -886,7 +886,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -894,14 +894,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -967,7 +967,7 @@ server cluster GeneralDiagnostics = 51 { /** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster SoftwareDiagnostics = 52 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWaterMarks = 0x1; } @@ -1001,13 +1001,13 @@ server cluster SoftwareDiagnostics = 52 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -1042,12 +1042,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -1158,12 +1158,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -1230,53 +1230,53 @@ server cluster GroupKeyManagement = 63 { /** Attributes and commands for controlling the color properties of a color-capable light. */ server cluster ColorControl = 768 { - enum ColorLoopAction : ENUM8 { + enum ColorLoopAction : enum8 { kDeactivate = 0; kActivateFromColorLoopStartEnhancedHue = 1; kActivateFromEnhancedCurrentHue = 2; } - enum ColorLoopDirection : ENUM8 { + enum ColorLoopDirection : enum8 { kDecrementHue = 0; kIncrementHue = 1; } - enum ColorMode : ENUM8 { + enum ColorMode : enum8 { kCurrentHueAndCurrentSaturation = 0; kCurrentXAndCurrentY = 1; kColorTemperature = 2; } - enum HueDirection : ENUM8 { + enum HueDirection : enum8 { kShortestDistance = 0; kLongestDistance = 1; kUp = 2; kDown = 3; } - enum HueMoveMode : ENUM8 { + enum HueMoveMode : enum8 { kStop = 0; kUp = 1; kDown = 3; } - enum HueStepMode : ENUM8 { + enum HueStepMode : enum8 { kUp = 1; kDown = 3; } - enum SaturationMoveMode : ENUM8 { + enum SaturationMoveMode : enum8 { kStop = 0; kUp = 1; kDown = 3; } - enum SaturationStepMode : ENUM8 { + enum SaturationStepMode : enum8 { kUp = 1; kDown = 3; } - bitmap ColorCapabilities : BITMAP16 { + bitmap ColorCapabilities : bitmap16 { kHueSaturationSupported = 0x1; kEnhancedHueSupported = 0x2; kColorLoopSupported = 0x4; @@ -1284,14 +1284,14 @@ server cluster ColorControl = 768 { kColorTemperatureSupported = 0x10; } - bitmap ColorLoopUpdateFlags : BITMAP8 { + bitmap ColorLoopUpdateFlags : bitmap8 { kUpdateAction = 0x1; kUpdateDirection = 0x2; kUpdateTime = 0x4; kUpdateStartHue = 0x8; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kHueAndSaturation = 0x1; kEnhancedHue = 0x2; kColorLoop = 0x4; diff --git a/examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.matter b/examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.matter index a6800b206bf5e9..3e625cd72dbc03 100644 --- a/examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.matter +++ b/examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -43,11 +43,11 @@ server cluster Identify = 3 { /** Attributes and commands for group configuration and manipulation. */ server cluster Groups = 4 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kGroupNames = 0x1; } - bitmap NameSupportBitmap : BITMAP8 { + bitmap NameSupportBitmap : bitmap8 { kGroupNames = 0x80; } @@ -112,7 +112,7 @@ server cluster Groups = 4 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -164,13 +164,13 @@ client cluster Binding = 30 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -178,7 +178,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -236,7 +236,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -260,7 +260,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -323,20 +323,20 @@ server cluster BasicInformation = 40 { /** Provides an interface for providing OTA software updates */ client cluster OtaSoftwareUpdateProvider = 41 { - enum ApplyUpdateActionEnum : ENUM8 { + enum ApplyUpdateActionEnum : enum8 { kProceed = 0; kAwaitNextAction = 1; kDiscontinue = 2; } - enum DownloadProtocolEnum : ENUM8 { + enum DownloadProtocolEnum : enum8 { kBDXSynchronous = 0; kBDXAsynchronous = 1; kHTTPS = 2; kVendorSpecific = 3; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kUpdateAvailable = 0; kBusy = 1; kNotAvailable = 2; @@ -397,13 +397,13 @@ client cluster OtaSoftwareUpdateProvider = 41 { /** Provides an interface for downloading and applying OTA software updates */ server cluster OtaSoftwareUpdateRequestor = 42 { - enum AnnouncementReasonEnum : ENUM8 { + enum AnnouncementReasonEnum : enum8 { kSimpleAnnouncement = 0; kUpdateAvailable = 1; kUrgentUpdateAvailable = 2; } - enum ChangeReasonEnum : ENUM8 { + enum ChangeReasonEnum : enum8 { kUnknown = 0; kSuccess = 1; kFailure = 2; @@ -411,7 +411,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { kDelayByProvider = 4; } - enum UpdateStateEnum : ENUM8 { + enum UpdateStateEnum : enum8 { kUnknown = 0; kIdle = 1; kQuerying = 2; @@ -490,7 +490,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -505,12 +505,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -527,7 +527,7 @@ server cluster TimeFormatLocalization = 44 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -535,7 +535,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -591,7 +591,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -607,7 +607,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -616,13 +616,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -731,13 +731,13 @@ server cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -745,7 +745,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -768,7 +768,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -778,7 +778,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -792,7 +792,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -800,14 +800,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -873,7 +873,7 @@ server cluster GeneralDiagnostics = 51 { /** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster SoftwareDiagnostics = 52 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWaterMarks = 0x1; } @@ -907,13 +907,13 @@ server cluster SoftwareDiagnostics = 52 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -948,12 +948,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -1064,12 +1064,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } diff --git a/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter b/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter index e5a2b61e0d9b52..43531e46fe8b87 100644 --- a/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter +++ b/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -43,11 +43,11 @@ server cluster Identify = 3 { /** Attributes and commands for group configuration and manipulation. */ server cluster Groups = 4 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kGroupNames = 0x1; } - bitmap NameSupportBitmap : BITMAP8 { + bitmap NameSupportBitmap : bitmap8 { kGroupNames = 0x80; } @@ -112,33 +112,33 @@ server cluster Groups = 4 { /** Attributes and commands for switching devices between 'On' and 'Off' states. */ server cluster OnOff = 6 { - enum DelayedAllOffEffectVariantEnum : ENUM8 { + enum DelayedAllOffEffectVariantEnum : enum8 { kDelayedOffFastFade = 0; kNoFade = 1; kDelayedOffSlowFade = 2; } - enum DyingLightEffectVariantEnum : ENUM8 { + enum DyingLightEffectVariantEnum : enum8 { kDyingLightFadeOff = 0; } - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kDelayedAllOff = 0; kDyingLight = 1; } - enum StartUpOnOffEnum : ENUM8 { + enum StartUpOnOffEnum : enum8 { kOff = 0; kOn = 1; kToggle = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kLighting = 0x1; kDeadFrontBehavior = 0x2; } - bitmap OnOffControlBitmap : BITMAP8 { + bitmap OnOffControlBitmap : bitmap8 { kAcceptOnlyWhenOn = 0x1; } @@ -161,23 +161,23 @@ server cluster OnOff = 6 { /** Attributes and commands for controlling devices that can be set to a level between fully 'On' and fully 'Off.' */ server cluster LevelControl = 8 { - enum MoveMode : ENUM8 { + enum MoveMode : enum8 { kUp = 0; kDown = 1; } - enum StepMode : ENUM8 { + enum StepMode : enum8 { kUp = 0; kDown = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kOnOff = 0x1; kLighting = 0x2; kFrequency = 0x4; } - bitmap LevelControlOptions : BITMAP8 { + bitmap LevelControlOptions : bitmap8 { kExecuteIfOff = 0x1; kCoupleColorTempToLevel = 0x2; } @@ -262,7 +262,7 @@ server cluster LevelControl = 8 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -314,13 +314,13 @@ client cluster Binding = 30 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -328,7 +328,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -386,7 +386,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -410,7 +410,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -473,20 +473,20 @@ server cluster BasicInformation = 40 { /** Provides an interface for providing OTA software updates */ client cluster OtaSoftwareUpdateProvider = 41 { - enum ApplyUpdateActionEnum : ENUM8 { + enum ApplyUpdateActionEnum : enum8 { kProceed = 0; kAwaitNextAction = 1; kDiscontinue = 2; } - enum DownloadProtocolEnum : ENUM8 { + enum DownloadProtocolEnum : enum8 { kBDXSynchronous = 0; kBDXAsynchronous = 1; kHTTPS = 2; kVendorSpecific = 3; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kUpdateAvailable = 0; kBusy = 1; kNotAvailable = 2; @@ -547,13 +547,13 @@ client cluster OtaSoftwareUpdateProvider = 41 { /** Provides an interface for downloading and applying OTA software updates */ server cluster OtaSoftwareUpdateRequestor = 42 { - enum AnnouncementReasonEnum : ENUM8 { + enum AnnouncementReasonEnum : enum8 { kSimpleAnnouncement = 0; kUpdateAvailable = 1; kUrgentUpdateAvailable = 2; } - enum ChangeReasonEnum : ENUM8 { + enum ChangeReasonEnum : enum8 { kUnknown = 0; kSuccess = 1; kFailure = 2; @@ -561,7 +561,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { kDelayByProvider = 4; } - enum UpdateStateEnum : ENUM8 { + enum UpdateStateEnum : enum8 { kUnknown = 0; kIdle = 1; kQuerying = 2; @@ -640,7 +640,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -655,12 +655,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -677,7 +677,7 @@ server cluster TimeFormatLocalization = 44 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -685,7 +685,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -741,7 +741,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -757,7 +757,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -766,13 +766,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -881,13 +881,13 @@ server cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -895,7 +895,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -918,7 +918,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -928,7 +928,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -942,7 +942,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -950,14 +950,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -1023,7 +1023,7 @@ server cluster GeneralDiagnostics = 51 { /** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster SoftwareDiagnostics = 52 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWaterMarks = 0x1; } @@ -1057,13 +1057,13 @@ server cluster SoftwareDiagnostics = 52 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -1098,12 +1098,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -1214,12 +1214,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -1303,18 +1303,18 @@ server cluster FixedLabel = 64 { /** Attributes and commands for configuring occupancy sensing, and reporting occupancy status. */ client cluster OccupancySensing = 1030 { - enum OccupancySensorTypeEnum : ENUM8 { + enum OccupancySensorTypeEnum : enum8 { kPIR = 0; kUltrasonic = 1; kPIRAndUltrasonic = 2; kPhysicalContact = 3; } - bitmap OccupancyBitmap : BITMAP8 { + bitmap OccupancyBitmap : bitmap8 { kOccupied = 0x1; } - bitmap OccupancySensorTypeBitmap : BITMAP8 { + bitmap OccupancySensorTypeBitmap : bitmap8 { kPIR = 0x1; kUltrasonic = 0x2; kPhysicalContact = 0x4; diff --git a/examples/chef/devices/rootnode_dishwasher_cc105034fe.matter b/examples/chef/devices/rootnode_dishwasher_cc105034fe.matter index 774a44155a7f04..aa912683189e60 100644 --- a/examples/chef/devices/rootnode_dishwasher_cc105034fe.matter +++ b/examples/chef/devices/rootnode_dishwasher_cc105034fe.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -49,7 +49,7 @@ server cluster Identify = 3 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -82,13 +82,13 @@ server cluster Descriptor = 29 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -96,7 +96,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -154,7 +154,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -178,7 +178,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -260,7 +260,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -275,12 +275,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -298,13 +298,13 @@ server cluster TimeFormatLocalization = 44 { user. As such, Nodes that visually or audibly convey measurable values to the user need a mechanism by which they can be configured to use a user’s preferred unit. */ server cluster UnitLocalization = 45 { - enum TempUnitEnum : ENUM8 { + enum TempUnitEnum : enum8 { kFahrenheit = 0; kCelsius = 1; kKelvin = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTemperatureUnit = 0x1; } @@ -319,7 +319,7 @@ server cluster UnitLocalization = 45 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -327,7 +327,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -383,7 +383,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -399,7 +399,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -408,13 +408,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -523,7 +523,7 @@ server cluster NetworkCommissioning = 49 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -533,7 +533,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -547,7 +547,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -555,14 +555,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -628,19 +628,19 @@ server cluster GeneralDiagnostics = 51 { /** The Wi-Fi Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster WiFiNetworkDiagnostics = 54 { - enum AssociationFailureCauseEnum : ENUM8 { + enum AssociationFailureCauseEnum : enum8 { kUnknown = 0; kAssociationFailed = 1; kAuthenticationFailed = 2; kSsidNotFound = 3; } - enum ConnectionStatusEnum : ENUM8 { + enum ConnectionStatusEnum : enum8 { kConnected = 0; kNotConnected = 1; } - enum SecurityTypeEnum : ENUM8 { + enum SecurityTypeEnum : enum8 { kUnspecified = 0; kNone = 1; kWEP = 2; @@ -649,7 +649,7 @@ server cluster WiFiNetworkDiagnostics = 54 { kWPA3 = 5; } - enum WiFiVersionEnum : ENUM8 { + enum WiFiVersionEnum : enum8 { kA = 0; kB = 1; kG = 2; @@ -659,7 +659,7 @@ server cluster WiFiNetworkDiagnostics = 54 { kAh = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; } @@ -702,13 +702,13 @@ server cluster WiFiNetworkDiagnostics = 54 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -743,12 +743,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -859,12 +859,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -931,14 +931,14 @@ server cluster GroupKeyManagement = 63 { /** This cluster supports remotely monitoring and, where supported, changing the operational state of any device where a state machine is a part of the operation. */ server cluster OperationalState = 96 { - enum ErrorStateEnum : ENUM8 { + enum ErrorStateEnum : enum8 { kNoError = 0; kUnableToStartOrResume = 1; kUnableToCompleteOperation = 2; kCommandInvalidInState = 3; } - enum OperationalStateEnum : ENUM8 { + enum OperationalStateEnum : enum8 { kStopped = 0; kRunning = 1; kPaused = 2; diff --git a/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter b/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter index c0d5c38342488d..34aae974d8680f 100644 --- a/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter +++ b/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -43,11 +43,11 @@ server cluster Identify = 3 { /** Attributes and commands for group configuration and manipulation. */ server cluster Groups = 4 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kGroupNames = 0x1; } - bitmap NameSupportBitmap : BITMAP8 { + bitmap NameSupportBitmap : bitmap8 { kGroupNames = 0x80; } @@ -112,7 +112,7 @@ server cluster Groups = 4 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -164,13 +164,13 @@ client cluster Binding = 30 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -178,7 +178,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -236,7 +236,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -260,7 +260,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -323,20 +323,20 @@ server cluster BasicInformation = 40 { /** Provides an interface for providing OTA software updates */ client cluster OtaSoftwareUpdateProvider = 41 { - enum ApplyUpdateActionEnum : ENUM8 { + enum ApplyUpdateActionEnum : enum8 { kProceed = 0; kAwaitNextAction = 1; kDiscontinue = 2; } - enum DownloadProtocolEnum : ENUM8 { + enum DownloadProtocolEnum : enum8 { kBDXSynchronous = 0; kBDXAsynchronous = 1; kHTTPS = 2; kVendorSpecific = 3; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kUpdateAvailable = 0; kBusy = 1; kNotAvailable = 2; @@ -397,13 +397,13 @@ client cluster OtaSoftwareUpdateProvider = 41 { /** Provides an interface for downloading and applying OTA software updates */ server cluster OtaSoftwareUpdateRequestor = 42 { - enum AnnouncementReasonEnum : ENUM8 { + enum AnnouncementReasonEnum : enum8 { kSimpleAnnouncement = 0; kUpdateAvailable = 1; kUrgentUpdateAvailable = 2; } - enum ChangeReasonEnum : ENUM8 { + enum ChangeReasonEnum : enum8 { kUnknown = 0; kSuccess = 1; kFailure = 2; @@ -411,7 +411,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { kDelayByProvider = 4; } - enum UpdateStateEnum : ENUM8 { + enum UpdateStateEnum : enum8 { kUnknown = 0; kIdle = 1; kQuerying = 2; @@ -490,7 +490,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -505,12 +505,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -527,7 +527,7 @@ server cluster TimeFormatLocalization = 44 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -535,7 +535,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -591,7 +591,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -607,7 +607,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -616,13 +616,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -731,13 +731,13 @@ server cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -745,7 +745,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -768,7 +768,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -778,7 +778,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -792,7 +792,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -800,14 +800,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -873,7 +873,7 @@ server cluster GeneralDiagnostics = 51 { /** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster SoftwareDiagnostics = 52 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWaterMarks = 0x1; } @@ -907,13 +907,13 @@ server cluster SoftwareDiagnostics = 52 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -948,12 +948,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -1064,12 +1064,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -1153,7 +1153,7 @@ server cluster FixedLabel = 64 { /** An interface to a generic way to secure a door */ server cluster DoorLock = 257 { - enum AlarmCodeEnum : ENUM8 { + enum AlarmCodeEnum : enum8 { kLockJammed = 0; kLockFactoryReset = 1; kLockRadioPowerCycled = 3; @@ -1164,13 +1164,13 @@ server cluster DoorLock = 257 { kForcedUser = 8; } - enum CredentialRuleEnum : ENUM8 { + enum CredentialRuleEnum : enum8 { kSingle = 0; kDual = 1; kTri = 2; } - enum CredentialTypeEnum : ENUM8 { + enum CredentialTypeEnum : enum8 { kProgrammingPIN = 0; kPIN = 1; kRFID = 2; @@ -1179,20 +1179,20 @@ server cluster DoorLock = 257 { kFace = 5; } - enum DataOperationTypeEnum : ENUM8 { + enum DataOperationTypeEnum : enum8 { kAdd = 0; kClear = 1; kModify = 2; } - enum DlLockState : ENUM8 { + enum DlLockState : enum8 { kNotFullyLocked = 0; kLocked = 1; kUnlocked = 2; kUnlatched = 3; } - enum DlLockType : ENUM8 { + enum DlLockType : enum8 { kDeadBolt = 0; kMagnetic = 1; kOther = 2; @@ -1207,7 +1207,7 @@ server cluster DoorLock = 257 { kEurocylinder = 11; } - enum DlStatus : ENUM8 { + enum DlStatus : enum8 { kSuccess = 0; kFailure = 1; kDuplicate = 2; @@ -1217,7 +1217,7 @@ server cluster DoorLock = 257 { kNotFound = 139; } - enum DoorLockOperationEventCode : ENUM8 { + enum DoorLockOperationEventCode : enum8 { kUnknownOrMfgSpecific = 0; kLock = 1; kUnlock = 2; @@ -1235,7 +1235,7 @@ server cluster DoorLock = 257 { kManualUnlock = 14; } - enum DoorLockProgrammingEventCode : ENUM8 { + enum DoorLockProgrammingEventCode : enum8 { kUnknownOrMfgSpecific = 0; kMasterCodeChanged = 1; kPinAdded = 2; @@ -1245,21 +1245,21 @@ server cluster DoorLock = 257 { kIdDeleted = 6; } - enum DoorLockSetPinOrIdStatus : ENUM8 { + enum DoorLockSetPinOrIdStatus : enum8 { kSuccess = 0; kGeneralFailure = 1; kMemoryFull = 2; kDuplicateCodeError = 3; } - enum DoorLockUserStatus : ENUM8 { + enum DoorLockUserStatus : enum8 { kAvailable = 0; kOccupiedEnabled = 1; kOccupiedDisabled = 3; kNotSupported = 255; } - enum DoorLockUserType : ENUM8 { + enum DoorLockUserType : enum8 { kUnrestricted = 0; kYearDayScheduleUser = 1; kWeekDayScheduleUser = 2; @@ -1268,7 +1268,7 @@ server cluster DoorLock = 257 { kNotSupported = 255; } - enum DoorStateEnum : ENUM8 { + enum DoorStateEnum : enum8 { kDoorOpen = 0; kDoorClosed = 1; kDoorJammed = 2; @@ -1277,7 +1277,7 @@ server cluster DoorLock = 257 { kDoorAjar = 5; } - enum LockDataTypeEnum : ENUM8 { + enum LockDataTypeEnum : enum8 { kUnspecified = 0; kProgrammingCode = 1; kUserIndex = 2; @@ -1291,7 +1291,7 @@ server cluster DoorLock = 257 { kFace = 10; } - enum LockOperationTypeEnum : ENUM8 { + enum LockOperationTypeEnum : enum8 { kLock = 0; kUnlock = 1; kNonAccessUserEvent = 2; @@ -1299,7 +1299,7 @@ server cluster DoorLock = 257 { kUnlatch = 4; } - enum OperatingModeEnum : ENUM8 { + enum OperatingModeEnum : enum8 { kNormal = 0; kVacation = 1; kPrivacy = 2; @@ -1307,7 +1307,7 @@ server cluster DoorLock = 257 { kPassage = 4; } - enum OperationErrorEnum : ENUM8 { + enum OperationErrorEnum : enum8 { kUnspecified = 0; kInvalidCredential = 1; kDisabledUserDenied = 2; @@ -1315,7 +1315,7 @@ server cluster DoorLock = 257 { kInsufficientBattery = 4; } - enum OperationSourceEnum : ENUM8 { + enum OperationSourceEnum : enum8 { kUnspecified = 0; kManual = 1; kProprietaryRemote = 2; @@ -1328,13 +1328,13 @@ server cluster DoorLock = 257 { kBiometric = 9; } - enum UserStatusEnum : ENUM8 { + enum UserStatusEnum : enum8 { kAvailable = 0; kOccupiedEnabled = 1; kOccupiedDisabled = 3; } - enum UserTypeEnum : ENUM8 { + enum UserTypeEnum : enum8 { kUnrestrictedUser = 0; kYearDayScheduleUser = 1; kWeekDayScheduleUser = 2; @@ -1347,7 +1347,7 @@ server cluster DoorLock = 257 { kRemoteOnlyUser = 9; } - bitmap DaysMaskMap : BITMAP8 { + bitmap DaysMaskMap : bitmap8 { kSunday = 0x1; kMonday = 0x2; kTuesday = 0x4; @@ -1357,19 +1357,19 @@ server cluster DoorLock = 257 { kSaturday = 0x40; } - bitmap DlCredentialRuleMask : BITMAP8 { + bitmap DlCredentialRuleMask : bitmap8 { kSingle = 0x1; kDual = 0x2; kTri = 0x4; } - bitmap DlCredentialRulesSupport : BITMAP8 { + bitmap DlCredentialRulesSupport : bitmap8 { kSingle = 0x1; kDual = 0x2; kTri = 0x4; } - bitmap DlDefaultConfigurationRegister : BITMAP16 { + bitmap DlDefaultConfigurationRegister : bitmap16 { kEnableLocalProgrammingEnabled = 0x1; kKeypadInterfaceDefaultAccessEnabled = 0x2; kRemoteInterfaceDefaultAccessIsEnabled = 0x4; @@ -1378,7 +1378,7 @@ server cluster DoorLock = 257 { kLEDSettingsSet = 0x80; } - bitmap DlKeypadOperationEventMask : BITMAP16 { + bitmap DlKeypadOperationEventMask : bitmap16 { kUnknown = 0x1; kLock = 0x2; kUnlock = 0x4; @@ -1389,7 +1389,7 @@ server cluster DoorLock = 257 { kNonAccessUserOpEvent = 0x80; } - bitmap DlKeypadProgrammingEventMask : BITMAP16 { + bitmap DlKeypadProgrammingEventMask : bitmap16 { kUnknown = 0x1; kProgrammingPINChanged = 0x2; kPINAdded = 0x4; @@ -1397,14 +1397,14 @@ server cluster DoorLock = 257 { kPINChanged = 0x10; } - bitmap DlLocalProgrammingFeatures : BITMAP8 { + bitmap DlLocalProgrammingFeatures : bitmap8 { kAddUsersCredentialsSchedulesLocally = 0x1; kModifyUsersCredentialsSchedulesLocally = 0x2; kClearUsersCredentialsSchedulesLocally = 0x4; kAdjustLockSettingsLocally = 0x8; } - bitmap DlManualOperationEventMask : BITMAP16 { + bitmap DlManualOperationEventMask : bitmap16 { kUnknown = 0x1; kThumbturnLock = 0x2; kThumbturnUnlock = 0x4; @@ -1418,7 +1418,7 @@ server cluster DoorLock = 257 { kManualUnlock = 0x400; } - bitmap DlRFIDOperationEventMask : BITMAP16 { + bitmap DlRFIDOperationEventMask : bitmap16 { kUnknown = 0x1; kLock = 0x2; kUnlock = 0x4; @@ -1428,13 +1428,13 @@ server cluster DoorLock = 257 { kUnlockInvalidSchedule = 0x40; } - bitmap DlRFIDProgrammingEventMask : BITMAP16 { + bitmap DlRFIDProgrammingEventMask : bitmap16 { kUnknown = 0x1; kRFIDCodeAdded = 0x20; kRFIDCodeCleared = 0x40; } - bitmap DlRemoteOperationEventMask : BITMAP16 { + bitmap DlRemoteOperationEventMask : bitmap16 { kUnknown = 0x1; kLock = 0x2; kUnlock = 0x4; @@ -1444,7 +1444,7 @@ server cluster DoorLock = 257 { kUnlockInvalidSchedule = 0x40; } - bitmap DlRemoteProgrammingEventMask : BITMAP16 { + bitmap DlRemoteProgrammingEventMask : bitmap16 { kUnknown = 0x1; kProgrammingPINChanged = 0x2; kPINAdded = 0x4; @@ -1454,7 +1454,7 @@ server cluster DoorLock = 257 { kRFIDCodeCleared = 0x40; } - bitmap DlSupportedOperatingModes : BITMAP16 { + bitmap DlSupportedOperatingModes : bitmap16 { kNormal = 0x1; kVacation = 0x2; kPrivacy = 0x4; @@ -1462,7 +1462,7 @@ server cluster DoorLock = 257 { kPassage = 0x10; } - bitmap DoorLockDayOfWeek : BITMAP8 { + bitmap DoorLockDayOfWeek : bitmap8 { kSunday = 0x1; kMonday = 0x2; kTuesday = 0x4; @@ -1472,7 +1472,7 @@ server cluster DoorLock = 257 { kSaturday = 0x40; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPINCredential = 0x1; kRFIDCredential = 0x2; kFingerCredentials = 0x4; diff --git a/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter b/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter index 49523746c44796..0bbd46559813a6 100644 --- a/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter +++ b/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -43,11 +43,11 @@ server cluster Identify = 3 { /** Attributes and commands for group configuration and manipulation. */ server cluster Groups = 4 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kGroupNames = 0x1; } - bitmap NameSupportBitmap : BITMAP8 { + bitmap NameSupportBitmap : bitmap8 { kGroupNames = 0x80; } @@ -112,33 +112,33 @@ server cluster Groups = 4 { /** Attributes and commands for switching devices between 'On' and 'Off' states. */ server cluster OnOff = 6 { - enum DelayedAllOffEffectVariantEnum : ENUM8 { + enum DelayedAllOffEffectVariantEnum : enum8 { kDelayedOffFastFade = 0; kNoFade = 1; kDelayedOffSlowFade = 2; } - enum DyingLightEffectVariantEnum : ENUM8 { + enum DyingLightEffectVariantEnum : enum8 { kDyingLightFadeOff = 0; } - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kDelayedAllOff = 0; kDyingLight = 1; } - enum StartUpOnOffEnum : ENUM8 { + enum StartUpOnOffEnum : enum8 { kOff = 0; kOn = 1; kToggle = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kLighting = 0x1; kDeadFrontBehavior = 0x2; } - bitmap OnOffControlBitmap : BITMAP8 { + bitmap OnOffControlBitmap : bitmap8 { kAcceptOnlyWhenOn = 0x1; } @@ -161,23 +161,23 @@ server cluster OnOff = 6 { /** Attributes and commands for controlling devices that can be set to a level between fully 'On' and fully 'Off.' */ server cluster LevelControl = 8 { - enum MoveMode : ENUM8 { + enum MoveMode : enum8 { kUp = 0; kDown = 1; } - enum StepMode : ENUM8 { + enum StepMode : enum8 { kUp = 0; kDown = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kOnOff = 0x1; kLighting = 0x2; kFrequency = 0x4; } - bitmap LevelControlOptions : BITMAP8 { + bitmap LevelControlOptions : bitmap8 { kExecuteIfOff = 0x1; kCoupleColorTempToLevel = 0x2; } @@ -262,7 +262,7 @@ server cluster LevelControl = 8 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -314,13 +314,13 @@ client cluster Binding = 30 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -328,7 +328,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -386,7 +386,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -410,7 +410,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -473,20 +473,20 @@ server cluster BasicInformation = 40 { /** Provides an interface for providing OTA software updates */ client cluster OtaSoftwareUpdateProvider = 41 { - enum ApplyUpdateActionEnum : ENUM8 { + enum ApplyUpdateActionEnum : enum8 { kProceed = 0; kAwaitNextAction = 1; kDiscontinue = 2; } - enum DownloadProtocolEnum : ENUM8 { + enum DownloadProtocolEnum : enum8 { kBDXSynchronous = 0; kBDXAsynchronous = 1; kHTTPS = 2; kVendorSpecific = 3; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kUpdateAvailable = 0; kBusy = 1; kNotAvailable = 2; @@ -547,13 +547,13 @@ client cluster OtaSoftwareUpdateProvider = 41 { /** Provides an interface for downloading and applying OTA software updates */ server cluster OtaSoftwareUpdateRequestor = 42 { - enum AnnouncementReasonEnum : ENUM8 { + enum AnnouncementReasonEnum : enum8 { kSimpleAnnouncement = 0; kUpdateAvailable = 1; kUrgentUpdateAvailable = 2; } - enum ChangeReasonEnum : ENUM8 { + enum ChangeReasonEnum : enum8 { kUnknown = 0; kSuccess = 1; kFailure = 2; @@ -561,7 +561,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { kDelayByProvider = 4; } - enum UpdateStateEnum : ENUM8 { + enum UpdateStateEnum : enum8 { kUnknown = 0; kIdle = 1; kQuerying = 2; @@ -640,7 +640,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -655,12 +655,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -677,7 +677,7 @@ server cluster TimeFormatLocalization = 44 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -685,7 +685,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -741,7 +741,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -757,7 +757,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -766,13 +766,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -881,13 +881,13 @@ server cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -895,7 +895,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -918,7 +918,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -928,7 +928,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -942,7 +942,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -950,14 +950,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -1023,7 +1023,7 @@ server cluster GeneralDiagnostics = 51 { /** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster SoftwareDiagnostics = 52 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWaterMarks = 0x1; } @@ -1057,13 +1057,13 @@ server cluster SoftwareDiagnostics = 52 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -1098,12 +1098,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -1214,12 +1214,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -1303,53 +1303,53 @@ server cluster FixedLabel = 64 { /** Attributes and commands for controlling the color properties of a color-capable light. */ server cluster ColorControl = 768 { - enum ColorLoopAction : ENUM8 { + enum ColorLoopAction : enum8 { kDeactivate = 0; kActivateFromColorLoopStartEnhancedHue = 1; kActivateFromEnhancedCurrentHue = 2; } - enum ColorLoopDirection : ENUM8 { + enum ColorLoopDirection : enum8 { kDecrementHue = 0; kIncrementHue = 1; } - enum ColorMode : ENUM8 { + enum ColorMode : enum8 { kCurrentHueAndCurrentSaturation = 0; kCurrentXAndCurrentY = 1; kColorTemperature = 2; } - enum HueDirection : ENUM8 { + enum HueDirection : enum8 { kShortestDistance = 0; kLongestDistance = 1; kUp = 2; kDown = 3; } - enum HueMoveMode : ENUM8 { + enum HueMoveMode : enum8 { kStop = 0; kUp = 1; kDown = 3; } - enum HueStepMode : ENUM8 { + enum HueStepMode : enum8 { kUp = 1; kDown = 3; } - enum SaturationMoveMode : ENUM8 { + enum SaturationMoveMode : enum8 { kStop = 0; kUp = 1; kDown = 3; } - enum SaturationStepMode : ENUM8 { + enum SaturationStepMode : enum8 { kUp = 1; kDown = 3; } - bitmap ColorCapabilities : BITMAP16 { + bitmap ColorCapabilities : bitmap16 { kHueSaturationSupported = 0x1; kEnhancedHueSupported = 0x2; kColorLoopSupported = 0x4; @@ -1357,14 +1357,14 @@ server cluster ColorControl = 768 { kColorTemperatureSupported = 0x10; } - bitmap ColorLoopUpdateFlags : BITMAP8 { + bitmap ColorLoopUpdateFlags : bitmap8 { kUpdateAction = 0x1; kUpdateDirection = 0x2; kUpdateTime = 0x4; kUpdateStartHue = 0x8; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kHueAndSaturation = 0x1; kEnhancedHue = 0x2; kColorLoop = 0x4; diff --git a/examples/chef/devices/rootnode_fan_7N2TobIlOX.matter b/examples/chef/devices/rootnode_fan_7N2TobIlOX.matter index 9367e36ea00e89..6328a9d11b3dec 100644 --- a/examples/chef/devices/rootnode_fan_7N2TobIlOX.matter +++ b/examples/chef/devices/rootnode_fan_7N2TobIlOX.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -49,11 +49,11 @@ server cluster Identify = 3 { /** Attributes and commands for group configuration and manipulation. */ server cluster Groups = 4 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kGroupNames = 0x1; } - bitmap NameSupportBitmap : BITMAP8 { + bitmap NameSupportBitmap : bitmap8 { kGroupNames = 0x80; } @@ -118,7 +118,7 @@ server cluster Groups = 4 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -151,13 +151,13 @@ server cluster Descriptor = 29 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -165,7 +165,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -223,7 +223,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -247,7 +247,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -310,20 +310,20 @@ server cluster BasicInformation = 40 { /** Provides an interface for providing OTA software updates */ client cluster OtaSoftwareUpdateProvider = 41 { - enum ApplyUpdateActionEnum : ENUM8 { + enum ApplyUpdateActionEnum : enum8 { kProceed = 0; kAwaitNextAction = 1; kDiscontinue = 2; } - enum DownloadProtocolEnum : ENUM8 { + enum DownloadProtocolEnum : enum8 { kBDXSynchronous = 0; kBDXAsynchronous = 1; kHTTPS = 2; kVendorSpecific = 3; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kUpdateAvailable = 0; kBusy = 1; kNotAvailable = 2; @@ -384,13 +384,13 @@ client cluster OtaSoftwareUpdateProvider = 41 { /** Provides an interface for downloading and applying OTA software updates */ server cluster OtaSoftwareUpdateRequestor = 42 { - enum AnnouncementReasonEnum : ENUM8 { + enum AnnouncementReasonEnum : enum8 { kSimpleAnnouncement = 0; kUpdateAvailable = 1; kUrgentUpdateAvailable = 2; } - enum ChangeReasonEnum : ENUM8 { + enum ChangeReasonEnum : enum8 { kUnknown = 0; kSuccess = 1; kFailure = 2; @@ -398,7 +398,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { kDelayByProvider = 4; } - enum UpdateStateEnum : ENUM8 { + enum UpdateStateEnum : enum8 { kUnknown = 0; kIdle = 1; kQuerying = 2; @@ -477,7 +477,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -492,12 +492,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -514,7 +514,7 @@ server cluster TimeFormatLocalization = 44 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -522,7 +522,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -578,7 +578,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -594,7 +594,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -603,13 +603,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -718,13 +718,13 @@ server cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -732,7 +732,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -755,7 +755,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -765,7 +765,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -779,7 +779,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -787,14 +787,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -860,7 +860,7 @@ server cluster GeneralDiagnostics = 51 { /** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster SoftwareDiagnostics = 52 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWaterMarks = 0x1; } @@ -894,13 +894,13 @@ server cluster SoftwareDiagnostics = 52 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -935,12 +935,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -1051,12 +1051,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -1139,13 +1139,13 @@ server cluster FixedLabel = 64 { } /** An interface for controlling a fan in a heating/cooling system. */ -server cluster FanControl = 514 { - enum AirflowDirectionEnum : ENUM8 { +provisional server cluster FanControl = 514 { + enum AirflowDirectionEnum : enum8 { kForward = 0; kReverse = 1; } - enum FanModeEnum : ENUM8 { + enum FanModeEnum : enum8 { kOff = 0; kLow = 1; kMedium = 2; @@ -1155,7 +1155,7 @@ server cluster FanControl = 514 { kSmart = 6; } - enum FanModeSequenceEnum : ENUM8 { + enum FanModeSequenceEnum : enum8 { kOffLowMedHigh = 0; kOffLowHigh = 1; kOffLowMedHighAuto = 2; @@ -1164,12 +1164,12 @@ server cluster FanControl = 514 { kOffOn = 5; } - enum StepDirectionEnum : ENUM8 { + enum StepDirectionEnum : enum8 { kIncrease = 0; kDecrease = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kMultiSpeed = 0x1; kAuto = 0x2; kRocking = 0x4; @@ -1178,13 +1178,13 @@ server cluster FanControl = 514 { kAirflowDirection = 0x20; } - bitmap RockBitmap : BITMAP8 { + bitmap RockBitmap : bitmap8 { kRockLeftRight = 0x1; kRockUpDown = 0x2; kRockRound = 0x4; } - bitmap WindBitmap : BITMAP8 { + bitmap WindBitmap : bitmap8 { kSleepWind = 0x1; kNaturalWind = 0x2; } diff --git a/examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.matter b/examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.matter index 4355a693b2445e..1d76400bec6412 100644 --- a/examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.matter +++ b/examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -43,11 +43,11 @@ server cluster Identify = 3 { /** Attributes and commands for group configuration and manipulation. */ client cluster Groups = 4 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kGroupNames = 0x1; } - bitmap NameSupportBitmap : BITMAP8 { + bitmap NameSupportBitmap : bitmap8 { kGroupNames = 0x80; } @@ -118,7 +118,7 @@ client cluster Groups = 4 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -170,13 +170,13 @@ client cluster Binding = 30 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -184,7 +184,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -242,7 +242,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -266,7 +266,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -329,20 +329,20 @@ server cluster BasicInformation = 40 { /** Provides an interface for providing OTA software updates */ client cluster OtaSoftwareUpdateProvider = 41 { - enum ApplyUpdateActionEnum : ENUM8 { + enum ApplyUpdateActionEnum : enum8 { kProceed = 0; kAwaitNextAction = 1; kDiscontinue = 2; } - enum DownloadProtocolEnum : ENUM8 { + enum DownloadProtocolEnum : enum8 { kBDXSynchronous = 0; kBDXAsynchronous = 1; kHTTPS = 2; kVendorSpecific = 3; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kUpdateAvailable = 0; kBusy = 1; kNotAvailable = 2; @@ -403,13 +403,13 @@ client cluster OtaSoftwareUpdateProvider = 41 { /** Provides an interface for downloading and applying OTA software updates */ server cluster OtaSoftwareUpdateRequestor = 42 { - enum AnnouncementReasonEnum : ENUM8 { + enum AnnouncementReasonEnum : enum8 { kSimpleAnnouncement = 0; kUpdateAvailable = 1; kUrgentUpdateAvailable = 2; } - enum ChangeReasonEnum : ENUM8 { + enum ChangeReasonEnum : enum8 { kUnknown = 0; kSuccess = 1; kFailure = 2; @@ -417,7 +417,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { kDelayByProvider = 4; } - enum UpdateStateEnum : ENUM8 { + enum UpdateStateEnum : enum8 { kUnknown = 0; kIdle = 1; kQuerying = 2; @@ -496,7 +496,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -511,12 +511,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -533,7 +533,7 @@ server cluster TimeFormatLocalization = 44 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -541,7 +541,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -597,7 +597,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -613,7 +613,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -622,13 +622,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -737,13 +737,13 @@ server cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -751,7 +751,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -774,7 +774,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -784,7 +784,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -798,7 +798,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -806,14 +806,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -879,7 +879,7 @@ server cluster GeneralDiagnostics = 51 { /** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster SoftwareDiagnostics = 52 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWaterMarks = 0x1; } @@ -913,13 +913,13 @@ server cluster SoftwareDiagnostics = 52 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -954,12 +954,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -1070,12 +1070,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } diff --git a/examples/chef/devices/rootnode_genericswitch_9866e35d0b.matter b/examples/chef/devices/rootnode_genericswitch_9866e35d0b.matter index edf34ad242a2da..05ed94e5c1d4c3 100644 --- a/examples/chef/devices/rootnode_genericswitch_9866e35d0b.matter +++ b/examples/chef/devices/rootnode_genericswitch_9866e35d0b.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -49,7 +49,7 @@ server cluster Identify = 3 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -82,13 +82,13 @@ server cluster Descriptor = 29 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -96,7 +96,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -154,7 +154,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -178,7 +178,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -241,7 +241,7 @@ server cluster BasicInformation = 40 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -249,7 +249,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -305,7 +305,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -321,7 +321,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -330,13 +330,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -445,13 +445,13 @@ server cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -459,7 +459,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -482,7 +482,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -492,7 +492,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -506,7 +506,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -514,14 +514,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -589,7 +589,7 @@ server cluster GeneralDiagnostics = 51 { Two types of switch devices are supported: latching switch (e.g. rocker switch) and momentary switch (e.g. push button), distinguished with their feature flags. Interactions with the switch device are exposed as attributes (for the latching switch) and as events (for both types of switches). An interested party MAY subscribe to these attributes/events and thus be informed of the interactions, and can perform actions based on this, for example by sending commands to perform an action such as controlling a light or a window shade. */ server cluster Switch = 59 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kLatchingSwitch = 0x1; kMomentarySwitch = 0x2; kMomentarySwitchRelease = 0x4; @@ -639,13 +639,13 @@ server cluster Switch = 59 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -680,12 +680,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -796,12 +796,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } diff --git a/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter b/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter index e4aa78bbd25bdf..a767ffd8f2d60f 100644 --- a/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter +++ b/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -43,11 +43,11 @@ server cluster Identify = 3 { /** Attributes and commands for group configuration and manipulation. */ server cluster Groups = 4 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kGroupNames = 0x1; } - bitmap NameSupportBitmap : BITMAP8 { + bitmap NameSupportBitmap : bitmap8 { kGroupNames = 0x80; } @@ -112,33 +112,33 @@ server cluster Groups = 4 { /** Attributes and commands for switching devices between 'On' and 'Off' states. */ server cluster OnOff = 6 { - enum DelayedAllOffEffectVariantEnum : ENUM8 { + enum DelayedAllOffEffectVariantEnum : enum8 { kDelayedOffFastFade = 0; kNoFade = 1; kDelayedOffSlowFade = 2; } - enum DyingLightEffectVariantEnum : ENUM8 { + enum DyingLightEffectVariantEnum : enum8 { kDyingLightFadeOff = 0; } - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kDelayedAllOff = 0; kDyingLight = 1; } - enum StartUpOnOffEnum : ENUM8 { + enum StartUpOnOffEnum : enum8 { kOff = 0; kOn = 1; kToggle = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kLighting = 0x1; kDeadFrontBehavior = 0x2; } - bitmap OnOffControlBitmap : BITMAP8 { + bitmap OnOffControlBitmap : bitmap8 { kAcceptOnlyWhenOn = 0x1; } @@ -157,23 +157,23 @@ server cluster OnOff = 6 { /** Attributes and commands for controlling devices that can be set to a level between fully 'On' and fully 'Off.' */ server cluster LevelControl = 8 { - enum MoveMode : ENUM8 { + enum MoveMode : enum8 { kUp = 0; kDown = 1; } - enum StepMode : ENUM8 { + enum StepMode : enum8 { kUp = 0; kDown = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kOnOff = 0x1; kLighting = 0x2; kFrequency = 0x4; } - bitmap LevelControlOptions : BITMAP8 { + bitmap LevelControlOptions : bitmap8 { kExecuteIfOff = 0x1; kCoupleColorTempToLevel = 0x2; } @@ -256,7 +256,7 @@ server cluster LevelControl = 8 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -308,13 +308,13 @@ client cluster Binding = 30 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -322,7 +322,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -380,7 +380,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -404,7 +404,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -467,20 +467,20 @@ server cluster BasicInformation = 40 { /** Provides an interface for providing OTA software updates */ client cluster OtaSoftwareUpdateProvider = 41 { - enum ApplyUpdateActionEnum : ENUM8 { + enum ApplyUpdateActionEnum : enum8 { kProceed = 0; kAwaitNextAction = 1; kDiscontinue = 2; } - enum DownloadProtocolEnum : ENUM8 { + enum DownloadProtocolEnum : enum8 { kBDXSynchronous = 0; kBDXAsynchronous = 1; kHTTPS = 2; kVendorSpecific = 3; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kUpdateAvailable = 0; kBusy = 1; kNotAvailable = 2; @@ -541,13 +541,13 @@ client cluster OtaSoftwareUpdateProvider = 41 { /** Provides an interface for downloading and applying OTA software updates */ server cluster OtaSoftwareUpdateRequestor = 42 { - enum AnnouncementReasonEnum : ENUM8 { + enum AnnouncementReasonEnum : enum8 { kSimpleAnnouncement = 0; kUpdateAvailable = 1; kUrgentUpdateAvailable = 2; } - enum ChangeReasonEnum : ENUM8 { + enum ChangeReasonEnum : enum8 { kUnknown = 0; kSuccess = 1; kFailure = 2; @@ -555,7 +555,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { kDelayByProvider = 4; } - enum UpdateStateEnum : ENUM8 { + enum UpdateStateEnum : enum8 { kUnknown = 0; kIdle = 1; kQuerying = 2; @@ -634,7 +634,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -649,12 +649,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -671,7 +671,7 @@ server cluster TimeFormatLocalization = 44 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -679,7 +679,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -735,7 +735,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -751,7 +751,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -760,13 +760,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -875,13 +875,13 @@ server cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -889,7 +889,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -912,7 +912,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -922,7 +922,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -936,7 +936,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -944,14 +944,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -1017,7 +1017,7 @@ server cluster GeneralDiagnostics = 51 { /** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster SoftwareDiagnostics = 52 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWaterMarks = 0x1; } @@ -1051,13 +1051,13 @@ server cluster SoftwareDiagnostics = 52 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -1092,12 +1092,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -1208,12 +1208,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -1297,13 +1297,13 @@ server cluster FixedLabel = 64 { /** An interface for configuring and controlling the functionality of a thermostat. */ client cluster Thermostat = 513 { - enum SetpointAdjustMode : ENUM8 { + enum SetpointAdjustMode : enum8 { kHeat = 0; kCool = 1; kBoth = 2; } - enum ThermostatControlSequence : ENUM8 { + enum ThermostatControlSequence : enum8 { kCoolingOnly = 0; kCoolingWithReheat = 1; kHeatingOnly = 2; @@ -1312,13 +1312,13 @@ client cluster Thermostat = 513 { kCoolingAndHeatingWithReheat = 5; } - enum ThermostatRunningMode : ENUM8 { + enum ThermostatRunningMode : enum8 { kOff = 0; kCool = 3; kHeat = 4; } - enum ThermostatSystemMode : ENUM8 { + enum ThermostatSystemMode : enum8 { kOff = 0; kAuto = 1; kCool = 3; @@ -1330,7 +1330,7 @@ client cluster Thermostat = 513 { kSleep = 9; } - bitmap DayOfWeek : BITMAP8 { + bitmap DayOfWeek : bitmap8 { kSunday = 0x1; kMonday = 0x2; kTuesday = 0x4; @@ -1341,7 +1341,7 @@ client cluster Thermostat = 513 { kAway = 0x80; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kHeating = 0x1; kCooling = 0x2; kOccupancy = 0x4; @@ -1351,7 +1351,7 @@ client cluster Thermostat = 513 { kLocalTemperatureNotExposed = 0x40; } - bitmap ModeForSequence : BITMAP8 { + bitmap ModeForSequence : bitmap8 { kHeatSetpointPresent = 0x1; kCoolSetpointPresent = 0x2; } @@ -1453,13 +1453,13 @@ client cluster Thermostat = 513 { } /** An interface for controlling a fan in a heating/cooling system. */ -server cluster FanControl = 514 { - enum AirflowDirectionEnum : ENUM8 { +provisional server cluster FanControl = 514 { + enum AirflowDirectionEnum : enum8 { kForward = 0; kReverse = 1; } - enum FanModeEnum : ENUM8 { + enum FanModeEnum : enum8 { kOff = 0; kLow = 1; kMedium = 2; @@ -1469,7 +1469,7 @@ server cluster FanControl = 514 { kSmart = 6; } - enum FanModeSequenceEnum : ENUM8 { + enum FanModeSequenceEnum : enum8 { kOffLowMedHigh = 0; kOffLowHigh = 1; kOffLowMedHighAuto = 2; @@ -1478,12 +1478,12 @@ server cluster FanControl = 514 { kOffOn = 5; } - enum StepDirectionEnum : ENUM8 { + enum StepDirectionEnum : enum8 { kIncrease = 0; kDecrease = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kMultiSpeed = 0x1; kAuto = 0x2; kRocking = 0x4; @@ -1492,13 +1492,13 @@ server cluster FanControl = 514 { kAirflowDirection = 0x20; } - bitmap RockBitmap : BITMAP8 { + bitmap RockBitmap : bitmap8 { kRockLeftRight = 0x1; kRockUpDown = 0x2; kRockRound = 0x4; } - bitmap WindBitmap : BITMAP8 { + bitmap WindBitmap : bitmap8 { kSleepWind = 0x1; kNaturalWind = 0x2; } diff --git a/examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.matter b/examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.matter index 2fddc929581459..bc3a828b383f8a 100644 --- a/examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.matter +++ b/examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -43,11 +43,11 @@ server cluster Identify = 3 { /** Attributes and commands for group configuration and manipulation. */ client cluster Groups = 4 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kGroupNames = 0x1; } - bitmap NameSupportBitmap : BITMAP8 { + bitmap NameSupportBitmap : bitmap8 { kGroupNames = 0x80; } @@ -118,7 +118,7 @@ client cluster Groups = 4 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -170,13 +170,13 @@ client cluster Binding = 30 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -184,7 +184,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -242,7 +242,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -266,7 +266,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -329,20 +329,20 @@ server cluster BasicInformation = 40 { /** Provides an interface for providing OTA software updates */ client cluster OtaSoftwareUpdateProvider = 41 { - enum ApplyUpdateActionEnum : ENUM8 { + enum ApplyUpdateActionEnum : enum8 { kProceed = 0; kAwaitNextAction = 1; kDiscontinue = 2; } - enum DownloadProtocolEnum : ENUM8 { + enum DownloadProtocolEnum : enum8 { kBDXSynchronous = 0; kBDXAsynchronous = 1; kHTTPS = 2; kVendorSpecific = 3; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kUpdateAvailable = 0; kBusy = 1; kNotAvailable = 2; @@ -403,13 +403,13 @@ client cluster OtaSoftwareUpdateProvider = 41 { /** Provides an interface for downloading and applying OTA software updates */ server cluster OtaSoftwareUpdateRequestor = 42 { - enum AnnouncementReasonEnum : ENUM8 { + enum AnnouncementReasonEnum : enum8 { kSimpleAnnouncement = 0; kUpdateAvailable = 1; kUrgentUpdateAvailable = 2; } - enum ChangeReasonEnum : ENUM8 { + enum ChangeReasonEnum : enum8 { kUnknown = 0; kSuccess = 1; kFailure = 2; @@ -417,7 +417,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { kDelayByProvider = 4; } - enum UpdateStateEnum : ENUM8 { + enum UpdateStateEnum : enum8 { kUnknown = 0; kIdle = 1; kQuerying = 2; @@ -496,7 +496,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -511,12 +511,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -533,7 +533,7 @@ server cluster TimeFormatLocalization = 44 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -541,7 +541,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -597,7 +597,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -613,7 +613,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -622,13 +622,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -737,13 +737,13 @@ server cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -751,7 +751,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -774,7 +774,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -784,7 +784,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -798,7 +798,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -806,14 +806,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -879,7 +879,7 @@ server cluster GeneralDiagnostics = 51 { /** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster SoftwareDiagnostics = 52 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWaterMarks = 0x1; } @@ -913,13 +913,13 @@ server cluster SoftwareDiagnostics = 52 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -954,12 +954,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -1070,12 +1070,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } diff --git a/examples/chef/devices/rootnode_laundrywasher_fb10d238c8.matter b/examples/chef/devices/rootnode_laundrywasher_fb10d238c8.matter index a4a7556ea57b0c..a1830f00647c8e 100644 --- a/examples/chef/devices/rootnode_laundrywasher_fb10d238c8.matter +++ b/examples/chef/devices/rootnode_laundrywasher_fb10d238c8.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -49,7 +49,7 @@ server cluster Identify = 3 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -82,13 +82,13 @@ server cluster Descriptor = 29 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -96,7 +96,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -154,7 +154,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -178,7 +178,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -260,7 +260,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -275,12 +275,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -298,13 +298,13 @@ server cluster TimeFormatLocalization = 44 { user. As such, Nodes that visually or audibly convey measurable values to the user need a mechanism by which they can be configured to use a user’s preferred unit. */ server cluster UnitLocalization = 45 { - enum TempUnitEnum : ENUM8 { + enum TempUnitEnum : enum8 { kFahrenheit = 0; kCelsius = 1; kKelvin = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTemperatureUnit = 0x1; } @@ -319,7 +319,7 @@ server cluster UnitLocalization = 45 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -327,7 +327,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -383,7 +383,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -399,7 +399,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -408,13 +408,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -523,7 +523,7 @@ server cluster NetworkCommissioning = 49 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -533,7 +533,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -547,7 +547,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -555,14 +555,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -628,19 +628,19 @@ server cluster GeneralDiagnostics = 51 { /** The Wi-Fi Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster WiFiNetworkDiagnostics = 54 { - enum AssociationFailureCauseEnum : ENUM8 { + enum AssociationFailureCauseEnum : enum8 { kUnknown = 0; kAssociationFailed = 1; kAuthenticationFailed = 2; kSsidNotFound = 3; } - enum ConnectionStatusEnum : ENUM8 { + enum ConnectionStatusEnum : enum8 { kConnected = 0; kNotConnected = 1; } - enum SecurityTypeEnum : ENUM8 { + enum SecurityTypeEnum : enum8 { kUnspecified = 0; kNone = 1; kWEP = 2; @@ -649,7 +649,7 @@ server cluster WiFiNetworkDiagnostics = 54 { kWPA3 = 5; } - enum WiFiVersionEnum : ENUM8 { + enum WiFiVersionEnum : enum8 { kA = 0; kB = 1; kG = 2; @@ -659,7 +659,7 @@ server cluster WiFiNetworkDiagnostics = 54 { kAh = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; } @@ -702,13 +702,13 @@ server cluster WiFiNetworkDiagnostics = 54 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -743,12 +743,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -859,12 +859,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -931,14 +931,14 @@ server cluster GroupKeyManagement = 63 { /** This cluster supports remotely monitoring and, where supported, changing the operational state of any device where a state machine is a part of the operation. */ server cluster OperationalState = 96 { - enum ErrorStateEnum : ENUM8 { + enum ErrorStateEnum : enum8 { kNoError = 0; kUnableToStartOrResume = 1; kUnableToCompleteOperation = 2; kCommandInvalidInState = 3; } - enum OperationalStateEnum : ENUM8 { + enum OperationalStateEnum : enum8 { kStopped = 0; kRunning = 1; kPaused = 2; diff --git a/examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.matter b/examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.matter index c045f9a0cf3add..3b318f563e146b 100644 --- a/examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.matter +++ b/examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -43,11 +43,11 @@ server cluster Identify = 3 { /** Attributes and commands for group configuration and manipulation. */ client cluster Groups = 4 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kGroupNames = 0x1; } - bitmap NameSupportBitmap : BITMAP8 { + bitmap NameSupportBitmap : bitmap8 { kGroupNames = 0x80; } @@ -118,7 +118,7 @@ client cluster Groups = 4 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -170,13 +170,13 @@ client cluster Binding = 30 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -184,7 +184,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -242,7 +242,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -266,7 +266,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -329,20 +329,20 @@ server cluster BasicInformation = 40 { /** Provides an interface for providing OTA software updates */ client cluster OtaSoftwareUpdateProvider = 41 { - enum ApplyUpdateActionEnum : ENUM8 { + enum ApplyUpdateActionEnum : enum8 { kProceed = 0; kAwaitNextAction = 1; kDiscontinue = 2; } - enum DownloadProtocolEnum : ENUM8 { + enum DownloadProtocolEnum : enum8 { kBDXSynchronous = 0; kBDXAsynchronous = 1; kHTTPS = 2; kVendorSpecific = 3; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kUpdateAvailable = 0; kBusy = 1; kNotAvailable = 2; @@ -403,13 +403,13 @@ client cluster OtaSoftwareUpdateProvider = 41 { /** Provides an interface for downloading and applying OTA software updates */ server cluster OtaSoftwareUpdateRequestor = 42 { - enum AnnouncementReasonEnum : ENUM8 { + enum AnnouncementReasonEnum : enum8 { kSimpleAnnouncement = 0; kUpdateAvailable = 1; kUrgentUpdateAvailable = 2; } - enum ChangeReasonEnum : ENUM8 { + enum ChangeReasonEnum : enum8 { kUnknown = 0; kSuccess = 1; kFailure = 2; @@ -417,7 +417,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { kDelayByProvider = 4; } - enum UpdateStateEnum : ENUM8 { + enum UpdateStateEnum : enum8 { kUnknown = 0; kIdle = 1; kQuerying = 2; @@ -496,7 +496,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -511,12 +511,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -533,7 +533,7 @@ server cluster TimeFormatLocalization = 44 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -541,7 +541,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -597,7 +597,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -613,7 +613,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -622,13 +622,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -737,13 +737,13 @@ server cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -751,7 +751,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -774,7 +774,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -784,7 +784,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -798,7 +798,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -806,14 +806,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -879,7 +879,7 @@ server cluster GeneralDiagnostics = 51 { /** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster SoftwareDiagnostics = 52 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWaterMarks = 0x1; } @@ -913,13 +913,13 @@ server cluster SoftwareDiagnostics = 52 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -954,12 +954,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -1070,12 +1070,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -1159,7 +1159,7 @@ server cluster FixedLabel = 64 { /** Attributes and commands for configuring the measurement of illuminance, and reporting illuminance measurements. */ server cluster IlluminanceMeasurement = 1024 { - enum LightSensorTypeEnum : ENUM8 { + enum LightSensorTypeEnum : enum8 { kPhotodiode = 0; kCMOS = 1; } diff --git a/examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.matter b/examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.matter index 1e3b8a50836415..6b98cce8557b41 100644 --- a/examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.matter +++ b/examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -43,11 +43,11 @@ server cluster Identify = 3 { /** Attributes and commands for group configuration and manipulation. */ client cluster Groups = 4 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kGroupNames = 0x1; } - bitmap NameSupportBitmap : BITMAP8 { + bitmap NameSupportBitmap : bitmap8 { kGroupNames = 0x80; } @@ -118,7 +118,7 @@ client cluster Groups = 4 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -170,13 +170,13 @@ client cluster Binding = 30 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -184,7 +184,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -242,7 +242,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -266,7 +266,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -329,20 +329,20 @@ server cluster BasicInformation = 40 { /** Provides an interface for providing OTA software updates */ client cluster OtaSoftwareUpdateProvider = 41 { - enum ApplyUpdateActionEnum : ENUM8 { + enum ApplyUpdateActionEnum : enum8 { kProceed = 0; kAwaitNextAction = 1; kDiscontinue = 2; } - enum DownloadProtocolEnum : ENUM8 { + enum DownloadProtocolEnum : enum8 { kBDXSynchronous = 0; kBDXAsynchronous = 1; kHTTPS = 2; kVendorSpecific = 3; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kUpdateAvailable = 0; kBusy = 1; kNotAvailable = 2; @@ -403,13 +403,13 @@ client cluster OtaSoftwareUpdateProvider = 41 { /** Provides an interface for downloading and applying OTA software updates */ server cluster OtaSoftwareUpdateRequestor = 42 { - enum AnnouncementReasonEnum : ENUM8 { + enum AnnouncementReasonEnum : enum8 { kSimpleAnnouncement = 0; kUpdateAvailable = 1; kUrgentUpdateAvailable = 2; } - enum ChangeReasonEnum : ENUM8 { + enum ChangeReasonEnum : enum8 { kUnknown = 0; kSuccess = 1; kFailure = 2; @@ -417,7 +417,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { kDelayByProvider = 4; } - enum UpdateStateEnum : ENUM8 { + enum UpdateStateEnum : enum8 { kUnknown = 0; kIdle = 1; kQuerying = 2; @@ -496,7 +496,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -511,12 +511,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -533,7 +533,7 @@ server cluster TimeFormatLocalization = 44 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -541,7 +541,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -597,7 +597,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -613,7 +613,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -622,13 +622,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -737,13 +737,13 @@ server cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -751,7 +751,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -774,7 +774,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -784,7 +784,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -798,7 +798,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -806,14 +806,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -879,7 +879,7 @@ server cluster GeneralDiagnostics = 51 { /** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster SoftwareDiagnostics = 52 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWaterMarks = 0x1; } @@ -913,13 +913,13 @@ server cluster SoftwareDiagnostics = 52 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -954,12 +954,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -1070,12 +1070,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -1159,18 +1159,18 @@ server cluster FixedLabel = 64 { /** Attributes and commands for configuring occupancy sensing, and reporting occupancy status. */ server cluster OccupancySensing = 1030 { - enum OccupancySensorTypeEnum : ENUM8 { + enum OccupancySensorTypeEnum : enum8 { kPIR = 0; kUltrasonic = 1; kPIRAndUltrasonic = 2; kPhysicalContact = 3; } - bitmap OccupancyBitmap : BITMAP8 { + bitmap OccupancyBitmap : bitmap8 { kOccupied = 0x1; } - bitmap OccupancySensorTypeBitmap : BITMAP8 { + bitmap OccupancySensorTypeBitmap : bitmap8 { kPIR = 0x1; kUltrasonic = 0x2; kPhysicalContact = 0x4; diff --git a/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter b/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter index 11dbf7f887a8fc..5a5d04eced1b8a 100644 --- a/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter +++ b/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -43,11 +43,11 @@ server cluster Identify = 3 { /** Attributes and commands for group configuration and manipulation. */ server cluster Groups = 4 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kGroupNames = 0x1; } - bitmap NameSupportBitmap : BITMAP8 { + bitmap NameSupportBitmap : bitmap8 { kGroupNames = 0x80; } @@ -112,33 +112,33 @@ server cluster Groups = 4 { /** Attributes and commands for switching devices between 'On' and 'Off' states. */ server cluster OnOff = 6 { - enum DelayedAllOffEffectVariantEnum : ENUM8 { + enum DelayedAllOffEffectVariantEnum : enum8 { kDelayedOffFastFade = 0; kNoFade = 1; kDelayedOffSlowFade = 2; } - enum DyingLightEffectVariantEnum : ENUM8 { + enum DyingLightEffectVariantEnum : enum8 { kDyingLightFadeOff = 0; } - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kDelayedAllOff = 0; kDyingLight = 1; } - enum StartUpOnOffEnum : ENUM8 { + enum StartUpOnOffEnum : enum8 { kOff = 0; kOn = 1; kToggle = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kLighting = 0x1; kDeadFrontBehavior = 0x2; } - bitmap OnOffControlBitmap : BITMAP8 { + bitmap OnOffControlBitmap : bitmap8 { kAcceptOnlyWhenOn = 0x1; } @@ -161,23 +161,23 @@ server cluster OnOff = 6 { /** Attributes and commands for controlling devices that can be set to a level between fully 'On' and fully 'Off.' */ server cluster LevelControl = 8 { - enum MoveMode : ENUM8 { + enum MoveMode : enum8 { kUp = 0; kDown = 1; } - enum StepMode : ENUM8 { + enum StepMode : enum8 { kUp = 0; kDown = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kOnOff = 0x1; kLighting = 0x2; kFrequency = 0x4; } - bitmap LevelControlOptions : BITMAP8 { + bitmap LevelControlOptions : bitmap8 { kExecuteIfOff = 0x1; kCoupleColorTempToLevel = 0x2; } @@ -262,7 +262,7 @@ server cluster LevelControl = 8 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -314,13 +314,13 @@ client cluster Binding = 30 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -328,7 +328,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -386,7 +386,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -410,7 +410,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -473,20 +473,20 @@ server cluster BasicInformation = 40 { /** Provides an interface for providing OTA software updates */ client cluster OtaSoftwareUpdateProvider = 41 { - enum ApplyUpdateActionEnum : ENUM8 { + enum ApplyUpdateActionEnum : enum8 { kProceed = 0; kAwaitNextAction = 1; kDiscontinue = 2; } - enum DownloadProtocolEnum : ENUM8 { + enum DownloadProtocolEnum : enum8 { kBDXSynchronous = 0; kBDXAsynchronous = 1; kHTTPS = 2; kVendorSpecific = 3; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kUpdateAvailable = 0; kBusy = 1; kNotAvailable = 2; @@ -547,13 +547,13 @@ client cluster OtaSoftwareUpdateProvider = 41 { /** Provides an interface for downloading and applying OTA software updates */ server cluster OtaSoftwareUpdateRequestor = 42 { - enum AnnouncementReasonEnum : ENUM8 { + enum AnnouncementReasonEnum : enum8 { kSimpleAnnouncement = 0; kUpdateAvailable = 1; kUrgentUpdateAvailable = 2; } - enum ChangeReasonEnum : ENUM8 { + enum ChangeReasonEnum : enum8 { kUnknown = 0; kSuccess = 1; kFailure = 2; @@ -561,7 +561,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { kDelayByProvider = 4; } - enum UpdateStateEnum : ENUM8 { + enum UpdateStateEnum : enum8 { kUnknown = 0; kIdle = 1; kQuerying = 2; @@ -640,7 +640,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -655,12 +655,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -677,7 +677,7 @@ server cluster TimeFormatLocalization = 44 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -685,7 +685,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -741,7 +741,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -757,7 +757,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -766,13 +766,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -881,13 +881,13 @@ server cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -895,7 +895,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -918,7 +918,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -928,7 +928,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -942,7 +942,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -950,14 +950,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -1023,7 +1023,7 @@ server cluster GeneralDiagnostics = 51 { /** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster SoftwareDiagnostics = 52 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWaterMarks = 0x1; } @@ -1057,13 +1057,13 @@ server cluster SoftwareDiagnostics = 52 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -1098,12 +1098,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -1214,12 +1214,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } diff --git a/examples/chef/devices/rootnode_onofflight_samplemei.matter b/examples/chef/devices/rootnode_onofflight_samplemei.matter index a06418d6d3b914..6f73c3526e7bb3 100644 --- a/examples/chef/devices/rootnode_onofflight_samplemei.matter +++ b/examples/chef/devices/rootnode_onofflight_samplemei.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -43,11 +43,11 @@ server cluster Identify = 3 { /** Attributes and commands for group configuration and manipulation. */ server cluster Groups = 4 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kGroupNames = 0x1; } - bitmap NameSupportBitmap : BITMAP8 { + bitmap NameSupportBitmap : bitmap8 { kGroupNames = 0x80; } @@ -112,33 +112,33 @@ server cluster Groups = 4 { /** Attributes and commands for switching devices between 'On' and 'Off' states. */ server cluster OnOff = 6 { - enum DelayedAllOffEffectVariantEnum : ENUM8 { + enum DelayedAllOffEffectVariantEnum : enum8 { kDelayedOffFastFade = 0; kNoFade = 1; kDelayedOffSlowFade = 2; } - enum DyingLightEffectVariantEnum : ENUM8 { + enum DyingLightEffectVariantEnum : enum8 { kDyingLightFadeOff = 0; } - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kDelayedAllOff = 0; kDyingLight = 1; } - enum StartUpOnOffEnum : ENUM8 { + enum StartUpOnOffEnum : enum8 { kOff = 0; kOn = 1; kToggle = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kLighting = 0x1; kDeadFrontBehavior = 0x2; } - bitmap OnOffControlBitmap : BITMAP8 { + bitmap OnOffControlBitmap : bitmap8 { kAcceptOnlyWhenOn = 0x1; } @@ -161,23 +161,23 @@ server cluster OnOff = 6 { /** Attributes and commands for controlling devices that can be set to a level between fully 'On' and fully 'Off.' */ server cluster LevelControl = 8 { - enum MoveMode : ENUM8 { + enum MoveMode : enum8 { kUp = 0; kDown = 1; } - enum StepMode : ENUM8 { + enum StepMode : enum8 { kUp = 0; kDown = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kOnOff = 0x1; kLighting = 0x2; kFrequency = 0x4; } - bitmap LevelControlOptions : BITMAP8 { + bitmap LevelControlOptions : bitmap8 { kExecuteIfOff = 0x1; kCoupleColorTempToLevel = 0x2; } @@ -262,7 +262,7 @@ server cluster LevelControl = 8 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -314,13 +314,13 @@ client cluster Binding = 30 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -328,7 +328,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -386,7 +386,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -410,7 +410,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -473,20 +473,20 @@ server cluster BasicInformation = 40 { /** Provides an interface for providing OTA software updates */ client cluster OtaSoftwareUpdateProvider = 41 { - enum ApplyUpdateActionEnum : ENUM8 { + enum ApplyUpdateActionEnum : enum8 { kProceed = 0; kAwaitNextAction = 1; kDiscontinue = 2; } - enum DownloadProtocolEnum : ENUM8 { + enum DownloadProtocolEnum : enum8 { kBDXSynchronous = 0; kBDXAsynchronous = 1; kHTTPS = 2; kVendorSpecific = 3; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kUpdateAvailable = 0; kBusy = 1; kNotAvailable = 2; @@ -547,13 +547,13 @@ client cluster OtaSoftwareUpdateProvider = 41 { /** Provides an interface for downloading and applying OTA software updates */ server cluster OtaSoftwareUpdateRequestor = 42 { - enum AnnouncementReasonEnum : ENUM8 { + enum AnnouncementReasonEnum : enum8 { kSimpleAnnouncement = 0; kUpdateAvailable = 1; kUrgentUpdateAvailable = 2; } - enum ChangeReasonEnum : ENUM8 { + enum ChangeReasonEnum : enum8 { kUnknown = 0; kSuccess = 1; kFailure = 2; @@ -561,7 +561,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { kDelayByProvider = 4; } - enum UpdateStateEnum : ENUM8 { + enum UpdateStateEnum : enum8 { kUnknown = 0; kIdle = 1; kQuerying = 2; @@ -640,7 +640,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -655,12 +655,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -677,7 +677,7 @@ server cluster TimeFormatLocalization = 44 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -685,7 +685,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -741,7 +741,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -757,7 +757,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -766,13 +766,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -881,13 +881,13 @@ server cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -895,7 +895,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -918,7 +918,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -928,7 +928,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -942,7 +942,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -950,14 +950,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -1023,7 +1023,7 @@ server cluster GeneralDiagnostics = 51 { /** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster SoftwareDiagnostics = 52 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWaterMarks = 0x1; } @@ -1057,13 +1057,13 @@ server cluster SoftwareDiagnostics = 52 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -1098,12 +1098,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -1214,12 +1214,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } diff --git a/examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.matter b/examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.matter index 29df2051187b2a..081ead537c1caa 100644 --- a/examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.matter +++ b/examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -43,11 +43,11 @@ server cluster Identify = 3 { /** Attributes and commands for group configuration and manipulation. */ server cluster Groups = 4 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kGroupNames = 0x1; } - bitmap NameSupportBitmap : BITMAP8 { + bitmap NameSupportBitmap : bitmap8 { kGroupNames = 0x80; } @@ -112,33 +112,33 @@ server cluster Groups = 4 { /** Attributes and commands for switching devices between 'On' and 'Off' states. */ client cluster OnOff = 6 { - enum DelayedAllOffEffectVariantEnum : ENUM8 { + enum DelayedAllOffEffectVariantEnum : enum8 { kDelayedOffFastFade = 0; kNoFade = 1; kDelayedOffSlowFade = 2; } - enum DyingLightEffectVariantEnum : ENUM8 { + enum DyingLightEffectVariantEnum : enum8 { kDyingLightFadeOff = 0; } - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kDelayedAllOff = 0; kDyingLight = 1; } - enum StartUpOnOffEnum : ENUM8 { + enum StartUpOnOffEnum : enum8 { kOff = 0; kOn = 1; kToggle = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kLighting = 0x1; kDeadFrontBehavior = 0x2; } - bitmap OnOffControlBitmap : BITMAP8 { + bitmap OnOffControlBitmap : bitmap8 { kAcceptOnlyWhenOn = 0x1; } @@ -181,33 +181,33 @@ client cluster OnOff = 6 { /** Attributes and commands for switching devices between 'On' and 'Off' states. */ server cluster OnOff = 6 { - enum DelayedAllOffEffectVariantEnum : ENUM8 { + enum DelayedAllOffEffectVariantEnum : enum8 { kDelayedOffFastFade = 0; kNoFade = 1; kDelayedOffSlowFade = 2; } - enum DyingLightEffectVariantEnum : ENUM8 { + enum DyingLightEffectVariantEnum : enum8 { kDyingLightFadeOff = 0; } - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kDelayedAllOff = 0; kDyingLight = 1; } - enum StartUpOnOffEnum : ENUM8 { + enum StartUpOnOffEnum : enum8 { kOff = 0; kOn = 1; kToggle = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kLighting = 0x1; kDeadFrontBehavior = 0x2; } - bitmap OnOffControlBitmap : BITMAP8 { + bitmap OnOffControlBitmap : bitmap8 { kAcceptOnlyWhenOn = 0x1; } @@ -226,7 +226,7 @@ server cluster OnOff = 6 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -278,13 +278,13 @@ client cluster Binding = 30 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -292,7 +292,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -350,7 +350,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -374,7 +374,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -437,20 +437,20 @@ server cluster BasicInformation = 40 { /** Provides an interface for providing OTA software updates */ client cluster OtaSoftwareUpdateProvider = 41 { - enum ApplyUpdateActionEnum : ENUM8 { + enum ApplyUpdateActionEnum : enum8 { kProceed = 0; kAwaitNextAction = 1; kDiscontinue = 2; } - enum DownloadProtocolEnum : ENUM8 { + enum DownloadProtocolEnum : enum8 { kBDXSynchronous = 0; kBDXAsynchronous = 1; kHTTPS = 2; kVendorSpecific = 3; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kUpdateAvailable = 0; kBusy = 1; kNotAvailable = 2; @@ -511,13 +511,13 @@ client cluster OtaSoftwareUpdateProvider = 41 { /** Provides an interface for downloading and applying OTA software updates */ server cluster OtaSoftwareUpdateRequestor = 42 { - enum AnnouncementReasonEnum : ENUM8 { + enum AnnouncementReasonEnum : enum8 { kSimpleAnnouncement = 0; kUpdateAvailable = 1; kUrgentUpdateAvailable = 2; } - enum ChangeReasonEnum : ENUM8 { + enum ChangeReasonEnum : enum8 { kUnknown = 0; kSuccess = 1; kFailure = 2; @@ -525,7 +525,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { kDelayByProvider = 4; } - enum UpdateStateEnum : ENUM8 { + enum UpdateStateEnum : enum8 { kUnknown = 0; kIdle = 1; kQuerying = 2; @@ -604,7 +604,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -619,12 +619,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -641,7 +641,7 @@ server cluster TimeFormatLocalization = 44 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -649,7 +649,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -705,7 +705,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -721,7 +721,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -730,13 +730,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -845,13 +845,13 @@ server cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -859,7 +859,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -882,7 +882,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -892,7 +892,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -906,7 +906,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -914,14 +914,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -987,7 +987,7 @@ server cluster GeneralDiagnostics = 51 { /** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster SoftwareDiagnostics = 52 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWaterMarks = 0x1; } @@ -1021,13 +1021,13 @@ server cluster SoftwareDiagnostics = 52 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -1062,12 +1062,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -1178,12 +1178,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } diff --git a/examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.matter b/examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.matter index bb008e5502862e..ee76290b4b76d2 100644 --- a/examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.matter +++ b/examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -43,11 +43,11 @@ server cluster Identify = 3 { /** Attributes and commands for group configuration and manipulation. */ server cluster Groups = 4 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kGroupNames = 0x1; } - bitmap NameSupportBitmap : BITMAP8 { + bitmap NameSupportBitmap : bitmap8 { kGroupNames = 0x80; } @@ -112,33 +112,33 @@ server cluster Groups = 4 { /** Attributes and commands for switching devices between 'On' and 'Off' states. */ server cluster OnOff = 6 { - enum DelayedAllOffEffectVariantEnum : ENUM8 { + enum DelayedAllOffEffectVariantEnum : enum8 { kDelayedOffFastFade = 0; kNoFade = 1; kDelayedOffSlowFade = 2; } - enum DyingLightEffectVariantEnum : ENUM8 { + enum DyingLightEffectVariantEnum : enum8 { kDyingLightFadeOff = 0; } - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kDelayedAllOff = 0; kDyingLight = 1; } - enum StartUpOnOffEnum : ENUM8 { + enum StartUpOnOffEnum : enum8 { kOff = 0; kOn = 1; kToggle = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kLighting = 0x1; kDeadFrontBehavior = 0x2; } - bitmap OnOffControlBitmap : BITMAP8 { + bitmap OnOffControlBitmap : bitmap8 { kAcceptOnlyWhenOn = 0x1; } @@ -161,7 +161,7 @@ server cluster OnOff = 6 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -213,13 +213,13 @@ client cluster Binding = 30 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -227,7 +227,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -285,7 +285,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -309,7 +309,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -372,20 +372,20 @@ server cluster BasicInformation = 40 { /** Provides an interface for providing OTA software updates */ client cluster OtaSoftwareUpdateProvider = 41 { - enum ApplyUpdateActionEnum : ENUM8 { + enum ApplyUpdateActionEnum : enum8 { kProceed = 0; kAwaitNextAction = 1; kDiscontinue = 2; } - enum DownloadProtocolEnum : ENUM8 { + enum DownloadProtocolEnum : enum8 { kBDXSynchronous = 0; kBDXAsynchronous = 1; kHTTPS = 2; kVendorSpecific = 3; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kUpdateAvailable = 0; kBusy = 1; kNotAvailable = 2; @@ -446,13 +446,13 @@ client cluster OtaSoftwareUpdateProvider = 41 { /** Provides an interface for downloading and applying OTA software updates */ server cluster OtaSoftwareUpdateRequestor = 42 { - enum AnnouncementReasonEnum : ENUM8 { + enum AnnouncementReasonEnum : enum8 { kSimpleAnnouncement = 0; kUpdateAvailable = 1; kUrgentUpdateAvailable = 2; } - enum ChangeReasonEnum : ENUM8 { + enum ChangeReasonEnum : enum8 { kUnknown = 0; kSuccess = 1; kFailure = 2; @@ -460,7 +460,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { kDelayByProvider = 4; } - enum UpdateStateEnum : ENUM8 { + enum UpdateStateEnum : enum8 { kUnknown = 0; kIdle = 1; kQuerying = 2; @@ -539,7 +539,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -554,12 +554,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -576,7 +576,7 @@ server cluster TimeFormatLocalization = 44 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -584,7 +584,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -640,7 +640,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -656,7 +656,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -665,13 +665,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -780,13 +780,13 @@ server cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -794,7 +794,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -817,7 +817,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -827,7 +827,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -841,7 +841,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -849,14 +849,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -922,7 +922,7 @@ server cluster GeneralDiagnostics = 51 { /** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster SoftwareDiagnostics = 52 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWaterMarks = 0x1; } @@ -956,13 +956,13 @@ server cluster SoftwareDiagnostics = 52 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -997,12 +997,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -1113,12 +1113,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } diff --git a/examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.matter b/examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.matter index 3b413ff0c170a1..f9da8c0aa4de63 100644 --- a/examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.matter +++ b/examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -43,11 +43,11 @@ server cluster Identify = 3 { /** Attributes and commands for group configuration and manipulation. */ client cluster Groups = 4 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kGroupNames = 0x1; } - bitmap NameSupportBitmap : BITMAP8 { + bitmap NameSupportBitmap : bitmap8 { kGroupNames = 0x80; } @@ -118,7 +118,7 @@ client cluster Groups = 4 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -170,13 +170,13 @@ client cluster Binding = 30 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -184,7 +184,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -242,7 +242,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -266,7 +266,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -329,20 +329,20 @@ server cluster BasicInformation = 40 { /** Provides an interface for providing OTA software updates */ client cluster OtaSoftwareUpdateProvider = 41 { - enum ApplyUpdateActionEnum : ENUM8 { + enum ApplyUpdateActionEnum : enum8 { kProceed = 0; kAwaitNextAction = 1; kDiscontinue = 2; } - enum DownloadProtocolEnum : ENUM8 { + enum DownloadProtocolEnum : enum8 { kBDXSynchronous = 0; kBDXAsynchronous = 1; kHTTPS = 2; kVendorSpecific = 3; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kUpdateAvailable = 0; kBusy = 1; kNotAvailable = 2; @@ -403,13 +403,13 @@ client cluster OtaSoftwareUpdateProvider = 41 { /** Provides an interface for downloading and applying OTA software updates */ server cluster OtaSoftwareUpdateRequestor = 42 { - enum AnnouncementReasonEnum : ENUM8 { + enum AnnouncementReasonEnum : enum8 { kSimpleAnnouncement = 0; kUpdateAvailable = 1; kUrgentUpdateAvailable = 2; } - enum ChangeReasonEnum : ENUM8 { + enum ChangeReasonEnum : enum8 { kUnknown = 0; kSuccess = 1; kFailure = 2; @@ -417,7 +417,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { kDelayByProvider = 4; } - enum UpdateStateEnum : ENUM8 { + enum UpdateStateEnum : enum8 { kUnknown = 0; kIdle = 1; kQuerying = 2; @@ -496,7 +496,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -511,12 +511,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -533,7 +533,7 @@ server cluster TimeFormatLocalization = 44 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -541,7 +541,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -597,7 +597,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -613,7 +613,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -622,13 +622,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -737,13 +737,13 @@ server cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -751,7 +751,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -774,7 +774,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -784,7 +784,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -798,7 +798,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -806,14 +806,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -879,7 +879,7 @@ server cluster GeneralDiagnostics = 51 { /** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster SoftwareDiagnostics = 52 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWaterMarks = 0x1; } @@ -913,13 +913,13 @@ server cluster SoftwareDiagnostics = 52 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -954,12 +954,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -1070,12 +1070,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -1175,7 +1175,7 @@ server cluster UserLabel = 65 { /** Attributes and commands for configuring the measurement of pressure, and reporting pressure measurements. */ server cluster PressureMeasurement = 1027 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kExtended = 0x1; } diff --git a/examples/chef/devices/rootnode_pump_5f904818cc.matter b/examples/chef/devices/rootnode_pump_5f904818cc.matter index 7ff08e6e8d9b44..7d927a4ef4e2b5 100644 --- a/examples/chef/devices/rootnode_pump_5f904818cc.matter +++ b/examples/chef/devices/rootnode_pump_5f904818cc.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -49,33 +49,33 @@ server cluster Identify = 3 { /** Attributes and commands for switching devices between 'On' and 'Off' states. */ server cluster OnOff = 6 { - enum DelayedAllOffEffectVariantEnum : ENUM8 { + enum DelayedAllOffEffectVariantEnum : enum8 { kDelayedOffFastFade = 0; kNoFade = 1; kDelayedOffSlowFade = 2; } - enum DyingLightEffectVariantEnum : ENUM8 { + enum DyingLightEffectVariantEnum : enum8 { kDyingLightFadeOff = 0; } - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kDelayedAllOff = 0; kDyingLight = 1; } - enum StartUpOnOffEnum : ENUM8 { + enum StartUpOnOffEnum : enum8 { kOff = 0; kOn = 1; kToggle = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kLighting = 0x1; kDeadFrontBehavior = 0x2; } - bitmap OnOffControlBitmap : BITMAP8 { + bitmap OnOffControlBitmap : bitmap8 { kAcceptOnlyWhenOn = 0x1; } @@ -94,7 +94,7 @@ server cluster OnOff = 6 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -127,13 +127,13 @@ server cluster Descriptor = 29 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -141,7 +141,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -199,7 +199,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -223,7 +223,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -297,7 +297,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -312,12 +312,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -335,13 +335,13 @@ server cluster TimeFormatLocalization = 44 { user. As such, Nodes that visually or audibly convey measurable values to the user need a mechanism by which they can be configured to use a user’s preferred unit. */ server cluster UnitLocalization = 45 { - enum TempUnitEnum : ENUM8 { + enum TempUnitEnum : enum8 { kFahrenheit = 0; kCelsius = 1; kKelvin = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTemperatureUnit = 0x1; } @@ -355,7 +355,7 @@ server cluster UnitLocalization = 45 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -363,7 +363,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -419,7 +419,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -435,7 +435,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -444,13 +444,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -559,7 +559,7 @@ server cluster NetworkCommissioning = 49 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -569,7 +569,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -583,7 +583,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -591,14 +591,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -658,13 +658,13 @@ server cluster GeneralDiagnostics = 51 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -699,12 +699,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -815,12 +815,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -887,7 +887,7 @@ server cluster GroupKeyManagement = 63 { /** An interface for configuring and controlling pumps. */ server cluster PumpConfigurationAndControl = 512 { - enum ControlModeEnum : ENUM8 { + enum ControlModeEnum : enum8 { kConstantSpeed = 0; kConstantPressure = 1; kProportionalPressure = 2; @@ -896,14 +896,14 @@ server cluster PumpConfigurationAndControl = 512 { kAutomatic = 7; } - enum OperationModeEnum : ENUM8 { + enum OperationModeEnum : enum8 { kNormal = 0; kMinimum = 1; kMaximum = 2; kLocal = 3; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kConstantPressure = 0x1; kCompensatedPressure = 0x2; kConstantFlow = 0x4; @@ -913,7 +913,7 @@ server cluster PumpConfigurationAndControl = 512 { kLocalOperation = 0x40; } - bitmap PumpStatusBitmap : BITMAP16 { + bitmap PumpStatusBitmap : bitmap16 { kDeviceFault = 0x1; kSupplyfault = 0x2; kSpeedLow = 0x4; @@ -1011,7 +1011,7 @@ server cluster TemperatureMeasurement = 1026 { /** Attributes and commands for configuring the measurement of pressure, and reporting pressure measurements. */ server cluster PressureMeasurement = 1027 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kExtended = 0x1; } diff --git a/examples/chef/devices/rootnode_pump_a811bb33a0.matter b/examples/chef/devices/rootnode_pump_a811bb33a0.matter index 4676a684bbbc0f..3bb9ba1c1018fd 100644 --- a/examples/chef/devices/rootnode_pump_a811bb33a0.matter +++ b/examples/chef/devices/rootnode_pump_a811bb33a0.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -49,33 +49,33 @@ server cluster Identify = 3 { /** Attributes and commands for switching devices between 'On' and 'Off' states. */ server cluster OnOff = 6 { - enum DelayedAllOffEffectVariantEnum : ENUM8 { + enum DelayedAllOffEffectVariantEnum : enum8 { kDelayedOffFastFade = 0; kNoFade = 1; kDelayedOffSlowFade = 2; } - enum DyingLightEffectVariantEnum : ENUM8 { + enum DyingLightEffectVariantEnum : enum8 { kDyingLightFadeOff = 0; } - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kDelayedAllOff = 0; kDyingLight = 1; } - enum StartUpOnOffEnum : ENUM8 { + enum StartUpOnOffEnum : enum8 { kOff = 0; kOn = 1; kToggle = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kLighting = 0x1; kDeadFrontBehavior = 0x2; } - bitmap OnOffControlBitmap : BITMAP8 { + bitmap OnOffControlBitmap : bitmap8 { kAcceptOnlyWhenOn = 0x1; } @@ -94,7 +94,7 @@ server cluster OnOff = 6 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -127,13 +127,13 @@ server cluster Descriptor = 29 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -141,7 +141,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -199,7 +199,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -223,7 +223,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -297,7 +297,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -312,12 +312,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -335,13 +335,13 @@ server cluster TimeFormatLocalization = 44 { user. As such, Nodes that visually or audibly convey measurable values to the user need a mechanism by which they can be configured to use a user’s preferred unit. */ server cluster UnitLocalization = 45 { - enum TempUnitEnum : ENUM8 { + enum TempUnitEnum : enum8 { kFahrenheit = 0; kCelsius = 1; kKelvin = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTemperatureUnit = 0x1; } @@ -355,7 +355,7 @@ server cluster UnitLocalization = 45 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -363,7 +363,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -419,7 +419,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -435,7 +435,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -444,13 +444,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -559,7 +559,7 @@ server cluster NetworkCommissioning = 49 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -569,7 +569,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -583,7 +583,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -591,14 +591,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -658,13 +658,13 @@ server cluster GeneralDiagnostics = 51 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -699,12 +699,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -815,12 +815,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -887,7 +887,7 @@ server cluster GroupKeyManagement = 63 { /** An interface for configuring and controlling pumps. */ server cluster PumpConfigurationAndControl = 512 { - enum ControlModeEnum : ENUM8 { + enum ControlModeEnum : enum8 { kConstantSpeed = 0; kConstantPressure = 1; kProportionalPressure = 2; @@ -896,14 +896,14 @@ server cluster PumpConfigurationAndControl = 512 { kAutomatic = 7; } - enum OperationModeEnum : ENUM8 { + enum OperationModeEnum : enum8 { kNormal = 0; kMinimum = 1; kMaximum = 2; kLocal = 3; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kConstantPressure = 0x1; kCompensatedPressure = 0x2; kConstantFlow = 0x4; @@ -913,7 +913,7 @@ server cluster PumpConfigurationAndControl = 512 { kLocalOperation = 0x40; } - bitmap PumpStatusBitmap : BITMAP16 { + bitmap PumpStatusBitmap : bitmap16 { kDeviceFault = 0x1; kSupplyfault = 0x2; kSpeedLow = 0x4; diff --git a/examples/chef/devices/rootnode_refrigerator_temperaturecontrolledcabinet_temperaturecontrolledcabinet_ffdb696680.matter b/examples/chef/devices/rootnode_refrigerator_temperaturecontrolledcabinet_temperaturecontrolledcabinet_ffdb696680.matter index 2a4b5767b2adcd..6d29433fcc2302 100644 --- a/examples/chef/devices/rootnode_refrigerator_temperaturecontrolledcabinet_temperaturecontrolledcabinet_ffdb696680.matter +++ b/examples/chef/devices/rootnode_refrigerator_temperaturecontrolledcabinet_temperaturecontrolledcabinet_ffdb696680.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -49,7 +49,7 @@ server cluster Identify = 3 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -82,13 +82,13 @@ server cluster Descriptor = 29 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -96,7 +96,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -154,7 +154,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -178,7 +178,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -260,7 +260,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -275,12 +275,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -298,13 +298,13 @@ server cluster TimeFormatLocalization = 44 { user. As such, Nodes that visually or audibly convey measurable values to the user need a mechanism by which they can be configured to use a user’s preferred unit. */ server cluster UnitLocalization = 45 { - enum TempUnitEnum : ENUM8 { + enum TempUnitEnum : enum8 { kFahrenheit = 0; kCelsius = 1; kKelvin = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTemperatureUnit = 0x1; } @@ -319,7 +319,7 @@ server cluster UnitLocalization = 45 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -327,7 +327,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -383,7 +383,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -399,7 +399,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -408,13 +408,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -523,7 +523,7 @@ server cluster NetworkCommissioning = 49 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -533,7 +533,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -547,7 +547,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -555,14 +555,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -628,19 +628,19 @@ server cluster GeneralDiagnostics = 51 { /** The Wi-Fi Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster WiFiNetworkDiagnostics = 54 { - enum AssociationFailureCauseEnum : ENUM8 { + enum AssociationFailureCauseEnum : enum8 { kUnknown = 0; kAssociationFailed = 1; kAuthenticationFailed = 2; kSsidNotFound = 3; } - enum ConnectionStatusEnum : ENUM8 { + enum ConnectionStatusEnum : enum8 { kConnected = 0; kNotConnected = 1; } - enum SecurityTypeEnum : ENUM8 { + enum SecurityTypeEnum : enum8 { kUnspecified = 0; kNone = 1; kWEP = 2; @@ -649,7 +649,7 @@ server cluster WiFiNetworkDiagnostics = 54 { kWPA3 = 5; } - enum WiFiVersionEnum : ENUM8 { + enum WiFiVersionEnum : enum8 { kA = 0; kB = 1; kG = 2; @@ -659,7 +659,7 @@ server cluster WiFiNetworkDiagnostics = 54 { kAh = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; } @@ -702,13 +702,13 @@ server cluster WiFiNetworkDiagnostics = 54 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -743,12 +743,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -859,12 +859,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -931,7 +931,7 @@ server cluster GroupKeyManagement = 63 { /** Attributes and commands for configuring the temperature control, and reporting temperature. */ server cluster TemperatureControl = 86 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTemperatureNumber = 0x1; kTemperatureLevel = 0x2; kTemperatureStep = 0x4; diff --git a/examples/chef/devices/rootnode_roboticvacuumcleaner_1807ff0c49.matter b/examples/chef/devices/rootnode_roboticvacuumcleaner_1807ff0c49.matter index e824e2cdc1b7b2..402d650fb8122b 100644 --- a/examples/chef/devices/rootnode_roboticvacuumcleaner_1807ff0c49.matter +++ b/examples/chef/devices/rootnode_roboticvacuumcleaner_1807ff0c49.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -49,11 +49,11 @@ server cluster Identify = 3 { /** Attributes and commands for group configuration and manipulation. */ server cluster Groups = 4 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kGroupNames = 0x1; } - bitmap NameSupportBitmap : BITMAP8 { + bitmap NameSupportBitmap : bitmap8 { kGroupNames = 0x80; } @@ -117,15 +117,15 @@ server cluster Groups = 4 { } /** Attributes and commands for scene configuration and manipulation. */ -server cluster Scenes = 5 { - bitmap Feature : BITMAP32 { +provisional server cluster Scenes = 5 { + bitmap Feature : bitmap32 { kSceneNames = 0x1; kExplicit = 0x2; kTableSize = 0x4; kFabricScenes = 0x8; } - bitmap ScenesCopyMode : BITMAP8 { + bitmap ScenesCopyMode : bitmap8 { kCopyAllScenes = 0x1; } @@ -240,7 +240,7 @@ server cluster Scenes = 5 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -273,13 +273,13 @@ server cluster Descriptor = 29 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -287,7 +287,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -345,7 +345,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -369,7 +369,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -432,7 +432,7 @@ server cluster BasicInformation = 40 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -440,7 +440,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -496,7 +496,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -512,7 +512,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -521,13 +521,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -636,13 +636,13 @@ server cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -650,7 +650,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -673,7 +673,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -683,7 +683,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -697,7 +697,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -705,14 +705,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -778,13 +778,13 @@ server cluster GeneralDiagnostics = 51 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -819,12 +819,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -935,12 +935,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -1007,12 +1007,12 @@ server cluster GroupKeyManagement = 63 { /** Attributes and commands for selecting a mode from a list of supported options. */ server cluster RvcRunMode = 84 { - enum ModeTag : ENUM16 { + enum ModeTag : enum16 { kIdle = 16384; kCleaning = 16385; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kStuck = 65; kDustBinMissing = 66; kDustBinFull = 67; @@ -1023,7 +1023,7 @@ server cluster RvcRunMode = 84 { kBatteryLow = 72; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kOnOff = 0x1; } @@ -1040,7 +1040,6 @@ server cluster RvcRunMode = 84 { readonly attribute ModeOptionStruct supportedModes[] = 0; readonly attribute int8u currentMode = 1; - attribute nullable int8u startUpMode = 2; attribute nullable int8u onMode = 3; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; @@ -1063,17 +1062,17 @@ server cluster RvcRunMode = 84 { /** Attributes and commands for selecting a mode from a list of supported options. */ server cluster RvcCleanMode = 85 { - enum ModeTag : ENUM16 { + enum ModeTag : enum16 { kDeepClean = 16384; kVacuum = 16385; kMop = 16386; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kCleaningInProgress = 64; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kOnOff = 0x1; } @@ -1090,7 +1089,6 @@ server cluster RvcCleanMode = 85 { readonly attribute ModeOptionStruct supportedModes[] = 0; readonly attribute int8u currentMode = 1; - attribute nullable int8u startUpMode = 2; attribute nullable int8u onMode = 3; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; @@ -1113,7 +1111,7 @@ server cluster RvcCleanMode = 85 { /** This cluster supports remotely monitoring and, where supported, changing the operational state of a Robotic Vacuum. */ server cluster RvcOperationalState = 97 { - enum ErrorStateEnum : ENUM8 { + enum ErrorStateEnum : enum8 { kFailedToFindChargingDock = 64; kStuck = 65; kDustBinMissing = 66; @@ -1124,7 +1122,7 @@ server cluster RvcOperationalState = 97 { kMopCleaningPadMissing = 71; } - enum OperationalStateEnum : ENUM8 { + enum OperationalStateEnum : enum8 { kSeekingCharger = 64; kCharging = 65; kDocked = 66; @@ -1426,7 +1424,6 @@ endpoint 1 { server cluster RvcRunMode { callback attribute supportedModes default = 0; callback attribute currentMode default = 0; - callback attribute startUpMode default = 0; callback attribute onMode default = 0; callback attribute generatedCommandList; callback attribute acceptedCommandList; @@ -1442,7 +1439,6 @@ endpoint 1 { server cluster RvcCleanMode { callback attribute supportedModes default = 0; callback attribute currentMode default = 0; - callback attribute startUpMode default = 0; callback attribute onMode default = 0; callback attribute generatedCommandList; callback attribute acceptedCommandList; diff --git a/examples/chef/devices/rootnode_roboticvacuumcleaner_1807ff0c49.zap b/examples/chef/devices/rootnode_roboticvacuumcleaner_1807ff0c49.zap index 5c1ac4df4af665..59784bfba8e5eb 100644 --- a/examples/chef/devices/rootnode_roboticvacuumcleaner_1807ff0c49.zap +++ b/examples/chef/devices/rootnode_roboticvacuumcleaner_1807ff0c49.zap @@ -2266,6 +2266,7 @@ "define": "SCENES_CLUSTER", "side": "server", "enabled": 1, + "apiMaturity": "provisional", "commands": [ { "name": "AddScene", @@ -2811,22 +2812,6 @@ "maxInterval": 65534, "reportableChange": 0 }, - { - "name": "StartUpMode", - "code": 2, - "mfgCode": null, - "side": "server", - "type": "int8u", - "included": 1, - "storageOption": "External", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, { "name": "OnMode", "code": 3, @@ -2999,22 +2984,6 @@ "maxInterval": 65534, "reportableChange": 0 }, - { - "name": "StartUpMode", - "code": 2, - "mfgCode": null, - "side": "server", - "type": "int8u", - "included": 1, - "storageOption": "External", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, { "name": "OnMode", "code": 3, @@ -3391,5 +3360,6 @@ "endpointId": 1, "networkId": 0 } - ] + ], + "log": [] } \ No newline at end of file diff --git a/examples/chef/devices/rootnode_roomairconditioner_9cf3607804.matter b/examples/chef/devices/rootnode_roomairconditioner_9cf3607804.matter index 3bccbecf18922b..7991c31dde5523 100644 --- a/examples/chef/devices/rootnode_roomairconditioner_9cf3607804.matter +++ b/examples/chef/devices/rootnode_roomairconditioner_9cf3607804.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -49,11 +49,11 @@ server cluster Identify = 3 { /** Attributes and commands for group configuration and manipulation. */ server cluster Groups = 4 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kGroupNames = 0x1; } - bitmap NameSupportBitmap : BITMAP8 { + bitmap NameSupportBitmap : bitmap8 { kGroupNames = 0x80; } @@ -118,33 +118,33 @@ server cluster Groups = 4 { /** Attributes and commands for switching devices between 'On' and 'Off' states. */ server cluster OnOff = 6 { - enum DelayedAllOffEffectVariantEnum : ENUM8 { + enum DelayedAllOffEffectVariantEnum : enum8 { kDelayedOffFastFade = 0; kNoFade = 1; kDelayedOffSlowFade = 2; } - enum DyingLightEffectVariantEnum : ENUM8 { + enum DyingLightEffectVariantEnum : enum8 { kDyingLightFadeOff = 0; } - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kDelayedAllOff = 0; kDyingLight = 1; } - enum StartUpOnOffEnum : ENUM8 { + enum StartUpOnOffEnum : enum8 { kOff = 0; kOn = 1; kToggle = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kLighting = 0x1; kDeadFrontBehavior = 0x2; } - bitmap OnOffControlBitmap : BITMAP8 { + bitmap OnOffControlBitmap : bitmap8 { kAcceptOnlyWhenOn = 0x1; } @@ -163,7 +163,7 @@ server cluster OnOff = 6 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -196,13 +196,13 @@ server cluster Descriptor = 29 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -210,7 +210,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -268,7 +268,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -292,7 +292,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -355,7 +355,7 @@ server cluster BasicInformation = 40 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -363,7 +363,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -419,7 +419,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -435,7 +435,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -444,13 +444,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -559,13 +559,13 @@ server cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -573,7 +573,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -596,7 +596,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -606,7 +606,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -620,7 +620,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -628,14 +628,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -701,13 +701,13 @@ server cluster GeneralDiagnostics = 51 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -742,12 +742,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -858,12 +858,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -930,13 +930,13 @@ server cluster GroupKeyManagement = 63 { /** An interface for configuring and controlling the functionality of a thermostat. */ server cluster Thermostat = 513 { - enum SetpointAdjustMode : ENUM8 { + enum SetpointAdjustMode : enum8 { kHeat = 0; kCool = 1; kBoth = 2; } - enum ThermostatControlSequence : ENUM8 { + enum ThermostatControlSequence : enum8 { kCoolingOnly = 0; kCoolingWithReheat = 1; kHeatingOnly = 2; @@ -945,13 +945,13 @@ server cluster Thermostat = 513 { kCoolingAndHeatingWithReheat = 5; } - enum ThermostatRunningMode : ENUM8 { + enum ThermostatRunningMode : enum8 { kOff = 0; kCool = 3; kHeat = 4; } - enum ThermostatSystemMode : ENUM8 { + enum ThermostatSystemMode : enum8 { kOff = 0; kAuto = 1; kCool = 3; @@ -963,7 +963,7 @@ server cluster Thermostat = 513 { kSleep = 9; } - bitmap DayOfWeek : BITMAP8 { + bitmap DayOfWeek : bitmap8 { kSunday = 0x1; kMonday = 0x2; kTuesday = 0x4; @@ -974,7 +974,7 @@ server cluster Thermostat = 513 { kAway = 0x80; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kHeating = 0x1; kCooling = 0x2; kOccupancy = 0x4; @@ -984,7 +984,7 @@ server cluster Thermostat = 513 { kLocalTemperatureNotExposed = 0x40; } - bitmap ModeForSequence : BITMAP8 { + bitmap ModeForSequence : bitmap8 { kHeatSetpointPresent = 0x1; kCoolSetpointPresent = 0x2; } @@ -1019,13 +1019,13 @@ server cluster Thermostat = 513 { } /** An interface for controlling a fan in a heating/cooling system. */ -server cluster FanControl = 514 { - enum AirflowDirectionEnum : ENUM8 { +provisional server cluster FanControl = 514 { + enum AirflowDirectionEnum : enum8 { kForward = 0; kReverse = 1; } - enum FanModeEnum : ENUM8 { + enum FanModeEnum : enum8 { kOff = 0; kLow = 1; kMedium = 2; @@ -1035,7 +1035,7 @@ server cluster FanControl = 514 { kSmart = 6; } - enum FanModeSequenceEnum : ENUM8 { + enum FanModeSequenceEnum : enum8 { kOffLowMedHigh = 0; kOffLowHigh = 1; kOffLowMedHighAuto = 2; @@ -1044,12 +1044,12 @@ server cluster FanControl = 514 { kOffOn = 5; } - enum StepDirectionEnum : ENUM8 { + enum StepDirectionEnum : enum8 { kIncrease = 0; kDecrease = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kMultiSpeed = 0x1; kAuto = 0x2; kRocking = 0x4; @@ -1058,13 +1058,13 @@ server cluster FanControl = 514 { kAirflowDirection = 0x20; } - bitmap RockBitmap : BITMAP8 { + bitmap RockBitmap : bitmap8 { kRockLeftRight = 0x1; kRockUpDown = 0x2; kRockRound = 0x4; } - bitmap WindBitmap : BITMAP8 { + bitmap WindBitmap : bitmap8 { kSleepWind = 0x1; kNaturalWind = 0x2; } diff --git a/examples/chef/devices/rootnode_smokecoalarm_686fe0dcb8.matter b/examples/chef/devices/rootnode_smokecoalarm_686fe0dcb8.matter index c26a09fcff0575..4797e1decedccd 100644 --- a/examples/chef/devices/rootnode_smokecoalarm_686fe0dcb8.matter +++ b/examples/chef/devices/rootnode_smokecoalarm_686fe0dcb8.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -49,11 +49,11 @@ server cluster Identify = 3 { /** Attributes and commands for group configuration and manipulation. */ server cluster Groups = 4 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kGroupNames = 0x1; } - bitmap NameSupportBitmap : BITMAP8 { + bitmap NameSupportBitmap : bitmap8 { kGroupNames = 0x80; } @@ -118,7 +118,7 @@ server cluster Groups = 4 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -151,13 +151,13 @@ server cluster Descriptor = 29 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -165,7 +165,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -223,7 +223,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -247,7 +247,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -310,7 +310,7 @@ server cluster BasicInformation = 40 { /** This cluster is used to describe the configuration and capabilities of a physical power source that provides power to the Node. */ server cluster PowerSource = 47 { - enum BatApprovedChemistryEnum : ENUM16 { + enum BatApprovedChemistryEnum : enum16 { kUnspecified = 0; kAlkaline = 1; kLithiumCarbonFluoride = 2; @@ -346,7 +346,7 @@ server cluster PowerSource = 47 { kZincCerium = 32; } - enum BatChargeFaultEnum : ENUM8 { + enum BatChargeFaultEnum : enum8 { kUnspecified = 0; kAmbientTooHot = 1; kAmbientTooCold = 2; @@ -360,20 +360,20 @@ server cluster PowerSource = 47 { kSafetyTimeout = 10; } - enum BatChargeLevelEnum : ENUM8 { + enum BatChargeLevelEnum : enum8 { kOK = 0; kWarning = 1; kCritical = 2; } - enum BatChargeStateEnum : ENUM8 { + enum BatChargeStateEnum : enum8 { kUnknown = 0; kIsCharging = 1; kIsAtFullCharge = 2; kIsNotCharging = 3; } - enum BatCommonDesignationEnum : ENUM16 { + enum BatCommonDesignationEnum : enum16 { kUnspecified = 0; kAAA = 1; kAA = 2; @@ -457,38 +457,38 @@ server cluster PowerSource = 47 { k32600 = 80; } - enum BatFaultEnum : ENUM8 { + enum BatFaultEnum : enum8 { kUnspecified = 0; kOverTemp = 1; kUnderTemp = 2; } - enum BatReplaceabilityEnum : ENUM8 { + enum BatReplaceabilityEnum : enum8 { kUnspecified = 0; kNotReplaceable = 1; kUserReplaceable = 2; kFactoryReplaceable = 3; } - enum PowerSourceStatusEnum : ENUM8 { + enum PowerSourceStatusEnum : enum8 { kUnspecified = 0; kActive = 1; kStandby = 2; kUnavailable = 3; } - enum WiredCurrentTypeEnum : ENUM8 { + enum WiredCurrentTypeEnum : enum8 { kAC = 0; kDC = 1; } - enum WiredFaultEnum : ENUM8 { + enum WiredFaultEnum : enum8 { kUnspecified = 0; kOverVoltage = 1; kUnderVoltage = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWired = 0x1; kBattery = 0x2; kRechargeable = 0x4; @@ -542,7 +542,7 @@ server cluster PowerSource = 47 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -550,7 +550,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -606,7 +606,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -622,7 +622,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -631,13 +631,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -746,13 +746,13 @@ server cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -760,7 +760,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -783,7 +783,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -793,7 +793,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -807,7 +807,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -815,14 +815,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -888,13 +888,13 @@ server cluster GeneralDiagnostics = 51 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -929,12 +929,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -1045,12 +1045,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -1117,25 +1117,25 @@ server cluster GroupKeyManagement = 63 { /** This cluster provides an interface for observing and managing the state of smoke and CO alarms. */ server cluster SmokeCoAlarm = 92 { - enum AlarmStateEnum : ENUM8 { + enum AlarmStateEnum : enum8 { kNormal = 0; kWarning = 1; kCritical = 2; } - enum ContaminationStateEnum : ENUM8 { + enum ContaminationStateEnum : enum8 { kNormal = 0; kLow = 1; kWarning = 2; kCritical = 3; } - enum EndOfServiceEnum : ENUM8 { + enum EndOfServiceEnum : enum8 { kNormal = 0; kExpired = 1; } - enum ExpressedStateEnum : ENUM8 { + enum ExpressedStateEnum : enum8 { kNormal = 0; kSmokeAlarm = 1; kCOAlarm = 2; @@ -1147,18 +1147,18 @@ server cluster SmokeCoAlarm = 92 { kInterconnectCO = 8; } - enum MuteStateEnum : ENUM8 { + enum MuteStateEnum : enum8 { kNotMuted = 0; kMuted = 1; } - enum SensitivityEnum : ENUM8 { + enum SensitivityEnum : enum8 { kHigh = 0; kStandard = 1; kLow = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kSmokeAlarm = 0x1; kCOAlarm = 0x2; } diff --git a/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter b/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter index a709b5f8575567..7c83b714f2bb3c 100644 --- a/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter +++ b/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -43,33 +43,33 @@ server cluster Identify = 3 { /** Attributes and commands for switching devices between 'On' and 'Off' states. */ server cluster OnOff = 6 { - enum DelayedAllOffEffectVariantEnum : ENUM8 { + enum DelayedAllOffEffectVariantEnum : enum8 { kDelayedOffFastFade = 0; kNoFade = 1; kDelayedOffSlowFade = 2; } - enum DyingLightEffectVariantEnum : ENUM8 { + enum DyingLightEffectVariantEnum : enum8 { kDyingLightFadeOff = 0; } - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kDelayedAllOff = 0; kDyingLight = 1; } - enum StartUpOnOffEnum : ENUM8 { + enum StartUpOnOffEnum : enum8 { kOff = 0; kOn = 1; kToggle = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kLighting = 0x1; kDeadFrontBehavior = 0x2; } - bitmap OnOffControlBitmap : BITMAP8 { + bitmap OnOffControlBitmap : bitmap8 { kAcceptOnlyWhenOn = 0x1; } @@ -88,23 +88,23 @@ server cluster OnOff = 6 { /** Attributes and commands for controlling devices that can be set to a level between fully 'On' and fully 'Off.' */ server cluster LevelControl = 8 { - enum MoveMode : ENUM8 { + enum MoveMode : enum8 { kUp = 0; kDown = 1; } - enum StepMode : ENUM8 { + enum StepMode : enum8 { kUp = 0; kDown = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kOnOff = 0x1; kLighting = 0x2; kFrequency = 0x4; } - bitmap LevelControlOptions : BITMAP8 { + bitmap LevelControlOptions : bitmap8 { kExecuteIfOff = 0x1; kCoupleColorTempToLevel = 0x2; } @@ -187,7 +187,7 @@ server cluster LevelControl = 8 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -239,13 +239,13 @@ client cluster Binding = 30 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -253,7 +253,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -311,7 +311,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -335,7 +335,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -398,20 +398,20 @@ server cluster BasicInformation = 40 { /** Provides an interface for providing OTA software updates */ client cluster OtaSoftwareUpdateProvider = 41 { - enum ApplyUpdateActionEnum : ENUM8 { + enum ApplyUpdateActionEnum : enum8 { kProceed = 0; kAwaitNextAction = 1; kDiscontinue = 2; } - enum DownloadProtocolEnum : ENUM8 { + enum DownloadProtocolEnum : enum8 { kBDXSynchronous = 0; kBDXAsynchronous = 1; kHTTPS = 2; kVendorSpecific = 3; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kUpdateAvailable = 0; kBusy = 1; kNotAvailable = 2; @@ -472,13 +472,13 @@ client cluster OtaSoftwareUpdateProvider = 41 { /** Provides an interface for downloading and applying OTA software updates */ server cluster OtaSoftwareUpdateRequestor = 42 { - enum AnnouncementReasonEnum : ENUM8 { + enum AnnouncementReasonEnum : enum8 { kSimpleAnnouncement = 0; kUpdateAvailable = 1; kUrgentUpdateAvailable = 2; } - enum ChangeReasonEnum : ENUM8 { + enum ChangeReasonEnum : enum8 { kUnknown = 0; kSuccess = 1; kFailure = 2; @@ -486,7 +486,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { kDelayByProvider = 4; } - enum UpdateStateEnum : ENUM8 { + enum UpdateStateEnum : enum8 { kUnknown = 0; kIdle = 1; kQuerying = 2; @@ -565,7 +565,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -580,12 +580,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -602,7 +602,7 @@ server cluster TimeFormatLocalization = 44 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -610,7 +610,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -666,7 +666,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -682,7 +682,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -691,13 +691,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -806,13 +806,13 @@ server cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -820,7 +820,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -843,7 +843,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -853,7 +853,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -867,7 +867,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -875,14 +875,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -948,7 +948,7 @@ server cluster GeneralDiagnostics = 51 { /** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster SoftwareDiagnostics = 52 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWaterMarks = 0x1; } @@ -982,13 +982,13 @@ server cluster SoftwareDiagnostics = 52 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -1023,12 +1023,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -1139,12 +1139,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } diff --git a/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter b/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter index 8386f1ea117b34..1ad1f5e17c41da 100644 --- a/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter +++ b/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -43,11 +43,11 @@ server cluster Identify = 3 { /** Attributes and commands for group configuration and manipulation. */ client cluster Groups = 4 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kGroupNames = 0x1; } - bitmap NameSupportBitmap : BITMAP8 { + bitmap NameSupportBitmap : bitmap8 { kGroupNames = 0x80; } @@ -118,7 +118,7 @@ client cluster Groups = 4 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -170,13 +170,13 @@ client cluster Binding = 30 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -184,7 +184,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -242,7 +242,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -266,7 +266,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -329,20 +329,20 @@ server cluster BasicInformation = 40 { /** Provides an interface for providing OTA software updates */ client cluster OtaSoftwareUpdateProvider = 41 { - enum ApplyUpdateActionEnum : ENUM8 { + enum ApplyUpdateActionEnum : enum8 { kProceed = 0; kAwaitNextAction = 1; kDiscontinue = 2; } - enum DownloadProtocolEnum : ENUM8 { + enum DownloadProtocolEnum : enum8 { kBDXSynchronous = 0; kBDXAsynchronous = 1; kHTTPS = 2; kVendorSpecific = 3; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kUpdateAvailable = 0; kBusy = 1; kNotAvailable = 2; @@ -403,13 +403,13 @@ client cluster OtaSoftwareUpdateProvider = 41 { /** Provides an interface for downloading and applying OTA software updates */ server cluster OtaSoftwareUpdateRequestor = 42 { - enum AnnouncementReasonEnum : ENUM8 { + enum AnnouncementReasonEnum : enum8 { kSimpleAnnouncement = 0; kUpdateAvailable = 1; kUrgentUpdateAvailable = 2; } - enum ChangeReasonEnum : ENUM8 { + enum ChangeReasonEnum : enum8 { kUnknown = 0; kSuccess = 1; kFailure = 2; @@ -417,7 +417,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { kDelayByProvider = 4; } - enum UpdateStateEnum : ENUM8 { + enum UpdateStateEnum : enum8 { kUnknown = 0; kIdle = 1; kQuerying = 2; @@ -496,7 +496,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -511,12 +511,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -533,7 +533,7 @@ server cluster TimeFormatLocalization = 44 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -541,7 +541,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -597,7 +597,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -613,7 +613,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -622,13 +622,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -737,13 +737,13 @@ server cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -751,7 +751,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -774,7 +774,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -784,7 +784,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -798,7 +798,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -806,14 +806,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -879,7 +879,7 @@ server cluster GeneralDiagnostics = 51 { /** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster SoftwareDiagnostics = 52 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWaterMarks = 0x1; } @@ -913,13 +913,13 @@ server cluster SoftwareDiagnostics = 52 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -954,12 +954,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -1070,12 +1070,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } diff --git a/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter b/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter index 42f0736a950d47..4747fcac8d84b3 100644 --- a/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter +++ b/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -43,11 +43,11 @@ server cluster Identify = 3 { /** Attributes and commands for group configuration and manipulation. */ server cluster Groups = 4 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kGroupNames = 0x1; } - bitmap NameSupportBitmap : BITMAP8 { + bitmap NameSupportBitmap : bitmap8 { kGroupNames = 0x80; } @@ -112,7 +112,7 @@ server cluster Groups = 4 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -164,13 +164,13 @@ client cluster Binding = 30 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -178,7 +178,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -236,7 +236,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -260,7 +260,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -323,20 +323,20 @@ server cluster BasicInformation = 40 { /** Provides an interface for providing OTA software updates */ client cluster OtaSoftwareUpdateProvider = 41 { - enum ApplyUpdateActionEnum : ENUM8 { + enum ApplyUpdateActionEnum : enum8 { kProceed = 0; kAwaitNextAction = 1; kDiscontinue = 2; } - enum DownloadProtocolEnum : ENUM8 { + enum DownloadProtocolEnum : enum8 { kBDXSynchronous = 0; kBDXAsynchronous = 1; kHTTPS = 2; kVendorSpecific = 3; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kUpdateAvailable = 0; kBusy = 1; kNotAvailable = 2; @@ -397,13 +397,13 @@ client cluster OtaSoftwareUpdateProvider = 41 { /** Provides an interface for downloading and applying OTA software updates */ server cluster OtaSoftwareUpdateRequestor = 42 { - enum AnnouncementReasonEnum : ENUM8 { + enum AnnouncementReasonEnum : enum8 { kSimpleAnnouncement = 0; kUpdateAvailable = 1; kUrgentUpdateAvailable = 2; } - enum ChangeReasonEnum : ENUM8 { + enum ChangeReasonEnum : enum8 { kUnknown = 0; kSuccess = 1; kFailure = 2; @@ -411,7 +411,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { kDelayByProvider = 4; } - enum UpdateStateEnum : ENUM8 { + enum UpdateStateEnum : enum8 { kUnknown = 0; kIdle = 1; kQuerying = 2; @@ -490,7 +490,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -505,12 +505,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -527,7 +527,7 @@ server cluster TimeFormatLocalization = 44 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -535,7 +535,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -591,7 +591,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -607,7 +607,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -616,13 +616,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -731,13 +731,13 @@ server cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -745,7 +745,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -768,7 +768,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -778,7 +778,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -792,7 +792,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -800,14 +800,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -873,7 +873,7 @@ server cluster GeneralDiagnostics = 51 { /** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster SoftwareDiagnostics = 52 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWaterMarks = 0x1; } @@ -907,13 +907,13 @@ server cluster SoftwareDiagnostics = 52 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -948,12 +948,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -1064,12 +1064,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -1153,13 +1153,13 @@ server cluster FixedLabel = 64 { /** An interface for configuring and controlling the functionality of a thermostat. */ server cluster Thermostat = 513 { - enum SetpointAdjustMode : ENUM8 { + enum SetpointAdjustMode : enum8 { kHeat = 0; kCool = 1; kBoth = 2; } - enum ThermostatControlSequence : ENUM8 { + enum ThermostatControlSequence : enum8 { kCoolingOnly = 0; kCoolingWithReheat = 1; kHeatingOnly = 2; @@ -1168,13 +1168,13 @@ server cluster Thermostat = 513 { kCoolingAndHeatingWithReheat = 5; } - enum ThermostatRunningMode : ENUM8 { + enum ThermostatRunningMode : enum8 { kOff = 0; kCool = 3; kHeat = 4; } - enum ThermostatSystemMode : ENUM8 { + enum ThermostatSystemMode : enum8 { kOff = 0; kAuto = 1; kCool = 3; @@ -1186,7 +1186,7 @@ server cluster Thermostat = 513 { kSleep = 9; } - bitmap DayOfWeek : BITMAP8 { + bitmap DayOfWeek : bitmap8 { kSunday = 0x1; kMonday = 0x2; kTuesday = 0x4; @@ -1197,7 +1197,7 @@ server cluster Thermostat = 513 { kAway = 0x80; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kHeating = 0x1; kCooling = 0x2; kOccupancy = 0x4; @@ -1207,7 +1207,7 @@ server cluster Thermostat = 513 { kLocalTemperatureNotExposed = 0x40; } - bitmap ModeForSequence : BITMAP8 { + bitmap ModeForSequence : bitmap8 { kHeatSetpointPresent = 0x1; kCoolSetpointPresent = 0x2; } @@ -1261,13 +1261,13 @@ server cluster Thermostat = 513 { } /** An interface for controlling a fan in a heating/cooling system. */ -client cluster FanControl = 514 { - enum AirflowDirectionEnum : ENUM8 { +provisional client cluster FanControl = 514 { + enum AirflowDirectionEnum : enum8 { kForward = 0; kReverse = 1; } - enum FanModeEnum : ENUM8 { + enum FanModeEnum : enum8 { kOff = 0; kLow = 1; kMedium = 2; @@ -1277,7 +1277,7 @@ client cluster FanControl = 514 { kSmart = 6; } - enum FanModeSequenceEnum : ENUM8 { + enum FanModeSequenceEnum : enum8 { kOffLowMedHigh = 0; kOffLowHigh = 1; kOffLowMedHighAuto = 2; @@ -1286,12 +1286,12 @@ client cluster FanControl = 514 { kOffOn = 5; } - enum StepDirectionEnum : ENUM8 { + enum StepDirectionEnum : enum8 { kIncrease = 0; kDecrease = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kMultiSpeed = 0x1; kAuto = 0x2; kRocking = 0x4; @@ -1300,13 +1300,13 @@ client cluster FanControl = 514 { kAirflowDirection = 0x20; } - bitmap RockBitmap : BITMAP8 { + bitmap RockBitmap : bitmap8 { kRockLeftRight = 0x1; kRockUpDown = 0x2; kRockRound = 0x4; } - bitmap WindBitmap : BITMAP8 { + bitmap WindBitmap : bitmap8 { kSleepWind = 0x1; kNaturalWind = 0x2; } @@ -1382,18 +1382,18 @@ client cluster RelativeHumidityMeasurement = 1029 { /** Attributes and commands for configuring occupancy sensing, and reporting occupancy status. */ client cluster OccupancySensing = 1030 { - enum OccupancySensorTypeEnum : ENUM8 { + enum OccupancySensorTypeEnum : enum8 { kPIR = 0; kUltrasonic = 1; kPIRAndUltrasonic = 2; kPhysicalContact = 3; } - bitmap OccupancyBitmap : BITMAP8 { + bitmap OccupancyBitmap : bitmap8 { kOccupied = 0x1; } - bitmap OccupancySensorTypeBitmap : BITMAP8 { + bitmap OccupancySensorTypeBitmap : bitmap8 { kPIR = 0x1; kUltrasonic = 0x2; kPhysicalContact = 0x4; diff --git a/examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.matter b/examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.matter index 8ff26857500aae..0e8dde914a4176 100644 --- a/examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.matter +++ b/examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -43,11 +43,11 @@ server cluster Identify = 3 { /** Attributes and commands for group configuration and manipulation. */ server cluster Groups = 4 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kGroupNames = 0x1; } - bitmap NameSupportBitmap : BITMAP8 { + bitmap NameSupportBitmap : bitmap8 { kGroupNames = 0x80; } @@ -112,7 +112,7 @@ server cluster Groups = 4 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -164,13 +164,13 @@ client cluster Binding = 30 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -178,7 +178,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -236,7 +236,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -260,7 +260,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -323,20 +323,20 @@ server cluster BasicInformation = 40 { /** Provides an interface for providing OTA software updates */ client cluster OtaSoftwareUpdateProvider = 41 { - enum ApplyUpdateActionEnum : ENUM8 { + enum ApplyUpdateActionEnum : enum8 { kProceed = 0; kAwaitNextAction = 1; kDiscontinue = 2; } - enum DownloadProtocolEnum : ENUM8 { + enum DownloadProtocolEnum : enum8 { kBDXSynchronous = 0; kBDXAsynchronous = 1; kHTTPS = 2; kVendorSpecific = 3; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kUpdateAvailable = 0; kBusy = 1; kNotAvailable = 2; @@ -397,13 +397,13 @@ client cluster OtaSoftwareUpdateProvider = 41 { /** Provides an interface for downloading and applying OTA software updates */ server cluster OtaSoftwareUpdateRequestor = 42 { - enum AnnouncementReasonEnum : ENUM8 { + enum AnnouncementReasonEnum : enum8 { kSimpleAnnouncement = 0; kUpdateAvailable = 1; kUrgentUpdateAvailable = 2; } - enum ChangeReasonEnum : ENUM8 { + enum ChangeReasonEnum : enum8 { kUnknown = 0; kSuccess = 1; kFailure = 2; @@ -411,7 +411,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { kDelayByProvider = 4; } - enum UpdateStateEnum : ENUM8 { + enum UpdateStateEnum : enum8 { kUnknown = 0; kIdle = 1; kQuerying = 2; @@ -490,7 +490,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -505,12 +505,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -527,7 +527,7 @@ server cluster TimeFormatLocalization = 44 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -535,7 +535,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -591,7 +591,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -607,7 +607,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -616,13 +616,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -731,13 +731,13 @@ server cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -745,7 +745,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -768,7 +768,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -778,7 +778,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -792,7 +792,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -800,14 +800,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -873,7 +873,7 @@ server cluster GeneralDiagnostics = 51 { /** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster SoftwareDiagnostics = 52 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWaterMarks = 0x1; } @@ -907,13 +907,13 @@ server cluster SoftwareDiagnostics = 52 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -948,12 +948,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -1064,12 +1064,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -1153,7 +1153,7 @@ server cluster FixedLabel = 64 { /** Provides an interface for controlling and adjusting automatic window coverings. */ server cluster WindowCovering = 258 { - enum EndProductType : ENUM8 { + enum EndProductType : enum8 { kRollerShade = 0; kRomanShade = 1; kBalloonShade = 2; @@ -1181,7 +1181,7 @@ server cluster WindowCovering = 258 { kUnknown = 255; } - enum Type : ENUM8 { + enum Type : enum8 { kRollerShade = 0; kRollerShade2Motor = 1; kRollerShadeExterior = 2; @@ -1195,7 +1195,7 @@ server cluster WindowCovering = 258 { kUnknown = 255; } - bitmap ConfigStatus : BITMAP8 { + bitmap ConfigStatus : bitmap8 { kOperational = 0x1; kOnlineReserved = 0x2; kLiftMovementReversed = 0x4; @@ -1205,7 +1205,7 @@ server cluster WindowCovering = 258 { kTiltEncoderControlled = 0x40; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kLift = 0x1; kTilt = 0x2; kPositionAwareLift = 0x4; @@ -1213,20 +1213,20 @@ server cluster WindowCovering = 258 { kPositionAwareTilt = 0x10; } - bitmap Mode : BITMAP8 { + bitmap Mode : bitmap8 { kMotorDirectionReversed = 0x1; kCalibrationMode = 0x2; kMaintenanceMode = 0x4; kLedFeedback = 0x8; } - bitmap OperationalStatus : BITMAP8 { + bitmap OperationalStatus : bitmap8 { kGlobal = 0x3; kLift = 0xC; kTilt = 0x30; } - bitmap SafetyStatus : BITMAP16 { + bitmap SafetyStatus : bitmap16 { kRemoteLockout = 0x1; kTamperDetection = 0x2; kFailedCommunication = 0x4; diff --git a/examples/contact-sensor-app/contact-sensor-common/contact-sensor-app.matter b/examples/contact-sensor-app/contact-sensor-common/contact-sensor-app.matter index 2b972c0f9799d1..39f3fa7643d0dc 100644 --- a/examples/contact-sensor-app/contact-sensor-common/contact-sensor-app.matter +++ b/examples/contact-sensor-app/contact-sensor-common/contact-sensor-app.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -49,11 +49,11 @@ server cluster Identify = 3 { /** Attributes and commands for group configuration and manipulation. */ server cluster Groups = 4 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kGroupNames = 0x1; } - bitmap NameSupportBitmap : BITMAP8 { + bitmap NameSupportBitmap : bitmap8 { kGroupNames = 0x80; } @@ -118,7 +118,7 @@ server cluster Groups = 4 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -151,13 +151,13 @@ server cluster Descriptor = 29 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -165,7 +165,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -223,7 +223,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -247,7 +247,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -310,20 +310,20 @@ server cluster BasicInformation = 40 { /** Provides an interface for providing OTA software updates */ client cluster OtaSoftwareUpdateProvider = 41 { - enum ApplyUpdateActionEnum : ENUM8 { + enum ApplyUpdateActionEnum : enum8 { kProceed = 0; kAwaitNextAction = 1; kDiscontinue = 2; } - enum DownloadProtocolEnum : ENUM8 { + enum DownloadProtocolEnum : enum8 { kBDXSynchronous = 0; kBDXAsynchronous = 1; kHTTPS = 2; kVendorSpecific = 3; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kUpdateAvailable = 0; kBusy = 1; kNotAvailable = 2; @@ -384,13 +384,13 @@ client cluster OtaSoftwareUpdateProvider = 41 { /** Provides an interface for downloading and applying OTA software updates */ server cluster OtaSoftwareUpdateRequestor = 42 { - enum AnnouncementReasonEnum : ENUM8 { + enum AnnouncementReasonEnum : enum8 { kSimpleAnnouncement = 0; kUpdateAvailable = 1; kUrgentUpdateAvailable = 2; } - enum ChangeReasonEnum : ENUM8 { + enum ChangeReasonEnum : enum8 { kUnknown = 0; kSuccess = 1; kFailure = 2; @@ -398,7 +398,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { kDelayByProvider = 4; } - enum UpdateStateEnum : ENUM8 { + enum UpdateStateEnum : enum8 { kUnknown = 0; kIdle = 1; kQuerying = 2; @@ -477,7 +477,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -492,12 +492,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -514,7 +514,7 @@ server cluster TimeFormatLocalization = 44 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -522,7 +522,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -578,7 +578,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -594,7 +594,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -603,13 +603,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -718,13 +718,13 @@ server cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -732,7 +732,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -755,7 +755,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -765,7 +765,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -779,7 +779,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -787,14 +787,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -860,7 +860,7 @@ server cluster GeneralDiagnostics = 51 { /** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster SoftwareDiagnostics = 52 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWaterMarks = 0x1; } @@ -894,19 +894,19 @@ server cluster SoftwareDiagnostics = 52 { /** The Thread Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems */ server cluster ThreadNetworkDiagnostics = 53 { - enum ConnectionStatusEnum : ENUM8 { + enum ConnectionStatusEnum : enum8 { kConnected = 0; kNotConnected = 1; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kLinkDown = 1; kHardwareFailure = 2; kNetworkJammed = 3; } - enum RoutingRoleEnum : ENUM8 { + enum RoutingRoleEnum : enum8 { kUnspecified = 0; kUnassigned = 1; kSleepyEndDevice = 2; @@ -916,7 +916,7 @@ server cluster ThreadNetworkDiagnostics = 53 { kLeader = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; kMLECounts = 0x4; @@ -1057,19 +1057,19 @@ server cluster ThreadNetworkDiagnostics = 53 { /** The Wi-Fi Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster WiFiNetworkDiagnostics = 54 { - enum AssociationFailureCauseEnum : ENUM8 { + enum AssociationFailureCauseEnum : enum8 { kUnknown = 0; kAssociationFailed = 1; kAuthenticationFailed = 2; kSsidNotFound = 3; } - enum ConnectionStatusEnum : ENUM8 { + enum ConnectionStatusEnum : enum8 { kConnected = 0; kNotConnected = 1; } - enum SecurityTypeEnum : ENUM8 { + enum SecurityTypeEnum : enum8 { kUnspecified = 0; kNone = 1; kWEP = 2; @@ -1078,7 +1078,7 @@ server cluster WiFiNetworkDiagnostics = 54 { kWPA3 = 5; } - enum WiFiVersionEnum : ENUM8 { + enum WiFiVersionEnum : enum8 { kA = 0; kB = 1; kG = 2; @@ -1088,7 +1088,7 @@ server cluster WiFiNetworkDiagnostics = 54 { kAh = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; } @@ -1131,7 +1131,7 @@ server cluster WiFiNetworkDiagnostics = 54 { /** The Ethernet Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster EthernetNetworkDiagnostics = 55 { - enum PHYRateEnum : ENUM8 { + enum PHYRateEnum : enum8 { kRate10M = 0; kRate100M = 1; kRate1G = 2; @@ -1144,7 +1144,7 @@ server cluster EthernetNetworkDiagnostics = 55 { kRate400G = 9; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; } @@ -1170,13 +1170,13 @@ server cluster EthernetNetworkDiagnostics = 55 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -1211,12 +1211,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -1327,12 +1327,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -1447,18 +1447,18 @@ server cluster BooleanState = 69 { /** Attributes and commands for configuring occupancy sensing, and reporting occupancy status. */ server cluster OccupancySensing = 1030 { - enum OccupancySensorTypeEnum : ENUM8 { + enum OccupancySensorTypeEnum : enum8 { kPIR = 0; kUltrasonic = 1; kPIRAndUltrasonic = 2; kPhysicalContact = 3; } - bitmap OccupancyBitmap : BITMAP8 { + bitmap OccupancyBitmap : bitmap8 { kOccupied = 0x1; } - bitmap OccupancySensorTypeBitmap : BITMAP8 { + bitmap OccupancySensorTypeBitmap : bitmap8 { kPIR = 0x1; kUltrasonic = 0x2; kPhysicalContact = 0x4; diff --git a/examples/darwin-framework-tool/commands/delay/WaitForCommissioneeCommand.h b/examples/darwin-framework-tool/commands/delay/WaitForCommissioneeCommand.h index 053d8c04247493..a262c1a3537c33 100644 --- a/examples/darwin-framework-tool/commands/delay/WaitForCommissioneeCommand.h +++ b/examples/darwin-framework-tool/commands/delay/WaitForCommissioneeCommand.h @@ -22,24 +22,15 @@ #include #include -NS_ASSUME_NONNULL_BEGIN -@interface MTRDeviceTestDelegate : NSObject -@property CHIPCommandBridge * commandBridge; -- (instancetype)initWithCommandBridge:(CHIPCommandBridge *)commandBridge; -- (instancetype)init NS_UNAVAILABLE; -@end -NS_ASSUME_NONNULL_END - -class WaitForCommissioneeCommand : public CHIPCommandBridge { +class WaitForCommissioneeCommand : public CHIPCommandBridge +{ public: - WaitForCommissioneeCommand() - : CHIPCommandBridge("wait-for-commissionee") - , mDeviceDelegate([[MTRDeviceTestDelegate alloc] initWithCommandBridge:this]) + WaitForCommissioneeCommand() : CHIPCommandBridge("wait-for-commissionee") { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("expire-existing-session", 0, 1, &mExpireExistingSession); - AddArgument( - "timeout", 0, UINT64_MAX, &mTimeoutSecs, "Time, in seconds, before this command is considered to have timed out."); + AddArgument("timeout", 0, UINT64_MAX, &mTimeoutSecs, + "Time, in seconds, before this command is considered to have timed out."); } /////////// CHIPCommandBridge Interface ///////// @@ -53,5 +44,4 @@ class WaitForCommissioneeCommand : public CHIPCommandBridge { chip::NodeId mNodeId; chip::Optional mTimeoutSecs; chip::Optional mExpireExistingSession; - id _Nullable mDeviceDelegate; }; diff --git a/examples/darwin-framework-tool/commands/delay/WaitForCommissioneeCommand.mm b/examples/darwin-framework-tool/commands/delay/WaitForCommissioneeCommand.mm index a806757ac1eb85..6bc25defa21d1a 100644 --- a/examples/darwin-framework-tool/commands/delay/WaitForCommissioneeCommand.mm +++ b/examples/darwin-framework-tool/commands/delay/WaitForCommissioneeCommand.mm @@ -20,43 +20,10 @@ #import "MTRDevice_Externs.h" -@implementation MTRDeviceTestDelegate -- (instancetype)initWithCommandBridge:(CHIPCommandBridge *)commandBridge -{ - if (!(self = [super init])) { - return nil; - } - - _commandBridge = commandBridge; - return self; -} - -- (void)device:(MTRDevice *)device stateChanged:(MTRDeviceState)state -{ - if (state == MTRDeviceStateReachable) { - _commandBridge->SetCommandExitStatus(CHIP_NO_ERROR); - } else if (state == MTRDeviceStateUnreachable) { - _commandBridge->SetCommandExitStatus(CHIP_ERROR_NOT_FOUND); - } else if (state == MTRDeviceStateUnknown) { - _commandBridge->SetCommandExitStatus(CHIP_ERROR_NOT_FOUND); - } else { - // This should not happens. - chipDie(); - } -} - -- (void)device:(MTRDevice *)device receivedAttributeReport:(NSArray *> *)attributeReport -{ -} - -- (void)device:(MTRDevice *)device receivedEventReport:(NSArray *> *)eventReport -{ -} -@end - CHIP_ERROR WaitForCommissioneeCommand::RunCommand() { MTRDeviceController * commissioner = CurrentCommissioner(); + VerifyOrReturnError(nil != commissioner, CHIP_ERROR_INCORRECT_STATE); auto * base_device = [MTRBaseDevice deviceWithNodeID:@(mNodeId) controller:commissioner]; VerifyOrReturnError(base_device != nil, CHIP_ERROR_INCORRECT_STATE); @@ -64,13 +31,7 @@ - (void)device:(MTRDevice *)device receivedEventReport:(NSArray #include #ifdef CONFIG_CHIP_WIFI @@ -42,36 +40,49 @@ class AppFabricTableDelegate : public chip::FabricTable::Delegate #ifndef CONFIG_CHIP_LAST_FABRIC_REMOVED_NONE static AppFabricTableDelegate sAppFabricDelegate; chip::Server::GetInstance().GetFabricTable().AddFabricDelegate(&sAppFabricDelegate); + k_timer_init(&sFabricRemovedTimer, &OnFabricRemovedTimerCallback, nullptr); #endif // CONFIG_CHIP_LAST_FABRIC_REMOVED_NONE } private: void OnFabricRemoved(const chip::FabricTable & fabricTable, chip::FabricIndex fabricIndex) + { + k_timer_start(&sFabricRemovedTimer, K_MSEC(CONFIG_CHIP_LAST_FABRIC_REMOVED_ACTION_DELAY), K_NO_WAIT); + } + + static void OnFabricRemovedTimerCallback(k_timer * timer) { #ifndef CONFIG_CHIP_LAST_FABRIC_REMOVED_NONE if (chip::Server::GetInstance().GetFabricTable().FabricCount() == 0) { + chip::DeviceLayer::PlatformMgr().ScheduleWork([](intptr_t) { #ifdef CONFIG_CHIP_LAST_FABRIC_REMOVED_ERASE_AND_REBOOT - chip::Server::GetInstance().ScheduleFactoryReset(); + chip::Server::GetInstance().ScheduleFactoryReset(); #elif defined(CONFIG_CHIP_LAST_FABRIC_REMOVED_ERASE_ONLY) || defined(CONFIG_CHIP_LAST_FABRIC_REMOVED_ERASE_AND_PAIRING_START) - chip::DeviceLayer::PlatformMgr().ScheduleWork([](intptr_t) { - /* Erase Matter data */ + // Erase Matter data chip::DeviceLayer::PersistedStorage::KeyValueStoreMgrImpl().DoFactoryReset(); - /* Erase Network credentials and disconnect */ + // Erase Network credentials and disconnect chip::DeviceLayer::ConnectivityMgr().ErasePersistentInfo(); #ifdef CONFIG_CHIP_WIFI chip::DeviceLayer::WiFiManager::Instance().Disconnect(); chip::DeviceLayer::ConnectivityMgr().ClearWiFiStationProvision(); #endif #ifdef CONFIG_CHIP_LAST_FABRIC_REMOVED_ERASE_AND_PAIRING_START - /* Start the New BLE advertising */ - AppEvent event; - event.Handler = AppTask::StartBLEAdvertisementHandler; - AppTask::Instance().PostEvent(event); + // Start the New BLE advertising + if (!chip::DeviceLayer::ConnectivityMgr().IsBLEAdvertisingEnabled()) + { + if (CHIP_NO_ERROR == chip::Server::GetInstance().GetCommissioningWindowManager().OpenBasicCommissioningWindow()) + { + return; + } + } + ChipLogError(FabricProvisioning, "Could not start Bluetooth LE advertising"); #endif // CONFIG_CHIP_LAST_FABRIC_REMOVED_ERASE_AND_PAIRING_START - }); #endif // CONFIG_CHIP_LAST_FABRIC_REMOVED_ERASE_AND_REBOOT + }); } #endif // CONFIG_CHIP_LAST_FABRIC_REMOVED_NONE } + + inline static k_timer sFabricRemovedTimer; }; diff --git a/examples/pump-app/nrfconnect/main/include/AppTask.h b/examples/pump-app/nrfconnect/main/include/AppTask.h index e36bedd01b0efb..fb2fe2c855cb1a 100644 --- a/examples/pump-app/nrfconnect/main/include/AppTask.h +++ b/examples/pump-app/nrfconnect/main/include/AppTask.h @@ -36,13 +36,10 @@ #endif struct k_timer; -class AppFabricTableDelegate; class AppTask { public: - friend class AppFabricTableDelegate; - static AppTask & Instance(void) { static AppTask sAppTask; diff --git a/examples/pump-app/pump-common/pump-app.matter b/examples/pump-app/pump-common/pump-app.matter index 1773f74127a82f..23649a4461e95b 100644 --- a/examples/pump-app/pump-common/pump-app.matter +++ b/examples/pump-app/pump-common/pump-app.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -43,33 +43,33 @@ server cluster Identify = 3 { /** Attributes and commands for switching devices between 'On' and 'Off' states. */ server cluster OnOff = 6 { - enum DelayedAllOffEffectVariantEnum : ENUM8 { + enum DelayedAllOffEffectVariantEnum : enum8 { kDelayedOffFastFade = 0; kNoFade = 1; kDelayedOffSlowFade = 2; } - enum DyingLightEffectVariantEnum : ENUM8 { + enum DyingLightEffectVariantEnum : enum8 { kDyingLightFadeOff = 0; } - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kDelayedAllOff = 0; kDyingLight = 1; } - enum StartUpOnOffEnum : ENUM8 { + enum StartUpOnOffEnum : enum8 { kOff = 0; kOn = 1; kToggle = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kLighting = 0x1; kDeadFrontBehavior = 0x2; } - bitmap OnOffControlBitmap : BITMAP8 { + bitmap OnOffControlBitmap : bitmap8 { kAcceptOnlyWhenOn = 0x1; } @@ -88,23 +88,23 @@ server cluster OnOff = 6 { /** Attributes and commands for controlling devices that can be set to a level between fully 'On' and fully 'Off.' */ server cluster LevelControl = 8 { - enum MoveMode : ENUM8 { + enum MoveMode : enum8 { kUp = 0; kDown = 1; } - enum StepMode : ENUM8 { + enum StepMode : enum8 { kUp = 0; kDown = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kOnOff = 0x1; kLighting = 0x2; kFrequency = 0x4; } - bitmap LevelControlOptions : BITMAP8 { + bitmap LevelControlOptions : bitmap8 { kExecuteIfOff = 0x1; kCoupleColorTempToLevel = 0x2; } @@ -187,7 +187,7 @@ server cluster LevelControl = 8 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -239,13 +239,13 @@ server cluster Binding = 30 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -253,7 +253,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -311,7 +311,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -335,7 +335,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -396,20 +396,20 @@ server cluster BasicInformation = 40 { /** Provides an interface for providing OTA software updates */ client cluster OtaSoftwareUpdateProvider = 41 { - enum ApplyUpdateActionEnum : ENUM8 { + enum ApplyUpdateActionEnum : enum8 { kProceed = 0; kAwaitNextAction = 1; kDiscontinue = 2; } - enum DownloadProtocolEnum : ENUM8 { + enum DownloadProtocolEnum : enum8 { kBDXSynchronous = 0; kBDXAsynchronous = 1; kHTTPS = 2; kVendorSpecific = 3; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kUpdateAvailable = 0; kBusy = 1; kNotAvailable = 2; @@ -470,13 +470,13 @@ client cluster OtaSoftwareUpdateProvider = 41 { /** Provides an interface for downloading and applying OTA software updates */ server cluster OtaSoftwareUpdateRequestor = 42 { - enum AnnouncementReasonEnum : ENUM8 { + enum AnnouncementReasonEnum : enum8 { kSimpleAnnouncement = 0; kUpdateAvailable = 1; kUrgentUpdateAvailable = 2; } - enum ChangeReasonEnum : ENUM8 { + enum ChangeReasonEnum : enum8 { kUnknown = 0; kSuccess = 1; kFailure = 2; @@ -484,7 +484,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { kDelayByProvider = 4; } - enum UpdateStateEnum : ENUM8 { + enum UpdateStateEnum : enum8 { kUnknown = 0; kIdle = 1; kQuerying = 2; @@ -545,7 +545,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -553,7 +553,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -609,7 +609,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -625,7 +625,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -634,13 +634,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -742,7 +742,7 @@ server cluster NetworkCommissioning = 49 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -752,7 +752,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -766,7 +766,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -774,14 +774,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -841,19 +841,19 @@ server cluster GeneralDiagnostics = 51 { /** The Thread Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems */ server cluster ThreadNetworkDiagnostics = 53 { - enum ConnectionStatusEnum : ENUM8 { + enum ConnectionStatusEnum : enum8 { kConnected = 0; kNotConnected = 1; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kLinkDown = 1; kHardwareFailure = 2; kNetworkJammed = 3; } - enum RoutingRoleEnum : ENUM8 { + enum RoutingRoleEnum : enum8 { kUnspecified = 0; kUnassigned = 1; kSleepyEndDevice = 2; @@ -863,7 +863,7 @@ server cluster ThreadNetworkDiagnostics = 53 { kLeader = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; kMLECounts = 0x4; @@ -958,13 +958,13 @@ server cluster ThreadNetworkDiagnostics = 53 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -999,12 +999,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -1115,12 +1115,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -1187,7 +1187,7 @@ server cluster GroupKeyManagement = 63 { /** An interface for configuring and controlling pumps. */ server cluster PumpConfigurationAndControl = 512 { - enum ControlModeEnum : ENUM8 { + enum ControlModeEnum : enum8 { kConstantSpeed = 0; kConstantPressure = 1; kProportionalPressure = 2; @@ -1196,14 +1196,14 @@ server cluster PumpConfigurationAndControl = 512 { kAutomatic = 7; } - enum OperationModeEnum : ENUM8 { + enum OperationModeEnum : enum8 { kNormal = 0; kMinimum = 1; kMaximum = 2; kLocal = 3; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kConstantPressure = 0x1; kCompensatedPressure = 0x2; kConstantFlow = 0x4; @@ -1213,7 +1213,7 @@ server cluster PumpConfigurationAndControl = 512 { kLocalOperation = 0x40; } - bitmap PumpStatusBitmap : BITMAP16 { + bitmap PumpStatusBitmap : bitmap16 { kDeviceFault = 0x1; kSupplyfault = 0x2; kSpeedLow = 0x4; @@ -1323,7 +1323,7 @@ server cluster TemperatureMeasurement = 1026 { /** Attributes and commands for configuring the measurement of pressure, and reporting pressure measurements. */ server cluster PressureMeasurement = 1027 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kExtended = 0x1; } @@ -1360,18 +1360,18 @@ server cluster FlowMeasurement = 1028 { /** Attributes and commands for configuring occupancy sensing, and reporting occupancy status. */ client cluster OccupancySensing = 1030 { - enum OccupancySensorTypeEnum : ENUM8 { + enum OccupancySensorTypeEnum : enum8 { kPIR = 0; kUltrasonic = 1; kPIRAndUltrasonic = 2; kPhysicalContact = 3; } - bitmap OccupancyBitmap : BITMAP8 { + bitmap OccupancyBitmap : bitmap8 { kOccupied = 0x1; } - bitmap OccupancySensorTypeBitmap : BITMAP8 { + bitmap OccupancySensorTypeBitmap : bitmap8 { kPIR = 0x1; kUltrasonic = 0x2; kPhysicalContact = 0x4; diff --git a/examples/pump-app/silabs/data_model/pump-thread-app.matter b/examples/pump-app/silabs/data_model/pump-thread-app.matter index 39acb76a9d6e3c..7a4f9d38022861 100644 --- a/examples/pump-app/silabs/data_model/pump-thread-app.matter +++ b/examples/pump-app/silabs/data_model/pump-thread-app.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -43,33 +43,33 @@ server cluster Identify = 3 { /** Attributes and commands for switching devices between 'On' and 'Off' states. */ server cluster OnOff = 6 { - enum DelayedAllOffEffectVariantEnum : ENUM8 { + enum DelayedAllOffEffectVariantEnum : enum8 { kDelayedOffFastFade = 0; kNoFade = 1; kDelayedOffSlowFade = 2; } - enum DyingLightEffectVariantEnum : ENUM8 { + enum DyingLightEffectVariantEnum : enum8 { kDyingLightFadeOff = 0; } - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kDelayedAllOff = 0; kDyingLight = 1; } - enum StartUpOnOffEnum : ENUM8 { + enum StartUpOnOffEnum : enum8 { kOff = 0; kOn = 1; kToggle = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kLighting = 0x1; kDeadFrontBehavior = 0x2; } - bitmap OnOffControlBitmap : BITMAP8 { + bitmap OnOffControlBitmap : bitmap8 { kAcceptOnlyWhenOn = 0x1; } @@ -88,23 +88,23 @@ server cluster OnOff = 6 { /** Attributes and commands for controlling devices that can be set to a level between fully 'On' and fully 'Off.' */ server cluster LevelControl = 8 { - enum MoveMode : ENUM8 { + enum MoveMode : enum8 { kUp = 0; kDown = 1; } - enum StepMode : ENUM8 { + enum StepMode : enum8 { kUp = 0; kDown = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kOnOff = 0x1; kLighting = 0x2; kFrequency = 0x4; } - bitmap LevelControlOptions : BITMAP8 { + bitmap LevelControlOptions : bitmap8 { kExecuteIfOff = 0x1; kCoupleColorTempToLevel = 0x2; } @@ -187,7 +187,7 @@ server cluster LevelControl = 8 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -239,13 +239,13 @@ server cluster Binding = 30 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -253,7 +253,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -311,7 +311,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -335,7 +335,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -396,20 +396,20 @@ server cluster BasicInformation = 40 { /** Provides an interface for providing OTA software updates */ client cluster OtaSoftwareUpdateProvider = 41 { - enum ApplyUpdateActionEnum : ENUM8 { + enum ApplyUpdateActionEnum : enum8 { kProceed = 0; kAwaitNextAction = 1; kDiscontinue = 2; } - enum DownloadProtocolEnum : ENUM8 { + enum DownloadProtocolEnum : enum8 { kBDXSynchronous = 0; kBDXAsynchronous = 1; kHTTPS = 2; kVendorSpecific = 3; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kUpdateAvailable = 0; kBusy = 1; kNotAvailable = 2; @@ -470,13 +470,13 @@ client cluster OtaSoftwareUpdateProvider = 41 { /** Provides an interface for downloading and applying OTA software updates */ server cluster OtaSoftwareUpdateRequestor = 42 { - enum AnnouncementReasonEnum : ENUM8 { + enum AnnouncementReasonEnum : enum8 { kSimpleAnnouncement = 0; kUpdateAvailable = 1; kUrgentUpdateAvailable = 2; } - enum ChangeReasonEnum : ENUM8 { + enum ChangeReasonEnum : enum8 { kUnknown = 0; kSuccess = 1; kFailure = 2; @@ -484,7 +484,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { kDelayByProvider = 4; } - enum UpdateStateEnum : ENUM8 { + enum UpdateStateEnum : enum8 { kUnknown = 0; kIdle = 1; kQuerying = 2; @@ -545,7 +545,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -553,7 +553,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -609,7 +609,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -625,7 +625,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -634,13 +634,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -742,7 +742,7 @@ server cluster NetworkCommissioning = 49 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -752,7 +752,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -766,7 +766,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -774,14 +774,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -841,19 +841,19 @@ server cluster GeneralDiagnostics = 51 { /** The Thread Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems */ server cluster ThreadNetworkDiagnostics = 53 { - enum ConnectionStatusEnum : ENUM8 { + enum ConnectionStatusEnum : enum8 { kConnected = 0; kNotConnected = 1; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kLinkDown = 1; kHardwareFailure = 2; kNetworkJammed = 3; } - enum RoutingRoleEnum : ENUM8 { + enum RoutingRoleEnum : enum8 { kUnspecified = 0; kUnassigned = 1; kSleepyEndDevice = 2; @@ -863,7 +863,7 @@ server cluster ThreadNetworkDiagnostics = 53 { kLeader = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; kMLECounts = 0x4; @@ -958,13 +958,13 @@ server cluster ThreadNetworkDiagnostics = 53 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -999,12 +999,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -1115,12 +1115,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -1187,7 +1187,7 @@ server cluster GroupKeyManagement = 63 { /** An interface for configuring and controlling pumps. */ server cluster PumpConfigurationAndControl = 512 { - enum ControlModeEnum : ENUM8 { + enum ControlModeEnum : enum8 { kConstantSpeed = 0; kConstantPressure = 1; kProportionalPressure = 2; @@ -1196,14 +1196,14 @@ server cluster PumpConfigurationAndControl = 512 { kAutomatic = 7; } - enum OperationModeEnum : ENUM8 { + enum OperationModeEnum : enum8 { kNormal = 0; kMinimum = 1; kMaximum = 2; kLocal = 3; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kConstantPressure = 0x1; kCompensatedPressure = 0x2; kConstantFlow = 0x4; @@ -1213,7 +1213,7 @@ server cluster PumpConfigurationAndControl = 512 { kLocalOperation = 0x40; } - bitmap PumpStatusBitmap : BITMAP16 { + bitmap PumpStatusBitmap : bitmap16 { kDeviceFault = 0x1; kSupplyfault = 0x2; kSpeedLow = 0x4; @@ -1323,7 +1323,7 @@ server cluster TemperatureMeasurement = 1026 { /** Attributes and commands for configuring the measurement of pressure, and reporting pressure measurements. */ server cluster PressureMeasurement = 1027 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kExtended = 0x1; } @@ -1360,18 +1360,18 @@ server cluster FlowMeasurement = 1028 { /** Attributes and commands for configuring occupancy sensing, and reporting occupancy status. */ client cluster OccupancySensing = 1030 { - enum OccupancySensorTypeEnum : ENUM8 { + enum OccupancySensorTypeEnum : enum8 { kPIR = 0; kUltrasonic = 1; kPIRAndUltrasonic = 2; kPhysicalContact = 3; } - bitmap OccupancyBitmap : BITMAP8 { + bitmap OccupancyBitmap : bitmap8 { kOccupied = 0x1; } - bitmap OccupancySensorTypeBitmap : BITMAP8 { + bitmap OccupancySensorTypeBitmap : bitmap8 { kPIR = 0x1; kUltrasonic = 0x2; kPhysicalContact = 0x4; diff --git a/examples/pump-app/silabs/data_model/pump-wifi-app.matter b/examples/pump-app/silabs/data_model/pump-wifi-app.matter index 39acb76a9d6e3c..7a4f9d38022861 100644 --- a/examples/pump-app/silabs/data_model/pump-wifi-app.matter +++ b/examples/pump-app/silabs/data_model/pump-wifi-app.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -43,33 +43,33 @@ server cluster Identify = 3 { /** Attributes and commands for switching devices between 'On' and 'Off' states. */ server cluster OnOff = 6 { - enum DelayedAllOffEffectVariantEnum : ENUM8 { + enum DelayedAllOffEffectVariantEnum : enum8 { kDelayedOffFastFade = 0; kNoFade = 1; kDelayedOffSlowFade = 2; } - enum DyingLightEffectVariantEnum : ENUM8 { + enum DyingLightEffectVariantEnum : enum8 { kDyingLightFadeOff = 0; } - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kDelayedAllOff = 0; kDyingLight = 1; } - enum StartUpOnOffEnum : ENUM8 { + enum StartUpOnOffEnum : enum8 { kOff = 0; kOn = 1; kToggle = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kLighting = 0x1; kDeadFrontBehavior = 0x2; } - bitmap OnOffControlBitmap : BITMAP8 { + bitmap OnOffControlBitmap : bitmap8 { kAcceptOnlyWhenOn = 0x1; } @@ -88,23 +88,23 @@ server cluster OnOff = 6 { /** Attributes and commands for controlling devices that can be set to a level between fully 'On' and fully 'Off.' */ server cluster LevelControl = 8 { - enum MoveMode : ENUM8 { + enum MoveMode : enum8 { kUp = 0; kDown = 1; } - enum StepMode : ENUM8 { + enum StepMode : enum8 { kUp = 0; kDown = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kOnOff = 0x1; kLighting = 0x2; kFrequency = 0x4; } - bitmap LevelControlOptions : BITMAP8 { + bitmap LevelControlOptions : bitmap8 { kExecuteIfOff = 0x1; kCoupleColorTempToLevel = 0x2; } @@ -187,7 +187,7 @@ server cluster LevelControl = 8 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -239,13 +239,13 @@ server cluster Binding = 30 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -253,7 +253,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -311,7 +311,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -335,7 +335,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -396,20 +396,20 @@ server cluster BasicInformation = 40 { /** Provides an interface for providing OTA software updates */ client cluster OtaSoftwareUpdateProvider = 41 { - enum ApplyUpdateActionEnum : ENUM8 { + enum ApplyUpdateActionEnum : enum8 { kProceed = 0; kAwaitNextAction = 1; kDiscontinue = 2; } - enum DownloadProtocolEnum : ENUM8 { + enum DownloadProtocolEnum : enum8 { kBDXSynchronous = 0; kBDXAsynchronous = 1; kHTTPS = 2; kVendorSpecific = 3; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kUpdateAvailable = 0; kBusy = 1; kNotAvailable = 2; @@ -470,13 +470,13 @@ client cluster OtaSoftwareUpdateProvider = 41 { /** Provides an interface for downloading and applying OTA software updates */ server cluster OtaSoftwareUpdateRequestor = 42 { - enum AnnouncementReasonEnum : ENUM8 { + enum AnnouncementReasonEnum : enum8 { kSimpleAnnouncement = 0; kUpdateAvailable = 1; kUrgentUpdateAvailable = 2; } - enum ChangeReasonEnum : ENUM8 { + enum ChangeReasonEnum : enum8 { kUnknown = 0; kSuccess = 1; kFailure = 2; @@ -484,7 +484,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { kDelayByProvider = 4; } - enum UpdateStateEnum : ENUM8 { + enum UpdateStateEnum : enum8 { kUnknown = 0; kIdle = 1; kQuerying = 2; @@ -545,7 +545,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -553,7 +553,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -609,7 +609,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -625,7 +625,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -634,13 +634,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -742,7 +742,7 @@ server cluster NetworkCommissioning = 49 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -752,7 +752,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -766,7 +766,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -774,14 +774,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -841,19 +841,19 @@ server cluster GeneralDiagnostics = 51 { /** The Thread Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems */ server cluster ThreadNetworkDiagnostics = 53 { - enum ConnectionStatusEnum : ENUM8 { + enum ConnectionStatusEnum : enum8 { kConnected = 0; kNotConnected = 1; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kLinkDown = 1; kHardwareFailure = 2; kNetworkJammed = 3; } - enum RoutingRoleEnum : ENUM8 { + enum RoutingRoleEnum : enum8 { kUnspecified = 0; kUnassigned = 1; kSleepyEndDevice = 2; @@ -863,7 +863,7 @@ server cluster ThreadNetworkDiagnostics = 53 { kLeader = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; kMLECounts = 0x4; @@ -958,13 +958,13 @@ server cluster ThreadNetworkDiagnostics = 53 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -999,12 +999,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -1115,12 +1115,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -1187,7 +1187,7 @@ server cluster GroupKeyManagement = 63 { /** An interface for configuring and controlling pumps. */ server cluster PumpConfigurationAndControl = 512 { - enum ControlModeEnum : ENUM8 { + enum ControlModeEnum : enum8 { kConstantSpeed = 0; kConstantPressure = 1; kProportionalPressure = 2; @@ -1196,14 +1196,14 @@ server cluster PumpConfigurationAndControl = 512 { kAutomatic = 7; } - enum OperationModeEnum : ENUM8 { + enum OperationModeEnum : enum8 { kNormal = 0; kMinimum = 1; kMaximum = 2; kLocal = 3; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kConstantPressure = 0x1; kCompensatedPressure = 0x2; kConstantFlow = 0x4; @@ -1213,7 +1213,7 @@ server cluster PumpConfigurationAndControl = 512 { kLocalOperation = 0x40; } - bitmap PumpStatusBitmap : BITMAP16 { + bitmap PumpStatusBitmap : bitmap16 { kDeviceFault = 0x1; kSupplyfault = 0x2; kSpeedLow = 0x4; @@ -1323,7 +1323,7 @@ server cluster TemperatureMeasurement = 1026 { /** Attributes and commands for configuring the measurement of pressure, and reporting pressure measurements. */ server cluster PressureMeasurement = 1027 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kExtended = 0x1; } @@ -1360,18 +1360,18 @@ server cluster FlowMeasurement = 1028 { /** Attributes and commands for configuring occupancy sensing, and reporting occupancy status. */ client cluster OccupancySensing = 1030 { - enum OccupancySensorTypeEnum : ENUM8 { + enum OccupancySensorTypeEnum : enum8 { kPIR = 0; kUltrasonic = 1; kPIRAndUltrasonic = 2; kPhysicalContact = 3; } - bitmap OccupancyBitmap : BITMAP8 { + bitmap OccupancyBitmap : bitmap8 { kOccupied = 0x1; } - bitmap OccupancySensorTypeBitmap : BITMAP8 { + bitmap OccupancySensorTypeBitmap : bitmap8 { kPIR = 0x1; kUltrasonic = 0x2; kPhysicalContact = 0x4; diff --git a/examples/pump-app/silabs/src/AppTask.cpp b/examples/pump-app/silabs/src/AppTask.cpp index 2dab9268a9035c..f1608b40f3325c 100644 --- a/examples/pump-app/silabs/src/AppTask.cpp +++ b/examples/pump-app/silabs/src/AppTask.cpp @@ -26,7 +26,6 @@ #include "LEDWidget.h" #include -#include #include #include #include diff --git a/examples/pump-controller-app/nrfconnect/main/include/AppTask.h b/examples/pump-controller-app/nrfconnect/main/include/AppTask.h index d0c670785c2a9a..8ca4a69e91c0f0 100644 --- a/examples/pump-controller-app/nrfconnect/main/include/AppTask.h +++ b/examples/pump-controller-app/nrfconnect/main/include/AppTask.h @@ -36,13 +36,10 @@ #endif struct k_timer; -class AppFabricTableDelegate; class AppTask { public: - friend class AppFabricTableDelegate; - static AppTask & Instance(void) { static AppTask sAppTask; diff --git a/examples/pump-controller-app/pump-controller-common/pump-controller-app.matter b/examples/pump-controller-app/pump-controller-common/pump-controller-app.matter index a9651460e67187..5f5f3b2cd16d63 100644 --- a/examples/pump-controller-app/pump-controller-common/pump-controller-app.matter +++ b/examples/pump-controller-app/pump-controller-common/pump-controller-app.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -43,33 +43,33 @@ server cluster Identify = 3 { /** Attributes and commands for switching devices between 'On' and 'Off' states. */ client cluster OnOff = 6 { - enum DelayedAllOffEffectVariantEnum : ENUM8 { + enum DelayedAllOffEffectVariantEnum : enum8 { kDelayedOffFastFade = 0; kNoFade = 1; kDelayedOffSlowFade = 2; } - enum DyingLightEffectVariantEnum : ENUM8 { + enum DyingLightEffectVariantEnum : enum8 { kDyingLightFadeOff = 0; } - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kDelayedAllOff = 0; kDyingLight = 1; } - enum StartUpOnOffEnum : ENUM8 { + enum StartUpOnOffEnum : enum8 { kOff = 0; kOn = 1; kToggle = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kLighting = 0x1; kDeadFrontBehavior = 0x2; } - bitmap OnOffControlBitmap : BITMAP8 { + bitmap OnOffControlBitmap : bitmap8 { kAcceptOnlyWhenOn = 0x1; } @@ -112,7 +112,7 @@ client cluster OnOff = 6 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -164,13 +164,13 @@ server cluster Binding = 30 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -178,7 +178,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -236,7 +236,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -260,7 +260,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -321,20 +321,20 @@ server cluster BasicInformation = 40 { /** Provides an interface for providing OTA software updates */ client cluster OtaSoftwareUpdateProvider = 41 { - enum ApplyUpdateActionEnum : ENUM8 { + enum ApplyUpdateActionEnum : enum8 { kProceed = 0; kAwaitNextAction = 1; kDiscontinue = 2; } - enum DownloadProtocolEnum : ENUM8 { + enum DownloadProtocolEnum : enum8 { kBDXSynchronous = 0; kBDXAsynchronous = 1; kHTTPS = 2; kVendorSpecific = 3; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kUpdateAvailable = 0; kBusy = 1; kNotAvailable = 2; @@ -395,13 +395,13 @@ client cluster OtaSoftwareUpdateProvider = 41 { /** Provides an interface for downloading and applying OTA software updates */ server cluster OtaSoftwareUpdateRequestor = 42 { - enum AnnouncementReasonEnum : ENUM8 { + enum AnnouncementReasonEnum : enum8 { kSimpleAnnouncement = 0; kUpdateAvailable = 1; kUrgentUpdateAvailable = 2; } - enum ChangeReasonEnum : ENUM8 { + enum ChangeReasonEnum : enum8 { kUnknown = 0; kSuccess = 1; kFailure = 2; @@ -409,7 +409,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { kDelayByProvider = 4; } - enum UpdateStateEnum : ENUM8 { + enum UpdateStateEnum : enum8 { kUnknown = 0; kIdle = 1; kQuerying = 2; @@ -470,7 +470,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -478,7 +478,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -534,7 +534,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -550,7 +550,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -559,13 +559,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -667,7 +667,7 @@ server cluster NetworkCommissioning = 49 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -677,7 +677,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -691,7 +691,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -699,14 +699,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -766,19 +766,19 @@ server cluster GeneralDiagnostics = 51 { /** The Thread Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems */ server cluster ThreadNetworkDiagnostics = 53 { - enum ConnectionStatusEnum : ENUM8 { + enum ConnectionStatusEnum : enum8 { kConnected = 0; kNotConnected = 1; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kLinkDown = 1; kHardwareFailure = 2; kNetworkJammed = 3; } - enum RoutingRoleEnum : ENUM8 { + enum RoutingRoleEnum : enum8 { kUnspecified = 0; kUnassigned = 1; kSleepyEndDevice = 2; @@ -788,7 +788,7 @@ server cluster ThreadNetworkDiagnostics = 53 { kLeader = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; kMLECounts = 0x4; @@ -883,13 +883,13 @@ server cluster ThreadNetworkDiagnostics = 53 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -924,12 +924,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -1040,12 +1040,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -1112,7 +1112,7 @@ server cluster GroupKeyManagement = 63 { /** An interface for configuring and controlling pumps. */ client cluster PumpConfigurationAndControl = 512 { - enum ControlModeEnum : ENUM8 { + enum ControlModeEnum : enum8 { kConstantSpeed = 0; kConstantPressure = 1; kProportionalPressure = 2; @@ -1121,14 +1121,14 @@ client cluster PumpConfigurationAndControl = 512 { kAutomatic = 7; } - enum OperationModeEnum : ENUM8 { + enum OperationModeEnum : enum8 { kNormal = 0; kMinimum = 1; kMaximum = 2; kLocal = 3; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kConstantPressure = 0x1; kCompensatedPressure = 0x2; kConstantFlow = 0x4; @@ -1138,7 +1138,7 @@ client cluster PumpConfigurationAndControl = 512 { kLocalOperation = 0x40; } - bitmap PumpStatusBitmap : BITMAP16 { + bitmap PumpStatusBitmap : bitmap16 { kDeviceFault = 0x1; kSupplyfault = 0x2; kSpeedLow = 0x4; @@ -1248,7 +1248,7 @@ client cluster TemperatureMeasurement = 1026 { /** Attributes and commands for configuring the measurement of pressure, and reporting pressure measurements. */ client cluster PressureMeasurement = 1027 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kExtended = 0x1; } diff --git a/examples/refrigerator-app/refrigerator-common/refrigerator-app.matter b/examples/refrigerator-app/refrigerator-common/refrigerator-app.matter index f36f326925dacd..df9636bfe5daa8 100644 --- a/examples/refrigerator-app/refrigerator-common/refrigerator-app.matter +++ b/examples/refrigerator-app/refrigerator-common/refrigerator-app.matter @@ -3,7 +3,7 @@ /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -37,13 +37,13 @@ server cluster Descriptor = 29 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -51,7 +51,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -109,7 +109,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -133,7 +133,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -215,7 +215,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -230,12 +230,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -253,13 +253,13 @@ server cluster TimeFormatLocalization = 44 { user. As such, Nodes that visually or audibly convey measurable values to the user need a mechanism by which they can be configured to use a user’s preferred unit. */ server cluster UnitLocalization = 45 { - enum TempUnitEnum : ENUM8 { + enum TempUnitEnum : enum8 { kFahrenheit = 0; kCelsius = 1; kKelvin = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTemperatureUnit = 0x1; } @@ -274,7 +274,7 @@ server cluster UnitLocalization = 45 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -282,7 +282,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -338,7 +338,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -354,7 +354,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -363,13 +363,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -478,7 +478,7 @@ server cluster NetworkCommissioning = 49 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -488,7 +488,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -502,7 +502,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -510,14 +510,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -583,19 +583,19 @@ server cluster GeneralDiagnostics = 51 { /** The Wi-Fi Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster WiFiNetworkDiagnostics = 54 { - enum AssociationFailureCauseEnum : ENUM8 { + enum AssociationFailureCauseEnum : enum8 { kUnknown = 0; kAssociationFailed = 1; kAuthenticationFailed = 2; kSsidNotFound = 3; } - enum ConnectionStatusEnum : ENUM8 { + enum ConnectionStatusEnum : enum8 { kConnected = 0; kNotConnected = 1; } - enum SecurityTypeEnum : ENUM8 { + enum SecurityTypeEnum : enum8 { kUnspecified = 0; kNone = 1; kWEP = 2; @@ -604,7 +604,7 @@ server cluster WiFiNetworkDiagnostics = 54 { kWPA3 = 5; } - enum WiFiVersionEnum : ENUM8 { + enum WiFiVersionEnum : enum8 { kA = 0; kB = 1; kG = 2; @@ -614,7 +614,7 @@ server cluster WiFiNetworkDiagnostics = 54 { kAh = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; } @@ -657,13 +657,13 @@ server cluster WiFiNetworkDiagnostics = 54 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -698,12 +698,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -814,12 +814,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -886,7 +886,7 @@ server cluster GroupKeyManagement = 63 { /** Attributes and commands for configuring the temperature control, and reporting temperature. */ server cluster TemperatureControl = 86 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTemperatureNumber = 0x1; kTemperatureLevel = 0x2; kTemperatureStep = 0x4; diff --git a/examples/resource-monitoring-app/resource-monitoring-common/resource-monitoring-app.matter b/examples/resource-monitoring-app/resource-monitoring-common/resource-monitoring-app.matter index 3f7be93a0d8b03..ba2310b1015fc5 100644 --- a/examples/resource-monitoring-app/resource-monitoring-common/resource-monitoring-app.matter +++ b/examples/resource-monitoring-app/resource-monitoring-common/resource-monitoring-app.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -49,11 +49,11 @@ server cluster Identify = 3 { /** Attributes and commands for group configuration and manipulation. */ server cluster Groups = 4 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kGroupNames = 0x1; } - bitmap NameSupportBitmap : BITMAP8 { + bitmap NameSupportBitmap : bitmap8 { kGroupNames = 0x80; } @@ -118,7 +118,7 @@ server cluster Groups = 4 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -151,13 +151,13 @@ server cluster Descriptor = 29 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -165,7 +165,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -223,7 +223,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -247,7 +247,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -310,20 +310,20 @@ server cluster BasicInformation = 40 { /** Provides an interface for providing OTA software updates */ client cluster OtaSoftwareUpdateProvider = 41 { - enum ApplyUpdateActionEnum : ENUM8 { + enum ApplyUpdateActionEnum : enum8 { kProceed = 0; kAwaitNextAction = 1; kDiscontinue = 2; } - enum DownloadProtocolEnum : ENUM8 { + enum DownloadProtocolEnum : enum8 { kBDXSynchronous = 0; kBDXAsynchronous = 1; kHTTPS = 2; kVendorSpecific = 3; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kUpdateAvailable = 0; kBusy = 1; kNotAvailable = 2; @@ -384,13 +384,13 @@ client cluster OtaSoftwareUpdateProvider = 41 { /** Provides an interface for downloading and applying OTA software updates */ server cluster OtaSoftwareUpdateRequestor = 42 { - enum AnnouncementReasonEnum : ENUM8 { + enum AnnouncementReasonEnum : enum8 { kSimpleAnnouncement = 0; kUpdateAvailable = 1; kUrgentUpdateAvailable = 2; } - enum ChangeReasonEnum : ENUM8 { + enum ChangeReasonEnum : enum8 { kUnknown = 0; kSuccess = 1; kFailure = 2; @@ -398,7 +398,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { kDelayByProvider = 4; } - enum UpdateStateEnum : ENUM8 { + enum UpdateStateEnum : enum8 { kUnknown = 0; kIdle = 1; kQuerying = 2; @@ -477,7 +477,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -492,12 +492,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -514,7 +514,7 @@ server cluster TimeFormatLocalization = 44 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -522,7 +522,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -578,7 +578,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -594,7 +594,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -603,13 +603,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -718,13 +718,13 @@ server cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -732,7 +732,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -755,7 +755,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -765,7 +765,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -779,7 +779,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -787,14 +787,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -860,7 +860,7 @@ server cluster GeneralDiagnostics = 51 { /** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster SoftwareDiagnostics = 52 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWaterMarks = 0x1; } @@ -894,19 +894,19 @@ server cluster SoftwareDiagnostics = 52 { /** The Thread Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems */ server cluster ThreadNetworkDiagnostics = 53 { - enum ConnectionStatusEnum : ENUM8 { + enum ConnectionStatusEnum : enum8 { kConnected = 0; kNotConnected = 1; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kLinkDown = 1; kHardwareFailure = 2; kNetworkJammed = 3; } - enum RoutingRoleEnum : ENUM8 { + enum RoutingRoleEnum : enum8 { kUnspecified = 0; kUnassigned = 1; kSleepyEndDevice = 2; @@ -916,7 +916,7 @@ server cluster ThreadNetworkDiagnostics = 53 { kLeader = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; kMLECounts = 0x4; @@ -1057,19 +1057,19 @@ server cluster ThreadNetworkDiagnostics = 53 { /** The Wi-Fi Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster WiFiNetworkDiagnostics = 54 { - enum AssociationFailureCauseEnum : ENUM8 { + enum AssociationFailureCauseEnum : enum8 { kUnknown = 0; kAssociationFailed = 1; kAuthenticationFailed = 2; kSsidNotFound = 3; } - enum ConnectionStatusEnum : ENUM8 { + enum ConnectionStatusEnum : enum8 { kConnected = 0; kNotConnected = 1; } - enum SecurityTypeEnum : ENUM8 { + enum SecurityTypeEnum : enum8 { kUnspecified = 0; kNone = 1; kWEP = 2; @@ -1078,7 +1078,7 @@ server cluster WiFiNetworkDiagnostics = 54 { kWPA3 = 5; } - enum WiFiVersionEnum : ENUM8 { + enum WiFiVersionEnum : enum8 { kA = 0; kB = 1; kG = 2; @@ -1088,7 +1088,7 @@ server cluster WiFiNetworkDiagnostics = 54 { kAh = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; } @@ -1131,7 +1131,7 @@ server cluster WiFiNetworkDiagnostics = 54 { /** The Ethernet Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster EthernetNetworkDiagnostics = 55 { - enum PHYRateEnum : ENUM8 { + enum PHYRateEnum : enum8 { kRate10M = 0; kRate100M = 1; kRate1G = 2; @@ -1144,7 +1144,7 @@ server cluster EthernetNetworkDiagnostics = 55 { kRate400G = 9; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; } @@ -1172,7 +1172,7 @@ server cluster EthernetNetworkDiagnostics = 55 { Two types of switch devices are supported: latching switch (e.g. rocker switch) and momentary switch (e.g. push button), distinguished with their feature flags. Interactions with the switch device are exposed as attributes (for the latching switch) and as events (for both types of switches). An interested party MAY subscribe to these attributes/events and thus be informed of the interactions, and can perform actions based on this, for example by sending commands to perform an action such as controlling a light or a window shade. */ server cluster Switch = 59 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kLatchingSwitch = 0x1; kMomentarySwitch = 0x2; kMomentarySwitchRelease = 0x4; @@ -1222,13 +1222,13 @@ server cluster Switch = 59 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -1263,12 +1263,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -1379,12 +1379,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -1484,18 +1484,18 @@ server cluster UserLabel = 65 { /** Attributes and commands for monitoring HEPA filters in a device */ server cluster HepaFilterMonitoring = 113 { - enum ChangeIndicationEnum : ENUM8 { + enum ChangeIndicationEnum : enum8 { kOK = 0; kWarning = 1; kCritical = 2; } - enum DegradationDirectionEnum : ENUM8 { + enum DegradationDirectionEnum : enum8 { kUp = 0; kDown = 1; } - enum ProductIdentifierTypeEnum : ENUM8 { + enum ProductIdentifierTypeEnum : enum8 { kUPC = 0; kGTIN8 = 1; kEAN = 2; @@ -1503,7 +1503,7 @@ server cluster HepaFilterMonitoring = 113 { kOEM = 4; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCondition = 0x1; kWarning = 0x2; kReplacementProductList = 0x4; @@ -1532,18 +1532,18 @@ server cluster HepaFilterMonitoring = 113 { /** Attributes and commands for monitoring activated carbon filters in a device */ server cluster ActivatedCarbonFilterMonitoring = 114 { - enum ChangeIndicationEnum : ENUM8 { + enum ChangeIndicationEnum : enum8 { kOK = 0; kWarning = 1; kCritical = 2; } - enum DegradationDirectionEnum : ENUM8 { + enum DegradationDirectionEnum : enum8 { kUp = 0; kDown = 1; } - enum ProductIdentifierTypeEnum : ENUM8 { + enum ProductIdentifierTypeEnum : enum8 { kUPC = 0; kGTIN8 = 1; kEAN = 2; @@ -1551,7 +1551,7 @@ server cluster ActivatedCarbonFilterMonitoring = 114 { kOEM = 4; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCondition = 0x1; kWarning = 0x2; kReplacementProductList = 0x4; @@ -1579,13 +1579,13 @@ server cluster ActivatedCarbonFilterMonitoring = 114 { } /** An interface for controlling a fan in a heating/cooling system. */ -server cluster FanControl = 514 { - enum AirflowDirectionEnum : ENUM8 { +provisional server cluster FanControl = 514 { + enum AirflowDirectionEnum : enum8 { kForward = 0; kReverse = 1; } - enum FanModeEnum : ENUM8 { + enum FanModeEnum : enum8 { kOff = 0; kLow = 1; kMedium = 2; @@ -1595,7 +1595,7 @@ server cluster FanControl = 514 { kSmart = 6; } - enum FanModeSequenceEnum : ENUM8 { + enum FanModeSequenceEnum : enum8 { kOffLowMedHigh = 0; kOffLowHigh = 1; kOffLowMedHighAuto = 2; @@ -1604,12 +1604,12 @@ server cluster FanControl = 514 { kOffOn = 5; } - enum StepDirectionEnum : ENUM8 { + enum StepDirectionEnum : enum8 { kIncrease = 0; kDecrease = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kMultiSpeed = 0x1; kAuto = 0x2; kRocking = 0x4; @@ -1618,13 +1618,13 @@ server cluster FanControl = 514 { kAirflowDirection = 0x20; } - bitmap RockBitmap : BITMAP8 { + bitmap RockBitmap : bitmap8 { kRockLeftRight = 0x1; kRockUpDown = 0x2; kRockRound = 0x4; } - bitmap WindBitmap : BITMAP8 { + bitmap WindBitmap : bitmap8 { kSleepWind = 0x1; kNaturalWind = 0x2; } diff --git a/examples/rvc-app/README.md b/examples/rvc-app/README.md index cd8bc0461fcbc1..fa723f24d35712 100644 --- a/examples/rvc-app/README.md +++ b/examples/rvc-app/README.md @@ -69,11 +69,8 @@ transition to mode 2", set the `RvcRunMode` to 0. #### TC 3.2 -PIXIT: `PIXIT_ENDPOINT:1` -Example command: -`./scripts/tests/run_python_test.py --script src/python_testing/TC_RVCCLEANM_3_2.py --script-args "--storage-path admin_storage.json --PICS examples/rvc-app/rvc-common/pics/RVC_App_Test_Plan.txt --int-arg PIXIT_ENDPOINT:1"` - -When asked "Physically power cycle the device", do so. +This is not applicable because this RVC device does not support the +`StartUpMode` attribute. ### RVC Run Mode cluster diff --git a/examples/rvc-app/rvc-common/pics/RVC Clean Mode Cluster Test Plan.xml b/examples/rvc-app/rvc-common/pics/RVC Clean Mode Cluster Test Plan.xml index c5776d9553a9bb..ce0ddaa38b5307 100644 --- a/examples/rvc-app/rvc-common/pics/RVC Clean Mode Cluster Test Plan.xml +++ b/examples/rvc-app/rvc-common/pics/RVC Clean Mode Cluster Test Plan.xml @@ -61,7 +61,7 @@ Draft Does the device implement the StartUpMode attribute? 89.2.2. Attributes - allclusters.html[pdf] O - true + false RVCCLEANM.S.A0003 diff --git a/examples/rvc-app/rvc-common/pics/RVC_App_Test_Plan.txt b/examples/rvc-app/rvc-common/pics/RVC_App_Test_Plan.txt index c4c5ef7586bdce..d0c8529a83d2e0 100644 --- a/examples/rvc-app/rvc-common/pics/RVC_App_Test_Plan.txt +++ b/examples/rvc-app/rvc-common/pics/RVC_App_Test_Plan.txt @@ -1,7 +1,7 @@ RVCCLEANM.S=1 RVCCLEANM.S.A0000=1 RVCCLEANM.S.A0001=1 -RVCCLEANM.S.A0002=1 +RVCCLEANM.S.A0002=0 RVCCLEANM.S.A0003=0 RVCCLEANM.S.C01.Tx=1 RVCCLEANM.S.C00.Rsp=1 diff --git a/examples/rvc-app/rvc-common/rvc-app.matter b/examples/rvc-app/rvc-common/rvc-app.matter index 1c944bf51fc41f..1661e5a9027bf0 100644 --- a/examples/rvc-app/rvc-common/rvc-app.matter +++ b/examples/rvc-app/rvc-common/rvc-app.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -49,7 +49,7 @@ server cluster Identify = 3 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -82,13 +82,13 @@ server cluster Descriptor = 29 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -96,7 +96,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -154,7 +154,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -178,7 +178,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -241,7 +241,7 @@ server cluster BasicInformation = 40 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -249,7 +249,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -305,7 +305,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -321,7 +321,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -330,13 +330,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -445,13 +445,13 @@ server cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -459,7 +459,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -482,7 +482,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -492,7 +492,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -506,7 +506,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -514,14 +514,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -587,13 +587,13 @@ server cluster GeneralDiagnostics = 51 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -628,12 +628,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -744,12 +744,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -816,12 +816,12 @@ server cluster GroupKeyManagement = 63 { /** Attributes and commands for selecting a mode from a list of supported options. */ server cluster RvcRunMode = 84 { - enum ModeTag : ENUM16 { + enum ModeTag : enum16 { kIdle = 16384; kCleaning = 16385; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kStuck = 65; kDustBinMissing = 66; kDustBinFull = 67; @@ -832,7 +832,7 @@ server cluster RvcRunMode = 84 { kBatteryLow = 72; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kOnOff = 0x1; } @@ -870,17 +870,17 @@ server cluster RvcRunMode = 84 { /** Attributes and commands for selecting a mode from a list of supported options. */ server cluster RvcCleanMode = 85 { - enum ModeTag : ENUM16 { + enum ModeTag : enum16 { kDeepClean = 16384; kVacuum = 16385; kMop = 16386; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kCleaningInProgress = 64; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kOnOff = 0x1; } @@ -897,7 +897,6 @@ server cluster RvcCleanMode = 85 { readonly attribute ModeOptionStruct supportedModes[] = 0; readonly attribute int8u currentMode = 1; - attribute nullable int8u startUpMode = 2; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; @@ -919,7 +918,7 @@ server cluster RvcCleanMode = 85 { /** This cluster supports remotely monitoring and, where supported, changing the operational state of a Robotic Vacuum. */ server cluster RvcOperationalState = 97 { - enum ErrorStateEnum : ENUM8 { + enum ErrorStateEnum : enum8 { kFailedToFindChargingDock = 64; kStuck = 65; kDustBinMissing = 66; @@ -930,7 +929,7 @@ server cluster RvcOperationalState = 97 { kMopCleaningPadMissing = 71; } - enum OperationalStateEnum : ENUM8 { + enum OperationalStateEnum : enum8 { kSeekingCharger = 64; kCharging = 65; kDocked = 66; @@ -1194,7 +1193,6 @@ endpoint 1 { server cluster RvcCleanMode { callback attribute supportedModes; callback attribute currentMode; - callback attribute startUpMode; callback attribute generatedCommandList; callback attribute acceptedCommandList; callback attribute eventList; diff --git a/examples/rvc-app/rvc-common/rvc-app.zap b/examples/rvc-app/rvc-common/rvc-app.zap index 9c0844f84190aa..79dfa8bd75c3db 100644 --- a/examples/rvc-app/rvc-common/rvc-app.zap +++ b/examples/rvc-app/rvc-common/rvc-app.zap @@ -2439,22 +2439,6 @@ "maxInterval": 65534, "reportableChange": 0 }, - { - "name": "StartUpMode", - "code": 2, - "mfgCode": null, - "side": "server", - "type": "int8u", - "included": 1, - "storageOption": "External", - "singleton": 0, - "bounded": 0, - "defaultValue": null, - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, { "name": "GeneratedCommandList", "code": 65528, @@ -2799,5 +2783,6 @@ "endpointId": 1, "networkId": 0 } - ] + ], + "log": [] } \ No newline at end of file diff --git a/examples/rvc-app/rvc-common/src/rvc-device.cpp b/examples/rvc-app/rvc-common/src/rvc-device.cpp index da7a8bcccbd262..2ee199d158a84a 100644 --- a/examples/rvc-app/rvc-common/src/rvc-device.cpp +++ b/examples/rvc-app/rvc-common/src/rvc-device.cpp @@ -39,9 +39,9 @@ void RvcDevice::HandleRvcRunChangeToMode(uint8_t newMode, ModeBase::Commands::Ch // We could be in the charging state with an RvcRun mode != idle. if (currentMode != RvcRunMode::ModeIdle && newMode != RvcRunMode::ModeIdle) { - response.status = to_underlying(ModeBase::StatusCode::kGenericFailure); + response.status = to_underlying(ModeBase::StatusCode::kInvalidInMode); response.statusText.SetValue( - chip::CharSpan::fromCharString("Change to the mapping or cleaning mode is only allowed from idle")); + chip::CharSpan::fromCharString("Change to the mapping or cleaning mode is only allowed from idle.")); return; } @@ -56,9 +56,9 @@ void RvcDevice::HandleRvcRunChangeToMode(uint8_t newMode, ModeBase::Commands::Ch case to_underlying(OperationalState::OperationalStateEnum::kRunning): { if (newMode != RvcRunMode::ModeIdle) { - response.status = to_underlying(ModeBase::StatusCode::kGenericFailure); + response.status = to_underlying(ModeBase::StatusCode::kInvalidInMode); response.statusText.SetValue( - chip::CharSpan::fromCharString("Change to the mapping or cleaning mode is only allowed from idle")); + chip::CharSpan::fromCharString("Change to the mapping or cleaning mode is only allowed from idle.")); return; } @@ -71,8 +71,8 @@ void RvcDevice::HandleRvcRunChangeToMode(uint8_t newMode, ModeBase::Commands::Ch } // If we fall through at any point, it's because the change is not supported in the current state. - response.status = to_underlying(ModeBase::StatusCode::kGenericFailure); - response.statusText.SetValue(chip::CharSpan::fromCharString("This change is not allowed at this time. ")); + response.status = to_underlying(ModeBase::StatusCode::kInvalidInMode); + response.statusText.SetValue(chip::CharSpan::fromCharString("This change is not allowed at this time.")); } void RvcDevice::HandleRvcCleanChangeToMode(uint8_t newMode, ModeBase::Commands::ChangeToModeResponse::Type & response) diff --git a/examples/smoke-co-alarm-app/smoke-co-alarm-common/smoke-co-alarm-app.matter b/examples/smoke-co-alarm-app/smoke-co-alarm-common/smoke-co-alarm-app.matter index 94f2a7e6df475b..e316c02f65cf5f 100644 --- a/examples/smoke-co-alarm-app/smoke-co-alarm-common/smoke-co-alarm-app.matter +++ b/examples/smoke-co-alarm-app/smoke-co-alarm-common/smoke-co-alarm-app.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -49,11 +49,11 @@ server cluster Identify = 3 { /** Attributes and commands for group configuration and manipulation. */ server cluster Groups = 4 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kGroupNames = 0x1; } - bitmap NameSupportBitmap : BITMAP8 { + bitmap NameSupportBitmap : bitmap8 { kGroupNames = 0x80; } @@ -118,7 +118,7 @@ server cluster Groups = 4 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -151,13 +151,13 @@ server cluster Descriptor = 29 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -165,7 +165,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -223,7 +223,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -247,7 +247,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -310,20 +310,20 @@ server cluster BasicInformation = 40 { /** Provides an interface for providing OTA software updates */ client cluster OtaSoftwareUpdateProvider = 41 { - enum ApplyUpdateActionEnum : ENUM8 { + enum ApplyUpdateActionEnum : enum8 { kProceed = 0; kAwaitNextAction = 1; kDiscontinue = 2; } - enum DownloadProtocolEnum : ENUM8 { + enum DownloadProtocolEnum : enum8 { kBDXSynchronous = 0; kBDXAsynchronous = 1; kHTTPS = 2; kVendorSpecific = 3; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kUpdateAvailable = 0; kBusy = 1; kNotAvailable = 2; @@ -384,13 +384,13 @@ client cluster OtaSoftwareUpdateProvider = 41 { /** Provides an interface for downloading and applying OTA software updates */ server cluster OtaSoftwareUpdateRequestor = 42 { - enum AnnouncementReasonEnum : ENUM8 { + enum AnnouncementReasonEnum : enum8 { kSimpleAnnouncement = 0; kUpdateAvailable = 1; kUrgentUpdateAvailable = 2; } - enum ChangeReasonEnum : ENUM8 { + enum ChangeReasonEnum : enum8 { kUnknown = 0; kSuccess = 1; kFailure = 2; @@ -398,7 +398,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { kDelayByProvider = 4; } - enum UpdateStateEnum : ENUM8 { + enum UpdateStateEnum : enum8 { kUnknown = 0; kIdle = 1; kQuerying = 2; @@ -477,7 +477,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -492,12 +492,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -514,7 +514,7 @@ server cluster TimeFormatLocalization = 44 { /** This cluster is used to describe the configuration and capabilities of a physical power source that provides power to the Node. */ server cluster PowerSource = 47 { - enum BatApprovedChemistryEnum : ENUM16 { + enum BatApprovedChemistryEnum : enum16 { kUnspecified = 0; kAlkaline = 1; kLithiumCarbonFluoride = 2; @@ -550,7 +550,7 @@ server cluster PowerSource = 47 { kZincCerium = 32; } - enum BatChargeFaultEnum : ENUM8 { + enum BatChargeFaultEnum : enum8 { kUnspecified = 0; kAmbientTooHot = 1; kAmbientTooCold = 2; @@ -564,20 +564,20 @@ server cluster PowerSource = 47 { kSafetyTimeout = 10; } - enum BatChargeLevelEnum : ENUM8 { + enum BatChargeLevelEnum : enum8 { kOK = 0; kWarning = 1; kCritical = 2; } - enum BatChargeStateEnum : ENUM8 { + enum BatChargeStateEnum : enum8 { kUnknown = 0; kIsCharging = 1; kIsAtFullCharge = 2; kIsNotCharging = 3; } - enum BatCommonDesignationEnum : ENUM16 { + enum BatCommonDesignationEnum : enum16 { kUnspecified = 0; kAAA = 1; kAA = 2; @@ -661,38 +661,38 @@ server cluster PowerSource = 47 { k32600 = 80; } - enum BatFaultEnum : ENUM8 { + enum BatFaultEnum : enum8 { kUnspecified = 0; kOverTemp = 1; kUnderTemp = 2; } - enum BatReplaceabilityEnum : ENUM8 { + enum BatReplaceabilityEnum : enum8 { kUnspecified = 0; kNotReplaceable = 1; kUserReplaceable = 2; kFactoryReplaceable = 3; } - enum PowerSourceStatusEnum : ENUM8 { + enum PowerSourceStatusEnum : enum8 { kUnspecified = 0; kActive = 1; kStandby = 2; kUnavailable = 3; } - enum WiredCurrentTypeEnum : ENUM8 { + enum WiredCurrentTypeEnum : enum8 { kAC = 0; kDC = 1; } - enum WiredFaultEnum : ENUM8 { + enum WiredFaultEnum : enum8 { kUnspecified = 0; kOverVoltage = 1; kUnderVoltage = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWired = 0x1; kBattery = 0x2; kRechargeable = 0x4; @@ -746,7 +746,7 @@ server cluster PowerSource = 47 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -754,7 +754,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -810,7 +810,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -826,7 +826,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -835,13 +835,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -950,13 +950,13 @@ server cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -964,7 +964,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -987,7 +987,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -997,7 +997,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -1011,7 +1011,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -1019,14 +1019,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -1092,7 +1092,7 @@ server cluster GeneralDiagnostics = 51 { /** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster SoftwareDiagnostics = 52 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWaterMarks = 0x1; } @@ -1126,19 +1126,19 @@ server cluster SoftwareDiagnostics = 52 { /** The Thread Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems */ server cluster ThreadNetworkDiagnostics = 53 { - enum ConnectionStatusEnum : ENUM8 { + enum ConnectionStatusEnum : enum8 { kConnected = 0; kNotConnected = 1; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kLinkDown = 1; kHardwareFailure = 2; kNetworkJammed = 3; } - enum RoutingRoleEnum : ENUM8 { + enum RoutingRoleEnum : enum8 { kUnspecified = 0; kUnassigned = 1; kSleepyEndDevice = 2; @@ -1148,7 +1148,7 @@ server cluster ThreadNetworkDiagnostics = 53 { kLeader = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; kMLECounts = 0x4; @@ -1289,13 +1289,13 @@ server cluster ThreadNetworkDiagnostics = 53 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -1330,12 +1330,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -1446,12 +1446,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -1551,8 +1551,10 @@ server cluster UserLabel = 65 { /** Allows servers to ensure that listed clients are notified when a server is available for communication. */ server cluster IcdManagement = 70 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCheckInProtocolSupport = 0x1; + kUserActiveModeTrigger = 0x2; + kLongIdleTimeSupport = 0x4; } fabric_scoped struct MonitoringRegistrationStruct { @@ -1597,25 +1599,25 @@ server cluster IcdManagement = 70 { /** This cluster provides an interface for observing and managing the state of smoke and CO alarms. */ server cluster SmokeCoAlarm = 92 { - enum AlarmStateEnum : ENUM8 { + enum AlarmStateEnum : enum8 { kNormal = 0; kWarning = 1; kCritical = 2; } - enum ContaminationStateEnum : ENUM8 { + enum ContaminationStateEnum : enum8 { kNormal = 0; kLow = 1; kWarning = 2; kCritical = 3; } - enum EndOfServiceEnum : ENUM8 { + enum EndOfServiceEnum : enum8 { kNormal = 0; kExpired = 1; } - enum ExpressedStateEnum : ENUM8 { + enum ExpressedStateEnum : enum8 { kNormal = 0; kSmokeAlarm = 1; kCOAlarm = 2; @@ -1627,18 +1629,18 @@ server cluster SmokeCoAlarm = 92 { kInterconnectCO = 8; } - enum MuteStateEnum : ENUM8 { + enum MuteStateEnum : enum8 { kNotMuted = 0; kMuted = 1; } - enum SensitivityEnum : ENUM8 { + enum SensitivityEnum : enum8 { kHigh = 0; kStandard = 1; kLow = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kSmokeAlarm = 0x1; kCOAlarm = 0x2; } diff --git a/examples/temperature-measurement-app/temperature-measurement-common/temperature-measurement.matter b/examples/temperature-measurement-app/temperature-measurement-common/temperature-measurement.matter index 08377ffb656f81..96ff6b0442f9f6 100644 --- a/examples/temperature-measurement-app/temperature-measurement-common/temperature-measurement.matter +++ b/examples/temperature-measurement-app/temperature-measurement-common/temperature-measurement.matter @@ -3,7 +3,7 @@ /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -36,13 +36,13 @@ server cluster Descriptor = 29 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -50,7 +50,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -108,7 +108,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -132,7 +132,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -213,7 +213,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -228,12 +228,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -253,13 +253,13 @@ server cluster TimeFormatLocalization = 44 { user. As such, Nodes that visually or audibly convey measurable values to the user need a mechanism by which they can be configured to use a user’s preferred unit. */ server cluster UnitLocalization = 45 { - enum TempUnitEnum : ENUM8 { + enum TempUnitEnum : enum8 { kFahrenheit = 0; kCelsius = 1; kKelvin = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTemperatureUnit = 0x1; } @@ -274,7 +274,7 @@ server cluster UnitLocalization = 45 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -282,7 +282,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -338,7 +338,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -354,7 +354,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -363,13 +363,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -472,13 +472,13 @@ server cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -486,7 +486,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -509,7 +509,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -519,7 +519,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -533,7 +533,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -541,14 +541,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -614,7 +614,7 @@ server cluster GeneralDiagnostics = 51 { /** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster SoftwareDiagnostics = 52 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWaterMarks = 0x1; } @@ -643,19 +643,19 @@ server cluster SoftwareDiagnostics = 52 { /** The Wi-Fi Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster WiFiNetworkDiagnostics = 54 { - enum AssociationFailureCauseEnum : ENUM8 { + enum AssociationFailureCauseEnum : enum8 { kUnknown = 0; kAssociationFailed = 1; kAuthenticationFailed = 2; kSsidNotFound = 3; } - enum ConnectionStatusEnum : ENUM8 { + enum ConnectionStatusEnum : enum8 { kConnected = 0; kNotConnected = 1; } - enum SecurityTypeEnum : ENUM8 { + enum SecurityTypeEnum : enum8 { kUnspecified = 0; kNone = 1; kWEP = 2; @@ -664,7 +664,7 @@ server cluster WiFiNetworkDiagnostics = 54 { kWPA3 = 5; } - enum WiFiVersionEnum : ENUM8 { + enum WiFiVersionEnum : enum8 { kA = 0; kB = 1; kG = 2; @@ -674,7 +674,7 @@ server cluster WiFiNetworkDiagnostics = 54 { kAh = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; } @@ -715,7 +715,7 @@ server cluster WiFiNetworkDiagnostics = 54 { /** The Ethernet Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster EthernetNetworkDiagnostics = 55 { - enum PHYRateEnum : ENUM8 { + enum PHYRateEnum : enum8 { kRate10M = 0; kRate100M = 1; kRate1G = 2; @@ -728,7 +728,7 @@ server cluster EthernetNetworkDiagnostics = 55 { kRate400G = 9; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; } @@ -754,13 +754,13 @@ server cluster EthernetNetworkDiagnostics = 55 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -795,12 +795,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -911,12 +911,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } diff --git a/examples/thermostat/thermostat-common/thermostat.matter b/examples/thermostat/thermostat-common/thermostat.matter index 06f8bb14dddb33..a276978b8d4af9 100644 --- a/examples/thermostat/thermostat-common/thermostat.matter +++ b/examples/thermostat/thermostat-common/thermostat.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ client cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ client cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -51,7 +51,7 @@ client cluster Identify = 3 { /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -60,11 +60,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -97,11 +97,11 @@ server cluster Identify = 3 { /** Attributes and commands for group configuration and manipulation. */ server cluster Groups = 4 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kGroupNames = 0x1; } - bitmap NameSupportBitmap : BITMAP8 { + bitmap NameSupportBitmap : bitmap8 { kGroupNames = 0x80; } @@ -166,7 +166,7 @@ server cluster Groups = 4 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -218,13 +218,13 @@ server cluster Binding = 30 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -232,7 +232,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -290,7 +290,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -314,7 +314,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -377,20 +377,20 @@ server cluster BasicInformation = 40 { /** Provides an interface for providing OTA software updates */ client cluster OtaSoftwareUpdateProvider = 41 { - enum ApplyUpdateActionEnum : ENUM8 { + enum ApplyUpdateActionEnum : enum8 { kProceed = 0; kAwaitNextAction = 1; kDiscontinue = 2; } - enum DownloadProtocolEnum : ENUM8 { + enum DownloadProtocolEnum : enum8 { kBDXSynchronous = 0; kBDXAsynchronous = 1; kHTTPS = 2; kVendorSpecific = 3; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kUpdateAvailable = 0; kBusy = 1; kNotAvailable = 2; @@ -451,13 +451,13 @@ client cluster OtaSoftwareUpdateProvider = 41 { /** Provides an interface for downloading and applying OTA software updates */ server cluster OtaSoftwareUpdateRequestor = 42 { - enum AnnouncementReasonEnum : ENUM8 { + enum AnnouncementReasonEnum : enum8 { kSimpleAnnouncement = 0; kUpdateAvailable = 1; kUrgentUpdateAvailable = 2; } - enum ChangeReasonEnum : ENUM8 { + enum ChangeReasonEnum : enum8 { kUnknown = 0; kSuccess = 1; kFailure = 2; @@ -465,7 +465,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { kDelayByProvider = 4; } - enum UpdateStateEnum : ENUM8 { + enum UpdateStateEnum : enum8 { kUnknown = 0; kIdle = 1; kQuerying = 2; @@ -544,7 +544,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -559,12 +559,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -584,13 +584,13 @@ server cluster TimeFormatLocalization = 44 { user. As such, Nodes that visually or audibly convey measurable values to the user need a mechanism by which they can be configured to use a user’s preferred unit. */ server cluster UnitLocalization = 45 { - enum TempUnitEnum : ENUM8 { + enum TempUnitEnum : enum8 { kFahrenheit = 0; kCelsius = 1; kKelvin = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTemperatureUnit = 0x1; } @@ -605,7 +605,7 @@ server cluster UnitLocalization = 45 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -613,7 +613,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -669,7 +669,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -685,7 +685,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -694,13 +694,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -809,13 +809,13 @@ server cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -823,7 +823,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -846,7 +846,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -856,7 +856,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -870,7 +870,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -878,14 +878,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -951,7 +951,7 @@ server cluster GeneralDiagnostics = 51 { /** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster SoftwareDiagnostics = 52 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWaterMarks = 0x1; } @@ -983,19 +983,19 @@ server cluster SoftwareDiagnostics = 52 { /** The Thread Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems */ server cluster ThreadNetworkDiagnostics = 53 { - enum ConnectionStatusEnum : ENUM8 { + enum ConnectionStatusEnum : enum8 { kConnected = 0; kNotConnected = 1; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kLinkDown = 1; kHardwareFailure = 2; kNetworkJammed = 3; } - enum RoutingRoleEnum : ENUM8 { + enum RoutingRoleEnum : enum8 { kUnspecified = 0; kUnassigned = 1; kSleepyEndDevice = 2; @@ -1005,7 +1005,7 @@ server cluster ThreadNetworkDiagnostics = 53 { kLeader = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; kMLECounts = 0x4; @@ -1146,19 +1146,19 @@ server cluster ThreadNetworkDiagnostics = 53 { /** The Wi-Fi Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster WiFiNetworkDiagnostics = 54 { - enum AssociationFailureCauseEnum : ENUM8 { + enum AssociationFailureCauseEnum : enum8 { kUnknown = 0; kAssociationFailed = 1; kAuthenticationFailed = 2; kSsidNotFound = 3; } - enum ConnectionStatusEnum : ENUM8 { + enum ConnectionStatusEnum : enum8 { kConnected = 0; kNotConnected = 1; } - enum SecurityTypeEnum : ENUM8 { + enum SecurityTypeEnum : enum8 { kUnspecified = 0; kNone = 1; kWEP = 2; @@ -1167,7 +1167,7 @@ server cluster WiFiNetworkDiagnostics = 54 { kWPA3 = 5; } - enum WiFiVersionEnum : ENUM8 { + enum WiFiVersionEnum : enum8 { kA = 0; kB = 1; kG = 2; @@ -1177,7 +1177,7 @@ server cluster WiFiNetworkDiagnostics = 54 { kAh = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; } @@ -1220,7 +1220,7 @@ server cluster WiFiNetworkDiagnostics = 54 { /** The Ethernet Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster EthernetNetworkDiagnostics = 55 { - enum PHYRateEnum : ENUM8 { + enum PHYRateEnum : enum8 { kRate10M = 0; kRate100M = 1; kRate1G = 2; @@ -1233,7 +1233,7 @@ server cluster EthernetNetworkDiagnostics = 55 { kRate400G = 9; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; } @@ -1257,13 +1257,13 @@ server cluster EthernetNetworkDiagnostics = 55 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -1298,12 +1298,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -1414,12 +1414,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -1519,13 +1519,13 @@ server cluster UserLabel = 65 { /** An interface for configuring and controlling the functionality of a thermostat. */ server cluster Thermostat = 513 { - enum SetpointAdjustMode : ENUM8 { + enum SetpointAdjustMode : enum8 { kHeat = 0; kCool = 1; kBoth = 2; } - enum ThermostatControlSequence : ENUM8 { + enum ThermostatControlSequence : enum8 { kCoolingOnly = 0; kCoolingWithReheat = 1; kHeatingOnly = 2; @@ -1534,13 +1534,13 @@ server cluster Thermostat = 513 { kCoolingAndHeatingWithReheat = 5; } - enum ThermostatRunningMode : ENUM8 { + enum ThermostatRunningMode : enum8 { kOff = 0; kCool = 3; kHeat = 4; } - enum ThermostatSystemMode : ENUM8 { + enum ThermostatSystemMode : enum8 { kOff = 0; kAuto = 1; kCool = 3; @@ -1552,7 +1552,7 @@ server cluster Thermostat = 513 { kSleep = 9; } - bitmap DayOfWeek : BITMAP8 { + bitmap DayOfWeek : bitmap8 { kSunday = 0x1; kMonday = 0x2; kTuesday = 0x4; @@ -1563,7 +1563,7 @@ server cluster Thermostat = 513 { kAway = 0x80; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kHeating = 0x1; kCooling = 0x2; kOccupancy = 0x4; @@ -1573,7 +1573,7 @@ server cluster Thermostat = 513 { kLocalTemperatureNotExposed = 0x40; } - bitmap ModeForSequence : BITMAP8 { + bitmap ModeForSequence : bitmap8 { kHeatSetpointPresent = 0x1; kCoolSetpointPresent = 0x2; } diff --git a/examples/tv-app/tv-common/tv-app.matter b/examples/tv-app/tv-common/tv-app.matter index 19516f50dc323b..23a0e2e8772ef1 100644 --- a/examples/tv-app/tv-common/tv-app.matter +++ b/examples/tv-app/tv-common/tv-app.matter @@ -3,33 +3,33 @@ /** Attributes and commands for switching devices between 'On' and 'Off' states. */ server cluster OnOff = 6 { - enum DelayedAllOffEffectVariantEnum : ENUM8 { + enum DelayedAllOffEffectVariantEnum : enum8 { kDelayedOffFastFade = 0; kNoFade = 1; kDelayedOffSlowFade = 2; } - enum DyingLightEffectVariantEnum : ENUM8 { + enum DyingLightEffectVariantEnum : enum8 { kDyingLightFadeOff = 0; } - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kDelayedAllOff = 0; kDyingLight = 1; } - enum StartUpOnOffEnum : ENUM8 { + enum StartUpOnOffEnum : enum8 { kOff = 0; kOn = 1; kToggle = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kLighting = 0x1; kDeadFrontBehavior = 0x2; } - bitmap OnOffControlBitmap : BITMAP8 { + bitmap OnOffControlBitmap : bitmap8 { kAcceptOnlyWhenOn = 0x1; } @@ -48,23 +48,23 @@ server cluster OnOff = 6 { /** Attributes and commands for controlling devices that can be set to a level between fully 'On' and fully 'Off.' */ server cluster LevelControl = 8 { - enum MoveMode : ENUM8 { + enum MoveMode : enum8 { kUp = 0; kDown = 1; } - enum StepMode : ENUM8 { + enum StepMode : enum8 { kUp = 0; kDown = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kOnOff = 0x1; kLighting = 0x2; kFrequency = 0x4; } - bitmap LevelControlOptions : BITMAP8 { + bitmap LevelControlOptions : bitmap8 { kExecuteIfOff = 0x1; kCoupleColorTempToLevel = 0x2; } @@ -156,7 +156,7 @@ server cluster LevelControl = 8 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -227,13 +227,13 @@ server cluster Binding = 30 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -241,7 +241,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -299,7 +299,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -323,7 +323,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -386,20 +386,20 @@ server cluster BasicInformation = 40 { /** Provides an interface for providing OTA software updates */ server cluster OtaSoftwareUpdateProvider = 41 { - enum ApplyUpdateActionEnum : ENUM8 { + enum ApplyUpdateActionEnum : enum8 { kProceed = 0; kAwaitNextAction = 1; kDiscontinue = 2; } - enum DownloadProtocolEnum : ENUM8 { + enum DownloadProtocolEnum : enum8 { kBDXSynchronous = 0; kBDXAsynchronous = 1; kHTTPS = 2; kVendorSpecific = 3; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kUpdateAvailable = 0; kBusy = 1; kNotAvailable = 2; @@ -475,7 +475,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -490,12 +490,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -515,13 +515,13 @@ server cluster TimeFormatLocalization = 44 { user. As such, Nodes that visually or audibly convey measurable values to the user need a mechanism by which they can be configured to use a user’s preferred unit. */ server cluster UnitLocalization = 45 { - enum TempUnitEnum : ENUM8 { + enum TempUnitEnum : enum8 { kFahrenheit = 0; kCelsius = 1; kKelvin = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTemperatureUnit = 0x1; } @@ -536,7 +536,7 @@ server cluster UnitLocalization = 45 { /** This cluster is used to manage global aspects of the Commissioning flow. */ client cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -544,7 +544,7 @@ client cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -603,7 +603,7 @@ client cluster GeneralCommissioning = 48 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -611,7 +611,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -667,7 +667,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ client cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -683,7 +683,7 @@ client cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -692,13 +692,13 @@ client cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -813,7 +813,7 @@ client cluster NetworkCommissioning = 49 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -829,7 +829,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -838,13 +838,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -953,13 +953,13 @@ server cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -967,7 +967,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -990,7 +990,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -1000,7 +1000,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -1014,7 +1014,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -1022,14 +1022,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -1095,7 +1095,7 @@ server cluster GeneralDiagnostics = 51 { /** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster SoftwareDiagnostics = 52 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWaterMarks = 0x1; } @@ -1127,19 +1127,19 @@ server cluster SoftwareDiagnostics = 52 { /** The Thread Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems */ server cluster ThreadNetworkDiagnostics = 53 { - enum ConnectionStatusEnum : ENUM8 { + enum ConnectionStatusEnum : enum8 { kConnected = 0; kNotConnected = 1; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kLinkDown = 1; kHardwareFailure = 2; kNetworkJammed = 3; } - enum RoutingRoleEnum : ENUM8 { + enum RoutingRoleEnum : enum8 { kUnspecified = 0; kUnassigned = 1; kSleepyEndDevice = 2; @@ -1149,7 +1149,7 @@ server cluster ThreadNetworkDiagnostics = 53 { kLeader = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; kMLECounts = 0x4; @@ -1288,19 +1288,19 @@ server cluster ThreadNetworkDiagnostics = 53 { /** The Wi-Fi Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster WiFiNetworkDiagnostics = 54 { - enum AssociationFailureCauseEnum : ENUM8 { + enum AssociationFailureCauseEnum : enum8 { kUnknown = 0; kAssociationFailed = 1; kAuthenticationFailed = 2; kSsidNotFound = 3; } - enum ConnectionStatusEnum : ENUM8 { + enum ConnectionStatusEnum : enum8 { kConnected = 0; kNotConnected = 1; } - enum SecurityTypeEnum : ENUM8 { + enum SecurityTypeEnum : enum8 { kUnspecified = 0; kNone = 1; kWEP = 2; @@ -1309,7 +1309,7 @@ server cluster WiFiNetworkDiagnostics = 54 { kWPA3 = 5; } - enum WiFiVersionEnum : ENUM8 { + enum WiFiVersionEnum : enum8 { kA = 0; kB = 1; kG = 2; @@ -1319,7 +1319,7 @@ server cluster WiFiNetworkDiagnostics = 54 { kAh = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; } @@ -1360,7 +1360,7 @@ server cluster WiFiNetworkDiagnostics = 54 { /** The Ethernet Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster EthernetNetworkDiagnostics = 55 { - enum PHYRateEnum : ENUM8 { + enum PHYRateEnum : enum8 { kRate10M = 0; kRate100M = 1; kRate1G = 2; @@ -1373,7 +1373,7 @@ server cluster EthernetNetworkDiagnostics = 55 { kRate400G = 9; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; } @@ -1399,13 +1399,13 @@ server cluster EthernetNetworkDiagnostics = 55 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -1440,12 +1440,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ client cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -1564,12 +1564,12 @@ client cluster OperationalCredentials = 62 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -1680,12 +1680,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -1809,17 +1809,17 @@ server cluster WakeOnLan = 1283 { /** This cluster provides an interface for controlling the current Channel on a device. */ server cluster Channel = 1284 { - enum ChannelStatusEnum : ENUM8 { + enum ChannelStatusEnum : enum8 { kSuccess = 0; kMultipleMatches = 1; kNoMatches = 2; } - enum LineupInfoTypeEnum : ENUM8 { + enum LineupInfoTypeEnum : enum8 { kMSO = 0; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kChannelList = 0x1; kLineupInfo = 0x2; } @@ -1874,7 +1874,7 @@ server cluster Channel = 1284 { /** This cluster provides an interface for UX navigation within a set of targets on a device or endpoint. */ server cluster TargetNavigator = 1285 { - enum TargetNavigatorStatusEnum : ENUM8 { + enum TargetNavigatorStatusEnum : enum8 { kSuccess = 0; kTargetNotFound = 1; kNotAllowed = 2; @@ -1909,7 +1909,7 @@ server cluster TargetNavigator = 1285 { /** This cluster provides an interface for controlling Media Playback (PLAY, PAUSE, etc) on a media device such as a TV or Speaker. */ server cluster MediaPlayback = 1286 { - enum MediaPlaybackStatusEnum : ENUM8 { + enum MediaPlaybackStatusEnum : enum8 { kSuccess = 0; kInvalidStateForCommand = 1; kNotAllowed = 2; @@ -1918,14 +1918,14 @@ server cluster MediaPlayback = 1286 { kSeekOutOfRange = 5; } - enum PlaybackStateEnum : ENUM8 { + enum PlaybackStateEnum : enum8 { kPlaying = 0; kPaused = 1; kNotPlaying = 2; kBuffering = 3; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kAdvancedSeek = 0x1; kVariableSpeed = 0x2; } @@ -1981,7 +1981,7 @@ server cluster MediaPlayback = 1286 { /** This cluster provides an interface for controlling the Input Selector on a media device such as a TV. */ server cluster MediaInput = 1287 { - enum InputTypeEnum : ENUM8 { + enum InputTypeEnum : enum8 { kInternal = 0; kAux = 1; kCoax = 2; @@ -1996,7 +1996,7 @@ server cluster MediaInput = 1287 { kOther = 11; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNameUpdates = 0x1; } @@ -2045,7 +2045,7 @@ server cluster LowPower = 1288 { /** This cluster provides an interface for controlling a device like a TV using action commands such as UP, DOWN, and SELECT. */ server cluster KeypadInput = 1289 { - enum CecKeyCode : ENUM8 { + enum CecKeyCode : enum8 { kSelect = 0; kUp = 1; kDown = 2; @@ -2134,13 +2134,13 @@ server cluster KeypadInput = 1289 { kData = 118; } - enum KeypadInputStatusEnum : ENUM8 { + enum KeypadInputStatusEnum : enum8 { kSuccess = 0; kUnsupportedKey = 1; kInvalidKeyInCurrentState = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNavigationKeyCodes = 0x1; kLocationKeys = 0x2; kNumberKeys = 0x4; @@ -2166,18 +2166,18 @@ server cluster KeypadInput = 1289 { /** This cluster provides an interface for launching content on a media player device such as a TV or Speaker. */ server cluster ContentLauncher = 1290 { - enum ContentLaunchStatusEnum : ENUM8 { + enum ContentLaunchStatusEnum : enum8 { kSuccess = 0; kUrlNotAvailable = 1; kAuthFailed = 2; } - enum MetricTypeEnum : ENUM8 { + enum MetricTypeEnum : enum8 { kPixels = 0; kPercentage = 1; } - enum ParameterEnum : ENUM8 { + enum ParameterEnum : enum8 { kActor = 0; kChannel = 1; kCharacter = 2; @@ -2194,12 +2194,12 @@ server cluster ContentLauncher = 1290 { kVideo = 13; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kContentSearch = 0x1; kURLPlayback = 0x2; } - bitmap SupportedStreamingProtocol : BITMAP32 { + bitmap SupportedStreamingProtocol : bitmap32 { kDASH = 0x1; kHLS = 0x2; } @@ -2272,7 +2272,7 @@ server cluster ContentLauncher = 1290 { /** This cluster provides an interface for controlling the Output on a media device such as a TV. */ server cluster AudioOutput = 1291 { - enum OutputTypeEnum : ENUM8 { + enum OutputTypeEnum : enum8 { kHDMI = 0; kBT = 1; kOptical = 2; @@ -2281,7 +2281,7 @@ server cluster AudioOutput = 1291 { kOther = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNameUpdates = 0x1; } @@ -2315,13 +2315,13 @@ server cluster AudioOutput = 1291 { /** This cluster provides an interface for launching content on a media player device such as a TV or Speaker. */ server cluster ApplicationLauncher = 1292 { - enum ApplicationLauncherStatusEnum : ENUM8 { + enum ApplicationLauncherStatusEnum : enum8 { kSuccess = 0; kAppNotAvailable = 1; kSystemBusy = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kApplicationPlatform = 0x1; } @@ -2369,7 +2369,7 @@ server cluster ApplicationLauncher = 1292 { /** This cluster provides information about an application running on a TV or media player device which is represented as an endpoint. */ server cluster ApplicationBasic = 1293 { - enum ApplicationStatusEnum : ENUM8 { + enum ApplicationStatusEnum : enum8 { kStopped = 0; kActiveVisibleFocus = 1; kActiveHidden = 2; diff --git a/examples/tv-casting-app/android/App/app/src/main/jni/com/chip/casting/NsdDiscoveryListener.java b/examples/tv-casting-app/android/App/app/src/main/jni/com/chip/casting/NsdDiscoveryListener.java index 905dcb67f86bc8..1a9556e5fdb6d2 100644 --- a/examples/tv-casting-app/android/App/app/src/main/jni/com/chip/casting/NsdDiscoveryListener.java +++ b/examples/tv-casting-app/android/App/app/src/main/jni/com/chip/casting/NsdDiscoveryListener.java @@ -109,6 +109,7 @@ public void onDiscoveryStopped(String serviceType) { @Override public void onStartDiscoveryFailed(String serviceType, int errorCode) { Log.e(TAG, "Discovery failed to start: Error code:" + errorCode); + TvCastingApp.getInstance().resetDiscoveryState(); failureCallback.handle( new MatterError( 3, "NsdDiscoveryListener Discovery failed to start: Nsd Error code:" + errorCode)); diff --git a/examples/tv-casting-app/android/App/app/src/main/jni/com/chip/casting/TvCastingApp.java b/examples/tv-casting-app/android/App/app/src/main/jni/com/chip/casting/TvCastingApp.java index a846ffcb7ee9a2..24852986768e7c 100644 --- a/examples/tv-casting-app/android/App/app/src/main/jni/com/chip/casting/TvCastingApp.java +++ b/examples/tv-casting-app/android/App/app/src/main/jni/com/chip/casting/TvCastingApp.java @@ -297,6 +297,17 @@ public void stopVideoPlayerDiscovery() { } } + void resetDiscoveryState() { + synchronized (discoveryLock) { + Log.d(TAG, "TvCastingApp resetting discovery state"); + this.discoveryStarted = false; + this.nsdDiscoveryListener = null; + if (multicastLock != null && multicastLock.isHeld()) { + multicastLock.release(); + } + } + } + public native boolean openBasicCommissioningWindow( int duration, CommissioningCallbacks commissioningCallbacks, diff --git a/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter b/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter index 0891d9589c9f4c..78c2a6aca45cb0 100644 --- a/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter +++ b/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -43,11 +43,11 @@ server cluster Identify = 3 { /** Attributes and commands for group configuration and manipulation. */ server cluster Groups = 4 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kGroupNames = 0x1; } - bitmap NameSupportBitmap : BITMAP8 { + bitmap NameSupportBitmap : bitmap8 { kGroupNames = 0x80; } @@ -112,33 +112,33 @@ server cluster Groups = 4 { /** Attributes and commands for switching devices between 'On' and 'Off' states. */ client cluster OnOff = 6 { - enum DelayedAllOffEffectVariantEnum : ENUM8 { + enum DelayedAllOffEffectVariantEnum : enum8 { kDelayedOffFastFade = 0; kNoFade = 1; kDelayedOffSlowFade = 2; } - enum DyingLightEffectVariantEnum : ENUM8 { + enum DyingLightEffectVariantEnum : enum8 { kDyingLightFadeOff = 0; } - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kDelayedAllOff = 0; kDyingLight = 1; } - enum StartUpOnOffEnum : ENUM8 { + enum StartUpOnOffEnum : enum8 { kOff = 0; kOn = 1; kToggle = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kLighting = 0x1; kDeadFrontBehavior = 0x2; } - bitmap OnOffControlBitmap : BITMAP8 { + bitmap OnOffControlBitmap : bitmap8 { kAcceptOnlyWhenOn = 0x1; } @@ -181,23 +181,23 @@ client cluster OnOff = 6 { /** Attributes and commands for controlling devices that can be set to a level between fully 'On' and fully 'Off.' */ client cluster LevelControl = 8 { - enum MoveMode : ENUM8 { + enum MoveMode : enum8 { kUp = 0; kDown = 1; } - enum StepMode : ENUM8 { + enum StepMode : enum8 { kUp = 0; kDown = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kOnOff = 0x1; kLighting = 0x2; kFrequency = 0x4; } - bitmap LevelControlOptions : BITMAP8 { + bitmap LevelControlOptions : bitmap8 { kExecuteIfOff = 0x1; kCoupleColorTempToLevel = 0x2; } @@ -317,7 +317,7 @@ server cluster BinaryInputBasic = 15 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ client cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -348,7 +348,7 @@ client cluster Descriptor = 29 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -400,13 +400,13 @@ server cluster Binding = 30 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -414,7 +414,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -472,7 +472,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -496,7 +496,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -577,7 +577,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -592,12 +592,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -617,13 +617,13 @@ server cluster TimeFormatLocalization = 44 { user. As such, Nodes that visually or audibly convey measurable values to the user need a mechanism by which they can be configured to use a user’s preferred unit. */ server cluster UnitLocalization = 45 { - enum TempUnitEnum : ENUM8 { + enum TempUnitEnum : enum8 { kFahrenheit = 0; kCelsius = 1; kKelvin = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTemperatureUnit = 0x1; } @@ -638,7 +638,7 @@ server cluster UnitLocalization = 45 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -646,7 +646,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -702,7 +702,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -718,7 +718,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -727,13 +727,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -842,7 +842,7 @@ server cluster NetworkCommissioning = 49 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -852,7 +852,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -866,7 +866,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -874,14 +874,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -947,7 +947,7 @@ server cluster GeneralDiagnostics = 51 { /** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster SoftwareDiagnostics = 52 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWaterMarks = 0x1; } @@ -979,19 +979,19 @@ server cluster SoftwareDiagnostics = 52 { /** The Wi-Fi Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster WiFiNetworkDiagnostics = 54 { - enum AssociationFailureCauseEnum : ENUM8 { + enum AssociationFailureCauseEnum : enum8 { kUnknown = 0; kAssociationFailed = 1; kAuthenticationFailed = 2; kSsidNotFound = 3; } - enum ConnectionStatusEnum : ENUM8 { + enum ConnectionStatusEnum : enum8 { kConnected = 0; kNotConnected = 1; } - enum SecurityTypeEnum : ENUM8 { + enum SecurityTypeEnum : enum8 { kUnspecified = 0; kNone = 1; kWEP = 2; @@ -1000,7 +1000,7 @@ server cluster WiFiNetworkDiagnostics = 54 { kWPA3 = 5; } - enum WiFiVersionEnum : ENUM8 { + enum WiFiVersionEnum : enum8 { kA = 0; kB = 1; kG = 2; @@ -1010,7 +1010,7 @@ server cluster WiFiNetworkDiagnostics = 54 { kAh = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; } @@ -1051,7 +1051,7 @@ server cluster WiFiNetworkDiagnostics = 54 { /** The Ethernet Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster EthernetNetworkDiagnostics = 55 { - enum PHYRateEnum : ENUM8 { + enum PHYRateEnum : enum8 { kRate10M = 0; kRate100M = 1; kRate1G = 2; @@ -1064,7 +1064,7 @@ server cluster EthernetNetworkDiagnostics = 55 { kRate400G = 9; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; } @@ -1090,13 +1090,13 @@ server cluster EthernetNetworkDiagnostics = 55 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -1131,12 +1131,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -1247,12 +1247,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -1339,17 +1339,17 @@ client cluster WakeOnLan = 1283 { /** This cluster provides an interface for controlling the current Channel on a device. */ client cluster Channel = 1284 { - enum ChannelStatusEnum : ENUM8 { + enum ChannelStatusEnum : enum8 { kSuccess = 0; kMultipleMatches = 1; kNoMatches = 2; } - enum LineupInfoTypeEnum : ENUM8 { + enum LineupInfoTypeEnum : enum8 { kMSO = 0; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kChannelList = 0x1; kLineupInfo = 0x2; } @@ -1407,7 +1407,7 @@ client cluster Channel = 1284 { /** This cluster provides an interface for UX navigation within a set of targets on a device or endpoint. */ client cluster TargetNavigator = 1285 { - enum TargetNavigatorStatusEnum : ENUM8 { + enum TargetNavigatorStatusEnum : enum8 { kSuccess = 0; kTargetNotFound = 1; kNotAllowed = 2; @@ -1443,7 +1443,7 @@ client cluster TargetNavigator = 1285 { /** This cluster provides an interface for controlling Media Playback (PLAY, PAUSE, etc) on a media device such as a TV or Speaker. */ client cluster MediaPlayback = 1286 { - enum MediaPlaybackStatusEnum : ENUM8 { + enum MediaPlaybackStatusEnum : enum8 { kSuccess = 0; kInvalidStateForCommand = 1; kNotAllowed = 2; @@ -1452,14 +1452,14 @@ client cluster MediaPlayback = 1286 { kSeekOutOfRange = 5; } - enum PlaybackStateEnum : ENUM8 { + enum PlaybackStateEnum : enum8 { kPlaying = 0; kPaused = 1; kNotPlaying = 2; kBuffering = 3; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kAdvancedSeek = 0x1; kVariableSpeed = 0x2; } @@ -1526,7 +1526,7 @@ client cluster MediaPlayback = 1286 { /** This cluster provides an interface for controlling the Input Selector on a media device such as a TV. */ client cluster MediaInput = 1287 { - enum InputTypeEnum : ENUM8 { + enum InputTypeEnum : enum8 { kInternal = 0; kAux = 1; kCoax = 2; @@ -1541,7 +1541,7 @@ client cluster MediaInput = 1287 { kOther = 11; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNameUpdates = 0x1; } @@ -1595,7 +1595,7 @@ client cluster LowPower = 1288 { /** This cluster provides an interface for controlling a device like a TV using action commands such as UP, DOWN, and SELECT. */ client cluster KeypadInput = 1289 { - enum CecKeyCode : ENUM8 { + enum CecKeyCode : enum8 { kSelect = 0; kUp = 1; kDown = 2; @@ -1684,13 +1684,13 @@ client cluster KeypadInput = 1289 { kData = 118; } - enum KeypadInputStatusEnum : ENUM8 { + enum KeypadInputStatusEnum : enum8 { kSuccess = 0; kUnsupportedKey = 1; kInvalidKeyInCurrentState = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNavigationKeyCodes = 0x1; kLocationKeys = 0x2; kNumberKeys = 0x4; @@ -1717,18 +1717,18 @@ client cluster KeypadInput = 1289 { /** This cluster provides an interface for launching content on a media player device such as a TV or Speaker. */ client cluster ContentLauncher = 1290 { - enum ContentLaunchStatusEnum : ENUM8 { + enum ContentLaunchStatusEnum : enum8 { kSuccess = 0; kUrlNotAvailable = 1; kAuthFailed = 2; } - enum MetricTypeEnum : ENUM8 { + enum MetricTypeEnum : enum8 { kPixels = 0; kPercentage = 1; } - enum ParameterEnum : ENUM8 { + enum ParameterEnum : enum8 { kActor = 0; kChannel = 1; kCharacter = 2; @@ -1745,12 +1745,12 @@ client cluster ContentLauncher = 1290 { kVideo = 13; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kContentSearch = 0x1; kURLPlayback = 0x2; } - bitmap SupportedStreamingProtocol : BITMAP32 { + bitmap SupportedStreamingProtocol : bitmap32 { kDASH = 0x1; kHLS = 0x2; } @@ -1825,7 +1825,7 @@ client cluster ContentLauncher = 1290 { /** This cluster provides an interface for controlling the Output on a media device such as a TV. */ client cluster AudioOutput = 1291 { - enum OutputTypeEnum : ENUM8 { + enum OutputTypeEnum : enum8 { kHDMI = 0; kBT = 1; kOptical = 2; @@ -1834,7 +1834,7 @@ client cluster AudioOutput = 1291 { kOther = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNameUpdates = 0x1; } @@ -1870,13 +1870,13 @@ client cluster AudioOutput = 1291 { /** This cluster provides an interface for launching content on a media player device such as a TV or Speaker. */ client cluster ApplicationLauncher = 1292 { - enum ApplicationLauncherStatusEnum : ENUM8 { + enum ApplicationLauncherStatusEnum : enum8 { kSuccess = 0; kAppNotAvailable = 1; kSystemBusy = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kApplicationPlatform = 0x1; } @@ -1927,7 +1927,7 @@ client cluster ApplicationLauncher = 1292 { /** This cluster provides information about an application running on a TV or media player device which is represented as an endpoint. */ client cluster ApplicationBasic = 1293 { - enum ApplicationStatusEnum : ENUM8 { + enum ApplicationStatusEnum : enum8 { kStopped = 0; kActiveVisibleFocus = 1; kActiveHidden = 2; diff --git a/examples/virtual-device-app/virtual-device-common/virtual-device-app.matter b/examples/virtual-device-app/virtual-device-common/virtual-device-app.matter index 997aad965458a9..16d17d15a169f1 100644 --- a/examples/virtual-device-app/virtual-device-common/virtual-device-app.matter +++ b/examples/virtual-device-app/virtual-device-common/virtual-device-app.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -49,11 +49,11 @@ server cluster Identify = 3 { /** Attributes and commands for group configuration and manipulation. */ server cluster Groups = 4 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kGroupNames = 0x1; } - bitmap NameSupportBitmap : BITMAP8 { + bitmap NameSupportBitmap : bitmap8 { kGroupNames = 0x80; } @@ -117,15 +117,15 @@ server cluster Groups = 4 { } /** Attributes and commands for scene configuration and manipulation. */ -server cluster Scenes = 5 { - bitmap Feature : BITMAP32 { +provisional server cluster Scenes = 5 { + bitmap Feature : bitmap32 { kSceneNames = 0x1; kExplicit = 0x2; kTableSize = 0x4; kFabricScenes = 0x8; } - bitmap ScenesCopyMode : BITMAP8 { + bitmap ScenesCopyMode : bitmap8 { kCopyAllScenes = 0x1; } @@ -240,33 +240,33 @@ server cluster Scenes = 5 { /** Attributes and commands for switching devices between 'On' and 'Off' states. */ server cluster OnOff = 6 { - enum DelayedAllOffEffectVariantEnum : ENUM8 { + enum DelayedAllOffEffectVariantEnum : enum8 { kDelayedOffFastFade = 0; kNoFade = 1; kDelayedOffSlowFade = 2; } - enum DyingLightEffectVariantEnum : ENUM8 { + enum DyingLightEffectVariantEnum : enum8 { kDyingLightFadeOff = 0; } - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kDelayedAllOff = 0; kDyingLight = 1; } - enum StartUpOnOffEnum : ENUM8 { + enum StartUpOnOffEnum : enum8 { kOff = 0; kOn = 1; kToggle = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kLighting = 0x1; kDeadFrontBehavior = 0x2; } - bitmap OnOffControlBitmap : BITMAP8 { + bitmap OnOffControlBitmap : bitmap8 { kAcceptOnlyWhenOn = 0x1; } @@ -303,7 +303,7 @@ server cluster OnOff = 6 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -355,13 +355,13 @@ server cluster Binding = 30 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -369,7 +369,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -427,7 +427,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -451,7 +451,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -515,20 +515,20 @@ server cluster BasicInformation = 40 { /** Provides an interface for providing OTA software updates */ server cluster OtaSoftwareUpdateProvider = 41 { - enum ApplyUpdateActionEnum : ENUM8 { + enum ApplyUpdateActionEnum : enum8 { kProceed = 0; kAwaitNextAction = 1; kDiscontinue = 2; } - enum DownloadProtocolEnum : ENUM8 { + enum DownloadProtocolEnum : enum8 { kBDXSynchronous = 0; kBDXAsynchronous = 1; kHTTPS = 2; kVendorSpecific = 3; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kUpdateAvailable = 0; kBusy = 1; kNotAvailable = 2; @@ -604,7 +604,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -619,12 +619,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -644,13 +644,13 @@ server cluster TimeFormatLocalization = 44 { user. As such, Nodes that visually or audibly convey measurable values to the user need a mechanism by which they can be configured to use a user’s preferred unit. */ server cluster UnitLocalization = 45 { - enum TempUnitEnum : ENUM8 { + enum TempUnitEnum : enum8 { kFahrenheit = 0; kCelsius = 1; kKelvin = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTemperatureUnit = 0x1; } @@ -665,7 +665,7 @@ server cluster UnitLocalization = 45 { /** This cluster is used to describe the configuration and capabilities of a physical power source that provides power to the Node. */ server cluster PowerSource = 47 { - enum BatApprovedChemistryEnum : ENUM16 { + enum BatApprovedChemistryEnum : enum16 { kUnspecified = 0; kAlkaline = 1; kLithiumCarbonFluoride = 2; @@ -701,7 +701,7 @@ server cluster PowerSource = 47 { kZincCerium = 32; } - enum BatChargeFaultEnum : ENUM8 { + enum BatChargeFaultEnum : enum8 { kUnspecified = 0; kAmbientTooHot = 1; kAmbientTooCold = 2; @@ -715,20 +715,20 @@ server cluster PowerSource = 47 { kSafetyTimeout = 10; } - enum BatChargeLevelEnum : ENUM8 { + enum BatChargeLevelEnum : enum8 { kOK = 0; kWarning = 1; kCritical = 2; } - enum BatChargeStateEnum : ENUM8 { + enum BatChargeStateEnum : enum8 { kUnknown = 0; kIsCharging = 1; kIsAtFullCharge = 2; kIsNotCharging = 3; } - enum BatCommonDesignationEnum : ENUM16 { + enum BatCommonDesignationEnum : enum16 { kUnspecified = 0; kAAA = 1; kAA = 2; @@ -812,38 +812,38 @@ server cluster PowerSource = 47 { k32600 = 80; } - enum BatFaultEnum : ENUM8 { + enum BatFaultEnum : enum8 { kUnspecified = 0; kOverTemp = 1; kUnderTemp = 2; } - enum BatReplaceabilityEnum : ENUM8 { + enum BatReplaceabilityEnum : enum8 { kUnspecified = 0; kNotReplaceable = 1; kUserReplaceable = 2; kFactoryReplaceable = 3; } - enum PowerSourceStatusEnum : ENUM8 { + enum PowerSourceStatusEnum : enum8 { kUnspecified = 0; kActive = 1; kStandby = 2; kUnavailable = 3; } - enum WiredCurrentTypeEnum : ENUM8 { + enum WiredCurrentTypeEnum : enum8 { kAC = 0; kDC = 1; } - enum WiredFaultEnum : ENUM8 { + enum WiredFaultEnum : enum8 { kUnspecified = 0; kOverVoltage = 1; kUnderVoltage = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWired = 0x1; kBattery = 0x2; kRechargeable = 0x4; @@ -895,7 +895,7 @@ server cluster PowerSource = 47 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -903,7 +903,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -959,7 +959,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -975,7 +975,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -984,13 +984,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -1099,13 +1099,13 @@ server cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ server cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -1113,7 +1113,7 @@ server cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -1136,7 +1136,7 @@ server cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -1146,7 +1146,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -1160,7 +1160,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -1168,14 +1168,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -1241,7 +1241,7 @@ server cluster GeneralDiagnostics = 51 { /** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster SoftwareDiagnostics = 52 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWaterMarks = 0x1; } @@ -1273,19 +1273,19 @@ server cluster SoftwareDiagnostics = 52 { /** The Thread Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems */ server cluster ThreadNetworkDiagnostics = 53 { - enum ConnectionStatusEnum : ENUM8 { + enum ConnectionStatusEnum : enum8 { kConnected = 0; kNotConnected = 1; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kLinkDown = 1; kHardwareFailure = 2; kNetworkJammed = 3; } - enum RoutingRoleEnum : ENUM8 { + enum RoutingRoleEnum : enum8 { kUnspecified = 0; kUnassigned = 1; kSleepyEndDevice = 2; @@ -1295,7 +1295,7 @@ server cluster ThreadNetworkDiagnostics = 53 { kLeader = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; kMLECounts = 0x4; @@ -1434,19 +1434,19 @@ server cluster ThreadNetworkDiagnostics = 53 { /** The Wi-Fi Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster WiFiNetworkDiagnostics = 54 { - enum AssociationFailureCauseEnum : ENUM8 { + enum AssociationFailureCauseEnum : enum8 { kUnknown = 0; kAssociationFailed = 1; kAuthenticationFailed = 2; kSsidNotFound = 3; } - enum ConnectionStatusEnum : ENUM8 { + enum ConnectionStatusEnum : enum8 { kConnected = 0; kNotConnected = 1; } - enum SecurityTypeEnum : ENUM8 { + enum SecurityTypeEnum : enum8 { kUnspecified = 0; kNone = 1; kWEP = 2; @@ -1455,7 +1455,7 @@ server cluster WiFiNetworkDiagnostics = 54 { kWPA3 = 5; } - enum WiFiVersionEnum : ENUM8 { + enum WiFiVersionEnum : enum8 { kA = 0; kB = 1; kG = 2; @@ -1465,7 +1465,7 @@ server cluster WiFiNetworkDiagnostics = 54 { kAh = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; } @@ -1506,7 +1506,7 @@ server cluster WiFiNetworkDiagnostics = 54 { /** The Ethernet Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster EthernetNetworkDiagnostics = 55 { - enum PHYRateEnum : ENUM8 { + enum PHYRateEnum : enum8 { kRate10M = 0; kRate100M = 1; kRate1G = 2; @@ -1519,7 +1519,7 @@ server cluster EthernetNetworkDiagnostics = 55 { kRate400G = 9; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; } @@ -1545,13 +1545,13 @@ server cluster EthernetNetworkDiagnostics = 55 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -1586,12 +1586,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -1702,12 +1702,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -1807,7 +1807,7 @@ server cluster UserLabel = 65 { /** An interface to a generic way to secure a door */ server cluster DoorLock = 257 { - enum AlarmCodeEnum : ENUM8 { + enum AlarmCodeEnum : enum8 { kLockJammed = 0; kLockFactoryReset = 1; kLockRadioPowerCycled = 3; @@ -1818,13 +1818,13 @@ server cluster DoorLock = 257 { kForcedUser = 8; } - enum CredentialRuleEnum : ENUM8 { + enum CredentialRuleEnum : enum8 { kSingle = 0; kDual = 1; kTri = 2; } - enum CredentialTypeEnum : ENUM8 { + enum CredentialTypeEnum : enum8 { kProgrammingPIN = 0; kPIN = 1; kRFID = 2; @@ -1833,20 +1833,20 @@ server cluster DoorLock = 257 { kFace = 5; } - enum DataOperationTypeEnum : ENUM8 { + enum DataOperationTypeEnum : enum8 { kAdd = 0; kClear = 1; kModify = 2; } - enum DlLockState : ENUM8 { + enum DlLockState : enum8 { kNotFullyLocked = 0; kLocked = 1; kUnlocked = 2; kUnlatched = 3; } - enum DlLockType : ENUM8 { + enum DlLockType : enum8 { kDeadBolt = 0; kMagnetic = 1; kOther = 2; @@ -1861,7 +1861,7 @@ server cluster DoorLock = 257 { kEurocylinder = 11; } - enum DlStatus : ENUM8 { + enum DlStatus : enum8 { kSuccess = 0; kFailure = 1; kDuplicate = 2; @@ -1871,7 +1871,7 @@ server cluster DoorLock = 257 { kNotFound = 139; } - enum DoorLockOperationEventCode : ENUM8 { + enum DoorLockOperationEventCode : enum8 { kUnknownOrMfgSpecific = 0; kLock = 1; kUnlock = 2; @@ -1889,7 +1889,7 @@ server cluster DoorLock = 257 { kManualUnlock = 14; } - enum DoorLockProgrammingEventCode : ENUM8 { + enum DoorLockProgrammingEventCode : enum8 { kUnknownOrMfgSpecific = 0; kMasterCodeChanged = 1; kPinAdded = 2; @@ -1899,21 +1899,21 @@ server cluster DoorLock = 257 { kIdDeleted = 6; } - enum DoorLockSetPinOrIdStatus : ENUM8 { + enum DoorLockSetPinOrIdStatus : enum8 { kSuccess = 0; kGeneralFailure = 1; kMemoryFull = 2; kDuplicateCodeError = 3; } - enum DoorLockUserStatus : ENUM8 { + enum DoorLockUserStatus : enum8 { kAvailable = 0; kOccupiedEnabled = 1; kOccupiedDisabled = 3; kNotSupported = 255; } - enum DoorLockUserType : ENUM8 { + enum DoorLockUserType : enum8 { kUnrestricted = 0; kYearDayScheduleUser = 1; kWeekDayScheduleUser = 2; @@ -1922,7 +1922,7 @@ server cluster DoorLock = 257 { kNotSupported = 255; } - enum DoorStateEnum : ENUM8 { + enum DoorStateEnum : enum8 { kDoorOpen = 0; kDoorClosed = 1; kDoorJammed = 2; @@ -1931,7 +1931,7 @@ server cluster DoorLock = 257 { kDoorAjar = 5; } - enum LockDataTypeEnum : ENUM8 { + enum LockDataTypeEnum : enum8 { kUnspecified = 0; kProgrammingCode = 1; kUserIndex = 2; @@ -1945,7 +1945,7 @@ server cluster DoorLock = 257 { kFace = 10; } - enum LockOperationTypeEnum : ENUM8 { + enum LockOperationTypeEnum : enum8 { kLock = 0; kUnlock = 1; kNonAccessUserEvent = 2; @@ -1953,7 +1953,7 @@ server cluster DoorLock = 257 { kUnlatch = 4; } - enum OperatingModeEnum : ENUM8 { + enum OperatingModeEnum : enum8 { kNormal = 0; kVacation = 1; kPrivacy = 2; @@ -1961,7 +1961,7 @@ server cluster DoorLock = 257 { kPassage = 4; } - enum OperationErrorEnum : ENUM8 { + enum OperationErrorEnum : enum8 { kUnspecified = 0; kInvalidCredential = 1; kDisabledUserDenied = 2; @@ -1969,7 +1969,7 @@ server cluster DoorLock = 257 { kInsufficientBattery = 4; } - enum OperationSourceEnum : ENUM8 { + enum OperationSourceEnum : enum8 { kUnspecified = 0; kManual = 1; kProprietaryRemote = 2; @@ -1982,13 +1982,13 @@ server cluster DoorLock = 257 { kBiometric = 9; } - enum UserStatusEnum : ENUM8 { + enum UserStatusEnum : enum8 { kAvailable = 0; kOccupiedEnabled = 1; kOccupiedDisabled = 3; } - enum UserTypeEnum : ENUM8 { + enum UserTypeEnum : enum8 { kUnrestrictedUser = 0; kYearDayScheduleUser = 1; kWeekDayScheduleUser = 2; @@ -2001,7 +2001,7 @@ server cluster DoorLock = 257 { kRemoteOnlyUser = 9; } - bitmap DaysMaskMap : BITMAP8 { + bitmap DaysMaskMap : bitmap8 { kSunday = 0x1; kMonday = 0x2; kTuesday = 0x4; @@ -2011,19 +2011,19 @@ server cluster DoorLock = 257 { kSaturday = 0x40; } - bitmap DlCredentialRuleMask : BITMAP8 { + bitmap DlCredentialRuleMask : bitmap8 { kSingle = 0x1; kDual = 0x2; kTri = 0x4; } - bitmap DlCredentialRulesSupport : BITMAP8 { + bitmap DlCredentialRulesSupport : bitmap8 { kSingle = 0x1; kDual = 0x2; kTri = 0x4; } - bitmap DlDefaultConfigurationRegister : BITMAP16 { + bitmap DlDefaultConfigurationRegister : bitmap16 { kEnableLocalProgrammingEnabled = 0x1; kKeypadInterfaceDefaultAccessEnabled = 0x2; kRemoteInterfaceDefaultAccessIsEnabled = 0x4; @@ -2032,7 +2032,7 @@ server cluster DoorLock = 257 { kLEDSettingsSet = 0x80; } - bitmap DlKeypadOperationEventMask : BITMAP16 { + bitmap DlKeypadOperationEventMask : bitmap16 { kUnknown = 0x1; kLock = 0x2; kUnlock = 0x4; @@ -2043,7 +2043,7 @@ server cluster DoorLock = 257 { kNonAccessUserOpEvent = 0x80; } - bitmap DlKeypadProgrammingEventMask : BITMAP16 { + bitmap DlKeypadProgrammingEventMask : bitmap16 { kUnknown = 0x1; kProgrammingPINChanged = 0x2; kPINAdded = 0x4; @@ -2051,14 +2051,14 @@ server cluster DoorLock = 257 { kPINChanged = 0x10; } - bitmap DlLocalProgrammingFeatures : BITMAP8 { + bitmap DlLocalProgrammingFeatures : bitmap8 { kAddUsersCredentialsSchedulesLocally = 0x1; kModifyUsersCredentialsSchedulesLocally = 0x2; kClearUsersCredentialsSchedulesLocally = 0x4; kAdjustLockSettingsLocally = 0x8; } - bitmap DlManualOperationEventMask : BITMAP16 { + bitmap DlManualOperationEventMask : bitmap16 { kUnknown = 0x1; kThumbturnLock = 0x2; kThumbturnUnlock = 0x4; @@ -2072,7 +2072,7 @@ server cluster DoorLock = 257 { kManualUnlock = 0x400; } - bitmap DlRFIDOperationEventMask : BITMAP16 { + bitmap DlRFIDOperationEventMask : bitmap16 { kUnknown = 0x1; kLock = 0x2; kUnlock = 0x4; @@ -2082,13 +2082,13 @@ server cluster DoorLock = 257 { kUnlockInvalidSchedule = 0x40; } - bitmap DlRFIDProgrammingEventMask : BITMAP16 { + bitmap DlRFIDProgrammingEventMask : bitmap16 { kUnknown = 0x1; kRFIDCodeAdded = 0x20; kRFIDCodeCleared = 0x40; } - bitmap DlRemoteOperationEventMask : BITMAP16 { + bitmap DlRemoteOperationEventMask : bitmap16 { kUnknown = 0x1; kLock = 0x2; kUnlock = 0x4; @@ -2098,7 +2098,7 @@ server cluster DoorLock = 257 { kUnlockInvalidSchedule = 0x40; } - bitmap DlRemoteProgrammingEventMask : BITMAP16 { + bitmap DlRemoteProgrammingEventMask : bitmap16 { kUnknown = 0x1; kProgrammingPINChanged = 0x2; kPINAdded = 0x4; @@ -2108,7 +2108,7 @@ server cluster DoorLock = 257 { kRFIDCodeCleared = 0x40; } - bitmap DlSupportedOperatingModes : BITMAP16 { + bitmap DlSupportedOperatingModes : bitmap16 { kNormal = 0x1; kVacation = 0x2; kPrivacy = 0x4; @@ -2116,7 +2116,7 @@ server cluster DoorLock = 257 { kPassage = 0x10; } - bitmap DoorLockDayOfWeek : BITMAP8 { + bitmap DoorLockDayOfWeek : bitmap8 { kSunday = 0x1; kMonday = 0x2; kTuesday = 0x4; @@ -2126,7 +2126,7 @@ server cluster DoorLock = 257 { kSaturday = 0x40; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPINCredential = 0x1; kRFIDCredential = 0x2; kFingerCredentials = 0x4; @@ -2365,53 +2365,53 @@ server cluster DoorLock = 257 { /** Attributes and commands for controlling the color properties of a color-capable light. */ server cluster ColorControl = 768 { - enum ColorLoopAction : ENUM8 { + enum ColorLoopAction : enum8 { kDeactivate = 0; kActivateFromColorLoopStartEnhancedHue = 1; kActivateFromEnhancedCurrentHue = 2; } - enum ColorLoopDirection : ENUM8 { + enum ColorLoopDirection : enum8 { kDecrementHue = 0; kIncrementHue = 1; } - enum ColorMode : ENUM8 { + enum ColorMode : enum8 { kCurrentHueAndCurrentSaturation = 0; kCurrentXAndCurrentY = 1; kColorTemperature = 2; } - enum HueDirection : ENUM8 { + enum HueDirection : enum8 { kShortestDistance = 0; kLongestDistance = 1; kUp = 2; kDown = 3; } - enum HueMoveMode : ENUM8 { + enum HueMoveMode : enum8 { kStop = 0; kUp = 1; kDown = 3; } - enum HueStepMode : ENUM8 { + enum HueStepMode : enum8 { kUp = 1; kDown = 3; } - enum SaturationMoveMode : ENUM8 { + enum SaturationMoveMode : enum8 { kStop = 0; kUp = 1; kDown = 3; } - enum SaturationStepMode : ENUM8 { + enum SaturationStepMode : enum8 { kUp = 1; kDown = 3; } - bitmap ColorCapabilities : BITMAP16 { + bitmap ColorCapabilities : bitmap16 { kHueSaturationSupported = 0x1; kEnhancedHueSupported = 0x2; kColorLoopSupported = 0x4; @@ -2419,14 +2419,14 @@ server cluster ColorControl = 768 { kColorTemperatureSupported = 0x10; } - bitmap ColorLoopUpdateFlags : BITMAP8 { + bitmap ColorLoopUpdateFlags : bitmap8 { kUpdateAction = 0x1; kUpdateDirection = 0x2; kUpdateTime = 0x4; kUpdateStartHue = 0x8; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kHueAndSaturation = 0x1; kEnhancedHue = 0x2; kColorLoop = 0x4; diff --git a/examples/window-app/common/window-app.matter b/examples/window-app/common/window-app.matter index 9251732f79fdbb..94883296466161 100644 --- a/examples/window-app/common/window-app.matter +++ b/examples/window-app/common/window-app.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ server cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ server cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -49,11 +49,11 @@ server cluster Identify = 3 { /** Attributes and commands for group configuration and manipulation. */ server cluster Groups = 4 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kGroupNames = 0x1; } - bitmap NameSupportBitmap : BITMAP8 { + bitmap NameSupportBitmap : bitmap8 { kGroupNames = 0x80; } @@ -118,7 +118,7 @@ server cluster Groups = 4 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -151,13 +151,13 @@ server cluster Descriptor = 29 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ server cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -165,7 +165,7 @@ server cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -223,7 +223,7 @@ server cluster AccessControl = 31 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ server cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -247,7 +247,7 @@ server cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -310,20 +310,20 @@ server cluster BasicInformation = 40 { /** Provides an interface for providing OTA software updates */ client cluster OtaSoftwareUpdateProvider = 41 { - enum ApplyUpdateActionEnum : ENUM8 { + enum ApplyUpdateActionEnum : enum8 { kProceed = 0; kAwaitNextAction = 1; kDiscontinue = 2; } - enum DownloadProtocolEnum : ENUM8 { + enum DownloadProtocolEnum : enum8 { kBDXSynchronous = 0; kBDXAsynchronous = 1; kHTTPS = 2; kVendorSpecific = 3; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kUpdateAvailable = 0; kBusy = 1; kNotAvailable = 2; @@ -384,13 +384,13 @@ client cluster OtaSoftwareUpdateProvider = 41 { /** Provides an interface for downloading and applying OTA software updates */ server cluster OtaSoftwareUpdateRequestor = 42 { - enum AnnouncementReasonEnum : ENUM8 { + enum AnnouncementReasonEnum : enum8 { kSimpleAnnouncement = 0; kUpdateAvailable = 1; kUrgentUpdateAvailable = 2; } - enum ChangeReasonEnum : ENUM8 { + enum ChangeReasonEnum : enum8 { kUnknown = 0; kSuccess = 1; kFailure = 2; @@ -398,7 +398,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 { kDelayByProvider = 4; } - enum UpdateStateEnum : ENUM8 { + enum UpdateStateEnum : enum8 { kUnknown = 0; kIdle = 1; kQuerying = 2; @@ -477,7 +477,7 @@ server cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ server cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -492,12 +492,12 @@ server cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -517,13 +517,13 @@ server cluster TimeFormatLocalization = 44 { user. As such, Nodes that visually or audibly convey measurable values to the user need a mechanism by which they can be configured to use a user’s preferred unit. */ server cluster UnitLocalization = 45 { - enum TempUnitEnum : ENUM8 { + enum TempUnitEnum : enum8 { kFahrenheit = 0; kCelsius = 1; kKelvin = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTemperatureUnit = 0x1; } @@ -537,7 +537,7 @@ server cluster UnitLocalization = 45 { /** This cluster is used to describe the configuration and capabilities of a physical power source that provides power to the Node. */ server cluster PowerSource = 47 { - enum BatApprovedChemistryEnum : ENUM16 { + enum BatApprovedChemistryEnum : enum16 { kUnspecified = 0; kAlkaline = 1; kLithiumCarbonFluoride = 2; @@ -573,7 +573,7 @@ server cluster PowerSource = 47 { kZincCerium = 32; } - enum BatChargeFaultEnum : ENUM8 { + enum BatChargeFaultEnum : enum8 { kUnspecified = 0; kAmbientTooHot = 1; kAmbientTooCold = 2; @@ -587,20 +587,20 @@ server cluster PowerSource = 47 { kSafetyTimeout = 10; } - enum BatChargeLevelEnum : ENUM8 { + enum BatChargeLevelEnum : enum8 { kOK = 0; kWarning = 1; kCritical = 2; } - enum BatChargeStateEnum : ENUM8 { + enum BatChargeStateEnum : enum8 { kUnknown = 0; kIsCharging = 1; kIsAtFullCharge = 2; kIsNotCharging = 3; } - enum BatCommonDesignationEnum : ENUM16 { + enum BatCommonDesignationEnum : enum16 { kUnspecified = 0; kAAA = 1; kAA = 2; @@ -684,38 +684,38 @@ server cluster PowerSource = 47 { k32600 = 80; } - enum BatFaultEnum : ENUM8 { + enum BatFaultEnum : enum8 { kUnspecified = 0; kOverTemp = 1; kUnderTemp = 2; } - enum BatReplaceabilityEnum : ENUM8 { + enum BatReplaceabilityEnum : enum8 { kUnspecified = 0; kNotReplaceable = 1; kUserReplaceable = 2; kFactoryReplaceable = 3; } - enum PowerSourceStatusEnum : ENUM8 { + enum PowerSourceStatusEnum : enum8 { kUnspecified = 0; kActive = 1; kStandby = 2; kUnavailable = 3; } - enum WiredCurrentTypeEnum : ENUM8 { + enum WiredCurrentTypeEnum : enum8 { kAC = 0; kDC = 1; } - enum WiredFaultEnum : ENUM8 { + enum WiredFaultEnum : enum8 { kUnspecified = 0; kOverVoltage = 1; kUnderVoltage = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWired = 0x1; kBattery = 0x2; kRechargeable = 0x4; @@ -772,7 +772,7 @@ server cluster PowerSource = 47 { /** This cluster is used to manage global aspects of the Commissioning flow. */ server cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -780,7 +780,7 @@ server cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -836,7 +836,7 @@ server cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ server cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -852,7 +852,7 @@ server cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -861,13 +861,13 @@ server cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -976,7 +976,7 @@ server cluster NetworkCommissioning = 49 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -986,7 +986,7 @@ server cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -1000,7 +1000,7 @@ server cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -1008,14 +1008,14 @@ server cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -1081,7 +1081,7 @@ server cluster GeneralDiagnostics = 51 { /** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster SoftwareDiagnostics = 52 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWaterMarks = 0x1; } @@ -1115,19 +1115,19 @@ server cluster SoftwareDiagnostics = 52 { /** The Thread Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems */ server cluster ThreadNetworkDiagnostics = 53 { - enum ConnectionStatusEnum : ENUM8 { + enum ConnectionStatusEnum : enum8 { kConnected = 0; kNotConnected = 1; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kLinkDown = 1; kHardwareFailure = 2; kNetworkJammed = 3; } - enum RoutingRoleEnum : ENUM8 { + enum RoutingRoleEnum : enum8 { kUnspecified = 0; kUnassigned = 1; kSleepyEndDevice = 2; @@ -1137,7 +1137,7 @@ server cluster ThreadNetworkDiagnostics = 53 { kLeader = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; kMLECounts = 0x4; @@ -1278,19 +1278,19 @@ server cluster ThreadNetworkDiagnostics = 53 { /** The Wi-Fi Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster WiFiNetworkDiagnostics = 54 { - enum AssociationFailureCauseEnum : ENUM8 { + enum AssociationFailureCauseEnum : enum8 { kUnknown = 0; kAssociationFailed = 1; kAuthenticationFailed = 2; kSsidNotFound = 3; } - enum ConnectionStatusEnum : ENUM8 { + enum ConnectionStatusEnum : enum8 { kConnected = 0; kNotConnected = 1; } - enum SecurityTypeEnum : ENUM8 { + enum SecurityTypeEnum : enum8 { kUnspecified = 0; kNone = 1; kWEP = 2; @@ -1299,7 +1299,7 @@ server cluster WiFiNetworkDiagnostics = 54 { kWPA3 = 5; } - enum WiFiVersionEnum : ENUM8 { + enum WiFiVersionEnum : enum8 { kA = 0; kB = 1; kG = 2; @@ -1309,7 +1309,7 @@ server cluster WiFiNetworkDiagnostics = 54 { kAh = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; } @@ -1352,7 +1352,7 @@ server cluster WiFiNetworkDiagnostics = 54 { /** The Ethernet Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ server cluster EthernetNetworkDiagnostics = 55 { - enum PHYRateEnum : ENUM8 { + enum PHYRateEnum : enum8 { kRate10M = 0; kRate100M = 1; kRate1G = 2; @@ -1365,7 +1365,7 @@ server cluster EthernetNetworkDiagnostics = 55 { kRate400G = 9; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; } @@ -1389,13 +1389,13 @@ server cluster EthernetNetworkDiagnostics = 55 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -1430,12 +1430,12 @@ server cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ server cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -1546,12 +1546,12 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -1651,7 +1651,7 @@ server cluster UserLabel = 65 { /** Provides an interface for controlling and adjusting automatic window coverings. */ server cluster WindowCovering = 258 { - enum EndProductType : ENUM8 { + enum EndProductType : enum8 { kRollerShade = 0; kRomanShade = 1; kBalloonShade = 2; @@ -1679,7 +1679,7 @@ server cluster WindowCovering = 258 { kUnknown = 255; } - enum Type : ENUM8 { + enum Type : enum8 { kRollerShade = 0; kRollerShade2Motor = 1; kRollerShadeExterior = 2; @@ -1693,7 +1693,7 @@ server cluster WindowCovering = 258 { kUnknown = 255; } - bitmap ConfigStatus : BITMAP8 { + bitmap ConfigStatus : bitmap8 { kOperational = 0x1; kOnlineReserved = 0x2; kLiftMovementReversed = 0x4; @@ -1703,7 +1703,7 @@ server cluster WindowCovering = 258 { kTiltEncoderControlled = 0x40; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kLift = 0x1; kTilt = 0x2; kPositionAwareLift = 0x4; @@ -1711,20 +1711,20 @@ server cluster WindowCovering = 258 { kPositionAwareTilt = 0x10; } - bitmap Mode : BITMAP8 { + bitmap Mode : bitmap8 { kMotorDirectionReversed = 0x1; kCalibrationMode = 0x2; kMaintenanceMode = 0x4; kLedFeedback = 0x8; } - bitmap OperationalStatus : BITMAP8 { + bitmap OperationalStatus : bitmap8 { kGlobal = 0x3; kLift = 0xC; kTilt = 0x30; } - bitmap SafetyStatus : BITMAP16 { + bitmap SafetyStatus : bitmap16 { kRemoteLockout = 0x1; kTamperDetection = 0x2; kFailedCommunication = 0x4; diff --git a/examples/window-app/nrfconnect/main/include/AppTask.h b/examples/window-app/nrfconnect/main/include/AppTask.h index b9f78d244d1cd5..fdd94d0c61e416 100644 --- a/examples/window-app/nrfconnect/main/include/AppTask.h +++ b/examples/window-app/nrfconnect/main/include/AppTask.h @@ -34,13 +34,10 @@ struct k_timer; struct Identify; -class AppFabricTableDelegate; class AppTask { public: - friend class AppFabricTableDelegate; - static AppTask & Instance(void) { static AppTask sAppTask; diff --git a/scripts/build/build/targets.py b/scripts/build/build/targets.py index fb5e92fb38ca0f..21ad50d06c4d8d 100755 --- a/scripts/build/build/targets.py +++ b/scripts/build/build/targets.py @@ -655,6 +655,7 @@ def BuildBouffalolabTarget(): target.AppendModifier('thread', enable_thread=True) target.AppendModifier('fp', enable_frame_ptr=True) target.AppendModifier('memmonitor', enable_heap_monitoring=True) + target.AppendModifier('mot', use_matter_openthread=True) return target diff --git a/scripts/build/builders/bouffalolab.py b/scripts/build/builders/bouffalolab.py index f6424e977b3d56..c4d4fc10f12ccd 100644 --- a/scripts/build/builders/bouffalolab.py +++ b/scripts/build/builders/bouffalolab.py @@ -91,7 +91,8 @@ def __init__(self, enable_wifi: bool = False, enable_thread: bool = False, enable_frame_ptr: bool = False, - enable_heap_monitoring: bool = False + enable_heap_monitoring: bool = False, + use_matter_openthread: bool = False ): if 'BL602' == module_type: @@ -166,6 +167,9 @@ def __init__(self, if enable_thread: self.argsOpt.append(f'openthread_project_core_config_file="{bouffalo_chip}-openthread-core-bl-config.h"') + if not use_matter_openthread: + self.argsOpt.append( + 'openthread_root="//third_party/connectedhomeip/third_party/bouffalolab/repo/components/network/thread/openthread"') if enable_cdc: if bouffalo_chip != "bl702": diff --git a/scripts/build/test.py b/scripts/build/test.py index c89a4d98109357..f684ace074d5ca 100644 --- a/scripts/build/test.py +++ b/scripts/build/test.py @@ -48,6 +48,7 @@ def build_actual_output(root: str, out: str, args: List[str]) -> List[str]: 'IMX_SDK_ROOT': 'IMX_SDK_ROOT', 'TI_SYSCONFIG_ROOT': 'TEST_TI_SYSCONFIG_ROOT', 'JAVA_PATH': 'TEST_JAVA_PATH', + 'GSDK_ROOT': 'TEST_GSDK_ROOT', }) retval = subprocess.run([ diff --git a/scripts/build/testdata/all_targets_linux_x64.txt b/scripts/build/testdata/all_targets_linux_x64.txt index 7ed9c674b978f3..b58a05a1d9d651 100644 --- a/scripts/build/testdata/all_targets_linux_x64.txt +++ b/scripts/build/testdata/all_targets_linux_x64.txt @@ -1,7 +1,7 @@ ameba-amebad-{all-clusters,all-clusters-minimal,light,light-switch,pigweed} asr-{asr582x,asr595x,asr550x}-{all-clusters,all-clusters-minimal,lighting,light-switch,lock,bridge,temperature-measurement,thermostat,ota-requestor,dishwasher,refrigerator}[-ota][-shell][-no_logging][-factory][-rotating_id][-rio] android-{arm,arm64,x86,x64,androidstudio-arm,androidstudio-arm64,androidstudio-x86,androidstudio-x64}-{chip-tool,chip-test,tv-server,tv-casting-app,java-matter-controller,kotlin-matter-controller,virtual-device-app}[-no-debug] -bouffalolab-{bl602-iot-matter-v1,bl602-night-light,xt-zb6-devkit,bl706-night-light,bl706dk,bl704ldk}-light[-shell][-115200][-rpc][-cdc][-resetcnt][-rotating_device_id][-mfd][-mfdtest][-ethernet][-wifi][-thread][-fp][-memmonitor] +bouffalolab-{bl602-iot-matter-v1,bl602-night-light,xt-zb6-devkit,bl706-night-light,bl706dk,bl704ldk}-light[-shell][-115200][-rpc][-cdc][-resetcnt][-rotating_device_id][-mfd][-mfdtest][-ethernet][-wifi][-thread][-fp][-memmonitor][-mot] cc32xx-lock ti-cc13x2x7_26x2x7-{lighting,lock,pump,pump-controller}[-mtd] ti-cc13x4_26x4-{all-clusters,lighting,lock,pump,pump-controller}[-mtd][-ftd] diff --git a/scripts/build/testdata/dry_run_efr32-brd4161a-light-rpc-no-version.txt b/scripts/build/testdata/dry_run_efr32-brd4161a-light-rpc-no-version.txt index 309cdd49b9f256..b96ccbc89ea97e 100644 --- a/scripts/build/testdata/dry_run_efr32-brd4161a-light-rpc-no-version.txt +++ b/scripts/build/testdata/dry_run_efr32-brd4161a-light-rpc-no-version.txt @@ -2,7 +2,7 @@ cd "{root}" # Generating efr32-brd4161a-light-rpc-no-version -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/silabs '--args=silabs_board="BRD4161A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4161a-light-rpc-no-version +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/silabs '--args=silabs_board="BRD4161A" is_debug=false import("//with_pw_rpc.gni") efr32_sdk_root="TEST_GSDK_ROOT" openthread_root="TEST_GSDK_ROOT/util/third_party/openthread"' {out}/efr32-brd4161a-light-rpc-no-version # Building efr32-brd4161a-light-rpc-no-version ninja -C {out}/efr32-brd4161a-light-rpc-no-version diff --git a/scripts/py_matter_idl/BUILD.gn b/scripts/py_matter_idl/BUILD.gn index 81f5be3be554b4..48fc68aea40268 100644 --- a/scripts/py_matter_idl/BUILD.gn +++ b/scripts/py_matter_idl/BUILD.gn @@ -62,6 +62,7 @@ pw_python_package("matter_idl") { "matter_idl/test_backwards_compatibility.py", "matter_idl/test_matter_idl_parser.py", "matter_idl/test_generators.py", + "matter_idl/test_idl_generator.py", "matter_idl/test_xml_parser.py", ] diff --git a/scripts/py_matter_idl/files.gni b/scripts/py_matter_idl/files.gni index 84680a8863d42f..cb54b253ef0615 100644 --- a/scripts/py_matter_idl/files.gni +++ b/scripts/py_matter_idl/files.gni @@ -7,6 +7,7 @@ matter_idl_generator_templates = [ "${chip_root}/scripts/py_matter_idl/matter_idl/generators/cpp/application/PluginApplicationCallbacksHeader.jinja", "${chip_root}/scripts/py_matter_idl/matter_idl/generators/cpp/tlvmeta/TLVMetaData_cpp.jinja", "${chip_root}/scripts/py_matter_idl/matter_idl/generators/cpp/tlvmeta/TLVMetaData_h.jinja", + "${chip_root}/scripts/py_matter_idl/matter_idl/generators/idl/MatterIdl.jinja", "${chip_root}/scripts/py_matter_idl/matter_idl/generators/java/CHIPCallbackTypes.jinja", "${chip_root}/scripts/py_matter_idl/matter_idl/generators/java/ChipClustersCpp.jinja", "${chip_root}/scripts/py_matter_idl/matter_idl/generators/java/ChipClustersRead.jinja", @@ -27,6 +28,7 @@ matter_idl_generator_sources = [ "${chip_root}/scripts/py_matter_idl/matter_idl/generators/cpp/application/__init__.py", "${chip_root}/scripts/py_matter_idl/matter_idl/generators/cpp/tlvmeta/__init__.py", "${chip_root}/scripts/py_matter_idl/matter_idl/generators/filters.py", + "${chip_root}/scripts/py_matter_idl/matter_idl/generators/idl/__init__.py", "${chip_root}/scripts/py_matter_idl/matter_idl/generators/java/__init__.py", "${chip_root}/scripts/py_matter_idl/matter_idl/generators/registry.py", "${chip_root}/scripts/py_matter_idl/matter_idl/generators/types.py", diff --git a/scripts/py_matter_idl/matter_idl/generators/idl/MatterIdl.jinja b/scripts/py_matter_idl/matter_idl/generators/idl/MatterIdl.jinja new file mode 100644 index 00000000000000..91e978a44c7b07 --- /dev/null +++ b/scripts/py_matter_idl/matter_idl/generators/idl/MatterIdl.jinja @@ -0,0 +1,150 @@ +{% macro render_field(field) -%}{# + Macro for the output of a single field entry such as: + + int16u identifyTime = 0; + optional int16u transitionTime = 3; + optional nullable int16u transitionTime = 2; + optional ExtensionFieldSet extensionFieldSets[] = 5; +#} + +{%- if field.qualities %}{{field.qualities | idltxt}} {% endif -%} +{{field.data_type.name}} +{%- if field.data_type.max_length -%} <{{field.data_type.max_length}}> {%- endif -%} +{##} {{field.name}} +{%- if field.is_list %}[]{% endif -%} +{##} = {{field.code}}; +{%- endmacro -%} + +{% macro render_struct(s) -%}{# + Macro for the output of a complete struct +#} + {%- if s.tag %}{{s.tag | idltxt}} {% endif -%} + {% if s.qualities %}{{s.qualities | idltxt}} {% endif -%} + struct {{s.name}} {##} + {%- if s.code is not none %}= {{s.code}} {% endif -%} + { + {% for field in s.fields %} + {{render_field(field)}} + {% endfor %} + } +{%- endmacro -%} + + +// This IDL was auto-generated from a parsed data structure + +{% for cluster in idl.clusters %} +{% if cluster.description %}/** {{cluster.description}} */ +{% endif %} +{{cluster.api_maturity | idltxt}}{{cluster.side | idltxt}} cluster {{cluster.name}} = {{cluster.code}} { + {%- for enum in cluster.enums %} + + enum {{enum.name}} : {{ enum.base_type}} { + {% for entry in enum.entries %} + {{entry.name}} = {{entry.code}}; + {% endfor %} + } + {% endfor %} + + {%- for bitmap in cluster.bitmaps %} + + bitmap {{bitmap.name}} : {{ bitmap.base_type}} { + {% for entry in bitmap.entries %} + {{entry.name}} = 0x{{"%X" | format(entry.code)}}; + {% endfor %} + } + {% endfor %} + + {%- for s in cluster.structs | rejectattr("tag") %} + {% if loop.first %} + + {% endif %} + {{render_struct(s)}} + {% if not loop.last %} + + {% endif %} + {% endfor %} + + {%- for e in cluster.events %} + {% if loop.first %} + + {% endif %} + {##} {##}{% if e.qualities %}{{e.qualities | idltxt}} {% endif -%} + {{e.priority | idltxt}} event {{e | event_access}}{{e.name}} = {{e.code}} { + {% for field in e.fields %} + {{render_field(field)}} + {% endfor %} + } + {% if not loop.last %} + + {% endif %} + {% endfor %} + + {%- for a in cluster.attributes %} + {% if loop.first %} + + {% endif %} + {{a.qualities | idltxt}}attribute {{a | attribute_access}}{{render_field(a.definition)}} + {% endfor %} + + {%- for s in cluster.structs | selectattr("tag") %} + + {{render_struct(s)}} + {% endfor %} + + {%- for c in cluster.commands %} + {% if loop.first %} + + {% endif %} + {% if c.description %} + /** {{c.description}} */ + {% endif %} + {{c.qualities | idltxt}}command {{c | command_access}}{{c.name}}( + {%- if c.input_param %}{{c.input_param}}{% endif -%} + ): {{c.output_param}} = {{c.code}}; + {% endfor %} +} + +{% endfor %} + +{%- if idl.endpoints %} +{%- for endpoint in idl.endpoints %} +endpoint {{endpoint.number}} { + {% for t in endpoint.device_types %} + device type {{t.name}} = {{t.code}}, version {{t.version}}; + {% endfor%} + + {%-for b in endpoint.client_bindings %} + {% if loop.first %} + + {% endif %} + binding cluster {{b}}; + {% endfor %} + + {%-for c in endpoint.server_clusters %} + + server cluster {{c.name}} { + {% for e in c.events_emitted %} + emits event {{e}}; + {% if loop.last %} + + {% endif %} + {% endfor %} + {% for a in c.attributes %} + {{"%-8s" | format(a.storage|idltxt) }} attribute {{a.name}} + {%- if a.default is not none %} default = {{a.default|render_default}} {%- endif %}; + {% endfor %} + {% for cmd in c.commands %} + {% if loop.first %} + + {% endif %} + handle command {{cmd.name}}; + {% endfor %} + } + {% endfor %} + +} +{% if not loop.last %} + +{% endif %} +{% endfor %} +{% endif %} diff --git a/scripts/py_matter_idl/matter_idl/generators/idl/README.md b/scripts/py_matter_idl/matter_idl/generators/idl/README.md new file mode 100644 index 00000000000000..81e4b92c05e535 --- /dev/null +++ b/scripts/py_matter_idl/matter_idl/generators/idl/README.md @@ -0,0 +1,32 @@ +## Generator description + +Generates a structured `Idl` data type into a human-readable text format +(`.matter` file). + +It is useful for tools that ingest non-idl data but convert into idl data (e.g. +`zapxml` or CSA data model XML data.) + +### Usage + +A no-op usage can be: + +``` +./scripts/codegen.py -g idl --output-dir out/idlgen examples/all-clusters-app/all-clusters-common/all-clusters-app.matter +``` + +which would re-generate the entire `all-clusters-app.matter` into +`out/idlgen/idl.matter` + +This generation is useful for testing/validating that both parsing and +generation works. Actual usage of this generator would be inside XML tools. + +### Within XML parsing + +A XML parser will use this code generator to output a human readable view of the +parsed data: + +``` +./scripts/py_matter_idl/matter_idl/xml_parser.py \ + ./src/app/zap-templates/zcl/data-model/chip/onoff-cluster.xml \ + ./src/app/zap-templates/zcl/data-model/chip/global-attributes.xm +``` diff --git a/scripts/py_matter_idl/matter_idl/generators/idl/__init__.py b/scripts/py_matter_idl/matter_idl/generators/idl/__init__.py new file mode 100644 index 00000000000000..f53e35a7aba8e0 --- /dev/null +++ b/scripts/py_matter_idl/matter_idl/generators/idl/__init__.py @@ -0,0 +1,200 @@ +# Copyright (c) 2023 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import os +from typing import Union + +from matter_idl.generators import CodeGenerator, GeneratorStorage +from matter_idl.matter_idl_types import (AccessPrivilege, ApiMaturity, Attribute, AttributeQuality, AttributeStorage, ClusterSide, + Command, CommandQuality, Event, EventPriority, EventQuality, FieldQuality, Idl, + StructQuality, StructTag) + + +def human_text_string(value: Union[ClusterSide, StructTag, StructQuality, EventPriority, EventQuality, AccessPrivilege, AttributeQuality, CommandQuality, ApiMaturity, AttributeStorage]) -> str: + if type(value) is ClusterSide: + if value == ClusterSide.CLIENT: + return "client" + if value == ClusterSide.SERVER: + return "server" + elif type(value) is StructTag: + if value == StructTag.REQUEST: + return "request" + if value == StructTag.RESPONSE: + return "response" + elif type(value) is FieldQuality: + result = "" + if FieldQuality.OPTIONAL in value: + result += "optional " + if FieldQuality.NULLABLE in value: + result += "nullable " + if FieldQuality.FABRIC_SENSITIVE in value: + result += "fabric_sensitive " + return result.strip() + elif type(value) is StructQuality: + result = "" + if value == StructQuality.FABRIC_SCOPED: + result += "fabric_scoped " + return result.strip() + elif type(value) is EventPriority: + if value == EventPriority.DEBUG: + return "debug" + if value == EventPriority.INFO: + return "info" + if value == EventPriority.CRITICAL: + return "critical" + elif type(value) is EventQuality: + result = "" + if EventQuality.FABRIC_SENSITIVE in value: + result += "fabric_sensitive " + return result.strip() + elif type(value) is AccessPrivilege: + if value == AccessPrivilege.VIEW: + return "view" + if value == AccessPrivilege.OPERATE: + return "operate" + if value == AccessPrivilege.MANAGE: + return "manage" + if value == AccessPrivilege.ADMINISTER: + return "administer" + elif type(value) is AttributeQuality: + result = "" + if AttributeQuality.TIMED_WRITE in value: + result += "timedwrite " + if AttributeQuality.WRITABLE not in value: + result += "readonly " + if AttributeQuality.NOSUBSCRIBE in value: + result += "nosubscribe " + return result + elif type(value) is CommandQuality: + result = "" + if CommandQuality.TIMED_INVOKE in value: + result += "timed " + if CommandQuality.FABRIC_SCOPED in value: + result += "fabric " + return result + elif type(value) is ApiMaturity: + if value == ApiMaturity.STABLE: + return "" + if value == ApiMaturity.PROVISIONAL: + return "provisional " + if value == ApiMaturity.INTERNAL: + return "internal " + if value == ApiMaturity.DEPRECATED: + return "deprecated " + elif type(value) is AttributeStorage: + if value == AttributeStorage.RAM: + return "ram" + if value == AttributeStorage.PERSIST: + return "persist" + if value == AttributeStorage.CALLBACK: + return "callback" + + # wrong value in general + return "Unknown/unsupported: %r" % value + + +def event_access_string(e: Event) -> str: + """Generates the access string required for an event. If string is non-empty it will + include a trailing space + """ + result = "" + if e.readacl != AccessPrivilege.VIEW: + result += "read: " + human_text_string(e.readacl) + + if not result: + return "" + return f"access({result}) " + + +def command_access_string(c: Command) -> str: + """Generates the access string required for a command. If string is non-empty it will + include a trailing space + """ + result = "" + if c.invokeacl != AccessPrivilege.OPERATE: + result += "invoke: " + human_text_string(c.invokeacl) + + if not result: + return "" + return f"access({result}) " + + +def attribute_access_string(a: Attribute) -> str: + """Generates the access string required for a struct. If string is non-empty it will + include a trailing space + """ + result = [] + + if a.readacl != AccessPrivilege.VIEW: + result.append("read: " + human_text_string(a.readacl)) + + if a.writeacl != AccessPrivilege.OPERATE: + result.append("write: " + human_text_string(a.writeacl)) + + if not result: + return "" + + return f"access({', '.join(result)}) " + + +def render_default(value: Union[str, int, bool]) -> str: + """ + Renders a idl-style default. + + Generally quotes strings and handles bools + """ + if type(value) is str: + # TODO: technically this should support escaping for quotes + # however currently we never needed this. Escaping can be + # added once we use this info + return f'"{value}"' + elif type(value) is bool: + if value: + return "true" + else: + return "false" + return str(value) + + +class IdlGenerator(CodeGenerator): + """ + Generation .matter idl files for a given IDL + """ + + def __init__(self, storage: GeneratorStorage, idl: Idl, **kargs): + super().__init__(storage, idl, fs_loader_searchpath=os.path.dirname(__file__)) + + self.jinja_env.filters['idltxt'] = human_text_string + self.jinja_env.filters['event_access'] = event_access_string + self.jinja_env.filters['command_access'] = command_access_string + self.jinja_env.filters['attribute_access'] = attribute_access_string + self.jinja_env.filters['render_default'] = render_default + + # Easier whitespace management + self.jinja_env.trim_blocks = True + self.jinja_env.lstrip_blocks = True + + def internal_render_all(self): + """ + Renders the output. + """ + + # Header containing a macro to initialize all cluster plugins + self.internal_render_one_output( + template_path="MatterIdl.jinja", + output_file_name="idl.matter", + vars={ + 'idl': self.idl + } + ) diff --git a/scripts/py_matter_idl/matter_idl/generators/registry.py b/scripts/py_matter_idl/matter_idl/generators/registry.py index e3c8e1ed32397e..b02b9bbcf12f0b 100644 --- a/scripts/py_matter_idl/matter_idl/generators/registry.py +++ b/scripts/py_matter_idl/matter_idl/generators/registry.py @@ -17,6 +17,7 @@ from matter_idl.generators.cpp.application import CppApplicationGenerator from matter_idl.generators.cpp.tlvmeta import TLVMetaDataGenerator +from matter_idl.generators.idl import IdlGenerator from matter_idl.generators.java import JavaClassGenerator, JavaJNIGenerator @@ -30,6 +31,7 @@ class CodeGenerator(enum.Enum): JAVA_CLASS = enum.auto() CPP_APPLICATION = enum.auto() CPP_TLVMETA = enum.auto() + IDL = enum.auto() CUSTOM = enum.auto() def Create(self, *args, **kargs): @@ -41,6 +43,8 @@ def Create(self, *args, **kargs): return CppApplicationGenerator(*args, **kargs) elif self == CodeGenerator.CPP_TLVMETA: return TLVMetaDataGenerator(*args, **kargs) + elif self == CodeGenerator.IDL: + return IdlGenerator(*args, **kargs) elif self == CodeGenerator.CUSTOM: # Use a package naming convention to find the custom generator: # ./matter_idl_plugin/__init__.py defines a subclass of CodeGenerator named CustomGenerator. @@ -70,5 +74,6 @@ def FromString(name): 'java-class': CodeGenerator.JAVA_CLASS, 'cpp-app': CodeGenerator.CPP_APPLICATION, 'cpp-tlvmeta': CodeGenerator.CPP_TLVMETA, + 'idl': CodeGenerator.IDL, 'custom': CodeGenerator.CUSTOM, } diff --git a/scripts/py_matter_idl/matter_idl/matter_idl_parser.py b/scripts/py_matter_idl/matter_idl/matter_idl_parser.py index 0d1bfb8d869e49..711e2535887b5e 100755 --- a/scripts/py_matter_idl/matter_idl/matter_idl_parser.py +++ b/scripts/py_matter_idl/matter_idl/matter_idl_parser.py @@ -46,6 +46,14 @@ def appply_to_idl(self, idl: Idl, content: str): while content[actual_pos] in ' \t\n\r': actual_pos += 1 + # Allow to skip api maturity flags + for maturity in ["provisional", "internal", "stable", "deprecated"]: + if content[actual_pos:].startswith(maturity): + actual_pos += len(maturity) + + while content[actual_pos] in ' \t\n\r': + actual_pos += 1 + # A doc comment will apply to any supported element assuming it immediately # preceeds id (skipping whitespace) for item in self.supported_types(idl): diff --git a/scripts/py_matter_idl/matter_idl/test_idl_generator.py b/scripts/py_matter_idl/matter_idl/test_idl_generator.py new file mode 100755 index 00000000000000..ea1347fb0e7d4c --- /dev/null +++ b/scripts/py_matter_idl/matter_idl/test_idl_generator.py @@ -0,0 +1,115 @@ +#!/usr/bin/env python3 + +# Copyright (c) 2022 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import os +import sys +import unittest +from typing import Optional + +try: + from matter_idl.matter_idl_parser import CreateParser +except ImportError: + + sys.path.append(os.path.abspath( + os.path.join(os.path.dirname(__file__), '..'))) + from matter_idl.matter_idl_parser import CreateParser + +from matter_idl.generators import GeneratorStorage +from matter_idl.generators.idl import IdlGenerator +from matter_idl.matter_idl_types import Idl + + +class TestCaseStorage(GeneratorStorage): + def __init__(self): + super().__init__() + self.content: Optional[str] = None + + def get_existing_data(self, relative_path: str): + # Force re-generation each time + return None + + def write_new_data(self, relative_path: str, content: str): + if self.content: + raise Exception("Unexpected extra data: single file generation expected") + self.content = content + + +def ReadMatterIdl(repo_path: str) -> Idl: + path = os.path.join(os.path.dirname(__file__), "../../..", repo_path) + with open(path, "rt") as stream: + return stream.read() + + +def ParseMatterIdl(repo_path: str, skip_meta: bool) -> Idl: + return CreateParser(skip_meta=skip_meta).parse(ReadMatterIdl(repo_path)) + + +def RenderAsIdlTxt(idl: Idl) -> str: + storage = TestCaseStorage() + IdlGenerator(storage=storage, idl=idl).render(dry_run=False) + return storage.content + + +def SkipLeadingComments(txt: str) -> str: + """Skips leading lines starting with // in a file. """ + lines = txt.split("\n") + idx = 0 + while lines[idx].startswith("//") or not lines[idx]: + idx = idx + 1 + return "\n".join(lines[idx:]) + + +class TestIdlRendering(unittest.TestCase): + def test_client_clusters(self): + # IDL renderer was updated to have IDENTICAL output for client side + # cluster rendering, so this diff will be verbatim + # + # Comparison made text-mode so that meta-data is read and doc-comments are + # available + + path = "src/controller/data_model/controller-clusters.matter" + + # Files MUST be identical except the header comments which are different + original = SkipLeadingComments(ReadMatterIdl(path)) + generated = SkipLeadingComments(RenderAsIdlTxt(ParseMatterIdl(path, skip_meta=False))) + + self.assertEqual(original, generated) + + def test_app_rendering(self): + # When endpoints are involved, default value formatting is lost + # (e.g. "0x0000" becomes "0") and ordering of emitted events is not preserved + # because the events are a + + # as such, this test validates that parsing + generating + re-parsing results + # in the same data being parsed + test_paths = [ + "examples/lock-app/lock-common/lock-app.matter", + "examples/lighting-app/lighting-common/lighting-app.matter", + "examples/all-clusters-app/all-clusters-common/all-clusters-app.matter", + "examples/thermostat/thermostat-common/thermostat.matter", + ] + + for path in test_paths: + idl = ParseMatterIdl(path, skip_meta=True) + txt = RenderAsIdlTxt(idl) + idl2 = CreateParser(skip_meta=True).parse(txt) + + # checks that data types and content is the same + self.assertEqual(idl, idl2) + + +if __name__ == '__main__': + unittest.main() diff --git a/scripts/py_matter_idl/matter_idl/xml_parser.py b/scripts/py_matter_idl/matter_idl/xml_parser.py index 5a07490e9c3b68..d20bdb9dda67ec 100755 --- a/scripts/py_matter_idl/matter_idl/xml_parser.py +++ b/scripts/py_matter_idl/matter_idl/xml_parser.py @@ -16,6 +16,7 @@ import logging import os +from typing import Optional try: from matter_idl.zapxml import ParseSource, ParseXmls @@ -28,11 +29,23 @@ if __name__ == '__main__': - # This Parser is generally not intended to be run as a stand-alone binary. - # The ability to run is for debug and to print out the parsed AST. - import pprint - import click + from matter_idl.generators import GeneratorStorage + from matter_idl.generators.idl import IdlGenerator + + class InMemoryStorage(GeneratorStorage): + def __init__(self): + super().__init__() + self.content: Optional[str] = None + + def get_existing_data(self, relative_path: str): + # Force re-generation each time + return None + + def write_new_data(self, relative_path: str, content: str): + if self.content: + raise Exception("Unexpected extra data: single file generation expected") + self.content = content # Supported log levels, mapping string values required for argument # parsing into logging constants @@ -70,7 +83,8 @@ def main(log_level, no_print, filenames): logging.info("Parse completed") if not no_print: - print("Data:") - pprint.pp(data) + storage = InMemoryStorage() + IdlGenerator(storage=storage, idl=data).render(dry_run=False) + print(storage.content) main(auto_envvar_prefix='CHIP') diff --git a/scripts/py_matter_idl/setup.cfg b/scripts/py_matter_idl/setup.cfg index 57f93c3dd9aa82..714b42a46e614e 100644 --- a/scripts/py_matter_idl/setup.cfg +++ b/scripts/py_matter_idl/setup.cfg @@ -34,6 +34,7 @@ matter_idl = generators/cpp/application/PluginApplicationCallbacksHeader.jinja generators/cpp/tlvmeta/TLVMetaData_cpp.jinja generators/cpp/tlvmeta/TLVMetaData_h.jinja + generators/idl/MatterIdl.jinja generators/java/CHIPCallbackTypes.jinja generators/java/ChipClustersCpp.jinja generators/java/ChipClustersRead.jinja diff --git a/scripts/spec_xml/generate_spec_xml.py b/scripts/spec_xml/generate_spec_xml.py new file mode 100755 index 00000000000000..115dfd8b62fcb3 --- /dev/null +++ b/scripts/spec_xml/generate_spec_xml.py @@ -0,0 +1,99 @@ +#!/usr/bin/env python3 + +# Copyright (c) 2023 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import glob +import os +import subprocess + +import click + +DEFAULT_CHIP_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..')) +DEFAULT_OUTPUT_DIR = os.path.abspath(os.path.join(DEFAULT_CHIP_ROOT, 'data_model')) + + +@click.command() +@click.option( + '--scraper', + required=True, + type=str, + help='Path to the location of the scraper tool') +@click.option( + '--spec-root', + required=True, + type=str, + help='Path to the spec root') +@click.option( + '--output-dir', + default=DEFAULT_OUTPUT_DIR, + help='Path to output xml files') +@click.option( + '--dry-run', + default=False, + is_flag=True, + help='Flag for dry run') +def main(scraper, spec_root, output_dir, dry_run): + # TODO: Add scrapers for device types + + src_dir = os.path.abspath(os.path.join(spec_root, 'src')) + sdm_clusters_dir = os.path.abspath(os.path.join(src_dir, 'service_device_management')) + app_clusters_dir = os.path.abspath(os.path.join(src_dir, 'app_clusters')) + dm_clusters_dir = os.path.abspath(os.path.join(src_dir, 'data_model')) + media_clusters_dir = os.path.abspath(os.path.join(app_clusters_dir, 'media')) + clusters_output_dir = os.path.abspath(os.path.join(output_dir, 'clusters')) + dm_clusters_list = ['ACL-Cluster.adoc', 'Binding-Cluster.adoc', 'bridge-clusters.adoc', + 'Descriptor-Cluster.adoc', 'Group-Key-Management-Cluster.adoc', 'Label-Cluster.adoc'] + sdm_exclude_list = ['AdminAssistedCommissioningFlows.adoc', 'BulkDataExchange.adoc', 'CommissioningFlows.adoc', + 'DeviceCommissioningFlows.adoc', 'DistributedComplianceLedger.adoc', 'OTAFileFormat.adoc'] + app_exclude_list = ['appliances.adoc', 'closures.adoc', 'general.adoc', + 'hvac.adoc', 'lighting.adoc', 'meas_and_sense.adoc', 'robots.adoc'] + media_exclude_list = ['media.adoc', 'VideoPlayerArchitecture.adoc'] + + if not os.path.exists(clusters_output_dir): + os.makedirs(clusters_output_dir) + + def scrape_cluster(filename: str) -> None: + xml = os.path.basename(filename).replace('.adoc', '.xml') + xml_path = os.path.abspath(os.path.join(clusters_output_dir, xml)) + cmd = [scraper, 'cluster', filename, xml_path, '-nd'] + if dry_run: + print(cmd) + else: + subprocess.run(cmd) + + def scrape_all_clusters(dir: str, exclude_list: list[str] = []) -> None: + for filename in glob.glob(f'{dir}/*.adoc'): + if os.path.basename(filename) in exclude_list: + continue + scrape_cluster(filename) + + scrape_all_clusters(sdm_clusters_dir, sdm_exclude_list) + scrape_all_clusters(app_clusters_dir, app_exclude_list) + scrape_all_clusters(media_clusters_dir, media_exclude_list) + for f in dm_clusters_list: + filename = f'{dm_clusters_dir}/{f}' + scrape_cluster(filename) + + # Put the current spec sha into the cluster dir + sha_file = 'spec_sha' + os.chdir(spec_root) + out = subprocess.run(['git', 'rev-parse', 'HEAD'], capture_output=True) + sha = out.stdout + with open(f'{output_dir}/{sha_file}', 'w') as output: + output.write(sha.decode('utf-8')) + + +if __name__ == '__main__': + main() diff --git a/scripts/tools/zap/tests/inputs/all-clusters-app.zap b/scripts/tools/zap/tests/inputs/all-clusters-app.zap index fe430bda1dbece..5e7e6d443fde8b 100644 --- a/scripts/tools/zap/tests/inputs/all-clusters-app.zap +++ b/scripts/tools/zap/tests/inputs/all-clusters-app.zap @@ -6175,7 +6175,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "16", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -6191,7 +6191,7 @@ "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "8", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -6271,7 +6271,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "7", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -15419,7 +15419,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "16", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -15435,7 +15435,7 @@ "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "8", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -15515,7 +15515,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "7", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -16665,4 +16665,4 @@ "networkId": 0 } ] -} \ No newline at end of file +} diff --git a/scripts/tools/zap/tests/outputs/all-clusters-app/app-templates/endpoint_config.h b/scripts/tools/zap/tests/outputs/all-clusters-app/app-templates/endpoint_config.h index 282deca1883650..63d25b1d313ed5 100644 --- a/scripts/tools/zap/tests/outputs/all-clusters-app/app-templates/endpoint_config.h +++ b/scripts/tools/zap/tests/outputs/all-clusters-app/app-templates/endpoint_config.h @@ -759,9 +759,9 @@ { ZAP_SIMPLE_DEFAULT(0x0000), 0x00000002, 2, ZAP_TYPE(GROUP_ID), 0 }, /* CurrentGroup */ \ { ZAP_SIMPLE_DEFAULT(0x00), 0x00000003, 1, ZAP_TYPE(BOOLEAN), 0 }, /* SceneValid */ \ { ZAP_EMPTY_DEFAULT(), 0x00000004, 1, ZAP_TYPE(BITMAP8), 0 }, /* NameSupport */ \ - { ZAP_EMPTY_DEFAULT(), 0x00000006, 2, ZAP_TYPE(INT16U), 0 }, /* SceneTableSize */ \ + { ZAP_SIMPLE_DEFAULT(16), 0x00000006, 2, ZAP_TYPE(INT16U), 0 }, /* SceneTableSize */ \ { ZAP_EMPTY_DEFAULT(), 0x00000007, 1, ZAP_TYPE(INT8U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* RemainingCapacity */ \ - { ZAP_SIMPLE_DEFAULT(0), 0x0000FFFC, 4, ZAP_TYPE(BITMAP32), 0 }, /* FeatureMap */ \ + { ZAP_SIMPLE_DEFAULT(7), 0x0000FFFC, 4, ZAP_TYPE(BITMAP32), 0 }, /* FeatureMap */ \ { ZAP_SIMPLE_DEFAULT(5), 0x0000FFFD, 2, ZAP_TYPE(INT16U), 0 }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: On/Off (server) */ \ @@ -1425,9 +1425,9 @@ { ZAP_SIMPLE_DEFAULT(0x0000), 0x00000002, 2, ZAP_TYPE(GROUP_ID), 0 }, /* CurrentGroup */ \ { ZAP_SIMPLE_DEFAULT(0x00), 0x00000003, 1, ZAP_TYPE(BOOLEAN), 0 }, /* SceneValid */ \ { ZAP_EMPTY_DEFAULT(), 0x00000004, 1, ZAP_TYPE(BITMAP8), 0 }, /* NameSupport */ \ - { ZAP_EMPTY_DEFAULT(), 0x00000006, 2, ZAP_TYPE(INT16U), 0 }, /* SceneTableSize */ \ + { ZAP_SIMPLE_DEFAULT(16), 0x00000006, 2, ZAP_TYPE(INT16U), 0 }, /* SceneTableSize */ \ { ZAP_EMPTY_DEFAULT(), 0x00000007, 1, ZAP_TYPE(INT8U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* RemainingCapacity */ \ - { ZAP_SIMPLE_DEFAULT(0), 0x0000FFFC, 4, ZAP_TYPE(BITMAP32), 0 }, /* FeatureMap */ \ + { ZAP_SIMPLE_DEFAULT(7), 0x0000FFFC, 4, ZAP_TYPE(BITMAP32), 0 }, /* FeatureMap */ \ { ZAP_SIMPLE_DEFAULT(5), 0x0000FFFD, 2, ZAP_TYPE(INT16U), 0 }, /* ClusterRevision */ \ \ /* Endpoint: 2, Cluster: On/Off (server) */ \ diff --git a/scripts/tools/zap/tests/outputs/all-clusters-app/app-templates/gen_config.h b/scripts/tools/zap/tests/outputs/all-clusters-app/app-templates/gen_config.h index bf4dbc94ede3f7..fc0a4d3df39f84 100644 --- a/scripts/tools/zap/tests/outputs/all-clusters-app/app-templates/gen_config.h +++ b/scripts/tools/zap/tests/outputs/all-clusters-app/app-templates/gen_config.h @@ -102,17 +102,16 @@ #define EMBER_AF_PLUGIN_SCENES_SERVER #define EMBER_AF_PLUGIN_SCENES // User options for server plugin Scenes -// Cluster spec 1.4.8.2 -#ifdef CHIP_CONFIG_MAX_SCENES_PER_FABRIC -#define MATTER_SCENES_TABLE_SIZE CHIP_CONFIG_MAX_SCENES_PER_FABRIC -#else +// Cluster spec 1.4.8.7 #define MATTER_SCENES_TABLE_SIZE 16 -#endif - // Scenes FeatureMap Attribute Toggle Scenes Name feature // App cluster specs 1.4.4 #define MATTER_CLUSTER_SCENE_NAME_SUPPORT_MASK 0x0001 -#define MATTER_CLUSTER_SCENE_NAME_SUPPORT (0x0000 & MATTER_CLUSTER_SCENE_NAME_SUPPORT_MASK) +#define MATTER_CLUSTER_SCENE_NAME_SUPPORT (0x0007 & MATTER_CLUSTER_SCENE_NAME_SUPPORT_MASK) +// Scenes FeatureMap Table Size feature used for the MATTER_SCENES_TABLE_SIZE define +// App cluster specs 1.4.4.2 +#define MATTER_CLUSTER_TABLE_SIZE_SUPPORT_MASK 0x0001 +#define MATTER_CLUSTER_TABLE_SIZE_SUPPORT (0x0007 & MATTER_CLUSTER_TABLE_SIZE_SUPPORT_MASK) // Use this macro to check if the server side of the On/Off cluster is included #define ZCL_USING_ON_OFF_CLUSTER_SERVER diff --git a/src/app/clusters/door-lock-server/door-lock-server.cpp b/src/app/clusters/door-lock-server/door-lock-server.cpp index 01edd3f1b60253..7552841edfb5e6 100644 --- a/src/app/clusters/door-lock-server/door-lock-server.cpp +++ b/src/app/clusters/door-lock-server/door-lock-server.cpp @@ -202,6 +202,18 @@ bool DoorLockServer::SetPrivacyModeButton(chip::EndpointId endpointId, bool isEn return SetAttribute(endpointId, Attributes::EnablePrivacyModeButton::Id, Attributes::EnablePrivacyModeButton::Set, isEnabled); } +void DoorLockServer::HandleLocalLockOperationError(chip::EndpointId endpointId, LockOperationTypeEnum opType, + OperationSourceEnum opSource, Nullable userId) +{ + SendLockOperationEvent(endpointId, opType, opSource, OperationErrorEnum::kInvalidCredential, userId, + Nullable(), Nullable(), Nullable>(), + false); + + HandleWrongCodeEntry(endpointId); + + ChipLogProgress(Zcl, "Handling a local Lock Operation Error: [endpoint=%d, user=%d]", endpointId, userId.Value()); +} + bool DoorLockServer::HandleWrongCodeEntry(chip::EndpointId endpointId) { auto endpointContext = getContext(endpointId); diff --git a/src/app/clusters/door-lock-server/door-lock-server.h b/src/app/clusters/door-lock-server/door-lock-server.h index 70988c17786964..a8007f211641a4 100644 --- a/src/app/clusters/door-lock-server/door-lock-server.h +++ b/src/app/clusters/door-lock-server/door-lock-server.h @@ -228,6 +228,20 @@ class DoorLockServer */ void ResetWrongCodeEntryAttempts(chip::EndpointId endpointId); + /** + * @brief Handles a local lock operation error. This method allows handling a wrong attempt of providing + * user credential entry that has been provided locally by the user. The method will emit the LockOperationEvent + * to inform the controller that a local wrong attempt occurred, and also call HandleWrongEntry method to + * increment wrong entry counter. + * + * @param endpointId + * @param opType Operation source to be registered in the LockOperationEvent. + * @param opSource source of the operation to be registered in the LockOperationEvent. + * @param userId Optional user id to be registered in the LockOperationEvent + */ + void HandleLocalLockOperationError(chip::EndpointId endpointId, LockOperationTypeEnum opType, OperationSourceEnum opSource, + Nullable userId); + private: chip::FabricIndex getFabricIndex(const chip::app::CommandHandler * commandObj); chip::NodeId getNodeId(const chip::app::CommandHandler * commandObj); diff --git a/src/app/clusters/scenes-server/SceneTableImpl.cpp b/src/app/clusters/scenes-server/SceneTableImpl.cpp index ea894c9d1d108c..f1900416c4499b 100644 --- a/src/app/clusters/scenes-server/SceneTableImpl.cpp +++ b/src/app/clusters/scenes-server/SceneTableImpl.cpp @@ -928,8 +928,9 @@ void DefaultSceneTableImpl::SetEndpoint(EndpointId endpoint) void DefaultSceneTableImpl::SetTableSize(uint16_t endpointSceneTableSize) { // Verify the endpoint passed size respects the limits of the device configuration + VerifyOrDie(kMaxScenesPerEndpoint > 0); mMaxScenesPerEndpoint = (kMaxScenesPerEndpoint < endpointSceneTableSize) ? kMaxScenesPerEndpoint : endpointSceneTableSize; - mMaxScenesPerFabric = static_cast(endpointSceneTableSize / 2); + mMaxScenesPerFabric = static_cast((mMaxScenesPerEndpoint - 1) / 2); } DefaultSceneTableImpl::SceneEntryIterator * DefaultSceneTableImpl::IterateSceneEntries(FabricIndex fabric) diff --git a/src/app/clusters/scenes-server/SceneTableImpl.h b/src/app/clusters/scenes-server/SceneTableImpl.h index 3be1dc43e48c26..60a378f43c3ce8 100644 --- a/src/app/clusters/scenes-server/SceneTableImpl.h +++ b/src/app/clusters/scenes-server/SceneTableImpl.h @@ -23,12 +23,13 @@ #include #include #include +#include namespace chip { namespace scenes { -static constexpr uint16_t kMaxScenesPerFabric = CHIP_CONFIG_SCENES_MAX_PER_FABRIC; -static constexpr uint16_t kMaxScenesPerEndpoint = CHIP_CONFIG_MAX_SCENES_PER_ENDPOINT; +static constexpr uint16_t kMaxScenesPerFabric = (MATTER_SCENES_TABLE_SIZE - 1) / 2; +static constexpr uint16_t kMaxScenesPerEndpoint = MATTER_SCENES_TABLE_SIZE; using clusterId = chip::ClusterId; diff --git a/src/app/clusters/scenes-server/scenes-server.cpp b/src/app/clusters/scenes-server/scenes-server.cpp index 39bdba86bd90d3..2386e2155d6722 100644 --- a/src/app/clusters/scenes-server/scenes-server.cpp +++ b/src/app/clusters/scenes-server/scenes-server.cpp @@ -136,8 +136,8 @@ CHIP_ERROR ScenesServer::Init() ChipLogDetail(Zcl, "ERR: getting the scenes FeatureMap on Endpoint %hu Status: %x", endpoint, status); } - // Explicit AttributeValuePairs is mandatory for matter so we force it here - featureMap |= to_underlying(Feature::kExplicit); + // Explicit AttributeValuePairs and TableSize features are mandatory for matter so we force-set them here + featureMap |= (to_underlying(Feature::kExplicit) | to_underlying(Feature::kTableSize)); status = Attributes::FeatureMap::Set(endpoint, featureMap); if (EMBER_ZCL_STATUS_SUCCESS != status) { diff --git a/src/app/common/templates/config-data.yaml b/src/app/common/templates/config-data.yaml index b404d1487020c2..4f8eb12c39e689 100644 --- a/src/app/common/templates/config-data.yaml +++ b/src/app/common/templates/config-data.yaml @@ -22,6 +22,8 @@ EnumsNotUsedAsTypeInXML: - "RvcRunMode::StatusCode" - "RvcCleanMode::ModeTag" - "RvcCleanMode::StatusCode" + - "RvcOperationalState::OperationalStateEnum" + - "RvcOperationalState::ErrorStateEnum" CommandHandlerInterfaceOnlyClusters: # List of clusters that are implemented entirely with diff --git a/src/app/tests/TestSceneTable.cpp b/src/app/tests/TestSceneTable.cpp index cba0ebe4e8d5f5..08ada73b3729a1 100644 --- a/src/app/tests/TestSceneTable.cpp +++ b/src/app/tests/TestSceneTable.cpp @@ -37,6 +37,10 @@ using TransitionTimeMs = scenes::TransitionTimeMs; namespace TestScenes { +// TestTableSize +constexpr uint8_t defaultTestTableSize = 16; +constexpr uint8_t defaultTestFabricCapacity = (defaultTestTableSize - 1) / 2; + // Test Cluster ID constexpr chip::ClusterId kOnOffClusterId = 0x0006; constexpr chip::ClusterId kLevelControlClusterId = 0x0008; @@ -91,6 +95,9 @@ static const SceneStorageId sceneId6(kScene6, kGroup2); static const SceneStorageId sceneId7(kScene7, kGroup3); static const SceneStorageId sceneId8(kScene8, kGroup4); static const SceneStorageId sceneId9(kScene1, kGroup4); +static const SceneStorageId sceneId10(kScene4, kGroup4); +static const SceneStorageId sceneId11(kScene5, kGroup4); +static const SceneStorageId sceneId12(kScene6, kGroup4); CharSpan empty; @@ -107,6 +114,9 @@ static const SceneData sceneData9(CharSpan("Scene #9"), 3000); static const SceneData sceneData10(CharSpan("Scene #10"), 1000); static const SceneData sceneData11(CharSpan("Scene #11"), 50); static const SceneData sceneData12(CharSpan("Scene #12"), 100); +static const SceneData sceneData13(CharSpan("Scene #13"), 100); +static const SceneData sceneData14(CharSpan("Scene #14"), 100); +static const SceneData sceneData15(CharSpan("Scene #15"), 100); // Scenes SceneTableEntry scene1(sceneId1, sceneData1); @@ -120,7 +130,10 @@ SceneTableEntry scene8(sceneId8, sceneData8); SceneTableEntry scene9(sceneId9, sceneData9); SceneTableEntry scene10(sceneId1, sceneData10); SceneTableEntry scene11(sceneId5, sceneData11); -SceneTableEntry scene12(sceneId8, sceneData12); +SceneTableEntry scene12(sceneId7, sceneData12); +SceneTableEntry scene13(sceneId10, sceneData13); +SceneTableEntry scene14(sceneId11, sceneData14); +SceneTableEntry scene15(sceneId12, sceneData15); // Clusters EFS data static app::Clusters::Scenes::Structs::ExtensionFieldSet::Type OOextensionFieldSet; @@ -390,8 +403,7 @@ class TestSceneHandler : public scenes::DefaultSceneHandlerImpl class TestSceneTableImpl : public SceneTableImpl { public: - TestSceneTableImpl(uint16_t maxScenesPerFabric = scenes::kMaxScenesPerFabric, - uint16_t maxScenesGlobal = scenes::kMaxScenesPerEndpoint) : + TestSceneTableImpl(uint16_t maxScenesPerFabric = defaultTestFabricCapacity, uint16_t maxScenesGlobal = defaultTestTableSize) : SceneTableImpl(maxScenesPerFabric, maxScenesGlobal) {} ~TestSceneTableImpl() override {} @@ -427,7 +439,7 @@ void ResetSceneTable(SceneTable * sceneTable) void TestHandlerRegistration(nlTestSuite * aSuite, void * aContext) { - SceneTable * sceneTable = scenes::GetSceneTableImpl(); + SceneTable * sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); TestSceneHandler tmpHandler[scenes::kMaxClustersPerScene]; @@ -480,7 +492,7 @@ void TestHandlerRegistration(nlTestSuite * aSuite, void * aContext) void TestHandlerFunctions(nlTestSuite * aSuite, void * aContext) { - SceneTable * sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1, scenes::kMaxScenesPerEndpoint); + SceneTable * sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); @@ -673,16 +685,13 @@ void TestHandlerFunctions(nlTestSuite * aSuite, void * aContext) void TestStoreScenes(nlTestSuite * aSuite, void * aContext) { - SceneTable * sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1); + SceneTable * sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); - SceneId sceneList[scenes::kMaxScenesPerFabric]; + SceneId sceneList[defaultTestFabricCapacity]; // Reset test ResetSceneTable(sceneTable); - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1); - NL_TEST_ASSERT(aSuite, nullptr != sceneTable); - VerifyOrReturn(nullptr != sceneTable); // Populate scene1's EFS (Endpoint1) NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SceneSaveEFS(scene1)); @@ -722,7 +731,6 @@ void TestStoreScenes(nlTestSuite * aSuite, void * aContext) NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric1, scene5)); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric1, scene6)); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric1, scene7)); - NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric1, scene8)); // Too many scenes for 1 fabric NL_TEST_ASSERT(aSuite, CHIP_ERROR_NO_MEMORY == sceneTable->SetSceneTableEntry(kFabric1, scene9)); @@ -754,8 +762,6 @@ void TestStoreScenes(nlTestSuite * aSuite, void * aContext) NL_TEST_ASSERT(aSuite, scene == scene6); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetSceneTableEntry(kFabric1, sceneId7, scene)); NL_TEST_ASSERT(aSuite, scene == scene7); - NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetSceneTableEntry(kFabric1, sceneId8, scene)); - NL_TEST_ASSERT(aSuite, scene == scene8); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SceneApplyEFS(scene)); // Test error when list too small in a full table @@ -785,10 +791,6 @@ void TestStoreScenes(nlTestSuite * aSuite, void * aContext) NL_TEST_ASSERT(aSuite, 1 == sceneListSpan.size()); NL_TEST_ASSERT(aSuite, kScene7 == sceneList[0]); - NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetAllSceneIdsInGroup(kFabric1, kGroup4, sceneListSpan)); - NL_TEST_ASSERT(aSuite, 1 == sceneListSpan.size()); - NL_TEST_ASSERT(aSuite, kScene8 == sceneList[0]); - uint8_t sceneCount = 0; sceneTable->GetEndpointSceneCount(sceneCount); sceneTable->GetFabricSceneCount(kFabric1, sceneCount); @@ -796,7 +798,7 @@ void TestStoreScenes(nlTestSuite * aSuite, void * aContext) void TestOverwriteScenes(nlTestSuite * aSuite, void * aContext) { - SceneTable * sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1, scenes::kMaxScenesPerEndpoint); + SceneTable * sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); @@ -818,13 +820,13 @@ void TestOverwriteScenes(nlTestSuite * aSuite, void * aContext) NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetSceneTableEntry(kFabric1, sceneId5, scene)); NL_TEST_ASSERT(aSuite, scene == scene11); - NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetSceneTableEntry(kFabric1, sceneId8, scene)); + NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetSceneTableEntry(kFabric1, sceneId7, scene)); NL_TEST_ASSERT(aSuite, scene == scene12); } void TestIterateScenes(nlTestSuite * aSuite, void * aContext) { - SceneTable * sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1, scenes::kMaxScenesPerEndpoint); + SceneTable * sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); @@ -835,7 +837,7 @@ void TestIterateScenes(nlTestSuite * aSuite, void * aContext) if (iterator) { - NL_TEST_ASSERT(aSuite, iterator->Count() == 8); + NL_TEST_ASSERT(aSuite, iterator->Count() == 7); NL_TEST_ASSERT(aSuite, iterator->Next(scene)); NL_TEST_ASSERT(aSuite, scene == scene10); NL_TEST_ASSERT(aSuite, iterator->Next(scene)); @@ -849,8 +851,6 @@ void TestIterateScenes(nlTestSuite * aSuite, void * aContext) NL_TEST_ASSERT(aSuite, iterator->Next(scene)); NL_TEST_ASSERT(aSuite, scene == scene6); NL_TEST_ASSERT(aSuite, iterator->Next(scene)); - NL_TEST_ASSERT(aSuite, scene == scene7); - NL_TEST_ASSERT(aSuite, iterator->Next(scene)); NL_TEST_ASSERT(aSuite, scene == scene12); NL_TEST_ASSERT(aSuite, iterator->Next(scene) == false); @@ -861,7 +861,7 @@ void TestIterateScenes(nlTestSuite * aSuite, void * aContext) void TestRemoveScenes(nlTestSuite * aSuite, void * aContext) { - SceneTable * sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1, scenes::kMaxScenesPerEndpoint); + SceneTableImpl * sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); @@ -873,7 +873,7 @@ void TestRemoveScenes(nlTestSuite * aSuite, void * aContext) // Remove middle NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->RemoveSceneTableEntry(kFabric1, scene5.mStorageId)); auto * iterator = sceneTable->IterateSceneEntries(kFabric1); - NL_TEST_ASSERT(aSuite, iterator->Count() == 7); + NL_TEST_ASSERT(aSuite, iterator->Count() == 6); NL_TEST_ASSERT(aSuite, iterator->Next(scene)); NL_TEST_ASSERT(aSuite, scene == scene10); iterator->Release(); @@ -881,7 +881,7 @@ void TestRemoveScenes(nlTestSuite * aSuite, void * aContext) // Add scene in middle, a spot should have been freed NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric1, scene9)); iterator = sceneTable->IterateSceneEntries(kFabric1); - NL_TEST_ASSERT(aSuite, iterator->Count() == 8); + NL_TEST_ASSERT(aSuite, iterator->Count() == 7); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetSceneTableEntry(kFabric1, sceneId9, scene)); NL_TEST_ASSERT(aSuite, scene == scene9); iterator->Release(); @@ -889,7 +889,7 @@ void TestRemoveScenes(nlTestSuite * aSuite, void * aContext) // Remove the recently added scene 9 NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->RemoveSceneTableEntry(kFabric1, scene9.mStorageId)); iterator = sceneTable->IterateSceneEntries(kFabric1); - NL_TEST_ASSERT(aSuite, iterator->Count() == 7); + NL_TEST_ASSERT(aSuite, iterator->Count() == 6); NL_TEST_ASSERT(aSuite, iterator->Next(scene)); NL_TEST_ASSERT(aSuite, scene == scene10); iterator->Release(); @@ -897,7 +897,7 @@ void TestRemoveScenes(nlTestSuite * aSuite, void * aContext) // Remove first NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->RemoveSceneTableEntryAtPosition(kTestEndpoint1, kFabric1, 0)); iterator = sceneTable->IterateSceneEntries(kFabric1); - NL_TEST_ASSERT(aSuite, iterator->Count() == 6); + NL_TEST_ASSERT(aSuite, iterator->Count() == 5); NL_TEST_ASSERT(aSuite, iterator->Next(scene)); NL_TEST_ASSERT(aSuite, scene == scene2); iterator->Release(); @@ -905,7 +905,7 @@ void TestRemoveScenes(nlTestSuite * aSuite, void * aContext) // Remove Next NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->RemoveSceneTableEntry(kFabric1, scene3.mStorageId)); iterator = sceneTable->IterateSceneEntries(kFabric1); - NL_TEST_ASSERT(aSuite, iterator->Count() == 5); + NL_TEST_ASSERT(aSuite, iterator->Count() == 4); NL_TEST_ASSERT(aSuite, iterator->Next(scene)); NL_TEST_ASSERT(aSuite, scene == scene2); NL_TEST_ASSERT(aSuite, iterator->Next(scene)); @@ -914,44 +914,36 @@ void TestRemoveScenes(nlTestSuite * aSuite, void * aContext) NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->RemoveSceneTableEntry(kFabric1, scene2.mStorageId)); iterator = sceneTable->IterateSceneEntries(kFabric1); - NL_TEST_ASSERT(aSuite, iterator->Count() == 4); + NL_TEST_ASSERT(aSuite, iterator->Count() == 3); NL_TEST_ASSERT(aSuite, iterator->Next(scene)); NL_TEST_ASSERT(aSuite, scene == scene4); iterator->Release(); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->RemoveSceneTableEntry(kFabric1, scene4.mStorageId)); iterator = sceneTable->IterateSceneEntries(kFabric1); - NL_TEST_ASSERT(aSuite, iterator->Count() == 3); + NL_TEST_ASSERT(aSuite, iterator->Count() == 2); NL_TEST_ASSERT(aSuite, iterator->Next(scene)); NL_TEST_ASSERT(aSuite, scene == scene6); iterator->Release(); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->RemoveSceneTableEntry(kFabric1, scene6.mStorageId)); iterator = sceneTable->IterateSceneEntries(kFabric1); - NL_TEST_ASSERT(aSuite, iterator->Count() == 2); - NL_TEST_ASSERT(aSuite, iterator->Next(scene)); - NL_TEST_ASSERT(aSuite, scene == scene7); - iterator->Release(); - - NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->RemoveSceneTableEntry(kFabric1, scene7.mStorageId)); - iterator = sceneTable->IterateSceneEntries(kFabric1); NL_TEST_ASSERT(aSuite, iterator->Count() == 1); NL_TEST_ASSERT(aSuite, iterator->Next(scene)); NL_TEST_ASSERT(aSuite, scene == scene12); iterator->Release(); // Remove last - NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->RemoveSceneTableEntry(kFabric1, scene8.mStorageId)); + NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->RemoveSceneTableEntry(kFabric1, scene7.mStorageId)); iterator = sceneTable->IterateSceneEntries(kFabric1); NL_TEST_ASSERT(aSuite, iterator->Count() == 0); NL_TEST_ASSERT(aSuite, iterator->Next(scene) == false); iterator->Release(); // Remove at empty position, shouldn't trigger error - NL_TEST_ASSERT( - aSuite, - CHIP_NO_ERROR == - sceneTable->RemoveSceneTableEntryAtPosition(kTestEndpoint1, kFabric1, chip::scenes::kMaxScenesPerFabric - 1)); + NL_TEST_ASSERT(aSuite, + CHIP_NO_ERROR == + sceneTable->RemoveSceneTableEntryAtPosition(kTestEndpoint1, kFabric1, defaultTestFabricCapacity - 1)); iterator = sceneTable->IterateSceneEntries(kFabric1); NL_TEST_ASSERT(aSuite, iterator->Count() == 0); @@ -985,26 +977,23 @@ void TestRemoveScenes(nlTestSuite * aSuite, void * aContext) void TestFabricScenes(nlTestSuite * aSuite, void * aContext) { - SceneTable * sceneTable = scenes::GetSceneTableImpl(); + SceneTable * sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); // Reset test ResetSceneTable(sceneTable); - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1); - NL_TEST_ASSERT(aSuite, nullptr != sceneTable); - VerifyOrReturn(nullptr != sceneTable); SceneTableEntry scene; uint8_t fabric_capacity = 0; // Verify capacities are at max NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric1, fabric_capacity)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric == fabric_capacity); + NL_TEST_ASSERT(aSuite, defaultTestFabricCapacity == fabric_capacity); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric2, fabric_capacity)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric == fabric_capacity); + NL_TEST_ASSERT(aSuite, defaultTestFabricCapacity == fabric_capacity); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric3, fabric_capacity)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric == fabric_capacity); + NL_TEST_ASSERT(aSuite, defaultTestFabricCapacity == fabric_capacity); // Fabric 1 inserts NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric1, scene1)); @@ -1014,39 +1003,38 @@ void TestFabricScenes(nlTestSuite * aSuite, void * aContext) NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric1, scene5)); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric1, scene6)); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric1, scene7)); - NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric1, scene8)); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric1, fabric_capacity)); NL_TEST_ASSERT(aSuite, 0 == fabric_capacity); uint8_t scene_count = 0; NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetFabricSceneCount(kFabric1, scene_count)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric == scene_count); + NL_TEST_ASSERT(aSuite, defaultTestFabricCapacity == scene_count); // Fabric 2 inserts NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric2, fabric_capacity)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric == fabric_capacity); + NL_TEST_ASSERT(aSuite, defaultTestFabricCapacity == fabric_capacity); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric2, scene1)); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric2, scene2)); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric2, scene3)); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric2, scene4)); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric2, fabric_capacity)); - NL_TEST_ASSERT(aSuite, (scenes::kMaxScenesPerFabric - 4) == fabric_capacity); + NL_TEST_ASSERT(aSuite, (defaultTestFabricCapacity - 4) == fabric_capacity); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetFabricSceneCount(kFabric2, scene_count)); - NL_TEST_ASSERT(aSuite, 4 == scene_count); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetEndpointSceneCount(scene_count)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerEndpoint - 4 == scene_count); + NL_TEST_ASSERT(aSuite, 11 == scene_count); // Fabric 3 inserts, should only be 4 spaces left at this point since 12 got taken NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric3, fabric_capacity)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric - 4 == fabric_capacity); + NL_TEST_ASSERT(aSuite, defaultTestTableSize - 11 == fabric_capacity); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric3, scene1)); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric3, scene2)); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric3, scene3)); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric3, scene4)); - NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetFabricSceneCount(kFabric2, scene_count)); - NL_TEST_ASSERT(aSuite, 4 == scene_count); + NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric3, scene5)); + NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetFabricSceneCount(kFabric3, scene_count)); + NL_TEST_ASSERT(aSuite, 5 == scene_count); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetEndpointSceneCount(scene_count)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerEndpoint == scene_count); + NL_TEST_ASSERT(aSuite, defaultTestTableSize == scene_count); // Checks capacity is now 0 accross all fabrics NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric1, fabric_capacity)); @@ -1057,7 +1045,7 @@ void TestFabricScenes(nlTestSuite * aSuite, void * aContext) NL_TEST_ASSERT(aSuite, 0 == fabric_capacity); // To many scenes accross fabrics (Max scenes accross fabrics == 16) - NL_TEST_ASSERT(aSuite, CHIP_ERROR_NO_MEMORY == sceneTable->SetSceneTableEntry(kFabric3, scene5)); + NL_TEST_ASSERT(aSuite, CHIP_ERROR_NO_MEMORY == sceneTable->SetSceneTableEntry(kFabric3, scene6)); NL_TEST_ASSERT(aSuite, CHIP_ERROR_NO_MEMORY == sceneTable->SetSceneTableEntry(kFabric2, scene5)); // Verifying all inserted scenes are accessible @@ -1075,8 +1063,6 @@ void TestFabricScenes(nlTestSuite * aSuite, void * aContext) NL_TEST_ASSERT(aSuite, scene == scene6); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetSceneTableEntry(kFabric1, sceneId7, scene)); NL_TEST_ASSERT(aSuite, scene == scene7); - NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetSceneTableEntry(kFabric1, sceneId8, scene)); - NL_TEST_ASSERT(aSuite, scene == scene8); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetSceneTableEntry(kFabric2, sceneId1, scene)); NL_TEST_ASSERT(aSuite, scene == scene1); @@ -1095,6 +1081,8 @@ void TestFabricScenes(nlTestSuite * aSuite, void * aContext) NL_TEST_ASSERT(aSuite, scene == scene3); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetSceneTableEntry(kFabric3, sceneId4, scene)); NL_TEST_ASSERT(aSuite, scene == scene4); + NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetSceneTableEntry(kFabric3, sceneId5, scene)); + NL_TEST_ASSERT(aSuite, scene == scene5); // Remove Fabric 1 NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->RemoveFabric(kFabric1)); @@ -1102,7 +1090,7 @@ void TestFabricScenes(nlTestSuite * aSuite, void * aContext) NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetFabricSceneCount(kFabric1, scene_count)); NL_TEST_ASSERT(aSuite, 0 == scene_count); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetEndpointSceneCount(scene_count)); - NL_TEST_ASSERT(aSuite, 8 == scene_count); + NL_TEST_ASSERT(aSuite, 9 == scene_count); NL_TEST_ASSERT(aSuite, CHIP_ERROR_NOT_FOUND == sceneTable->GetSceneTableEntry(kFabric1, sceneId1, scene)); NL_TEST_ASSERT(aSuite, CHIP_ERROR_NOT_FOUND == sceneTable->GetSceneTableEntry(kFabric1, sceneId2, scene)); NL_TEST_ASSERT(aSuite, CHIP_ERROR_NOT_FOUND == sceneTable->GetSceneTableEntry(kFabric1, sceneId3, scene)); @@ -1126,33 +1114,30 @@ void TestFabricScenes(nlTestSuite * aSuite, void * aContext) // Verify capacity updated for all fabrics NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric1, fabric_capacity)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric == fabric_capacity); + NL_TEST_ASSERT(aSuite, defaultTestFabricCapacity == fabric_capacity); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric2, fabric_capacity)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric - 4 == fabric_capacity); + NL_TEST_ASSERT(aSuite, defaultTestFabricCapacity - 4 == fabric_capacity); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric3, fabric_capacity)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric - 4 == fabric_capacity); + NL_TEST_ASSERT(aSuite, defaultTestFabricCapacity - 5 == fabric_capacity); // Verify we can now write more scenes in scene fabric 2 NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric2, scene5)); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric2, scene6)); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric2, scene7)); - NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric2, scene8)); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetSceneTableEntry(kFabric2, sceneId5, scene)); NL_TEST_ASSERT(aSuite, scene == scene5); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetSceneTableEntry(kFabric2, sceneId6, scene)); NL_TEST_ASSERT(aSuite, scene == scene6); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetSceneTableEntry(kFabric2, sceneId7, scene)); NL_TEST_ASSERT(aSuite, scene == scene7); - NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetSceneTableEntry(kFabric2, sceneId8, scene)); - NL_TEST_ASSERT(aSuite, scene == scene8); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetFabricSceneCount(kFabric2, scene_count)); - NL_TEST_ASSERT(aSuite, 8 == scene_count); + NL_TEST_ASSERT(aSuite, 7 == scene_count); // Verify capacity updated properly NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric1, fabric_capacity)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric - 4 == fabric_capacity); + NL_TEST_ASSERT(aSuite, 4 == fabric_capacity); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric3, fabric_capacity)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric - 4 == fabric_capacity); + NL_TEST_ASSERT(aSuite, defaultTestFabricCapacity - 5 == fabric_capacity); // Verify Fabric 3 still there NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetSceneTableEntry(kFabric3, sceneId1, scene)); @@ -1163,6 +1148,8 @@ void TestFabricScenes(nlTestSuite * aSuite, void * aContext) NL_TEST_ASSERT(aSuite, scene == scene3); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetSceneTableEntry(kFabric3, sceneId4, scene)); NL_TEST_ASSERT(aSuite, scene == scene4); + NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetSceneTableEntry(kFabric3, sceneId5, scene)); + NL_TEST_ASSERT(aSuite, scene == scene5); // Remove Fabric 2 NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->RemoveFabric(kFabric2)); @@ -1170,7 +1157,7 @@ void TestFabricScenes(nlTestSuite * aSuite, void * aContext) NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetFabricSceneCount(kFabric2, scene_count)); NL_TEST_ASSERT(aSuite, 0 == scene_count); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetEndpointSceneCount(scene_count)); - NL_TEST_ASSERT(aSuite, 4 == scene_count); + NL_TEST_ASSERT(aSuite, 5 == scene_count); NL_TEST_ASSERT(aSuite, CHIP_ERROR_NOT_FOUND == sceneTable->GetSceneTableEntry(kFabric2, sceneId1, scene)); NL_TEST_ASSERT(aSuite, CHIP_ERROR_NOT_FOUND == sceneTable->GetSceneTableEntry(kFabric2, sceneId2, scene)); NL_TEST_ASSERT(aSuite, CHIP_ERROR_NOT_FOUND == sceneTable->GetSceneTableEntry(kFabric2, sceneId3, scene)); @@ -1178,11 +1165,10 @@ void TestFabricScenes(nlTestSuite * aSuite, void * aContext) NL_TEST_ASSERT(aSuite, CHIP_ERROR_NOT_FOUND == sceneTable->GetSceneTableEntry(kFabric2, sceneId5, scene)); NL_TEST_ASSERT(aSuite, CHIP_ERROR_NOT_FOUND == sceneTable->GetSceneTableEntry(kFabric2, sceneId6, scene)); NL_TEST_ASSERT(aSuite, CHIP_ERROR_NOT_FOUND == sceneTable->GetSceneTableEntry(kFabric2, sceneId7, scene)); - NL_TEST_ASSERT(aSuite, CHIP_ERROR_NOT_FOUND == sceneTable->GetSceneTableEntry(kFabric2, sceneId8, scene)); // Verify Fabric 3 still there NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetFabricSceneCount(kFabric3, scene_count)); - NL_TEST_ASSERT(aSuite, 4 == scene_count); + NL_TEST_ASSERT(aSuite, 5 == scene_count); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetSceneTableEntry(kFabric3, sceneId1, scene)); NL_TEST_ASSERT(aSuite, scene == scene1); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetSceneTableEntry(kFabric3, sceneId2, scene)); @@ -1191,6 +1177,8 @@ void TestFabricScenes(nlTestSuite * aSuite, void * aContext) NL_TEST_ASSERT(aSuite, scene == scene3); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetSceneTableEntry(kFabric3, sceneId4, scene)); NL_TEST_ASSERT(aSuite, scene == scene4); + NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetSceneTableEntry(kFabric3, sceneId5, scene)); + NL_TEST_ASSERT(aSuite, scene == scene5); // Remove Fabric 3 NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->RemoveFabric(kFabric3)); @@ -1203,6 +1191,7 @@ void TestFabricScenes(nlTestSuite * aSuite, void * aContext) NL_TEST_ASSERT(aSuite, CHIP_ERROR_NOT_FOUND == sceneTable->GetSceneTableEntry(kFabric3, sceneId2, scene)); NL_TEST_ASSERT(aSuite, CHIP_ERROR_NOT_FOUND == sceneTable->GetSceneTableEntry(kFabric3, sceneId3, scene)); NL_TEST_ASSERT(aSuite, CHIP_ERROR_NOT_FOUND == sceneTable->GetSceneTableEntry(kFabric3, sceneId4, scene)); + NL_TEST_ASSERT(aSuite, CHIP_ERROR_NOT_FOUND == sceneTable->GetSceneTableEntry(kFabric3, sceneId5, scene)); // Confirm all counts are at 0 NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetFabricSceneCount(kFabric1, scene_count)); @@ -1214,52 +1203,48 @@ void TestFabricScenes(nlTestSuite * aSuite, void * aContext) // Verify capacity updated for all fabrics NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric1, fabric_capacity)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric == fabric_capacity); + NL_TEST_ASSERT(aSuite, defaultTestFabricCapacity == fabric_capacity); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric2, fabric_capacity)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric == fabric_capacity); + NL_TEST_ASSERT(aSuite, defaultTestFabricCapacity == fabric_capacity); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric3, fabric_capacity)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric == fabric_capacity); + NL_TEST_ASSERT(aSuite, defaultTestFabricCapacity == fabric_capacity); } void TestEndpointScenes(nlTestSuite * aSuite, void * aContext) { // Get Count for Endpoint 1 - SceneTable * sceneTable = scenes::GetSceneTableImpl(); + SceneTable * sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); // Reset test ResetSceneTable(sceneTable); - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1); - NL_TEST_ASSERT(aSuite, nullptr != sceneTable); - VerifyOrReturn(nullptr != sceneTable); - SceneTableEntry scene; // Verify all endpoints are empty uint8_t endpoint_scene_count = 0; // Get Count for Endpoint 1 - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1); + sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetEndpointSceneCount(endpoint_scene_count)); NL_TEST_ASSERT(aSuite, 0 == endpoint_scene_count); // Get Count for Endpoint 2 - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint2); + sceneTable = scenes::GetSceneTableImpl(kTestEndpoint2, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetEndpointSceneCount(endpoint_scene_count)); NL_TEST_ASSERT(aSuite, 0 == endpoint_scene_count); // Get Count for Endpoint 3 - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint3); + sceneTable = scenes::GetSceneTableImpl(kTestEndpoint3, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetEndpointSceneCount(endpoint_scene_count)); NL_TEST_ASSERT(aSuite, 0 == endpoint_scene_count); // Test Scenes insertion not accessible accross all endpoints - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1); + sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric1, scene1)); @@ -1269,25 +1254,25 @@ void TestEndpointScenes(nlTestSuite * aSuite, void * aContext) uint8_t fabric_capacity = 0; NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric1, fabric_capacity)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric - 1 == fabric_capacity); + NL_TEST_ASSERT(aSuite, defaultTestFabricCapacity - 1 == fabric_capacity); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric2, fabric_capacity)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric - 1 == fabric_capacity); + NL_TEST_ASSERT(aSuite, defaultTestFabricCapacity - 1 == fabric_capacity); // Endpoint2 - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint2); + sceneTable = scenes::GetSceneTableImpl(kTestEndpoint2, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetEndpointSceneCount(endpoint_scene_count)); NL_TEST_ASSERT(aSuite, 0 == endpoint_scene_count); // Endpoint3 - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint3); + sceneTable = scenes::GetSceneTableImpl(kTestEndpoint3, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetEndpointSceneCount(endpoint_scene_count)); NL_TEST_ASSERT(aSuite, 0 == endpoint_scene_count); // Check if scene present in Endpoint 1 - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1); + sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetSceneTableEntry(kFabric1, sceneId1, scene)); @@ -1296,13 +1281,13 @@ void TestEndpointScenes(nlTestSuite * aSuite, void * aContext) NL_TEST_ASSERT(aSuite, scene == scene1); // Check if scene present in Endpoint 2 - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint2); + sceneTable = scenes::GetSceneTableImpl(kTestEndpoint2, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); NL_TEST_ASSERT(aSuite, CHIP_ERROR_NOT_FOUND == sceneTable->GetSceneTableEntry(kFabric1, sceneId1, scene)); NL_TEST_ASSERT(aSuite, CHIP_ERROR_NOT_FOUND == sceneTable->GetSceneTableEntry(kFabric2, sceneId1, scene)); // Check if scene present in Endpoint 3 - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint3); + sceneTable = scenes::GetSceneTableImpl(kTestEndpoint3, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); NL_TEST_ASSERT(aSuite, CHIP_ERROR_NOT_FOUND == sceneTable->GetSceneTableEntry(kFabric1, sceneId1, scene)); @@ -1310,7 +1295,7 @@ void TestEndpointScenes(nlTestSuite * aSuite, void * aContext) // Test removal on different endpoints do not affect each endpoints // Insertion on Endpoint2 - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint2); + sceneTable = scenes::GetSceneTableImpl(kTestEndpoint2, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric1, scene1)); @@ -1318,14 +1303,14 @@ void TestEndpointScenes(nlTestSuite * aSuite, void * aContext) NL_TEST_ASSERT(aSuite, scene == scene1); // Removal on Endpoint1 - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1); + sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->RemoveSceneTableEntry(kFabric1, sceneId1)); NL_TEST_ASSERT(aSuite, CHIP_ERROR_NOT_FOUND == sceneTable->GetSceneTableEntry(kFabric1, sceneId1, scene)); // Scene present on Endpoint2 - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint2); + sceneTable = scenes::GetSceneTableImpl(kTestEndpoint2, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetSceneTableEntry(kFabric1, sceneId1, scene)); @@ -1335,7 +1320,7 @@ void TestEndpointScenes(nlTestSuite * aSuite, void * aContext) NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->RemoveSceneTableEntry(kFabric1, sceneId1)); // Removal on Endpoint 1 - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1); + sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->RemoveSceneTableEntry(kFabric2, sceneId1)); @@ -1343,13 +1328,13 @@ void TestEndpointScenes(nlTestSuite * aSuite, void * aContext) NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetEndpointSceneCount(endpoint_scene_count)); NL_TEST_ASSERT(aSuite, 0 == endpoint_scene_count); // Endpoint 2 - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint2); + sceneTable = scenes::GetSceneTableImpl(kTestEndpoint2, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetEndpointSceneCount(endpoint_scene_count)); NL_TEST_ASSERT(aSuite, 0 == endpoint_scene_count); // Endpoint 3 - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint3); + sceneTable = scenes::GetSceneTableImpl(kTestEndpoint3, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetEndpointSceneCount(endpoint_scene_count)); @@ -1357,7 +1342,7 @@ void TestEndpointScenes(nlTestSuite * aSuite, void * aContext) // Test the fabric capacity accross endpoint // Fill fabric 1 endpoint 1 - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1); + sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric1, scene1)); @@ -1367,7 +1352,6 @@ void TestEndpointScenes(nlTestSuite * aSuite, void * aContext) NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric1, scene5)); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric1, scene6)); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric1, scene7)); - NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric1, scene8)); // Fill fabric 2 endpoint 1 NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric2, scene1)); @@ -1377,7 +1361,6 @@ void TestEndpointScenes(nlTestSuite * aSuite, void * aContext) NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric2, scene5)); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric2, scene6)); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric2, scene7)); - NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric2, scene8)); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric1, fabric_capacity)); NL_TEST_ASSERT(aSuite, 0 == fabric_capacity); @@ -1385,26 +1368,26 @@ void TestEndpointScenes(nlTestSuite * aSuite, void * aContext) NL_TEST_ASSERT(aSuite, 0 == fabric_capacity); // Endpoints 2 and 3 should be unaffected - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint2); + sceneTable = scenes::GetSceneTableImpl(kTestEndpoint2, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric1, fabric_capacity)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric == fabric_capacity); + NL_TEST_ASSERT(aSuite, defaultTestFabricCapacity == fabric_capacity); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric2, fabric_capacity)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric == fabric_capacity); + NL_TEST_ASSERT(aSuite, defaultTestFabricCapacity == fabric_capacity); - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint3); + sceneTable = scenes::GetSceneTableImpl(kTestEndpoint3, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric1, fabric_capacity)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric == fabric_capacity); + NL_TEST_ASSERT(aSuite, defaultTestFabricCapacity == fabric_capacity); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric2, fabric_capacity)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric == fabric_capacity); + NL_TEST_ASSERT(aSuite, defaultTestFabricCapacity == fabric_capacity); // Verify filling Fabric on endpoint 2 does not affect on endpoint 3 despite Max per fabric being reached by adding Endpoint1 // and Endpoint2 // Fill fabric 1 endpoint 2 - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint2); + sceneTable = scenes::GetSceneTableImpl(kTestEndpoint2, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric1, scene1)); @@ -1414,10 +1397,9 @@ void TestEndpointScenes(nlTestSuite * aSuite, void * aContext) NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric1, scene5)); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric1, scene6)); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric1, scene7)); - NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric1, scene8)); // Fill fabric 2 endpoint 2 - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint2); + sceneTable = scenes::GetSceneTableImpl(kTestEndpoint2, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric2, scene1)); @@ -1427,19 +1409,18 @@ void TestEndpointScenes(nlTestSuite * aSuite, void * aContext) NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric2, scene5)); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric2, scene6)); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric2, scene7)); - NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric2, scene8)); // scene count to Endpoint - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint3); + sceneTable = scenes::GetSceneTableImpl(kTestEndpoint3, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric1, fabric_capacity)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric == fabric_capacity); + NL_TEST_ASSERT(aSuite, defaultTestFabricCapacity == fabric_capacity); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric2, fabric_capacity)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric == fabric_capacity); + NL_TEST_ASSERT(aSuite, defaultTestFabricCapacity == fabric_capacity); // Test removal of fabric clears scene fabric on all endpoints - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1); + sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); sceneTable->RemoveFabric(kFabric1); @@ -1452,7 +1433,7 @@ void TestEndpointScenes(nlTestSuite * aSuite, void * aContext) NL_TEST_ASSERT(aSuite, CHIP_ERROR_NOT_FOUND == sceneTable->GetSceneTableEntry(kFabric1, sceneId7, scene)); NL_TEST_ASSERT(aSuite, CHIP_ERROR_NOT_FOUND == sceneTable->GetSceneTableEntry(kFabric1, sceneId8, scene)); - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint2); + sceneTable = scenes::GetSceneTableImpl(kTestEndpoint2, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); NL_TEST_ASSERT(aSuite, CHIP_ERROR_NOT_FOUND == sceneTable->GetSceneTableEntry(kFabric1, sceneId1, scene)); @@ -1467,17 +1448,17 @@ void TestEndpointScenes(nlTestSuite * aSuite, void * aContext) sceneTable->RemoveFabric(kFabric2); // Validate endpoints are empty - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1); + sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetEndpointSceneCount(endpoint_scene_count)); NL_TEST_ASSERT(aSuite, 0 == endpoint_scene_count); - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint2); + sceneTable = scenes::GetSceneTableImpl(kTestEndpoint2, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetEndpointSceneCount(endpoint_scene_count)); NL_TEST_ASSERT(aSuite, 0 == endpoint_scene_count); - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint3); + sceneTable = scenes::GetSceneTableImpl(kTestEndpoint3, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetEndpointSceneCount(endpoint_scene_count)); @@ -1486,53 +1467,53 @@ void TestEndpointScenes(nlTestSuite * aSuite, void * aContext) // Validate Fabric capacities at maximum accross all endpoints // Endpoint 1 - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1); + sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric1, fabric_capacity)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric == fabric_capacity); + NL_TEST_ASSERT(aSuite, defaultTestFabricCapacity == fabric_capacity); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric2, fabric_capacity)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric == fabric_capacity); + NL_TEST_ASSERT(aSuite, defaultTestFabricCapacity == fabric_capacity); // Endpoint 2 - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint2); + sceneTable = scenes::GetSceneTableImpl(kTestEndpoint2, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric1, fabric_capacity)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric == fabric_capacity); + NL_TEST_ASSERT(aSuite, defaultTestFabricCapacity == fabric_capacity); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric2, fabric_capacity)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric == fabric_capacity); + NL_TEST_ASSERT(aSuite, defaultTestFabricCapacity == fabric_capacity); // Endpoint 3 - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint3); + sceneTable = scenes::GetSceneTableImpl(kTestEndpoint3, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric1, fabric_capacity)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric == fabric_capacity); + NL_TEST_ASSERT(aSuite, defaultTestFabricCapacity == fabric_capacity); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric2, fabric_capacity)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric == fabric_capacity); + NL_TEST_ASSERT(aSuite, defaultTestFabricCapacity == fabric_capacity); // Test of Get with changes to Endpoint capacity // Endpoint 1 - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1, scenes::kMaxScenesPerEndpoint - 2); + sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1, defaultTestTableSize - 2); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric1, fabric_capacity)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric - 1 == fabric_capacity); + NL_TEST_ASSERT(aSuite, defaultTestFabricCapacity - 1 == fabric_capacity); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric2, fabric_capacity)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric - 1 == fabric_capacity); + NL_TEST_ASSERT(aSuite, defaultTestFabricCapacity - 1 == fabric_capacity); // Test Endpoint 2's capacity remains unaffected - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint2); + sceneTable = scenes::GetSceneTableImpl(kTestEndpoint2, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric1, fabric_capacity)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric == fabric_capacity); + NL_TEST_ASSERT(aSuite, defaultTestFabricCapacity == fabric_capacity); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric2, fabric_capacity)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric == fabric_capacity); + NL_TEST_ASSERT(aSuite, defaultTestFabricCapacity == fabric_capacity); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); // Test Insertion then change of capacity - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1); + sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric1, scene1)); @@ -1540,22 +1521,22 @@ void TestEndpointScenes(nlTestSuite * aSuite, void * aContext) NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric1, scene3)); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric1, scene4)); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric1, fabric_capacity)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric - 4 == fabric_capacity); + NL_TEST_ASSERT(aSuite, defaultTestFabricCapacity - 4 == fabric_capacity); - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1, scenes::kMaxScenesPerFabric - 2); + sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1, defaultTestFabricCapacity - 2); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric1, fabric_capacity)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric - 6 == fabric_capacity); + NL_TEST_ASSERT(aSuite, defaultTestFabricCapacity - 6 == fabric_capacity); - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1, scenes::kMaxScenesPerFabric - 4); + sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1, defaultTestFabricCapacity - 4); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric1, fabric_capacity)); NL_TEST_ASSERT(aSuite, 0 == fabric_capacity); // Test making the endpoint scene table smaller than the actual number of scenes on it - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1, scenes::kMaxScenesPerFabric - 5); + sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1, defaultTestFabricCapacity - 5); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric1, fabric_capacity)); @@ -1564,18 +1545,16 @@ void TestEndpointScenes(nlTestSuite * aSuite, void * aContext) void TestOTAChanges(nlTestSuite * aSuite, void * aContext) { - SceneTable * sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1); + SceneTable * sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1, defaultTestTableSize); NL_TEST_ASSERT(aSuite, nullptr != sceneTable); VerifyOrReturn(nullptr != sceneTable); // Reset test ResetSceneTable(sceneTable); - sceneTable = scenes::GetSceneTableImpl(kTestEndpoint1); - NL_TEST_ASSERT(aSuite, nullptr != sceneTable); - VerifyOrReturn(nullptr != sceneTable); SceneTableEntry scene; - uint8_t fabric_capacity = 0; + uint8_t fabric_capacity = 0; + uint8_t fabricsFullCount = defaultTestTableSize - 2; // Fill scene table // Fill fabric 1 to capacity @@ -1586,11 +1565,11 @@ void TestOTAChanges(nlTestSuite * aSuite, void * aContext) NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric1, scene5)); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric1, scene6)); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric1, scene7)); - NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric1, scene8)); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric1, fabric_capacity)); NL_TEST_ASSERT(aSuite, 0 == fabric_capacity); - auto * iterator = sceneTable->IterateSceneEntries(kFabric1); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric == iterator->Count()); + uint8_t scene_table_fabric1_capacity = fabric_capacity; + auto * iterator = sceneTable->IterateSceneEntries(kFabric1); + NL_TEST_ASSERT(aSuite, defaultTestFabricCapacity == iterator->Count()); iterator->Release(); // Fill fabric 2 to capacity @@ -1601,17 +1580,58 @@ void TestOTAChanges(nlTestSuite * aSuite, void * aContext) NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric2, scene5)); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric2, scene6)); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric2, scene7)); - NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->SetSceneTableEntry(kFabric2, scene8)); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric1, fabric_capacity)); NL_TEST_ASSERT(aSuite, 0 == fabric_capacity); - iterator = sceneTable->IterateSceneEntries(kFabric2); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric == iterator->Count()); + uint8_t scene_table_fabric2_capacity = fabric_capacity; + iterator = sceneTable->IterateSceneEntries(kFabric2); + NL_TEST_ASSERT(aSuite, defaultTestFabricCapacity == iterator->Count()); iterator->Release(); // SceneTable should be full at this point uint8_t scene_count; NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetEndpointSceneCount(scene_count)); // Global count should not have been modified - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerEndpoint == scene_count); + NL_TEST_ASSERT(aSuite, fabricsFullCount == scene_count); + + // Create a scene table with a greater capacity than the original one (Max allowed capacity from gen_config.h) + TestSceneTableImpl ExpandedSceneTable(scenes::kMaxScenesPerFabric, scenes::kMaxScenesPerEndpoint); + NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == ExpandedSceneTable.Init(&testStorage)); + ExpandedSceneTable.SetEndpoint(kTestEndpoint1); + + NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == ExpandedSceneTable.GetRemainingCapacity(kFabric1, fabric_capacity)); + NL_TEST_ASSERT(aSuite, + scene_table_fabric1_capacity + (scenes::kMaxScenesPerFabric - defaultTestFabricCapacity) == fabric_capacity); + NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == ExpandedSceneTable.GetRemainingCapacity(kFabric2, fabric_capacity)); + NL_TEST_ASSERT(aSuite, + scene_table_fabric2_capacity + (scenes::kMaxScenesPerFabric - defaultTestFabricCapacity) == fabric_capacity); + + // We should be able to insert 4 scenes into fabric 2 + NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == ExpandedSceneTable.SetSceneTableEntry(kFabric2, scene9)); + NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == ExpandedSceneTable.SetSceneTableEntry(kFabric2, scene13)); + NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == ExpandedSceneTable.SetSceneTableEntry(kFabric2, scene14)); + NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == ExpandedSceneTable.SetSceneTableEntry(kFabric2, scene15)); + NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == ExpandedSceneTable.GetRemainingCapacity(kFabric2, fabric_capacity)); + NL_TEST_ASSERT(aSuite, 0 == fabric_capacity); + + // Fabric 1's capacity should have remain unchanged + NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == ExpandedSceneTable.GetRemainingCapacity(kFabric1, fabric_capacity)); + NL_TEST_ASSERT(aSuite, + scene_table_fabric1_capacity + (scenes::kMaxScenesPerFabric - defaultTestFabricCapacity) == fabric_capacity); + + // Global count should have increased by (scenes::kMaxScenesPerFarbic - defaultTestFabricCapacity) + NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == ExpandedSceneTable.GetEndpointSceneCount(scene_count)); + NL_TEST_ASSERT(aSuite, fabricsFullCount + (scenes::kMaxScenesPerFabric - defaultTestFabricCapacity) == scene_count); + + // Same test for 4 insertion in fabric 1 + NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == ExpandedSceneTable.SetSceneTableEntry(kFabric1, scene9)); + NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == ExpandedSceneTable.SetSceneTableEntry(kFabric1, scene13)); + NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == ExpandedSceneTable.SetSceneTableEntry(kFabric1, scene14)); + NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == ExpandedSceneTable.SetSceneTableEntry(kFabric1, scene15)); + NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == ExpandedSceneTable.GetRemainingCapacity(kFabric1, fabric_capacity)); + NL_TEST_ASSERT(aSuite, 0 == fabric_capacity); + + // Global count should be at defaultTestTableSize + (scenes::kMaxScenesPerEndpoint - defaultTestTableSize) + NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == ExpandedSceneTable.GetEndpointSceneCount(scene_count)); + NL_TEST_ASSERT(aSuite, fabricsFullCount + (scenes::kMaxScenesPerEndpoint - defaultTestTableSize) == scene_count); // Test failure to init a SceneTable with sizes above the defined max scenes per fabric or globaly TestSceneTableImpl SceneTableTooManyPerFabric(scenes::kMaxScenesPerFabric + 1, scenes::kMaxScenesPerEndpoint); @@ -1622,16 +1642,21 @@ void TestOTAChanges(nlTestSuite * aSuite, void * aContext) NL_TEST_ASSERT(aSuite, CHIP_ERROR_INVALID_INTEGER_VALUE == SceneTableTooManyGlobal.Init(&testStorage)); SceneTableTooManyGlobal.Finish(); - // Create a new table with a different limit of scenes per fabric - TestSceneTableImpl ReducedSceneTable(scenes::kMaxScenesPerFabric - 1, scenes::kMaxScenesPerEndpoint - 2); + // Create a new table with a lower limit of scenes per fabric + uint8_t newCapacity = defaultTestFabricCapacity - 1; + uint8_t newTableSize = defaultTestTableSize - 2; + uint8_t capacityDifference = static_cast(scenes::kMaxScenesPerFabric - newCapacity); + TestSceneTableImpl ReducedSceneTable(newCapacity, newTableSize); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == ReducedSceneTable.Init(&testStorage)); ReducedSceneTable.SetEndpoint(kTestEndpoint1); // Global count should not have been modified NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == ReducedSceneTable.GetEndpointSceneCount(scene_count)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerEndpoint == scene_count); + NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerEndpoint - 2 == scene_count); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == ReducedSceneTable.GetRemainingCapacity(kFabric1, fabric_capacity)); NL_TEST_ASSERT(aSuite, 0 == fabric_capacity); + NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == ReducedSceneTable.GetRemainingCapacity(kFabric2, fabric_capacity)); + NL_TEST_ASSERT(aSuite, 0 == fabric_capacity); // Load a scene from fabric 1, this should adjust fabric 1 scene count in flash NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == ReducedSceneTable.GetSceneTableEntry(kFabric1, sceneId1, scene)); @@ -1639,66 +1664,72 @@ void TestOTAChanges(nlTestSuite * aSuite, void * aContext) // The number count of scenes in Fabric 1 should have been adjusted here iterator = ReducedSceneTable.IterateSceneEntries(kFabric1); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric - 1 == iterator->Count()); + NL_TEST_ASSERT(aSuite, newCapacity == iterator->Count()); iterator->Release(); - // Capacity should still be 0 + // Capacity should still be 0 in fabric 1 + NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == ReducedSceneTable.GetRemainingCapacity(kFabric1, fabric_capacity)); NL_TEST_ASSERT(aSuite, 0 == fabric_capacity); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == ReducedSceneTable.GetEndpointSceneCount(scene_count)); - // Global count should have been reduced by 1 - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerEndpoint - 1 == scene_count); + // Global count should have been reduced by the difference between the max fabric capacity of a fabric and the + // new fabric capacity since we haven't loaded from fabric 2 yet + NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerEndpoint - 2 - capacityDifference == scene_count); // Remove a Scene from the Fabric 1 - NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == ReducedSceneTable.RemoveSceneTableEntry(kFabric1, scene.mStorageId)); + NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == ReducedSceneTable.RemoveSceneTableEntry(kFabric1, scene1.mStorageId)); // Check count updated for fabric iterator = ReducedSceneTable.IterateSceneEntries(kFabric1); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric - 2 == iterator->Count()); + NL_TEST_ASSERT(aSuite, static_cast(newCapacity - 1) == iterator->Count()); iterator->Release(); // Check fabric still doesn't have capacity because fabric 2 still have a higher number of scene than allowed NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == ReducedSceneTable.GetRemainingCapacity(kFabric1, fabric_capacity)); NL_TEST_ASSERT(aSuite, 0 == fabric_capacity); // Remove another scene from fabric 1 NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == ReducedSceneTable.RemoveSceneTableEntry(kFabric1, scene2.mStorageId)); + NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == ReducedSceneTable.RemoveSceneTableEntry(kFabric1, scene3.mStorageId)); + NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == ReducedSceneTable.RemoveSceneTableEntry(kFabric1, scene4.mStorageId)); // Check count updated for fabric iterator = ReducedSceneTable.IterateSceneEntries(kFabric1); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric - 3 == iterator->Count()); + NL_TEST_ASSERT(aSuite, 2 == iterator->Count()); iterator->Release(); - // Global count should now have been adjusted + // Confirm global count has been updated NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == ReducedSceneTable.GetEndpointSceneCount(scene_count)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerEndpoint - 3 == scene_count); - // Confirm we now have capacity + NL_TEST_ASSERT(aSuite, 13 == scene_count); + // Confirm we now have capacity in fabric one NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == ReducedSceneTable.GetRemainingCapacity(kFabric1, fabric_capacity)); NL_TEST_ASSERT(aSuite, 1 == fabric_capacity); - // Load a scene from fabric 2, this should adjust fabric 1 scene count in flash + // Load a scene from fabric 2, this should adjust fabric 2 scene count in flash NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == ReducedSceneTable.GetSceneTableEntry(kFabric2, sceneId1, scene)); NL_TEST_ASSERT(aSuite, scene == scene1); - // The number count of scenes in Fabric 1 should have been adjusted here + // The number count of scenes in Fabric 2 should have been adjusted here iterator = ReducedSceneTable.IterateSceneEntries(kFabric2); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerFabric - 1 == iterator->Count()); + NL_TEST_ASSERT(aSuite, defaultTestFabricCapacity - 1 == iterator->Count()); iterator->Release(); - // Global count should now have been adjusted + // Global count should also have been adjusted NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == ReducedSceneTable.GetEndpointSceneCount(scene_count)); - NL_TEST_ASSERT(aSuite, scenes::kMaxScenesPerEndpoint - 4 == scene_count); - // Confirm we now have capacity in the first fabric since we previously removed 2 scenes form there + // had 22 scenes, truncated 5 from both (10) and deleted 4 from fabric 1: 8 scenes left + NL_TEST_ASSERT(aSuite, 8 == scene_count); + // Confirm we now have capacity of 6 in the first fabric since we previously removed 6 scenes form there NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == ReducedSceneTable.GetRemainingCapacity(kFabric1, fabric_capacity)); - NL_TEST_ASSERT(aSuite, 2 == fabric_capacity); + NL_TEST_ASSERT(aSuite, 4 == fabric_capacity); // Fabric 2 should still be at capacity NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == ReducedSceneTable.GetRemainingCapacity(kFabric2, fabric_capacity)); NL_TEST_ASSERT(aSuite, 0 == fabric_capacity); ReducedSceneTable.Finish(); - // The Scene 8 should now have been deleted from the memory and thus not be accessible from both fabrics in the original scene - // table + // The Scene 8 should now have been truncated from the memory and thus not be accessible from both fabrics in the + // original scene table NL_TEST_ASSERT(aSuite, CHIP_ERROR_NOT_FOUND == sceneTable->GetSceneTableEntry(kFabric1, sceneId8, scene)); NL_TEST_ASSERT(aSuite, CHIP_ERROR_NOT_FOUND == sceneTable->GetSceneTableEntry(kFabric2, sceneId8, scene)); // The Remaining capacity in the original scene table therefore have been modified as well - // Fabric 2 should still be at capacity + // Fabric 2 should still be almost at capacity NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric1, fabric_capacity)); - NL_TEST_ASSERT(aSuite, 3 == fabric_capacity); + NL_TEST_ASSERT(aSuite, 5 == fabric_capacity); NL_TEST_ASSERT(aSuite, CHIP_NO_ERROR == sceneTable->GetRemainingCapacity(kFabric2, fabric_capacity)); + NL_TEST_ASSERT(aSuite, 1 == fabric_capacity); } diff --git a/src/app/tests/suites/certification/PICS.yaml b/src/app/tests/suites/certification/PICS.yaml index db68712796d160..4d2abbfa86b96f 100644 --- a/src/app/tests/suites/certification/PICS.yaml +++ b/src/app/tests/suites/certification/PICS.yaml @@ -7584,36 +7584,6 @@ PICS: attribute implemented on the server ?" id: WNCV.C.A001a - - label: - "Does the DUT(client) have access privileges for the (0xFFF8) - GeneratedCommandList attribute implemented on the server ?" - id: WNCV.C.Afff8 - - - label: - "Does the DUT(client) have access privileges for the (0xFFF9) - AcceptedCommandList attribute implemented on the server ?" - id: WNCV.C.Afff9 - - - label: - "Does the DUT(client) have access privileges for the (0xFFFA) - EventList attribute implemented on the server ?" - id: WNCV.C.Afffa - - - label: - "Does the DUT(client) have access privileges for the (0xFFFB) - AttributeList attribute implemented on the server ?" - id: WNCV.C.Afffb - - - label: - "Does the DUT(client) have access privileges for the (0xFFFC) - FeatureMap attribute implemented on the server ?" - id: WNCV.C.Afffc - - - label: - "Does the DUT(client) have access privileges for the (0xFFFD) - ClusterRevision attribute implemented on the server ?" - id: WNCV.C.Afffd - # # client / commandsGenerated # diff --git a/src/app/tests/suites/certification/Test_TC_ALOGIN_12_2.yaml b/src/app/tests/suites/certification/Test_TC_ALOGIN_12_2.yaml index 57f3888c65dffe..614a7977ddc59a 100644 --- a/src/app/tests/suites/certification/Test_TC_ALOGIN_12_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_ALOGIN_12_2.yaml @@ -27,6 +27,43 @@ tests: - label: "Preconditions" verification: | Commission TH to DUT, if not done so already. In some cases, such as with a Casting Video Player, the TH commissions the DUT. + + Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): + + The following command on the example tv-app will launch a content app on endpoint 4: + ./chip-tool applicationlauncher launch-app '{"catalogVendorID": 123, "applicationID": "exampleid"}' 1 1 + ./chip-tv-casting-app applicationlauncher launch-app '{"catalogVendorID": 123, "applicationID": "exampleid"}' 1 1 + On TH (tv-app), Verify the launch app command is received successfully. + 1666779708.066501][24994:24994] CHIP:DMG: InvokeRequestMessage = + [1666779708.066504][24994:24994] CHIP:DMG: { + [1666779708.066507][24994:24994] CHIP:DMG: suppressResponse = false, + [1666779708.066509][24994:24994] CHIP:DMG: timedRequest = false, + [1666779708.066512][24994:24994] CHIP:DMG: InvokeRequests = + [1666779708.066517][24994:24994] CHIP:DMG: [ + [1666779708.066520][24994:24994] CHIP:DMG: CommandDataIB = + [1666779708.066524][24994:24994] CHIP:DMG: { + [1666779708.066527][24994:24994] CHIP:DMG: CommandPathIB = + [1666779708.066532][24994:24994] CHIP:DMG: { + [1666779708.066536][24994:24994] CHIP:DMG: EndpointId = 0x1, + [1666779708.066540][24994:24994] CHIP:DMG: ClusterId = 0x50c, + [1666779708.066545][24994:24994] CHIP:DMG: CommandId = 0x0, + [1666779708.066547][24994:24994] CHIP:DMG: }, + [1666779708.066551][24994:24994] CHIP:DMG: + [1666779708.066553][24994:24994] CHIP:DMG: CommandFields = + [1666779708.066555][24994:24994] CHIP:DMG: { + [1666779708.066557][24994:24994] CHIP:DMG: 0x0 = + [1666779708.066560][24994:24994] CHIP:DMG: { + [1666779708.066566][24994:24994] CHIP:DMG: 0x0 = 123, + [1666779708.066569][24994:24994] CHIP:DMG: 0x1 = "exampleid" (9 chars), + [1666779708.066572][24994:24994] CHIP:DMG: }, + [1666779708.066575][24994:24994] CHIP:DMG: }, + [1666779708.066578][24994:24994] CHIP:DMG: }, + [1666779708.066581][24994:24994] CHIP:DMG: + [1666779708.066583][24994:24994] CHIP:DMG: ], + [1666779708.066586][24994:24994] CHIP:DMG: + [1666779708.066588][24994:24994] CHIP:DMG: InteractionModelRevision = 1 + [1666779708.066590][24994:24994] CHIP:DMG: }, + [1666779708.066602][24994:24994] CHIP:DMG: AccessControl: checking f=2 a=c s=0x000000000001B669 t= c=0x0000_050C e=1 p=o disabled: true - label: "Step 1: DUT sends GetSetupPIN command to TH" diff --git a/src/app/tests/suites/certification/Test_TC_AUDIOOUTPUT_1_8.yaml b/src/app/tests/suites/certification/Test_TC_AUDIOOUTPUT_1_8.yaml index 6493ece836f96e..b00040339a5693 100644 --- a/src/app/tests/suites/certification/Test_TC_AUDIOOUTPUT_1_8.yaml +++ b/src/app/tests/suites/certification/Test_TC_AUDIOOUTPUT_1_8.yaml @@ -48,7 +48,7 @@ tests: response: constraints: type: bitmap32 - hasMasksSet: [0x2] + hasMasksSet: [0x1] - label: "Step 2b: Read the global attribute: FeatureMap" PICS: " !AUDIOOUTPUT.S.F00 " @@ -57,7 +57,7 @@ tests: response: constraints: type: bitmap32 - hasMasksClear: [0x2] + hasMasksClear: [0x1] - label: "Step 3: Read the global attribute: AttributeList" PICS: PICS_EVENT_LIST_ENABLED diff --git a/src/app/tests/suites/certification/Test_TC_BINFO_2_2.yaml b/src/app/tests/suites/certification/Test_TC_BINFO_2_2.yaml index bf8b2bbe5f195b..e6496d9fa5c29d 100644 --- a/src/app/tests/suites/certification/Test_TC_BINFO_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_BINFO_2_2.yaml @@ -139,13 +139,37 @@ tests: minInterval: 30 maxInterval: 100 - - label: "Verify that ShutDown event has priority set as CRITICAL" + - label: + "Shutdown the DUT and Verify that ShutDown event has priority set as + CRITICAL" + verification: | + To verify ShutDown event follow the below commands , Pls use equivalent command on the respective DUT + + + 1. Launch chip-tool into interactive mode with the command + + ./chip-tool interactive start + + 2. run below command in interactive mode shell and Turn down the DUT + basicinformation subscribe-event shut-down 20 100 1 0 + + verify that ShutDown event as priority set has CRITICAL on TH(Chip-tool) + + CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Event 0x0000_0001 + [1653050528.900202][119367:119372] CHIP:TOO: Event number: 5 + [1653050528.900295][119367:119372] CHIP:TOO: Priority: Critical + [1653050528.900386][119367:119372] CHIP:TOO: Timestamp: 289436805 + [1653050528.900630][119367:119372] CHIP:TOO: ShutDown: { + [1653050528.900732][119367:119372] CHIP:TOO: } + [1653050528.900892][119367:119372] CHIP:DMG: Refresh LivenessCheckTime for 28000 milliseconds with SubscriptionId = 0x27408c83 Peer = 01:0000000000000001 cluster: "LogCommands" command: "UserPrompt" PICS: PICS_SKIP_SAMPLE_APP && BINFO.S.E01 arguments: values: - name: "message" - value: "If priority set as CRITICAL enter 'y' for success" + value: + "Enter 'y' after successfully ShutDown DUT & priority set as + CRITICAL" - name: "expectedValue" value: "y" diff --git a/src/app/tests/suites/certification/Test_TC_BRBINFO_2_1.yaml b/src/app/tests/suites/certification/Test_TC_BRBINFO_2_1.yaml index a37f2954b1c75c..8f37c84f6f6811 100644 --- a/src/app/tests/suites/certification/Test_TC_BRBINFO_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_BRBINFO_2_1.yaml @@ -172,7 +172,9 @@ tests: verification: | ./chip-tool bridgeddevicebasicinformation write node-label '"newnode"' 1 3 - Verify response has unsupported write on TH(chip-tool) Log: + Via the TH (chip-tool), verify the SUCCESS response for NodeLabel attribute write function. + + Current sample apps do not have this implementation. However, if the vendor has implemented it, the below response will be displayed. NOTE the quotes: single-quote/double-quote/string/double-quote/single-quote @@ -181,7 +183,7 @@ tests: [1660839701.840505][2444:2449] CHIP:DMG: [1660839701.840578][2444:2449] CHIP:DMG: StatusIB = [1660839701.840661][2444:2449] CHIP:DMG: { - [1660839701.840742][2444:2449] CHIP:DMG: status = 0x88 (UNSUPPORTED_WRITE), + [1660839701.840742][2444:2449] CHIP:DMG: status = 0x00 (SUCCESS), [1660839701.840827][2444:2449] CHIP:DMG: }, [1660839701.840905][2444:2449] CHIP:DMG: [1660839701.840973][2444:2449] CHIP:DMG: }, @@ -199,11 +201,12 @@ tests: verification: | ./chip-tool bridgeddevicebasicinformation read node-label 1 3 - Verify the value of node-label is type of string and contains length between 0 and 32 in TH(chip-tool) Log: - Note: If the write access is implemented then the value of the of the Nodelabel will be changed into "newnode" + Via the TH (chip-tool), verify that the NodeLabel attribute value is changed to newnode. + + Current sample apps do not have this implementation. However, if the vendor has implemented it, the below response will be displayed. [1657696463.081741][15476:15481] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0039 Attribute 0x0000_0005 DataVersion: 2577979325 - [1657696463.081791][15476:15481] CHIP:TOO: NodeLabel: Light 1 + [1657696463.081791][15476:15481] CHIP:TOO: NodeLabel: newnode cluster: "LogCommands" command: "UserPrompt" arguments: diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_1.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_1.yaml index 2dcdf1d54f9ddf..b4d15c1bc8a879 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_1.yaml @@ -25,6 +25,14 @@ config: endpoint: 0 tests: + - label: "Preconditions" + verification: | + 1. DUT supports CNET.S.F00(WI) + 2. DUT has a Network Commissioning cluster on endpoint PIXIT.CNET.ENDPOINT_WIFI with FeatureMap attribute of 1 + 3. DUT is commissioned on PIXIT.CNET.WIFI_1ST_ACCESSPOINT_SSID + 4. TH can communicate with the DUT + disabled: true + - label: "Step 1: Factory reset the DUT" verification: | diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_10.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_10.yaml index e0adf7ec94ea14..b9d5fed77a9909 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_10.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_10.yaml @@ -26,15 +26,12 @@ config: endpoint: 0 tests: - - label: "Precondition" + - label: "Preconditions" verification: | - Commission TH and DUT on Thread setup - - The cluster Identifier 49 (0x0031) is present in the ServerList attribute - - The FeatureMap attribute value is 2 - - MaxNetworks attribute value is at least 1 which is saved as 'MaxNetworksValue' for future use + 1. DUT supports CNET.S.F01(TH) + 2. DUT has a Network Commissioning cluster on endpoint PIXIT.CNET.ENDPOINT_THREAD with FeatureMap attribute of 2 + 3. DUT is commissioned on PIXIT.CNET.THREAD_1ST_OPERATIONALDATASET + 4. TH can communicate with the DUT on PIXIT.CNET.THREAD_1ST_OPERATIONALDATASET disabled: true - label: @@ -92,7 +89,7 @@ tests: Below is an example: - ./chip-tool networkcommissioning remove-network hex:1850171990782922 62 0 + ./chip-tool networkcommissioning remove-network hex:1850171990782922 62 0 --Breadcrumb 1 Via the TH (chip-tool), Verify the NetworkConfigResponse that contains Networking Status value as 0 (success). @@ -230,7 +227,7 @@ tests: disabled: true - label: - "Step 11: TH sends ArmFailSafe command to the DUT with + "Step 13: TH sends ArmFailSafe command to the DUT with ExpiryLengthSeconds set to 900" verification: | ./chip-tool generalcommissioning arm-fail-safe 900 1 1 0 @@ -248,7 +245,7 @@ tests: disabled: true - label: - "Step 12: TH sends RemoveNetwork Command to the DUT with NetworkID + "Step 14: TH sends RemoveNetwork Command to the DUT with NetworkID field set to extended PAN ID of PIXIT.CNET.THREAD_1ST_OPERATIONALDATASET and Breadcrumb field set to 1" PICS: CNET.S.C04.Rsp && CNET.S.C05.Tx @@ -271,7 +268,7 @@ tests: [1657791030.762608][5336:5341] CHIP:EM: Sending Standalone Ack for MessageCounter:266194732 on exchange 7795i disabled: true - - label: "Step 13: TH sends the CommissioningComplete command to the DUT" + - label: "Step 15: TH sends the CommissioningComplete command to the DUT" PICS: CNET.S.C04.Rsp verification: | ./chip-tool generalcommissioning commissioning-complete 1 0 @@ -289,7 +286,7 @@ tests: disabled: true - label: - "Step 14: TH sends ArmFailSafe command to the DUT with + "Step 16: TH sends ArmFailSafe command to the DUT with ExpiryLengthSeconds set to 0 to ensure the CommissioningComplete call properly persisted the failsafe context. This call should have no effect if Commissioning Complete call is handled correctly" @@ -309,7 +306,7 @@ tests: [1657626274.219632][2802:2807] CHIP:EM: Sending Standalone Ack for MessageCounter:52231112 on exchange 13160i disabled: true - - label: "Step 15: TH reads Networks attribute from the DUT" + - label: "Step 17: TH reads Networks attribute from the DUT" PICS: CNET.S.A0001 verification: | ./chip-tool networkcommissioning read networks 1 0 diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_11.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_11.yaml index 2f32c50b2622de..69e25476c127e1 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_11.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_11.yaml @@ -26,59 +26,17 @@ config: endpoint: 0 tests: - - label: "Commission TH and DUT over BLE to setup the Wi-Fi" + - label: "Preconditions" verification: | - All the below commands are to check the Pre-Condition note mentioned in D column. + 1. DUT supports CNET.S.F00(WI) + 2. DUT has a Network Commissioning cluster on endpoint PIXIT.CNET.ENDPOINT_WIFI with FeatureMap attribute of 1 + 3. DUT is commissioned on PIXIT.CNET.WIFI_1ST_ACCESSPOINT_SSID + 4. TH can connect to two valid Wi-Fi access points: PIXIT.CNET.WIFI_1ST_ACCESSPOINT_SSID and PIXIT.CNET.WIFI_2ND_ACCESSPOINT_SSID disabled: true - - label: - "The cluster Identifier 49 (0x0031) is present in the ServerList - attribute" - verification: | - ./chip-tool descriptor read server-list 1 0 - - Verify the "descriptor" on the TH(Chip-tool) log - - [1653478221.662178][27661:27666] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0001 DataVersion: 1626448966 - [1653478221.662314][27661:27666] CHIP:TOO: server list: 26 entries - [1653478221.662350][27661:27666] CHIP:TOO: [1]: 3 - [1653478221.662376][27661:27666] CHIP:TOO: [2]: 4 - [1653478221.662401][27661:27666] CHIP:TOO: [3]: 29 - [1653478221.662426][27661:27666] CHIP:TOO: [4]: 30 - [1653478221.662450][27661:27666] CHIP:TOO: [5]: 31 - [1653478221.662474][27661:27666] CHIP:TOO: [6]: 40 - [1653478221.662499][27661:27666] CHIP:TOO: [7]: 42 - [1653478221.662523][27661:27666] CHIP:TOO: [8]: 43 - [1653478221.662548][27661:27666] CHIP:TOO: [9]: 44 - [1653478221.662572][27661:27666] CHIP:TOO: [10]: 45 - [1653478221.662596][27661:27666] CHIP:TOO: [11]: 46 - [1653478221.662621][27661:27666] CHIP:TOO: [12]: 47 - [1653478221.662645][27661:27666] CHIP:TOO: [13]: 48 - [1653478221.662669][27661:27666] CHIP:TOO: [14]: 49 - [1653478221.662693][27661:27666] CHIP:TOO: [15]: 50 - [1653478221.662717][27661:27666] CHIP:TOO: [16]: 51 - [1653478221.662742][27661:27666] CHIP:TOO: [17]: 52 - [1653478221.662766][27661:27666] CHIP:TOO: [18]: 53 - [1653478221.662791][27661:27666] CHIP:TOO: [19]: 54 - [1653478221.662815][27661:27666] CHIP:TOO: [20]: 55 - [1653478221.662839][27661:27666] CHIP:TOO: [21]: 60 - [1653478221.662863][27661:27666] CHIP:TOO: [22]: 62 - [1653478221.662888][27661:27666] CHIP:TOO: [23]: 63 - [1653478221.662912][27661:27666] CHIP:TOO: [24]: 64 - [1653478221.662937][27661:27666] CHIP:TOO: [25]: 65 - [1653478221.662962][27661:27666] CHIP:TOO: [26]: 1029 - disabled: true - - - label: "The FeatureMap attribute value is 1" + - label: "Commission TH and DUT over BLE to setup the Wi-Fi" verification: | - ./chip-tool networkcommissioning read feature-map 1 0 - - Verify the "feature-map" on the TH(Chip-tool) log - [1653478255.044168][27668:27673] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_FFFC DataVersion: 3424382863 - [1653478255.044240][27668:27673] CHIP:TOO: FeatureMap: 1 - [1653478255.044352][27668:27673] CHIP:EM: Sending Standalone Ack for MessageCounter:8977728 on exchange 59777i - [1653478255.044428][27668:27673] CHIP:IN: Prepared secure message 0xffffa77ed958 to 0x0000000000000001 (1) of type 0x10 and protocolId (0, 0) on exchange 5 disabled: true - label: diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_12.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_12.yaml index e5a47b29eaff8e..8180610da3e8ec 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_12.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_12.yaml @@ -26,19 +26,16 @@ config: endpoint: 0 tests: - - label: "Commission TH and DUT on Thread setup" - verification: | - - disabled: true - - - label: - "The cluster Identifier 49 (0x0031) is present in the ServerList - attribute" + - label: "Preconditions" verification: | - + 1. DUT supports CNET.S.F01(TH) + 2. DUT has a Network Commissioning cluster on endpoint PIXIT.CNET.ENDPOINT_THREAD with FeatureMap attribute of 2 + 3. TH has can communicate to two valid thread PANs: PIXIT.CNET.THREAD_1ST_OPERATIONALDATASET and PIXIT.CNET.THREAD_2ND_OPERATIONALDATASET + 4. TH can connect to two valid Wi-Fi access points: PIXIT.CNET.WIFI_1ST_ACCESSPOINT_SSID and PIXIT.CNET.WIFI_2ND_ACCESSPOINT_SSID + 5. XPANID of PIXIT.CNET.THREAD_1ST_OPERATIONALDATASET is saved as th_xpan and the XPANID of PIXIT.CNET.THREAD_2ND_OPERATIONALDATASET is saved as th_xpan1 disabled: true - - label: "The FeatureMap attribute value is 2" + - label: "Commission TH and DUT on Thread setup" verification: | disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_13.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_13.yaml index cb22eeb6278225..d2dbeb418f9f25 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_13.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_13.yaml @@ -26,71 +26,17 @@ config: endpoint: 0 tests: - - label: "Commission TH and DUT over BLE to setup the Wi-Fi" - verification: | - - disabled: true - - - label: - "The cluster Identifier 49 (0x0031) is present in the ServerList - attribute" - verification: | - ./chip-tool descriptor read server-list 1 0 - - Verify the "server-list" on the TH(Chip-tool) log - - [1653474860.462391][29901:29906] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0001 DataVersion: 1237231415 - [1653474860.462487][29901:29906] CHIP:TOO: server list: 25 entries - [1653474860.462524][29901:29906] CHIP:TOO: [1]: 3 - [1653474860.462549][29901:29906] CHIP:TOO: [2]: 4 - [1653474860.462574][29901:29906] CHIP:TOO: [3]: 29 - [1653474860.462598][29901:29906] CHIP:TOO: [4]: 30 - [1653474860.462622][29901:29906] CHIP:TOO: [5]: 31 - [1653474860.462646][29901:29906] CHIP:TOO: [6]: 40 - [1653474860.462670][29901:29906] CHIP:TOO: [7]: 42 - [1653474860.462693][29901:29906] CHIP:TOO: [8]: 43 - [1653474860.462717][29901:29906] CHIP:TOO: [9]: 44 - [1653474860.462741][29901:29906] CHIP:TOO: [10]: 45 - [1653474860.462765][29901:29906] CHIP:TOO: [11]: 46 - [1653474860.462788][29901:29906] CHIP:TOO: [12]: 48 - [1653474860.462812][29901:29906] CHIP:TOO: [13]: 49 - [1653474860.462836][29901:29906] CHIP:TOO: [14]: 50 - [1653474860.462859][29901:29906] CHIP:TOO: [15]: 51 - [1653474860.462883][29901:29906] CHIP:TOO: [16]: 52 - [1653474860.462906][29901:29906] CHIP:TOO: [17]: 53 - [1653474860.462930][29901:29906] CHIP:TOO: [18]: 54 - [1653474860.462954][29901:29906] CHIP:TOO: [19]: 55 - [1653474860.462977][29901:29906] CHIP:TOO: [20]: 60 - [1653474860.463001][29901:29906] CHIP:TOO: [21]: 62 - [1653474860.463024][29901:29906] CHIP:TOO: [22]: 63 - [1653474860.463048][29901:29906] CHIP:TOO: [23]: 64 - [1653474860.463071][29901:29906] CHIP:TOO: [24]: 65 - [1653474860.463095][29901:29906] CHIP:TOO: [25]: 1029 - [1653474860.463296][29901:29906] CHIP:EM: Sending Standalone Ack for MessageCounter:10703464 on exchange 2435i - disabled: true - - - label: "The FeatureMap attribute value is 1" + - label: "Preconditions" verification: | - ./chip-tool networkcommissioning read feature-map 1 0 - - Verify the "feature-map" on the TH(Chip-tool) log - - [1653474932.055513][29920:29925] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_FFFC DataVersion: 1600858167 - [1653474932.055578][29920:29925] CHIP:TOO: FeatureMap: 1 - [1653474932.055675][29920:29925] CHIP:EM: Sending Standalone Ack for MessageCounter:1494059 on exchange 5482i + 1. Commission TH and DUT over BLE to setup the Wi-Fi on PIXIT.CNET.WIFI_1ST_ACCESSPOINT_SSID + 2. The cluster Identifier 49 (0x0031) is present in the ServerList attribute + 3. The FeatureMap attribute value is 1 + 4. MaxNetworks attribute value is at least 2 which is saved as 'MaxNetworksValue' for future use disabled: true - - label: - "MaxNetworks attribute value is at least 4 which is saved as - MaxNetworksValue for future use" + - label: "Commission TH and DUT over BLE to setup the Wi-Fi" verification: | - The test case is not verifiable. As MaxNetworks value is 1 but expected is 4 - - ./chip-tool networkcommissioning read max-networks 1 0 - [1653476960.303444][30164:30169] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0000 DataVersion: 1600858167 - [1653476960.303531][30164:30169] CHIP:TOO: MaxNetworks: 1 - [1653476960.303641][30164:30169] CHIP:EM: Sending Standalone Ack for MessageCounter:2083922 on exchange 45120i disabled: true - label: diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_14.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_14.yaml index 1e9edd3b231a91..3ec06b2aa609bc 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_14.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_14.yaml @@ -28,69 +28,10 @@ config: tests: - label: "Preconditions" verification: | - Commission TH and DUT on Thread setup - disabled: true - - - label: - "Preconditions: The cluster Identifier 49 (0x0031) is present in the - ServerList attribute" - verification: | - ./chip-tool descriptor read server-list 1 0 - - Verify the "server-list" on the TH(Chip-tool) log - - [1653474860.462391][29901:29906] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0001 DataVersion: 1237231415 - [1653474860.462487][29901:29906] CHIP:TOO: server list: 25 entries - [1653474860.462524][29901:29906] CHIP:TOO: [1]: 3 - [1653474860.462549][29901:29906] CHIP:TOO: [2]: 4 - [1653474860.462574][29901:29906] CHIP:TOO: [3]: 29 - [1653474860.462598][29901:29906] CHIP:TOO: [4]: 30 - [1653474860.462622][29901:29906] CHIP:TOO: [5]: 31 - [1653474860.462646][29901:29906] CHIP:TOO: [6]: 40 - [1653474860.462670][29901:29906] CHIP:TOO: [7]: 42 - [1653474860.462693][29901:29906] CHIP:TOO: [8]: 43 - [1653474860.462717][29901:29906] CHIP:TOO: [9]: 44 - [1653474860.462741][29901:29906] CHIP:TOO: [10]: 45 - [1653474860.462765][29901:29906] CHIP:TOO: [11]: 46 - [1653474860.462788][29901:29906] CHIP:TOO: [12]: 48 - [1653474860.462812][29901:29906] CHIP:TOO: [13]: 49 - [1653474860.462836][29901:29906] CHIP:TOO: [14]: 50 - [1653474860.462859][29901:29906] CHIP:TOO: [15]: 51 - [1653474860.462883][29901:29906] CHIP:TOO: [16]: 52 - [1653474860.462906][29901:29906] CHIP:TOO: [17]: 53 - [1653474860.462930][29901:29906] CHIP:TOO: [18]: 54 - [1653474860.462954][29901:29906] CHIP:TOO: [19]: 55 - [1653474860.462977][29901:29906] CHIP:TOO: [20]: 60 - [1653474860.463001][29901:29906] CHIP:TOO: [21]: 62 - [1653474860.463024][29901:29906] CHIP:TOO: [22]: 63 - [1653474860.463048][29901:29906] CHIP:TOO: [23]: 64 - [1653474860.463071][29901:29906] CHIP:TOO: [24]: 65 - [1653474860.463095][29901:29906] CHIP:TOO: [25]: 1029 - [1653474860.463296][29901:29906] CHIP:EM: Sending Standalone Ack for MessageCounter:10703464 on exchange 2435i - disabled: true - - - label: "Preconditions: The FeatureMap attribute value is 2" - verification: | - ./chip-tool networkcommissioning read feature-map 1 0 - - Verify the "feature-map" on the TH(Chip-tool) log - - [1653474932.055513][29920:29925] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_FFFC DataVersion: 1600858167 - [1653474932.055578][29920:29925] CHIP:TOO: FeatureMap: 1 - [1653474932.055675][29920:29925] CHIP:EM: Sending Standalone Ack for MessageCounter:1494059 on exchange 5482i - disabled: true - - - label: - "Preconditions: MaxNetworks attribute value is at least 4 which is - saved as 'MaxNetworksValue' for future use" - verification: | - The test case is not verifiable. As MaxNetworks value is 1 but expected is 4 - - ./chip-tool networkcommissioning read max-networks 1 0 - - [1653476960.303444][30164:30169] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0000 DataVersion: 1600858167 - [1653476960.303531][30164:30169] CHIP:TOO: MaxNetworks: 1 - [1653476960.303641][30164:30169] CHIP:EM: Sending Standalone Ack for MessageCounter:2083922 on exchange 45120i + 1. Commission TH and DUT on Thread setup on PIXIT.CNET.THREAD_1ST_OPERATIONALDATASET + 2. The cluster Identifier 49 (0x0031) is present in the ServerList attribute + 3. The FeatureMap attribute value is 2 + 4. MaxNetworks attribute value is at least 2 which is saved as 'MaxNetworksValue' for future use disabled: true - label: diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_15.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_15.yaml index b7c35be94be112..df0a9776df37f5 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_15.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_15.yaml @@ -28,11 +28,12 @@ config: tests: - label: "Preconditions" verification: | - 1. Factory Reset the DUT - 2. Commission TH and DUT to setup the Thread - 3. The cluster Identifier 49 (0x0031) is present in the ServerList attribute - 4. The FeatureMap attribute value is 1 - 5. MaxNetworks attribute value is at least 1 which is saved as MaxNetworksValue for future use + 1. DUT supports CNET.S.F00(WI) + 2. DUT has a Network Commissioning cluster on endpoint PIXIT.CNET.ENDPOINT_WIFI with FeatureMap attribute of 1 + 3. DUT is factory reset + 4. DUT is commissioned on PIXIT.CNET.WIFI_1ST_ACCESSPOINT_SSID + 5. TH can communicate with the DUT + 6. DUT MaxNetworks attribute value is at least 1 and is saved as 'MaxNetworksValue' for future use disabled: true - label: @@ -63,7 +64,7 @@ tests: Below is an example: - ./chip-tool networkcommissioning remove-network hex:47524C50726976617465 1 0 + ./chip-tool networkcommissioning remove-network hex:47524C50726976617465 1 0 --Breadcrumb 1 Via the TH (chip-tool), Verify the NetworkConfigResponse that contains Networking Status value as 3 (NetworkIDNotFound). @@ -86,7 +87,7 @@ tests: Below is an example: - ./chip-tool networkcommissioning connect-network hex:47524C50726976617465 1 0 + ./chip-tool networkcommissioning connect-network hex:47524C50726976617465 1 0 --Breadcrumb 1 Via the TH (chip-tool), Verify the ConnectNetworkResponse that contains Networking Status value as 3 (NetworkIDNotFound). diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_16.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_16.yaml index 36bff6e14ec43a..102e7f809ff4fe 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_16.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_16.yaml @@ -28,11 +28,12 @@ config: tests: - label: "Preconditions" verification: | - 1. Factory Reset the DUT - 2. Commission TH and DUT to setup the Thread - 3. The cluster Identifier 49 (0x0031) is present in the ServerList attribute - 4. The FeatureMap attribute value is 2 - 5. MaxNetworks attribute value is at least 1 which is saved as MaxNetworksValue for future use + 1. DUT supports CNET.S.F01(TH) + 2. DUT has a Network Commissioning cluster on endpoint PIXIT.CNET.ENDPOINT_THREAD with FeatureMap attribute of 2 + 3. DUT is factory reset + 4. DUT is commissioned on PIXIT.CNET.THREAD_1ST_OPERATIONALDATASET + 5. TH can communicate with the DUT on PIXIT.CNET.THREAD_1ST_OPERATIONALDATASET + 6. DUT MaxNetworks attribute value is at least 1 and is saved as 'MaxNetworksValue' for future use disabled: true - label: @@ -64,7 +65,7 @@ tests: Below is an example: - ./chip-tool networkcommissioning remove-network 2111111122222222 54 0 + ./chip-tool networkcommissioning remove-network 2111111122222222 54 0 --Breadcrumb 1 Via the TH (chip-tool), Verify the NetworkConfigResponse that contains Networking Status value as 3 (NetworkIDNotFound). @@ -92,7 +93,7 @@ tests: Below is an example: - ./chip-tool networkcommissioning connect-network 47524C50726976617465 54 0 + ./chip-tool networkcommissioning connect-network 47524C50726976617465 54 0 --Breadcrumb 1 Via the TH (chip-tool), Verify the ConnectNetworkResponse that contains Networking Status value as 3 (NetworkIDNotFound). diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_2.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_2.yaml index c0b1f8c1426294..2fa7fd06383799 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_2.yaml @@ -26,6 +26,14 @@ config: endpoint: 0 tests: + - label: "Preconditions" + verification: | + 1. DUT supports CNET.S.F01(TH) + 2. DUT has a Network Commissioning cluster on endpoint PIXIT.CNET.ENDPOINT_THREAD with FeatureMap attribute of 2 + 3. DUT is commissioned on PIXIT.CNET.THREAD_1ST_OPERATIONALDATASET + 4. TH can communicate with the DUT on PIXIT.CNET.THREAD_1ST_OPERATIONALDATASET + disabled: true + - label: "Step 1: Factory reset the DUT" verification: | diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_20.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_20.yaml index fdf638a8642b67..1446d5ccb4bb43 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_20.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_20.yaml @@ -25,6 +25,12 @@ config: endpoint: 0 tests: + - label: "Preconditions" + verification: | + 1. DUT supports CNET.C.F00(WI) + 2. TH has a Network Commissioning cluster on endpoint PIXIT.CNET.ENDPOINT_WIFI with FeatureMap attribute of 1 + disabled: true + - label: "Note" verification: | Chip-tool command used below are an example to verify the DUT as client test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command. diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_21.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_21.yaml index b7760d99147f37..617fc26a394c5d 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_21.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_21.yaml @@ -26,6 +26,12 @@ config: endpoint: 0 tests: + - label: "Preconditions" + verification: | + 1. DUT supports CNET.C.F01(TH) + 2. TH has a Network Commissioning cluster on endpoint PIXIT.CNET.ENDPOINT_THREAD with FeatureMap attribute of 2 + disabled: true + - label: "Note" verification: | Chip-tool command used below are an example to verify the DUT as client test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command. diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_22.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_22.yaml index 9736cb5e626781..410a4ca2b56751 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_22.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_22.yaml @@ -32,7 +32,6 @@ tests: 2. DUT has a Network Commissioning cluster on endpoint PIXIT.CNET.ENDPOINT_THREAD with FeatureMap attribute of 2 3. DUT is commissioned on PIXIT.CNET.THREAD_1ST_OPERATIONALDATASET 4. TH can communicate with the DUT on PIXIT.CNET.THREAD_1ST_OPERATIONALDATASET - disabled: true - label: diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_3.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_3.yaml index 0f7d9b22494073..e65428f1878632 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_3.yaml @@ -25,6 +25,14 @@ config: endpoint: 0 tests: + - label: "Preconditions" + verification: | + 1. DUT supports CNET.S.F02(ET) + 2. DUT has a Network Commissioning cluster on endpoint PIXIT.CNET.ENDPOINT_ETHERNET with FeatureMap attribute of 4 + 3. DUT has a valid Ethernet connection + 4. TH can communicate with the DUT + disabled: true + - label: "Step 1: Factory reset the DUT" verification: | @@ -130,7 +138,13 @@ tests: - label: "Step 8: TH reads InterfaceEnabled attribute from the DUT" PICS: CNET.S.A0004 verification: | + ./chip-tool networkcommissioning read interface-enabled 1 0 + + Via the TH (chip-tool), Verify the InterfaceEnabled attribute that contains bool value as True. + [1653473893.275901][29834:29839] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0004 DataVersion: 1600858167 + [1653473893.275964][29834:29839] CHIP:TOO: InterfaceEnabled: TRUE + [1653473893.276084][29834:29839] CHIP:EM: Sending Standalone Ack for MessageCounter:13157245 on exchange 55578i disabled: true - label: "Step 9: TH reads LastNetworkingStatus attribute from the DUT" diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_4.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_4.yaml index 1e07d5dd88ee02..26493ea10e7c1c 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_4.yaml @@ -26,58 +26,17 @@ config: endpoint: 0 tests: - - label: "Commission TH and DUT over BLE to setup the Wi-Fi" - verification: | - - disabled: true - - - label: - "The cluster Identifier 49 (0x0031) in present in the ServerList - attribute" + - label: "Preconditions" verification: | - ./chip-tool descriptor read server-list 1 0 - - Verify tthe "descriptor" on the TH(Chip-tool) Log: - - [1653474860.462391][29901:29906] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0001 DataVersion: 1237231415 - [1653474860.462487][29901:29906] CHIP:TOO: server list: 25 entries - [1653474860.462524][29901:29906] CHIP:TOO: [1]: 3 - [1653474860.462549][29901:29906] CHIP:TOO: [2]: 4 - [1653474860.462574][29901:29906] CHIP:TOO: [3]: 29 - [1653474860.462598][29901:29906] CHIP:TOO: [4]: 30 - [1653474860.462622][29901:29906] CHIP:TOO: [5]: 31 - [1653474860.462646][29901:29906] CHIP:TOO: [6]: 40 - [1653474860.462670][29901:29906] CHIP:TOO: [7]: 42 - [1653474860.462693][29901:29906] CHIP:TOO: [8]: 43 - [1653474860.462717][29901:29906] CHIP:TOO: [9]: 44 - [1653474860.462741][29901:29906] CHIP:TOO: [10]: 45 - [1653474860.462765][29901:29906] CHIP:TOO: [11]: 46 - [1653474860.462788][29901:29906] CHIP:TOO: [12]: 48 - [1653474860.462812][29901:29906] CHIP:TOO: [13]: 49 - [1653474860.462836][29901:29906] CHIP:TOO: [14]: 50 - [1653474860.462859][29901:29906] CHIP:TOO: [15]: 51 - [1653474860.462883][29901:29906] CHIP:TOO: [16]: 52 - [1653474860.462906][29901:29906] CHIP:TOO: [17]: 53 - [1653474860.462930][29901:29906] CHIP:TOO: [18]: 54 - [1653474860.462954][29901:29906] CHIP:TOO: [19]: 55 - [1653474860.462977][29901:29906] CHIP:TOO: [20]: 60 - [1653474860.463001][29901:29906] CHIP:TOO: [21]: 62 - [1653474860.463024][29901:29906] CHIP:TOO: [22]: 63 - [1653474860.463048][29901:29906] CHIP:TOO: [23]: 64 - [1653474860.463071][29901:29906] CHIP:TOO: [24]: 65 - [1653474860.463095][29901:29906] CHIP:TOO: [25]: 1029 - [1653474860.463296][29901:29906] CHIP:EM: Sending Standalone Ack for MessageCounter:10703464 on exchange 2435i + 1. DUT supports CNET.S.F00(WI) + 2. DUT has a Network Commissioning cluster on endpoint PIXIT.CNET.ENDPOINT_WIFI with FeatureMap attribute of 1 + 3. DUT is commissioned on PIXIT.CNET.WIFI_1ST_ACCESSPOINT_SSID + 4. TH can communicate with the DUT disabled: true - - label: "The FeatureMap attribute value is 1" + - label: "Commission TH and DUT over BLE to setup the Wi-Fi" verification: | - ./chip-tool networkcommissioning read feature-map 1 0 - - Verify the "feature-map" on the TH(Chip-tool) Log: - [1653474932.055513][29920:29925] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_FFFC DataVersion: 1600858167 - [1653474932.055578][29920:29925] CHIP:TOO: FeatureMap: 1 - [1653474932.055675][29920:29925] CHIP:EM: Sending Standalone Ack for MessageCounter:1494059 on exchange 5482i disabled: true - label: diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_5.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_5.yaml index 3f1a7cedf164f6..d50e856b4c2501 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_5.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_5.yaml @@ -28,20 +28,10 @@ config: tests: - label: "Preconditions" verification: | - 1.Commission TH and DUT over BLE to setup the Wi-Fi - - 2.The cluster Identifier 49 (0x0031) is present in the ServerList - attribute - - 3.The FeatureMap attribute value is 1 - - ./chip-tool networkcommissioning read feature-map 1 0 - - Via the TH (chip-tool), verify that FeatureMap attribute value as 1 for WiFiNetworkInterface. - - [1653474932.055513][29920:29925] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_FFFC DataVersion: 1600858167 - [1653474932.055578][29920:29925] CHIP:TOO: FeatureMap: 1 - [1653474932.055675][29920:29925] CHIP:EM: Sending Standalone Ack for MessageCounter:1494059 on exchange 5482i" + 1. DUT supports CNET.S.F00(WI) + 2. DUT has a Network Commissioning cluster on endpoint PIXIT.CNET.ENDPOINT_WIFI with FeatureMap attribute of 1 + 3. DUT is commissioned on PIXIT.CNET.WIFI_1ST_ACCESSPOINT_SSID + 4. TH can communicate with the DUT disabled: true - label: @@ -55,7 +45,7 @@ tests: Below is an example: - ./chip-tool networkcommissioning add-or-update-wi-fi-network hex:47524C50726976617465 grlprivatewifi092010 1 0 + ./chip-tool networkcommissioning add-or-update-wi-fi-network hex:47524C50726976617465 grlprivatewifi092010 1 0 --Breadcrumb 1 Via the TH (chip-tool), verify the FAILSAFE_REQUIRED response for sending the AddOrUpdateWiFiNetwork command. @@ -74,7 +64,7 @@ tests: Below is an example: - ./chip-tool networkcommissioning remove-network hex:47524C50726976617465 1 0 + ./chip-tool networkcommissioning remove-network hex:47524C50726976617465 1 0 --Breadcrumb 1 Via the TH (chip-tool), verify the FAILSAFE_REQUIRED response for sending the RemoveNetwork command. @@ -87,13 +77,13 @@ tests: "Step 3: TH sends ConnectNetwork command to the DUT with NetworkID field set to PIXIT.CNET.WIFI_1ST_ACCE SSPOINT_SSID and Breadcrumb field set to 1" - PICS: CNET.S.C02.Rsp + PICS: CNET.S.C06.Rsp verification: | ./chip-tool networkcommissioning connect hex: 1 0 Below is an example: - ./chip-tool networkcommissioning connect-network hex:47524C50726976617465 1 0 + ./chip-tool networkcommissioning connect-network hex:47524C50726976617465 1 0 --Breadcrumb 1 Via the TH (chip-tool), verify the FAILSAFE_REQUIRED response for sending the ConnectNetwork command. diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_6.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_6.yaml index 5e45f04efa7a9b..e9f1368e4c79cb 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_6.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_6.yaml @@ -26,19 +26,15 @@ config: endpoint: 0 tests: - - label: "Commission TH and DUT on Thread setup" - verification: | - - disabled: true - - - label: - "The cluster Identifier 49 (0x0031) is present in the ServerList - attribute" + - label: "Preconditions" verification: | - + 1. DUT supports CNET.S.F01(TH) + 2. DUT has a Network Commissioning cluster on endpoint PIXIT.CNET.ENDPOINT_THREAD with FeatureMap attribute of 2 + 3. DUT is commissioned on PIXIT.CNET.THREAD_1ST_OPERATIONALDATASET + 4. TH can communicate with the DUT on PIXIT.CNET.THREAD_1ST_OPERATIONALDATASET disabled: true - - label: "The FeatureMap attribute value is 2" + - label: "Commission TH and DUT on Thread setup" verification: | disabled: true @@ -53,7 +49,7 @@ tests: Below is an example: - ./chip-tool networkcommissioning add-or-update-thread-network hex:1011101122222229 51 0 + ./chip-tool networkcommissioning add-or-update-thread-network hex:1011101122222229 51 0 --Breadcrumb 1 Via the TH (chip-tool), verify the FAILSAFE_REQUIRED response for sending the AddOrUpdateThreadNetwork command. @@ -72,7 +68,7 @@ tests: Below is an example: - ./chip-tool networkcommissioning remove-network hex:1011101122222229 51 0 + ./chip-tool networkcommissioning remove-network hex:1011101122222229 51 0 --Breadcrumb 1 Via the TH (chip-tool), verify the FAILSAFE_REQUIRED response for sending the RemoveNetwork command. @@ -91,7 +87,7 @@ tests: Below is an example: - ./chip-tool networkcommissioning connect-network hex:1011101122222229 51 0 + ./chip-tool networkcommissioning connect-network hex:1011101122222229 51 0 --Breadcrumb 1 Via the TH (chip-tool), verify the FAILSAFE_REQUIRED response for sending the ConnectNetwork command. diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_9.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_9.yaml index 8a4565b3f310dd..5963e9bbae6801 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_9.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_9.yaml @@ -26,86 +26,17 @@ config: endpoint: 0 tests: - - label: "Commission TH and DUT over BLE to setup the Wi-Fi" - verification: | - - disabled: true - - - label: - "The cluster Identifier 49 (0x0031) is present in the ServerList - attribute" + - label: "Preconditions" verification: | - ./chip-tool descriptor read server-list 1 0 - - Via the TH (chip-tool), verify that the server list has value as 49. - - [1653474860.462391][29901:29906] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0001 DataVersion: 1237231415 - [1653474860.462487][29901:29906] CHIP:TOO: server list: 25 entries - [1653474860.462524][29901:29906] CHIP:TOO: [1]: 3 - [1653474860.462549][29901:29906] CHIP:TOO: [2]: 4 - [1653474860.462574][29901:29906] CHIP:TOO: [3]: 29 - [1653474860.462598][29901:29906] CHIP:TOO: [4]: 30 - [1653474860.462622][29901:29906] CHIP:TOO: [5]: 31 - [1653474860.462646][29901:29906] CHIP:TOO: [6]: 40 - [1653474860.462670][29901:29906] CHIP:TOO: [7]: 42 - [1653474860.462693][29901:29906] CHIP:TOO: [8]: 43 - [1653474860.462717][29901:29906] CHIP:TOO: [9]: 44 - [1653474860.462741][29901:29906] CHIP:TOO: [10]: 45 - [1653474860.462765][29901:29906] CHIP:TOO: [11]: 46 - [1653474860.462788][29901:29906] CHIP:TOO: [12]: 48 - [1653474860.462812][29901:29906] CHIP:TOO: [13]: 49 - [1653474860.462836][29901:29906] CHIP:TOO: [14]: 50 - [1653474860.462859][29901:29906] CHIP:TOO: [15]: 51 - [1653474860.462883][29901:29906] CHIP:TOO: [16]: 52 - [1653474860.462906][29901:29906] CHIP:TOO: [17]: 53 - [1653474860.462930][29901:29906] CHIP:TOO: [18]: 54 - [1653474860.462954][29901:29906] CHIP:TOO: [19]: 55 - [1653474860.462977][29901:29906] CHIP:TOO: [20]: 60 - [1653474860.463001][29901:29906] CHIP:TOO: [21]: 62 - [1653474860.463024][29901:29906] CHIP:TOO: [22]: 63 - [1653474860.463048][29901:29906] CHIP:TOO: [23]: 64 - [1653474860.463071][29901:29906] CHIP:TOO: [24]: 65 - [1653474860.463095][29901:29906] CHIP:TOO: [25]: 1029 - [1653474860.463296][29901:29906] CHIP:EM: Sending Standalone Ack for MessageCounter:10703464 on exchange 2435i - disabled: true - - - label: "The FeatureMap attribute value is 1" - verification: | - ./chip-tool networkcommissioning read feature-map 1 0 - - Via the TH (chip-tool), verify that FeatureMap attribute value as 1 for WiFi NetworkInterface. - - [1653474932.055513][29920:29925] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_FFFC DataVersion: 1600858167 - [1653474932.055578][29920:29925] CHIP:TOO: FeatureMap: 1 - [1653474932.055675][29920:29925] CHIP:EM: Sending Standalone Ack for MessageCounter:1494059 on exchange 5482i + 1. DUT supports CNET.S.F00(WI) + 2. DUT has a Network Commissioning cluster on endpoint PIXIT.CNET.ENDPOINT_WIFI with FeatureMap attribute of 1 + 3. DUT is commissioned on PIXIT.CNET.WIFI_1ST_ACCESSPOINT_SSID + 4. TH can communicate with the DUT disabled: true - - label: "The Networks attribute value is 1 entries" - verification: | - ./chip-tool networkcommissioning read networks 1 0 - - Verify the "networks" on the TH(Chip-tool) log - - [1653478044.910989][30351:30356] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0001 DataVersion: 1600858167 - [1653478044.911109][30351:30356] CHIP:TOO: Networks: 1 entries - [1653478044.911192][30351:30356] CHIP:TOO: [1]: { - [1653478044.911238][30351:30356] CHIP:TOO: NetworkID: 47524C50726976617465 - [1653478044.911280][30351:30356] CHIP:TOO: Connected: TRUE - [1653478044.911322][30351:30356] CHIP:TOO: } - [1653478044.911474][30351:30356] CHIP:EM: Sending Standalone Ack for MessageCounter:3575760 on exchange 51774i - disabled: true - - - label: - "MaxNetworks attribute value is at least 1 which is saved as - MaxNetworksValue for future use" + - label: "Commission TH and DUT over BLE to setup the Wi-Fi" verification: | - ./chip-tool networkcommissioning read max-networks 1 0 - Via the TH (chip-tool), Verify the MaxNetworks attribute that contains value in the range of 1 to 255. - - [1653476960.303444][30164:30169] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0000 DataVersion: 1600858167 - [1653476960.303531][30164:30169] CHIP:TOO: MaxNetworks: 1 - [1653476960.303641][30164:30169] CHIP:EM: Sending Standalone Ack for MessageCounter:2083922 on exchange 45120i disabled: true - label: @@ -168,7 +99,7 @@ tests: Below is an example: - ./chip-tool networkcommissioning remove-network hex:47524C50726976617465 1 0 + ./chip-tool networkcommissioning remove-network hex:47524C50726976617465 1 0 --Breadcrumb 1 Via the TH (chip-tool), Verify the NetworkConfigResponse that contains Networking Status value as 0 (success). @@ -280,7 +211,7 @@ tests: [1657288382.006263][2369:2374] CHIP:TOO: } disabled: true - - label: "Step 10: TH reads Networks attribute from the DUT" + - label: "Step 12: TH reads Networks attribute from the DUT" PICS: CNET.S.A0001 verification: | ./chip-tool networkcommissioning read networks 1 0 @@ -299,7 +230,7 @@ tests: disabled: true - label: - "Step 11: TH sends ArmFailSafe command to the DUT with + "Step 13: TH sends ArmFailSafe command to the DUT with ExpiryLengthSeconds set to 900" verification: | ./chip-tool generalcommissioning arm-fail-safe 900 1 1 0 @@ -315,7 +246,7 @@ tests: disabled: true - label: - "Step 12: TH sends RemoveNetwork Command to the DUT with NetworkID + "Step 14: TH sends RemoveNetwork Command to the DUT with NetworkID field set to PIXIT.CNET.WIFI_1ST_ACCESSPOINT_SSID and Breadcrumb field set to 1" PICS: CNET.S.C04.Rsp && CNET.S.C05.Tx @@ -335,7 +266,7 @@ tests: [1687240172.757062][17509:17511] CHIP:TOO: } disabled: true - - label: "Step 13: TH sends the CommissioningComplete command to the DUT" + - label: "Step 15: TH sends the CommissioningComplete command to the DUT" PICS: CNET.S.C04.Rsp verification: | ./chip-tool generalcommissioning commissioning-complete 1 0 @@ -351,7 +282,7 @@ tests: disabled: true - label: - "Step 14: TH sends ArmFailSafe command to the DUT with + "Step 16: TH sends ArmFailSafe command to the DUT with ExpiryLengthSeconds set to 0 to ensure the CommissioningComplete call properly persisted the failsafe context. This call should have no effect if Commissioning Complete call is handled correctly" @@ -368,7 +299,7 @@ tests: [1657288529.987772][2404:2409] CHIP:TOO: } disabled: true - - label: "Step 15: TH reads Networks attribute from the DUT" + - label: "Step 17: TH reads Networks attribute from the DUT" PICS: CNET.S.A0001 verification: | ./chip-tool networkcommissioning read networks 1 0 diff --git a/src/app/tests/suites/certification/Test_TC_DA_1_4.yaml b/src/app/tests/suites/certification/Test_TC_DA_1_4.yaml index db416d3c119f35..61cfc3a8043207 100644 --- a/src/app/tests/suites/certification/Test_TC_DA_1_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_DA_1_4.yaml @@ -36,6 +36,14 @@ tests: 1. PAA, PAI, DAC certificates are obtained and validated 2. Operations happen within the Fail-Safe Context 3. TH1 should be known about Commissioner based error condition/warning + + (for all steps, PIs use equivalent command on their respective platform) + set the $CHIP_ROOT environment variable to the location of the connectedhomeip directory or if you are validating image pls send this command in apps folder (cd to the connectedhomeip directory, use command `export CHIP_ROOT=$(pwd -P)` + For each scenario outlined in the sheet TC-DA-1.8 test cases, perform the following actions + - Start the TH using the required certificate set and PID. For chip-all-clusters-app, use the command given in the chip-all-clusters app command column + - Have the DUT commission the TH. Verify that the DUT indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface. + - factory reset the TH + command when using chip-all-clusters-app: sudo rm -rf /tmp/chip_* disabled: true - label: "Step 1: Start the commissioning process of TH1 on DUT" @@ -156,262 +164,3261 @@ tests: disabled: true - label: - "Verify that DUT notifies a warning stating that Commissionee is not a - fully trusted device.Verify that the warning contains the information - about the reason for error condition If the warning message indicates - that Commissioning is allowed then confirm that CSRRequest Command is - sent from DUT to TH1" + "Step 5: Verify that DUT notifies a warning stating that Commissionee + is not a fully trusted device.Verify that the warning contains the + information about the reason for error condition If the warning + message indicates that Commissioning is allowed then confirm that + CSRRequest Command is sent from DUT to TH1" PICS: MCORE.DA.ATTEST_WARNING verification: | Verify if DUT reports any warning stating that the commissionee is not a fully trusted device. However per Matter spec, Commissioners SHOULD warn the user (its not a SHALL requirement) and commissioners choose their implementation and May give the user a choice to authorize or deny commissioning disabled: true - - label: "Step 6: Factory Reset TH1 so that it is commissionable again" + - label: "Step 6: Factory Reset TH so that it is commissionable again" verification: | - To perform Factory reset on TH1(all-clusters-app) follow the below step in RPI platform , Pls use equivalent command on the respective platform - sudo rm -rf /tmp/chip_* + To perform Factory reset on TH1(all-clusters-app) follow the below step in RPI platform , Pls use equivalent command on the respective platformsudo rm -rf /tmp/chip_* + disabled: true + + - label: + "Step 7: For each of the test cases in the Certificates for TC-DA-1.4 + table, start the TH using the appropriate certificate set, commission + the TH using the DUT, then factory reset the TH." + verification: | + Test step has beeen validated in below steps disabled: true - label: - "Step 7: Repeat step 1 to step 7 and for step 5 set different error - condition as below: Commissionees PAA is not in the Commissioners - trusted set. Commissionee provides an invalid DAC and PAI chain as - validated by TH against the RFC5280 certificate Basic path validation - algorithm Commissionee provides DAC with validity period that is not - in range of PAA/PAI" + "Step 1: CD Test Vector: The dac_origin_vendor_id fild is present and + dac_origin_product_id fields is not present." verification: | - For each error scenario Factory reset on TH1(all-clusters-app) as explained in step 6 + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset - 1. For error scenario 1 i.e. Commissionee’s PAA is not in the Commissioner’s trusted set. + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform - execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform - ./chip-all-clusters-app --trace_decode 1 + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + o 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693997151.715871][74557:74557] CHIP:IN: (S) Sending msg 185139947 on secure session with LSID: 15692 + [1693997151.715909][74557:74557] CHIP:DMG: Command handler moving to [CommandSen] + [1693997151.715913][74557:74557] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693997151.715920][74557:74557] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693997151.715924][74557:74557] CHIP:SVR: Failsafe timer expired + [1693997151.715927][74557:74557] CHIP:IN: SecureSession[0x556dff7aaae0]: MarkForEviction Type:1 LSID:15692 + [1693997151.715930][74557:74557] CHIP:SC: SecureSession[0x556dff7aaae0, LSID:15692]: State change 'kActive' --> 'kPendingEviction' + [1693997151.715943][74557:74557] CHIP:IN: SecureSession[0x556dff7aaae0]: Released - Type:1 LSID:15692 + [1693997151.715951][74557:74557] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693997151.715967][74557:74557] CHIP:IN: SecureSession[0x556dff7aaae0]: Allocated Type:1 LSID:15694 + [1693997151.715972][74557:74557] CHIP:SC: Assigned local session key ID 15694 + [1693997151.715975][74557:74557] CHIP:SC: Waiting for PBKDF param request + disabled: true + + - label: + "Step 2: DAC Test Vector: Fallback VID and PID encoding example: + invalid, PID not present and VID not upper case" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/test_case_vector.json --product-id 177 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693994403.341228][73449:73449] CHIP:DMG: } + [1693994403.341231][73449:73449] CHIP:DMG: + [1693994403.341246][73449:73449] CHIP:EM: <<< [E:30736r S:60388 M:219410600 (Ack:261280417)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693994403.341254][73449:73449] CHIP:IN: (S) Sending msg 219410600 on secure session with LSID: 60388 + [1693994403.341291][73449:73449] CHIP:DMG: Command handler moving to [CommandSen] + [1693994403.341294][73449:73449] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693994403.341301][73449:73449] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693994403.341305][73449:73449] CHIP:SVR: Failsafe timer expired + [1693994403.341309][73449:73449] CHIP:IN: SecureSession[0x560da40688c0]: MarkForEviction Type:1 LSID:60388 + [1693994403.341312][73449:73449] CHIP:SC: SecureSession[0x560da40688c0, LSID:60388]: State change 'kActive' --> 'kPendingEviction' + [1693994403.341329][73449:73449] CHIP:IN: SecureSession[0x560da40688c0]: Released - Type:1 LSID:60388 + [1693994403.341338][73449:73449] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693994403.341356][73449:73449] CHIP:IN: SecureSession[0x560da40688c0]: Allocated Type:1 LSID:60390 + [1693994403.341362][73449:73449] CHIP:SC: Assigned local session key ID 60390 + [1693994403.341366][73449:73449] CHIP:SC: Waiting for PBKDF param request + [1693994403.341374][73449:73449] CHIP:DIS: Updating services using commissioning mode 1 + disabled: true + + - label: + "Step 3: DAC Test Vector: Invalid certificate signature algorithm + ECDSA_WITH_SHA1" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693996211.521552][74117:74117] CHIP:EM: <<< [E:25185r S:53710 M:167691966 (Ack:245625616)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693996211.521560][74117:74117] CHIP:IN: (S) Sending msg 167691966 on secure session with LSID: 53710 + [1693996211.521595][74117:74117] CHIP:DMG: Command handler moving to [CommandSen] + [1693996211.521599][74117:74117] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693996211.521607][74117:74117] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693996211.521611][74117:74117] CHIP:SVR: Failsafe timer expired + [1693996211.521615][74117:74117] CHIP:IN: SecureSession[0x5581d19b2a70]: MarkForEviction Type:1 LSID:53710 + [1693996211.521619][74117:74117] CHIP:SC: SecureSession[0x5581d19b2a70, LSID:53710]: State change 'kActive' --> 'kPendingEviction' + [1693996211.521637][74117:74117] CHIP:IN: SecureSession[0x5581d19b2a70]: Released - Type:1 LSID:53710 + [1693996211.521648][74117:74117] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693996211.521669][74117:74117] CHIP:IN: SecureSession[0x5581d19b2a70]: Allocated Type:1 LSID:53712 + [1693996211.521677][74117:74117] CHIP:SC: Assigned local session key ID 53712 + disabled: true + + - label: "Step 4: CD Test Vector: The product_id_array field is missing." + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_pid_array_missing/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693993840.870308][72883:72883] CHIP:DMG: + [1693993840.870320][72883:72883] CHIP:EM: <<< [E:37569r S:15994 M:123922316 (Ack:203861491)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693993840.870328][72883:72883] CHIP:IN: (S) Sending msg 123922316 on secure session with LSID: 15994 + [1693993840.870361][72883:72883] CHIP:DMG: Command handler moving to [CommandSen] + [1693993840.870365][72883:72883] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693993840.870379][72883:72883] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693993840.870384][72883:72883] CHIP:SVR: Failsafe timer expired + [1693993840.870389][72883:72883] CHIP:IN: SecureSession[0x557e71225ce0]: MarkForEviction Type:1 LSID:15994 + [1693993840.870392][72883:72883] CHIP:SC: SecureSession[0x557e71225ce0, LSID:15994]: State change 'kActive' --> 'kPendingEviction' + [1693993840.870409][72883:72883] CHIP:IN: SecureSession[0x557e71225ce0]: Released - Type:1 LSID:15994 + [1693993840.870420][72883:72883] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693993840.870445][72883:72883] CHIP:IN: SecureSession[0x557e71225ce0]: Allocated Type:1 LSID:15996 + [1693993840.870450][72883:72883] CHIP:SC: Assigned local session key ID 15996 + [1693993840.870456][72883:72883] CHIP:SC: Waiting for PBKDF param request + [1693993840.870464][72883:72883] CHIP:DIS: Updating services using commissioning mode 1 + [1693993840.870767][72883:72883] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693993840.871098][72883:72883] CHIP:DL: Using wifi MAC for hostname + [1693993840.871172][72883:72883] CHIP:DIS: Advertise commission parameter vendorID=65521 productID=32768 discriminator=3840/15 cm=1 + disabled: true + + - label: + "Step 5: PAI Test Vector: Certificate validity period starts in the + past" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_pai_valid_in_past/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + o 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693994803.098470][73608:73608] CHIP:IN: (S) Sending msg 223928797 on secure session with LSID: 25230 + [1693994803.098520][73608:73608] CHIP:DMG: Command handler moving to [CommandSen] + [1693994803.098523][73608:73608] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693994803.098530][73608:73608] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693994803.098533][73608:73608] CHIP:SVR: Failsafe timer expired + [1693994803.098537][73608:73608] CHIP:IN: SecureSession[0x562e2718c880]: MarkForEviction Type:1 LSID:25230 + [1693994803.098541][73608:73608] CHIP:SC: SecureSession[0x562e2718c880, LSID:25230]: State change 'kActive' --> 'kPendingEviction' + [1693994803.098556][73608:73608] CHIP:IN: SecureSession[0x562e2718c880]: Released - Type:1 LSID:25230 + [1693994803.098564][73608:73608] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693994803.098580][73608:73608] CHIP:IN: SecureSession[0x562e2718c880]: Allocated Type:1 LSID:25232 + [1693994803.098585][73608:73608] CHIP:SC: Assigned local session key ID 25232 + [1693994803.098588][73608:73608] CHIP:SC: Waiting for PBKDF param request + [1693994803.098596][73608:73608] CHIP:DIS: Updating services using commissioning mode 1 + [1693994803.098836][73608:73608] CHIP:DIS: CHIP minimal mDNS started advertising. + disabled: true + + - label: + "Step 6: CD Test Vector: The product_id_array field has 100 PID values + none of which matches the PID value in DAC." + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693997405.995023][74683:74683] CHIP:DMG: + [1693997405.995034][74683:74683] CHIP:EM: <<< [E:36876r S:41477 M:993220 (Ack:208381418)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693997405.995041][74683:74683] CHIP:IN: (S) Sending msg 993220 on secure session with LSID: 41477 + [1693997405.995073][74683:74683] CHIP:DMG: Command handler moving to [CommandSen] + [1693997405.995076][74683:74683] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693997405.995083][74683:74683] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693997405.995086][74683:74683] CHIP:SVR: Failsafe timer expired + [1693997405.995090][74683:74683] CHIP:IN: SecureSession[0x5605c6bf5560]: MarkForEviction Type:1 LSID:41477 + [1693997405.995094][74683:74683] CHIP:SC: SecureSession[0x5605c6bf5560, LSID:41477]: State change 'kActive' --> 'kPendingEviction' + [1693997405.995109][74683:74683] CHIP:IN: SecureSession[0x5605c6bf5560]: Released - Type:1 LSID:41477 + [1693997405.995117][74683:74683] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693997405.995133][74683:74683] CHIP:IN: SecureSession[0x5605c6bf5560]: Allocated Type:1 LSID:41479 + [1693997405.995138][74683:74683] CHIP:SC: Assigned local session key ID 41479 + [1693997405.995142][74683:74683] CHIP:SC: Waiting for PBKDF param request + disabled: true + + - label: + "Step 7: DAC Test Vector: Certificate Basic Constraint extension CA + field is wrong (TRUE for DAC and FALSE for PAI)" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693997078.351251][74520:74520] CHIP:EM: <<< [E:37804r S:10760 M:65040301 (Ack:219159553)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693997078.351258][74520:74520] CHIP:IN: (S) Sending msg 65040301 on secure session with LSID: 10760 + [1693997078.351302][74520:74520] CHIP:DMG: Command handler moving to [CommandSen] + [1693997078.351305][74520:74520] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693997078.351311][74520:74520] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693997078.351314][74520:74520] CHIP:SVR: Failsafe timer expired + [1693997078.351316][74520:74520] CHIP:IN: SecureSession[0x564ecf8d4890]: MarkForEviction Type:1 LSID:10760 + [1693997078.351319][74520:74520] CHIP:SC: SecureSession[0x564ecf8d4890, LSID:10760]: State change 'kActive' --> 'kPendingEviction' + [1693997078.351332][74520:74520] CHIP:IN: SecureSession[0x564ecf8d4890]: Released - Type:1 LSID:10760 + [1693997078.351340][74520:74520] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693997078.351355][74520:74520] CHIP:IN: SecureSession[0x564ecf8d4890]: Allocated Type:1 LSID:10762 + [1693997078.351360][74520:74520] CHIP:SC: Assigned local session key ID 10762 + [1693997078.351363][74520:74520] CHIP:SC: Waiting for PBKDF param request + disabled: true + + - label: + "Step 8: CD Test Vector: The dac_origin_vendor_id and + dac_origin_product_id fields present and the VID value doesnt match + the VID found in the DAC Subject DN." + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693994835.257566][73627:73627] CHIP:DMG: + [1693994835.257577][73627:73627] CHIP:EM: <<< [E:23698r S:38764 M:255686193 (Ack:187772892)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693994835.257585][73627:73627] CHIP:IN: (S) Sending msg 255686193 on secure session with LSID: 38764 + [1693994835.257611][73627:73627] CHIP:DMG: Command handler moving to [CommandSen] + [1693994835.257614][73627:73627] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693994835.257620][73627:73627] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693994835.257623][73627:73627] CHIP:SVR: Failsafe timer expired + [1693994835.257627][73627:73627] CHIP:IN: SecureSession[0x559ec6387bb0]: MarkForEviction Type:1 LSID:38764 + [1693994835.257630][73627:73627] CHIP:SC: SecureSession[0x559ec6387bb0, LSID:38764]: State change 'kActive' --> 'kPendingEviction' + [1693994835.257648][73627:73627] CHIP:IN: SecureSession[0x559ec6387bb0]: Released - Type:1 LSID:38764 + [1693994835.257657][73627:73627] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693994835.257675][73627:73627] CHIP:IN: SecureSession[0x559ec6387bb0]: Allocated Type:1 LSID:38766 + [1693994835.257680][73627:73627] CHIP:SC: Assigned local session key ID 38766 + [1693994835.257683][73627:73627] CHIP:SC: Waiting for PBKDF param request + [1693994835.257690][73627:73627] CHIP:DIS: Updating services using commissioning mode 1 + disabled: true + + - label: + "Step 9: DAC Test Vector: Fallback VID and PID encoding example from + spec: invalid, since substring following Mpid: is not exactly 4 + uppercase hexadecimal digits" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/test_case_vector.json --product-id 177 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693995413.022547][73911:73911] CHIP:EM: <<< [E:30630r S:27734 M:175055120 (Ack:21253685)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693995413.022553][73911:73911] CHIP:IN: (S) Sending msg 175055120 on secure session with LSID: 27734 + [1693995413.022574][73911:73911] CHIP:DMG: Command handler moving to [CommandSen] + [1693995413.022577][73911:73911] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693995413.022582][73911:73911] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693995413.022585][73911:73911] CHIP:SVR: Failsafe timer expired + [1693995413.022588][73911:73911] CHIP:IN: SecureSession[0x559867c24540]: MarkForEviction Type:1 LSID:27734 + [1693995413.022591][73911:73911] CHIP:SC: SecureSession[0x559867c24540, LSID:27734]: State change 'kActive' --> 'kPendingEviction' + [1693995413.022601][73911:73911] CHIP:IN: SecureSession[0x559867c24540]: Released - Type:1 LSID:27734 + [1693995413.022608][73911:73911] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693995413.022623][73911:73911] CHIP:IN: SecureSession[0x559867c24540]: Allocated Type:1 LSID:27736 + [1693995413.022627][73911:73911] CHIP:SC: Assigned local session key ID 27736 + [1693995413.022630][73911:73911] CHIP:SC: Waiting for PBKDF param request + [1693995413.022635][73911:73911] CHIP:DIS: Updating services using commissioning mode 1 + [1693995413.022816][73911:73911] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693995413.023022][73911:73911] CHIP:DL: Using wifi MAC for hostname + disabled: true + + - label: + "Step 10: CD Test Vector: Invalid CMS eContentType is set to Microsoft + Authenticode [MSAC] OID = { 1.3.6.1.4.1.311.2.1.4 }." + verification: | + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693996285.064401][74155:74155] CHIP:EM: <<< [E:19412r S:5515 M:218067074 (Ack:163851272)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693996285.064410][74155:74155] CHIP:IN: (S) Sending msg 218067074 on secure session with LSID: 5515 + [1693996285.064463][74155:74155] CHIP:DMG: Command handler moving to [CommandSen] + [1693996285.064466][74155:74155] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693996285.064475][74155:74155] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693996285.064479][74155:74155] CHIP:SVR: Failsafe timer expired + [1693996285.064483][74155:74155] CHIP:IN: SecureSession[0x562b4607aae0]: MarkForEviction Type:1 LSID:5515 + [1693996285.064487][74155:74155] CHIP:SC: SecureSession[0x562b4607aae0, LSID:5515]: State change 'kActive' --> 'kPendingEviction' + [1693996285.064507][74155:74155] CHIP:IN: SecureSession[0x562b4607aae0]: Released - Type:1 LSID:5515 + [1693996285.064520][74155:74155] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693996285.064543][74155:74155] CHIP:IN: SecureSession[0x562b4607aae0]: Allocated Type:1 LSID:5517 + [1693996285.064550][74155:74155] CHIP:SC: Assigned local session key ID 5517 + disabled: true + + - label: + "Step 11: PAI Test Vector: PID in Subject field doesnt match PID in + Issuer field" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693996330.239836][74189:74189] CHIP:DMG: + [1693996330.239846][74189:74189] CHIP:EM: <<< [E:61254r S:58699 M:113843948 (Ack:144549851)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693996330.239854][74189:74189] CHIP:IN: (S) Sending msg 113843948 on secure session with LSID: 58699 + [1693996330.239877][74189:74189] CHIP:DMG: Command handler moving to [CommandSen] + [1693996330.239880][74189:74189] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693996330.239885][74189:74189] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693996330.239889][74189:74189] CHIP:SVR: Failsafe timer expired + [1693996330.239893][74189:74189] CHIP:IN: SecureSession[0x56184d3e2c40]: MarkForEviction Type:1 LSID:58699 + [1693996330.239897][74189:74189] CHIP:SC: SecureSession[0x56184d3e2c40, LSID:58699]: State change 'kActive' --> 'kPendingEviction' + [1693996330.239912][74189:74189] CHIP:IN: SecureSession[0x56184d3e2c40]: Released - Type:1 LSID:58699 + [1693996330.239922][74189:74189] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693996330.239939][74189:74189] CHIP:IN: SecureSession[0x56184d3e2c40]: Allocated Type:1 LSID:58701 + [1693996330.239945][74189:74189] CHIP:SC: Assigned local session key ID 58701 + [1693996330.239950][74189:74189] CHIP:SC: Waiting for PBKDF param request + [1693996330.239956][74189:74189] CHIP:DIS: Updating services using commissioning mode 1 + [1693996330.240206][74189:74189] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693996330.240472][74189:74189] CHIP:DL: Using wifi MAC for hostname + disabled: true + + - label: + "Step 12: PAI Test Vector: Invalid certificate signature algorithm + ECDSA_WITH_SHA1" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693993355.537189][72739:72739] CHIP:EM: <<< [E:46949r S:42353 M:75820384 (Ack:69095779)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693993355.537196][72739:72739] CHIP:IN: (S) Sending msg 75820384 on secure session with LSID: 42353 + [1693993355.537235][72739:72739] CHIP:DMG: Command handler moving to [CommandSen] + [1693993355.537239][72739:72739] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693993355.537245][72739:72739] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693993355.537249][72739:72739] CHIP:SVR: Failsafe timer expired + [1693993355.537252][72739:72739] CHIP:IN: SecureSession[0x561e088c6c60]: MarkForEviction Type:1 LSID:42353 + [1693993355.537256][72739:72739] CHIP:SC: SecureSession[0x561e088c6c60, LSID:42353]: State change 'kActive' --> 'kPendingEviction' + [1693993355.537273][72739:72739] CHIP:IN: SecureSession[0x561e088c6c60]: Released - Type:1 LSID:42353 + [1693993355.537284][72739:72739] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693993355.537303][72739:72739] CHIP:IN: SecureSession[0x561e088c6c60]: Allocated Type:1 LSID:42355 + [1693993355.537308][72739:72739] CHIP:SC: Assigned local session key ID 42355 + [1693993355.537311][72739:72739] CHIP:SC: Waiting for PBKDF param request + [1693993355.537318][72739:72739] CHIP:DIS: Updating services using commissioning mode 1 + [1693993355.537588][72739:72739] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693993355.537857][72739:72739] CHIP:DL: Using wifi MAC for hostname + [1693993355.537907][72739:72739] CHIP:DIS: Advertise commission parameter vendorID=65521 productID=32768 discriminator=3840/15 cm=1 + [1693993355.537920][72739:72739] CHIP:DIS: Responding with _matterc._udp.local + [1693993355.537923][72739:72739] CHIP:DIS: Responding with 341D2ED7D15535D3._matterc._udp.local + disabled: true + + - label: + "Step 13: CD Test Vector: The product_id_array field has 10 PID values + none of which matches the PID value in DAC." + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/test_case_vector.json --product-id 32768 Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform - ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 --paa-trust-store-path ~/connectedhomeip/credentials/development/attestation + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693997271.340565][74610:74610] CHIP:EM: <<< [E:58667r S:59822 M:12912710 (Ack:254892351)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693997271.340572][74610:74610] CHIP:IN: (S) Sending msg 12912710 on secure session with LSID: 59822 + [1693997271.340596][74610:74610] CHIP:DMG: Command handler moving to [CommandSen] + [1693997271.340599][74610:74610] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693997271.340604][74610:74610] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693997271.340608][74610:74610] CHIP:SVR: Failsafe timer expired + [1693997271.340610][74610:74610] CHIP:IN: SecureSession[0x56256eefc1b0]: MarkForEviction Type:1 LSID:59822 + [1693997271.340615][74610:74610] CHIP:SC: SecureSession[0x56256eefc1b0, LSID:59822]: State change 'kActive' --> 'kPendingEviction' + [1693997271.340627][74610:74610] CHIP:IN: SecureSession[0x56256eefc1b0]: Released - Type:1 LSID:59822 + [1693997271.340636][74610:74610] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693997271.340650][74610:74610] CHIP:IN: SecureSession[0x56256eefc1b0]: Allocated Type:1 LSID:59824 + [1693997271.340655][74610:74610] CHIP:SC: Assigned local session key ID 59824 + [1693997271.340659][74610:74610] CHIP:SC: Waiting for PBKDF param request + [1693997271.340665][74610:74610] CHIP:DIS: Updating services using commissioning mode 1 + [1693997271.340877][74610:74610] CHIP:DIS: CHIP minimal mDNS started advertising. + disabled: true + + - label: + "Step 14: DAC Test Vector: Invalid certificate public key curve + secp256k1" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693994760.408266][73595:73595] CHIP:DMG: + [1693994760.408276][73595:73595] CHIP:EM: <<< [E:58926r S:22159 M:71363476 (Ack:241325210)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693994760.408282][73595:73595] CHIP:IN: (S) Sending msg 71363476 on secure session with LSID: 22159 + [1693994760.408309][73595:73595] CHIP:DMG: Command handler moving to [CommandSen] + [1693994760.408312][73595:73595] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693994760.408318][73595:73595] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693994760.408321][73595:73595] CHIP:SVR: Failsafe timer expired + [1693994760.408324][73595:73595] CHIP:IN: SecureSession[0x55f597d52960]: MarkForEviction Type:1 LSID:22159 + [1693994760.408328][73595:73595] CHIP:SC: SecureSession[0x55f597d52960, LSID:22159]: State change 'kActive' --> 'kPendingEviction' + [1693994760.408344][73595:73595] CHIP:IN: SecureSession[0x55f597d52960]: Released - Type:1 LSID:22159 + [1693994760.408351][73595:73595] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693994760.408367][73595:73595] CHIP:IN: SecureSession[0x55f597d52960]: Allocated Type:1 LSID:22161 + [1693994760.408372][73595:73595] CHIP:SC: Assigned local session key ID 22161 + [1693994760.408375][73595:73595] CHIP:SC: Waiting for PBKDF param request + [1693994760.408382][73595:73595] CHIP:DIS: Updating services using commissioning mode 1 + [1693994760.408655][73595:73595] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693994760.408910][73595:73595] CHIP:DL: Using wifi MAC for hostname + disabled: true + + - label: + "Step 15: DAC Test Vector: Certificate Key Usage extension critical + field is missing" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693997054.992158][74509:74509] CHIP:EM: <<< [E:37779r S:15307 M:202831458 (Ack:181316818)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693997054.992164][74509:74509] CHIP:IN: (S) Sending msg 202831458 on secure session with LSID: 15307 + [1693997054.992205][74509:74509] CHIP:DMG: Command handler moving to [CommandSen] + [1693997054.992208][74509:74509] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693997054.992214][74509:74509] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693997054.992217][74509:74509] CHIP:SVR: Failsafe timer expired + [1693997054.992220][74509:74509] CHIP:IN: SecureSession[0x563fed359aa0]: MarkForEviction Type:1 LSID:15307 + [1693997054.992223][74509:74509] CHIP:SC: SecureSession[0x563fed359aa0, LSID:15307]: State change 'kActive' --> 'kPendingEviction' + [1693997054.992237][74509:74509] CHIP:IN: SecureSession[0x563fed359aa0]: Released - Type:1 LSID:15307 + [1693997054.992246][74509:74509] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693997054.992264][74509:74509] CHIP:IN: SecureSession[0x563fed359aa0]: Allocated Type:1 LSID:15309 + [1693997054.992269][74509:74509] CHIP:SC: Assigned local session key ID 15309 + [1693997054.992272][74509:74509] CHIP:SC: Waiting for PBKDF param request + disabled: true + + - label: + "Step 16: DAC Test Vector: Certificate doesnt include Subject Key ID + (SKID) extension" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693997101.085189][74532:74532] CHIP:EM: <<< [E:980r S:47787 M:224476482 (Ack:52007145)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693997101.085195][74532:74532] CHIP:IN: (S) Sending msg 224476482 on secure session with LSID: 47787 + [1693997101.085220][74532:74532] CHIP:DMG: Command handler moving to [CommandSen] + [1693997101.085223][74532:74532] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693997101.085228][74532:74532] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693997101.085230][74532:74532] CHIP:SVR: Failsafe timer expired + [1693997101.085233][74532:74532] CHIP:IN: SecureSession[0x56202f5eeaf0]: MarkForEviction Type:1 LSID:47787 + [1693997101.085236][74532:74532] CHIP:SC: SecureSession[0x56202f5eeaf0, LSID:47787]: State change 'kActive' --> 'kPendingEviction' + [1693997101.085248][74532:74532] CHIP:IN: SecureSession[0x56202f5eeaf0]: Released - Type:1 LSID:47787 + [1693997101.085255][74532:74532] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693997101.085269][74532:74532] CHIP:IN: SecureSession[0x56202f5eeaf0]: Allocated Type:1 LSID:47789 + [1693997101.085274][74532:74532] CHIP:SC: Assigned local session key ID 47789 + [1693997101.085276][74532:74532] CHIP:SC: Waiting for PBKDF param request + disabled: true + + - label: "Step 17: CD Test Vector: Invalid Signer Info version set to v2." + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_signer_info_v2/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693993317.367258][72717:72717] CHIP:EM: <<< [E:12718r S:18565 M:251356398 (Ack:239317917)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693993317.367267][72717:72717] CHIP:IN: (S) Sending msg 251356398 on secure session with LSID: 18565 + [1693993317.367312][72717:72717] CHIP:DMG: Command handler moving to [CommandSen] + [1693993317.367318][72717:72717] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693993317.367326][72717:72717] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693993317.367331][72717:72717] CHIP:SVR: Failsafe timer expired + [1693993317.367334][72717:72717] CHIP:IN: SecureSession[0x55a97361eb30]: MarkForEviction Type:1 LSID:18565 + [1693993317.367340][72717:72717] CHIP:SC: SecureSession[0x55a97361eb30, LSID:18565]: State change 'kActive' --> 'kPendingEviction' + [1693993317.367359][72717:72717] CHIP:IN: SecureSession[0x55a97361eb30]: Released - Type:1 LSID:18565 + [1693993317.367370][72717:72717] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693993317.367391][72717:72717] CHIP:IN: SecureSession[0x55a97361eb30]: Allocated Type:1 LSID:18567 + [1693993317.367396][72717:72717] CHIP:SC: Assigned local session key ID 18567 + [1693993317.367400][72717:72717] CHIP:SC: Waiting for PBKDF param request + [1693993317.367406][72717:72717] CHIP:DIS: Updating services using commissioning mode 1 + [1693993317.367652][72717:72717] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693993317.367956][72717:72717] CHIP:DL: Using wifi MAC for hostname + [1693993317.368007][72717:72717] CHIP:DIS: Advertise commission parameter vendorID=65521 productID=32768 discriminator=3840/15 cm=1 + disabled: true + + - label: + "Step 18: DAC Test Vector: Certificate Key Usage extension + digitalSignature field is wrong (not present for DAC and present for + PAI, which is OK as optional)" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/test_case_vector.json --product-id 32768 - If the DUT(chip-tool) has to provision to verify the logs:- verify the below mentioned same behaviour log on the DUT (chip-tool): - [1662455580.725445][31980:31985] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0001 - [1662455580.725450][31980:31985] CHIP:CTL: Received Attestation Information from the device - [1662455580.725454][31980:31985] CHIP:CTL: Successfully finished commissioning step 'SendAttestationRequest' - [1662455580.725461][31980:31985] CHIP:CTL: Commissioning stage next step: 'SendAttestationRequest' -> 'AttestationVerification' - [1662455580.725465][31980:31985] CHIP:CTL: Performing next commissioning step 'AttestationVerification' - [1662455580.725468][31980:31985] CHIP:CTL: Verifying attestation - [1662455580.725944][31980:31985] CHIP:CTL: Failed in verifying 'Attestation Information' command received from the device: err 101. Look at AttestationVerificationResult enum to understand the errors - [1662455580.725956][31980:31985] CHIP:CTL: Error on commissioning step 'AttestationVerification': '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1027: CHIP Error 0x000000AC: Internal error' - [1662455580.725958][31980:31985] CHIP:CTL: Failed to perform commissioning step 8 - [1662455580.725961][31980:31985] CHIP:CTL: Going from commissioning step 'AttestationVerification' with lastErr = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1027: CHIP Error 0x000000AC: Internal error' -> 'Cleanup' - [1662455580.725966][31980:31985] CHIP:CTL: Performing next commissioning step 'Cleanup' with completion status = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1027: CHIP Error 0x000000AC: Internal error' - [1662455580.725979][31980:31985] CHIP:CTL: Expiring failsafe on proxy 0x7fe3b40236a0 + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693996261.937664][74143:74143] CHIP:EM: <<< [E:4439r S:62297 M:255923001 (Ack:4405626)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693996261.937674][74143:74143] CHIP:IN: (S) Sending msg 255923001 on secure session with LSID: 62297 + [1693996261.937736][74143:74143] CHIP:DMG: Command handler moving to [CommandSen] + [1693996261.937742][74143:74143] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693996261.937750][74143:74143] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693996261.937755][74143:74143] CHIP:SVR: Failsafe timer expired + [1693996261.937758][74143:74143] CHIP:IN: SecureSession[0x55c35e92eea0]: MarkForEviction Type:1 LSID:62297 + [1693996261.937761][74143:74143] CHIP:SC: SecureSession[0x55c35e92eea0, LSID:62297]: State change 'kActive' --> 'kPendingEviction' + [1693996261.937779][74143:74143] CHIP:IN: SecureSession[0x55c35e92eea0]: Released - Type:1 LSID:62297 + [1693996261.937788][74143:74143] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693996261.937808][74143:74143] CHIP:IN: SecureSession[0x55c35e92eea0]: Allocated Type:1 LSID:62299 + [1693996261.937814][74143:74143] CHIP:SC: Assigned local session key ID 62299 + [1693996261.937816][74143:74143] CHIP:SC: Waiting for PBKDF param request + disabled: true + + - label: + "Step 19: DAC Test Vector: Certificate doesnt include Authority Key ID + (AKID) extension" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693995381.552754][73894:73894] CHIP:DMG: + [1693995381.552761][73894:73894] CHIP:EM: <<< [E:37229r S:55064 M:5606557 (Ack:201777288)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693995381.552767][73894:73894] CHIP:IN: (S) Sending msg 5606557 on secure session with LSID: 55064 + [1693995381.552789][73894:73894] CHIP:DMG: Command handler moving to [CommandSen] + [1693995381.552792][73894:73894] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693995381.552796][73894:73894] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693995381.552799][73894:73894] CHIP:SVR: Failsafe timer expired + [1693995381.552802][73894:73894] CHIP:IN: SecureSession[0x563b61004960]: MarkForEviction Type:1 LSID:55064 + [1693995381.552804][73894:73894] CHIP:SC: SecureSession[0x563b61004960, LSID:55064]: State change 'kActive' --> 'kPendingEviction' + [1693995381.552815][73894:73894] CHIP:IN: SecureSession[0x563b61004960]: Released - Type:1 LSID:55064 + [1693995381.552823][73894:73894] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693995381.552836][73894:73894] CHIP:IN: SecureSession[0x563b61004960]: Allocated Type:1 LSID:55066 + [1693995381.552840][73894:73894] CHIP:SC: Assigned local session key ID 55066 + [1693995381.552843][73894:73894] CHIP:SC: Waiting for PBKDF param request + [1693995381.552848][73894:73894] CHIP:DIS: Updating services using commissioning mode 1 + [1693995381.553045][73894:73894] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693995381.553265][73894:73894] CHIP:DL: Using wifi MAC for hostname + disabled: true + + - label: + "Step 20: PAI Test Vector: Certificate doesnt include Basic Constraint + extension" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/test_case_vector.json --product-id 32768 - 2. To Execute this step for error condition 2 Commissionee provides an invalid DAC and PAI chain , follow the below steps, + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 - All sample error scenario certificates has generated and present in ~/connectedhomeip/credentials/development/commissioner_dut/ + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693994276.553200][73374:73374] CHIP:DMG: peer_address = UDP:[fe80::a70c:61dc:df51:6945%enxd03745ce8f62]:36473 + [1693994276.553203][73374:73374] CHIP:DMG: } + [1693994276.553206][73374:73374] CHIP:DMG: + [1693994276.553217][73374:73374] CHIP:EM: <<< [E:65206r S:34371 M:72339643 (Ack:58486237)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693994276.553225][73374:73374] CHIP:IN: (S) Sending msg 72339643 on secure session with LSID: 34371 + [1693994276.553250][73374:73374] CHIP:DMG: Command handler moving to [CommandSen] + [1693994276.553254][73374:73374] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693994276.553259][73374:73374] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693994276.553262][73374:73374] CHIP:SVR: Failsafe timer expired + [1693994276.553265][73374:73374] CHIP:IN: SecureSession[0x5604c97909b0]: MarkForEviction Type:1 LSID:34371 + [1693994276.553269][73374:73374] CHIP:SC: SecureSession[0x5604c97909b0, LSID:34371]: State change 'kActive' --> 'kPendingEviction' + [1693994276.553285][73374:73374] CHIP:IN: SecureSession[0x5604c97909b0]: Released - Type:1 LSID:34371 + [1693994276.553295][73374:73374] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693994276.553313][73374:73374] CHIP:IN: SecureSession[0x5604c97909b0]: Allocated Type:1 LSID:34373 + [1693994276.553319][73374:73374] CHIP:SC: Assigned local session key ID 34373 + [1693994276.553323][73374:73374] CHIP:SC: Waiting for PBKDF param request + [1693994276.553330][73374:73374] CHIP:DIS: Updating services using commissioning mode 1 + [1693994276.553580][73374:73374] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693994276.553870][73374:73374] CHIP:DL: Using wifi MAC for hostname + [1693994276.553912][73374:73374] CHIP:DIS: Advertise commission parameter vendorID=65521 productID=32768 discriminator=3840/15 cm=1 + [1693994276.553924][73374:73374] CHIP:DIS: Responding with _matterc._udp.local + disabled: true - Commissionee provides an invalid DAC and PAI - Use the folder - connectedhomeip/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1 & use the sample json test_case_vector.json + - label: + "Step 21: CD Test Vector: The security_information field is missing." + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform - execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform - ./chip-all-clusters-app --trace_decode 1 --dac_provider ~/connectedhomeip/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/test_case_vector.json + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_security_info_missing/test_case_vector.json --product-id 32768 Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 - If the DUT(chip-tool) has to provision to verify the logs:- verify the below mentioned same behaviour log on the DUT (chip-tool): - [1684494307.862989][176412:176414] CHIP:CTL: Commissioning stage next step: 'SendAttestationRequest' -> 'AttestationVerification' - [1684494307.862994][176412:176414] CHIP:CTL: Performing next commissioning step 'AttestationVerification' - [1684494307.862996][176412:176414] CHIP:CTL: Verifying attestation - [1684494307.864806][176412:176414] CHIP:CTL: Failed in verifying 'Attestation Information' command received from the device: err 303. Look at AttestationVerificationResult enum to understand the errors - [1684494307.864822][176412:176414] CHIP:CTL: Error on commissioning step 'AttestationVerification': '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' - [1684494307.864826][176412:176414] CHIP:CTL: Failed to perform commissioning step 8 - [1684494307.864829][176412:176414] CHIP:CTL: Going from commissioning step 'AttestationVerification' with lastErr = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' -> 'Cleanup' - [1684494307.864837][176412:176414] CHIP:CTL: Performing next commissioning step 'Cleanup' with completion status = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' - [1684494307.864844][176412:176414] CHIP:CTL: Expiring failsafe on proxy 0x7f2308036bd0 - [1684494307.864860][176412:176414] CHIP:DMG: ICR moving to [AddingComm] - [1684494307.864865][176412:176414] CHIP:DMG: ICR moving to [AddedComma] - [1684494307.864945][176412:176414] CHIP:EM: <<< [E:6835i M:18286748] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:08 (IM:InvokeCommandRequest) + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693996239.759850][74133:74133] CHIP:EM: <<< [E:11884r S:63423 M:74553917 (Ack:204682393)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693996239.759857][74133:74133] CHIP:IN: (S) Sending msg 74553917 on secure session with LSID: 63423 + [1693996239.759887][74133:74133] CHIP:DMG: Command handler moving to [CommandSen] + [1693996239.759890][74133:74133] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693996239.759897][74133:74133] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693996239.759900][74133:74133] CHIP:SVR: Failsafe timer expired + [1693996239.759904][74133:74133] CHIP:IN: SecureSession[0x557fa61c3c90]: MarkForEviction Type:1 LSID:63423 + [1693996239.759908][74133:74133] CHIP:SC: SecureSession[0x557fa61c3c90, LSID:63423]: State change 'kActive' --> 'kPendingEviction' + [1693996239.759923][74133:74133] CHIP:IN: SecureSession[0x557fa61c3c90]: Released - Type:1 LSID:63423 + [1693996239.759932][74133:74133] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693996239.759948][74133:74133] CHIP:IN: SecureSession[0x557fa61c3c90]: Allocated Type:1 LSID:63425 + [1693996239.759953][74133:74133] CHIP:SC: Assigned local session key ID 63425 + [1693996239.759956][74133:74133] CHIP:SC: Waiting for PBKDF param request + disabled: true + + - label: + "Step 22: PAI Test Vector: Certificate Key Usage extension keyCertSign + field is wrong (present for DAC and not present for PAI)" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/test_case_vector.json --product-id 32768 + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693997515.751436][74733:74733] CHIP:DMG: + [1693997515.751444][74733:74733] CHIP:EM: <<< [E:5171r S:65366 M:88404245 (Ack:115426625)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693997515.751449][74733:74733] CHIP:IN: (S) Sending msg 88404245 on secure session with LSID: 65366 + [1693997515.751471][74733:74733] CHIP:DMG: Command handler moving to [CommandSen] + [1693997515.751474][74733:74733] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693997515.751481][74733:74733] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693997515.751484][74733:74733] CHIP:SVR: Failsafe timer expired + [1693997515.751487][74733:74733] CHIP:IN: SecureSession[0x558c6a10d970]: MarkForEviction Type:1 LSID:65366 + [1693997515.751491][74733:74733] CHIP:SC: SecureSession[0x558c6a10d970, LSID:65366]: State change 'kActive' --> 'kPendingEviction' + [1693997515.751505][74733:74733] CHIP:IN: SecureSession[0x558c6a10d970]: Released - Type:1 LSID:65366 + [1693997515.751513][74733:74733] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693997515.751528][74733:74733] CHIP:IN: SecureSession[0x558c6a10d970]: Allocated Type:1 LSID:65368 + [1693997515.751533][74733:74733] CHIP:SC: Assigned local session key ID 65368 + [1693997515.751536][74733:74733] CHIP:SC: Waiting for PBKDF param request + disabled: true + - label: + "Step 23: CD Test Vector: The authorized_paa_list contains one valid + PAA which is authorized to sign the PAI." + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/test_case_vector.json --product-id 32768 - 3. Similarly for condition 3 Commissionee provides DAC with validity period that is not in range of PAA/PAI follow below steps + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 - Commissionee provides DAC with validity period that is not in range of PAA/PAI - Use the folder - connectedhomeip/credentials/development/commissioner_dut/struct_dac_valid_in_past & use the sample json test_case_vector.json + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693994866.084220][73646:73646] CHIP:EM: <<< [E:32023r S:4683 M:260375300 (Ack:133194635)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693994866.084225][73646:73646] CHIP:IN: (S) Sending msg 260375300 on secure session with LSID: 4683 + [1693994866.084267][73646:73646] CHIP:DMG: Command handler moving to [CommandSen] + [1693994866.084269][73646:73646] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693994866.084274][73646:73646] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693994866.084276][73646:73646] CHIP:SVR: Failsafe timer expired + [1693994866.084279][73646:73646] CHIP:IN: SecureSession[0x564174dd8940]: MarkForEviction Type:1 LSID:4683 + [1693994866.084282][73646:73646] CHIP:SC: SecureSession[0x564174dd8940, LSID:4683]: State change 'kActive' --> 'kPendingEviction' + [1693994866.084294][73646:73646] CHIP:IN: SecureSession[0x564174dd8940]: Released - Type:1 LSID:4683 + [1693994866.084300][73646:73646] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693994866.084314][73646:73646] CHIP:IN: SecureSession[0x564174dd8940]: Allocated Type:1 LSID:4685 + [1693994866.084319][73646:73646] CHIP:SC: Assigned local session key ID 4685 + [1693994866.084321][73646:73646] CHIP:SC: Waiting for PBKDF param request + [1693994866.084326][73646:73646] CHIP:DIS: Updating services using commissioning mode 1 + disabled: true - Commission TH to DUT by using --dac_provider parameter + - label: + "Step 24: CD Test Vector: The product_id_array field is empty TLV + array." + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform - execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform - ./chip-all-clusters-app --trace_decode 1 --dac_provider ~/connectedhomeip/credentials/development/commissioner_dut/struct_dac_valid_in_past/test_case_vector.json + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/test_case_vector.json --product-id 32768 Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693994601.641020][73535:73535] CHIP:EM: <<< [E:59651r S:16286 M:42317111 (Ack:165156221)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693994601.641028][73535:73535] CHIP:IN: (S) Sending msg 42317111 on secure session with LSID: 16286 + [1693994601.641053][73535:73535] CHIP:DMG: Command handler moving to [CommandSen] + [1693994601.641057][73535:73535] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693994601.641064][73535:73535] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693994601.641067][73535:73535] CHIP:SVR: Failsafe timer expired + [1693994601.641071][73535:73535] CHIP:IN: SecureSession[0x558132a3cae0]: MarkForEviction Type:1 LSID:16286 + [1693994601.641075][73535:73535] CHIP:SC: SecureSession[0x558132a3cae0, LSID:16286]: State change 'kActive' --> 'kPendingEviction' + [1693994601.641091][73535:73535] CHIP:IN: SecureSession[0x558132a3cae0]: Released - Type:1 LSID:16286 + [1693994601.641101][73535:73535] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693994601.641116][73535:73535] CHIP:IN: SecureSession[0x558132a3cae0]: Allocated Type:1 LSID:16288 + [1693994601.641122][73535:73535] CHIP:SC: Assigned local session key ID 16288 + [1693994601.641126][73535:73535] CHIP:SC: Waiting for PBKDF param request + [1693994601.641134][73535:73535] CHIP:DIS: Updating services using commissioning mode 1 + [1693994601.641380][73535:73535] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693994601.641631][73535:73535] CHIP:DL: Using wifi MAC for hostname + [1693994601.641667][73535:73535] CHIP:DIS: Advertise commission parameter vendorID=65521 productID=32768 discriminator=3840/15 cm=1 + [1693994601.641679][73535:73535] CHIP:DIS: Responding with _matterc._udp.local + disabled: true + + - label: + "Step 25: CD Test Vector: The vendor_id field doesnt match the VID in + DAC." + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_vid_mismatch/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 - If the DUT(chip-tool) has to provision to verify the logs:- verify the below mentioned same behaviour log on the DUT (chip-tool): - [1684494415.854066][176461:176463] CHIP:CTL: Received Attestation Information from the device - [1684494415.854069][176461:176463] CHIP:CTL: Successfully finished commissioning step 'SendAttestationRequest' - [1684494415.854072][176461:176463] CHIP:CTL: AutoCommissioner setting attestationElements buffer size 278/278 - [1684494415.854080][176461:176463] CHIP:CTL: Commissioning stage next step: 'SendAttestationRequest' -> 'AttestationVerification' - [1684494415.854085][176461:176463] CHIP:CTL: Performing next commissioning step 'AttestationVerification' - [1684494415.854088][176461:176463] CHIP:CTL: Verifying attestation - [1684494415.860949][176461:176463] CHIP:CTL: Failed in verifying 'Attestation Information' command received from the device: err 300. Look at AttestationVerificationResult enum to understand the errors - [1684494415.860970][176461:176463] CHIP:CTL: Error on commissioning step 'AttestationVerification': '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' - [1684494415.860974][176461:176463] CHIP:CTL: Failed to perform commissioning step 8 - [1684494415.860978][176461:176463] CHIP:CTL: Going from commissioning step 'AttestationVerification' with lastErr = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' -> 'Cleanup' - [1684494415.860990][176461:176463] CHIP:CTL: Performing next commissioning step 'Cleanup' with completion status = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' - [1684494415.860994][176461:176463] CHIP:CTL: Expiring failsafe on proxy 0x7f617c036bd0 + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693994486.893297][73502:73502] CHIP:DMG: + [1693994486.893313][73502:73502] CHIP:EM: <<< [E:21518r S:20806 M:104253722 (Ack:147833640)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693994486.893323][73502:73502] CHIP:IN: (S) Sending msg 104253722 on secure session with LSID: 20806 + [1693994486.893367][73502:73502] CHIP:DMG: Command handler moving to [CommandSen] + [1693994486.893372][73502:73502] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693994486.893379][73502:73502] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693994486.893384][73502:73502] CHIP:SVR: Failsafe timer expired + [1693994486.893388][73502:73502] CHIP:IN: SecureSession[0x561bb3613ad0]: MarkForEviction Type:1 LSID:20806 + [1693994486.893393][73502:73502] CHIP:SC: SecureSession[0x561bb3613ad0, LSID:20806]: State change 'kActive' --> 'kPendingEviction' + [1693994486.893411][73502:73502] CHIP:IN: SecureSession[0x561bb3613ad0]: Released - Type:1 LSID:20806 + [1693994486.893421][73502:73502] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693994486.893442][73502:73502] CHIP:IN: SecureSession[0x561bb3613ad0]: Allocated Type:1 LSID:20808 + [1693994486.893449][73502:73502] CHIP:SC: Assigned local session key ID 20808 + [1693994486.893453][73502:73502] CHIP:SC: Waiting for PBKDF param request + [1693994486.893460][73502:73502] CHIP:DIS: Updating services using commissioning mode 1 + [1693994486.893767][73502:73502] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693994486.894023][73502:73502] CHIP:DL: Using wifi MAC for hostname + [1693994486.894053][73502:73502] CHIP:DIS: Advertise commission parameter vendorID=65521 productID=32768 discriminator=3840/15 cm=1 disabled: true - label: - "Step 8: Repeat step 1 to step 7 and for step 5 set different error - condition: Certification Declaration has only one of the following - fields dac_origin_vendor_id dac_origin_product_id vendor_id field in - the Certification Declaration does not match with the VendorID - attribute found in the Basic Information cluster The Vendor ID in the - DAC does not match the vendor_id field in the Certification - Declaration. The Product ID (PID) the DAC is not present in the - product_id_array field in the Certification Declaration" + "Step 26: DAC Test Vector: Certificate Basic Constraint extension + PathLen field set to 2" verification: | - For each error scenario Factory reset on TH1(all-clusters-app) as explained in step 6 + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset - 1. To Execute ths step for error condition 1 Certification Declaration has only one of the following fields dac_origin_vendor_id dac_origin_product_id follow the below steps - All sample error scenario certificate has generated and presented in ~/connectedhomeip/credentials/development/commissioner_dut/ - Use the appropriate folder to test different scenarios. + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform - execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform - ./chip-all-clusters-app --trace_decode 1 --dac_provider ~/connectedhomeip/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/test_case_vector.json + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/test_case_vector.json --product-id 32768 Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 - If the DUT(chip-tool) has to provision to verify the logs:- verify the below mentioned same behaviour log on the DUT (chip-tool): - [1662459904.540345][32873:32878] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0001 - [1662459904.540349][32873:32878] CHIP:CTL: Received Attestation Information from the device - [1662459904.540352][32873:32878] CHIP:CTL: Successfully finished commissioning step 'SendAttestationRequest' - [1662459904.540358][32873:32878] CHIP:CTL: Commissioning stage next step: 'SendAttestationRequest' -> 'AttestationVerification' - [1662459904.540361][32873:32878] CHIP:CTL: Performing next commissioning step 'AttestationVerification' - [1662459904.540363][32873:32878] CHIP:CTL: Verifying attestation - [1662459904.541210][32873:32878] CHIP:CTL: Failed in verifying 'Attestation Information' command received from the device: err 603. Look at AttestationVerificationResult enum to understand the errors - [1662459904.541219][32873:32878] CHIP:CTL: Error on commissioning step 'AttestationVerification': '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1027: CHIP Error 0x000000AC: Internal error' - [1662459904.541221][32873:32878] CHIP:CTL: Failed to perform commissioning step 8 - [1662459904.541223][32873:32878] CHIP:CTL: Going from commissioning step 'AttestationVerification' with lastErr = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1027: CHIP Error 0x000000AC: Internal error' -> 'Cleanup' - [1662459904.541229][32873:32878] CHIP:CTL: Performing next commissioning step 'Cleanup' with completion status = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1027: CHIP Error 0x000000AC: Internal error' - [1662459904.541231][32873:32878] CHIP:CTL: Expiring failsafe on proxy 0x7f1b8c023460 - [1662459904.541240][32873:32878] CHIP:DMG: ICR moving to [AddingComm] - [1662459904.541244][32873:32878] CHIP:DMG: ICR moving to [AddedComma] - [1662459904.541289][32873:32878] CHIP:IN: Prepared secure message 0x7f1b8c02d208 to 0xFFFFFFFB00000000 (0) of type 0x8 and protocolId (0, 1) on exchange 3056i with MessageCounter:44223388. - [1662459904.541294][32873:32878] CHIP:IN: Sending encrypted msg 0x7f1b8c02d208 with MessageCounter:44223388 to 0xFFFFFFFB00000000 (0) at monotonic time: 0000000003C6523D msec - [1662459904.541346][32873:32878] CHIP:DMG: >> to UDP:[fe80::b7b8:ff3e:9ace:3e12%wlp0s20f3]:5540 | 44223388 | [Interaction Model (1) / InvokeCommandRequest (0x08) / Session = 16788 / Exchange = 3056] + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693996848.934331][74418:74418] CHIP:DMG: + [1693996848.934341][74418:74418] CHIP:EM: <<< [E:42022r S:36447 M:202045280 (Ack:89005990)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693996848.934346][74418:74418] CHIP:IN: (S) Sending msg 202045280 on secure session with LSID: 36447 + [1693996848.934373][74418:74418] CHIP:DMG: Command handler moving to [CommandSen] + [1693996848.934376][74418:74418] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693996848.934380][74418:74418] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693996848.934383][74418:74418] CHIP:SVR: Failsafe timer expired + [1693996848.934385][74418:74418] CHIP:IN: SecureSession[0x559fea0e1c60]: MarkForEviction Type:1 LSID:36447 + [1693996848.934398][74418:74418] CHIP:SC: SecureSession[0x559fea0e1c60, LSID:36447]: State change 'kActive' --> 'kPendingEviction' + [1693996848.934413][74418:74418] CHIP:IN: SecureSession[0x559fea0e1c60]: Released - Type:1 LSID:36447 + [1693996848.934421][74418:74418] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + disabled: true + + - label: + "Step 27: PAI Test Vector: Certificate Key Usage extension cRLSign + field is wrong (present for DAC and not present for PAI)" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/test_case_vector.json --product-id 32768 + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 - 2. Similarly for 2nd error condition i.e. vendor_id field in the Certification Declaration does not match with the VendorID attribute found in the Basic Information cluster , follow the below steps + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693995732.022364][73958:73958] CHIP:EM: <<< [E:45133r S:28926 M:139363549 (Ack:191197291)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693995732.022372][73958:73958] CHIP:IN: (S) Sending msg 139363549 on secure session with LSID: 28926 + [1693995732.022397][73958:73958] CHIP:DMG: Command handler moving to [CommandSen] + [1693995732.022400][73958:73958] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693995732.022406][73958:73958] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693995732.022409][73958:73958] CHIP:SVR: Failsafe timer expired + [1693995732.022412][73958:73958] CHIP:IN: SecureSession[0x5637ef6d5990]: MarkForEviction Type:1 LSID:28926 + [1693995732.022416][73958:73958] CHIP:SC: SecureSession[0x5637ef6d5990, LSID:28926]: State change 'kActive' --> 'kPendingEviction' + [1693995732.022432][73958:73958] CHIP:IN: SecureSession[0x5637ef6d5990]: Released - Type:1 LSID:28926 + [1693995732.022442][73958:73958] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693995732.022459][73958:73958] CHIP:IN: SecureSession[0x5637ef6d5990]: Allocated Type:1 LSID:28928 + [1693995732.022465][73958:73958] CHIP:SC: Assigned local session key ID 28928 + [1693995732.022469][73958:73958] CHIP:SC: Waiting for PBKDF param request + [1693995732.022476][73958:73958] CHIP:DIS: Updating services using commissioning mode 1 + [1693995732.022723][73958:73958] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693995732.023005][73958:73958] CHIP:DL: Using wifi MAC for hostname + [1693995732.023042][73958:73958] CHIP:DIS: Advertise commission parameter vendorID=65521 productID=32768 discriminator=3840/15 cm=1 + disabled: true - All sample error scenario certificate has generated and present in ~/connectedhomeip/credentials/development/commissioner_dut/ - Use the appropriate folder to test different scenario. + - label: + "Step 28: CD Test Vector: Invalid Signer Info digest algorithm SHA1." + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset - vendor_id field in the Certification Declaration does not match with the VendorID attribute found in the Basic Information cluster - connectedhomeip/credentials/development/commissioner_dut/struct_cd_vid_mismatch - & use the sample json test_case_vector.json + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform - execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform - ./chip-all-clusters-app --trace_decode 1 --dac_provider ~/connectedhomeip/credentials/development/commissioner_dut/struct_cd_vid_mismatch/test_case_vector.json + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/test_case_vector.json --product-id 32768 Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 - If the DUT(chip-tool) has to provision to verify the logs:- verify the below mentioned same behaviour log on the DUT (chip-tool): - [1684495876.434738][176910:176912] CHIP:DMG: }, - [1684495876.434750][176910:176912] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0001 - [1684495876.434754][176910:176912] CHIP:CTL: Received Attestation Information from the device - [1684495876.434758][176910:176912] CHIP:CTL: Successfully finished commissioning step 'SendAttestationRequest' - [1684495876.434761][176910:176912] CHIP:CTL: AutoCommissioner setting attestationElements buffer size 278/278 - [1684495876.434768][176910:176912] CHIP:CTL: Commissioning stage next step: 'SendAttestationRequest' -> 'AttestationVerification' - [1684495876.434772][176910:176912] CHIP:CTL: Performing next commissioning step 'AttestationVerification' - [1684495876.434774][176910:176912] CHIP:CTL: Verifying attestation - [1684495876.441867][176910:176912] CHIP:CTL: Failed in verifying 'Attestation Information' command received from the device: err 604. Look at AttestationVerificationResult enum to understand the errors - [1684495876.441878][176910:176912] CHIP:CTL: Error on commissioning step 'AttestationVerification': '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' - [1684495876.441881][176910:176912] CHIP:CTL: Failed to perform commissioning step 8 - [1684495876.441885][176910:176912] CHIP:CTL: Going from commissioning step 'AttestationVerification' with lastErr = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' -> 'Cleanup' - [1684495876.441891][176910:176912] CHIP:CTL: Performing next commissioning step 'Cleanup' with completion status = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' - [1684495876.441894][176910:176912] CHIP:CTL: Expiring failsafe on proxy 0x7f1fc0036bd0 - [1684495876.441907][176910:176912] CHIP:DMG: ICR moving to [AddingComm] - [1684495876.441912][176910:176912] CHIP:DMG: ICR moving to [AddedComma] - [1684495876.441967][176910:176912] CHIP:EM: <<< [E:25914i M:173255705] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:08 (IM:InvokeCommandRequest) - [1684495876.441973][176910:176912] CHIP:IN: (S) Sending msg 173255705 on secure session with LSID: 21068 - [1684495876.442029][176910:176912] CHIP:DMG: >> to UDP:[fe80::529f:9f59:cfec:7130%wlp0s20f3]:5540 | 173255705 | [Interaction Model (1) / InvokeCommandRequest + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693994367.331030][73424:73424] CHIP:EM: <<< [E:34584r S:41358 M:224843539 (Ack:179898907)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693994367.331036][73424:73424] CHIP:IN: (S) Sending msg 224843539 on secure session with LSID: 41358 + [1693994367.331059][73424:73424] CHIP:DMG: Command handler moving to [CommandSen] + [1693994367.331062][73424:73424] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693994367.331067][73424:73424] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693994367.331070][73424:73424] CHIP:SVR: Failsafe timer expired + [1693994367.331073][73424:73424] CHIP:IN: SecureSession[0x55c991abec90]: MarkForEviction Type:1 LSID:41358 + [1693994367.331079][73424:73424] CHIP:SC: SecureSession[0x55c991abec90, LSID:41358]: State change 'kActive' --> 'kPendingEviction' + [1693994367.331090][73424:73424] CHIP:IN: SecureSession[0x55c991abec90]: Released - Type:1 LSID:41358 + [1693994367.331097][73424:73424] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693994367.331111][73424:73424] CHIP:IN: SecureSession[0x55c991abec90]: Allocated Type:1 LSID:41360 + [1693994367.331116][73424:73424] CHIP:SC: Assigned local session key ID 41360 + [1693994367.331118][73424:73424] CHIP:SC: Waiting for PBKDF param request + [1693994367.331124][73424:73424] CHIP:DIS: Updating services using commissioning mode 1 + [1693994367.331310][73424:73424] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693994367.331527][73424:73424] CHIP:DL: Using wifi MAC for hostname + [1693994367.331559][73424:73424] CHIP:DIS: Advertise commission parameter vendorID=65521 productID=32768 discriminator=3840/15 cm=1 + [1693994367.331568][73424:73424] CHIP:DIS: Responding with _matterc._udp.local + [1693994367.331572][73424:73424] CHIP:DIS: Responding with D90EF381193D21EB._matterc._udp.loc + disabled: true + + - label: + "Step 29: PAI Test Vector: Fallback VID and PID encoding example: + invalid VID encoding" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/test_case_vector.json --product-id 177 - 3. Similary for 3rd error condition follow the below steps - All sample error scenario certificate has generated and present in ~/connectedhomeip/credentials/development/commissioner_dut/ - Use the appropriate folder to test different scenario. + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693997239.698633][74597:74597] CHIP:EM: <<< [E:5732r S:61163 M:138027290 (Ack:110202572)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693997239.698640][74597:74597] CHIP:IN: (S) Sending msg 138027290 on secure session with LSID: 61163 + [1693997239.698700][74597:74597] CHIP:DMG: Command handler moving to [CommandSen] + [1693997239.698706][74597:74597] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693997239.698716][74597:74597] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693997239.698723][74597:74597] CHIP:SVR: Failsafe timer expired + [1693997239.698727][74597:74597] CHIP:IN: SecureSession[0x55d7d8191960]: MarkForEviction Type:1 LSID:61163 + [1693997239.698734][74597:74597] CHIP:SC: SecureSession[0x55d7d8191960, LSID:61163]: State change 'kActive' --> 'kPendingEviction' + [1693997239.698761][74597:74597] CHIP:IN: SecureSession[0x55d7d8191960]: Released - Type:1 LSID:61163 + [1693997239.698781][74597:74597] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693997239.698830][74597:74597] CHIP:IN: SecureSession[0x55d7d8191960]: Allocated Type:1 LSID:61165 + [1693997239.698841][74597:74597] CHIP:SC: Assigned local session key ID 61165 + [1693997239.698848][74597:74597] CHIP:SC: Waiting for PBKDF param request + [1693997239.698862][74597:74597] CHIP:DIS: Updating services using commissioning mode 1 + [1693997239.699249][74597:74597] CHIP:DIS: CHIP minimal mDNS started advertising. + disabled: true - vendor_id field in the Certification Declaration does not match with the VendorID attribute found in the Basic Information cluster - connectedhomeip/credentials/development/commissioner_dut/struct_cd_vid_mismatch - & use the sample json test_case_vector.json + - label: + "Step 30: PAI Test Vector: Certificate Basic Constraint extension + critical field is set as 'non-critical'" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset - execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform - ./chip-all-clusters-app --trace_decode 1 --dac_provider ~/connectedhomeip/credentials/development/commissioner_dut/struct_cd_vid_mismatch/test_case_vector.json + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/test_case_vector.json --product-id 32768 Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 - If the DUT(chip-tool) has to provision to verify the logs:- verify the below mentioned same behaviour log on the DUT (chip-tool): - [1684495930.801406][176931:176933] CHIP:CTL: Received Attestation Information from the device - [1684495930.801409][176931:176933] CHIP:CTL: Successfully finished commissioning step 'SendAttestationRequest' - [1684495930.801411][176931:176933] CHIP:CTL: AutoCommissioner setting attestationElements buffer size 278/278 - [1684495930.801417][176931:176933] CHIP:CTL: Commissioning stage next step: 'SendAttestationRequest' -> 'AttestationVerification' - [1684495930.801420][176931:176933] CHIP:CTL: Performing next commissioning step 'AttestationVerification' - [1684495930.801421][176931:176933] CHIP:CTL: Verifying attestation - [1684495930.808506][176931:176933] CHIP:CTL: Failed in verifying 'Attestation Information' command received from the device: err 604. Look at AttestationVerificationResult enum to understand the errors - [1684495930.808521][176931:176933] CHIP:CTL: Error on commissioning step 'AttestationVerification': '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' - [1684495930.808524][176931:176933] CHIP:CTL: Failed to perform commissioning step 8 - [1684495930.808526][176931:176933] CHIP:CTL: Going from commissioning step 'AttestationVerification' with lastErr = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' -> 'Cleanup' - [1684495930.808533][176931:176933] CHIP:CTL: Performing next commissioning step 'Cleanup' with completion status = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' - [1684495930.808535][176931:176933] CHIP:CTL: Expiring failsafe on proxy 0x7fc730036bd0 - [1684495930.808548][176931:176933] CHIP:DMG: ICR moving to [AddingComm] - [1684495930.808551][176931:176933] CHIP:DMG: ICR moving to [AddedComma] - [1684495930.808609][176931:176933] CHIP:EM: <<< [E:8667i M:71525087] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:08 (IM:InvokeCommandRequest) - [1684495930.808614][176931:176933] CHIP:IN: (S) Sending msg 71525087 on secure session with LSID: 21274 + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693995285.889838][73846:73846] CHIP:EM: <<< [E:45422r S:62769 M:160526158 (Ack:96854025)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693995285.889844][73846:73846] CHIP:IN: (S) Sending msg 160526158 on secure session with LSID: 62769 + [1693995285.889866][73846:73846] CHIP:DMG: Command handler moving to [CommandSen] + [1693995285.889870][73846:73846] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693995285.889876][73846:73846] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693995285.889880][73846:73846] CHIP:SVR: Failsafe timer expired + [1693995285.889883][73846:73846] CHIP:IN: SecureSession[0x564a0507ca40]: MarkForEviction Type:1 LSID:62769 + [1693995285.889887][73846:73846] CHIP:SC: SecureSession[0x564a0507ca40, LSID:62769]: State change 'kActive' --> 'kPendingEviction' + [1693995285.889904][73846:73846] CHIP:IN: SecureSession[0x564a0507ca40]: Released - Type:1 LSID:62769 + [1693995285.889913][73846:73846] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693995285.889932][73846:73846] CHIP:IN: SecureSession[0x564a0507ca40]: Allocated Type:1 LSID:62771 + [1693995285.889938][73846:73846] CHIP:SC: Assigned local session key ID 62771 + [1693995285.889941][73846:73846] CHIP:SC: Waiting for PBKDF param request + [1693995285.889948][73846:73846] CHIP:DIS: Updating services using commissioning mode 1 + [1693995285.890194][73846:73846] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693995285.890476][73846:73846] CHIP:DL: Using wifi MAC for hostname + [1693995285.890515][73846:73846] CHIP:DIS: Advertise commission parameter vendorID=65521 productID=32768 discriminator=3840/15 cm=1 + disabled: true + + - label: + "Step 31: DAC Test Vector: Fallback VID and PID encoding example from + spec: invalid, since substring following Mvid: is not exactly 4 + uppercase hexadecimal digits" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/test_case_vector.json --product-id 177 - 4. Similary for 4th error condition follow the below steps + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 - All sample error scenario certificate has generated and present in ~/connectedhomeip/credentials/development/commissioner_dut/ - Use the appropriate folder to test different scenario. + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693997435.474777][74695:74695] CHIP:EM: <<< [E:47404r S:56892 M:148152004 (Ack:209702583)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693997435.474785][74695:74695] CHIP:IN: (S) Sending msg 148152004 on secure session with LSID: 56892 + [1693997435.474824][74695:74695] CHIP:DMG: Command handler moving to [CommandSen] + [1693997435.474828][74695:74695] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693997435.474835][74695:74695] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693997435.474838][74695:74695] CHIP:SVR: Failsafe timer expired + [1693997435.474842][74695:74695] CHIP:IN: SecureSession[0x55acdcc83540]: MarkForEviction Type:1 LSID:56892 + [1693997435.474846][74695:74695] CHIP:SC: SecureSession[0x55acdcc83540, LSID:56892]: State change 'kActive' --> 'kPendingEviction' + [1693997435.474861][74695:74695] CHIP:IN: SecureSession[0x55acdcc83540]: Released - Type:1 LSID:56892 + [1693997435.474869][74695:74695] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693997435.474885][74695:74695] CHIP:IN: SecureSession[0x55acdcc83540]: Allocated Type:1 LSID:56894 + [1693997435.474890][74695:74695] CHIP:SC: Assigned local session key ID 56894 + [1693997435.474892][74695:74695] CHIP:SC: Waiting for PBKDF param request + disabled: true - The Vendor ID in the DAC does not match the vendor_id field in the Certification Declaration. - connectedhomeip/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch - & use the sample json test_case_vector.json + - label: + "Step 32: PAI Test Vector: Certificate Key Usage extension critical + field is missing" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset - Commission TH to DUT by using --dac_provider parameter + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform - execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform - ./chip-all-clusters-app --trace_decode 1 --dac_provider ~/connectedhomeip/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/test_case_vector.json + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/test_case_vector.json --product-id 32768 Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 - If the DUT(chip-tool) has to provision to verify the logs:- verify the below mentioned same behaviour log on the DUT (chip-tool): - [1684496002.435208][176959:176961] CHIP:CTL: Performing next commissioning step 'AttestationVerification' - [1684496002.435210][176959:176961] CHIP:CTL: Verifying attestation - [1684496002.442231][176959:176961] CHIP:CTL: Failed in verifying 'Attestation Information' command received from the device: err 605. Look at AttestationVerificationResult enum to understand the errors - [1684496002.442244][176959:176961] CHIP:CTL: Error on commissioning step 'AttestationVerification': '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' - [1684496002.442248][176959:176961] CHIP:CTL: Failed to perform commissioning step 8 - [1684496002.442252][176959:176961] CHIP:CTL: Going from commissioning step 'AttestationVerification' with lastErr = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' -> 'Cleanup' - [1684496002.442259][176959:176961] CHIP:CTL: Performing next commissioning step 'Cleanup' with completion status = '../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1075: CHIP Error 0x000000AC: Internal error' - [1684496002.442262][176959:176961] CHIP:CTL: Expiring failsafe on proxy 0x7f0354036bd0 - [1684496002.442275][176959:176961] CHIP:DMG: ICR moving to [AddingComm] - [1684496002.442279][176959:176961] CHIP:DMG: ICR moving to [AddedComma] - [1684496002.442334][176959:176961] CHIP:EM: <<< [E:26577i M:70580591] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:08 (IM:InvokeCommandRequest) - [1684496002.442340][176959:176961] CHIP:IN: (S) Sending msg 70580591 on secure session with LSID: 56268 - [1684496002.442397][176959:176961] CHIP:DMG: >> to UDP:[fe80::529f:9f59:cfec:7130%wlp0s20f3]:5540 | 70580591 | [Interaction Model (1) / InvokeCommandRequest (0x08) / Session = 4448 / Exchange = 26577] + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693993961.436864][73215:73215] CHIP:EM: <<< [E:41036r S:15775 M:136220042 (Ack:221049132)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693993961.436870][73215:73215] CHIP:IN: (S) Sending msg 136220042 on secure session with LSID: 15775 + [1693993961.436897][73215:73215] CHIP:DMG: Command handler moving to [CommandSen] + [1693993961.436901][73215:73215] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693993961.436908][73215:73215] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693993961.436912][73215:73215] CHIP:SVR: Failsafe timer expired + [1693993961.436915][73215:73215] CHIP:IN: SecureSession[0x55cace3a1a70]: MarkForEviction Type:1 LSID:15775 + [1693993961.436919][73215:73215] CHIP:SC: SecureSession[0x55cace3a1a70, LSID:15775]: State change 'kActive' --> 'kPendingEviction' + [1693993961.436936][73215:73215] CHIP:IN: SecureSession[0x55cace3a1a70]: Released - Type:1 LSID:15775 + [1693993961.436944][73215:73215] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693993961.436983][73215:73215] CHIP:IN: SecureSession[0x55cace3a1a70]: Allocated Type:1 LSID:15777 + [1693993961.436990][73215:73215] CHIP:SC: Assigned local session key ID 15777 + [1693993961.436994][73215:73215] CHIP:SC: Waiting for PBKDF param request + [1693993961.437001][73215:73215] CHIP:DIS: Updating services using commissioning mode 1 + [1693993961.437268][73215:73215] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693993961.437596][73215:73215] CHIP:DL: Using wifi MAC for hostname + [1693993961.437684][73215:73215] CHIP:DIS: Advertise commission parameter vendorID=65521 productID=32768 discriminator=3840/15 cm=1 + disabled: true + + - label: + "Step 33: CD Test Vector: The product_id_array field has one PID value + that doesnt match the PID value in DAC." + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693994601.641020][73535:73535] CHIP:EM: <<< [E:59651r S:16286 M:42317111 (Ack:165156221)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693994601.641028][73535:73535] CHIP:IN: (S) Sending msg 42317111 on secure session with LSID: 16286 + [1693994601.641053][73535:73535] CHIP:DMG: Command handler moving to [CommandSen] + [1693994601.641057][73535:73535] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693994601.641064][73535:73535] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693994601.641067][73535:73535] CHIP:SVR: Failsafe timer expired + [1693994601.641071][73535:73535] CHIP:IN: SecureSession[0x558132a3cae0]: MarkForEviction Type:1 LSID:16286 + [1693994601.641075][73535:73535] CHIP:SC: SecureSession[0x558132a3cae0, LSID:16286]: State change 'kActive' --> 'kPendingEviction' + [1693994601.641091][73535:73535] CHIP:IN: SecureSession[0x558132a3cae0]: Released - Type:1 LSID:16286 + [1693994601.641101][73535:73535] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693994601.641116][73535:73535] CHIP:IN: SecureSession[0x558132a3cae0]: Allocated Type:1 LSID:16288 + [1693994601.641122][73535:73535] CHIP:SC: Assigned local session key ID 16288 + [1693994601.641126][73535:73535] CHIP:SC: Waiting for PBKDF param request + [1693994601.641134][73535:73535] CHIP:DIS: Updating services using commissioning mode 1 + [1693994601.641380][73535:73535] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693994601.641631][73535:73535] CHIP:DL: Using wifi MAC for hostname + [1693994601.641667][73535:73535] CHIP:DIS: Advertise commission parameter vendorID=65521 productID=32768 discriminator=3840/15 cm=1 + [1693994601.641679][73535:73535] CHIP:DIS: Responding with _matterc._udp.local + disabled: true + + - label: + "Step 34: DAC Test Vector: Certificate Basic Constraint extension + critical field is set as 'non-critical'" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693994309.863989][73393:73393] CHIP:EM: <<< [E:13816r S:50685 M:35649942 (Ack:85667731)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693994309.863996][73393:73393] CHIP:IN: (S) Sending msg 35649942 on secure session with LSID: 50685 + [1693994309.864019][73393:73393] CHIP:DMG: Command handler moving to [CommandSen] + [1693994309.864022][73393:73393] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693994309.864028][73393:73393] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693994309.864031][73393:73393] CHIP:SVR: Failsafe timer expired + [1693994309.864034][73393:73393] CHIP:IN: SecureSession[0x560989b2fa30]: MarkForEviction Type:1 LSID:50685 + [1693994309.864038][73393:73393] CHIP:SC: SecureSession[0x560989b2fa30, LSID:50685]: State change 'kActive' --> 'kPendingEviction' + [1693994309.864053][73393:73393] CHIP:IN: SecureSession[0x560989b2fa30]: Released - Type:1 LSID:50685 + [1693994309.864060][73393:73393] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693994309.864075][73393:73393] CHIP:IN: SecureSession[0x560989b2fa30]: Allocated Type:1 LSID:50687 + [1693994309.864081][73393:73393] CHIP:SC: Assigned local session key ID 50687 + [1693994309.864084][73393:73393] CHIP:SC: Waiting for PBKDF param request + [1693994309.864091][73393:73393] CHIP:DIS: Updating services using commissioning mode 1 + [1693994309.864315][73393:73393] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693994309.864596][73393:73393] CHIP:DL: Using wifi MAC for hostname + [1693994309.864631][73393:73393] CHIP:DIS: Advertise commission parameter vendorID=65521 productID=32768 discriminator=3840/15 cm=1 + [1693994309.864643][73393:73393] CHIP:DIS: Responding with _matterc._udp.local + [1693994309.864648][73393:73393] CHIP:DIS: Responding with 6D23ADC224752D59._matterc._udp.local + [1693994309.864652][73393:73393] CHIP:DIS: Responding with 8C1D96786A130000.local + disabled: true + + - label: + "Step 35: DAC Test Vector: Fallback VID and PID encoding example from + spec: invalid, since substring following Mvid: is not exactly 4 + uppercase hexadecimal digits" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/test_case_vector.json --product-id 177 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693995171.970121][73778:73778] CHIP:EM: <<< [E:44422r S:47062 M:155461515 (Ack:70593203)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693995171.970128][73778:73778] CHIP:IN: (S) Sending msg 155461515 on secure session with LSID: 47062 + [1693995171.970162][73778:73778] CHIP:DMG: Command handler moving to [CommandSen] + [1693995171.970165][73778:73778] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693995171.970170][73778:73778] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693995171.970173][73778:73778] CHIP:SVR: Failsafe timer expired + [1693995171.970176][73778:73778] CHIP:IN: SecureSession[0x55ef8a8d4550]: MarkForEviction Type:1 LSID:47062 + [1693995171.970179][73778:73778] CHIP:SC: SecureSession[0x55ef8a8d4550, LSID:47062]: State change 'kActive' --> 'kPendingEviction' + [1693995171.970191][73778:73778] CHIP:IN: SecureSession[0x55ef8a8d4550]: Released - Type:1 LSID:47062 + [1693995171.970198][73778:73778] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693995171.970211][73778:73778] CHIP:IN: SecureSession[0x55ef8a8d4550]: Allocated Type:1 LSID:47064 + [1693995171.970216][73778:73778] CHIP:SC: Assigned local session key ID 47064 + [1693995171.970218][73778:73778] CHIP:SC: Waiting for PBKDF param request + disabled: true + + - label: + "Step 36: DAC Test Vector: Certificate Basic Constraint extension + critical field is missing" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. please use the equivalent command on your respective platform to perform a factory reset Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693997539.063813][74749:74749] CHIP:DMG: + [1693997539.063820][74749:74749] CHIP:EM: <<< [E:17379r S:53226 M:29102807 (Ack:182470622)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693997539.063826][74749:74749] CHIP:IN: (S) Sending msg 29102807 on secure session with LSID: 53226 + [1693997539.063845][74749:74749] CHIP:DMG: Command handler moving to [CommandSen] + [1693997539.063848][74749:74749] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693997539.063852][74749:74749] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693997539.063854][74749:74749] CHIP:SVR: Failsafe timer expired + [1693997539.063857][74749:74749] CHIP:IN: SecureSession[0x55bfe0573aa0]: MarkForEviction Type:1 LSID:53226 + [1693997539.063859][74749:74749] CHIP:SC: SecureSession[0x55bfe0573aa0, LSID:53226]: State change 'kActive' --> 'kPendingEviction' + [1693997539.063872][74749:74749] CHIP:IN: SecureSession[0x55bfe0573aa0]: Released - Type:1 LSID:53226 + [1693997539.063879][74749:74749] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693997539.063893][74749:74749] CHIP:IN: SecureSession[0x55bfe0573aa0]: Allocated Type:1 LSID:53228 + [1693997539.063897][74749:74749] CHIP:SC: Assigned local session key ID 53228 + [1693997539.063900][74749:74749] CHIP:SC: Waiting for PBKDF param request + [1693997539.063905][74749:74749] CHIP:DIS: Updating services using commissioning mode 1 + [1693997539.064082][74749:74749] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693997539.064286][74749:74749] CHIP:DL: Using wifi MAC for hostname + disabled: true + + - label: + "Step 37: PAI Test Vector: Certificate Key Usage extension critical + field is set as 'non-critical'" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693995025.206031][73723:73723] CHIP:EM: <<< [E:52837r S:34496 M:253072011 (Ack:204014627)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693995025.206038][73723:73723] CHIP:IN: (S) Sending msg 253072011 on secure session with LSID: 34496 + [1693995025.206074][73723:73723] CHIP:DMG: Command handler moving to [CommandSen] + [1693995025.206077][73723:73723] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693995025.206084][73723:73723] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693995025.206088][73723:73723] CHIP:SVR: Failsafe timer expired + [1693995025.206091][73723:73723] CHIP:IN: SecureSession[0x563c42ebaa40]: MarkForEviction Type:1 LSID:34496 + [1693995025.206094][73723:73723] CHIP:SC: SecureSession[0x563c42ebaa40, LSID:34496]: State change 'kActive' --> 'kPendingEviction' + [1693995025.206106][73723:73723] CHIP:IN: SecureSession[0x563c42ebaa40]: Released - Type:1 LSID:34496 + [1693995025.206114][73723:73723] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693995025.206129][73723:73723] CHIP:IN: SecureSession[0x563c42ebaa40]: Allocated Type:1 LSID:34498 + [1693995025.206134][73723:73723] CHIP:SC: Assigned local session key ID 34498 + [1693995025.206137][73723:73723] CHIP:SC: Waiting for PBKDF param request + disabled: true + + - label: + "Step 38: PAI Test Vector: Fallback VID and PID encoding example: + invalid PID and VID prefixes" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/test_case_vector.json --product-id 177 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693996721.242096][74349:74349] CHIP:EM: <<< [E:47891r S:48954 M:258386198 (Ack:60536202)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693996721.242101][74349:74349] CHIP:IN: (S) Sending msg 258386198 on secure session with LSID: 48954 + [1693996721.242123][74349:74349] CHIP:DMG: Command handler moving to [CommandSen] + [1693996721.242126][74349:74349] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693996721.242132][74349:74349] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693996721.242135][74349:74349] CHIP:SVR: Failsafe timer expired + [1693996721.242138][74349:74349] CHIP:IN: SecureSession[0x55d6b6c90c30]: MarkForEviction Type:1 LSID:48954 + [1693996721.242141][74349:74349] CHIP:SC: SecureSession[0x55d6b6c90c30, LSID:48954]: State change 'kActive' --> 'kPendingEviction' + [1693996721.242152][74349:74349] CHIP:IN: SecureSession[0x55d6b6c90c30]: Released - Type:1 LSID:48954 + [1693996721.242160][74349:74349] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693996721.242174][74349:74349] CHIP:IN: SecureSession[0x55d6b6c90c30]: Allocated Type:1 LSID:48956 + [1693996721.242179][74349:74349] CHIP:SC: Assigned local session key ID 48956 + [1693996721.242181][74349:74349] CHIP:SC: Waiting for PBKDF param request + [1693996721.242186][74349:74349] CHIP:DIS: Updating services using commissioning mode 1 + [1693996721.242372][74349:74349] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693996721.242610][74349:74349] CHIP:DL: Using wifi MAC for hostname + disabled: true + + - label: + "Step 39: CD Test Vector: Invalid CMS signature algorithm + ECDSA_WITH_SHA1." + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693995350.564731][73881:73881] CHIP:EM: <<< [E:31060r S:37954 M:110559466 (Ack:22034170)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693995350.564739][73881:73881] CHIP:IN: (S) Sending msg 110559466 on secure session with LSID: 37954 + [1693995350.564804][73881:73881] CHIP:DMG: Command handler moving to [CommandSen] + [1693995350.564809][73881:73881] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693995350.564815][73881:73881] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693995350.564821][73881:73881] CHIP:SVR: Failsafe timer expired + [1693995350.564824][73881:73881] CHIP:IN: SecureSession[0x555ee4e66ad0]: MarkForEviction Type:1 LSID:37954 + [1693995350.564828][73881:73881] CHIP:SC: SecureSession[0x555ee4e66ad0, LSID:37954]: State change 'kActive' --> 'kPendingEviction' + [1693995350.564846][73881:73881] CHIP:IN: SecureSession[0x555ee4e66ad0]: Released - Type:1 LSID:37954 + [1693995350.564855][73881:73881] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693995350.564874][73881:73881] CHIP:IN: SecureSession[0x555ee4e66ad0]: Allocated Type:1 LSID:37956 + [1693995350.564880][73881:73881] CHIP:SC: Assigned local session key ID 37956 + [1693995350.564884][73881:73881] CHIP:SC: Waiting for PBKDF param request + [1693995350.564891][73881:73881] CHIP:DIS: Updating services using commissioning mode 1 + [1693995350.565399][73881:73881] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693995350.565716][73881:73881] CHIP:DL: Using wifi MAC for hostname + [1693995350.565759][73881:73881] CHIP:DIS: Advertise commission parameter vendorID=65521 productID=32768 discriminator=3840/15 cm=1 + disabled: true + + - label: + "Step 40: PAI Test Vector: Mix of Fallback and Matter OID encoding for + VID and PID: invalid, PID is using Matter OID then VID must also use + Matter OID" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/test_case_vector.json --product-id 177 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693996944.027234][74452:74452] CHIP:EM: <<< [E:15428r S:21228 M:66013482 (Ack:15185004)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693996944.027239][74452:74452] CHIP:IN: (S) Sending msg 66013482 on secure session with LSID: 21228 + [1693996944.027258][74452:74452] CHIP:DMG: Command handler moving to [CommandSen] + [1693996944.027261][74452:74452] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693996944.027265][74452:74452] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693996944.027267][74452:74452] CHIP:SVR: Failsafe timer expired + [1693996944.027270][74452:74452] CHIP:IN: SecureSession[0x55f1c2dc3ad0]: MarkForEviction Type:1 LSID:21228 + [1693996944.027273][74452:74452] CHIP:SC: SecureSession[0x55f1c2dc3ad0, LSID:21228]: State change 'kActive' --> 'kPendingEviction' + disabled: true + + - label: + "Step 41: CD Test Vector: The authorized_paa_list contains three PAAs + none of which is a valid PAA authorized to sign the PAI." + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693994994.295582][73706:73706] CHIP:EM: <<< [E:29330r S:9576 M:87938545 (Ack:262262590)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693994994.295590][73706:73706] CHIP:IN: (S) Sending msg 87938545 on secure session with LSID: 9576 + [1693994994.295630][73706:73706] CHIP:DMG: Command handler moving to [CommandSen] + [1693994994.295633][73706:73706] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693994994.295640][73706:73706] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693994994.295643][73706:73706] CHIP:SVR: Failsafe timer expired + [1693994994.295647][73706:73706] CHIP:IN: SecureSession[0x55ea1bc20f20]: MarkForEviction Type:1 LSID:9576 + [1693994994.295650][73706:73706] CHIP:SC: SecureSession[0x55ea1bc20f20, LSID:9576]: State change 'kActive' --> 'kPendingEviction' + [1693994994.295666][73706:73706] CHIP:IN: SecureSession[0x55ea1bc20f20]: Released - Type:1 LSID:9576 + [1693994994.295674][73706:73706] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693994994.295692][73706:73706] CHIP:IN: SecureSession[0x55ea1bc20f20]: Allocated Type:1 LSID:9578 + [1693994994.295697][73706:73706] CHIP:SC: Assigned local session key ID 9578 + [1693994994.295701][73706:73706] CHIP:SC: Waiting for PBKDF param request + [1693994994.295708][73706:73706] CHIP:DIS: Updating services using commissioning mode 1 + [1693994994.295955][73706:73706] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693994994.296232][73706:73706] CHIP:DL: Using wifi MAC for hostname + [1693994994.296270][73706:73706] CHIP:DIS: Advertise commission parameter vendorID=65521 productID=32768 discriminator=3840/15 cm=1 + disabled: true + + - label: + "Step 42: DAC Test Vector: Certificate Key Usage extension keyCertSign + field is wrong (present for DAC and not present for PAI)" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693997493.187931][74723:74723] CHIP:IN: (S) Sending msg 140235257 on secure session with LSID: 31830 + [1693997493.187962][74723:74723] CHIP:DMG: Command handler moving to [CommandSen] + [1693997493.187965][74723:74723] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693997493.187970][74723:74723] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693997493.187974][74723:74723] CHIP:SVR: Failsafe timer expired + [1693997493.187977][74723:74723] CHIP:IN: SecureSession[0x55ceb536ba00]: MarkForEviction Type:1 LSID:31830 + [1693997493.187981][74723:74723] CHIP:SC: SecureSession[0x55ceb536ba00, LSID:31830]: State change 'kActive' --> 'kPendingEviction' + [1693997493.187997][74723:74723] CHIP:IN: SecureSession[0x55ceb536ba00]: Released - Type:1 LSID:31830 + [1693997493.188008][74723:74723] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693997493.188029][74723:74723] CHIP:IN: SecureSession[0x55ceb536ba00]: Allocated Type:1 LSID:31832 + [1693997493.188036][74723:74723] CHIP:SC: Assigned local session key ID 31832 + [1693997493.188040][74723:74723] CHIP:SC: Waiting for PBKDF param request + [1693997493.188048][74723:74723] CHIP:DIS: Updating services using commissioning mode 1 + [1693997493.188313][74723:74723] CHIP:DIS: CHIP minimal mDNS started advertising. + disabled: true + + - label: + "Step 43: PAI Test Vector: Certificate validity period starts in the + future" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_pai_valid_in_future/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + 1693994070.857421][73264:73264] CHIP:DMG: peer_address = UDP:[fe80::a70c:61dc:df51:6945%enxd03745ce8f62]:59736 + [1693994070.857423][73264:73264] CHIP:DMG: } + [1693994070.857425][73264:73264] CHIP:DMG: + [1693994070.857437][73264:73264] CHIP:EM: <<< [E:18036r S:31986 M:116453148 (Ack:226659157)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693994070.857443][73264:73264] CHIP:IN: (S) Sending msg 116453148 on secure session with LSID: 31986 + [1693994070.857472][73264:73264] CHIP:DMG: Command handler moving to [CommandSen] + [1693994070.857474][73264:73264] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693994070.857479][73264:73264] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693994070.857482][73264:73264] CHIP:SVR: Failsafe timer expired + [1693994070.857485][73264:73264] CHIP:IN: SecureSession[0x560a76fb7890]: MarkForEviction Type:1 LSID:31986 + [1693994070.857488][73264:73264] CHIP:SC: SecureSession[0x560a76fb7890, LSID:31986]: State change 'kActive' --> 'kPendingEviction' + [1693994070.857500][73264:73264] CHIP:IN: SecureSession[0x560a76fb7890]: Released - Type:1 LSID:31986 + [1693994070.857506][73264:73264] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693994070.857521][73264:73264] CHIP:IN: SecureSession[0x560a76fb7890]: Allocated Type:1 LSID:31988 + [1693994070.857525][73264:73264] CHIP:SC: Assigned local session key ID 31988 + [1693994070.857528][73264:73264] CHIP:SC: Waiting for PBKDF param request + [1693994070.857534][73264:73264] CHIP:DIS: Updating services using commissioning mode 1 + disabled: true + + - label: + "Step 44: PAI Test Vector: Invalid certificate public key curve + secp256k1" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693994937.114088][73683:73683] CHIP:EM: <<< [E:49715r S:13754 M:244879345 (Ack:52354936)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693994937.114096][73683:73683] CHIP:IN: (S) Sending msg 244879345 on secure session with LSID: 13754 + [1693994937.114120][73683:73683] CHIP:DMG: Command handler moving to [CommandSen] + [1693994937.114123][73683:73683] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693994937.114130][73683:73683] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693994937.114133][73683:73683] CHIP:SVR: Failsafe timer expired + [1693994937.114137][73683:73683] CHIP:IN: SecureSession[0x56311376d960]: MarkForEviction Type:1 LSID:13754 + [1693994937.114141][73683:73683] CHIP:SC: SecureSession[0x56311376d960, LSID:13754]: State change 'kActive' --> 'kPendingEviction' + [1693994937.114157][73683:73683] CHIP:IN: SecureSession[0x56311376d960]: Released - Type:1 LSID:13754 + [1693994937.114165][73683:73683] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693994937.114183][73683:73683] CHIP:IN: SecureSession[0x56311376d960]: Allocated Type:1 LSID:13756 + [1693994937.114188][73683:73683] CHIP:SC: Assigned local session key ID 13756 + [1693994937.114191][73683:73683] CHIP:SC: Waiting for PBKDF param request + disabled: true + + - label: + "Step 45: PAI Test Vector: Fallback VID and PID encoding example from + spec: invalid, since substring following Mvid: is not exactly 4 + uppercase hexadecimal digits" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/test_case_vector.json --product-id 177 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693995853.450434][74013:74013] CHIP:EM: <<< [E:22061r S:8988 M:191746032 (Ack:245185446)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693995853.450441][74013:74013] CHIP:IN: (S) Sending msg 191746032 on secure session with LSID: 8988 + [1693995853.450472][74013:74013] CHIP:DMG: Command handler moving to [CommandSen] + [1693995853.450476][74013:74013] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693995853.450484][74013:74013] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693995853.450488][74013:74013] CHIP:SVR: Failsafe timer expired + [1693995853.450491][74013:74013] CHIP:IN: SecureSession[0x5607aeef1750]: MarkForEviction Type:1 LSID:8988 + [1693995853.450496][74013:74013] CHIP:SC: SecureSession[0x5607aeef1750, LSID:8988]: State change 'kActive' --> 'kPendingEviction' + [1693995853.450512][74013:74013] CHIP:IN: SecureSession[0x5607aeef1750]: Released - Type:1 LSID:8988 + [1693995853.450521][74013:74013] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693995853.450539][74013:74013] CHIP:IN: SecureSession[0x5607aeef1750]: Allocated Type:1 LSID:8990 + [1693995853.450545][74013:74013] CHIP:SC: Assigned local session key ID 8990 + [1693995853.450549][74013:74013] CHIP:SC: Waiting for PBKDF param request + [1693995853.450556][74013:74013] CHIP:DIS: Updating services using commissioning mode 1 + [1693995853.450823][74013:74013] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693995853.451182][74013:74013] CHIP:DL: Using wifi MAC for hostname + disabled: true + + - label: "Step 46: CD Test Vector: The certificate_id field is missing." + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_cert_id_missing/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693996750.060075][74364:74364] CHIP:DMG: } + [1693996750.060078][74364:74364] CHIP:DMG: + [1693996750.060094][74364:74364] CHIP:EM: <<< [E:50586r S:36416 M:141787643 (Ack:100004491)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693996750.060102][74364:74364] CHIP:IN: (S) Sending msg 141787643 on secure session with LSID: 36416 + [1693996750.060145][74364:74364] CHIP:DMG: Command handler moving to [CommandSen] + [1693996750.060149][74364:74364] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693996750.060156][74364:74364] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693996750.060161][74364:74364] CHIP:SVR: Failsafe timer expired + [1693996750.060165][74364:74364] CHIP:IN: SecureSession[0x560b65cef920]: MarkForEviction Type:1 LSID:36416 + [1693996750.060169][74364:74364] CHIP:SC: SecureSession[0x560b65cef920, LSID:36416]: State change 'kActive' --> 'kPendingEviction' + [1693996750.060185][74364:74364] CHIP:IN: SecureSession[0x560b65cef920]: Released - Type:1 LSID:36416 + [1693996750.060196][74364:74364] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693996750.060212][74364:74364] CHIP:IN: SecureSession[0x560b65cef920]: Allocated Type:1 LSID:36418 + [1693996750.060218][74364:74364] CHIP:SC: Assigned local session key ID 36418 + disabled: true + + - label: + "Step 47: PAI Test Vector: Certificate Basic Constraint extension + PathLen field set to 2" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693993901.970537][73174:73174] CHIP:EM: <<< [E:59335r S:48771 M:10059134 (Ack:95539287)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693993901.970544][73174:73174] CHIP:IN: (S) Sending msg 10059134 on secure session with LSID: 48771 + [1693993901.970584][73174:73174] CHIP:DMG: Command handler moving to [CommandSen] + [1693993901.970587][73174:73174] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693993901.970593][73174:73174] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693993901.970597][73174:73174] CHIP:SVR: Failsafe timer expired + [1693993901.970599][73174:73174] CHIP:IN: SecureSession[0x55f05c3b8a90]: MarkForEviction Type:1 LSID:48771 + [1693993901.970611][73174:73174] CHIP:SC: SecureSession[0x55f05c3b8a90, LSID:48771]: State change 'kActive' --> 'kPendingEviction' + [1693993901.970623][73174:73174] CHIP:IN: SecureSession[0x55f05c3b8a90]: Released - Type:1 LSID:48771 + [1693993901.970631][73174:73174] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693993901.970646][73174:73174] CHIP:IN: SecureSession[0x55f05c3b8a90]: Allocated Type:1 LSID:48773 + [1693993901.970651][73174:73174] CHIP:SC: Assigned local session key ID 48773 + [1693993901.970654][73174:73174] CHIP:SC: Waiting for PBKDF param request + [1693993901.970660][73174:73174] CHIP:DIS: Updating services using commissioning mode 1 + [1693993901.970850][73174:73174] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693993901.971123][73174:73174] CHIP:DL: Using wifi MAC for hostname + [1693993901.971159][73174:73174] CHIP:DIS: Advertise commission parameter vendorID=65521 productID=32768 discriminator=3840/15 cm=1 + disabled: true + + - label: + "Step 48: DAC Test Vector: Fallback VID and PID encoding example: + invalid PID and VID prefixes" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/test_case_vector.json --product-id 177 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693995817.508655][74000:74000] CHIP:EM: <<< [E:7012r S:58652 M:202734303 (Ack:196860855)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693995817.508663][74000:74000] CHIP:IN: (S) Sending msg 202734303 on secure session with LSID: 58652 + [1693995817.508694][74000:74000] CHIP:DMG: Command handler moving to [CommandSen] + [1693995817.508698][74000:74000] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693995817.508706][74000:74000] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693995817.508710][74000:74000] CHIP:SVR: Failsafe timer expired + [1693995817.508714][74000:74000] CHIP:IN: SecureSession[0x55963a9cecb0]: MarkForEviction Type:1 LSID:58652 + [1693995817.508718][74000:74000] CHIP:SC: SecureSession[0x55963a9cecb0, LSID:58652]: State change 'kActive' --> 'kPendingEviction' + [1693995817.508735][74000:74000] CHIP:IN: SecureSession[0x55963a9cecb0]: Released - Type:1 LSID:58652 + [1693995817.508745][74000:74000] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693995817.508764][74000:74000] CHIP:IN: SecureSession[0x55963a9cecb0]: Allocated Type:1 LSID:58654 + [1693995817.508771][74000:74000] CHIP:SC: Assigned local session key ID 58654 + [1693995817.508775][74000:74000] CHIP:SC: Waiting for PBKDF param request + disabled: true + + - label: + "Step 49: PAI Test Vector: Mix of Fallback and Matter OID encoding for + VID and PID: wrong, Correct values encoded in the common-name are + ignored" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/test_case_vector.json --product-id 177 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693994734.416781][73585:73585] CHIP:EM: <<< [E:35581r S:34867 M:147536613 (Ack:100758548)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693994734.416786][73585:73585] CHIP:IN: (S) Sending msg 147536613 on secure session with LSID: 34867 + [1693994734.416806][73585:73585] CHIP:DMG: Command handler moving to [CommandSen] + [1693994734.416809][73585:73585] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693994734.416813][73585:73585] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693994734.416816][73585:73585] CHIP:SVR: Failsafe timer expired + [1693994734.416818][73585:73585] CHIP:IN: SecureSession[0x56009a87aac0]: MarkForEviction Type:1 LSID:34867 + [1693994734.416821][73585:73585] CHIP:SC: SecureSession[0x56009a87aac0, LSID:34867]: State change 'kActive' --> 'kPendingEviction' + [1693994734.416832][73585:73585] CHIP:IN: SecureSession[0x56009a87aac0]: Released - Type:1 LSID:34867 + [1693994734.416839][73585:73585] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693994734.416853][73585:73585] CHIP:IN: SecureSession[0x56009a87aac0]: Allocated Type:1 LSID:34869 + [1693994734.416858][73585:73585] CHIP:SC: Assigned local session key ID 34869 + [1693994734.416860][73585:73585] CHIP:SC: Waiting for PBKDF param request + [1693994734.416866][73585:73585] CHIP:DIS: Updating services using commissioning mode 1 + [1693994734.417065][73585:73585] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693994734.417279][73585:73585] CHIP:DL: Using wifi MAC for hostname + disabled: true + + - label: + "Step 50: PAI Test Vector: Invalid certificate version field set to + v2(1)" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_pai_cert_version_v2/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693996775.308293][74381:74381] CHIP:EM: <<< [E:59252r S:59214 M:230492921 (Ack:3210801)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693996775.308305][74381:74381] CHIP:IN: (S) Sending msg 230492921 on secure session with LSID: 59214 + [1693996775.308363][74381:74381] CHIP:DMG: Command handler moving to [CommandSen] + [1693996775.308369][74381:74381] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693996775.308378][74381:74381] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693996775.308386][74381:74381] CHIP:SVR: Failsafe timer expired + [1693996775.308389][74381:74381] CHIP:IN: SecureSession[0x556753b05890]: MarkForEviction Type:1 LSID:59214 + [1693996775.308393][74381:74381] CHIP:SC: SecureSession[0x556753b05890, LSID:59214]: State change 'kActive' --> 'kPendingEviction' + [1693996775.308406][74381:74381] CHIP:IN: SecureSession[0x556753b05890]: Released - Type:1 LSID:59214 + [1693996775.308414][74381:74381] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693996775.308430][74381:74381] CHIP:IN: SecureSession[0x556753b05890]: Allocated Type:1 LSID:59216 + [1693996775.308435][74381:74381] CHIP:SC: Assigned local session key ID 59216 + [1693996775.308438][74381:74381] CHIP:SC: Waiting for PBKDF param request + [1693996775.308444][74381:74381] CHIP:DIS: Updating services using commissioning mode 1 + disabled: true + + - label: + "Step 51: PAI Test Vector: Certificate doesnt include Key Usage + extension" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693996976.416497][74466:74466] CHIP:EM: <<< [E:48220r S:55511 M:104568595 (Ack:25835293)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693996976.416502][74466:74466] CHIP:IN: (S) Sending msg 104568595 on secure session with LSID: 55511 + [1693996976.416520][74466:74466] CHIP:DMG: Command handler moving to [CommandSen] + [1693996976.416522][74466:74466] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693996976.416526][74466:74466] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693996976.416529][74466:74466] CHIP:SVR: Failsafe timer expired + [1693996976.416531][74466:74466] CHIP:IN: SecureSession[0x55dadcc3e990]: MarkForEviction Type:1 LSID:55511 + [1693996976.416534][74466:74466] CHIP:SC: SecureSession[0x55dadcc3e990, LSID:55511]: State change 'kActive' --> 'kPendingEviction' + [1693996976.416545][74466:74466] CHIP:IN: SecureSession[0x55dadcc3e990]: Released - Type:1 LSID:55511 + [1693996976.416552][74466:74466] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693996976.416565][74466:74466] CHIP:IN: SecureSession[0x55dadcc3e990]: Allocated Type:1 LSID:55513 + [1693996976.416569][74466:74466] CHIP:SC: Assigned local session key ID 55513 + disabled: true + + - label: + "Step 52: DAC Test Vector: Certificate Basic Constraint extension + PathLen field set to 0" + verification: | + Factory reset the TH(all-clusters-app) - Below mentioned command is for RPI, PIs use equivalent command on their respective platform) + command when using chip-all-clusters-app: sudo rm -rf /tmp/chip_* + + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693993355.537189][72739:72739] CHIP:EM: <<< [E:46949r S:42353 M:75820384 (Ack:69095779)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693993355.537196][72739:72739] CHIP:IN: (S) Sending msg 75820384 on secure session with LSID: 42353 + [1693993355.537235][72739:72739] CHIP:DMG: Command handler moving to [CommandSen] + [1693993355.537239][72739:72739] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693993355.537245][72739:72739] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693993355.537249][72739:72739] CHIP:SVR: Failsafe timer expired + [1693993355.537252][72739:72739] CHIP:IN: SecureSession[0x561e088c6c60]: MarkForEviction Type:1 LSID:42353 + [1693993355.537256][72739:72739] CHIP:SC: SecureSession[0x561e088c6c60, LSID:42353]: State change 'kActive' --> 'kPendingEviction' + [1693993355.537273][72739:72739] CHIP:IN: SecureSession[0x561e088c6c60]: Released - Type:1 LSID:42353 + [1693993355.537284][72739:72739] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693993355.537303][72739:72739] CHIP:IN: SecureSession[0x561e088c6c60]: Allocated Type:1 LSID:42355 + [1693993355.537308][72739:72739] CHIP:SC: Assigned local session key ID 42355 + [1693993355.537311][72739:72739] CHIP:SC: Waiting for PBKDF param request + [1693993355.537318][72739:72739] CHIP:DIS: Updating services using commissioning mode 1 + [1693993355.537588][72739:72739] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693993355.537857][72739:72739] CHIP:DL: Using wifi MAC for hostname + [1693993355.537907][72739:72739] CHIP:DIS: Advertise commission parameter vendorID=65521 productID=32768 discriminator=3840/15 cm=1 + [1693993355.537920][72739:72739] CHIP:DIS: Responding with _matterc._udp.local + [1693993355.537923][72739:72739] CHIP:DIS: Responding with 341D2ED7D15535D3._matterc._udp.local + [1693993355.537926][72739:72739] CHIP:DIS: Responding with 8C1D96786A130000.local + [1693993355.537929][72739:72739] CHIP:DIS: Responding with 8C1D96786A130000.local + disabled: true + + - label: "Step 53: CD Test Vector: The vendor_id field is missing." + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_vid_missing/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + o 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693997124.337991][74541:74541] CHIP:IN: (S) Sending msg 235587990 on secure session with LSID: 11133 + [1693997124.338037][74541:74541] CHIP:DMG: Command handler moving to [CommandSen] + [1693997124.338040][74541:74541] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693997124.338049][74541:74541] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693997124.338053][74541:74541] CHIP:SVR: Failsafe timer expired + [1693997124.338057][74541:74541] CHIP:IN: SecureSession[0x558830cce0e0]: MarkForEviction Type:1 LSID:11133 + [1693997124.338062][74541:74541] CHIP:SC: SecureSession[0x558830cce0e0, LSID:11133]: State change 'kActive' --> 'kPendingEviction' + [1693997124.338084][74541:74541] CHIP:IN: SecureSession[0x558830cce0e0]: Released - Type:1 LSID:11133 + [1693997124.338092][74541:74541] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693997124.338111][74541:74541] CHIP:IN: SecureSession[0x558830cce0e0]: Allocated Type:1 LSID:11135 + [1693997124.338116][74541:74541] CHIP:SC: Assigned local session key ID 11135 + [1693997124.338119][74541:74541] CHIP:SC: Waiting for PBKDF param request + [1693997124.338126][74541:74541] CHIP:DIS: Updating services using commissioning mode 1 + [1693997124.338452][74541:74541] CHIP:DIS: CHIP minimal mDNS started advertising. + disabled: true + + - label: "Step 54: CD Test Vector: The version_number field is missing." + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_version_number_missing/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693994668.691517][73554:73554] CHIP:EM: <<< [E:27863r S:51711 M:249269395 (Ack:246852262)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693994668.691525][73554:73554] CHIP:IN: (S) Sending msg 249269395 on secure session with LSID: 51711 + [1693994668.691552][73554:73554] CHIP:DMG: Command handler moving to [CommandSen] + [1693994668.691556][73554:73554] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693994668.691563][73554:73554] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693994668.691567][73554:73554] CHIP:SVR: Failsafe timer expired + [1693994668.691570][73554:73554] CHIP:IN: SecureSession[0x55646b0adce0]: MarkForEviction Type:1 LSID:51711 + [1693994668.691574][73554:73554] CHIP:SC: SecureSession[0x55646b0adce0, LSID:51711]: State change 'kActive' --> 'kPendingEviction' + [1693994668.691590][73554:73554] CHIP:IN: SecureSession[0x55646b0adce0]: Released - Type:1 LSID:51711 + [1693994668.691600][73554:73554] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693994668.691618][73554:73554] CHIP:IN: SecureSession[0x55646b0adce0]: Allocated Type:1 LSID:51713 + [1693994668.691624][73554:73554] CHIP:SC: Assigned local session key ID 51713 + [1693994668.691628][73554:73554] CHIP:SC: Waiting for PBKDF param request + [1693994668.691635][73554:73554] CHIP:DIS: Updating services using commissioning mode 1 + [1693994668.691882][73554:73554] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693994668.692178][73554:73554] CHIP:DL: Using wifi MAC for hostname + disabled: true + + - label: + "Step 55: DAC Test Vector: Certificate validity period starts in the + past" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_dac_valid_in_past/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693997610.132909][74792:74792] CHIP:EM: <<< [E:21455r S:37082 M:136294811 (Ack:124710680)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693997610.132915][74792:74792] CHIP:IN: (S) Sending msg 136294811 on secure session with LSID: 37082 + [1693997610.132934][74792:74792] CHIP:DMG: Command handler moving to [CommandSen] + [1693997610.132936][74792:74792] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693997610.132941][74792:74792] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693997610.132943][74792:74792] CHIP:SVR: Failsafe timer expired + [1693997610.132945][74792:74792] CHIP:IN: SecureSession[0x55efecb47930]: MarkForEviction Type:1 LSID:37082 + [1693997610.132977][74792:74792] CHIP:SC: SecureSession[0x55efecb47930, LSID:37082]: State change 'kActive' --> 'kPendingEviction' + [1693997610.132996][74792:74792] CHIP:IN: SecureSession[0x55efecb47930]: Released - Type:1 LSID:37082 + [1693997610.133003][74792:74792] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693997610.133019][74792:74792] CHIP:IN: SecureSession[0x55efecb47930]: Allocated Type:1 LSID:37084 + [1693997610.133023][74792:74792] CHIP:SC: Assigned local session key ID 37084 + [1693997610.133026][74792:74792] CHIP:SC: Waiting for PBKDF param request + disabled: true + + - label: + "Step 56: PAI Test Vector: Fallback VID and PID encoding example from + spec: invalid, since substring following Mvid: is not exactly 4 + uppercase hexadecimal digits" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/test_case_vector.json --product-id 177 + + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693997369.939646][74668:74668] CHIP:EM: <<< [E:49580r S:11334 M:240277268 (Ack:200111746)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693997369.939653][74668:74668] CHIP:IN: (S) Sending msg 240277268 on secure session with LSID: 11334 + [1693997369.939701][74668:74668] CHIP:DMG: Command handler moving to [CommandSen] + [1693997369.939705][74668:74668] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693997369.939712][74668:74668] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693997369.939715][74668:74668] CHIP:SVR: Failsafe timer expired + [1693997369.939718][74668:74668] CHIP:IN: SecureSession[0x55aa26bb87e0]: MarkForEviction Type:1 LSID:11334 + [1693997369.939720][74668:74668] CHIP:SC: SecureSession[0x55aa26bb87e0, LSID:11334]: State change 'kActive' --> 'kPendingEviction' + [1693997369.939733][74668:74668] CHIP:IN: SecureSession[0x55aa26bb87e0]: Released - Type:1 LSID:11334 + [1693997369.939743][74668:74668] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693997369.939771][74668:74668] CHIP:IN: SecureSession[0x55aa26bb87e0]: Allocated Type:1 LSID:11336 + [1693997369.939778][74668:74668] CHIP:SC: Assigned local session key ID 11336 + [1693997369.939781][74668:74668] CHIP:SC: Waiting for PBKDF param request + disabled: true + + - label: + "Step 57: CD Test Vector: The certification_type field is set to + invalid value." + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693997345.986044][74654:74654] CHIP:IN: (S) Sending msg 9093635 on secure session with LSID: 5249 + [1693997345.986063][74654:74654] CHIP:DMG: Command handler moving to [CommandSen] + [1693997345.986066][74654:74654] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693997345.986071][74654:74654] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693997345.986073][74654:74654] CHIP:SVR: Failsafe timer expired + [1693997345.986076][74654:74654] CHIP:IN: SecureSession[0x55e15dc92d30]: MarkForEviction Type:1 LSID:5249 + [1693997345.986079][74654:74654] CHIP:SC: SecureSession[0x55e15dc92d30, LSID:5249]: State change 'kActive' --> 'kPendingEviction' + [1693997345.986090][74654:74654] CHIP:IN: SecureSession[0x55e15dc92d30]: Released - Type:1 LSID:5249 + [1693997345.986097][74654:74654] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693997345.986110][74654:74654] CHIP:IN: SecureSession[0x55e15dc92d30]: Allocated Type:1 LSID:5251 + [1693997345.986114][74654:74654] CHIP:SC: Assigned local session key ID 5251 + [1693997345.986117][74654:74654] CHIP:SC: Waiting for PBKDF param request + [1693997345.986122][74654:74654] CHIP:DIS: Updating services using commissioning mode 1 + [1693997345.986297][74654:74654] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693997345.986518][74654:74654] CHIP:DL: Using wifi MAC for hostname + disabled: true + + - label: + "Step 58: PAI Test Vector: Certificate Basic Constraint extension + critical field is missing" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693995141.040391][73748:73748] CHIP:IN: (S) Sending msg 13082630 on secure session with LSID: 25697 + [1693995141.040415][73748:73748] CHIP:DMG: Command handler moving to [CommandSen] + [1693995141.040418][73748:73748] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693995141.040422][73748:73748] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693995141.040425][73748:73748] CHIP:SVR: Failsafe timer expired + [1693995141.040427][73748:73748] CHIP:IN: SecureSession[0x5595f22b8a70]: MarkForEviction Type:1 LSID:25697 + [1693995141.040431][73748:73748] CHIP:SC: SecureSession[0x5595f22b8a70, LSID:25697]: State change 'kActive' --> 'kPendingEviction' + [1693995141.040444][73748:73748] CHIP:IN: SecureSession[0x5595f22b8a70]: Released - Type:1 LSID:25697 + [1693995141.040453][73748:73748] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693995141.040469][73748:73748] CHIP:IN: SecureSession[0x5595f22b8a70]: Allocated Type:1 LSID:25699 + [1693995141.040474][73748:73748] CHIP:SC: Assigned local session key ID 25699 + [1693995141.040477][73748:73748] CHIP:SC: Waiting for PBKDF param request + [1693995141.040483][73748:73748] CHIP:DIS: Updating services using commissioning mode 1 + [1693995141.040688][73748:73748] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693995141.040929][73748:73748] CHIP:DL: Using wifi MAC for hostname + disabled: true + + - label: + "Step 59: DAC Test Vector: Mix of Fallback and Matter OID encoding for + VID and PID: wrong, Correct values encoded in the common-name are + ignored" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/test_case_vector.json --product-id 177 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693994569.856552][73521:73521] CHIP:IN: (S) Sending msg 148377031 on secure session with LSID: 36938 + [1693994569.856571][73521:73521] CHIP:DMG: Command handler moving to [CommandSen] + [1693994569.856573][73521:73521] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693994569.856577][73521:73521] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693994569.856580][73521:73521] CHIP:SVR: Failsafe timer expired + [1693994569.856582][73521:73521] CHIP:IN: SecureSession[0x559724af7a80]: MarkForEviction Type:1 LSID:36938 + [1693994569.856585][73521:73521] CHIP:SC: SecureSession[0x559724af7a80, LSID:36938]: State change 'kActive' --> 'kPendingEviction' + [1693994569.856595][73521:73521] CHIP:IN: SecureSession[0x559724af7a80]: Released - Type:1 LSID:36938 + [1693994569.856602][73521:73521] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693994569.856615][73521:73521] CHIP:IN: SecureSession[0x559724af7a80]: Allocated Type:1 LSID:36940 + [1693994569.856619][73521:73521] CHIP:SC: Assigned local session key ID 36940 + [1693994569.856622][73521:73521] CHIP:SC: Waiting for PBKDF param request + [1693994569.856627][73521:73521] CHIP:DIS: Updating services using commissioning mode 1 + [1693994569.856806][73521:73521] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693994569.857035][73521:73521] CHIP:DL: Using wifi MAC for hostname + [1693994569.857067][73521:73521] CHIP:DIS: Advertise commission parameter vendorID=65521 productID=177 discriminator=3840/15 cm=1 + disabled: true + + - label: + "Step 60: DAC Test Vector: Certificate validity period starts in the + future" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_dac_valid_in_future/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693994108.296043][73284:73284] CHIP:DMG: } + [1693994108.296046][73284:73284] CHIP:DMG: + [1693994108.296060][73284:73284] CHIP:EM: <<< [E:21442r S:39030 M:264066648 (Ack:200959608)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693994108.296069][73284:73284] CHIP:IN: (S) Sending msg 264066648 on secure session with LSID: 39030 + [1693994108.296124][73284:73284] CHIP:DMG: Command handler moving to [CommandSen] + [1693994108.296128][73284:73284] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693994108.296134][73284:73284] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693994108.296138][73284:73284] CHIP:SVR: Failsafe timer expired + [1693994108.296144][73284:73284] CHIP:IN: SecureSession[0x55acb0510890]: MarkForEviction Type:1 LSID:39030 + [1693994108.296151][73284:73284] CHIP:SC: SecureSession[0x55acb0510890, LSID:39030]: State change 'kActive' --> 'kPendingEviction' + [1693994108.296179][73284:73284] CHIP:IN: SecureSession[0x55acb0510890]: Released - Type:1 LSID:39030 + [1693994108.296210][73284:73284] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693994108.296234][73284:73284] CHIP:IN: SecureSession[0x55acb0510890]: Allocated Type:1 LSID:39032 + [1693994108.296238][73284:73284] CHIP:SC: Assigned local session key ID 39032 + [1693994108.296242][73284:73284] CHIP:SC: Waiting for PBKDF param request + [1693994108.296246][73284:73284] CHIP:DIS: Updating services using commissioning mode 1 + [1693994108.296462][73284:73284] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693994108.296707][73284:73284] CHIP:DL: Using wifi MAC for hostname + disabled: true + + - label: + "Step 61: CD Test Vector: The certificate_id field has wrong length." + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693997320.814609][74644:74644] CHIP:EM: <<< [E:6007r S:62708 M:225968513 (Ack:186887405)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693997320.814615][74644:74644] CHIP:IN: (S) Sending msg 225968513 on secure session with LSID: 62708 + [1693997320.814643][74644:74644] CHIP:DMG: Command handler moving to [CommandSen] + [1693997320.814647][74644:74644] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693997320.814652][74644:74644] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693997320.814655][74644:74644] CHIP:SVR: Failsafe timer expired + [1693997320.814657][74644:74644] CHIP:IN: SecureSession[0x55dfa19ceae0]: MarkForEviction Type:1 LSID:62708 + [1693997320.814661][74644:74644] CHIP:SC: SecureSession[0x55dfa19ceae0, LSID:62708]: State change 'kActive' --> 'kPendingEviction' + [1693997320.814672][74644:74644] CHIP:IN: SecureSession[0x55dfa19ceae0]: Released - Type:1 LSID:62708 + [1693997320.814680][74644:74644] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693997320.814695][74644:74644] CHIP:IN: SecureSession[0x55dfa19ceae0]: Allocated Type:1 LSID:62710 + [1693997320.814699][74644:74644] CHIP:SC: Assigned local session key ID 62710 + [1693997320.814702][74644:74644] CHIP:SC: Waiting for PBKDF param request + disabled: true + + - label: + "Step 62: PAI Test Vector: Certificate Basic Constraint extension + PathLen field presence is wrong (present for DAC not present for PAI)" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693995197.902283][73788:73788] CHIP:EM: <<< [E:1271r S:60164 M:123351731 (Ack:124474473)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693995197.902291][73788:73788] CHIP:IN: (S) Sending msg 123351731 on secure session with LSID: 60164 + [1693995197.902328][73788:73788] CHIP:DMG: Command handler moving to [CommandSen] + [1693995197.902332][73788:73788] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693995197.902340][73788:73788] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693995197.902345][73788:73788] CHIP:SVR: Failsafe timer expired + [1693995197.902348][73788:73788] CHIP:IN: SecureSession[0x5640a74d9890]: MarkForEviction Type:1 LSID:60164 + [1693995197.902353][73788:73788] CHIP:SC: SecureSession[0x5640a74d9890, LSID:60164]: State change 'kActive' --> 'kPendingEviction' + [1693995197.902369][73788:73788] CHIP:IN: SecureSession[0x5640a74d9890]: Released - Type:1 LSID:60164 + [1693995197.902380][73788:73788] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693995197.902399][73788:73788] CHIP:IN: SecureSession[0x5640a74d9890]: Allocated Type:1 LSID:60166 + [1693995197.902406][73788:73788] CHIP:SC: Assigned local session key ID 60166 + [1693995197.902411][73788:73788] CHIP:SC: Waiting for PBKDF param request + [1693995197.902420][73788:73788] CHIP:DIS: Updating services using commissioning mode 1 + [1693995197.902658][73788:73788] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693995197.902955][73788:73788] CHIP:DL: Using wifi MAC for hostname + [1693995197.903011][73788:73788] CHIP:DIS: Advertise commission parameter vendorID=65521 productID=32768 discriminator=3840/15 cm=1 + disabled: true + + - label: + "Step 63: PAI Test Vector: Fallback VID and PID encoding example: + invalid VID prefix" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/test_case_vector.json --product-id 177 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693995319.932069][73870:73870] CHIP:EM: <<< [E:61482r S:22710 M:111317237 (Ack:118801789)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693995319.932084][73870:73870] CHIP:IN: (S) Sending msg 111317237 on secure session with LSID: 22710 + [1693995319.932197][73870:73870] CHIP:DMG: Command handler moving to [CommandSen] + [1693995319.932207][73870:73870] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693995319.932227][73870:73870] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693995319.932236][73870:73870] CHIP:SVR: Failsafe timer expired + [1693995319.932240][73870:73870] CHIP:IN: SecureSession[0x5628acd36a70]: MarkForEviction Type:1 LSID:22710 + [1693995319.932244][73870:73870] CHIP:SC: SecureSession[0x5628acd36a70, LSID:22710]: State change 'kActive' --> 'kPendingEviction' + [1693995319.932273][73870:73870] CHIP:IN: SecureSession[0x5628acd36a70]: Released - Type:1 LSID:22710 + [1693995319.932291][73870:73870] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693995319.932320][73870:73870] CHIP:IN: SecureSession[0x5628acd36a70]: Allocated Type:1 LSID:22712 + [1693995319.932325][73870:73870] CHIP:SC: Assigned local session key ID 22712 + [1693995319.932328][73870:73870] CHIP:SC: Waiting for PBKDF param request + [1693995319.932333][73870:73870] CHIP:DIS: Updating services using commissioning mode 1 + [1693995319.932613][73870:73870] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693995319.932916][73870:73870] CHIP:DL: Using wifi MAC for hostname + disabled: true + + - label: "Step 64: CD Test Vector: Invalid CMS version set to v2." + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_cms_v2/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693997461.745027][74710:74710] CHIP:EM: <<< [E:51312r S:62341 M:262208603 (Ack:254470721)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693997461.745033][74710:74710] CHIP:IN: (S) Sending msg 262208603 on secure session with LSID: 62341 + [1693997461.745052][74710:74710] CHIP:DMG: Command handler moving to [CommandSen] + [1693997461.745055][74710:74710] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693997461.745059][74710:74710] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693997461.745062][74710:74710] CHIP:SVR: Failsafe timer expired + [1693997461.745065][74710:74710] CHIP:IN: SecureSession[0x55a662f12d40]: MarkForEviction Type:1 LSID:62341 + [1693997461.745068][74710:74710] CHIP:SC: SecureSession[0x55a662f12d40, LSID:62341]: State change 'kActive' --> 'kPendingEviction' + [1693997461.745079][74710:74710] CHIP:IN: SecureSession[0x55a662f12d40]: Released - Type:1 LSID:62341 + [1693997461.745085][74710:74710] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693997461.745098][74710:74710] CHIP:IN: SecureSession[0x55a662f12d40]: Allocated Type:1 LSID:62343 + [1693997461.745102][74710:74710] CHIP:SC: Assigned local session key ID 62343 + [1693997461.745105][74710:74710] CHIP:SC: Waiting for PBKDF param request + [1693997461.745109][74710:74710] CHIP:DIS: Updating services using commissioning mode 1 + disabled: true + + - label: + "Step 65: DAC Test Vector: Fallback VID and PID encoding example: + invalid VID encoding" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/test_case_vector.json --product-id 177 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693995817.508655][74000:74000] CHIP:EM: <<< [E:7012r S:58652 M:202734303 (Ack:196860855)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693995817.508663][74000:74000] CHIP:IN: (S) Sending msg 202734303 on secure session with LSID: 58652 + [1693995817.508694][74000:74000] CHIP:DMG: Command handler moving to [CommandSen] + [1693995817.508698][74000:74000] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693995817.508706][74000:74000] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693995817.508710][74000:74000] CHIP:SVR: Failsafe timer expired + [1693995817.508714][74000:74000] CHIP:IN: SecureSession[0x55963a9cecb0]: MarkForEviction Type:1 LSID:58652 + [1693995817.508718][74000:74000] CHIP:SC: SecureSession[0x55963a9cecb0, LSID:58652]: State change 'kActive' --> 'kPendingEviction' + [1693995817.508735][74000:74000] CHIP:IN: SecureSession[0x55963a9cecb0]: Released - Type:1 LSID:58652 + [1693995817.508745][74000:74000] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693995817.508764][74000:74000] CHIP:IN: SecureSession[0x55963a9cecb0]: Allocated Type:1 LSID:58654 + [1693995817.508771][74000:74000] CHIP:SC: Assigned local session key ID 58654 + [1693995817.508775][74000:74000] CHIP:SC: Waiting for PBKDF param request + disabled: true + + - label: "Step 66: CD Test Vector: The security_level field is missing." + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_security_level_missing/test_case_vector.json --product-id 32768 + + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693986541.596701][71746:71746] CHIP:EM: <<< [E:37957r S:22144 M:175902201 (Ack:200093104)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693986541.596707][71746:71746] CHIP:IN: (S) Sending msg 175902201 on secure session with LSID: 22144 + [1693986541.596726][71746:71746] CHIP:DMG: Command handler moving to [CommandSen] + [1693986541.596728][71746:71746] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693986541.596732][71746:71746] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693986541.596735][71746:71746] CHIP:SVR: Failsafe timer expired + [1693986541.596738][71746:71746] CHIP:IN: SecureSession[0x559a84d3cb20]: MarkForEviction Type:1 LSID:22144 + [1693986541.596742][71746:71746] CHIP:SC: SecureSession[0x559a84d3cb20, LSID:22144]: State change 'kActive' --> 'kPendingEviction' + [1693986541.596755][71746:71746] CHIP:IN: SecureSession[0x559a84d3cb20]: Released - Type:1 LSID:22144 + [1693986541.596763][71746:71746] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693986541.596778][71746:71746] CHIP:IN: SecureSession[0x559a84d3cb20]: Allocated Type:1 LSID:22146 + disabled: true + + - label: + "Step 67: DAC Test Vector: Certificate doesnt include Key Usage + extension" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_security_level_missing/test_case_vector.json --product-id 32768 + + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693986541.596701][71746:71746] CHIP:EM: <<< [E:37957r S:22144 M:175902201 (Ack:200093104)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693986541.596707][71746:71746] CHIP:IN: (S) Sending msg 175902201 on secure session with LSID: 22144 + [1693986541.596726][71746:71746] CHIP:DMG: Command handler moving to [CommandSen] + [1693986541.596728][71746:71746] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693986541.596732][71746:71746] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693986541.596735][71746:71746] CHIP:SVR: Failsafe timer expired + [1693986541.596738][71746:71746] CHIP:IN: SecureSession[0x559a84d3cb20]: MarkForEviction Type:1 LSID:22144 + [1693986541.596742][71746:71746] CHIP:SC: SecureSession[0x559a84d3cb20, LSID:22144]: State change 'kActive' --> 'kPendingEviction' + [1693986541.596755][71746:71746] CHIP:IN: SecureSession[0x559a84d3cb20]: Released - Type:1 LSID:22144 + [1693986541.596763][71746:71746] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693986541.596778][71746:71746] CHIP:IN: SecureSession[0x559a84d3cb20]: Allocated Type:1 LSID:22146 + disabled: true + + - label: + "Step 68: PAI Test Vector: Certificate Basic Constraint extension CA + field is missing" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693997563.549737][74762:74762] CHIP:EM: <<< [E:15206r S:63028 M:93417935 (Ack:71293345)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693997563.549743][74762:74762] CHIP:IN: (S) Sending msg 93417935 on secure session with LSID: 63028 + [1693997563.549766][74762:74762] CHIP:DMG: Command handler moving to [CommandSen] + [1693997563.549770][74762:74762] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693997563.549776][74762:74762] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693997563.549780][74762:74762] CHIP:SVR: Failsafe timer expired + [1693997563.549783][74762:74762] CHIP:IN: SecureSession[0x555e1432ca90]: MarkForEviction Type:1 LSID:63028 + [1693997563.549787][74762:74762] CHIP:SC: SecureSession[0x555e1432ca90, LSID:63028]: State change 'kActive' --> 'kPendingEviction' + [1693997563.549804][74762:74762] CHIP:IN: SecureSession[0x555e1432ca90]: Released - Type:1 LSID:63028 + [1693997563.549814][74762:74762] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693997563.549831][74762:74762] CHIP:IN: SecureSession[0x555e1432ca90]: Allocated Type:1 LSID:63030 + [1693997563.549838][74762:74762] CHIP:SC: Assigned local session key ID 63030 + [1693997563.549842][74762:74762] CHIP:SC: Waiting for PBKDF param request + [1693997563.549849][74762:74762] CHIP:DIS: Updating services using commissioning mode 1 + [1693997563.550099][74762:74762] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693997563.550377][74762:74762] CHIP:DL: Using wifi MAC for hostname + [1693997563.550423][74762:74762] CHIP:DIS: Advertise commission parameter vendorID=65521 productID=32768 discriminator=3840/15 cm=1 + disabled: true + + - label: "Step 69: CD Test Vector: Invalid format_version field set to 2." + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_format_version_2/test_case_vector.json --product-id 32768 + + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693997298.963569][74629:74629] CHIP:EM: <<< [E:22186r S:49877 M:136149078 (Ack:129406676)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693997298.963577][74629:74629] CHIP:IN: (S) Sending msg 136149078 on secure session with LSID: 49877 + [1693997298.963633][74629:74629] CHIP:DMG: Command handler moving to [CommandSen] + [1693997298.963638][74629:74629] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693997298.963651][74629:74629] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693997298.963659][74629:74629] CHIP:SVR: Failsafe timer expired + [1693997298.963663][74629:74629] CHIP:IN: SecureSession[0x5569a41b1b30]: MarkForEviction Type:1 LSID:49877 + [1693997298.963668][74629:74629] CHIP:SC: SecureSession[0x5569a41b1b30, LSID:49877]: State change 'kActive' --> 'kPendingEviction' + [1693997298.963688][74629:74629] CHIP:IN: SecureSession[0x5569a41b1b30]: Released - Type:1 LSID:49877 + [1693997298.963697][74629:74629] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693997298.963714][74629:74629] CHIP:IN: SecureSession[0x5569a41b1b30]: Allocated Type:1 LSID:49879 + [1693997298.963720][74629:74629] CHIP:SC: Assigned local session key ID 49879 + disabled: true + + - label: + "Step 70: PAI Test Vector: Fallback VID and PID encoding example: + invalid, PID not present and VID not upper case" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/test_case_vector.json --product-id 177 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + 1693994014.916528][73235:73235] CHIP:EM: <<< [E:30765r S:52283 M:265344393 (Ack:94964163)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693994014.916537][73235:73235] CHIP:IN: (S) Sending msg 265344393 on secure session with LSID: 52283 + [1693994014.916606][73235:73235] CHIP:DMG: Command handler moving to [CommandSen] + [1693994014.916614][73235:73235] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693994014.916629][73235:73235] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693994014.916637][73235:73235] CHIP:SVR: Failsafe timer expired + [1693994014.916641][73235:73235] CHIP:IN: SecureSession[0x5576f0462890]: MarkForEviction Type:1 LSID:52283 + [1693994014.916648][73235:73235] CHIP:SC: SecureSession[0x5576f0462890, LSID:52283]: State change 'kActive' --> 'kPendingEviction' + [1693994014.916675][73235:73235] CHIP:IN: SecureSession[0x5576f0462890]: Released - Type:1 LSID:52283 + [1693994014.916695][73235:73235] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693994014.916737][73235:73235] CHIP:IN: SecureSession[0x5576f0462890]: Allocated Type:1 LSID:52285 + [1693994014.916747][73235:73235] CHIP:SC: Assigned local session key ID 52285 + [1693994014.916754][73235:73235] CHIP:SC: Waiting for PBKDF param request + [1693994014.916776][73235:73235] CHIP:DIS: Updating services using commissioning mode 1 + [1693994014.917257][73235:73235] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693994014.917585][73235:73235] CHIP:DL: Using wifi MAC for hostname + [1693994014.917633][73235:73235] CHIP:DIS: Advertise commission parameter vendorID=65521 productID=177 discriminator=3840/15 cm=1 + disabled: true + + - label: + "Step 71: PAI Test Vector: Certificate doesnt include Authority Key ID + (AKID) extension" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693997030.811923][74498:74498] CHIP:EM: <<< [E:3545r S:12633 M:143314976 (Ack:95689146)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693997030.811928][74498:74498] CHIP:IN: (S) Sending msg 143314976 on secure session with LSID: 12633 + [1693997030.811948][74498:74498] CHIP:DMG: Command handler moving to [CommandSen] + [1693997030.811951][74498:74498] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693997030.811956][74498:74498] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693997030.811959][74498:74498] CHIP:SVR: Failsafe timer expired + [1693997030.811961][74498:74498] CHIP:IN: SecureSession[0x561a7a305990]: MarkForEviction Type:1 LSID:12633 + [1693997030.811964][74498:74498] CHIP:SC: SecureSession[0x561a7a305990, LSID:12633]: State change 'kActive' --> 'kPendingEviction' + [1693997030.811976][74498:74498] CHIP:IN: SecureSession[0x561a7a305990]: Released - Type:1 LSID:12633 + [1693997030.811983][74498:74498] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693997030.811996][74498:74498] CHIP:IN: SecureSession[0x561a7a305990]: Allocated Type:1 LSID:12635 + [1693997030.812000][74498:74498] CHIP:SC: Assigned local session key ID 12635 + disabled: true + + - label: "Step 72: CD Test Vector: The certification_type field is missing." + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_cert_type_missing/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693995881.963711][74025:74025] CHIP:EM: <<< [E:25552r S:14686 M:144254657 (Ack:235871460)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693995881.963723][74025:74025] CHIP:IN: (S) Sending msg 144254657 on secure session with LSID: 14686 + [1693995881.963763][74025:74025] CHIP:DMG: Command handler moving to [CommandSen] + [1693995881.963769][74025:74025] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693995881.963777][74025:74025] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693995881.963781][74025:74025] CHIP:SVR: Failsafe timer expired + [1693995881.963784][74025:74025] CHIP:IN: SecureSession[0x55bd8b92ec90]: MarkForEviction Type:1 LSID:14686 + [1693995881.963789][74025:74025] CHIP:SC: SecureSession[0x55bd8b92ec90, LSID:14686]: State change 'kActive' --> 'kPendingEviction' + [1693995881.963805][74025:74025] CHIP:IN: SecureSession[0x55bd8b92ec90]: Released - Type:1 LSID:14686 + [1693995881.963814][74025:74025] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693995881.963830][74025:74025] CHIP:IN: SecureSession[0x55bd8b92ec90]: Allocated Type:1 LSID:14688 + [1693995881.963836][74025:74025] CHIP:SC: Assigned local session key ID 14688 + [1693995881.963839][74025:74025] CHIP:SC: Waiting for PBKDF param request + [1693995881.963848][74025:74025] CHIP:DIS: Updating services using commissioning mode 1 + [1693995881.964078][74025:74025] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693995881.964378][74025:74025] CHIP:DL: Using wifi MAC for hostname + [1693995881.964421][74025:74025] CHIP:DIS: Advertise commission parameter vendorID=65521 productID=32768 discriminator=3840/15 cm=1 + disabled: true + + - label: + "Step 73: PAI Test Vector: VID in Subject field doesnt match VID in + Issuer field" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693995066.552263][73733:73733] CHIP:EM: <<< [E:28752r S:56050 M:91395672 (Ack:28019124)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693995066.552269][73733:73733] CHIP:IN: (S) Sending msg 91395672 on secure session with LSID: 56050 + [1693995066.552288][73733:73733] CHIP:DMG: Command handler moving to [CommandSen] + [1693995066.552291][73733:73733] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693995066.552295][73733:73733] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693995066.552297][73733:73733] CHIP:SVR: Failsafe timer expired + [1693995066.552300][73733:73733] CHIP:IN: SecureSession[0x55e35e55fc30]: MarkForEviction Type:1 LSID:56050 + [1693995066.552303][73733:73733] CHIP:SC: SecureSession[0x55e35e55fc30, LSID:56050]: State change 'kActive' --> 'kPendingEviction' + [1693995066.552314][73733:73733] CHIP:IN: SecureSession[0x55e35e55fc30]: Released - Type:1 LSID:56050 + [1693995066.552322][73733:73733] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693995066.552335][73733:73733] CHIP:IN: SecureSession[0x55e35e55fc30]: Allocated Type:1 LSID:56052 + [1693995066.552340][73733:73733] CHIP:SC: Assigned local session key ID 56052 + [1693995066.552342][73733:73733] CHIP:SC: Waiting for PBKDF param request + [1693995066.552348][73733:73733] CHIP:DIS: Updating services using commissioning mode 1 + [1693995066.552571][73733:73733] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693995066.552808][73733:73733] CHIP:DL: Using wifi MAC for hostname + [1693995066.552843][73733:73733] CHIP:DIS: Advertise commission parameter vendorID=65521 productID=32768 discriminator=3840/15 cm=1 + [1693995066.552854][73733:73733] CHIP:DIS: Responding with _matterc._udp.l + disabled: true + + - label: + "Step 74: DAC Test Vector: Certificate Key Usage extension critical + field is set as 'non-critical'" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693993286.456667][72701:72701] CHIP:IN: (S) Sending msg 164594174 on secure session with LSID: 42108 + [1693993286.456731][72701:72701] CHIP:DMG: Command handler moving to [CommandSen] + [1693993286.456737][72701:72701] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693993286.456747][72701:72701] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693993286.456753][72701:72701] CHIP:SVR: Failsafe timer expired + [1693993286.456758][72701:72701] CHIP:IN: SecureSession[0x559be703da30]: MarkForEviction Type:1 LSID:42108 + [1693993286.456764][72701:72701] CHIP:SC: SecureSession[0x559be703da30, LSID:42108]: State change 'kActive' --> 'kPendingEviction' + [1693993286.456791][72701:72701] CHIP:IN: SecureSession[0x559be703da30]: Released - Type:1 LSID:42108 + [1693993286.456810][72701:72701] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693993286.456845][72701:72701] CHIP:IN: SecureSession[0x559be703da30]: Allocated Type:1 LSID:42110 + [1693993286.456852][72701:72701] CHIP:SC: Assigned local session key ID 42110 + [1693993286.456857][72701:72701] CHIP:SC: Waiting for PBKDF param request + [1693993286.456868][72701:72701] CHIP:DIS: Updating services using commissioning mode 1 + [1693993286.457360][72701:72701] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693993286.457672][72701:72701] CHIP:DL: Using wifi MAC for hostname + [1693993286.457715][72701:72701] CHIP:DIS: Advertise commission parameter vendorID=65521 productID=32768 discriminator=3840/15 cm=1 + [1693993286.457726][72701:72701] CHIP:DIS: Responding with _matterc._udp.local + disabled: true + + - label: + "Step 75: DAC Test Vector: Fallback VID and PID encoding example from + spec: invalid, since substring following Mpid: is not exactly 4 + uppercase hexadecimal digits" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/test_case_vector.json --product-id 177 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693995260.012915][73834:73834] CHIP:DMG: + [1693995260.012926][73834:73834] CHIP:EM: <<< [E:60855r S:8080 M:251599612 (Ack:56465607)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693995260.012933][73834:73834] CHIP:IN: (S) Sending msg 251599612 on secure session with LSID: 8080 + [1693995260.012973][73834:73834] CHIP:DMG: Command handler moving to [CommandSen] + [1693995260.012978][73834:73834] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693995260.012984][73834:73834] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693995260.012987][73834:73834] CHIP:SVR: Failsafe timer expired + [1693995260.012991][73834:73834] CHIP:IN: SecureSession[0x560f3897d3b0]: MarkForEviction Type:1 LSID:8080 + [1693995260.012996][73834:73834] CHIP:SC: SecureSession[0x560f3897d3b0, LSID:8080]: State change 'kActive' --> 'kPendingEviction' + [1693995260.013011][73834:73834] CHIP:IN: SecureSession[0x560f3897d3b0]: Released - Type:1 LSID:8080 + [1693995260.013020][73834:73834] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693995260.013036][73834:73834] CHIP:IN: SecureSession[0x560f3897d3b0]: Allocated Type:1 LSID:8082 + [1693995260.013042][73834:73834] CHIP:SC: Assigned local session key ID 8082 + [1693995260.013046][73834:73834] CHIP:SC: Waiting for PBKDF param request + disabled: true + + - label: + "Step 76: DAC Test Vector: Certificate doesnt include Basic Constraint + extension" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693995791.207188][73985:73985] CHIP:EM: <<< [E:46317r S:59509 M:225538799 (Ack:100515880)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693995791.207194][73985:73985] CHIP:IN: (S) Sending msg 225538799 on secure session with LSID: 59509 + [1693995791.207215][73985:73985] CHIP:DMG: Command handler moving to [CommandSen] + [1693995791.207218][73985:73985] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693995791.207224][73985:73985] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693995791.207227][73985:73985] CHIP:SVR: Failsafe timer expired + [1693995791.207230][73985:73985] CHIP:IN: SecureSession[0x5639d72d76b0]: MarkForEviction Type:1 LSID:59509 + [1693995791.207234][73985:73985] CHIP:SC: SecureSession[0x5639d72d76b0, LSID:59509]: State change 'kActive' --> 'kPendingEviction' + [1693995791.207247][73985:73985] CHIP:IN: SecureSession[0x5639d72d76b0]: Released - Type:1 LSID:59509 + [1693995791.207255][73985:73985] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693995791.207271][73985:73985] CHIP:IN: SecureSession[0x5639d72d76b0]: Allocated Type:1 LSID:59511 + [1693995791.207276][73985:73985] CHIP:SC: Assigned local session key ID 59511 + [1693995791.207279][73985:73985] CHIP:SC: Waiting for PBKDF param request + disabled: true + + - label: + "Step 77: CD Test Vector: The dac_origin_vendor_id fild is not present + and dac_origin_product_id is present." + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693993506.668073][72775:72775] CHIP:EM: <<< [E:43761r S:6870 M:126288958 (Ack:38007872)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693993506.668080][72775:72775] CHIP:IN: (S) Sending msg 126288958 on secure session with LSID: 6870 + [1693993506.668109][72775:72775] CHIP:DMG: Command handler moving to [CommandSen] + [1693993506.668113][72775:72775] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693993506.668119][72775:72775] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693993506.668124][72775:72775] CHIP:SVR: Failsafe timer expired + [1693993506.668127][72775:72775] CHIP:IN: SecureSession[0x5557c35e8940]: MarkForEviction Type:1 LSID:6870 + [1693993506.668131][72775:72775] CHIP:SC: SecureSession[0x5557c35e8940, LSID:6870]: State change 'kActive' --> 'kPendingEviction' + [1693993506.668147][72775:72775] CHIP:IN: SecureSession[0x5557c35e8940]: Released - Type:1 LSID:6870 + [1693993506.668156][72775:72775] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693993506.668174][72775:72775] CHIP:IN: SecureSession[0x5557c35e8940]: Allocated Type:1 LSID:6872 + [1693993506.668180][72775:72775] CHIP:SC: Assigned local session key ID 6872 + [1693993506.668184][72775:72775] CHIP:SC: Waiting for PBKDF param request + [1693993506.668192][72775:72775] CHIP:DIS: Updating services using commissioning mode 1 + [1693993506.668443][72775:72775] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693993506.668725][72775:72775] CHIP:DL: Using wifi MAC for hostname + [1693993506.668758][72775:72775] CHIP:DIS: Advertise commission parameter vendorID=65521 productID=32768 discriminator=3840/15 cm=1 + [1693993506.668768][72775:72775] CHIP:DIS: Responding with _matterc._udp.local + [1693993506.668771][72775:72775] CHIP:DIS: Responding with 5F5CFF56D4D1B826._matterc._udp.local + disabled: true + + - label: + "Step 78: CD Test Vector: The authorized_paa_list contains ten PAAs + none of which is a valid PAA authorized to sign the PAI." + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693994966.391444][73695:73695] CHIP:EM: <<< [E:62607r S:61961 M:184105458 (Ack:71570764)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693994966.391451][73695:73695] CHIP:IN: (S) Sending msg 184105458 on secure session with LSID: 61961 + [1693994966.391482][73695:73695] CHIP:DMG: Command handler moving to [CommandSen] + [1693994966.391485][73695:73695] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693994966.391492][73695:73695] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693994966.391496][73695:73695] CHIP:SVR: Failsafe timer expired + [1693994966.391498][73695:73695] CHIP:IN: SecureSession[0x56426b169920]: MarkForEviction Type:1 LSID:61961 + [1693994966.391502][73695:73695] CHIP:SC: SecureSession[0x56426b169920, LSID:61961]: State change 'kActive' --> 'kPendingEviction' + [1693994966.391515][73695:73695] CHIP:IN: SecureSession[0x56426b169920]: Released - Type:1 LSID:61961 + [1693994966.391523][73695:73695] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693994966.391538][73695:73695] CHIP:IN: SecureSession[0x56426b169920]: Allocated Type:1 LSID:61963 + [1693994966.391544][73695:73695] CHIP:SC: Assigned local session key ID 61963 + [1693994966.391547][73695:73695] CHIP:SC: Waiting for PBKDF param request + [1693994966.391553][73695:73695] CHIP:DIS: Updating services using commissioning mode 1 + [1693994966.391757][73695:73695] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693994966.391995][73695:73695] CHIP:DL: Using wifi MAC for hostname + [1693994966.392035][73695:73695] CHIP:DIS: Advertise commission parameter vendorID=65521 productID=32768 discriminator=3840/15 cm=1 + disabled: true + + - label: + "Step 79: PAI Test Vector: Certificate doesnt include Subject Key ID + (SKID) extension" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1694000205.966896][75316:75316] CHIP:EM: <<< [E:53246r S:10676 M:42258398 (Ack:58149456)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1694000205.966905][75316:75316] CHIP:IN: (S) Sending msg 42258398 on secure session with LSID: 10676 + [1694000205.966934][75316:75316] CHIP:DMG: Command handler moving to [CommandSen] + [1694000205.966937][75316:75316] CHIP:DMG: Command handler moving to [AwaitingDe] + [1694000205.966943][75316:75316] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1694000205.966947][75316:75316] CHIP:SVR: Failsafe timer expired + [1694000205.966951][75316:75316] CHIP:IN: SecureSession[0x5593424d2bc0]: MarkForEviction Type:1 LSID:10676 + [1694000205.966955][75316:75316] CHIP:SC: SecureSession[0x5593424d2bc0, LSID:10676]: State change 'kActive' --> 'kPendingEviction' + [1694000205.966973][75316:75316] CHIP:IN: SecureSession[0x5593424d2bc0]: Released - Type:1 LSID:10676 + [1694000205.966984][75316:75316] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1694000205.967003][75316:75316] CHIP:IN: SecureSession[0x5593424d2bc0]: Allocated Type:1 LSID:10678 + [1694000205.967008][75316:75316] CHIP:SC: Assigned local session key ID 10678 + [1694000205.967013][75316:75316] CHIP:SC: Waiting for PBKDF param request + [1694000205.967020][75316:75316] CHIP:DIS: Updating services using commissioning mode 1 + disabled: true + + - label: + "Step 80: PAA Test Vector: Use Invalid PAA (Not Registered in the + DCL)." + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/invalid_paa/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693995967.899266][74064:74064] CHIP:EM: <<< [E:64536r S:43313 M:255762469 (Ack:183956987)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693995967.899272][74064:74064] CHIP:IN: (S) Sending msg 255762469 on secure session with LSID: 43313 + [1693995967.899293][74064:74064] CHIP:DMG: Command handler moving to [CommandSen] + [1693995967.899296][74064:74064] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693995967.899301][74064:74064] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693995967.899304][74064:74064] CHIP:SVR: Failsafe timer expired + [1693995967.899307][74064:74064] CHIP:IN: SecureSession[0x55cc2c7db970]: MarkForEviction Type:1 LSID:43313 + [1693995967.899312][74064:74064] CHIP:SC: SecureSession[0x55cc2c7db970, LSID:43313]: State change 'kActive' --> 'kPendingEviction' + [1693995967.899326][74064:74064] CHIP:IN: SecureSession[0x55cc2c7db970]: Released - Type:1 LSID:43313 + [1693995967.899334][74064:74064] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693995967.899348][74064:74064] CHIP:IN: SecureSession[0x55cc2c7db970]: Allocated Type:1 LSID:43315 + [1693995967.899353][74064:74064] CHIP:SC: Assigned local session key ID 43315 + disabled: true + + - label: + "Step 81: DAC Test Vector: Certificate Basic Constraint extension + PathLen field presence is wrong (present for DAC not present for PAI)" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693994441.928228][73474:73474] CHIP:DMG: } + [1693994441.928231][73474:73474] CHIP:DMG: + [1693994441.928254][73474:73474] CHIP:EM: <<< [E:59402r S:246 M:229095428 (Ack:35299346)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693994441.928265][73474:73474] CHIP:IN: (S) Sending msg 229095428 on secure session with LSID: 246 + [1693994441.928323][73474:73474] CHIP:DMG: Command handler moving to [CommandSen] + [1693994441.928327][73474:73474] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693994441.928339][73474:73474] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693994441.928344][73474:73474] CHIP:SVR: Failsafe timer expired + [1693994441.928349][73474:73474] CHIP:IN: SecureSession[0x563a2d9b2890]: MarkForEviction Type:1 LSID:246 + [1693994441.928354][73474:73474] CHIP:SC: SecureSession[0x563a2d9b2890, LSID:246]: State change 'kActive' --> 'kPendingEviction' + [1693994441.928372][73474:73474] CHIP:IN: SecureSession[0x563a2d9b2890]: Released - Type:1 LSID:246 + [1693994441.928381][73474:73474] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693994441.928400][73474:73474] CHIP:IN: SecureSession[0x563a2d9b2890]: Allocated Type:1 LSID:248 + [1693994441.928406][73474:73474] CHIP:SC: Assigned local session key ID 248 + [1693994441.928409][73474:73474] CHIP:SC: Waiting for PBKDF param request + [1693994441.928416][73474:73474] CHIP:DIS: Updating services using commissioning mode 1 + [1693994441.928637][73474:73474] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693994441.928900][73474:73474] CHIP:DL: Using wifi MAC for hostname + [1693994441.928934][73474:73474] CHIP:DIS: Advertise commission parameter vendorID=65521 productID=32768 discriminator=3840/15 cm=1 + [1693994441.928947][73474:73474] CHIP:DIS: Responding with _matterc._udp.local + [1693994441.928961][73474:73474] CHIP:DIS: Responding with 3E01EDD4BC3C2AF9._matterc._udp.local + [1693994441.928964][73474:73474] CHIP:DIS: Responding with 8C1D96786A130000.local + disabled: true + + - label: + "Step 82: DAC Test Vector: Mix of Fallback and Matter OID encoding for + VID and PID: invalid, PID is using Matter OID then VID must also use + Matter OID" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/test_case_vector.json --product-id 177 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693996905.702758][74442:74442] CHIP:EM: <<< [E:7107r S:18979 M:236270845 (Ack:85054530)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693996905.702764][74442:74442] CHIP:IN: (S) Sending msg 236270845 on secure session with LSID: 18979 + [1693996905.702788][74442:74442] CHIP:DMG: Command handler moving to [CommandSen] + [1693996905.702791][74442:74442] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693996905.702796][74442:74442] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693996905.702799][74442:74442] CHIP:SVR: Failsafe timer expired + [1693996905.702802][74442:74442] CHIP:IN: SecureSession[0x56288c350990]: MarkForEviction Type:1 LSID:18979 + [1693996905.702807][74442:74442] CHIP:SC: SecureSession[0x56288c350990, LSID:18979]: State change 'kActive' --> 'kPendingEviction' + [1693996905.702820][74442:74442] CHIP:IN: SecureSession[0x56288c350990]: Released - Type:1 LSID:18979 + [1693996905.702828][74442:74442] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693996905.702842][74442:74442] CHIP:IN: SecureSession[0x56288c350990]: Allocated Type:1 LSID:18981 + [1693996905.702847][74442:74442] CHIP:SC: Assigned local session key ID 18981 + [1693996905.702851][74442:74442] CHIP:SC: Waiting for PBKDF param request + disabled: true + + - label: + "Step 83: DAC Test Vector: Certificate Basic Constraint extension CA + field is missing" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + [1693993614.289279][72826:72826] CHIP:EM: <<< [E:11915r S:25559 M:123399583 (Ack:174738663)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693993614.289287][72826:72826] CHIP:IN: (S) Sending msg 123399583 on secure session with LSID: 25559 + [1693993614.289310][72826:72826] CHIP:DMG: Command handler moving to [CommandSen] + [1693993614.289313][72826:72826] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693993614.289317][72826:72826] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693993614.289321][72826:72826] CHIP:SVR: Failsafe timer expired + [1693993614.289324][72826:72826] CHIP:IN: SecureSession[0x5585eb32ab80]: MarkForEviction Type:1 LSID:25559 + [1693993614.289329][72826:72826] CHIP:SC: SecureSession[0x5585eb32ab80, LSID:25559]: State change 'kActive' --> 'kPendingEviction' + [1693993614.289344][72826:72826] CHIP:IN: SecureSession[0x5585eb32ab80]: Released - Type:1 LSID:25559 + [1693993614.289352][72826:72826] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693993614.289370][72826:72826] CHIP:IN: SecureSession[0x5585eb32ab80]: Allocated Type:1 LSID:25561 + [1693993614.289375][72826:72826] CHIP:SC: Assigned local session key ID 25561 + [1693993614.289379][72826:72826] CHIP:SC: Waiting for PBKDF param request + [1693993614.289386][72826:72826] CHIP:DIS: Updating services using commissioning mode 1 + [1693993614.289637][72826:72826] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693993614.289931][72826:72826] CHIP:DL: Using wifi MAC for hostname + [1693993614.289970][72826:72826] CHIP:DIS: Advertise commission parameter vendorID=65521 productID=32768 discriminator=3840/15 cm=1 + disabled: true + + - label: + "Step 84: DAC Test Vector: Certificate Key Usage extension cRLSign + field is wrong (present for DAC and not present for PAI)" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693997175.066400][74569:74569] CHIP:EM: <<< [E:49203r S:4076 M:82722507 (Ack:43979047)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693997175.066406][74569:74569] CHIP:IN: (S) Sending msg 82722507 on secure session with LSID: 4076 + [1693997175.066434][74569:74569] CHIP:DMG: Command handler moving to [CommandSen] + [1693997175.066438][74569:74569] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693997175.066445][74569:74569] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693997175.066450][74569:74569] CHIP:SVR: Failsafe timer expired + [1693997175.066453][74569:74569] CHIP:IN: SecureSession[0x55b6ecc239a0]: MarkForEviction Type:1 LSID:4076 + [1693997175.066457][74569:74569] CHIP:SC: SecureSession[0x55b6ecc239a0, LSID:4076]: State change 'kActive' --> 'kPendingEviction' + [1693997175.066473][74569:74569] CHIP:IN: SecureSession[0x55b6ecc239a0]: Released - Type:1 LSID:4076 + [1693997175.066481][74569:74569] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693997175.066500][74569:74569] CHIP:IN: SecureSession[0x55b6ecc239a0]: Allocated Type:1 LSID:4078 + [1693997175.066507][74569:74569] CHIP:SC: Assigned local session key ID 4078 + [1693997175.066511][74569:74569] CHIP:SC: Waiting for PBKDF param request + [1693997175.066518][74569:74569] CHIP:DIS: Updating services using commissioning mode 1 + disabled: true + + - label: + "Step 85: DAC Test Vector: Certificate Basic Constraint extension + PathLen field set to 1" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693993543.391045][72792:72792] CHIP:EM: <<< [E:27543r S:37975 M:106997663 (Ack:16093275)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693993543.391050][72792:72792] CHIP:IN: (S) Sending msg 106997663 on secure session with LSID: 37975 + [1693993543.391083][72792:72792] CHIP:DMG: Command handler moving to [CommandSen] + [1693993543.391086][72792:72792] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693993543.391090][72792:72792] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693993543.391093][72792:72792] CHIP:SVR: Failsafe timer expired + [1693993543.391095][72792:72792] CHIP:IN: SecureSession[0x55cc9deb9c60]: MarkForEviction Type:1 LSID:37975 + [1693993543.391098][72792:72792] CHIP:SC: SecureSession[0x55cc9deb9c60, LSID:37975]: State change 'kActive' --> 'kPendingEviction' + [1693993543.391110][72792:72792] CHIP:IN: SecureSession[0x55cc9deb9c60]: Released - Type:1 LSID:37975 + [1693993543.391117][72792:72792] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693993543.391131][72792:72792] CHIP:IN: SecureSession[0x55cc9deb9c60]: Allocated Type:1 LSID:37977 + [1693993543.391135][72792:72792] CHIP:SC: Assigned local session key ID 37977 + [1693993543.391138][72792:72792] CHIP:SC: Waiting for PBKDF param request + [1693993543.391143][72792:72792] CHIP:DIS: Updating services using commissioning mode 1 + [1693993543.391335][72792:72792] CHIP:DIS: CHIP minimal mDNS started advertising. + disabled: true + + - label: + "Step 86: DAC Test Vector: Fallback VID and PID encoding example: + invalid VID prefix" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/test_case_vector.json --product-id 177 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693995912.709704][74034:74034] CHIP:EM: <<< [E:38489r S:6352 M:205559533 (Ack:262506086)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693995912.709712][74034:74034] CHIP:IN: (S) Sending msg 205559533 on secure session with LSID: 6352 + [1693995912.709737][74034:74034] CHIP:DMG: Command handler moving to [CommandSen] + [1693995912.709739][74034:74034] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693995912.709744][74034:74034] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693995912.709747][74034:74034] CHIP:SVR: Failsafe timer expired + [1693995912.709750][74034:74034] CHIP:IN: SecureSession[0x5619a3eaeea0]: MarkForEviction Type:1 LSID:6352 + [1693995912.709755][74034:74034] CHIP:SC: SecureSession[0x5619a3eaeea0, LSID:6352]: State change 'kActive' --> 'kPendingEviction' + [1693995912.709771][74034:74034] CHIP:IN: SecureSession[0x5619a3eaeea0]: Released - Type:1 LSID:6352 + [1693995912.709780][74034:74034] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693995912.709797][74034:74034] CHIP:IN: SecureSession[0x5619a3eaeea0]: Allocated Type:1 LSID:6354 + [1693995912.709803][74034:74034] CHIP:SC: Assigned local session key ID 6354 + [1693995912.709806][74034:74034] CHIP:SC: Waiting for PBKDF param request + [1693995912.709814][74034:74034] CHIP:DIS: Updating services using commissioning mode 1 + [1693995912.710062][74034:74034] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693995912.710352][74034:74034] CHIP:DL: Using wifi MAC for hostname + disabled: true + + - label: + "Step 87: DAC Test Vector: Invalid certificate version field set to + v2(1)" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_dac_cert_version_v2/test_case_vector.json --product-id 32768 + + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693994702.874495][73568:73568] CHIP:DMG: + [1693994702.874505][73568:73568] CHIP:EM: <<< [E:48921r S:51325 M:96774311 (Ack:264729104)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693994702.874510][73568:73568] CHIP:IN: (S) Sending msg 96774311 on secure session with LSID: 51325 + [1693994702.874533][73568:73568] CHIP:DMG: Command handler moving to [CommandSen] + [1693994702.874536][73568:73568] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693994702.874540][73568:73568] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693994702.874542][73568:73568] CHIP:SVR: Failsafe timer expired + [1693994702.874546][73568:73568] CHIP:IN: SecureSession[0x5619db2979a0]: MarkForEviction Type:1 LSID:51325 + [1693994702.874550][73568:73568] CHIP:SC: SecureSession[0x5619db2979a0, LSID:51325]: State change 'kActive' --> 'kPendingEviction' + [1693994702.874564][73568:73568] CHIP:IN: SecureSession[0x5619db2979a0]: Released - Type:1 LSID:51325 + [1693994702.874572][73568:73568] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693994702.874587][73568:73568] CHIP:IN: SecureSession[0x5619db2979a0]: Allocated Type:1 LSID:51327 + [1693994702.874592][73568:73568] CHIP:SC: Assigned local session key ID 51327 + [1693994702.874595][73568:73568] CHIP:SC: Waiting for PBKDF param request + [1693994702.874603][73568:73568] CHIP:DIS: Updating services using commissioning mode 1 + [1693994702.874831][73568:73568] CHIP:DIS: CHIP minimal mDNS started advertising. + disabled: true + + - label: + "Step 88: DAC Test Vector: VID in Subject field doesnt match VID in + Issuer field" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693993773.557516][72869:72869] CHIP:DMG: } + [1693993773.557518][72869:72869] CHIP:DMG: + [1693993773.557529][72869:72869] CHIP:EM: <<< [E:20914r S:10360 M:64900117 (Ack:58867763)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693993773.557537][72869:72869] CHIP:IN: (S) Sending msg 64900117 on secure session with LSID: 10360 + [1693993773.557569][72869:72869] CHIP:DMG: Command handler moving to [CommandSen] + [1693993773.557573][72869:72869] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693993773.557579][72869:72869] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693993773.557582][72869:72869] CHIP:SVR: Failsafe timer expired + [1693993773.557585][72869:72869] CHIP:IN: SecureSession[0x565173d71a20]: MarkForEviction Type:1 LSID:10360 + [1693993773.557588][72869:72869] CHIP:SC: SecureSession[0x565173d71a20, LSID:10360]: State change 'kActive' --> 'kPendingEviction' + [1693993773.557599][72869:72869] CHIP:IN: SecureSession[0x565173d71a20]: Released - Type:1 LSID:10360 + [1693993773.557606][72869:72869] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693993773.557620][72869:72869] CHIP:IN: SecureSession[0x565173d71a20]: Allocated Type:1 LSID:10362 + [1693993773.557624][72869:72869] CHIP:SC: Assigned local session key ID 10362 + [1693993773.557627][72869:72869] CHIP:SC: Waiting for PBKDF param request + [1693993773.557632][72869:72869] CHIP:DIS: Updating services using commissioning mode 1 + [1693993773.557813][72869:72869] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693993773.558024][72869:72869] CHIP:DL: Using wifi MAC for hostname + [1693993773.558059][72869:72869] CHIP:DIS: Advertise commission parameter vendorID=65521 productID=32768 discriminator=3840/15 cm=1 + disabled: true + + - label: "Step 89: CD Test Vector: The format_version field is missing." + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_format_version_missing/test_case_vector.json --product-id 32768 + + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693997210.051257][74584:74584] CHIP:EM: <<< [E:57940r S:23049 M:92365298 (Ack:236085904)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693997210.051264][74584:74584] CHIP:IN: (S) Sending msg 92365298 on secure session with LSID: 23049 + [1693997210.051294][74584:74584] CHIP:DMG: Command handler moving to [CommandSen] + [1693997210.051297][74584:74584] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693997210.051303][74584:74584] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693997210.051307][74584:74584] CHIP:SVR: Failsafe timer expired + [1693997210.051310][74584:74584] CHIP:IN: SecureSession[0x558b22f2fce0]: MarkForEviction Type:1 LSID:23049 + [1693997210.051313][74584:74584] CHIP:SC: SecureSession[0x558b22f2fce0, LSID:23049]: State change 'kActive' --> 'kPendingEviction' + [1693997210.051326][74584:74584] CHIP:IN: SecureSession[0x558b22f2fce0]: Released - Type:1 LSID:23049 + [1693997210.051334][74584:74584] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693997210.051349][74584:74584] CHIP:IN: SecureSession[0x558b22f2fce0]: Allocated Type:1 LSID:23051 + [1693997210.051354][74584:74584] CHIP:SC: Assigned local session key ID 23051 + disabled: true + + - label: "Step 90: CD Test Vector: The device_type_id field is missing." + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693993573.297063][72806:72806] CHIP:EM: <<< [E:28701r S:35923 M:215504152 (Ack:14384899)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693993573.297071][72806:72806] CHIP:IN: (S) Sending msg 215504152 on secure session with LSID: 35923 + [1693993573.297109][72806:72806] CHIP:DMG: Command handler moving to [CommandSen] + [1693993573.297112][72806:72806] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693993573.297119][72806:72806] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693993573.297122][72806:72806] CHIP:SVR: Failsafe timer expired + [1693993573.297125][72806:72806] CHIP:IN: SecureSession[0x561727f72ce0]: MarkForEviction Type:1 LSID:35923 + [1693993573.297127][72806:72806] CHIP:SC: SecureSession[0x561727f72ce0, LSID:35923]: State change 'kActive' --> 'kPendingEviction' + [1693993573.297139][72806:72806] CHIP:IN: SecureSession[0x561727f72ce0]: Released - Type:1 LSID:35923 + [1693993573.297145][72806:72806] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693993573.297158][72806:72806] CHIP:IN: SecureSession[0x561727f72ce0]: Allocated Type:1 LSID:35925 + [1693993573.297163][72806:72806] CHIP:SC: Assigned local session key ID 35925 + [1693993573.297165][72806:72806] CHIP:SC: Waiting for PBKDF param request + [1693993573.297172][72806:72806] CHIP:DIS: Updating services using commissioning mode 1 + [1693993573.297368][72806:72806] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693993573.297638][72806:72806] CHIP:DL: Using wifi MAC for hostname + [1693993573.297667][72806:72806] CHIP:DIS: Advertise commission parameter vendorID=65521 productID=32768 discriminator=3840/15 cm=1 + [1693993573.297676][72806:72806] CHIP:DIS: Responding with _matterc._udp.local + disabled: true + + - label: + "Step 91: DAC Test Vector: PID in Subject field doesnt match PID in + Issuer field" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693996797.931878][74392:74392] CHIP:DMG: + [1693996797.931886][74392:74392] CHIP:EM: <<< [E:52113r S:36416 M:61307417 (Ack:229885016)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693996797.931891][74392:74392] CHIP:IN: (S) Sending msg 61307417 on secure session with LSID: 36416 + [1693996797.931930][74392:74392] CHIP:DMG: Command handler moving to [CommandSen] + [1693996797.931932][74392:74392] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693996797.931937][74392:74392] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693996797.931940][74392:74392] CHIP:SVR: Failsafe timer expired + [1693996797.931942][74392:74392] CHIP:IN: SecureSession[0x55bc8f6cbc40]: MarkForEviction Type:1 LSID:36416 + [1693996797.931945][74392:74392] CHIP:SC: SecureSession[0x55bc8f6cbc40, LSID:36416]: State change 'kActive' --> 'kPendingEviction' + [1693996797.931957][74392:74392] CHIP:IN: SecureSession[0x55bc8f6cbc40]: Released - Type:1 LSID:36416 + [1693996797.931964][74392:74392] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693996797.931977][74392:74392] CHIP:IN: SecureSession[0x55bc8f6cbc40]: Allocated Type:1 LSID:36418 + [1693996797.931981][74392:74392] CHIP:SC: Assigned local session key ID 36418 + disabled: true + + - label: + "Step 92: PAI Test Vector: Certificate Basic Constraint extension CA + field is wrong (TRUE for DAC and FALSE for PAI)" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693995232.206947][73816:73816] CHIP:EM: <<< [E:17497r S:51386 M:198210726 (Ack:46150282)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693995232.206956][73816:73816] CHIP:IN: (S) Sending msg 198210726 on secure session with LSID: 51386 + [1693995232.206984][73816:73816] CHIP:DMG: Command handler moving to [CommandSen] + [1693995232.206988][73816:73816] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693995232.206994][73816:73816] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693995232.206998][73816:73816] CHIP:SVR: Failsafe timer expired + [1693995232.207002][73816:73816] CHIP:IN: SecureSession[0x55d9850fe970]: MarkForEviction Type:1 LSID:51386 + [1693995232.207006][73816:73816] CHIP:SC: SecureSession[0x55d9850fe970, LSID:51386]: State change 'kActive' --> 'kPendingEviction' + [1693995232.207029][73816:73816] CHIP:IN: SecureSession[0x55d9850fe970]: Released - Type:1 LSID:51386 + [1693995232.207045][73816:73816] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693995232.207086][73816:73816] CHIP:IN: SecureSession[0x55d9850fe970]: Allocated Type:1 LSID:51388 + [1693995232.207097][73816:73816] CHIP:SC: Assigned local session key ID 51388 + [1693995232.207101][73816:73816] CHIP:SC: Waiting for PBKDF param request + [1693995232.207113][73816:73816] CHIP:DIS: Updating services using commissioning mode 1 + [1693995232.207494][73816:73816] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693995232.207803][73816:73816] CHIP:DL: Using wifi MAC for hostname + disabled: true + + - label: + "Step 93: CD Test Vector: The dac_origin_vendor_id and + dac_origin_product_id fields present and the PID value doesnt match + the PID found in the DAC Subject DN." + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693995756.487808][73971:73971] CHIP:EM: <<< [E:18472r S:904 M:103552416 (Ack:249527511)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693995756.487815][73971:73971] CHIP:IN: (S) Sending msg 103552416 on secure session with LSID: 904 + [1693995756.487857][73971:73971] CHIP:DMG: Command handler moving to [CommandSen] + [1693995756.487860][73971:73971] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693995756.487866][73971:73971] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693995756.487869][73971:73971] CHIP:SVR: Failsafe timer expired + [1693995756.487873][73971:73971] CHIP:IN: SecureSession[0x563f4befd0a0]: MarkForEviction Type:1 LSID:904 + [1693995756.487877][73971:73971] CHIP:SC: SecureSession[0x563f4befd0a0, LSID:904]: State change 'kActive' --> 'kPendingEviction' + [1693995756.487891][73971:73971] CHIP:IN: SecureSession[0x563f4befd0a0]: Released - Type:1 LSID:904 + [1693995756.487898][73971:73971] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693995756.487913][73971:73971] CHIP:IN: SecureSession[0x563f4befd0a0]: Allocated Type:1 LSID:906 + [1693995756.487919][73971:73971] CHIP:SC: Assigned local session key ID 906 + [1693995756.487922][73971:73971] CHIP:SC: Waiting for PBKDF param request + [1693995756.487928][73971:73971] CHIP:DIS: Updating services using commissioning mode 1 + [1693995756.488137][73971:73971] CHIP:DIS: CHIP minimal mDNS started advertising. + disabled: true + + - label: "Step 94: CD Test Vector: Invalid CMS digest algorithm SHA1." + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693995992.630928][74076:74076] CHIP:EM: <<< [E:17723r S:41547 M:62321273 (Ack:21047269)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693995992.630935][74076:74076] CHIP:IN: (S) Sending msg 62321273 on secure session with LSID: 41547 + [1693995992.630973][74076:74076] CHIP:DMG: Command handler moving to [CommandSen] + [1693995992.630976][74076:74076] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693995992.630981][74076:74076] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693995992.630984][74076:74076] CHIP:SVR: Failsafe timer expired + [1693995992.630987][74076:74076] CHIP:IN: SecureSession[0x5651ac815d00]: MarkForEviction Type:1 LSID:41547 + [1693995992.630990][74076:74076] CHIP:SC: SecureSession[0x5651ac815d00, LSID:41547]: State change 'kActive' --> 'kPendingEviction' + [1693995992.631001][74076:74076] CHIP:IN: SecureSession[0x5651ac815d00]: Released - Type:1 LSID:41547 + [1693995992.631007][74076:74076] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693995992.631022][74076:74076] CHIP:IN: SecureSession[0x5651ac815d00]: Allocated Type:1 LSID:41549 + [1693995992.631026][74076:74076] CHIP:SC: Assigned local session key ID 41549 + [1693995992.631029][74076:74076] CHIP:SC: Waiting for PBKDF param request + [1693995992.631034][74076:74076] CHIP:DIS: Updating services using commissioning mode 1 + disabled: true + + - label: "Step 95: CD Test Vector: Invalid CMS Signature." + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_cms_signature/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693994899.515996][73668:73668] CHIP:DMG: + [1693994899.516006][73668:73668] CHIP:EM: <<< [E:6307r S:5804 M:155066286 (Ack:201427042)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693994899.516012][73668:73668] CHIP:IN: (S) Sending msg 155066286 on secure session with LSID: 5804 + [1693994899.516034][73668:73668] CHIP:DMG: Command handler moving to [CommandSen] + [1693994899.516037][73668:73668] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693994899.516043][73668:73668] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693994899.516046][73668:73668] CHIP:SVR: Failsafe timer expired + [1693994899.516050][73668:73668] CHIP:IN: SecureSession[0x56266902eb60]: MarkForEviction Type:1 LSID:5804 + [1693994899.516054][73668:73668] CHIP:SC: SecureSession[0x56266902eb60, LSID:5804]: State change 'kActive' --> 'kPendingEviction' + [1693994899.516068][73668:73668] CHIP:IN: SecureSession[0x56266902eb60]: Released - Type:1 LSID:5804 + [1693994899.516075][73668:73668] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693994899.516090][73668:73668] CHIP:IN: SecureSession[0x56266902eb60]: Allocated Type:1 LSID:5806 + [1693994899.516095][73668:73668] CHIP:SC: Assigned local session key ID 5806 + [1693994899.516098][73668:73668] CHIP:SC: Waiting for PBKDF param request + [1693994899.516106][73668:73668] CHIP:DIS: Updating services using commissioning mode 1 + [1693994899.516366][73668:73668] CHIP:DIS: CHIP minimal mDNS started advertising. + [1693994899.516614][73668:73668] CHIP:DL: Using wifi MAC for hostname + disabled: true + + - label: + "Step 96: PAI Test Vector: Certificate Basic Constraint extension + PathLen field set to 1" + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + o 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693995941.309060][74050:74050] CHIP:IN: (S) Sending msg 222865985 on secure session with LSID: 45785 + [1693995941.309108][74050:74050] CHIP:DMG: Command handler moving to [CommandSen] + [1693995941.309111][74050:74050] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693995941.309119][74050:74050] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693995941.309122][74050:74050] CHIP:SVR: Failsafe timer expired + [1693995941.309126][74050:74050] CHIP:IN: SecureSession[0x559c0bcaea80]: MarkForEviction Type:1 LSID:45785 + [1693995941.309130][74050:74050] CHIP:SC: SecureSession[0x559c0bcaea80, LSID:45785]: State change 'kActive' --> 'kPendingEviction' + [1693995941.309150][74050:74050] CHIP:IN: SecureSession[0x559c0bcaea80]: Released - Type:1 LSID:45785 + [1693995941.309163][74050:74050] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693995941.309185][74050:74050] CHIP:IN: SecureSession[0x559c0bcaea80]: Allocated Type:1 LSID:45787 + [1693995941.309190][74050:74050] CHIP:SC: Assigned local session key ID 45787 + [1693995941.309194][74050:74050] CHIP:SC: Waiting for PBKDF param request + [1693995941.309202][74050:74050] CHIP:DIS: Updating services using commissioning mode 1 + [1693995941.309518][74050:74050] CHIP:DIS: CHIP minimal mDNS started advertising. + disabled: true + + - label: + "Step 97: CD Test Vector: The subjectKeyIdentifier contains invalid + SKID of a certificate unknown by Zigbee Alliance." + verification: | + For Raspberry Pi device, perform a factory reset using the following command - sudo rm -rf /tmp/chip_* for the 'chip-all-clusters-app. + please use the equivalent command on your respective platform to perform a factory reset + + + Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform + + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/test_case_vector.json --product-id 32768 + + Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + + On TH(all-clusters-app), Verify that the DUT(chip-tool) indicates that the device is not genuine, or otherwise indicates a failure of device attestation, within its error handling APIs or user interface + + [1693993614.289269][72826:72826] CHIP:DMG: + [1693993614.289279][72826:72826] CHIP:EM: <<< [E:11915r S:25559 M:123399583 (Ack:174738663)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1693993614.289287][72826:72826] CHIP:IN: (S) Sending msg 123399583 on secure session with LSID: 25559 + [1693993614.289310][72826:72826] CHIP:DMG: Command handler moving to [CommandSen] + [1693993614.289313][72826:72826] CHIP:DMG: Command handler moving to [AwaitingDe] + [1693993614.289317][72826:72826] CHIP:DL: HandlePlatformSpecificBLEEvent 32783 + [1693993614.289321][72826:72826] CHIP:SVR: Failsafe timer expired + [1693993614.289324][72826:72826] CHIP:IN: SecureSession[0x5585eb32ab80]: MarkForEviction Type:1 LSID:25559 + [1693993614.289329][72826:72826] CHIP:SC: SecureSession[0x5585eb32ab80, LSID:25559]: State change 'kActive' --> 'kPendingEviction' + [1693993614.289344][72826:72826] CHIP:IN: SecureSession[0x5585eb32ab80]: Released - Type:1 LSID:25559 + [1693993614.289352][72826:72826] CHIP:SVR: Commissioning failed (attempt 1): src/app/server/CommissioningWindowManager.cpp:77: CHIP Error 0x00000032: Timeout + [1693993614.289370][72826:72826] CHIP:IN: SecureSession[0x5585eb32ab80]: Allocated Type:1 LSID:25561 + [1693993614.289375][72826:72826] CHIP:SC: Assigned local session key ID 25561 + [1693993614.289379][72826:72826] CHIP:SC: Waiting for PBKDF param request + [1693993614.289386][72826:72826] CHIP:DIS: Updating services using commissioning mode 1 + [1693993614.289637][72826:72826] CHIP:DIS: CHIP minimal mDNS started advertising. disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DA_1_8.yaml b/src/app/tests/suites/certification/Test_TC_DA_1_8.yaml index 7f190760dc2dfa..878806b49b0753 100644 --- a/src/app/tests/suites/certification/Test_TC_DA_1_8.yaml +++ b/src/app/tests/suites/certification/Test_TC_DA_1_8.yaml @@ -37,9 +37,9 @@ tests: disabled: true - label: - "Step 1a: For each of the following test cases, start the TH using the - appropriate certificate set, commission the TH using the DUT, then - factory reset the TH:" + "Step 1:Precondition: For each of the following test cases, start the + TH using the appropriate certificate set, commission the TH using the + DUT, then factory reset the TH:" verification: | Perform the following actions (PIs use equivalent command on their respective platform) - Start the TH using the required certificate set and PID. For chip-all-clusters-app, use the command given in the chip-all-clusters app command column @@ -49,7 +49,7 @@ tests: disabled: true - label: - "Step 1b: CD Test Vector: The product_id_array field has one PID value + "Step 1: CD Test Vector: The product_id_array field has one PID value which matches the PID value in DAC." verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform @@ -78,7 +78,7 @@ tests: disabled: true - label: - "Step 1c: DAC Test Vector: Valid certificate signature algorithm + "Step 2: DAC Test Vector: Valid certificate signature algorithm ECDSA_WITH_SHA256" verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform @@ -105,7 +105,7 @@ tests: disabled: true - label: - "Step 1d: PAI Test Vector: Certificate Key Usage extension + "Step 3: PAI Test Vector: Certificate Key Usage extension digitalSignature field is wrong (not present for DAC and present for PAI, which is OK as optional)" verification: | @@ -128,7 +128,7 @@ tests: [1690282103.319847][14495:14495] CHIP:DIS: Responding with _matter._tcp.local disabled: true - - label: "Step 1e: CD Test Vector: Valid CMS digest algorithm SHA256." + - label: "Step 4: CD Test Vector: Valid CMS digest algorithm SHA256." verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/test_case_vector.json --product-id 32768 @@ -153,7 +153,7 @@ tests: disabled: true - label: - "Step 1f: DAC Test Vector: Fallback VID and PID encoding example from + "Step 5: DAC Test Vector: Fallback VID and PID encoding example from spec: valid and recommended since easily human-readable" verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform @@ -177,7 +177,7 @@ tests: disabled: true - label: - "Step 1g: PAI Test Vector: Valid certificate public key curve + "Step 6: PAI Test Vector: Valid certificate public key curve prime256v1" verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform @@ -207,7 +207,7 @@ tests: disabled: true - label: - "Step 1h: DAC Test Vector: Fallback VID and PID encoding example from + "Step 7: DAC Test Vector: Fallback VID and PID encoding example from spec: valid, but highly discouraged, since embedding of substrings within other substrings may be confusing to human readers" verification: | @@ -236,7 +236,7 @@ tests: disabled: true - label: - "Step 1i: PAI Test Vector: Valid certificate signature algorithm + "Step 8: PAI Test Vector: Valid certificate signature algorithm ECDSA_WITH_SHA256" verification: | @@ -264,7 +264,7 @@ tests: disabled: true - label: - "Step 1j: DAC Test Vector: Fallback VID and PID encoding example from + "Step 9: DAC Test Vector: Fallback VID and PID encoding example from spec: valid, but less readable" verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform @@ -290,7 +290,7 @@ tests: disabled: true - label: - "Step 1k: CD Test Vector: Valid CMS signature algorithm + "Step 10: CD Test Vector: Valid CMS signature algorithm ECDSA_WITH_SHA256." verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform @@ -326,7 +326,7 @@ tests: disabled: true - label: - "Step 1l: PAI Test Vector: Fallback VID and PID encoding example from + "Step 11: PAI Test Vector: Fallback VID and PID encoding example from spec: valid, but less readable" verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform @@ -356,7 +356,7 @@ tests: disabled: true - label: - "Step 1m: DAC Test Vector: Certificate includes optional Extended Key + "Step 12: DAC Test Vector: Certificate includes optional Extended Key Usage extension" verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform @@ -380,7 +380,7 @@ tests: disabled: true - label: - "Step 1n: DAC Test Vector: Mix of Fallback and Matter OID encoding for + "Step 14: DAC Test Vector: Mix of Fallback and Matter OID encoding for VID and PID: valid, Matter OIDs are used and wrong values in the common-name are ignored" verification: | @@ -404,7 +404,7 @@ tests: disabled: true - label: - "Step 1o: CD Test Vector: The product_id_array field has one PID value + "Step 15: CD Test Vector: The product_id_array field has one PID value which matches the PID value in DAC." verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform @@ -439,7 +439,7 @@ tests: [1690280928.950815][13907:13907] CHIP:DIS: mDNS service published: _matter._tcp disabled: true - - label: "Step 1p: CD Test Vector: Valid format_version field set to 1." + - label: "Step 16: CD Test Vector: Valid format_version field set to 1." verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_format_version_1/test_case_vector.json --product-id 32768 @@ -464,7 +464,7 @@ tests: [1690283303.543293][15037:15037] CHIP:DIS: Responding with 8C1D96786A130000.local disabled: true - - label: "Step 1q: CD Test Vector: Valid CMS eContentType pkcs7-data." + - label: "Step 17: CD Test Vector: Valid CMS eContentType pkcs7-data." verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/test_case_vector.json --product-id 32768 @@ -492,7 +492,7 @@ tests: disabled: true - label: - "Step 1r: DAC Test Vector: Fallback VID and PID encoding example from + "Step 19: DAC Test Vector: Fallback VID and PID encoding example from spec: valid example showing that order or separators are not considered at all for the overall validity of the embedded fields" verification: | @@ -517,10 +517,9 @@ tests: [1691133683.538318][11126:11126] CHIP:DIS: Responding with _matter._tcp.local disabled: true - - label: "Step 1s: struct_cd_authorized_paa_list_count1_valid (pid=32768)" - PICS: - "CD Test Vector: The authorized_paa_list contains one valid PAA which - is authorized to sign the PAI." + - label: + "Step 20: CD Test Vector: The authorized_paa_list contains one valid + PAA which is authorized to sign the PAI." verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/test_case_vector.json --product-id 32768 @@ -547,7 +546,7 @@ tests: disabled: true - label: - "Step 1t: DAC Test Vector: Certificate includes optional Authority + "Step 21: DAC Test Vector: Certificate includes optional Authority Information Access extension" verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform @@ -574,7 +573,7 @@ tests: disabled: true - label: - "Step 1u: PAI Test Vector: Certificate includes optional Subject + "Step 22: PAI Test Vector: Certificate includes optional Subject Alternative Name extension" verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform @@ -606,7 +605,7 @@ tests: disabled: true - label: - "Step 1v: PAI Test Vector: Valid certificate version field set to + "Step 23: PAI Test Vector: Valid certificate version field set to v3(2)" verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform @@ -638,7 +637,7 @@ tests: disabled: true - label: - "Step 1x: DAC Test Vector: Valid certificate public key curve + "Step 24: DAC Test Vector: Valid certificate public key curve prime256v1" verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform @@ -668,7 +667,7 @@ tests: disabled: true - label: - "Step 1y: CD Test Vector: Origin VID/PID different than VID/PID + "Step 25: CD Test Vector: Origin VID/PID different than VID/PID (correct use of origin)" verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform @@ -704,7 +703,7 @@ tests: disabled: true - label: - "Step 1z: DAC Test Vector: Fallback VID and PID encoding example: + "Step 26: DAC Test Vector: Fallback VID and PID encoding example: valid, but less human-readable" verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform @@ -735,38 +734,33 @@ tests: disabled: true - label: - "Step 1a1: CD Test Vector: The optional authorized_paa_list field is + "Step 27: CD Test Vector: The optional authorized_paa_list field is not present." verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform - ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/test_case_vector.json --product-id 177 + ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/test_case_vector.json --product-id 32768 Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform - ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 On TH(all-clusters-app), Verify that the DUT(chip-tool) and TH(all-clusters-app) is successfully commissioned - [1691133604.268090][11108:11108] CHIP:IN: (S) Sending msg 242960033 on secure session with LSID: 63451 - [1691133604.268262][11108:11108] CHIP:DMG: Command handler moving to [CommandSen] - [1691133604.268288][11108:11108] CHIP:DMG: Command handler moving to [AwaitingDe] - [1691133604.268325][11108:11108] CHIP:DL: HandlePlatformSpecificBLEEvent 32782 - [1691133604.268347][11108:11108] CHIP:SVR: Commissioning completed successfully - [1691133604.268383][11108:11108] CHIP:DIS: Updating services using commissioning mode 0 - [1691133604.276764][11108:11108] CHIP:DIS: CHIP minimal mDNS started advertising. - [1691133604.304404][11108:11108] CHIP:DL: Using wifi MAC for hostname - [1691133604.304458][11108:11108] CHIP:DIS: Advertise operational node 3CBA812920C1A81B-0000000000000001 - [1691133604.304504][11108:11108] CHIP:DIS: Responding with _matter._tcp.local - [1691133604.304525][11108:11108] CHIP:DIS: Responding with 3CBA812920C1A81B-0000000000000001._matter._tcp.local - [1691133604.304549][11108:11108] CHIP:DIS: Responding with 3CBA812920C1A81B-0000000000000001._matter._tcp.local - [1691133604.304567][11108:11108] CHIP:DIS: Responding with E45F010F1A010000.local - [1691133604.304584][11108:11108] CHIP:DIS: Responding with E45F010F1A010000.local - [1691133604.304607][11108:11108] CHIP:DIS: Responding with _I3CBA812920C1A81B._sub._matter._tcp.local - [1691133604.304625][11108:11108] CHIP:DIS: CHIP minimal mDNS configured as 'Operational device'; instance name: 3CBA812920C1A81B-0000000000000001. - [1691133604.318978][11108:11108] CHIP:DIS: mDNS service published: _matter._tcp + [1696578156.356111][16897:16897] CHIP:DMG: Command handler moving to [CommandSen] + [1696578156.356116][16897:16897] CHIP:DMG: Command handler moving to [AwaitingDe] + [1696578156.356122][16897:16897] CHIP:DL: HandlePlatformSpecificBLEEvent 32782 + [1696578156.356125][16897:16897] CHIP:SVR: Commissioning completed successfully + [1696578156.356135][16897:16897] CHIP:DIS: Updating services using commissioning mode 0 + [1696578156.356317][16897:16897] CHIP:DIS: CHIP minimal mDNS started advertising. + [1696578156.356884][16897:16897] CHIP:DL: Using wifi MAC for hostname + [1696578156.356892][16897:16897] CHIP:DIS: Advertise operational node 35F3EA0B1085A647-0000000000000001 + [1696578156.356901][16897:16897] CHIP:DIS: Responding with _matter._tcp.local + [1696578156.356904][16897:16897] CHIP:DIS: Responding with 35F3EA0B1085A647-0000000000000001._matter._tcp.local + [1696578156.356907][16897:16897] CHIP:DIS: Responding with 35F3EA0B1085A647-0000000000000001._matter._tcp.local + [1696578156.356910][16897:16897] CHIP:DIS: Responding with 8C1D96786A130000.local disabled: true - label: - "Step 1a2: PAI Test Vector: Certificate Basic Constraint extension + "Step 28: PAI Test Vector: Certificate Basic Constraint extension PathLen field set to 0" verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform @@ -794,7 +788,7 @@ tests: disabled: true - label: - "Step 1a3: PAI Test Vector: Certificate includes optional Extended Key + "Step 29: PAI Test Vector: Certificate includes optional Extended Key Usage extension" verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform @@ -822,7 +816,7 @@ tests: disabled: true - label: - "Step 1a4: CD Test Vector: The authorized_paa_list contains two PAAs + "Step 30: CD Test Vector: The authorized_paa_list contains two PAAs one of which is valid PAA authorized to sign the PAI." verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform @@ -857,7 +851,7 @@ tests: disabled: true - label: - "Step 1a5: PAI Test Vector: Fallback VID and PID encoding example: + "Step 31: PAI Test Vector: Fallback VID and PID encoding example: valid, but less human-readable" verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform @@ -885,7 +879,7 @@ tests: disabled: true - label: - "Step 1a6: PAI Test Vector: Certificate includes optional Authority + "Step 32: PAI Test Vector: Certificate includes optional Authority Information Access extension" verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform @@ -912,8 +906,8 @@ tests: disabled: true - label: - "Step 1a7: CD Test Vector: The product_id_array field has 10 PID - values one of which matches the PID value in DAC." + "Step 33: CD Test Vector: The product_id_array field has 10 PID values + one of which matches the PID value in DAC." verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/test_case_vector.json --product-id 32768 @@ -943,7 +937,7 @@ tests: disabled: true - label: - "Step 1a8: PAI Test Vector: Fallback VID and PID encoding example from + "Step 34: PAI Test Vector: Fallback VID and PID encoding example from spec: valid and recommended since easily human-readable" verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform @@ -971,8 +965,8 @@ tests: disabled: true - label: - "Step 1a9: PAI Test Vector: Mix of Fallback and Matter OID encoding - for VID and PID: valid, Matter OIDs are used and wrong values in the + "Step 35: PAI Test Vector: Mix of Fallback and Matter OID encoding for + VID and PID: valid, Matter OIDs are used and wrong values in the common-name are ignored" verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform @@ -1000,7 +994,7 @@ tests: disabled: true - label: - "Step 1a10: CD Test Vector: The dac_origin_vendor_id and + "Step 36: CD Test Vector: The dac_origin_vendor_id and dac_origin_product_id fields are not present." verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform @@ -1028,9 +1022,9 @@ tests: disabled: true - label: - "Step 1a11: PAI Test Vector: Fallback VID and PID encoding example - from spec: valid, but highly discouraged, since embedding of - substrings within other substrings may be confusing to human readers" + "Step 37: PAI Test Vector: Fallback VID and PID encoding example from + spec: valid, but highly discouraged, since embedding of substrings + within other substrings may be confusing to human readers" verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/test_case_vector.json --product-id 177 @@ -1060,8 +1054,8 @@ tests: disabled: true - label: - "Step 1a12: DAC Test Vector: Fallback VID and PID encoding example - from spec: valid and recommended since easily human-readable" + "Step 38: DAC Test Vector: Fallback VID and PID encoding example from + spec: valid and recommended since easily human-readable" verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/test_case_vector.json --product-id 177 @@ -1086,7 +1080,7 @@ tests: disabled: true - label: - "Step 1a13: CD Test Vector: The product_id_array field has 100 PID + "Step 39: CD Test Vector: The product_id_array field has 100 PID values one of which matches the PID value in DAC." verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform @@ -1110,7 +1104,7 @@ tests: disabled: true - label: - "Step 1a14: CD Test Vector: The authorized_paa_list contains ten PAAs + "Step 40: CD Test Vector: The authorized_paa_list contains ten PAAs one of which is valid PAA authorized to sign the PAI." verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform @@ -1139,7 +1133,7 @@ tests: [1690284741.166783][15669:15669] CHIP:DIS: Responding with 8C1D96786A130000.local disabled: true - - label: "Step 1a15: CD Test Vector: Valid CMS version set to v3." + - label: "Step 41: CD Test Vector: Valid CMS version set to v3." verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_cms_v3/test_case_vector.json --product-id 32768 @@ -1168,10 +1162,9 @@ tests: disabled: true - label: - "Step 1a16: CD Test Vector: The version_number field matches the VID - and PID used in a DeviceSoftwareVersionModel entry in the DCL matching - the certification record associated with the product presenting this - CD." + "Step 42: CD Test Vector: The version_number field matches the VID and + PID used in a DeviceSoftwareVersionModel entry in the DCL matching the + certification record associated with the product presenting this CD." verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_version_number_match/test_case_vector.json --product-id 32768 @@ -1197,8 +1190,8 @@ tests: disabled: true - label: - "Step 1a17: CD Test Vector: The subjectKeyIdentifier contains SKID of - a well-known Zigbee Alliance certificate." + "Step 43: CD Test Vector: The subjectKeyIdentifier contains SKID of a + well-known Zigbee Alliance certificate." verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/test_case_vector.json --product-id 32768 @@ -1226,8 +1219,8 @@ tests: disabled: true - label: - "Step 1a18: PAI Test Vector: Fallback VID and PID encoding example - from spec: valid example showing that order or separators are not + "Step 44: PAI Test Vector: Fallback VID and PID encoding example from + spec: valid example showing that order or separators are not considered at all for the overall validity of the embedded fields" verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform @@ -1256,7 +1249,7 @@ tests: disabled: true - label: - "Step 1a19: DAC Test Vector: Certificate includes optional Subject + "Step 45: DAC Test Vector: Certificate includes optional Subject Alternative Name extension" verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform @@ -1285,7 +1278,7 @@ tests: disabled: true - label: - "Step 1a20: DAC Test Vector: Valid certificate version field set to + "Step 46: DAC Test Vector: Valid certificate version field set to v3(2)" verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform @@ -1321,8 +1314,8 @@ tests: disabled: true - label: - "Step 1a21: PAI Test Vector: Fallback VID and PID encoding example - from spec: valid and recommended since easily human-readable " + "Step 47: PAI Test Vector: Fallback VID and PID encoding example from + spec: valid and recommended since easily human-readable " verification: | Execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform ./chip-all-clusters-app --trace_decode 1 --dac_provider $CHIP_ROOT/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/test_case_vector.json --product-id 177 diff --git a/src/app/tests/suites/certification/Test_TC_DESC_2_1.yaml b/src/app/tests/suites/certification/Test_TC_DESC_2_1.yaml index 5fb15e49a1530e..8778cc209883b5 100644 --- a/src/app/tests/suites/certification/Test_TC_DESC_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DESC_2_1.yaml @@ -106,27 +106,6 @@ tests: [1692617790.900428][31584:31586] CHIP:TOO: Revision: 1 [1692617790.900430][31584:31586] CHIP:TOO: } - ./chip-tool descriptor read device-type-list 1 1 - - On TH (Chip-tool) log, Verify that - - If PartsLists count is 0 then, DeviceTypeList count is at least one. - - DeviceTypeList should contains exactly one Application Device Type [In below log 256(In hex 0x100) is a Application Device Type(On/OffLight)] or set of Application Device Types which are a subset of each other. - - DeviceTypeList may contain one or more Utility Device Types, but not Root Node Device Type.[In below log DeviceType: 17(In hex 0x0011) is a Utility DeviceType ] - - Revision value is not less than 1 and it should match the Revision of the DeviceType and below is the sample log provided for the raspi platform - - [1674552599.264189][21135:21137] CHIP:DMG: } - [1692617790.900384][31584:31586] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2832593371 - [1692617790.900398][31584:31586] CHIP:TOO: DeviceTypeList: 2 entries - [1692617790.900410][31584:31586] CHIP:TOO: [1]: { - [1692617790.900413][31584:31586] CHIP:TOO: DeviceType: 256 - [1692617790.900416][31584:31586] CHIP:TOO: Revision: 1 - [1692617790.900419][31584:31586] CHIP:TOO: } - [1692617790.900423][31584:31586] CHIP:TOO: [2]: { - [1692617790.900425][31584:31586] CHIP:TOO: DeviceType: 17 - [1692617790.900428][31584:31586] CHIP:TOO: Revision: 1 - [1692617790.900430][31584:31586] CHIP:TOO: } - - ./chip-tool descriptor read parts-list 1 2 Verify parts-list response contains 0 entries on the TH (Chip-tool) and below is the sample log provided for the raspi platform: @@ -235,6 +214,20 @@ tests: [1693218196.393772][13451:13453] CHIP:TOO: [68]: 1294 [1693218196.393783][13451:13453] CHIP:TOO: [69]: 2820 [1693218196.393794][13451:13453] CHIP:TOO: [70]: 4294048773 + + ./chip-tool descriptor read server-list 1 2 + + Verify ServerList entries on TH (Chip-tool) Log and below is the sample log provided for the raspi platform, Here ServerList entries are 7. + + [1692618559.962829][31688:31690] CHIP:TOO: Endpoint: 2 Cluster: 0x0000_001D Attribute 0x0000_0001 DataVersion: 1103199808 + [1692618559.962884][31688:31690] CHIP:TOO: ServerList: 7 entries + [1692618559.962910][31688:31690] CHIP:TOO: [1]: 3 + [1692618559.962922][31688:31690] CHIP:TOO: [2]: 4 + [1692618559.962933][31688:31690] CHIP:TOO: [3]: 5 + [1692618559.962945][31688:31690] CHIP:TOO: [4]: 6 + [1692618559.962955][31688:31690] CHIP:TOO: [5]: 29 + [1692618559.962966][31688:31690] CHIP:TOO: [6]: 47 + [1692618559.962978][31688:31690] CHIP:TOO: [7]: 1030 disabled: true - label: "Step 3: TH reads 'ClientList' attribute" diff --git a/src/app/tests/suites/certification/Test_TC_DGWIFI_1_1.yaml b/src/app/tests/suites/certification/Test_TC_DGWIFI_1_1.yaml index 6f1fc9d599369a..8ac9fd1a0afd2e 100644 --- a/src/app/tests/suites/certification/Test_TC_DGWIFI_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGWIFI_1_1.yaml @@ -122,35 +122,7 @@ tests: type: list contains: [11] - - label: "Step 5a: TH reads AcceptedCommandList from DUT" - PICS: " !DGWIFI.S.F01 " - command: "readAttribute" - attribute: "AcceptedCommandList" - response: - value: [] - constraints: - type: list - - - label: - "Step 5b: TH reads Feature dependent(DGWIFI.S.F01) command in - AcceptedCommandList from DUT" - PICS: DGWIFI.S.F01 - command: "readAttribute" - attribute: "AcceptedCommandList" - response: - constraints: - type: list - contains: [0] - - - label: "Step 6: TH reads GeneratedCommandList from DUT" - command: "readAttribute" - attribute: "GeneratedCommandList" - response: - value: [] - constraints: - type: list - - - label: "Step 7a: TH reads EventList from DUT" + - label: "Step 5a: TH reads EventList from DUT" PICS: " !DGWIFI.S.E00 && !DGWIFI.S.E01 && !DGWIFI.S.E02 && PICS_EVENT_LIST_ENABLED" @@ -160,8 +132,9 @@ tests: value: [] constraints: type: list + - label: - "Step 7b: TH reads optional attribute (Disconnection) in EventList + "Step 5b: TH reads optional attribute (Disconnection) in EventList from DUT" PICS: DGWIFI.S.E00 && PICS_EVENT_LIST_ENABLED command: "readAttribute" @@ -170,8 +143,9 @@ tests: constraints: type: list contains: [0] + - label: - "Step 7c: TH reads optional attribute (AssociationFailure) in + "Step 5c: TH reads optional attribute (AssociationFailure) in EventList from DUT" PICS: DGWIFI.S.E01 && PICS_EVENT_LIST_ENABLED command: "readAttribute" @@ -180,8 +154,9 @@ tests: constraints: type: list contains: [1] + - label: - "Step 7d: TH reads optional attribute (ConnectionStatus) in EventList + "Step 5d: TH reads optional attribute (ConnectionStatus) in EventList from DUT" PICS: DGWIFI.S.E02 && PICS_EVENT_LIST_ENABLED command: "readAttribute" @@ -190,3 +165,31 @@ tests: constraints: type: list contains: [2] + + - label: "Step 6a: TH reads AcceptedCommandList from DUT" + PICS: " !DGWIFI.S.F01 " + command: "readAttribute" + attribute: "AcceptedCommandList" + response: + value: [] + constraints: + type: list + + - label: + "Step 6b: TH reads Feature dependent(DGWIFI.S.F01) command in + AcceptedCommandList from DUT" + PICS: DGWIFI.S.F01 + command: "readAttribute" + attribute: "AcceptedCommandList" + response: + constraints: + type: list + contains: [0] + + - label: "Step 7: TH reads GeneratedCommandList from DUT" + command: "readAttribute" + attribute: "GeneratedCommandList" + response: + value: [] + constraints: + type: list diff --git a/src/app/tests/suites/certification/Test_TC_DISHALM_3_1.yaml b/src/app/tests/suites/certification/Test_TC_DISHALM_3_1.yaml index 7e27605410e1cb..9adead9001cbce 100644 --- a/src/app/tests/suites/certification/Test_TC_DISHALM_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DISHALM_3_1.yaml @@ -17,7 +17,7 @@ name: 198.2.2. [TC-DISHALM-3.1] Inflow alarm functionality with DUT as Server PICS: - DISHALM.S - - PIXIT.DISHALM.InflowAlarmSupported + - DISHALM.S.M.InflowAlarmSupported config: nodeId: 0x12344321 diff --git a/src/app/tests/suites/certification/Test_TC_DISHALM_3_2.yaml b/src/app/tests/suites/certification/Test_TC_DISHALM_3_2.yaml index 98ef5006cacf94..d8c82d40b7e00c 100644 --- a/src/app/tests/suites/certification/Test_TC_DISHALM_3_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_DISHALM_3_2.yaml @@ -17,7 +17,7 @@ name: 198.2.3. [TC-DISHALM-3.2] Drain alarm functionality with DUT as Server PICS: - DISHALM.S - - PIXIT.DISHALM.DrainAlarmSupported + - DISHALM.S.M.DrainAlarmSupported config: nodeId: "0x12344321" @@ -166,7 +166,7 @@ tests: set to 1" PICS: DISHALM.S.F00 && DISHALM.S.C00.Rsp verification: | - dishwasheralarm reset 1 1 1 + dishwasheralarm reset 2 1 1 Verify the success Response on TH(chip-tool) [1690974433.649056][3934:3936] CHIP:DMG: ], [1690974433.649084][3934:3936] CHIP:DMG: diff --git a/src/app/tests/suites/certification/Test_TC_DISHALM_3_3.yaml b/src/app/tests/suites/certification/Test_TC_DISHALM_3_3.yaml index dd1c8e75789e5e..c7735d4bf354a0 100644 --- a/src/app/tests/suites/certification/Test_TC_DISHALM_3_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_DISHALM_3_3.yaml @@ -17,7 +17,7 @@ name: 198.2.4. [TC-DISHALM-3.3] Door alarm functionality with DUT as Server PICS: - DISHALM.S - - PIXIT.DISHALM.DoorAlarmSupported + - DISHALM.S.M.DoorAlarmSupported config: nodeId: 0x12344321 @@ -167,7 +167,7 @@ tests: set to 1" PICS: DISHALM.S.F00 && DISHALM.S.C00.Rsp verification: | - dishwasheralarm reset 1 1 1 + dishwasheralarm reset 4 1 1 Verify the success response on TH(chip-tool) [1690974433.649056][3934:3936] CHIP:DMG: ], [1690974433.649084][3934:3936] CHIP:DMG: diff --git a/src/app/tests/suites/certification/Test_TC_DISHALM_3_4.yaml b/src/app/tests/suites/certification/Test_TC_DISHALM_3_4.yaml index 2b1c94bd58f59b..90be26d415f46f 100644 --- a/src/app/tests/suites/certification/Test_TC_DISHALM_3_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_DISHALM_3_4.yaml @@ -19,7 +19,7 @@ name: PICS: - DISHALM.S - - PIXIT.DISHALM.TempLowAlarmSupported + - DISHALM.S.M.TempLowAlarmSupported config: nodeId: 0x12344321 @@ -169,7 +169,7 @@ tests: set to 1" PICS: DISHALM.S.F00 && DISHALM.S.C00.Rsp verification: | - dishwasheralarm reset 1 1 1 + dishwasheralarm reset 8 1 1 Verify the success Response on TH(chip-tool) [1690974433.649056][3934:3936] CHIP:DMG: ], [1690974433.649084][3934:3936] CHIP:DMG: diff --git a/src/app/tests/suites/certification/Test_TC_DISHALM_3_5.yaml b/src/app/tests/suites/certification/Test_TC_DISHALM_3_5.yaml index a2b66804fc367f..1d9b510d02a62d 100644 --- a/src/app/tests/suites/certification/Test_TC_DISHALM_3_5.yaml +++ b/src/app/tests/suites/certification/Test_TC_DISHALM_3_5.yaml @@ -19,7 +19,7 @@ name: PICS: - DISHALM.S - - PIXIT.DISHALM.TempHighAlarmSupported + - DISHALM.S.M.TempHighAlarmSupported config: nodeId: 0x12344321 @@ -169,7 +169,7 @@ tests: Alarms set to 1" PICS: DISHALM.S.F00 && DISHALM.S.C00.Rsp verification: | - dishwasheralarm reset 1 1 1 + dishwasheralarm reset 16 1 1 Verify the success response on TH(chip-tool) [1690974433.649056][3934:3936] CHIP:DMG: ], [1690974433.649084][3934:3936] CHIP:DMG: diff --git a/src/app/tests/suites/certification/Test_TC_DISHALM_3_6.yaml b/src/app/tests/suites/certification/Test_TC_DISHALM_3_6.yaml index e6c8cd85c8179d..c67507fed78261 100644 --- a/src/app/tests/suites/certification/Test_TC_DISHALM_3_6.yaml +++ b/src/app/tests/suites/certification/Test_TC_DISHALM_3_6.yaml @@ -18,7 +18,7 @@ name: PICS: - DISHALM.S - - PIXIT.DISHALM.WaterLevelAlarmSupported + - DISHALM.S.M.WaterLevelAlarmSupported config: nodeId: 0x12344321 @@ -168,7 +168,7 @@ tests: Alarms set to 1" PICS: DISHALM.S.F00 && DISHALM.S.C00.Rsp verification: | - dishwasheralarm reset 1 1 1 + dishwasheralarm reset 32 1 1 Verify the success response on TH(chip-tool) [1690974433.649056][3934:3936] CHIP:DMG: ], [1690974433.649084][3934:3936] CHIP:DMG: diff --git a/src/app/tests/suites/certification/Test_TC_DRLK_2_1.yaml b/src/app/tests/suites/certification/Test_TC_DRLK_2_1.yaml index e54dbd3b2af7f0..b049f65f8a7d64 100755 --- a/src/app/tests/suites/certification/Test_TC_DRLK_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DRLK_2_1.yaml @@ -248,7 +248,7 @@ tests: minValue: 0 maxValue: 11 - - label: "Step 2c: TH writes LockType attribute as 10" + - label: "Step 2b: TH writes LockType attribute as 10" PICS: DRLK.S.A0001 command: "writeAttribute" attribute: "LockType" diff --git a/src/app/tests/suites/certification/Test_TC_DRLK_2_10.yaml b/src/app/tests/suites/certification/Test_TC_DRLK_2_10.yaml index c7b566e61e9b7e..f561d9130e46ce 100644 --- a/src/app/tests/suites/certification/Test_TC_DRLK_2_10.yaml +++ b/src/app/tests/suites/certification/Test_TC_DRLK_2_10.yaml @@ -450,7 +450,7 @@ tests: 0-Single" PICS: DRLK.S.F08 && DRLK.S.C1a.Rsp verification: | - ./chip-tool doorlock set-user 0 2 xxx 6452 3 0 0 1 1 --timedInteractionTimeoutMs 1000 + ./chip-tool doorlock set-user 0 2 xxx 6452 1 0 0 1 1 --timedInteractionTimeoutMs 1000 Via the TH (chip-tool), verify the SUCCESS response for setting the users details. @@ -459,15 +459,6 @@ tests: [1658994912.123915][4290:4295] CHIP:DMG: status = 0x00 (SUCCESS), [1658994912.123959][4290:4295] CHIP:DMG: }, [1658994912.124003][4290:4295] CHIP:DMG: - [1658994912.124039][4290:4295] CHIP:DMG: }, - [1658994912.124079][4290:4295] CHIP:DMG: - [1658994912.124110][4290:4295] CHIP:DMG: }, - [1658994912.124147][4290:4295] CHIP:DMG: - [1658994912.124176][4290:4295] CHIP:DMG: ], - [1658994912.124212][4290:4295] CHIP:DMG: - [1658994912.124241][4290:4295] CHIP:DMG: InteractionModelRevision = 1 - [1658994912.124270][4290:4295] CHIP:DMG: }, - [1658994912.124341][4290:4295] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0101 Command=0x0000_001A Status=0x0 disabled: true - label: "Step 5b: TH reads the LockUserChange event from DUT" @@ -631,7 +622,7 @@ tests: [1658995364.178185][4383:4388] CHIP:DMG: }, - ./chip-tool doorlock set-user 0 1 xxx 6452 3 0 0 1 1 --timedInteractionTimeoutMs 1000 + ./chip-tool doorlock set-user 0 1 xxx 6452 1 0 0 1 1 --timedInteractionTimeoutMs 1000 Via the TH (chip-tool), verify the SUCCESS response for setting the users details. diff --git a/src/app/tests/suites/certification/Test_TC_FAN_1_1.yaml b/src/app/tests/suites/certification/Test_TC_FAN_1_1.yaml index 8f9488832969b1..bcda3fadbe0248 100644 --- a/src/app/tests/suites/certification/Test_TC_FAN_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_FAN_1_1.yaml @@ -116,7 +116,7 @@ tests: type: bitmap32 hasMasksSet: [0x20] - - label: "Step 4: Read the global attribute: AttributeList" + - label: "Step 4a: Read the global attribute: AttributeList" PICS: PICS_EVENT_LIST_ENABLED command: "readAttribute" attribute: "AttributeList" @@ -125,7 +125,7 @@ tests: type: list contains: [0, 1, 2, 3, 65528, 65529, 65530, 65531, 65532, 65533] - - label: "Step 4: Read the global attribute: AttributeList" + - label: "Step 4a: Read the global attribute: AttributeList" PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" @@ -135,7 +135,7 @@ tests: contains: [0, 1, 2, 3, 65528, 65529, 65531, 65532, 65533] - label: - "Step 4: Read the feature dependent FAN.S.F00 (SPD) attribute in + "Step 4c: Read the feature dependent FAN.S.F00 (SPD) attribute in AttributeList" PICS: FAN.S.F00 command: "readAttribute" @@ -146,7 +146,7 @@ tests: contains: [4, 5, 6] - label: - "Step 4: Read the feature dependent FAN.S.F02(RCK) attribute in + "Step 4d: Read the feature dependent FAN.S.F02(RCK) attribute in AttributeList" PICS: FAN.S.F02 command: "readAttribute" @@ -157,7 +157,7 @@ tests: contains: [7, 8] - label: - "Step 4: Read the feature dependent FAN.S.F03(WND) attribute in + "Step 4e: Read the feature dependent FAN.S.F03(WND) attribute in AttributeList" PICS: FAN.S.F03 command: "readAttribute" @@ -168,7 +168,7 @@ tests: contains: [9, 10] - label: - "Step 4: Read the feature dependent FAN.S.F05(DIR) attribute in + "Step 4f: Read the feature dependent FAN.S.F05(DIR) attribute in AttributeList" PICS: FAN.S.F05 command: "readAttribute" @@ -178,6 +178,15 @@ tests: type: list contains: [11] + - label: "Step 5: TH reads EventList attribute from DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list + - label: "Step 6: Read the global attribute: AcceptedCommandList" PICS: " !FAN.S.C00.Rsp " command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_IDM_4_2.yaml b/src/app/tests/suites/certification/Test_TC_IDM_4_2.yaml index e551005ca6ff93..7cd6d0ef014078 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_4_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_4_2.yaml @@ -493,8 +493,18 @@ tests: clusters on all endpoints on a Node for which it does not have access. AttributePath = [[ ]]." verification: | - Chip-Tool support required to validate this step : SDK Issue - https://github.com/project-chip/connectedhomeip/issues/28360 - Not Testable + sending a command along with unregistered commissioner node id (5) + + any subscribe-by-id 0xFFFFFFFF 0xFFFFFFFF 10 100 1 0XFFFF --commissioner-nodeid 5 + On CR2, Verify that the DUT returns a "INVALID_ACTION" status response. + + [1695815340.162063][2522:2524] CHIP:EM: Rxd Ack; Removing MessageCounter:187875065 from Retrans Table on exchange 10455i + [1695815340.162181][2522:2524] CHIP:DMG: StatusResponseMessage = + [1695815340.162244][2522:2524] CHIP:DMG: { + [1695815340.162298][2522:2524] CHIP:DMG: Status = 0x80 (INVALID_ACTION), + [1695815340.162357][2522:2524] CHIP:DMG: InteractionModelRevision = 11 + [1695815340.162412][2522:2524] CHIP:DMG: } + [1695815340.162501][2522:2524] CHIP:IM: Received status response, status is 0x80 (INVALID_ACTION) disabled: true - label: diff --git a/src/app/tests/suites/certification/Test_TC_IDM_6_2.yaml b/src/app/tests/suites/certification/Test_TC_IDM_6_2.yaml index f8c43fa159f8fb..40fd141fdc9a6b 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_6_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_6_2.yaml @@ -838,14 +838,24 @@ tests: disabled: true - label: - "Step 12: TH sends Subscribe Request Message to DUT with EventRequests - set to path which indicates a cluster event that is not supported." + "Step 12: TH sends Subscribe Request Message to DUT. DUT sends Report + Data message to DUT + TH sends Status Response Message with an error + Status." verification: | Mark this as not testable /NA. Out of Scope + SDK Issue : https://github.com/project-chip/connectedhomeip/issues/23990 disabled: true - label: "Step 13: TH sends Subscribe Request Message to DUT with EventRequests + set to path which indicates a cluster event that is not supported." + verification: | + Mark this as not testable /NA. Out of Scope + SDK Issue : https://github.com/project-chip/connectedhomeip/issues/23990 + disabled: true + + - label: + "Step 14: TH sends Subscribe Request Message to DUT with EventRequests set to path which requires a privilege that is not granted for the cluster in the path." verification: | @@ -899,7 +909,7 @@ tests: disabled: true - label: - "Step 14: TH sends Subscribe Request Message to DUT with EventRequests + "Step 16: TH sends Subscribe Request Message to DUT with EventRequests set to Wildcard path where reading an event in the path requires a privilege that is not granted for the cluster in the path." verification: | diff --git a/src/app/tests/suites/certification/Test_TC_MOD_1_1.yaml b/src/app/tests/suites/certification/Test_TC_MOD_1_1.yaml index bb24a3fb9600c2..c49d1158d8e60a 100644 --- a/src/app/tests/suites/certification/Test_TC_MOD_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_MOD_1_1.yaml @@ -31,23 +31,13 @@ tests: - name: "nodeId" value: nodeId - #Issue: https://github.com/project-chip/connectedhomeip/issues/26445 - - label: "Step 2: TH reads the ClusterRevision attribute from the DUT" - verification: | - ./chip-tool modeselect read cluster-revision 1 1 - - Verify the "ClusterRevision" value is of unit16 and reflects the highest revision number 2 on the TH(Chip-tool) and below is the sample log provided for the raspi platform: - - [1645775623.658997][3277:3282] CHIP:TOO: ClusterRevision: 1 - cluster: "LogCommands" - command: "UserPrompt" - PICS: PICS_USER_PROMPT - arguments: - values: - - name: "message" - value: "Please enter 'y' for success" - - name: "expectedValue" - value: "y" + - label: "Step 2: Read the global attribute: ClusterRevision" + command: "readAttribute" + attribute: "ClusterRevision" + response: + value: 2 + constraints: + type: int16u - label: "Step 3: TH reads the FeatureMap attribute from the DUT" PICS: MOD.S.F00 diff --git a/src/app/tests/suites/certification/Test_TC_OPSTATE_2_2.yaml b/src/app/tests/suites/certification/Test_TC_OPSTATE_2_2.yaml index cf01ff44d05efe..17471bfc43d7e6 100644 --- a/src/app/tests/suites/certification/Test_TC_OPSTATE_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_OPSTATE_2_2.yaml @@ -304,12 +304,15 @@ tests: - label: "Step 16: Manually put the DUT into a state wherein it cannot receive a Start Command" + PICS: OPSTATE.S.M.ERR_UNABLE_TO_START_OR_RESUME verification: | Manually put the DUT into a state wherein it cannot receive a Start Command disabled: true - label: "Step 17: TH sends Start command to the DUT" - PICS: OPSTATE.S.C02.Rsp && OPSTATE.S.C04.Tx + PICS: + OPSTATE.S.M.ERR_UNABLE_TO_START_OR_RESUME && OPSTATE.S.C02.Rsp && + OPSTATE.S.C04.Tx verification: | ./chip-tool operationalstate start 1 1 diff --git a/src/app/tests/suites/certification/Test_TC_S_1_1.yaml b/src/app/tests/suites/certification/Test_TC_S_1_1.yaml index 0fdc16b325b0d7..ed3fe73f726710 100644 --- a/src/app/tests/suites/certification/Test_TC_S_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_S_1_1.yaml @@ -48,10 +48,7 @@ tests: response: constraints: type: bitmap32 - hasMasksSet: [0x1] - # This needs to be changed in the Name Support PR: https://github.com/project-chip/connectedhomeip/pull/29639 - # Issue in Test plan repo: https://github.com/CHIP-Specifications/chip-test-plans/issues/3515 - #hasMasksClear: [0x1] + hasMasksClear: [0x1] - label: "Step 3a: Read FeatureMap (global attribute 65532)" PICS: S.S.F00 @@ -62,6 +59,22 @@ tests: type: bitmap32 hasMasksSet: [0x1] + - label: "Step 3b: Read FeatureMap (global attribute 65532)" + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x2] + + - label: "Step 3c: Read FeatureMap (global attribute 65532)" + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x4] + - label: "Step 4: Read Mandatory attributes in AttributeList (global attribute 65531)" diff --git a/src/app/tests/suites/certification/Test_TC_S_2_2.yaml b/src/app/tests/suites/certification/Test_TC_S_2_2.yaml index f084d75cdc5370..16780a7e9c0353 100644 --- a/src/app/tests/suites/certification/Test_TC_S_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_S_2_2.yaml @@ -47,6 +47,36 @@ tests: - name: "SceneTableSize" saveAs: maxScenes + - label: "Arithmetic operation to get the maxScenes - 1" + cluster: "Unit Testing" + command: "TestAddArguments" + arguments: + values: + - name: "arg1" + value: maxScenes - 1 + - name: "arg2" + value: 0 + response: + values: + - name: "returnValue" + saveAs: maxScenesMinusOne + value: maxScenes - 1 + + - label: "Arithmetic operation to get the fabric Capacity" + cluster: "Unit Testing" + command: "TestAddArguments" + arguments: + values: + - name: "arg1" + value: maxScenesMinusOne / 2 + - name: "arg2" + value: 0 + response: + values: + - name: "returnValue" + saveAs: fabricCapacity + value: maxScenesMinusOne / 2 + - label: "Step 0a: preparation step for using commands from Groups cluster: Add KeySet" @@ -137,7 +167,7 @@ tests: - name: "Status" value: 0x00 - name: "Capacity" - value: ( maxScenes / 2 ) + value: fabricCapacity - name: "GroupID" value: G1 @@ -526,7 +556,7 @@ tests: - name: "Status" value: 0x00 - name: "Capacity" - value: ( maxScenes / 2 ) - 1 + value: fabricCapacity - 1 - name: "GroupID" value: G1 - name: "SceneList" @@ -563,7 +593,7 @@ tests: value: 0x00 - name: "Capacity" constraints: - anyOf: [( maxScenes / 2 ), 0xfe, 0x89] + anyOf: [fabricCapacity, 0xfe, 0x89] - name: "GroupID" value: G1 @@ -683,7 +713,7 @@ tests: value: 0x00 - name: "Capacity" constraints: - anyOf: [( maxScenes / 2 ) - 1, 0xfe, 0x89] + anyOf: [fabricCapacity - 1, 0xfe, 0x89] - name: "GroupID" value: G1 - name: "SceneList" @@ -724,7 +754,7 @@ tests: value: 0x00 - name: "Capacity" constraints: - anyOf: [( maxScenes / 2 ), 0xfe, 0x89] + anyOf: [fabricCapacity, 0xfe, 0x89] - name: "GroupID" value: G1 @@ -917,7 +947,7 @@ tests: - name: "Status" value: 0x00 - name: "Capacity" - value: ( maxScenes / 2 ) - 2 + value: fabricCapacity - 2 - name: "GroupID" value: G1 - name: "SceneList" @@ -975,7 +1005,7 @@ tests: - name: "Status" value: 0x00 - name: "Capacity" - value: ( maxScenes / 2 ) - 2 + value: fabricCapacity - 2 - name: "GroupID" value: G2 @@ -1070,7 +1100,7 @@ tests: - name: "Status" value: 0x00 - name: "Capacity" - value: ( maxScenes / 2 ) - 3 + value: fabricCapacity - 3 - name: "GroupID" value: G2 - name: "SceneList" diff --git a/src/app/tests/suites/certification/Test_TC_S_2_3.yaml b/src/app/tests/suites/certification/Test_TC_S_2_3.yaml index 5e0b5d21fa41ad..eb1637fdf563cf 100644 --- a/src/app/tests/suites/certification/Test_TC_S_2_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_S_2_3.yaml @@ -44,6 +44,36 @@ tests: - name: "SceneTableSize" saveAs: maxScenes + - label: "Arithmetic operation to get the maxScenes - 1" + cluster: "Unit Testing" + command: "TestAddArguments" + arguments: + values: + - name: "arg1" + value: maxScenes - 1 + - name: "arg2" + value: 0 + response: + values: + - name: "returnValue" + saveAs: maxScenesMinusOne + value: maxScenes - 1 + + - label: "Arithmetic operation to get the fabric Capacity" + cluster: "Unit Testing" + command: "TestAddArguments" + arguments: + values: + - name: "arg1" + value: maxScenesMinusOne / 2 + - name: "arg2" + value: 0 + response: + values: + - name: "returnValue" + saveAs: fabricCapacity + value: maxScenesMinusOne / 2 + - label: "Step 0a: preparation step for using commands from Groups cluster: Add KeySet" @@ -149,7 +179,7 @@ tests: - name: "Status" value: 0x00 - name: "Capacity" - value: maxScenes / 2 + value: fabricCapacity - name: "GroupID" value: G1 - name: "SceneList" @@ -505,7 +535,7 @@ tests: - name: "Status" value: 0x00 - name: "Capacity" - value: ( maxScenes / 2 ) - 1 + value: fabricCapacity - 1 - name: "GroupID" value: G1 - name: "SceneList" @@ -632,7 +662,7 @@ tests: - name: "Status" value: 0x00 - name: "Capacity" - value: ( maxScenes / 2 ) - 2 + value: fabricCapacity - 2 - name: "GroupID" value: G1 - name: "SceneList" diff --git a/src/app/tests/suites/certification/Test_TC_TCTL_3_2.yaml b/src/app/tests/suites/certification/Test_TC_TCTL_3_2.yaml index 79b3ca1c190665..545dcae0f5a5d0 100644 --- a/src/app/tests/suites/certification/Test_TC_TCTL_3_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_TCTL_3_2.yaml @@ -120,6 +120,8 @@ tests: TemperatureSetpoint attribute." PICS: TCTL.S.A0000 verification: | + After a few seconds, please send the below mentioned command to read TemperatureSetpoint attribute from TH to DUT + ./chip-tool temperaturecontrol read temperature-setpoint 1 1 On TH(chip-tool), Verify that the DUT response contains a temperatureValue and the value is the same setTemp value written in step 5 [1689770673.417838][9280:9282] CHIP:DMG: SuppressResponse = true, @@ -175,6 +177,8 @@ tests: TemperatureSetpoint attribute." PICS: TCTL.S.A0000 verification: | + After a few seconds, please send the below mentioned command to read TemperatureSetpoint attribute from TH to DUT + ./chip-tool temperaturecontrol read temperature-setpoint 1 1 On TH(chip-tool), Verify that the DUT response contains a temperatureValue and the value is the same setTemp value written in step 5 [1689770673.417838][9280:9282] CHIP:DMG: SuppressResponse = true, @@ -240,6 +244,8 @@ tests: TemperatureSetpoint attribute." PICS: TCTL.S.M.SupportsInvalidInMode && TCTL.S.A0000 verification: | + After a few seconds, please send the below mentioned command to read TemperatureSetpoint attribute from TH to DUT + ./chip-tool temperaturecontrol read temperature-setpoint 1 1 On TH(chip-tool), Verify that the DUT response contains a temperatureValue and the value is the same setTemp value written in step 5 [1689770673.417838][9280:9282] CHIP:DMG: SuppressResponse = true, diff --git a/src/app/tests/suites/certification/Test_TC_TCTL_3_3.yaml b/src/app/tests/suites/certification/Test_TC_TCTL_3_3.yaml index 5ecfe9666a2471..965a96aa6d4dae 100644 --- a/src/app/tests/suites/certification/Test_TC_TCTL_3_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_TCTL_3_3.yaml @@ -87,6 +87,8 @@ tests: SelectedTemperatureLevel attribute" PICS: TCTL.S.A0004 verification: | + After a few seconds, please send the below mentioned command to read SelectedTemperatureLevel attribute from TH to DUT + ./chip-tool temperaturecontrol read selected-temperature-level 1 1 On TH(chip-tool), Verify that the DUT response contains a temperatureValue and the value is the same setLevel value written in step 4 [1692265713.881978][13985:13987] CHIP:DMG: } @@ -128,6 +130,8 @@ tests: SelectedTemperatureLevel attribute" PICS: TCTL.S.M.SupportsInvalidInMode && TCTL.S.A0004 verification: | + After a few seconds, please send the below mentioned command to read SelectedTemperatureLevel attribute from TH to DUT + ./chip-tool temperaturecontrol read selected-temperature-level 1 1 On TH(chip-tool), Verify that the DUT response contains a temperatureValue and the value is the same setLevel value written in step 4 [1692265822.762570][14005:14007] CHIP:DMG: SuppressResponse = true, diff --git a/src/app/tests/suites/certification/Test_TC_WNCV_5_1_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_WNCV_5_1_Simulated.yaml index c60e92dd413e57..6535b40291af1f 100644 --- a/src/app/tests/suites/certification/Test_TC_WNCV_5_1_Simulated.yaml +++ b/src/app/tests/suites/certification/Test_TC_WNCV_5_1_Simulated.yaml @@ -28,29 +28,28 @@ tests: # command: "WaitForCommissioning" ##Check Attribute defining the cluster Features - - label: "DUT reads the FeatureMap attribute from TH" - PICS: WNCV.C.Afffc + - label: "Step 1a: DUT reads the FeatureMap attribute from TH" wait: "readAttribute" attribute: "FeatureMap" ##Check Attributes defining the product - - label: "DUT reads the Type attribute from TH" + - label: "Step 2a: DUT reads the Type attribute from TH" PICS: WNCV.C.A0000 wait: "readAttribute" attribute: "Type" - - label: "DUT reads the EndProductType attribute from TH" + - label: "Step 2b: DUT reads the EndProductType attribute from TH" PICS: WNCV.C.A000d wait: "readAttribute" attribute: "EndProductType" ##Check Attributes defining the working status - - label: "DUT reads the Mode attribute from TH" + - label: "Step 3a: DUT reads the Mode attribute from TH" PICS: WNCV.C.A0017 wait: "readAttribute" attribute: "Mode" - - label: "DUT reads the ConfigStatus attribute from TH" + - label: "Step 3b: DUT reads the ConfigStatus attribute from TH" PICS: WNCV.C.A0007 wait: "readAttribute" attribute: "ConfigStatus" diff --git a/src/app/tests/suites/certification/Test_TC_WNCV_6_1_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_WNCV_6_1_Simulated.yaml index c008fa5ade2f07..5ee0c33a9f97c1 100644 --- a/src/app/tests/suites/certification/Test_TC_WNCV_6_1_Simulated.yaml +++ b/src/app/tests/suites/certification/Test_TC_WNCV_6_1_Simulated.yaml @@ -27,14 +27,14 @@ tests: # cluster: "DelayCommands" # command: "WaitForCommissioning" - - label: "DUT sends UpOrOpen command to TH" + - label: "Step 1a: DUT sends UpOrOpen command to TH" wait: "UpOrOpen" PICS: WNCV.C.C00.Tx - - label: "DUT sends DownOrClose command to TH" + - label: "Step 2a: DUT sends DownOrClose command to TH" wait: "DownOrClose" PICS: WNCV.C.C01.Tx - - label: "DUT sends StopMotion command to TH" + - label: "Step 3a: DUT sends StopMotion command to TH" wait: "StopMotion" PICS: WNCV.C.C02.Tx diff --git a/src/app/tests/suites/certification/Test_TC_WNCV_7_1_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_WNCV_7_1_Simulated.yaml index 2c2bf77473dc90..6f2b6140cabacf 100644 --- a/src/app/tests/suites/certification/Test_TC_WNCV_7_1_Simulated.yaml +++ b/src/app/tests/suites/certification/Test_TC_WNCV_7_1_Simulated.yaml @@ -30,11 +30,13 @@ tests: # command: "WaitForCommissioning" - label: - "If (PA_LF & LF) DUT sends GoToLiftPercentage command with 50% to DUT" + "Step 1a: If (PA_LF & LF) DUT sends GoToLiftPercentage command with + 50% to DUT" wait: "GoToLiftPercentage" PICS: WNCV.C.C05.Tx - label: - "If (PA_TL & TL) DUT sends GoToTiltPercentage command with 50% to DUT" + "Step 2a: If (PA_TL & TL) DUT sends GoToTiltPercentage command with + 50% to DUT" wait: "GoToTiltPercentage" PICS: WNCV.C.C08.Tx diff --git a/src/app/tests/suites/certification/ci-pics-values b/src/app/tests/suites/certification/ci-pics-values index 4869039cf87fef..0cc6c167c3cdb6 100644 --- a/src/app/tests/suites/certification/ci-pics-values +++ b/src/app/tests/suites/certification/ci-pics-values @@ -111,11 +111,6 @@ WNCV.C.A0011=0 WNCV.C.A0012=0 WNCV.C.A0013=0 WNCV.C.A001a=0 -WNCV.C.Afff8=0 -WNCV.C.Afff9=0 -WNCV.C.Afffa=0 -WNCV.C.Afffb=0 -WNCV.C.Afffd=0 WNCV.C.C04.Tx=0 WNCV.C.C07.Tx=0 WNCV.S.A0011.Scene=0 @@ -123,7 +118,6 @@ WNCV.S.A0012.Scene=0 WNCV.S.C04.Rsp=0 WNCV.S.C07.Rsp=0 -WNCV.C.Afffc=1 WNCV.C.A0000=1 WNCV.C.A000d=1 WNCV.C.A0017=1 @@ -453,7 +447,7 @@ AUDIOOUTPUT.S.C01.Rsp=1 AUDIOOUTPUT.C=1 AUDIOOUTPUT.C.C00.Tx=1 AUDIOOUTPUT.C.C01.Tx=1 -AUDIOOUTPUT.S.F00=0 +AUDIOOUTPUT.S.F00=1 TGTNAV.S=1 TGTNAV.S.A0000=1 @@ -679,7 +673,7 @@ S.S.AM=0 S.S.AO=0 S.S.F00=1 S.S.F01=1 -S.S.F02=0 +S.S.F02=1 S.S.F03=0 PICS_SC_RECALL_SCENE_TRANSITION_TIME=1 diff --git a/src/app/util/mock/include/zap-generated/gen_config.h b/src/app/util/mock/include/zap-generated/gen_config.h index 08d2d851b6b93d..60d57388626fa6 100644 --- a/src/app/util/mock/include/zap-generated/gen_config.h +++ b/src/app/util/mock/include/zap-generated/gen_config.h @@ -18,3 +18,4 @@ #pragma once #define EMBER_BINDING_TABLE_SIZE 20 +#define MATTER_SCENES_TABLE_SIZE 24 diff --git a/src/app/zap-templates/partials/idl/cluster_definition.zapt b/src/app/zap-templates/partials/idl/cluster_definition.zapt index 22550157b665f2..ea8923f66c578b 100644 --- a/src/app/zap-templates/partials/idl/cluster_definition.zapt +++ b/src/app/zap-templates/partials/idl/cluster_definition.zapt @@ -1,4 +1,5 @@ /** {{description}} */ +{{#if apiMaturity}}{{apiMaturity}} {{/if~}} {{#if generateClientCluster}}client {{else}}server {{/if~}} cluster {{asUpperCamelCase name}} = {{!}} {{~#if manufacturerCode}} @@ -7,7 +8,7 @@ cluster {{asUpperCamelCase name}} = {{!}} {{~code~}} {{/if}} { {{#zcl_enums}} - enum {{asUpperCamelCase name preserveAcronyms=true}} : ENUM{{multiply size 8}} { + enum {{asUpperCamelCase name preserveAcronyms=true}} : enum{{multiply size 8}} { {{#zcl_enum_items}} k{{asUpperCamelCase label preserveAcronyms=true}} = {{value}}; {{/zcl_enum_items}} @@ -15,7 +16,7 @@ cluster {{asUpperCamelCase name}} = {{!}} {{/zcl_enums}} {{#zcl_bitmaps}} - bitmap {{asUpperCamelCase name preserveAcronyms=true}} : BITMAP{{multiply size 8}} { + bitmap {{asUpperCamelCase name preserveAcronyms=true}} : bitmap{{multiply size 8}} { {{#zcl_bitmap_items}} k{{asUpperCamelCase label preserveAcronyms=true}} = {{asHex mask}}; {{/zcl_bitmap_items}} diff --git a/src/app/zap-templates/templates/app/gen_config.zapt b/src/app/zap-templates/templates/app/gen_config.zapt index 01048170425067..4accc4a61be151 100644 --- a/src/app/zap-templates/templates/app/gen_config.zapt +++ b/src/app/zap-templates/templates/app/gen_config.zapt @@ -5,57 +5,58 @@ /**** Cluster endpoint counts ****/ {{#all_user_clusters}} -#define EMBER_AF_{{asDelimitedMacro define}}_{{asDelimitedMacro side}}_ENDPOINT_COUNT ({{user_endpoint_count_by_cluster id side}}) +#define EMBER_AF_{{as_delimited_macro define}}_{{as_delimited_macro side}}_ENDPOINT_COUNT ({{user_endpoint_count_by_cluster id side}}) {{/all_user_clusters}} /**** Cluster Plugins ****/ {{#all_user_clusters}} // Use this macro to check if the {{side}} side of the {{name}} cluster is included -#define ZCL_USING_{{asDelimitedMacro define}}_{{asDelimitedMacro side}} -#define EMBER_AF_PLUGIN_{{asDelimitedMacro name}}_{{asDelimitedMacro side}} -{{#if (isServer side)}} -#define EMBER_AF_PLUGIN_{{asDelimitedMacro name}} +#define ZCL_USING_{{as_delimited_macro define}}_{{as_delimited_macro side}} +#define EMBER_AF_PLUGIN_{{as_delimited_macro name}}_{{as_delimited_macro side}} +{{#if (is_server side)}} +#define EMBER_AF_PLUGIN_{{as_delimited_macro name}} {{/if}} -{{#if (isStrEqual name "Color Control")}} -{{#if (isServer side)}} +{{#if (is_str_equal name "Color Control")}} +{{#if (is_server side)}} // User options for {{side}} plugin {{name}} #define EMBER_AF_PLUGIN_COLOR_CONTROL_SERVER_XY #define EMBER_AF_PLUGIN_COLOR_CONTROL_SERVER_TEMP #define EMBER_AF_PLUGIN_COLOR_CONTROL_SERVER_HSV {{/if}} -{{else if (isStrEqual name "IAS Zone")}} +{{else if (is_str_equal name "IAS Zone")}} // User options for {{side}} plugin {{name}} -{{#if (isServer side)}} +{{#if (is_server side)}} #define EMBER_AF_PLUGIN_IAS_ZONE_SERVER_ZONE_TYPE 541 {{else}} #define EMBER_AF_PLUGIN_IAS_ZONE_CLIENT_MAX_DEVICES 10 {{/if}} -{{else if (isStrEqual name "Level Control")}} -{{#if (isServer side)}} +{{else if (is_str_equal name "Level Control")}} +{{#if (is_server side)}} // User options for {{side}} plugin {{name}} #define EMBER_AF_PLUGIN_LEVEL_CONTROL_MAXIMUM_LEVEL 254 #define EMBER_AF_PLUGIN_LEVEL_CONTROL_MINIMUM_LEVEL 0 #define EMBER_AF_PLUGIN_LEVEL_CONTROL_RATE 0 {{/if}} -{{else if (isStrEqual name "Scenes")}} -{{#if (isServer side)}} +{{else if (is_str_equal name "Scenes")}} +{{#if (is_server side)}} // User options for {{side}} plugin {{name}} -// Cluster spec 1.4.8.2 -#ifdef CHIP_CONFIG_MAX_SCENES_PER_FABRIC -#define MATTER_SCENES_TABLE_SIZE CHIP_CONFIG_MAX_SCENES_PER_FABRIC -#else -#define MATTER_SCENES_TABLE_SIZE 16 -#endif {{/if}} {{#all_user_cluster_generated_attributes}} -{{#if (isStrEqual ../name clusterName)}} -{{#if (isStrEqual name "FeatureMap")}} - +{{#if (is_str_equal ../name clusterName)}} +{{#if (is_str_equal name "FeatureMap")}} // Scenes FeatureMap Attribute Toggle Scenes Name feature // App cluster specs 1.4.4 #define MATTER_CLUSTER_SCENE_NAME_SUPPORT_MASK 0x0001 #define MATTER_CLUSTER_SCENE_NAME_SUPPORT ({{asHex defaultValue 4}} & MATTER_CLUSTER_SCENE_NAME_SUPPORT_MASK) +// Scenes FeatureMap Table Size feature used for the MATTER_SCENES_TABLE_SIZE define +// App cluster specs 1.4.4.2 +#define MATTER_CLUSTER_TABLE_SIZE_SUPPORT_MASK 0x0001 +#define MATTER_CLUSTER_TABLE_SIZE_SUPPORT ({{asHex defaultValue 4}} & MATTER_CLUSTER_TABLE_SIZE_SUPPORT_MASK) +{{/if}} +{{#if (is_str_equal name "SceneTableSize")}} +// Cluster spec 1.4.8.7 +#define MATTER_SCENES_TABLE_SIZE {{defaultValue}} {{/if}} {{/if}} {{/all_user_cluster_generated_attributes}} diff --git a/src/app/zap-templates/zcl/data-model/chip/ballast-configuration-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/ballast-configuration-cluster.xml index 1b3a2d5ffb89be..7819e95cb7b3c6 100644 --- a/src/app/zap-templates/zcl/data-model/chip/ballast-configuration-cluster.xml +++ b/src/app/zap-templates/zcl/data-model/chip/ballast-configuration-cluster.xml @@ -28,7 +28,7 @@ limitations under the License. - + Ballast Configuration Lighting Attributes and commands for configuring a lighting ballast. diff --git a/src/app/zap-templates/zcl/data-model/chip/fan-control-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/fan-control-cluster.xml index 9eb833bc5cf12c..3c30d960f18fe7 100644 --- a/src/app/zap-templates/zcl/data-model/chip/fan-control-cluster.xml +++ b/src/app/zap-templates/zcl/data-model/chip/fan-control-cluster.xml @@ -73,7 +73,7 @@ limitations under the License. - + Fan Control HVAC An interface for controlling a fan in a heating/cooling system. diff --git a/src/app/zap-templates/zcl/data-model/chip/fault-injection-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/fault-injection-cluster.xml index 76bc15ea6a904c..3d95c992c98ae0 100644 --- a/src/app/zap-templates/zcl/data-model/chip/fault-injection-cluster.xml +++ b/src/app/zap-templates/zcl/data-model/chip/fault-injection-cluster.xml @@ -24,7 +24,7 @@ limitations under the License. - + CHIP Fault Injection 0xFFF1FC06 diff --git a/src/app/zap-templates/zcl/data-model/chip/icd-management-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/icd-management-cluster.xml index 7c31572e7aba34..c62d0e56b89395 100644 --- a/src/app/zap-templates/zcl/data-model/chip/icd-management-cluster.xml +++ b/src/app/zap-templates/zcl/data-model/chip/icd-management-cluster.xml @@ -21,6 +21,8 @@ limitations under the License. + + diff --git a/src/app/zap-templates/zcl/data-model/chip/pwm-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/pwm-cluster.xml index b71c0f1090b707..ba31ad6d185b85 100644 --- a/src/app/zap-templates/zcl/data-model/chip/pwm-cluster.xml +++ b/src/app/zap-templates/zcl/data-model/chip/pwm-cluster.xml @@ -17,11 +17,11 @@ limitations under the License. - + General Pulse Width Modulation 0x001c PWM_CLUSTER Cluster to control pulse width modulation - \ No newline at end of file + diff --git a/src/app/zap-templates/zcl/data-model/chip/scene.xml b/src/app/zap-templates/zcl/data-model/chip/scene.xml index 8418f9c4a97eee..911d1821d2c433 100644 --- a/src/app/zap-templates/zcl/data-model/chip/scene.xml +++ b/src/app/zap-templates/zcl/data-model/chip/scene.xml @@ -33,7 +33,7 @@ limitations under the License. - + Scenes General Attributes and commands for scene configuration and manipulation. @@ -49,7 +49,7 @@ limitations under the License. SceneValid NameSupport LastConfiguredBy - SceneTableSize + SceneTableSize RemainingCapacity diff --git a/src/app/zap-templates/zcl/data-model/chip/test-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/test-cluster.xml index 2f7e1376013ebd..9117389fa3f9c6 100644 --- a/src/app/zap-templates/zcl/data-model/chip/test-cluster.xml +++ b/src/app/zap-templates/zcl/data-model/chip/test-cluster.xml @@ -136,7 +136,7 @@ limitations under the License. - + CHIP Unit Testing 0xFFF1FC05 diff --git a/src/controller/data_model/controller-clusters.matter b/src/controller/data_model/controller-clusters.matter index cf5a9d605c772a..3527172e57b436 100644 --- a/src/controller/data_model/controller-clusters.matter +++ b/src/controller/data_model/controller-clusters.matter @@ -3,7 +3,7 @@ /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ client cluster Identify = 3 { - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kBlink = 0; kBreathe = 1; kOkay = 2; @@ -12,11 +12,11 @@ client cluster Identify = 3 { kStopEffect = 255; } - enum EffectVariantEnum : ENUM8 { + enum EffectVariantEnum : enum8 { kDefault = 0; } - enum IdentifyTypeEnum : ENUM8 { + enum IdentifyTypeEnum : enum8 { kNone = 0; kLightOutput = 1; kVisibleIndicator = 2; @@ -51,11 +51,11 @@ client cluster Identify = 3 { /** Attributes and commands for group configuration and manipulation. */ client cluster Groups = 4 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kGroupNames = 0x1; } - bitmap NameSupportBitmap : BITMAP8 { + bitmap NameSupportBitmap : bitmap8 { kGroupNames = 0x80; } @@ -125,15 +125,15 @@ client cluster Groups = 4 { } /** Attributes and commands for scene configuration and manipulation. */ -client cluster Scenes = 5 { - bitmap Feature : BITMAP32 { +provisional client cluster Scenes = 5 { + bitmap Feature : bitmap32 { kSceneNames = 0x1; kExplicit = 0x2; kTableSize = 0x4; kFabricScenes = 0x8; } - bitmap ScenesCopyMode : BITMAP8 { + bitmap ScenesCopyMode : bitmap8 { kCopyAllScenes = 0x1; } @@ -304,33 +304,33 @@ client cluster Scenes = 5 { /** Attributes and commands for switching devices between 'On' and 'Off' states. */ client cluster OnOff = 6 { - enum DelayedAllOffEffectVariantEnum : ENUM8 { + enum DelayedAllOffEffectVariantEnum : enum8 { kDelayedOffFastFade = 0; kNoFade = 1; kDelayedOffSlowFade = 2; } - enum DyingLightEffectVariantEnum : ENUM8 { + enum DyingLightEffectVariantEnum : enum8 { kDyingLightFadeOff = 0; } - enum EffectIdentifierEnum : ENUM8 { + enum EffectIdentifierEnum : enum8 { kDelayedAllOff = 0; kDyingLight = 1; } - enum StartUpOnOffEnum : ENUM8 { + enum StartUpOnOffEnum : enum8 { kOff = 0; kOn = 1; kToggle = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kLighting = 0x1; kDeadFrontBehavior = 0x2; } - bitmap OnOffControlBitmap : BITMAP8 { + bitmap OnOffControlBitmap : bitmap8 { kAcceptOnlyWhenOn = 0x1; } @@ -385,23 +385,23 @@ client cluster OnOffSwitchConfiguration = 7 { /** Attributes and commands for controlling devices that can be set to a level between fully 'On' and fully 'Off.' */ client cluster LevelControl = 8 { - enum MoveMode : ENUM8 { + enum MoveMode : enum8 { kUp = 0; kDown = 1; } - enum StepMode : ENUM8 { + enum StepMode : enum8 { kUp = 0; kDown = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kOnOff = 0x1; kLighting = 0x2; kFrequency = 0x4; } - bitmap LevelControlOptions : BITMAP8 { + bitmap LevelControlOptions : bitmap8 { kExecuteIfOff = 0x1; kCoupleColorTempToLevel = 0x2; } @@ -526,7 +526,7 @@ client cluster BinaryInputBasic = 15 { } /** Cluster to control pulse width modulation */ -client cluster PulseWidthModulation = 28 { +provisional client cluster PulseWidthModulation = 28 { readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; @@ -537,7 +537,7 @@ client cluster PulseWidthModulation = 28 { /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ client cluster Descriptor = 29 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTagList = 0x1; } @@ -590,13 +590,13 @@ client cluster Binding = 30 { and enforce Access Control for the Node's endpoints and their associated cluster instances. */ client cluster AccessControl = 31 { - enum AccessControlEntryAuthModeEnum : ENUM8 { + enum AccessControlEntryAuthModeEnum : enum8 { kPASE = 1; kCASE = 2; kGroup = 3; } - enum AccessControlEntryPrivilegeEnum : ENUM8 { + enum AccessControlEntryPrivilegeEnum : enum8 { kView = 1; kProxyView = 2; kOperate = 3; @@ -604,7 +604,7 @@ client cluster AccessControl = 31 { kAdminister = 5; } - enum ChangeTypeEnum : ENUM8 { + enum ChangeTypeEnum : enum8 { kChanged = 0; kAdded = 1; kRemoved = 2; @@ -660,19 +660,19 @@ client cluster AccessControl = 31 { /** This cluster provides a standardized way for a Node (typically a Bridge, but could be any Node) to expose action information. */ client cluster Actions = 37 { - enum ActionErrorEnum : ENUM8 { + enum ActionErrorEnum : enum8 { kUnknown = 0; kInterrupted = 1; } - enum ActionStateEnum : ENUM8 { + enum ActionStateEnum : enum8 { kInactive = 0; kActive = 1; kPaused = 2; kDisabled = 3; } - enum ActionTypeEnum : ENUM8 { + enum ActionTypeEnum : enum8 { kOther = 0; kScene = 1; kSequence = 2; @@ -682,13 +682,13 @@ client cluster Actions = 37 { kAlarm = 6; } - enum EndpointListTypeEnum : ENUM8 { + enum EndpointListTypeEnum : enum8 { kOther = 0; kRoom = 1; kZone = 2; } - bitmap CommandBits : BITMAP16 { + bitmap CommandBits : bitmap16 { kInstantAction = 0x1; kInstantActionWithTransition = 0x2; kStartAction = 0x4; @@ -837,7 +837,7 @@ client cluster Actions = 37 { Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node. Also allows setting user device information such as location. */ client cluster BasicInformation = 40 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -861,7 +861,7 @@ client cluster BasicInformation = 40 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -928,20 +928,20 @@ client cluster BasicInformation = 40 { /** Provides an interface for providing OTA software updates */ client cluster OtaSoftwareUpdateProvider = 41 { - enum ApplyUpdateActionEnum : ENUM8 { + enum ApplyUpdateActionEnum : enum8 { kProceed = 0; kAwaitNextAction = 1; kDiscontinue = 2; } - enum DownloadProtocolEnum : ENUM8 { + enum DownloadProtocolEnum : enum8 { kBDXSynchronous = 0; kBDXAsynchronous = 1; kHTTPS = 2; kVendorSpecific = 3; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kUpdateAvailable = 0; kBusy = 1; kNotAvailable = 2; @@ -1002,13 +1002,13 @@ client cluster OtaSoftwareUpdateProvider = 41 { /** Provides an interface for downloading and applying OTA software updates */ client cluster OtaSoftwareUpdateRequestor = 42 { - enum AnnouncementReasonEnum : ENUM8 { + enum AnnouncementReasonEnum : enum8 { kSimpleAnnouncement = 0; kUpdateAvailable = 1; kUrgentUpdateAvailable = 2; } - enum ChangeReasonEnum : ENUM8 { + enum ChangeReasonEnum : enum8 { kUnknown = 0; kSuccess = 1; kFailure = 2; @@ -1016,7 +1016,7 @@ client cluster OtaSoftwareUpdateRequestor = 42 { kDelayByProvider = 4; } - enum UpdateStateEnum : ENUM8 { + enum UpdateStateEnum : enum8 { kUnknown = 0; kIdle = 1; kQuerying = 2; @@ -1096,7 +1096,7 @@ client cluster LocalizationConfiguration = 43 { or audibly convey time information need a mechanism by which they can be configured to use a user’s preferred format. */ client cluster TimeFormatLocalization = 44 { - enum CalendarTypeEnum : ENUM8 { + enum CalendarTypeEnum : enum8 { kBuddhist = 0; kChinese = 1; kCoptic = 2; @@ -1111,12 +1111,12 @@ client cluster TimeFormatLocalization = 44 { kTaiwanese = 11; } - enum HourFormatEnum : ENUM8 { + enum HourFormatEnum : enum8 { k12hr = 0; k24hr = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCalendarFormat = 0x1; } @@ -1136,13 +1136,13 @@ client cluster TimeFormatLocalization = 44 { user. As such, Nodes that visually or audibly convey measurable values to the user need a mechanism by which they can be configured to use a user’s preferred unit. */ client cluster UnitLocalization = 45 { - enum TempUnitEnum : ENUM8 { + enum TempUnitEnum : enum8 { kFahrenheit = 0; kCelsius = 1; kKelvin = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTemperatureUnit = 0x1; } @@ -1168,7 +1168,7 @@ client cluster PowerSourceConfiguration = 46 { /** This cluster is used to describe the configuration and capabilities of a physical power source that provides power to the Node. */ client cluster PowerSource = 47 { - enum BatApprovedChemistryEnum : ENUM16 { + enum BatApprovedChemistryEnum : enum16 { kUnspecified = 0; kAlkaline = 1; kLithiumCarbonFluoride = 2; @@ -1204,7 +1204,7 @@ client cluster PowerSource = 47 { kZincCerium = 32; } - enum BatChargeFaultEnum : ENUM8 { + enum BatChargeFaultEnum : enum8 { kUnspecified = 0; kAmbientTooHot = 1; kAmbientTooCold = 2; @@ -1218,20 +1218,20 @@ client cluster PowerSource = 47 { kSafetyTimeout = 10; } - enum BatChargeLevelEnum : ENUM8 { + enum BatChargeLevelEnum : enum8 { kOK = 0; kWarning = 1; kCritical = 2; } - enum BatChargeStateEnum : ENUM8 { + enum BatChargeStateEnum : enum8 { kUnknown = 0; kIsCharging = 1; kIsAtFullCharge = 2; kIsNotCharging = 3; } - enum BatCommonDesignationEnum : ENUM16 { + enum BatCommonDesignationEnum : enum16 { kUnspecified = 0; kAAA = 1; kAA = 2; @@ -1315,38 +1315,38 @@ client cluster PowerSource = 47 { k32600 = 80; } - enum BatFaultEnum : ENUM8 { + enum BatFaultEnum : enum8 { kUnspecified = 0; kOverTemp = 1; kUnderTemp = 2; } - enum BatReplaceabilityEnum : ENUM8 { + enum BatReplaceabilityEnum : enum8 { kUnspecified = 0; kNotReplaceable = 1; kUserReplaceable = 2; kFactoryReplaceable = 3; } - enum PowerSourceStatusEnum : ENUM8 { + enum PowerSourceStatusEnum : enum8 { kUnspecified = 0; kActive = 1; kStandby = 2; kUnavailable = 3; } - enum WiredCurrentTypeEnum : ENUM8 { + enum WiredCurrentTypeEnum : enum8 { kAC = 0; kDC = 1; } - enum WiredFaultEnum : ENUM8 { + enum WiredFaultEnum : enum8 { kUnspecified = 0; kOverVoltage = 1; kUnderVoltage = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWired = 0x1; kBattery = 0x2; kRechargeable = 0x4; @@ -1425,7 +1425,7 @@ client cluster PowerSource = 47 { /** This cluster is used to manage global aspects of the Commissioning flow. */ client cluster GeneralCommissioning = 48 { - enum CommissioningErrorEnum : ENUM8 { + enum CommissioningErrorEnum : enum8 { kOK = 0; kValueOutsideRange = 1; kInvalidAuthentication = 2; @@ -1433,7 +1433,7 @@ client cluster GeneralCommissioning = 48 { kBusyWithOtherAdmin = 4; } - enum RegulatoryLocationTypeEnum : ENUM8 { + enum RegulatoryLocationTypeEnum : enum8 { kIndoor = 0; kOutdoor = 1; kIndoorOutdoor = 2; @@ -1492,7 +1492,7 @@ client cluster GeneralCommissioning = 48 { /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ client cluster NetworkCommissioning = 49 { - enum NetworkCommissioningStatusEnum : ENUM8 { + enum NetworkCommissioningStatusEnum : enum8 { kSuccess = 0; kOutOfRange = 1; kBoundsExceeded = 2; @@ -1508,7 +1508,7 @@ client cluster NetworkCommissioning = 49 { kUnknownError = 12; } - enum WiFiBandEnum : ENUM8 { + enum WiFiBandEnum : enum8 { k2G4 = 0; k3G65 = 1; k5G = 2; @@ -1517,13 +1517,13 @@ client cluster NetworkCommissioning = 49 { k1G = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWiFiNetworkInterface = 0x1; kThreadNetworkInterface = 0x2; kEthernetNetworkInterface = 0x4; } - bitmap WiFiSecurityBitmap : BITMAP8 { + bitmap WiFiSecurityBitmap : bitmap8 { kUnencrypted = 0x1; kWEP = 0x2; kWPAPersonal = 0x4; @@ -1638,13 +1638,13 @@ client cluster NetworkCommissioning = 49 { /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ client cluster DiagnosticLogs = 50 { - enum IntentEnum : ENUM8 { + enum IntentEnum : enum8 { kEndUserSupport = 0; kNetworkDiag = 1; kCrashLogs = 2; } - enum StatusEnum : ENUM8 { + enum StatusEnum : enum8 { kSuccess = 0; kExhausted = 1; kNoLogs = 2; @@ -1652,7 +1652,7 @@ client cluster DiagnosticLogs = 50 { kDenied = 4; } - enum TransferProtocolEnum : ENUM8 { + enum TransferProtocolEnum : enum8 { kResponsePayload = 0; kBDX = 1; } @@ -1683,7 +1683,7 @@ client cluster DiagnosticLogs = 50 { /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ client cluster GeneralDiagnostics = 51 { - enum BootReasonEnum : ENUM8 { + enum BootReasonEnum : enum8 { kUnspecified = 0; kPowerOnReboot = 1; kBrownOutReset = 2; @@ -1693,7 +1693,7 @@ client cluster GeneralDiagnostics = 51 { kSoftwareReset = 6; } - enum HardwareFaultEnum : ENUM8 { + enum HardwareFaultEnum : enum8 { kUnspecified = 0; kRadio = 1; kSensor = 2; @@ -1707,7 +1707,7 @@ client cluster GeneralDiagnostics = 51 { kTamperDetected = 10; } - enum InterfaceTypeEnum : ENUM8 { + enum InterfaceTypeEnum : enum8 { kUnspecified = 0; kWiFi = 1; kEthernet = 2; @@ -1715,14 +1715,14 @@ client cluster GeneralDiagnostics = 51 { kThread = 4; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kHardwareFailure = 1; kNetworkJammed = 2; kConnectionFailed = 3; } - enum RadioFaultEnum : ENUM8 { + enum RadioFaultEnum : enum8 { kUnspecified = 0; kWiFiFault = 1; kCellularFault = 2; @@ -1790,7 +1790,7 @@ client cluster GeneralDiagnostics = 51 { /** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ client cluster SoftwareDiagnostics = 52 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kWaterMarks = 0x1; } @@ -1825,19 +1825,19 @@ client cluster SoftwareDiagnostics = 52 { /** The Thread Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems */ client cluster ThreadNetworkDiagnostics = 53 { - enum ConnectionStatusEnum : ENUM8 { + enum ConnectionStatusEnum : enum8 { kConnected = 0; kNotConnected = 1; } - enum NetworkFaultEnum : ENUM8 { + enum NetworkFaultEnum : enum8 { kUnspecified = 0; kLinkDown = 1; kHardwareFailure = 2; kNetworkJammed = 3; } - enum RoutingRoleEnum : ENUM8 { + enum RoutingRoleEnum : enum8 { kUnspecified = 0; kUnassigned = 1; kSleepyEndDevice = 2; @@ -1847,7 +1847,7 @@ client cluster ThreadNetworkDiagnostics = 53 { kLeader = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; kMLECounts = 0x4; @@ -1989,19 +1989,19 @@ client cluster ThreadNetworkDiagnostics = 53 { /** The Wi-Fi Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ client cluster WiFiNetworkDiagnostics = 54 { - enum AssociationFailureCauseEnum : ENUM8 { + enum AssociationFailureCauseEnum : enum8 { kUnknown = 0; kAssociationFailed = 1; kAuthenticationFailed = 2; kSsidNotFound = 3; } - enum ConnectionStatusEnum : ENUM8 { + enum ConnectionStatusEnum : enum8 { kConnected = 0; kNotConnected = 1; } - enum SecurityTypeEnum : ENUM8 { + enum SecurityTypeEnum : enum8 { kUnspecified = 0; kNone = 1; kWEP = 2; @@ -2010,7 +2010,7 @@ client cluster WiFiNetworkDiagnostics = 54 { kWPA3 = 5; } - enum WiFiVersionEnum : ENUM8 { + enum WiFiVersionEnum : enum8 { kA = 0; kB = 1; kG = 2; @@ -2020,7 +2020,7 @@ client cluster WiFiNetworkDiagnostics = 54 { kAh = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; } @@ -2064,7 +2064,7 @@ client cluster WiFiNetworkDiagnostics = 54 { /** The Ethernet Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ client cluster EthernetNetworkDiagnostics = 55 { - enum PHYRateEnum : ENUM8 { + enum PHYRateEnum : enum8 { kRate10M = 0; kRate100M = 1; kRate1G = 2; @@ -2077,7 +2077,7 @@ client cluster EthernetNetworkDiagnostics = 55 { kRate400G = 9; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPacketCounts = 0x1; kErrorCounts = 0x2; } @@ -2104,7 +2104,7 @@ client cluster EthernetNetworkDiagnostics = 55 { /** Accurate time is required for a number of reasons, including scheduling, display and validating security materials. */ client cluster TimeSynchronization = 56 { - enum GranularityEnum : ENUM8 { + enum GranularityEnum : enum8 { kNoTimeGranularity = 0; kMinutesGranularity = 1; kSecondsGranularity = 2; @@ -2112,11 +2112,11 @@ client cluster TimeSynchronization = 56 { kMicrosecondsGranularity = 4; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kTimeNotAccepted = 2; } - enum TimeSourceEnum : ENUM8 { + enum TimeSourceEnum : enum8 { kNone = 0; kUnknown = 1; kAdmin = 2; @@ -2136,13 +2136,13 @@ client cluster TimeSynchronization = 56 { kGNSS = 16; } - enum TimeZoneDatabaseEnum : ENUM8 { + enum TimeZoneDatabaseEnum : enum8 { kFull = 0; kPartial = 1; kNone = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTimeZone = 0x1; kNTPClient = 0x2; kNTPServer = 0x4; @@ -2253,7 +2253,7 @@ client cluster TimeSynchronization = 56 { collection of attributes that the Node MAY collect to aid in conveying information regarding the Bridged Device to a user, such as the vendor name, the model name, or user-assigned name. */ client cluster BridgedDeviceBasicInformation = 57 { - enum ColorEnum : ENUM8 { + enum ColorEnum : enum8 { kBlack = 0; kNavy = 1; kGreen = 2; @@ -2277,7 +2277,7 @@ client cluster BridgedDeviceBasicInformation = 57 { kGold = 20; } - enum ProductFinishEnum : ENUM8 { + enum ProductFinishEnum : enum8 { kOther = 0; kMatte = 1; kSatin = 2; @@ -2333,7 +2333,7 @@ client cluster BridgedDeviceBasicInformation = 57 { Two types of switch devices are supported: latching switch (e.g. rocker switch) and momentary switch (e.g. push button), distinguished with their feature flags. Interactions with the switch device are exposed as attributes (for the latching switch) and as events (for both types of switches). An interested party MAY subscribe to these attributes/events and thus be informed of the interactions, and can perform actions based on this, for example by sending commands to perform an action such as controlling a light or a window shade. */ client cluster Switch = 59 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kLatchingSwitch = 0x1; kMomentarySwitch = 0x2; kMomentarySwitchRelease = 0x4; @@ -2384,13 +2384,13 @@ client cluster Switch = 59 { /** Commands to trigger a Node to allow a new Administrator to commission it. */ client cluster AdministratorCommissioning = 60 { - enum CommissioningWindowStatusEnum : ENUM8 { + enum CommissioningWindowStatusEnum : enum8 { kWindowNotOpen = 0; kEnhancedWindowOpen = 1; kBasicWindowOpen = 2; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kBusy = 2; kPAKEParameterError = 3; kWindowNotOpen = 4; @@ -2428,12 +2428,12 @@ client cluster AdministratorCommissioning = 60 { /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ client cluster OperationalCredentials = 62 { - enum CertificateChainTypeEnum : ENUM8 { + enum CertificateChainTypeEnum : enum8 { kDACCertificate = 1; kPAICertificate = 2; } - enum NodeOperationalCertStatusEnum : ENUM8 { + enum NodeOperationalCertStatusEnum : enum8 { kOK = 0; kInvalidPublicKey = 1; kInvalidNodeOpId = 2; @@ -2552,12 +2552,12 @@ client cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ client cluster GroupKeyManagement = 63 { - enum GroupKeySecurityPolicyEnum : ENUM8 { + enum GroupKeySecurityPolicyEnum : enum8 { kTrustFirst = 0; kCacheAndSync = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCacheAndSync = 0x1; } @@ -2706,8 +2706,10 @@ client cluster BooleanState = 69 { /** Allows servers to ensure that listed clients are notified when a server is available for communication. */ client cluster IcdManagement = 70 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCheckInProtocolSupport = 0x1; + kUserActiveModeTrigger = 0x2; + kLongIdleTimeSupport = 0x4; } fabric_scoped struct MonitoringRegistrationStruct { @@ -2755,7 +2757,7 @@ client cluster IcdManagement = 70 { /** Attributes and commands for selecting a mode from a list of supported options. */ client cluster ModeSelect = 80 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kOnOff = 0x1; } @@ -2793,14 +2795,14 @@ client cluster ModeSelect = 80 { /** Attributes and commands for selecting a mode from a list of supported options. */ client cluster LaundryWasherMode = 81 { - enum ModeTag : ENUM16 { + enum ModeTag : enum16 { kNormal = 16384; kDelicate = 16385; kHeavy = 16386; kWhites = 16387; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kOnOff = 0x1; } @@ -2842,12 +2844,12 @@ client cluster LaundryWasherMode = 81 { /** Attributes and commands for selecting a mode from a list of supported options. */ client cluster RefrigeratorAndTemperatureControlledCabinetMode = 82 { - enum ModeTag : ENUM16 { + enum ModeTag : enum16 { kRapidCool = 16384; kRapidFreeze = 16385; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kOnOff = 0x1; } @@ -2889,14 +2891,14 @@ client cluster RefrigeratorAndTemperatureControlledCabinetMode = 82 { /** This cluster supports remotely monitoring and controling the different typs of functionality available to a washing device, such as a washing machine. */ client cluster LaundryWasherControls = 83 { - enum NumberOfRinsesEnum : ENUM8 { + enum NumberOfRinsesEnum : enum8 { kNone = 0; kNormal = 1; kExtra = 2; kMax = 3; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kSpin = 0x1; kRinse = 0x2; } @@ -2915,12 +2917,12 @@ client cluster LaundryWasherControls = 83 { /** Attributes and commands for selecting a mode from a list of supported options. */ client cluster RvcRunMode = 84 { - enum ModeTag : ENUM16 { + enum ModeTag : enum16 { kIdle = 16384; kCleaning = 16385; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kStuck = 65; kDustBinMissing = 66; kDustBinFull = 67; @@ -2931,7 +2933,7 @@ client cluster RvcRunMode = 84 { kBatteryLow = 72; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kOnOff = 0x1; } @@ -2973,17 +2975,17 @@ client cluster RvcRunMode = 84 { /** Attributes and commands for selecting a mode from a list of supported options. */ client cluster RvcCleanMode = 85 { - enum ModeTag : ENUM16 { + enum ModeTag : enum16 { kDeepClean = 16384; kVacuum = 16385; kMop = 16386; } - enum StatusCode : ENUM8 { + enum StatusCode : enum8 { kCleaningInProgress = 64; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kOnOff = 0x1; } @@ -3025,7 +3027,7 @@ client cluster RvcCleanMode = 85 { /** Attributes and commands for configuring the temperature control, and reporting temperature. */ client cluster TemperatureControl = 86 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kTemperatureNumber = 0x1; kTemperatureLevel = 0x2; kTemperatureStep = 0x4; @@ -3055,7 +3057,7 @@ client cluster TemperatureControl = 86 { /** Attributes and commands for configuring the Refrigerator alarm. */ client cluster RefrigeratorAlarm = 87 { - bitmap AlarmMap : BITMAP32 { + bitmap AlarmMap : bitmap32 { kDoorOpen = 0x1; } @@ -3079,13 +3081,13 @@ client cluster RefrigeratorAlarm = 87 { /** Attributes and commands for selecting a mode from a list of supported options. */ client cluster DishwasherMode = 89 { - enum ModeTag : ENUM16 { + enum ModeTag : enum16 { kNormal = 16384; kHeavy = 16385; kLight = 16386; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kOnOff = 0x1; } @@ -3127,7 +3129,7 @@ client cluster DishwasherMode = 89 { /** Attributes for reporting air quality classification */ client cluster AirQuality = 91 { - enum AirQualityEnum : ENUM8 { + enum AirQualityEnum : enum8 { kUnknown = 0; kGood = 1; kFair = 2; @@ -3137,7 +3139,7 @@ client cluster AirQuality = 91 { kExtremelyPoor = 6; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kFair = 0x1; kModerate = 0x2; kVeryPoor = 0x4; @@ -3155,25 +3157,25 @@ client cluster AirQuality = 91 { /** This cluster provides an interface for observing and managing the state of smoke and CO alarms. */ client cluster SmokeCoAlarm = 92 { - enum AlarmStateEnum : ENUM8 { + enum AlarmStateEnum : enum8 { kNormal = 0; kWarning = 1; kCritical = 2; } - enum ContaminationStateEnum : ENUM8 { + enum ContaminationStateEnum : enum8 { kNormal = 0; kLow = 1; kWarning = 2; kCritical = 3; } - enum EndOfServiceEnum : ENUM8 { + enum EndOfServiceEnum : enum8 { kNormal = 0; kExpired = 1; } - enum ExpressedStateEnum : ENUM8 { + enum ExpressedStateEnum : enum8 { kNormal = 0; kSmokeAlarm = 1; kCOAlarm = 2; @@ -3185,18 +3187,18 @@ client cluster SmokeCoAlarm = 92 { kInterconnectCO = 8; } - enum MuteStateEnum : ENUM8 { + enum MuteStateEnum : enum8 { kNotMuted = 0; kMuted = 1; } - enum SensitivityEnum : ENUM8 { + enum SensitivityEnum : enum8 { kHigh = 0; kStandard = 1; kLow = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kSmokeAlarm = 0x1; kCOAlarm = 0x2; } @@ -3265,7 +3267,7 @@ client cluster SmokeCoAlarm = 92 { /** Attributes and commands for configuring the Dishwasher alarm. */ client cluster DishwasherAlarm = 93 { - bitmap AlarmMap : BITMAP32 { + bitmap AlarmMap : bitmap32 { kInflowError = 0x1; kDrainError = 0x2; kDoorError = 0x4; @@ -3274,7 +3276,7 @@ client cluster DishwasherAlarm = 93 { kWaterLevelError = 0x20; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kReset = 0x1; } @@ -3312,14 +3314,14 @@ client cluster DishwasherAlarm = 93 { /** This cluster supports remotely monitoring and, where supported, changing the operational state of any device where a state machine is a part of the operation. */ client cluster OperationalState = 96 { - enum ErrorStateEnum : ENUM8 { + enum ErrorStateEnum : enum8 { kNoError = 0; kUnableToStartOrResume = 1; kUnableToCompleteOperation = 2; kCommandInvalidInState = 3; } - enum OperationalStateEnum : ENUM8 { + enum OperationalStateEnum : enum8 { kStopped = 0; kRunning = 1; kPaused = 2; @@ -3376,7 +3378,7 @@ client cluster OperationalState = 96 { /** This cluster supports remotely monitoring and, where supported, changing the operational state of a Robotic Vacuum. */ client cluster RvcOperationalState = 97 { - enum ErrorStateEnum : ENUM8 { + enum ErrorStateEnum : enum8 { kFailedToFindChargingDock = 64; kStuck = 65; kDustBinMissing = 66; @@ -3387,7 +3389,7 @@ client cluster RvcOperationalState = 97 { kMopCleaningPadMissing = 71; } - enum OperationalStateEnum : ENUM8 { + enum OperationalStateEnum : enum8 { kSeekingCharger = 64; kCharging = 65; kDocked = 66; @@ -3443,18 +3445,18 @@ client cluster RvcOperationalState = 97 { /** Attributes and commands for monitoring HEPA filters in a device */ client cluster HepaFilterMonitoring = 113 { - enum ChangeIndicationEnum : ENUM8 { + enum ChangeIndicationEnum : enum8 { kOK = 0; kWarning = 1; kCritical = 2; } - enum DegradationDirectionEnum : ENUM8 { + enum DegradationDirectionEnum : enum8 { kUp = 0; kDown = 1; } - enum ProductIdentifierTypeEnum : ENUM8 { + enum ProductIdentifierTypeEnum : enum8 { kUPC = 0; kGTIN8 = 1; kEAN = 2; @@ -3462,7 +3464,7 @@ client cluster HepaFilterMonitoring = 113 { kOEM = 4; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCondition = 0x1; kWarning = 0x2; kReplacementProductList = 0x4; @@ -3492,18 +3494,18 @@ client cluster HepaFilterMonitoring = 113 { /** Attributes and commands for monitoring activated carbon filters in a device */ client cluster ActivatedCarbonFilterMonitoring = 114 { - enum ChangeIndicationEnum : ENUM8 { + enum ChangeIndicationEnum : enum8 { kOK = 0; kWarning = 1; kCritical = 2; } - enum DegradationDirectionEnum : ENUM8 { + enum DegradationDirectionEnum : enum8 { kUp = 0; kDown = 1; } - enum ProductIdentifierTypeEnum : ENUM8 { + enum ProductIdentifierTypeEnum : enum8 { kUPC = 0; kGTIN8 = 1; kEAN = 2; @@ -3511,7 +3513,7 @@ client cluster ActivatedCarbonFilterMonitoring = 114 { kOEM = 4; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kCondition = 0x1; kWarning = 0x2; kReplacementProductList = 0x4; @@ -3541,7 +3543,7 @@ client cluster ActivatedCarbonFilterMonitoring = 114 { /** An interface to a generic way to secure a door */ client cluster DoorLock = 257 { - enum AlarmCodeEnum : ENUM8 { + enum AlarmCodeEnum : enum8 { kLockJammed = 0; kLockFactoryReset = 1; kLockRadioPowerCycled = 3; @@ -3552,13 +3554,13 @@ client cluster DoorLock = 257 { kForcedUser = 8; } - enum CredentialRuleEnum : ENUM8 { + enum CredentialRuleEnum : enum8 { kSingle = 0; kDual = 1; kTri = 2; } - enum CredentialTypeEnum : ENUM8 { + enum CredentialTypeEnum : enum8 { kProgrammingPIN = 0; kPIN = 1; kRFID = 2; @@ -3567,20 +3569,20 @@ client cluster DoorLock = 257 { kFace = 5; } - enum DataOperationTypeEnum : ENUM8 { + enum DataOperationTypeEnum : enum8 { kAdd = 0; kClear = 1; kModify = 2; } - enum DlLockState : ENUM8 { + enum DlLockState : enum8 { kNotFullyLocked = 0; kLocked = 1; kUnlocked = 2; kUnlatched = 3; } - enum DlLockType : ENUM8 { + enum DlLockType : enum8 { kDeadBolt = 0; kMagnetic = 1; kOther = 2; @@ -3595,7 +3597,7 @@ client cluster DoorLock = 257 { kEurocylinder = 11; } - enum DlStatus : ENUM8 { + enum DlStatus : enum8 { kSuccess = 0; kFailure = 1; kDuplicate = 2; @@ -3605,7 +3607,7 @@ client cluster DoorLock = 257 { kNotFound = 139; } - enum DoorLockOperationEventCode : ENUM8 { + enum DoorLockOperationEventCode : enum8 { kUnknownOrMfgSpecific = 0; kLock = 1; kUnlock = 2; @@ -3623,7 +3625,7 @@ client cluster DoorLock = 257 { kManualUnlock = 14; } - enum DoorLockProgrammingEventCode : ENUM8 { + enum DoorLockProgrammingEventCode : enum8 { kUnknownOrMfgSpecific = 0; kMasterCodeChanged = 1; kPinAdded = 2; @@ -3633,21 +3635,21 @@ client cluster DoorLock = 257 { kIdDeleted = 6; } - enum DoorLockSetPinOrIdStatus : ENUM8 { + enum DoorLockSetPinOrIdStatus : enum8 { kSuccess = 0; kGeneralFailure = 1; kMemoryFull = 2; kDuplicateCodeError = 3; } - enum DoorLockUserStatus : ENUM8 { + enum DoorLockUserStatus : enum8 { kAvailable = 0; kOccupiedEnabled = 1; kOccupiedDisabled = 3; kNotSupported = 255; } - enum DoorLockUserType : ENUM8 { + enum DoorLockUserType : enum8 { kUnrestricted = 0; kYearDayScheduleUser = 1; kWeekDayScheduleUser = 2; @@ -3656,7 +3658,7 @@ client cluster DoorLock = 257 { kNotSupported = 255; } - enum DoorStateEnum : ENUM8 { + enum DoorStateEnum : enum8 { kDoorOpen = 0; kDoorClosed = 1; kDoorJammed = 2; @@ -3665,7 +3667,7 @@ client cluster DoorLock = 257 { kDoorAjar = 5; } - enum LockDataTypeEnum : ENUM8 { + enum LockDataTypeEnum : enum8 { kUnspecified = 0; kProgrammingCode = 1; kUserIndex = 2; @@ -3679,7 +3681,7 @@ client cluster DoorLock = 257 { kFace = 10; } - enum LockOperationTypeEnum : ENUM8 { + enum LockOperationTypeEnum : enum8 { kLock = 0; kUnlock = 1; kNonAccessUserEvent = 2; @@ -3687,7 +3689,7 @@ client cluster DoorLock = 257 { kUnlatch = 4; } - enum OperatingModeEnum : ENUM8 { + enum OperatingModeEnum : enum8 { kNormal = 0; kVacation = 1; kPrivacy = 2; @@ -3695,7 +3697,7 @@ client cluster DoorLock = 257 { kPassage = 4; } - enum OperationErrorEnum : ENUM8 { + enum OperationErrorEnum : enum8 { kUnspecified = 0; kInvalidCredential = 1; kDisabledUserDenied = 2; @@ -3703,7 +3705,7 @@ client cluster DoorLock = 257 { kInsufficientBattery = 4; } - enum OperationSourceEnum : ENUM8 { + enum OperationSourceEnum : enum8 { kUnspecified = 0; kManual = 1; kProprietaryRemote = 2; @@ -3716,13 +3718,13 @@ client cluster DoorLock = 257 { kBiometric = 9; } - enum UserStatusEnum : ENUM8 { + enum UserStatusEnum : enum8 { kAvailable = 0; kOccupiedEnabled = 1; kOccupiedDisabled = 3; } - enum UserTypeEnum : ENUM8 { + enum UserTypeEnum : enum8 { kUnrestrictedUser = 0; kYearDayScheduleUser = 1; kWeekDayScheduleUser = 2; @@ -3735,7 +3737,7 @@ client cluster DoorLock = 257 { kRemoteOnlyUser = 9; } - bitmap DaysMaskMap : BITMAP8 { + bitmap DaysMaskMap : bitmap8 { kSunday = 0x1; kMonday = 0x2; kTuesday = 0x4; @@ -3745,19 +3747,19 @@ client cluster DoorLock = 257 { kSaturday = 0x40; } - bitmap DlCredentialRuleMask : BITMAP8 { + bitmap DlCredentialRuleMask : bitmap8 { kSingle = 0x1; kDual = 0x2; kTri = 0x4; } - bitmap DlCredentialRulesSupport : BITMAP8 { + bitmap DlCredentialRulesSupport : bitmap8 { kSingle = 0x1; kDual = 0x2; kTri = 0x4; } - bitmap DlDefaultConfigurationRegister : BITMAP16 { + bitmap DlDefaultConfigurationRegister : bitmap16 { kEnableLocalProgrammingEnabled = 0x1; kKeypadInterfaceDefaultAccessEnabled = 0x2; kRemoteInterfaceDefaultAccessIsEnabled = 0x4; @@ -3766,7 +3768,7 @@ client cluster DoorLock = 257 { kLEDSettingsSet = 0x80; } - bitmap DlKeypadOperationEventMask : BITMAP16 { + bitmap DlKeypadOperationEventMask : bitmap16 { kUnknown = 0x1; kLock = 0x2; kUnlock = 0x4; @@ -3777,7 +3779,7 @@ client cluster DoorLock = 257 { kNonAccessUserOpEvent = 0x80; } - bitmap DlKeypadProgrammingEventMask : BITMAP16 { + bitmap DlKeypadProgrammingEventMask : bitmap16 { kUnknown = 0x1; kProgrammingPINChanged = 0x2; kPINAdded = 0x4; @@ -3785,14 +3787,14 @@ client cluster DoorLock = 257 { kPINChanged = 0x10; } - bitmap DlLocalProgrammingFeatures : BITMAP8 { + bitmap DlLocalProgrammingFeatures : bitmap8 { kAddUsersCredentialsSchedulesLocally = 0x1; kModifyUsersCredentialsSchedulesLocally = 0x2; kClearUsersCredentialsSchedulesLocally = 0x4; kAdjustLockSettingsLocally = 0x8; } - bitmap DlManualOperationEventMask : BITMAP16 { + bitmap DlManualOperationEventMask : bitmap16 { kUnknown = 0x1; kThumbturnLock = 0x2; kThumbturnUnlock = 0x4; @@ -3806,7 +3808,7 @@ client cluster DoorLock = 257 { kManualUnlock = 0x400; } - bitmap DlRFIDOperationEventMask : BITMAP16 { + bitmap DlRFIDOperationEventMask : bitmap16 { kUnknown = 0x1; kLock = 0x2; kUnlock = 0x4; @@ -3816,13 +3818,13 @@ client cluster DoorLock = 257 { kUnlockInvalidSchedule = 0x40; } - bitmap DlRFIDProgrammingEventMask : BITMAP16 { + bitmap DlRFIDProgrammingEventMask : bitmap16 { kUnknown = 0x1; kRFIDCodeAdded = 0x20; kRFIDCodeCleared = 0x40; } - bitmap DlRemoteOperationEventMask : BITMAP16 { + bitmap DlRemoteOperationEventMask : bitmap16 { kUnknown = 0x1; kLock = 0x2; kUnlock = 0x4; @@ -3832,7 +3834,7 @@ client cluster DoorLock = 257 { kUnlockInvalidSchedule = 0x40; } - bitmap DlRemoteProgrammingEventMask : BITMAP16 { + bitmap DlRemoteProgrammingEventMask : bitmap16 { kUnknown = 0x1; kProgrammingPINChanged = 0x2; kPINAdded = 0x4; @@ -3842,7 +3844,7 @@ client cluster DoorLock = 257 { kRFIDCodeCleared = 0x40; } - bitmap DlSupportedOperatingModes : BITMAP16 { + bitmap DlSupportedOperatingModes : bitmap16 { kNormal = 0x1; kVacation = 0x2; kPrivacy = 0x4; @@ -3850,7 +3852,7 @@ client cluster DoorLock = 257 { kPassage = 0x10; } - bitmap DoorLockDayOfWeek : BITMAP8 { + bitmap DoorLockDayOfWeek : bitmap8 { kSunday = 0x1; kMonday = 0x2; kTuesday = 0x4; @@ -3860,7 +3862,7 @@ client cluster DoorLock = 257 { kSaturday = 0x40; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kPINCredential = 0x1; kRFIDCredential = 0x2; kFingerCredentials = 0x4; @@ -4161,7 +4163,7 @@ client cluster DoorLock = 257 { /** Provides an interface for controlling and adjusting automatic window coverings. */ client cluster WindowCovering = 258 { - enum EndProductType : ENUM8 { + enum EndProductType : enum8 { kRollerShade = 0; kRomanShade = 1; kBalloonShade = 2; @@ -4189,7 +4191,7 @@ client cluster WindowCovering = 258 { kUnknown = 255; } - enum Type : ENUM8 { + enum Type : enum8 { kRollerShade = 0; kRollerShade2Motor = 1; kRollerShadeExterior = 2; @@ -4203,7 +4205,7 @@ client cluster WindowCovering = 258 { kUnknown = 255; } - bitmap ConfigStatus : BITMAP8 { + bitmap ConfigStatus : bitmap8 { kOperational = 0x1; kOnlineReserved = 0x2; kLiftMovementReversed = 0x4; @@ -4213,7 +4215,7 @@ client cluster WindowCovering = 258 { kTiltEncoderControlled = 0x40; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kLift = 0x1; kTilt = 0x2; kPositionAwareLift = 0x4; @@ -4221,20 +4223,20 @@ client cluster WindowCovering = 258 { kPositionAwareTilt = 0x10; } - bitmap Mode : BITMAP8 { + bitmap Mode : bitmap8 { kMotorDirectionReversed = 0x1; kCalibrationMode = 0x2; kMaintenanceMode = 0x4; kLedFeedback = 0x8; } - bitmap OperationalStatus : BITMAP8 { + bitmap OperationalStatus : bitmap8 { kGlobal = 0x3; kLift = 0xC; kTilt = 0x30; } - bitmap SafetyStatus : BITMAP16 { + bitmap SafetyStatus : bitmap16 { kRemoteLockout = 0x1; kTamperDetection = 0x2; kFailedCommunication = 0x4; @@ -4312,11 +4314,11 @@ client cluster WindowCovering = 258 { /** This cluster provides control of a barrier (garage door). */ client cluster BarrierControl = 259 { - bitmap BarrierControlCapabilities : BITMAP8 { + bitmap BarrierControlCapabilities : bitmap8 { kPartialBarrier = 0x1; } - bitmap BarrierControlSafetyStatus : BITMAP16 { + bitmap BarrierControlSafetyStatus : bitmap16 { kRemoteLockout = 0x1; kTemperDetected = 0x2; kFailedCommunication = 0x4; @@ -4352,7 +4354,7 @@ client cluster BarrierControl = 259 { /** An interface for configuring and controlling pumps. */ client cluster PumpConfigurationAndControl = 512 { - enum ControlModeEnum : ENUM8 { + enum ControlModeEnum : enum8 { kConstantSpeed = 0; kConstantPressure = 1; kProportionalPressure = 2; @@ -4361,14 +4363,14 @@ client cluster PumpConfigurationAndControl = 512 { kAutomatic = 7; } - enum OperationModeEnum : ENUM8 { + enum OperationModeEnum : enum8 { kNormal = 0; kMinimum = 1; kMaximum = 2; kLocal = 3; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kConstantPressure = 0x1; kCompensatedPressure = 0x2; kConstantFlow = 0x4; @@ -4378,7 +4380,7 @@ client cluster PumpConfigurationAndControl = 512 { kLocalOperation = 0x40; } - bitmap PumpStatusBitmap : BITMAP16 { + bitmap PumpStatusBitmap : bitmap16 { kDeviceFault = 0x1; kSupplyfault = 0x2; kSpeedLow = 0x4; @@ -4474,13 +4476,13 @@ client cluster PumpConfigurationAndControl = 512 { /** An interface for configuring and controlling the functionality of a thermostat. */ client cluster Thermostat = 513 { - enum SetpointAdjustMode : ENUM8 { + enum SetpointAdjustMode : enum8 { kHeat = 0; kCool = 1; kBoth = 2; } - enum ThermostatControlSequence : ENUM8 { + enum ThermostatControlSequence : enum8 { kCoolingOnly = 0; kCoolingWithReheat = 1; kHeatingOnly = 2; @@ -4489,13 +4491,13 @@ client cluster Thermostat = 513 { kCoolingAndHeatingWithReheat = 5; } - enum ThermostatRunningMode : ENUM8 { + enum ThermostatRunningMode : enum8 { kOff = 0; kCool = 3; kHeat = 4; } - enum ThermostatSystemMode : ENUM8 { + enum ThermostatSystemMode : enum8 { kOff = 0; kAuto = 1; kCool = 3; @@ -4507,7 +4509,7 @@ client cluster Thermostat = 513 { kSleep = 9; } - bitmap DayOfWeek : BITMAP8 { + bitmap DayOfWeek : bitmap8 { kSunday = 0x1; kMonday = 0x2; kTuesday = 0x4; @@ -4518,7 +4520,7 @@ client cluster Thermostat = 513 { kAway = 0x80; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kHeating = 0x1; kCooling = 0x2; kOccupancy = 0x4; @@ -4528,7 +4530,7 @@ client cluster Thermostat = 513 { kLocalTemperatureNotExposed = 0x40; } - bitmap ModeForSequence : BITMAP8 { + bitmap ModeForSequence : bitmap8 { kHeatSetpointPresent = 0x1; kCoolSetpointPresent = 0x2; } @@ -4630,13 +4632,13 @@ client cluster Thermostat = 513 { } /** An interface for controlling a fan in a heating/cooling system. */ -client cluster FanControl = 514 { - enum AirflowDirectionEnum : ENUM8 { +provisional client cluster FanControl = 514 { + enum AirflowDirectionEnum : enum8 { kForward = 0; kReverse = 1; } - enum FanModeEnum : ENUM8 { + enum FanModeEnum : enum8 { kOff = 0; kLow = 1; kMedium = 2; @@ -4646,7 +4648,7 @@ client cluster FanControl = 514 { kSmart = 6; } - enum FanModeSequenceEnum : ENUM8 { + enum FanModeSequenceEnum : enum8 { kOffLowMedHigh = 0; kOffLowHigh = 1; kOffLowMedHighAuto = 2; @@ -4655,12 +4657,12 @@ client cluster FanControl = 514 { kOffOn = 5; } - enum StepDirectionEnum : ENUM8 { + enum StepDirectionEnum : enum8 { kIncrease = 0; kDecrease = 1; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kMultiSpeed = 0x1; kAuto = 0x2; kRocking = 0x4; @@ -4669,13 +4671,13 @@ client cluster FanControl = 514 { kAirflowDirection = 0x20; } - bitmap RockBitmap : BITMAP8 { + bitmap RockBitmap : bitmap8 { kRockLeftRight = 0x1; kRockUpDown = 0x2; kRockRound = 0x4; } - bitmap WindBitmap : BITMAP8 { + bitmap WindBitmap : bitmap8 { kSleepWind = 0x1; kNaturalWind = 0x2; } @@ -4724,53 +4726,53 @@ client cluster ThermostatUserInterfaceConfiguration = 516 { /** Attributes and commands for controlling the color properties of a color-capable light. */ client cluster ColorControl = 768 { - enum ColorLoopAction : ENUM8 { + enum ColorLoopAction : enum8 { kDeactivate = 0; kActivateFromColorLoopStartEnhancedHue = 1; kActivateFromEnhancedCurrentHue = 2; } - enum ColorLoopDirection : ENUM8 { + enum ColorLoopDirection : enum8 { kDecrementHue = 0; kIncrementHue = 1; } - enum ColorMode : ENUM8 { + enum ColorMode : enum8 { kCurrentHueAndCurrentSaturation = 0; kCurrentXAndCurrentY = 1; kColorTemperature = 2; } - enum HueDirection : ENUM8 { + enum HueDirection : enum8 { kShortestDistance = 0; kLongestDistance = 1; kUp = 2; kDown = 3; } - enum HueMoveMode : ENUM8 { + enum HueMoveMode : enum8 { kStop = 0; kUp = 1; kDown = 3; } - enum HueStepMode : ENUM8 { + enum HueStepMode : enum8 { kUp = 1; kDown = 3; } - enum SaturationMoveMode : ENUM8 { + enum SaturationMoveMode : enum8 { kStop = 0; kUp = 1; kDown = 3; } - enum SaturationStepMode : ENUM8 { + enum SaturationStepMode : enum8 { kUp = 1; kDown = 3; } - bitmap ColorCapabilities : BITMAP16 { + bitmap ColorCapabilities : bitmap16 { kHueSaturationSupported = 0x1; kEnhancedHueSupported = 0x2; kColorLoopSupported = 0x4; @@ -4778,14 +4780,14 @@ client cluster ColorControl = 768 { kColorTemperatureSupported = 0x10; } - bitmap ColorLoopUpdateFlags : BITMAP8 { + bitmap ColorLoopUpdateFlags : bitmap8 { kUpdateAction = 0x1; kUpdateDirection = 0x2; kUpdateTime = 0x4; kUpdateStartHue = 0x8; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kHueAndSaturation = 0x1; kEnhancedHue = 0x2; kColorLoop = 0x4; @@ -5041,13 +5043,13 @@ client cluster ColorControl = 768 { } /** Attributes and commands for configuring a lighting ballast. */ -client cluster BallastConfiguration = 769 { - bitmap BallastStatusBitmap : BITMAP8 { +provisional client cluster BallastConfiguration = 769 { + bitmap BallastStatusBitmap : bitmap8 { kBallastNonOperational = 0x1; kLampFailure = 0x2; } - bitmap LampAlarmModeBitmap : BITMAP8 { + bitmap LampAlarmModeBitmap : bitmap8 { kLampBurnHours = 0x1; } @@ -5075,7 +5077,7 @@ client cluster BallastConfiguration = 769 { /** Attributes and commands for configuring the measurement of illuminance, and reporting illuminance measurements. */ client cluster IlluminanceMeasurement = 1024 { - enum LightSensorTypeEnum : ENUM8 { + enum LightSensorTypeEnum : enum8 { kPhotodiode = 0; kCMOS = 1; } @@ -5109,7 +5111,7 @@ client cluster TemperatureMeasurement = 1026 { /** Attributes and commands for configuring the measurement of pressure, and reporting pressure measurements. */ client cluster PressureMeasurement = 1027 { - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kExtended = 0x1; } @@ -5160,18 +5162,18 @@ client cluster RelativeHumidityMeasurement = 1029 { /** Attributes and commands for configuring occupancy sensing, and reporting occupancy status. */ client cluster OccupancySensing = 1030 { - enum OccupancySensorTypeEnum : ENUM8 { + enum OccupancySensorTypeEnum : enum8 { kPIR = 0; kUltrasonic = 1; kPIRAndUltrasonic = 2; kPhysicalContact = 3; } - bitmap OccupancyBitmap : BITMAP8 { + bitmap OccupancyBitmap : bitmap8 { kOccupied = 0x1; } - bitmap OccupancySensorTypeBitmap : BITMAP8 { + bitmap OccupancySensorTypeBitmap : bitmap8 { kPIR = 0x1; kUltrasonic = 0x2; kPhysicalContact = 0x4; @@ -5199,7 +5201,7 @@ client cluster OccupancySensing = 1030 { /** Attributes for reporting carbon monoxide concentration measurements */ client cluster CarbonMonoxideConcentrationMeasurement = 1036 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -5207,13 +5209,13 @@ client cluster CarbonMonoxideConcentrationMeasurement = 1036 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -5224,7 +5226,7 @@ client cluster CarbonMonoxideConcentrationMeasurement = 1036 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -5254,7 +5256,7 @@ client cluster CarbonMonoxideConcentrationMeasurement = 1036 { /** Attributes for reporting carbon dioxide concentration measurements */ client cluster CarbonDioxideConcentrationMeasurement = 1037 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -5262,13 +5264,13 @@ client cluster CarbonDioxideConcentrationMeasurement = 1037 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -5279,7 +5281,7 @@ client cluster CarbonDioxideConcentrationMeasurement = 1037 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -5309,7 +5311,7 @@ client cluster CarbonDioxideConcentrationMeasurement = 1037 { /** Attributes for reporting nitrogen dioxide concentration measurements */ client cluster NitrogenDioxideConcentrationMeasurement = 1043 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -5317,13 +5319,13 @@ client cluster NitrogenDioxideConcentrationMeasurement = 1043 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -5334,7 +5336,7 @@ client cluster NitrogenDioxideConcentrationMeasurement = 1043 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -5364,7 +5366,7 @@ client cluster NitrogenDioxideConcentrationMeasurement = 1043 { /** Attributes for reporting ozone concentration measurements */ client cluster OzoneConcentrationMeasurement = 1045 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -5372,13 +5374,13 @@ client cluster OzoneConcentrationMeasurement = 1045 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -5389,7 +5391,7 @@ client cluster OzoneConcentrationMeasurement = 1045 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -5419,7 +5421,7 @@ client cluster OzoneConcentrationMeasurement = 1045 { /** Attributes for reporting PM2.5 concentration measurements */ client cluster Pm25ConcentrationMeasurement = 1066 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -5427,13 +5429,13 @@ client cluster Pm25ConcentrationMeasurement = 1066 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -5444,7 +5446,7 @@ client cluster Pm25ConcentrationMeasurement = 1066 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -5474,7 +5476,7 @@ client cluster Pm25ConcentrationMeasurement = 1066 { /** Attributes for reporting formaldehyde concentration measurements */ client cluster FormaldehydeConcentrationMeasurement = 1067 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -5482,13 +5484,13 @@ client cluster FormaldehydeConcentrationMeasurement = 1067 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -5499,7 +5501,7 @@ client cluster FormaldehydeConcentrationMeasurement = 1067 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -5529,7 +5531,7 @@ client cluster FormaldehydeConcentrationMeasurement = 1067 { /** Attributes for reporting PM1 concentration measurements */ client cluster Pm1ConcentrationMeasurement = 1068 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -5537,13 +5539,13 @@ client cluster Pm1ConcentrationMeasurement = 1068 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -5554,7 +5556,7 @@ client cluster Pm1ConcentrationMeasurement = 1068 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -5584,7 +5586,7 @@ client cluster Pm1ConcentrationMeasurement = 1068 { /** Attributes for reporting PM10 concentration measurements */ client cluster Pm10ConcentrationMeasurement = 1069 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -5592,13 +5594,13 @@ client cluster Pm10ConcentrationMeasurement = 1069 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -5609,7 +5611,7 @@ client cluster Pm10ConcentrationMeasurement = 1069 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -5639,7 +5641,7 @@ client cluster Pm10ConcentrationMeasurement = 1069 { /** Attributes for reporting total volatile organic compounds concentration measurements */ client cluster TotalVolatileOrganicCompoundsConcentrationMeasurement = 1070 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -5647,13 +5649,13 @@ client cluster TotalVolatileOrganicCompoundsConcentrationMeasurement = 1070 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -5664,7 +5666,7 @@ client cluster TotalVolatileOrganicCompoundsConcentrationMeasurement = 1070 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -5694,7 +5696,7 @@ client cluster TotalVolatileOrganicCompoundsConcentrationMeasurement = 1070 { /** Attributes for reporting radon concentration measurements */ client cluster RadonConcentrationMeasurement = 1071 { - enum LevelValueEnum : ENUM8 { + enum LevelValueEnum : enum8 { kUnknown = 0; kLow = 1; kMedium = 2; @@ -5702,13 +5704,13 @@ client cluster RadonConcentrationMeasurement = 1071 { kCritical = 4; } - enum MeasurementMediumEnum : ENUM8 { + enum MeasurementMediumEnum : enum8 { kAir = 0; kWater = 1; kSoil = 2; } - enum MeasurementUnitEnum : ENUM8 { + enum MeasurementUnitEnum : enum8 { kPPM = 0; kPPB = 1; kPPT = 2; @@ -5719,7 +5721,7 @@ client cluster RadonConcentrationMeasurement = 1071 { kBQM3 = 7; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNumericMeasurement = 0x1; kLevelIndication = 0x2; kMediumLevel = 0x4; @@ -5760,17 +5762,17 @@ client cluster WakeOnLan = 1283 { /** This cluster provides an interface for controlling the current Channel on a device. */ client cluster Channel = 1284 { - enum ChannelStatusEnum : ENUM8 { + enum ChannelStatusEnum : enum8 { kSuccess = 0; kMultipleMatches = 1; kNoMatches = 2; } - enum LineupInfoTypeEnum : ENUM8 { + enum LineupInfoTypeEnum : enum8 { kMSO = 0; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kChannelList = 0x1; kLineupInfo = 0x2; } @@ -5828,7 +5830,7 @@ client cluster Channel = 1284 { /** This cluster provides an interface for UX navigation within a set of targets on a device or endpoint. */ client cluster TargetNavigator = 1285 { - enum TargetNavigatorStatusEnum : ENUM8 { + enum TargetNavigatorStatusEnum : enum8 { kSuccess = 0; kTargetNotFound = 1; kNotAllowed = 2; @@ -5864,7 +5866,7 @@ client cluster TargetNavigator = 1285 { /** This cluster provides an interface for controlling Media Playback (PLAY, PAUSE, etc) on a media device such as a TV or Speaker. */ client cluster MediaPlayback = 1286 { - enum MediaPlaybackStatusEnum : ENUM8 { + enum MediaPlaybackStatusEnum : enum8 { kSuccess = 0; kInvalidStateForCommand = 1; kNotAllowed = 2; @@ -5873,14 +5875,14 @@ client cluster MediaPlayback = 1286 { kSeekOutOfRange = 5; } - enum PlaybackStateEnum : ENUM8 { + enum PlaybackStateEnum : enum8 { kPlaying = 0; kPaused = 1; kNotPlaying = 2; kBuffering = 3; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kAdvancedSeek = 0x1; kVariableSpeed = 0x2; } @@ -5947,7 +5949,7 @@ client cluster MediaPlayback = 1286 { /** This cluster provides an interface for controlling the Input Selector on a media device such as a TV. */ client cluster MediaInput = 1287 { - enum InputTypeEnum : ENUM8 { + enum InputTypeEnum : enum8 { kInternal = 0; kAux = 1; kCoax = 2; @@ -5962,7 +5964,7 @@ client cluster MediaInput = 1287 { kOther = 11; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNameUpdates = 0x1; } @@ -6016,7 +6018,7 @@ client cluster LowPower = 1288 { /** This cluster provides an interface for controlling a device like a TV using action commands such as UP, DOWN, and SELECT. */ client cluster KeypadInput = 1289 { - enum CecKeyCode : ENUM8 { + enum CecKeyCode : enum8 { kSelect = 0; kUp = 1; kDown = 2; @@ -6105,13 +6107,13 @@ client cluster KeypadInput = 1289 { kData = 118; } - enum KeypadInputStatusEnum : ENUM8 { + enum KeypadInputStatusEnum : enum8 { kSuccess = 0; kUnsupportedKey = 1; kInvalidKeyInCurrentState = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNavigationKeyCodes = 0x1; kLocationKeys = 0x2; kNumberKeys = 0x4; @@ -6138,18 +6140,18 @@ client cluster KeypadInput = 1289 { /** This cluster provides an interface for launching content on a media player device such as a TV or Speaker. */ client cluster ContentLauncher = 1290 { - enum ContentLaunchStatusEnum : ENUM8 { + enum ContentLaunchStatusEnum : enum8 { kSuccess = 0; kUrlNotAvailable = 1; kAuthFailed = 2; } - enum MetricTypeEnum : ENUM8 { + enum MetricTypeEnum : enum8 { kPixels = 0; kPercentage = 1; } - enum ParameterEnum : ENUM8 { + enum ParameterEnum : enum8 { kActor = 0; kChannel = 1; kCharacter = 2; @@ -6166,12 +6168,12 @@ client cluster ContentLauncher = 1290 { kVideo = 13; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kContentSearch = 0x1; kURLPlayback = 0x2; } - bitmap SupportedStreamingProtocol : BITMAP32 { + bitmap SupportedStreamingProtocol : bitmap32 { kDASH = 0x1; kHLS = 0x2; } @@ -6246,7 +6248,7 @@ client cluster ContentLauncher = 1290 { /** This cluster provides an interface for controlling the Output on a media device such as a TV. */ client cluster AudioOutput = 1291 { - enum OutputTypeEnum : ENUM8 { + enum OutputTypeEnum : enum8 { kHDMI = 0; kBT = 1; kOptical = 2; @@ -6255,7 +6257,7 @@ client cluster AudioOutput = 1291 { kOther = 5; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kNameUpdates = 0x1; } @@ -6291,13 +6293,13 @@ client cluster AudioOutput = 1291 { /** This cluster provides an interface for launching content on a media player device such as a TV or Speaker. */ client cluster ApplicationLauncher = 1292 { - enum ApplicationLauncherStatusEnum : ENUM8 { + enum ApplicationLauncherStatusEnum : enum8 { kSuccess = 0; kAppNotAvailable = 1; kSystemBusy = 2; } - bitmap Feature : BITMAP32 { + bitmap Feature : bitmap32 { kApplicationPlatform = 0x1; } @@ -6348,7 +6350,7 @@ client cluster ApplicationLauncher = 1292 { /** This cluster provides information about an application running on a TV or media player device which is represented as an endpoint. */ client cluster ApplicationBasic = 1293 { - enum ApplicationStatusEnum : ENUM8 { + enum ApplicationStatusEnum : enum8 { kStopped = 0; kActiveVisibleFocus = 1; kActiveHidden = 2; @@ -6572,43 +6574,43 @@ client cluster ElectricalMeasurement = 2820 { } /** The Test Cluster is meant to validate the generated code */ -client cluster UnitTesting = 4294048773 { - enum SimpleEnum : ENUM8 { +internal client cluster UnitTesting = 4294048773 { + enum SimpleEnum : enum8 { kUnspecified = 0; kValueA = 1; kValueB = 2; kValueC = 3; } - bitmap Bitmap16MaskMap : BITMAP16 { + bitmap Bitmap16MaskMap : bitmap16 { kMaskVal1 = 0x1; kMaskVal2 = 0x2; kMaskVal3 = 0x4; kMaskVal4 = 0x4000; } - bitmap Bitmap32MaskMap : BITMAP32 { + bitmap Bitmap32MaskMap : bitmap32 { kMaskVal1 = 0x1; kMaskVal2 = 0x2; kMaskVal3 = 0x4; kMaskVal4 = 0x40000000; } - bitmap Bitmap64MaskMap : BITMAP64 { + bitmap Bitmap64MaskMap : bitmap64 { kMaskVal1 = 0x1; kMaskVal2 = 0x2; kMaskVal3 = 0x4; kMaskVal4 = 0x4000000000000000; } - bitmap Bitmap8MaskMap : BITMAP8 { + bitmap Bitmap8MaskMap : bitmap8 { kMaskVal1 = 0x1; kMaskVal2 = 0x2; kMaskVal3 = 0x4; kMaskVal4 = 0x40; } - bitmap SimpleBitmap : BITMAP8 { + bitmap SimpleBitmap : bitmap8 { kValueA = 0x1; kValueB = 0x2; kValueC = 0x4; @@ -7018,8 +7020,8 @@ client cluster UnitTesting = 4294048773 { } /** The Fault Injection Cluster provide a means for a test harness to configure faults(for example triggering a fault in the system). */ -client cluster FaultInjection = 4294048774 { - enum FaultType : ENUM8 { +internal client cluster FaultInjection = 4294048774 { + enum FaultType : enum8 { kUnspecified = 0; kSystemFault = 1; kInetFault = 2; diff --git a/src/controller/java/zap-generated/chip/devicecontroller/ChipIdLookup.java b/src/controller/java/zap-generated/chip/devicecontroller/ChipIdLookup.java deleted file mode 100644 index b5f120c17b55bd..00000000000000 --- a/src/controller/java/zap-generated/chip/devicecontroller/ChipIdLookup.java +++ /dev/null @@ -1,4309 +0,0 @@ -/* - * - * Copyright (c) 2022 Project CHIP Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// THIS FILE IS GENERATED BY ZAP - -package chip.devicecontroller; - -public final class ChipIdLookup { - /** - * Translates cluster ID to a cluster name in upper camel case. If no matching ID is found, - * returns an empty string. - */ - public static String clusterIdToName(long clusterId) { - if (clusterId == 3L) { - return "Identify"; - } - if (clusterId == 4L) { - return "Groups"; - } - if (clusterId == 5L) { - return "Scenes"; - } - if (clusterId == 6L) { - return "OnOff"; - } - if (clusterId == 7L) { - return "OnOffSwitchConfiguration"; - } - if (clusterId == 8L) { - return "LevelControl"; - } - if (clusterId == 15L) { - return "BinaryInputBasic"; - } - if (clusterId == 29L) { - return "Descriptor"; - } - if (clusterId == 30L) { - return "Binding"; - } - if (clusterId == 31L) { - return "AccessControl"; - } - if (clusterId == 37L) { - return "Actions"; - } - if (clusterId == 40L) { - return "BasicInformation"; - } - if (clusterId == 41L) { - return "OtaSoftwareUpdateProvider"; - } - if (clusterId == 42L) { - return "OtaSoftwareUpdateRequestor"; - } - if (clusterId == 43L) { - return "LocalizationConfiguration"; - } - if (clusterId == 44L) { - return "TimeFormatLocalization"; - } - if (clusterId == 45L) { - return "UnitLocalization"; - } - if (clusterId == 46L) { - return "PowerSourceConfiguration"; - } - if (clusterId == 47L) { - return "PowerSource"; - } - if (clusterId == 48L) { - return "GeneralCommissioning"; - } - if (clusterId == 49L) { - return "NetworkCommissioning"; - } - if (clusterId == 50L) { - return "DiagnosticLogs"; - } - if (clusterId == 51L) { - return "GeneralDiagnostics"; - } - if (clusterId == 52L) { - return "SoftwareDiagnostics"; - } - if (clusterId == 53L) { - return "ThreadNetworkDiagnostics"; - } - if (clusterId == 54L) { - return "WiFiNetworkDiagnostics"; - } - if (clusterId == 55L) { - return "EthernetNetworkDiagnostics"; - } - if (clusterId == 57L) { - return "BridgedDeviceBasicInformation"; - } - if (clusterId == 59L) { - return "Switch"; - } - if (clusterId == 60L) { - return "AdministratorCommissioning"; - } - if (clusterId == 62L) { - return "OperationalCredentials"; - } - if (clusterId == 63L) { - return "GroupKeyManagement"; - } - if (clusterId == 64L) { - return "FixedLabel"; - } - if (clusterId == 65L) { - return "UserLabel"; - } - if (clusterId == 69L) { - return "BooleanState"; - } - if (clusterId == 80L) { - return "ModeSelect"; - } - if (clusterId == 257L) { - return "DoorLock"; - } - if (clusterId == 258L) { - return "WindowCovering"; - } - if (clusterId == 259L) { - return "BarrierControl"; - } - if (clusterId == 512L) { - return "PumpConfigurationAndControl"; - } - if (clusterId == 513L) { - return "Thermostat"; - } - if (clusterId == 514L) { - return "FanControl"; - } - if (clusterId == 516L) { - return "ThermostatUserInterfaceConfiguration"; - } - if (clusterId == 768L) { - return "ColorControl"; - } - if (clusterId == 769L) { - return "BallastConfiguration"; - } - if (clusterId == 1024L) { - return "IlluminanceMeasurement"; - } - if (clusterId == 1026L) { - return "TemperatureMeasurement"; - } - if (clusterId == 1027L) { - return "PressureMeasurement"; - } - if (clusterId == 1028L) { - return "FlowMeasurement"; - } - if (clusterId == 1029L) { - return "RelativeHumidityMeasurement"; - } - if (clusterId == 1030L) { - return "OccupancySensing"; - } - if (clusterId == 1283L) { - return "WakeOnLan"; - } - if (clusterId == 1284L) { - return "Channel"; - } - if (clusterId == 1285L) { - return "TargetNavigator"; - } - if (clusterId == 1286L) { - return "MediaPlayback"; - } - if (clusterId == 1287L) { - return "MediaInput"; - } - if (clusterId == 1288L) { - return "LowPower"; - } - if (clusterId == 1289L) { - return "KeypadInput"; - } - if (clusterId == 1290L) { - return "ContentLauncher"; - } - if (clusterId == 1291L) { - return "AudioOutput"; - } - if (clusterId == 1292L) { - return "ApplicationLauncher"; - } - if (clusterId == 1293L) { - return "ApplicationBasic"; - } - if (clusterId == 1294L) { - return "AccountLogin"; - } - if (clusterId == 2820L) { - return "ElectricalMeasurement"; - } - if (clusterId == 4166L) { - return "ClientMonitoring"; - } - if (clusterId == 4294048773L) { - return "UnitTesting"; - } - return ""; - } - - /** - * Translates cluster ID and attribute ID to an attribute name in upper camel case. If no matching - * IDs are found, returns an empty string. - */ - public static String attributeIdToName(long clusterId, long attributeId) { - if (clusterId == 3L) { - if (attributeId == 0L) { - return "IdentifyTime"; - } - if (attributeId == 1L) { - return "IdentifyType"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 4L) { - if (attributeId == 0L) { - return "NameSupport"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 5L) { - if (attributeId == 0L) { - return "SceneCount"; - } - if (attributeId == 1L) { - return "CurrentScene"; - } - if (attributeId == 2L) { - return "CurrentGroup"; - } - if (attributeId == 3L) { - return "SceneValid"; - } - if (attributeId == 4L) { - return "NameSupport"; - } - if (attributeId == 5L) { - return "LastConfiguredBy"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 6L) { - if (attributeId == 0L) { - return "OnOff"; - } - if (attributeId == 16384L) { - return "GlobalSceneControl"; - } - if (attributeId == 16385L) { - return "OnTime"; - } - if (attributeId == 16386L) { - return "OffWaitTime"; - } - if (attributeId == 16387L) { - return "StartUpOnOff"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 7L) { - if (attributeId == 0L) { - return "SwitchType"; - } - if (attributeId == 16L) { - return "SwitchActions"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 8L) { - if (attributeId == 0L) { - return "CurrentLevel"; - } - if (attributeId == 1L) { - return "RemainingTime"; - } - if (attributeId == 2L) { - return "MinLevel"; - } - if (attributeId == 3L) { - return "MaxLevel"; - } - if (attributeId == 4L) { - return "CurrentFrequency"; - } - if (attributeId == 5L) { - return "MinFrequency"; - } - if (attributeId == 6L) { - return "MaxFrequency"; - } - if (attributeId == 15L) { - return "Options"; - } - if (attributeId == 16L) { - return "OnOffTransitionTime"; - } - if (attributeId == 17L) { - return "OnLevel"; - } - if (attributeId == 18L) { - return "OnTransitionTime"; - } - if (attributeId == 19L) { - return "OffTransitionTime"; - } - if (attributeId == 20L) { - return "DefaultMoveRate"; - } - if (attributeId == 16384L) { - return "StartUpCurrentLevel"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 15L) { - if (attributeId == 4L) { - return "ActiveText"; - } - if (attributeId == 28L) { - return "Description"; - } - if (attributeId == 46L) { - return "InactiveText"; - } - if (attributeId == 81L) { - return "OutOfService"; - } - if (attributeId == 84L) { - return "Polarity"; - } - if (attributeId == 85L) { - return "PresentValue"; - } - if (attributeId == 103L) { - return "Reliability"; - } - if (attributeId == 111L) { - return "StatusFlags"; - } - if (attributeId == 256L) { - return "ApplicationType"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 29L) { - if (attributeId == 0L) { - return "DeviceTypeList"; - } - if (attributeId == 1L) { - return "ServerList"; - } - if (attributeId == 2L) { - return "ClientList"; - } - if (attributeId == 3L) { - return "PartsList"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 30L) { - if (attributeId == 0L) { - return "Binding"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 31L) { - if (attributeId == 0L) { - return "Acl"; - } - if (attributeId == 1L) { - return "Extension"; - } - if (attributeId == 2L) { - return "SubjectsPerAccessControlEntry"; - } - if (attributeId == 3L) { - return "TargetsPerAccessControlEntry"; - } - if (attributeId == 4L) { - return "AccessControlEntriesPerFabric"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 37L) { - if (attributeId == 0L) { - return "ActionList"; - } - if (attributeId == 1L) { - return "EndpointLists"; - } - if (attributeId == 2L) { - return "SetupURL"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 40L) { - if (attributeId == 0L) { - return "DataModelRevision"; - } - if (attributeId == 1L) { - return "VendorName"; - } - if (attributeId == 2L) { - return "VendorID"; - } - if (attributeId == 3L) { - return "ProductName"; - } - if (attributeId == 4L) { - return "ProductID"; - } - if (attributeId == 5L) { - return "NodeLabel"; - } - if (attributeId == 6L) { - return "Location"; - } - if (attributeId == 7L) { - return "HardwareVersion"; - } - if (attributeId == 8L) { - return "HardwareVersionString"; - } - if (attributeId == 9L) { - return "SoftwareVersion"; - } - if (attributeId == 10L) { - return "SoftwareVersionString"; - } - if (attributeId == 11L) { - return "ManufacturingDate"; - } - if (attributeId == 12L) { - return "PartNumber"; - } - if (attributeId == 13L) { - return "ProductURL"; - } - if (attributeId == 14L) { - return "ProductLabel"; - } - if (attributeId == 15L) { - return "SerialNumber"; - } - if (attributeId == 16L) { - return "LocalConfigDisabled"; - } - if (attributeId == 17L) { - return "Reachable"; - } - if (attributeId == 18L) { - return "UniqueID"; - } - if (attributeId == 19L) { - return "CapabilityMinima"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 41L) { - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 42L) { - if (attributeId == 0L) { - return "DefaultOTAProviders"; - } - if (attributeId == 1L) { - return "UpdatePossible"; - } - if (attributeId == 2L) { - return "UpdateState"; - } - if (attributeId == 3L) { - return "UpdateStateProgress"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 43L) { - if (attributeId == 0L) { - return "ActiveLocale"; - } - if (attributeId == 1L) { - return "SupportedLocales"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 44L) { - if (attributeId == 0L) { - return "HourFormat"; - } - if (attributeId == 1L) { - return "ActiveCalendarType"; - } - if (attributeId == 2L) { - return "SupportedCalendarTypes"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 45L) { - if (attributeId == 0L) { - return "TemperatureUnit"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 46L) { - if (attributeId == 0L) { - return "Sources"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 47L) { - if (attributeId == 0L) { - return "Status"; - } - if (attributeId == 1L) { - return "Order"; - } - if (attributeId == 2L) { - return "Description"; - } - if (attributeId == 3L) { - return "WiredAssessedInputVoltage"; - } - if (attributeId == 4L) { - return "WiredAssessedInputFrequency"; - } - if (attributeId == 5L) { - return "WiredCurrentType"; - } - if (attributeId == 6L) { - return "WiredAssessedCurrent"; - } - if (attributeId == 7L) { - return "WiredNominalVoltage"; - } - if (attributeId == 8L) { - return "WiredMaximumCurrent"; - } - if (attributeId == 9L) { - return "WiredPresent"; - } - if (attributeId == 10L) { - return "ActiveWiredFaults"; - } - if (attributeId == 11L) { - return "BatVoltage"; - } - if (attributeId == 12L) { - return "BatPercentRemaining"; - } - if (attributeId == 13L) { - return "BatTimeRemaining"; - } - if (attributeId == 14L) { - return "BatChargeLevel"; - } - if (attributeId == 15L) { - return "BatReplacementNeeded"; - } - if (attributeId == 16L) { - return "BatReplaceability"; - } - if (attributeId == 17L) { - return "BatPresent"; - } - if (attributeId == 18L) { - return "ActiveBatFaults"; - } - if (attributeId == 19L) { - return "BatReplacementDescription"; - } - if (attributeId == 20L) { - return "BatCommonDesignation"; - } - if (attributeId == 21L) { - return "BatANSIDesignation"; - } - if (attributeId == 22L) { - return "BatIECDesignation"; - } - if (attributeId == 23L) { - return "BatApprovedChemistry"; - } - if (attributeId == 24L) { - return "BatCapacity"; - } - if (attributeId == 25L) { - return "BatQuantity"; - } - if (attributeId == 26L) { - return "BatChargeState"; - } - if (attributeId == 27L) { - return "BatTimeToFullCharge"; - } - if (attributeId == 28L) { - return "BatFunctionalWhileCharging"; - } - if (attributeId == 29L) { - return "BatChargingCurrent"; - } - if (attributeId == 30L) { - return "ActiveBatChargeFaults"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 48L) { - if (attributeId == 0L) { - return "Breadcrumb"; - } - if (attributeId == 1L) { - return "BasicCommissioningInfo"; - } - if (attributeId == 2L) { - return "RegulatoryConfig"; - } - if (attributeId == 3L) { - return "LocationCapability"; - } - if (attributeId == 4L) { - return "SupportsConcurrentConnection"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 49L) { - if (attributeId == 0L) { - return "MaxNetworks"; - } - if (attributeId == 1L) { - return "Networks"; - } - if (attributeId == 2L) { - return "ScanMaxTimeSeconds"; - } - if (attributeId == 3L) { - return "ConnectMaxTimeSeconds"; - } - if (attributeId == 4L) { - return "InterfaceEnabled"; - } - if (attributeId == 5L) { - return "LastNetworkingStatus"; - } - if (attributeId == 6L) { - return "LastNetworkID"; - } - if (attributeId == 7L) { - return "LastConnectErrorValue"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 50L) { - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 51L) { - if (attributeId == 0L) { - return "NetworkInterfaces"; - } - if (attributeId == 1L) { - return "RebootCount"; - } - if (attributeId == 2L) { - return "UpTime"; - } - if (attributeId == 3L) { - return "TotalOperationalHours"; - } - if (attributeId == 4L) { - return "BootReason"; - } - if (attributeId == 5L) { - return "ActiveHardwareFaults"; - } - if (attributeId == 6L) { - return "ActiveRadioFaults"; - } - if (attributeId == 7L) { - return "ActiveNetworkFaults"; - } - if (attributeId == 8L) { - return "TestEventTriggersEnabled"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 52L) { - if (attributeId == 0L) { - return "ThreadMetrics"; - } - if (attributeId == 1L) { - return "CurrentHeapFree"; - } - if (attributeId == 2L) { - return "CurrentHeapUsed"; - } - if (attributeId == 3L) { - return "CurrentHeapHighWatermark"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 53L) { - if (attributeId == 0L) { - return "Channel"; - } - if (attributeId == 1L) { - return "RoutingRole"; - } - if (attributeId == 2L) { - return "NetworkName"; - } - if (attributeId == 3L) { - return "PanId"; - } - if (attributeId == 4L) { - return "ExtendedPanId"; - } - if (attributeId == 5L) { - return "MeshLocalPrefix"; - } - if (attributeId == 6L) { - return "OverrunCount"; - } - if (attributeId == 7L) { - return "NeighborTable"; - } - if (attributeId == 8L) { - return "RouteTable"; - } - if (attributeId == 9L) { - return "PartitionId"; - } - if (attributeId == 10L) { - return "Weighting"; - } - if (attributeId == 11L) { - return "DataVersion"; - } - if (attributeId == 12L) { - return "StableDataVersion"; - } - if (attributeId == 13L) { - return "LeaderRouterId"; - } - if (attributeId == 14L) { - return "DetachedRoleCount"; - } - if (attributeId == 15L) { - return "ChildRoleCount"; - } - if (attributeId == 16L) { - return "RouterRoleCount"; - } - if (attributeId == 17L) { - return "LeaderRoleCount"; - } - if (attributeId == 18L) { - return "AttachAttemptCount"; - } - if (attributeId == 19L) { - return "PartitionIdChangeCount"; - } - if (attributeId == 20L) { - return "BetterPartitionAttachAttemptCount"; - } - if (attributeId == 21L) { - return "ParentChangeCount"; - } - if (attributeId == 22L) { - return "TxTotalCount"; - } - if (attributeId == 23L) { - return "TxUnicastCount"; - } - if (attributeId == 24L) { - return "TxBroadcastCount"; - } - if (attributeId == 25L) { - return "TxAckRequestedCount"; - } - if (attributeId == 26L) { - return "TxAckedCount"; - } - if (attributeId == 27L) { - return "TxNoAckRequestedCount"; - } - if (attributeId == 28L) { - return "TxDataCount"; - } - if (attributeId == 29L) { - return "TxDataPollCount"; - } - if (attributeId == 30L) { - return "TxBeaconCount"; - } - if (attributeId == 31L) { - return "TxBeaconRequestCount"; - } - if (attributeId == 32L) { - return "TxOtherCount"; - } - if (attributeId == 33L) { - return "TxRetryCount"; - } - if (attributeId == 34L) { - return "TxDirectMaxRetryExpiryCount"; - } - if (attributeId == 35L) { - return "TxIndirectMaxRetryExpiryCount"; - } - if (attributeId == 36L) { - return "TxErrCcaCount"; - } - if (attributeId == 37L) { - return "TxErrAbortCount"; - } - if (attributeId == 38L) { - return "TxErrBusyChannelCount"; - } - if (attributeId == 39L) { - return "RxTotalCount"; - } - if (attributeId == 40L) { - return "RxUnicastCount"; - } - if (attributeId == 41L) { - return "RxBroadcastCount"; - } - if (attributeId == 42L) { - return "RxDataCount"; - } - if (attributeId == 43L) { - return "RxDataPollCount"; - } - if (attributeId == 44L) { - return "RxBeaconCount"; - } - if (attributeId == 45L) { - return "RxBeaconRequestCount"; - } - if (attributeId == 46L) { - return "RxOtherCount"; - } - if (attributeId == 47L) { - return "RxAddressFilteredCount"; - } - if (attributeId == 48L) { - return "RxDestAddrFilteredCount"; - } - if (attributeId == 49L) { - return "RxDuplicatedCount"; - } - if (attributeId == 50L) { - return "RxErrNoFrameCount"; - } - if (attributeId == 51L) { - return "RxErrUnknownNeighborCount"; - } - if (attributeId == 52L) { - return "RxErrInvalidSrcAddrCount"; - } - if (attributeId == 53L) { - return "RxErrSecCount"; - } - if (attributeId == 54L) { - return "RxErrFcsCount"; - } - if (attributeId == 55L) { - return "RxErrOtherCount"; - } - if (attributeId == 56L) { - return "ActiveTimestamp"; - } - if (attributeId == 57L) { - return "PendingTimestamp"; - } - if (attributeId == 58L) { - return "Delay"; - } - if (attributeId == 59L) { - return "SecurityPolicy"; - } - if (attributeId == 60L) { - return "ChannelPage0Mask"; - } - if (attributeId == 61L) { - return "OperationalDatasetComponents"; - } - if (attributeId == 62L) { - return "ActiveNetworkFaultsList"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 54L) { - if (attributeId == 0L) { - return "Bssid"; - } - if (attributeId == 1L) { - return "SecurityType"; - } - if (attributeId == 2L) { - return "WiFiVersion"; - } - if (attributeId == 3L) { - return "ChannelNumber"; - } - if (attributeId == 4L) { - return "Rssi"; - } - if (attributeId == 5L) { - return "BeaconLostCount"; - } - if (attributeId == 6L) { - return "BeaconRxCount"; - } - if (attributeId == 7L) { - return "PacketMulticastRxCount"; - } - if (attributeId == 8L) { - return "PacketMulticastTxCount"; - } - if (attributeId == 9L) { - return "PacketUnicastRxCount"; - } - if (attributeId == 10L) { - return "PacketUnicastTxCount"; - } - if (attributeId == 11L) { - return "CurrentMaxRate"; - } - if (attributeId == 12L) { - return "OverrunCount"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 55L) { - if (attributeId == 0L) { - return "PHYRate"; - } - if (attributeId == 1L) { - return "FullDuplex"; - } - if (attributeId == 2L) { - return "PacketRxCount"; - } - if (attributeId == 3L) { - return "PacketTxCount"; - } - if (attributeId == 4L) { - return "TxErrCount"; - } - if (attributeId == 5L) { - return "CollisionCount"; - } - if (attributeId == 6L) { - return "OverrunCount"; - } - if (attributeId == 7L) { - return "CarrierDetect"; - } - if (attributeId == 8L) { - return "TimeSinceReset"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 57L) { - if (attributeId == 1L) { - return "VendorName"; - } - if (attributeId == 2L) { - return "VendorID"; - } - if (attributeId == 3L) { - return "ProductName"; - } - if (attributeId == 5L) { - return "NodeLabel"; - } - if (attributeId == 7L) { - return "HardwareVersion"; - } - if (attributeId == 8L) { - return "HardwareVersionString"; - } - if (attributeId == 9L) { - return "SoftwareVersion"; - } - if (attributeId == 10L) { - return "SoftwareVersionString"; - } - if (attributeId == 11L) { - return "ManufacturingDate"; - } - if (attributeId == 12L) { - return "PartNumber"; - } - if (attributeId == 13L) { - return "ProductURL"; - } - if (attributeId == 14L) { - return "ProductLabel"; - } - if (attributeId == 15L) { - return "SerialNumber"; - } - if (attributeId == 17L) { - return "Reachable"; - } - if (attributeId == 18L) { - return "UniqueID"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 59L) { - if (attributeId == 0L) { - return "NumberOfPositions"; - } - if (attributeId == 1L) { - return "CurrentPosition"; - } - if (attributeId == 2L) { - return "MultiPressMax"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 60L) { - if (attributeId == 0L) { - return "WindowStatus"; - } - if (attributeId == 1L) { - return "AdminFabricIndex"; - } - if (attributeId == 2L) { - return "AdminVendorId"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 62L) { - if (attributeId == 0L) { - return "NOCs"; - } - if (attributeId == 1L) { - return "Fabrics"; - } - if (attributeId == 2L) { - return "SupportedFabrics"; - } - if (attributeId == 3L) { - return "CommissionedFabrics"; - } - if (attributeId == 4L) { - return "TrustedRootCertificates"; - } - if (attributeId == 5L) { - return "CurrentFabricIndex"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 63L) { - if (attributeId == 0L) { - return "GroupKeyMap"; - } - if (attributeId == 1L) { - return "GroupTable"; - } - if (attributeId == 2L) { - return "MaxGroupsPerFabric"; - } - if (attributeId == 3L) { - return "MaxGroupKeysPerFabric"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 64L) { - if (attributeId == 0L) { - return "LabelList"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 65L) { - if (attributeId == 0L) { - return "LabelList"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 69L) { - if (attributeId == 0L) { - return "StateValue"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 80L) { - if (attributeId == 0L) { - return "Description"; - } - if (attributeId == 1L) { - return "StandardNamespace"; - } - if (attributeId == 2L) { - return "SupportedModes"; - } - if (attributeId == 3L) { - return "CurrentMode"; - } - if (attributeId == 4L) { - return "StartUpMode"; - } - if (attributeId == 5L) { - return "OnMode"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - if (attributeId == 4293984257L) { - return "ManufacturerExtension"; - } - return ""; - } - if (clusterId == 257L) { - if (attributeId == 0L) { - return "LockState"; - } - if (attributeId == 1L) { - return "LockType"; - } - if (attributeId == 2L) { - return "ActuatorEnabled"; - } - if (attributeId == 3L) { - return "DoorState"; - } - if (attributeId == 4L) { - return "DoorOpenEvents"; - } - if (attributeId == 5L) { - return "DoorClosedEvents"; - } - if (attributeId == 6L) { - return "OpenPeriod"; - } - if (attributeId == 17L) { - return "NumberOfTotalUsersSupported"; - } - if (attributeId == 18L) { - return "NumberOfPINUsersSupported"; - } - if (attributeId == 19L) { - return "NumberOfRFIDUsersSupported"; - } - if (attributeId == 20L) { - return "NumberOfWeekDaySchedulesSupportedPerUser"; - } - if (attributeId == 21L) { - return "NumberOfYearDaySchedulesSupportedPerUser"; - } - if (attributeId == 22L) { - return "NumberOfHolidaySchedulesSupported"; - } - if (attributeId == 23L) { - return "MaxPINCodeLength"; - } - if (attributeId == 24L) { - return "MinPINCodeLength"; - } - if (attributeId == 25L) { - return "MaxRFIDCodeLength"; - } - if (attributeId == 26L) { - return "MinRFIDCodeLength"; - } - if (attributeId == 27L) { - return "CredentialRulesSupport"; - } - if (attributeId == 28L) { - return "NumberOfCredentialsSupportedPerUser"; - } - if (attributeId == 33L) { - return "Language"; - } - if (attributeId == 34L) { - return "LEDSettings"; - } - if (attributeId == 35L) { - return "AutoRelockTime"; - } - if (attributeId == 36L) { - return "SoundVolume"; - } - if (attributeId == 37L) { - return "OperatingMode"; - } - if (attributeId == 38L) { - return "SupportedOperatingModes"; - } - if (attributeId == 39L) { - return "DefaultConfigurationRegister"; - } - if (attributeId == 40L) { - return "EnableLocalProgramming"; - } - if (attributeId == 41L) { - return "EnableOneTouchLocking"; - } - if (attributeId == 42L) { - return "EnableInsideStatusLED"; - } - if (attributeId == 43L) { - return "EnablePrivacyModeButton"; - } - if (attributeId == 44L) { - return "LocalProgrammingFeatures"; - } - if (attributeId == 48L) { - return "WrongCodeEntryLimit"; - } - if (attributeId == 49L) { - return "UserCodeTemporaryDisableTime"; - } - if (attributeId == 50L) { - return "SendPINOverTheAir"; - } - if (attributeId == 51L) { - return "RequirePINforRemoteOperation"; - } - if (attributeId == 53L) { - return "ExpiringUserTimeout"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 258L) { - if (attributeId == 0L) { - return "Type"; - } - if (attributeId == 1L) { - return "PhysicalClosedLimitLift"; - } - if (attributeId == 2L) { - return "PhysicalClosedLimitTilt"; - } - if (attributeId == 3L) { - return "CurrentPositionLift"; - } - if (attributeId == 4L) { - return "CurrentPositionTilt"; - } - if (attributeId == 5L) { - return "NumberOfActuationsLift"; - } - if (attributeId == 6L) { - return "NumberOfActuationsTilt"; - } - if (attributeId == 7L) { - return "ConfigStatus"; - } - if (attributeId == 8L) { - return "CurrentPositionLiftPercentage"; - } - if (attributeId == 9L) { - return "CurrentPositionTiltPercentage"; - } - if (attributeId == 10L) { - return "OperationalStatus"; - } - if (attributeId == 11L) { - return "TargetPositionLiftPercent100ths"; - } - if (attributeId == 12L) { - return "TargetPositionTiltPercent100ths"; - } - if (attributeId == 13L) { - return "EndProductType"; - } - if (attributeId == 14L) { - return "CurrentPositionLiftPercent100ths"; - } - if (attributeId == 15L) { - return "CurrentPositionTiltPercent100ths"; - } - if (attributeId == 16L) { - return "InstalledOpenLimitLift"; - } - if (attributeId == 17L) { - return "InstalledClosedLimitLift"; - } - if (attributeId == 18L) { - return "InstalledOpenLimitTilt"; - } - if (attributeId == 19L) { - return "InstalledClosedLimitTilt"; - } - if (attributeId == 23L) { - return "Mode"; - } - if (attributeId == 26L) { - return "SafetyStatus"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 259L) { - if (attributeId == 1L) { - return "BarrierMovingState"; - } - if (attributeId == 2L) { - return "BarrierSafetyStatus"; - } - if (attributeId == 3L) { - return "BarrierCapabilities"; - } - if (attributeId == 4L) { - return "BarrierOpenEvents"; - } - if (attributeId == 5L) { - return "BarrierCloseEvents"; - } - if (attributeId == 6L) { - return "BarrierCommandOpenEvents"; - } - if (attributeId == 7L) { - return "BarrierCommandCloseEvents"; - } - if (attributeId == 8L) { - return "BarrierOpenPeriod"; - } - if (attributeId == 9L) { - return "BarrierClosePeriod"; - } - if (attributeId == 10L) { - return "BarrierPosition"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 512L) { - if (attributeId == 0L) { - return "MaxPressure"; - } - if (attributeId == 1L) { - return "MaxSpeed"; - } - if (attributeId == 2L) { - return "MaxFlow"; - } - if (attributeId == 3L) { - return "MinConstPressure"; - } - if (attributeId == 4L) { - return "MaxConstPressure"; - } - if (attributeId == 5L) { - return "MinCompPressure"; - } - if (attributeId == 6L) { - return "MaxCompPressure"; - } - if (attributeId == 7L) { - return "MinConstSpeed"; - } - if (attributeId == 8L) { - return "MaxConstSpeed"; - } - if (attributeId == 9L) { - return "MinConstFlow"; - } - if (attributeId == 10L) { - return "MaxConstFlow"; - } - if (attributeId == 11L) { - return "MinConstTemp"; - } - if (attributeId == 12L) { - return "MaxConstTemp"; - } - if (attributeId == 16L) { - return "PumpStatus"; - } - if (attributeId == 17L) { - return "EffectiveOperationMode"; - } - if (attributeId == 18L) { - return "EffectiveControlMode"; - } - if (attributeId == 19L) { - return "Capacity"; - } - if (attributeId == 20L) { - return "Speed"; - } - if (attributeId == 21L) { - return "LifetimeRunningHours"; - } - if (attributeId == 22L) { - return "Power"; - } - if (attributeId == 23L) { - return "LifetimeEnergyConsumed"; - } - if (attributeId == 32L) { - return "OperationMode"; - } - if (attributeId == 33L) { - return "ControlMode"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 513L) { - if (attributeId == 0L) { - return "LocalTemperature"; - } - if (attributeId == 1L) { - return "OutdoorTemperature"; - } - if (attributeId == 2L) { - return "Occupancy"; - } - if (attributeId == 3L) { - return "AbsMinHeatSetpointLimit"; - } - if (attributeId == 4L) { - return "AbsMaxHeatSetpointLimit"; - } - if (attributeId == 5L) { - return "AbsMinCoolSetpointLimit"; - } - if (attributeId == 6L) { - return "AbsMaxCoolSetpointLimit"; - } - if (attributeId == 7L) { - return "PICoolingDemand"; - } - if (attributeId == 8L) { - return "PIHeatingDemand"; - } - if (attributeId == 9L) { - return "HVACSystemTypeConfiguration"; - } - if (attributeId == 16L) { - return "LocalTemperatureCalibration"; - } - if (attributeId == 17L) { - return "OccupiedCoolingSetpoint"; - } - if (attributeId == 18L) { - return "OccupiedHeatingSetpoint"; - } - if (attributeId == 19L) { - return "UnoccupiedCoolingSetpoint"; - } - if (attributeId == 20L) { - return "UnoccupiedHeatingSetpoint"; - } - if (attributeId == 21L) { - return "MinHeatSetpointLimit"; - } - if (attributeId == 22L) { - return "MaxHeatSetpointLimit"; - } - if (attributeId == 23L) { - return "MinCoolSetpointLimit"; - } - if (attributeId == 24L) { - return "MaxCoolSetpointLimit"; - } - if (attributeId == 25L) { - return "MinSetpointDeadBand"; - } - if (attributeId == 26L) { - return "RemoteSensing"; - } - if (attributeId == 27L) { - return "ControlSequenceOfOperation"; - } - if (attributeId == 28L) { - return "SystemMode"; - } - if (attributeId == 30L) { - return "ThermostatRunningMode"; - } - if (attributeId == 32L) { - return "StartOfWeek"; - } - if (attributeId == 33L) { - return "NumberOfWeeklyTransitions"; - } - if (attributeId == 34L) { - return "NumberOfDailyTransitions"; - } - if (attributeId == 35L) { - return "TemperatureSetpointHold"; - } - if (attributeId == 36L) { - return "TemperatureSetpointHoldDuration"; - } - if (attributeId == 37L) { - return "ThermostatProgrammingOperationMode"; - } - if (attributeId == 41L) { - return "ThermostatRunningState"; - } - if (attributeId == 48L) { - return "SetpointChangeSource"; - } - if (attributeId == 49L) { - return "SetpointChangeAmount"; - } - if (attributeId == 50L) { - return "SetpointChangeSourceTimestamp"; - } - if (attributeId == 52L) { - return "OccupiedSetback"; - } - if (attributeId == 53L) { - return "OccupiedSetbackMin"; - } - if (attributeId == 54L) { - return "OccupiedSetbackMax"; - } - if (attributeId == 55L) { - return "UnoccupiedSetback"; - } - if (attributeId == 56L) { - return "UnoccupiedSetbackMin"; - } - if (attributeId == 57L) { - return "UnoccupiedSetbackMax"; - } - if (attributeId == 58L) { - return "EmergencyHeatDelta"; - } - if (attributeId == 64L) { - return "ACType"; - } - if (attributeId == 65L) { - return "ACCapacity"; - } - if (attributeId == 66L) { - return "ACRefrigerantType"; - } - if (attributeId == 67L) { - return "ACCompressorType"; - } - if (attributeId == 68L) { - return "ACErrorCode"; - } - if (attributeId == 69L) { - return "ACLouverPosition"; - } - if (attributeId == 70L) { - return "ACCoilTemperature"; - } - if (attributeId == 71L) { - return "ACCapacityformat"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 514L) { - if (attributeId == 0L) { - return "FanMode"; - } - if (attributeId == 1L) { - return "FanModeSequence"; - } - if (attributeId == 2L) { - return "PercentSetting"; - } - if (attributeId == 3L) { - return "PercentCurrent"; - } - if (attributeId == 4L) { - return "SpeedMax"; - } - if (attributeId == 5L) { - return "SpeedSetting"; - } - if (attributeId == 6L) { - return "SpeedCurrent"; - } - if (attributeId == 7L) { - return "RockSupport"; - } - if (attributeId == 8L) { - return "RockSetting"; - } - if (attributeId == 9L) { - return "WindSupport"; - } - if (attributeId == 10L) { - return "WindSetting"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 516L) { - if (attributeId == 0L) { - return "TemperatureDisplayMode"; - } - if (attributeId == 1L) { - return "KeypadLockout"; - } - if (attributeId == 2L) { - return "ScheduleProgrammingVisibility"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 768L) { - if (attributeId == 0L) { - return "CurrentHue"; - } - if (attributeId == 1L) { - return "CurrentSaturation"; - } - if (attributeId == 2L) { - return "RemainingTime"; - } - if (attributeId == 3L) { - return "CurrentX"; - } - if (attributeId == 4L) { - return "CurrentY"; - } - if (attributeId == 5L) { - return "DriftCompensation"; - } - if (attributeId == 6L) { - return "CompensationText"; - } - if (attributeId == 7L) { - return "ColorTemperatureMireds"; - } - if (attributeId == 8L) { - return "ColorMode"; - } - if (attributeId == 15L) { - return "Options"; - } - if (attributeId == 16L) { - return "NumberOfPrimaries"; - } - if (attributeId == 17L) { - return "Primary1X"; - } - if (attributeId == 18L) { - return "Primary1Y"; - } - if (attributeId == 19L) { - return "Primary1Intensity"; - } - if (attributeId == 21L) { - return "Primary2X"; - } - if (attributeId == 22L) { - return "Primary2Y"; - } - if (attributeId == 23L) { - return "Primary2Intensity"; - } - if (attributeId == 25L) { - return "Primary3X"; - } - if (attributeId == 26L) { - return "Primary3Y"; - } - if (attributeId == 27L) { - return "Primary3Intensity"; - } - if (attributeId == 32L) { - return "Primary4X"; - } - if (attributeId == 33L) { - return "Primary4Y"; - } - if (attributeId == 34L) { - return "Primary4Intensity"; - } - if (attributeId == 36L) { - return "Primary5X"; - } - if (attributeId == 37L) { - return "Primary5Y"; - } - if (attributeId == 38L) { - return "Primary5Intensity"; - } - if (attributeId == 40L) { - return "Primary6X"; - } - if (attributeId == 41L) { - return "Primary6Y"; - } - if (attributeId == 42L) { - return "Primary6Intensity"; - } - if (attributeId == 48L) { - return "WhitePointX"; - } - if (attributeId == 49L) { - return "WhitePointY"; - } - if (attributeId == 50L) { - return "ColorPointRX"; - } - if (attributeId == 51L) { - return "ColorPointRY"; - } - if (attributeId == 52L) { - return "ColorPointRIntensity"; - } - if (attributeId == 54L) { - return "ColorPointGX"; - } - if (attributeId == 55L) { - return "ColorPointGY"; - } - if (attributeId == 56L) { - return "ColorPointGIntensity"; - } - if (attributeId == 58L) { - return "ColorPointBX"; - } - if (attributeId == 59L) { - return "ColorPointBY"; - } - if (attributeId == 60L) { - return "ColorPointBIntensity"; - } - if (attributeId == 16384L) { - return "EnhancedCurrentHue"; - } - if (attributeId == 16385L) { - return "EnhancedColorMode"; - } - if (attributeId == 16386L) { - return "ColorLoopActive"; - } - if (attributeId == 16387L) { - return "ColorLoopDirection"; - } - if (attributeId == 16388L) { - return "ColorLoopTime"; - } - if (attributeId == 16389L) { - return "ColorLoopStartEnhancedHue"; - } - if (attributeId == 16390L) { - return "ColorLoopStoredEnhancedHue"; - } - if (attributeId == 16394L) { - return "ColorCapabilities"; - } - if (attributeId == 16395L) { - return "ColorTempPhysicalMinMireds"; - } - if (attributeId == 16396L) { - return "ColorTempPhysicalMaxMireds"; - } - if (attributeId == 16397L) { - return "CoupleColorTempToLevelMinMireds"; - } - if (attributeId == 16400L) { - return "StartUpColorTemperatureMireds"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 769L) { - if (attributeId == 0L) { - return "PhysicalMinLevel"; - } - if (attributeId == 1L) { - return "PhysicalMaxLevel"; - } - if (attributeId == 2L) { - return "BallastStatus"; - } - if (attributeId == 16L) { - return "MinLevel"; - } - if (attributeId == 17L) { - return "MaxLevel"; - } - if (attributeId == 20L) { - return "IntrinsicBallastFactor"; - } - if (attributeId == 21L) { - return "BallastFactorAdjustment"; - } - if (attributeId == 32L) { - return "LampQuantity"; - } - if (attributeId == 48L) { - return "LampType"; - } - if (attributeId == 49L) { - return "LampManufacturer"; - } - if (attributeId == 50L) { - return "LampRatedHours"; - } - if (attributeId == 51L) { - return "LampBurnHours"; - } - if (attributeId == 52L) { - return "LampAlarmMode"; - } - if (attributeId == 53L) { - return "LampBurnHoursTripPoint"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 1024L) { - if (attributeId == 0L) { - return "MeasuredValue"; - } - if (attributeId == 1L) { - return "MinMeasuredValue"; - } - if (attributeId == 2L) { - return "MaxMeasuredValue"; - } - if (attributeId == 3L) { - return "Tolerance"; - } - if (attributeId == 4L) { - return "LightSensorType"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 1026L) { - if (attributeId == 0L) { - return "MeasuredValue"; - } - if (attributeId == 1L) { - return "MinMeasuredValue"; - } - if (attributeId == 2L) { - return "MaxMeasuredValue"; - } - if (attributeId == 3L) { - return "Tolerance"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 1027L) { - if (attributeId == 0L) { - return "MeasuredValue"; - } - if (attributeId == 1L) { - return "MinMeasuredValue"; - } - if (attributeId == 2L) { - return "MaxMeasuredValue"; - } - if (attributeId == 3L) { - return "Tolerance"; - } - if (attributeId == 16L) { - return "ScaledValue"; - } - if (attributeId == 17L) { - return "MinScaledValue"; - } - if (attributeId == 18L) { - return "MaxScaledValue"; - } - if (attributeId == 19L) { - return "ScaledTolerance"; - } - if (attributeId == 20L) { - return "Scale"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 1028L) { - if (attributeId == 0L) { - return "MeasuredValue"; - } - if (attributeId == 1L) { - return "MinMeasuredValue"; - } - if (attributeId == 2L) { - return "MaxMeasuredValue"; - } - if (attributeId == 3L) { - return "Tolerance"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 1029L) { - if (attributeId == 0L) { - return "MeasuredValue"; - } - if (attributeId == 1L) { - return "MinMeasuredValue"; - } - if (attributeId == 2L) { - return "MaxMeasuredValue"; - } - if (attributeId == 3L) { - return "Tolerance"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 1030L) { - if (attributeId == 0L) { - return "Occupancy"; - } - if (attributeId == 1L) { - return "OccupancySensorType"; - } - if (attributeId == 2L) { - return "OccupancySensorTypeBitmap"; - } - if (attributeId == 16L) { - return "PIROccupiedToUnoccupiedDelay"; - } - if (attributeId == 17L) { - return "PIRUnoccupiedToOccupiedDelay"; - } - if (attributeId == 18L) { - return "PIRUnoccupiedToOccupiedThreshold"; - } - if (attributeId == 32L) { - return "UltrasonicOccupiedToUnoccupiedDelay"; - } - if (attributeId == 33L) { - return "UltrasonicUnoccupiedToOccupiedDelay"; - } - if (attributeId == 34L) { - return "UltrasonicUnoccupiedToOccupiedThreshold"; - } - if (attributeId == 48L) { - return "PhysicalContactOccupiedToUnoccupiedDelay"; - } - if (attributeId == 49L) { - return "PhysicalContactUnoccupiedToOccupiedDelay"; - } - if (attributeId == 50L) { - return "PhysicalContactUnoccupiedToOccupiedThreshold"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 1283L) { - if (attributeId == 0L) { - return "MACAddress"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 1284L) { - if (attributeId == 0L) { - return "ChannelList"; - } - if (attributeId == 1L) { - return "Lineup"; - } - if (attributeId == 2L) { - return "CurrentChannel"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 1285L) { - if (attributeId == 0L) { - return "TargetList"; - } - if (attributeId == 1L) { - return "CurrentTarget"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 1286L) { - if (attributeId == 0L) { - return "CurrentState"; - } - if (attributeId == 1L) { - return "StartTime"; - } - if (attributeId == 2L) { - return "Duration"; - } - if (attributeId == 3L) { - return "SampledPosition"; - } - if (attributeId == 4L) { - return "PlaybackSpeed"; - } - if (attributeId == 5L) { - return "SeekRangeEnd"; - } - if (attributeId == 6L) { - return "SeekRangeStart"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 1287L) { - if (attributeId == 0L) { - return "InputList"; - } - if (attributeId == 1L) { - return "CurrentInput"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 1288L) { - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 1289L) { - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 1290L) { - if (attributeId == 0L) { - return "AcceptHeader"; - } - if (attributeId == 1L) { - return "SupportedStreamingProtocols"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 1291L) { - if (attributeId == 0L) { - return "OutputList"; - } - if (attributeId == 1L) { - return "CurrentOutput"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 1292L) { - if (attributeId == 0L) { - return "CatalogList"; - } - if (attributeId == 1L) { - return "CurrentApp"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 1293L) { - if (attributeId == 0L) { - return "VendorName"; - } - if (attributeId == 1L) { - return "VendorID"; - } - if (attributeId == 2L) { - return "ApplicationName"; - } - if (attributeId == 3L) { - return "ProductID"; - } - if (attributeId == 4L) { - return "Application"; - } - if (attributeId == 5L) { - return "Status"; - } - if (attributeId == 6L) { - return "ApplicationVersion"; - } - if (attributeId == 7L) { - return "AllowedVendorList"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 1294L) { - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 2820L) { - if (attributeId == 0L) { - return "MeasurementType"; - } - if (attributeId == 256L) { - return "DcVoltage"; - } - if (attributeId == 257L) { - return "DcVoltageMin"; - } - if (attributeId == 258L) { - return "DcVoltageMax"; - } - if (attributeId == 259L) { - return "DcCurrent"; - } - if (attributeId == 260L) { - return "DcCurrentMin"; - } - if (attributeId == 261L) { - return "DcCurrentMax"; - } - if (attributeId == 262L) { - return "DcPower"; - } - if (attributeId == 263L) { - return "DcPowerMin"; - } - if (attributeId == 264L) { - return "DcPowerMax"; - } - if (attributeId == 512L) { - return "DcVoltageMultiplier"; - } - if (attributeId == 513L) { - return "DcVoltageDivisor"; - } - if (attributeId == 514L) { - return "DcCurrentMultiplier"; - } - if (attributeId == 515L) { - return "DcCurrentDivisor"; - } - if (attributeId == 516L) { - return "DcPowerMultiplier"; - } - if (attributeId == 517L) { - return "DcPowerDivisor"; - } - if (attributeId == 768L) { - return "AcFrequency"; - } - if (attributeId == 769L) { - return "AcFrequencyMin"; - } - if (attributeId == 770L) { - return "AcFrequencyMax"; - } - if (attributeId == 771L) { - return "NeutralCurrent"; - } - if (attributeId == 772L) { - return "TotalActivePower"; - } - if (attributeId == 773L) { - return "TotalReactivePower"; - } - if (attributeId == 774L) { - return "TotalApparentPower"; - } - if (attributeId == 775L) { - return "Measured1stHarmonicCurrent"; - } - if (attributeId == 776L) { - return "Measured3rdHarmonicCurrent"; - } - if (attributeId == 777L) { - return "Measured5thHarmonicCurrent"; - } - if (attributeId == 778L) { - return "Measured7thHarmonicCurrent"; - } - if (attributeId == 779L) { - return "Measured9thHarmonicCurrent"; - } - if (attributeId == 780L) { - return "Measured11thHarmonicCurrent"; - } - if (attributeId == 781L) { - return "MeasuredPhase1stHarmonicCurrent"; - } - if (attributeId == 782L) { - return "MeasuredPhase3rdHarmonicCurrent"; - } - if (attributeId == 783L) { - return "MeasuredPhase5thHarmonicCurrent"; - } - if (attributeId == 784L) { - return "MeasuredPhase7thHarmonicCurrent"; - } - if (attributeId == 785L) { - return "MeasuredPhase9thHarmonicCurrent"; - } - if (attributeId == 786L) { - return "MeasuredPhase11thHarmonicCurrent"; - } - if (attributeId == 1024L) { - return "AcFrequencyMultiplier"; - } - if (attributeId == 1025L) { - return "AcFrequencyDivisor"; - } - if (attributeId == 1026L) { - return "PowerMultiplier"; - } - if (attributeId == 1027L) { - return "PowerDivisor"; - } - if (attributeId == 1028L) { - return "HarmonicCurrentMultiplier"; - } - if (attributeId == 1029L) { - return "PhaseHarmonicCurrentMultiplier"; - } - if (attributeId == 1280L) { - return "InstantaneousVoltage"; - } - if (attributeId == 1281L) { - return "InstantaneousLineCurrent"; - } - if (attributeId == 1282L) { - return "InstantaneousActiveCurrent"; - } - if (attributeId == 1283L) { - return "InstantaneousReactiveCurrent"; - } - if (attributeId == 1284L) { - return "InstantaneousPower"; - } - if (attributeId == 1285L) { - return "RmsVoltage"; - } - if (attributeId == 1286L) { - return "RmsVoltageMin"; - } - if (attributeId == 1287L) { - return "RmsVoltageMax"; - } - if (attributeId == 1288L) { - return "RmsCurrent"; - } - if (attributeId == 1289L) { - return "RmsCurrentMin"; - } - if (attributeId == 1290L) { - return "RmsCurrentMax"; - } - if (attributeId == 1291L) { - return "ActivePower"; - } - if (attributeId == 1292L) { - return "ActivePowerMin"; - } - if (attributeId == 1293L) { - return "ActivePowerMax"; - } - if (attributeId == 1294L) { - return "ReactivePower"; - } - if (attributeId == 1295L) { - return "ApparentPower"; - } - if (attributeId == 1296L) { - return "PowerFactor"; - } - if (attributeId == 1297L) { - return "AverageRmsVoltageMeasurementPeriod"; - } - if (attributeId == 1299L) { - return "AverageRmsUnderVoltageCounter"; - } - if (attributeId == 1300L) { - return "RmsExtremeOverVoltagePeriod"; - } - if (attributeId == 1301L) { - return "RmsExtremeUnderVoltagePeriod"; - } - if (attributeId == 1302L) { - return "RmsVoltageSagPeriod"; - } - if (attributeId == 1303L) { - return "RmsVoltageSwellPeriod"; - } - if (attributeId == 1536L) { - return "AcVoltageMultiplier"; - } - if (attributeId == 1537L) { - return "AcVoltageDivisor"; - } - if (attributeId == 1538L) { - return "AcCurrentMultiplier"; - } - if (attributeId == 1539L) { - return "AcCurrentDivisor"; - } - if (attributeId == 1540L) { - return "AcPowerMultiplier"; - } - if (attributeId == 1541L) { - return "AcPowerDivisor"; - } - if (attributeId == 1792L) { - return "OverloadAlarmsMask"; - } - if (attributeId == 1793L) { - return "VoltageOverload"; - } - if (attributeId == 1794L) { - return "CurrentOverload"; - } - if (attributeId == 2048L) { - return "AcOverloadAlarmsMask"; - } - if (attributeId == 2049L) { - return "AcVoltageOverload"; - } - if (attributeId == 2050L) { - return "AcCurrentOverload"; - } - if (attributeId == 2051L) { - return "AcActivePowerOverload"; - } - if (attributeId == 2052L) { - return "AcReactivePowerOverload"; - } - if (attributeId == 2053L) { - return "AverageRmsOverVoltage"; - } - if (attributeId == 2054L) { - return "AverageRmsUnderVoltage"; - } - if (attributeId == 2055L) { - return "RmsExtremeOverVoltage"; - } - if (attributeId == 2056L) { - return "RmsExtremeUnderVoltage"; - } - if (attributeId == 2057L) { - return "RmsVoltageSag"; - } - if (attributeId == 2058L) { - return "RmsVoltageSwell"; - } - if (attributeId == 2305L) { - return "LineCurrentPhaseB"; - } - if (attributeId == 2306L) { - return "ActiveCurrentPhaseB"; - } - if (attributeId == 2307L) { - return "ReactiveCurrentPhaseB"; - } - if (attributeId == 2309L) { - return "RmsVoltagePhaseB"; - } - if (attributeId == 2310L) { - return "RmsVoltageMinPhaseB"; - } - if (attributeId == 2311L) { - return "RmsVoltageMaxPhaseB"; - } - if (attributeId == 2312L) { - return "RmsCurrentPhaseB"; - } - if (attributeId == 2313L) { - return "RmsCurrentMinPhaseB"; - } - if (attributeId == 2314L) { - return "RmsCurrentMaxPhaseB"; - } - if (attributeId == 2315L) { - return "ActivePowerPhaseB"; - } - if (attributeId == 2316L) { - return "ActivePowerMinPhaseB"; - } - if (attributeId == 2317L) { - return "ActivePowerMaxPhaseB"; - } - if (attributeId == 2318L) { - return "ReactivePowerPhaseB"; - } - if (attributeId == 2319L) { - return "ApparentPowerPhaseB"; - } - if (attributeId == 2320L) { - return "PowerFactorPhaseB"; - } - if (attributeId == 2321L) { - return "AverageRmsVoltageMeasurementPeriodPhaseB"; - } - if (attributeId == 2322L) { - return "AverageRmsOverVoltageCounterPhaseB"; - } - if (attributeId == 2323L) { - return "AverageRmsUnderVoltageCounterPhaseB"; - } - if (attributeId == 2324L) { - return "RmsExtremeOverVoltagePeriodPhaseB"; - } - if (attributeId == 2325L) { - return "RmsExtremeUnderVoltagePeriodPhaseB"; - } - if (attributeId == 2326L) { - return "RmsVoltageSagPeriodPhaseB"; - } - if (attributeId == 2327L) { - return "RmsVoltageSwellPeriodPhaseB"; - } - if (attributeId == 2561L) { - return "LineCurrentPhaseC"; - } - if (attributeId == 2562L) { - return "ActiveCurrentPhaseC"; - } - if (attributeId == 2563L) { - return "ReactiveCurrentPhaseC"; - } - if (attributeId == 2565L) { - return "RmsVoltagePhaseC"; - } - if (attributeId == 2566L) { - return "RmsVoltageMinPhaseC"; - } - if (attributeId == 2567L) { - return "RmsVoltageMaxPhaseC"; - } - if (attributeId == 2568L) { - return "RmsCurrentPhaseC"; - } - if (attributeId == 2569L) { - return "RmsCurrentMinPhaseC"; - } - if (attributeId == 2570L) { - return "RmsCurrentMaxPhaseC"; - } - if (attributeId == 2571L) { - return "ActivePowerPhaseC"; - } - if (attributeId == 2572L) { - return "ActivePowerMinPhaseC"; - } - if (attributeId == 2573L) { - return "ActivePowerMaxPhaseC"; - } - if (attributeId == 2574L) { - return "ReactivePowerPhaseC"; - } - if (attributeId == 2575L) { - return "ApparentPowerPhaseC"; - } - if (attributeId == 2576L) { - return "PowerFactorPhaseC"; - } - if (attributeId == 2577L) { - return "AverageRmsVoltageMeasurementPeriodPhaseC"; - } - if (attributeId == 2578L) { - return "AverageRmsOverVoltageCounterPhaseC"; - } - if (attributeId == 2579L) { - return "AverageRmsUnderVoltageCounterPhaseC"; - } - if (attributeId == 2580L) { - return "RmsExtremeOverVoltagePeriodPhaseC"; - } - if (attributeId == 2581L) { - return "RmsExtremeUnderVoltagePeriodPhaseC"; - } - if (attributeId == 2582L) { - return "RmsVoltageSagPeriodPhaseC"; - } - if (attributeId == 2583L) { - return "RmsVoltageSwellPeriodPhaseC"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 4166L) { - if (attributeId == 0L) { - return "IdleModeInterval"; - } - if (attributeId == 1L) { - return "ActiveModeInterval"; - } - if (attributeId == 2L) { - return "ActiveModeThreshold"; - } - if (attributeId == 3L) { - return "ExpectedClients"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - if (clusterId == 4294048773L) { - if (attributeId == 0L) { - return "Boolean"; - } - if (attributeId == 1L) { - return "Bitmap8"; - } - if (attributeId == 2L) { - return "Bitmap16"; - } - if (attributeId == 3L) { - return "Bitmap32"; - } - if (attributeId == 4L) { - return "Bitmap64"; - } - if (attributeId == 5L) { - return "Int8u"; - } - if (attributeId == 6L) { - return "Int16u"; - } - if (attributeId == 7L) { - return "Int24u"; - } - if (attributeId == 8L) { - return "Int32u"; - } - if (attributeId == 9L) { - return "Int40u"; - } - if (attributeId == 10L) { - return "Int48u"; - } - if (attributeId == 11L) { - return "Int56u"; - } - if (attributeId == 12L) { - return "Int64u"; - } - if (attributeId == 13L) { - return "Int8s"; - } - if (attributeId == 14L) { - return "Int16s"; - } - if (attributeId == 15L) { - return "Int24s"; - } - if (attributeId == 16L) { - return "Int32s"; - } - if (attributeId == 17L) { - return "Int40s"; - } - if (attributeId == 18L) { - return "Int48s"; - } - if (attributeId == 19L) { - return "Int56s"; - } - if (attributeId == 20L) { - return "Int64s"; - } - if (attributeId == 21L) { - return "Enum8"; - } - if (attributeId == 22L) { - return "Enum16"; - } - if (attributeId == 23L) { - return "FloatSingle"; - } - if (attributeId == 24L) { - return "FloatDouble"; - } - if (attributeId == 25L) { - return "OctetString"; - } - if (attributeId == 26L) { - return "ListInt8u"; - } - if (attributeId == 27L) { - return "ListOctetString"; - } - if (attributeId == 28L) { - return "ListStructOctetString"; - } - if (attributeId == 29L) { - return "LongOctetString"; - } - if (attributeId == 30L) { - return "CharString"; - } - if (attributeId == 31L) { - return "LongCharString"; - } - if (attributeId == 32L) { - return "EpochUs"; - } - if (attributeId == 33L) { - return "EpochS"; - } - if (attributeId == 34L) { - return "VendorId"; - } - if (attributeId == 35L) { - return "ListNullablesAndOptionalsStruct"; - } - if (attributeId == 36L) { - return "EnumAttr"; - } - if (attributeId == 37L) { - return "StructAttr"; - } - if (attributeId == 38L) { - return "RangeRestrictedInt8u"; - } - if (attributeId == 39L) { - return "RangeRestrictedInt8s"; - } - if (attributeId == 40L) { - return "RangeRestrictedInt16u"; - } - if (attributeId == 41L) { - return "RangeRestrictedInt16s"; - } - if (attributeId == 42L) { - return "ListLongOctetString"; - } - if (attributeId == 43L) { - return "ListFabricScoped"; - } - if (attributeId == 48L) { - return "TimedWriteBoolean"; - } - if (attributeId == 49L) { - return "GeneralErrorBoolean"; - } - if (attributeId == 50L) { - return "ClusterErrorBoolean"; - } - if (attributeId == 255L) { - return "Unsupported"; - } - if (attributeId == 16384L) { - return "NullableBoolean"; - } - if (attributeId == 16385L) { - return "NullableBitmap8"; - } - if (attributeId == 16386L) { - return "NullableBitmap16"; - } - if (attributeId == 16387L) { - return "NullableBitmap32"; - } - if (attributeId == 16388L) { - return "NullableBitmap64"; - } - if (attributeId == 16389L) { - return "NullableInt8u"; - } - if (attributeId == 16390L) { - return "NullableInt16u"; - } - if (attributeId == 16391L) { - return "NullableInt24u"; - } - if (attributeId == 16392L) { - return "NullableInt32u"; - } - if (attributeId == 16393L) { - return "NullableInt40u"; - } - if (attributeId == 16394L) { - return "NullableInt48u"; - } - if (attributeId == 16395L) { - return "NullableInt56u"; - } - if (attributeId == 16396L) { - return "NullableInt64u"; - } - if (attributeId == 16397L) { - return "NullableInt8s"; - } - if (attributeId == 16398L) { - return "NullableInt16s"; - } - if (attributeId == 16399L) { - return "NullableInt24s"; - } - if (attributeId == 16400L) { - return "NullableInt32s"; - } - if (attributeId == 16401L) { - return "NullableInt40s"; - } - if (attributeId == 16402L) { - return "NullableInt48s"; - } - if (attributeId == 16403L) { - return "NullableInt56s"; - } - if (attributeId == 16404L) { - return "NullableInt64s"; - } - if (attributeId == 16405L) { - return "NullableEnum8"; - } - if (attributeId == 16406L) { - return "NullableEnum16"; - } - if (attributeId == 16407L) { - return "NullableFloatSingle"; - } - if (attributeId == 16408L) { - return "NullableFloatDouble"; - } - if (attributeId == 16409L) { - return "NullableOctetString"; - } - if (attributeId == 16414L) { - return "NullableCharString"; - } - if (attributeId == 16420L) { - return "NullableEnumAttr"; - } - if (attributeId == 16421L) { - return "NullableStruct"; - } - if (attributeId == 16422L) { - return "NullableRangeRestrictedInt8u"; - } - if (attributeId == 16423L) { - return "NullableRangeRestrictedInt8s"; - } - if (attributeId == 16424L) { - return "NullableRangeRestrictedInt16u"; - } - if (attributeId == 16425L) { - return "NullableRangeRestrictedInt16s"; - } - if (attributeId == 16426L) { - return "WriteOnlyInt8u"; - } - if (attributeId == 65528L) { - return "GeneratedCommandList"; - } - if (attributeId == 65529L) { - return "AcceptedCommandList"; - } - if (attributeId == 65530L) { - return "EventList"; - } - if (attributeId == 65531L) { - return "AttributeList"; - } - if (attributeId == 65532L) { - return "FeatureMap"; - } - if (attributeId == 65533L) { - return "ClusterRevision"; - } - return ""; - } - return ""; - } - - /** - * Translates cluster ID and event ID to an attribute name in upper camel case. If no matching IDs - * are found, returns an empty string. - */ - public static String eventIdToName(long clusterId, long eventId) { - if (clusterId == 3L) { - return ""; - } - if (clusterId == 4L) { - return ""; - } - if (clusterId == 5L) { - return ""; - } - if (clusterId == 6L) { - return ""; - } - if (clusterId == 7L) { - return ""; - } - if (clusterId == 8L) { - return ""; - } - if (clusterId == 15L) { - return ""; - } - if (clusterId == 29L) { - return ""; - } - if (clusterId == 30L) { - return ""; - } - if (clusterId == 31L) { - if (eventId == 0L) { - return "AccessControlEntryChanged"; - } - if (eventId == 1L) { - return "AccessControlExtensionChanged"; - } - return ""; - } - if (clusterId == 37L) { - if (eventId == 0L) { - return "StateChanged"; - } - if (eventId == 1L) { - return "ActionFailed"; - } - return ""; - } - if (clusterId == 40L) { - if (eventId == 0L) { - return "StartUp"; - } - if (eventId == 1L) { - return "ShutDown"; - } - if (eventId == 2L) { - return "Leave"; - } - if (eventId == 3L) { - return "ReachableChanged"; - } - return ""; - } - if (clusterId == 41L) { - return ""; - } - if (clusterId == 42L) { - if (eventId == 0L) { - return "StateTransition"; - } - if (eventId == 1L) { - return "VersionApplied"; - } - if (eventId == 2L) { - return "DownloadError"; - } - return ""; - } - if (clusterId == 43L) { - return ""; - } - if (clusterId == 44L) { - return ""; - } - if (clusterId == 45L) { - return ""; - } - if (clusterId == 46L) { - return ""; - } - if (clusterId == 47L) { - if (eventId == 0L) { - return "WiredFaultChange"; - } - if (eventId == 1L) { - return "BatFaultChange"; - } - if (eventId == 2L) { - return "BatChargeFaultChange"; - } - return ""; - } - if (clusterId == 48L) { - return ""; - } - if (clusterId == 49L) { - return ""; - } - if (clusterId == 50L) { - return ""; - } - if (clusterId == 51L) { - if (eventId == 0L) { - return "HardwareFaultChange"; - } - if (eventId == 1L) { - return "RadioFaultChange"; - } - if (eventId == 2L) { - return "NetworkFaultChange"; - } - if (eventId == 3L) { - return "BootReason"; - } - return ""; - } - if (clusterId == 52L) { - if (eventId == 0L) { - return "SoftwareFault"; - } - return ""; - } - if (clusterId == 53L) { - if (eventId == 0L) { - return "ConnectionStatus"; - } - if (eventId == 1L) { - return "NetworkFaultChange"; - } - return ""; - } - if (clusterId == 54L) { - if (eventId == 0L) { - return "Disconnection"; - } - if (eventId == 1L) { - return "AssociationFailure"; - } - if (eventId == 2L) { - return "ConnectionStatus"; - } - return ""; - } - if (clusterId == 55L) { - return ""; - } - if (clusterId == 57L) { - if (eventId == 0L) { - return "StartUp"; - } - if (eventId == 1L) { - return "ShutDown"; - } - if (eventId == 2L) { - return "Leave"; - } - if (eventId == 3L) { - return "ReachableChanged"; - } - return ""; - } - if (clusterId == 59L) { - if (eventId == 0L) { - return "SwitchLatched"; - } - if (eventId == 1L) { - return "InitialPress"; - } - if (eventId == 2L) { - return "LongPress"; - } - if (eventId == 3L) { - return "ShortRelease"; - } - if (eventId == 4L) { - return "LongRelease"; - } - if (eventId == 5L) { - return "MultiPressOngoing"; - } - if (eventId == 6L) { - return "MultiPressComplete"; - } - return ""; - } - if (clusterId == 60L) { - return ""; - } - if (clusterId == 62L) { - return ""; - } - if (clusterId == 63L) { - return ""; - } - if (clusterId == 64L) { - return ""; - } - if (clusterId == 65L) { - return ""; - } - if (clusterId == 69L) { - if (eventId == 0L) { - return "StateChange"; - } - return ""; - } - if (clusterId == 80L) { - return ""; - } - if (clusterId == 257L) { - if (eventId == 0L) { - return "DoorLockAlarm"; - } - if (eventId == 1L) { - return "DoorStateChange"; - } - if (eventId == 2L) { - return "LockOperation"; - } - if (eventId == 3L) { - return "LockOperationError"; - } - if (eventId == 4L) { - return "LockUserChange"; - } - return ""; - } - if (clusterId == 258L) { - return ""; - } - if (clusterId == 259L) { - return ""; - } - if (clusterId == 512L) { - if (eventId == 0L) { - return "SupplyVoltageLow"; - } - if (eventId == 1L) { - return "SupplyVoltageHigh"; - } - if (eventId == 2L) { - return "PowerMissingPhase"; - } - if (eventId == 3L) { - return "SystemPressureLow"; - } - if (eventId == 4L) { - return "SystemPressureHigh"; - } - if (eventId == 5L) { - return "DryRunning"; - } - if (eventId == 6L) { - return "MotorTemperatureHigh"; - } - if (eventId == 7L) { - return "PumpMotorFatalFailure"; - } - if (eventId == 8L) { - return "ElectronicTemperatureHigh"; - } - if (eventId == 9L) { - return "PumpBlocked"; - } - if (eventId == 10L) { - return "SensorFailure"; - } - if (eventId == 11L) { - return "ElectronicNonFatalFailure"; - } - if (eventId == 12L) { - return "ElectronicFatalFailure"; - } - if (eventId == 13L) { - return "GeneralFault"; - } - if (eventId == 14L) { - return "Leakage"; - } - if (eventId == 15L) { - return "AirDetection"; - } - if (eventId == 16L) { - return "TurbineOperation"; - } - return ""; - } - if (clusterId == 513L) { - return ""; - } - if (clusterId == 514L) { - return ""; - } - if (clusterId == 516L) { - return ""; - } - if (clusterId == 768L) { - return ""; - } - if (clusterId == 769L) { - return ""; - } - if (clusterId == 1024L) { - return ""; - } - if (clusterId == 1026L) { - return ""; - } - if (clusterId == 1027L) { - return ""; - } - if (clusterId == 1028L) { - return ""; - } - if (clusterId == 1029L) { - return ""; - } - if (clusterId == 1030L) { - return ""; - } - if (clusterId == 1283L) { - return ""; - } - if (clusterId == 1284L) { - return ""; - } - if (clusterId == 1285L) { - return ""; - } - if (clusterId == 1286L) { - return ""; - } - if (clusterId == 1287L) { - return ""; - } - if (clusterId == 1288L) { - return ""; - } - if (clusterId == 1289L) { - return ""; - } - if (clusterId == 1290L) { - return ""; - } - if (clusterId == 1291L) { - return ""; - } - if (clusterId == 1292L) { - return ""; - } - if (clusterId == 1293L) { - return ""; - } - if (clusterId == 1294L) { - return ""; - } - if (clusterId == 2820L) { - return ""; - } - if (clusterId == 4166L) { - return ""; - } - if (clusterId == 4294048773L) { - if (eventId == 1L) { - return "TestEvent"; - } - if (eventId == 2L) { - return "TestFabricScopedEvent"; - } - return ""; - } - return ""; - } -} diff --git a/src/controller/python/chip/clusters/Objects.py b/src/controller/python/chip/clusters/Objects.py index d9227c72573c3d..98a1a611ca54a5 100644 --- a/src/controller/python/chip/clusters/Objects.py +++ b/src/controller/python/chip/clusters/Objects.py @@ -14664,6 +14664,8 @@ def descriptor(cls) -> ClusterObjectDescriptor: class Bitmaps: class Feature(IntFlag): kCheckInProtocolSupport = 0x1 + kUserActiveModeTrigger = 0x2 + kLongIdleTimeSupport = 0x4 class Structs: @dataclass @@ -18770,21 +18772,21 @@ class ErrorStateEnum(MatterIntEnum): kWaterTankMissing = 0x45 kWaterTankLidOpen = 0x46 kMopCleaningPadMissing = 0x47 - # All received enum values that are not listed above will be mapped - # to kUnknownEnumValue. This is a helper enum value that should only - # be used by code to process how it handles receiving and unknown - # enum value. This specific should never be transmitted. - kUnknownEnumValue = 0, + # kUnknownEnumValue intentionally not defined. This enum never goes + # through DataModel::Decode, likely because it is a part of a derived + # cluster. As a result having kUnknownEnumValue in this enum is error + # prone, and was removed. See + # src/app/common/templates/config-data.yaml. class OperationalStateEnum(MatterIntEnum): kSeekingCharger = 0x40 kCharging = 0x41 kDocked = 0x42 - # All received enum values that are not listed above will be mapped - # to kUnknownEnumValue. This is a helper enum value that should only - # be used by code to process how it handles receiving and unknown - # enum value. This specific should never be transmitted. - kUnknownEnumValue = 0, + # kUnknownEnumValue intentionally not defined. This enum never goes + # through DataModel::Decode, likely because it is a part of a derived + # cluster. As a result having kUnknownEnumValue in this enum is error + # prone, and was removed. See + # src/app/common/templates/config-data.yaml. class Structs: @dataclass diff --git a/src/darwin/Framework/CHIP/MTRAsyncCallbackWorkQueue.h b/src/darwin/Framework/CHIP/MTRAsyncCallbackWorkQueue.h index 4615c143da6ed7..fb9571d3f72373 100644 --- a/src/darwin/Framework/CHIP/MTRAsyncCallbackWorkQueue.h +++ b/src/darwin/Framework/CHIP/MTRAsyncCallbackWorkQueue.h @@ -23,7 +23,7 @@ NS_ASSUME_NONNULL_BEGIN typedef void (^MTRAsyncCallbackReadyHandler)(id context, NSUInteger retryCount); -MTR_NEWLY_DEPRECATED("This class was not intended to be part of the public Matter API") +MTR_DEPRECATED("This class was not intended to be part of the public Matter API", ios(16.1, 17.2), macos(13.0, 14.2), watchos(9.1, 10.2), tvos(16.1, 17.2)) @interface MTRAsyncCallbackWorkQueue : NSObject - (instancetype)init NS_UNAVAILABLE; + (instancetype)new NS_UNAVAILABLE; @@ -33,7 +33,7 @@ MTR_NEWLY_DEPRECATED("This class was not intended to be part of the public Matte - (void)enqueueWorkItem:(MTRAsyncCallbackQueueWorkItem *)item; @end -MTR_NEWLY_DEPRECATED("This class was not intended to be part of the public Matter API") +MTR_DEPRECATED("This class was not intended to be part of the public Matter API", ios(16.1, 17.2), macos(13.0, 14.2), watchos(9.1, 10.2), tvos(16.1, 17.2)) @interface MTRAsyncCallbackQueueWorkItem : NSObject - (instancetype)init NS_UNAVAILABLE; + (instancetype)new NS_UNAVAILABLE; diff --git a/src/darwin/Framework/CHIP/MTRBackwardsCompatShims.h b/src/darwin/Framework/CHIP/MTRBackwardsCompatShims.h index d166c378e1a9b3..8903957414fc36 100644 --- a/src/darwin/Framework/CHIP/MTRBackwardsCompatShims.h +++ b/src/darwin/Framework/CHIP/MTRBackwardsCompatShims.h @@ -59,111 +59,104 @@ typedef NS_OPTIONS(uint8_t, MTRFanControlWindSettingMask) { * intermediate names. */ typedef NS_ENUM(uint8_t, MTROTASoftwareUpdateProviderOTAApplyUpdateAction) { - MTROTASoftwareUpdateProviderOTAApplyUpdateActionProceed MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) - MTR_NEWLY_DEPRECATED("Please use MTROTASoftwareUpdateProviderApplyUpdateActionProceed") + MTROTASoftwareUpdateProviderOTAApplyUpdateActionProceed MTR_DEPRECATED("Please use MTROTASoftwareUpdateProviderApplyUpdateActionProceed", ios(16.4, 17.2), macos(13.3, 14.2), watchos(9.4, 10.2), tvos(16.4, 17.2)) = 0x00, - MTROTASoftwareUpdateProviderOTAApplyUpdateActionAwaitNextAction MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) - MTR_NEWLY_DEPRECATED("Please use MTROTASoftwareUpdateProviderApplyUpdateActionAwaitNextAction") + MTROTASoftwareUpdateProviderOTAApplyUpdateActionAwaitNextAction + MTR_DEPRECATED("Please use MTROTASoftwareUpdateProviderApplyUpdateActionAwaitNextAction", ios(16.4, 17.2), macos(13.3, 14.2), watchos(9.4, 10.2), tvos(16.4, 17.2)) = 0x01, - MTROTASoftwareUpdateProviderOTAApplyUpdateActionDiscontinue MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) - MTR_NEWLY_DEPRECATED("Please use MTROTASoftwareUpdateProviderApplyUpdateActionDiscontinue") + MTROTASoftwareUpdateProviderOTAApplyUpdateActionDiscontinue + MTR_DEPRECATED("Please use MTROTASoftwareUpdateProviderApplyUpdateActionDiscontinue", ios(16.4, 17.2), macos(13.3, 14.2), watchos(9.4, 10.2), tvos(16.4, 17.2)) = 0x02, -} MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) - MTR_NEWLY_DEPRECATED("Please use MTROTASoftwareUpdateProviderApplyUpdateAction"); +} MTR_DEPRECATED("Please use MTROTASoftwareUpdateProviderApplyUpdateAction", ios(16.4, 17.2), macos(13.3, 14.2), watchos(9.4, 10.2), tvos(16.4, 17.2)); typedef NS_ENUM(uint8_t, MTROTASoftwareUpdateProviderOTADownloadProtocol) { - MTROTASoftwareUpdateProviderOTADownloadProtocolBDXSynchronous MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) - MTR_NEWLY_DEPRECATED("Please use MTROTASoftwareUpdateProviderDownloadProtocolBDXSynchronous") + MTROTASoftwareUpdateProviderOTADownloadProtocolBDXSynchronous + MTR_DEPRECATED("Please use MTROTASoftwareUpdateProviderDownloadProtocolBDXSynchronous", ios(16.4, 17.2), macos(13.3, 14.2), watchos(9.4, 10.2), tvos(16.4, 17.2)) = 0x00, - MTROTASoftwareUpdateProviderOTADownloadProtocolBDXAsynchronous MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) - MTR_NEWLY_DEPRECATED("Please use MTROTASoftwareUpdateProviderDownloadProtocolBDXAsynchronous") + MTROTASoftwareUpdateProviderOTADownloadProtocolBDXAsynchronous + MTR_DEPRECATED("Please use MTROTASoftwareUpdateProviderDownloadProtocolBDXAsynchronous", ios(16.4, 17.2), macos(13.3, 14.2), watchos(9.4, 10.2), tvos(16.4, 17.2)) = 0x01, - MTROTASoftwareUpdateProviderOTADownloadProtocolHTTPS MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) - MTR_NEWLY_DEPRECATED("Please use MTROTASoftwareUpdateProviderDownloadProtocolHTTPS") + MTROTASoftwareUpdateProviderOTADownloadProtocolHTTPS + MTR_DEPRECATED("Please use MTROTASoftwareUpdateProviderDownloadProtocolHTTPS", ios(16.4, 17.2), macos(13.3, 14.2), watchos(9.4, 10.2), tvos(16.4, 17.2)) = 0x02, - MTROTASoftwareUpdateProviderOTADownloadProtocolVendorSpecific MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) - MTR_NEWLY_DEPRECATED("Please use MTROTASoftwareUpdateProviderDownloadProtocolVendorSpecific") + MTROTASoftwareUpdateProviderOTADownloadProtocolVendorSpecific + MTR_DEPRECATED("Please use MTROTASoftwareUpdateProviderDownloadProtocolVendorSpecific", ios(16.4, 17.2), macos(13.3, 14.2), watchos(9.4, 10.2), tvos(16.4, 17.2)) = 0x03, -} MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) - MTR_NEWLY_DEPRECATED("Please use MTROTASoftwareUpdateProviderDownloadProtocol"); +} MTR_DEPRECATED("Please use MTROTASoftwareUpdateProviderDownloadProtocol", ios(16.4, 17.2), macos(13.3, 14.2), watchos(9.4, 10.2), tvos(16.4, 17.2)); typedef NS_ENUM(uint8_t, MTROTASoftwareUpdateProviderOTAQueryStatus) { - MTROTASoftwareUpdateProviderOTAQueryStatusUpdateAvailable MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) - MTR_NEWLY_DEPRECATED("Please use MTROTASoftwareUpdateProviderStatusUpdateAvailable") + MTROTASoftwareUpdateProviderOTAQueryStatusUpdateAvailable + MTR_DEPRECATED("Please use MTROTASoftwareUpdateProviderStatusUpdateAvailable", ios(16.4, 17.2), macos(13.3, 14.2), watchos(9.4, 10.2), tvos(16.4, 17.2)) = 0x00, - MTROTASoftwareUpdateProviderOTAQueryStatusBusy MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) - MTR_NEWLY_DEPRECATED("Please use MTROTASoftwareUpdateProviderStatusBusy") + MTROTASoftwareUpdateProviderOTAQueryStatusBusy + MTR_DEPRECATED("Please use MTROTASoftwareUpdateProviderStatusBusy", ios(16.4, 17.2), macos(13.3, 14.2), watchos(9.4, 10.2), tvos(16.4, 17.2)) = 0x01, - MTROTASoftwareUpdateProviderOTAQueryStatusNotAvailable MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) - MTR_NEWLY_DEPRECATED("Please use MTROTASoftwareUpdateProviderStatusNotAvailable") + MTROTASoftwareUpdateProviderOTAQueryStatusNotAvailable + MTR_DEPRECATED("Please use MTROTASoftwareUpdateProviderStatusNotAvailable", ios(16.4, 17.2), macos(13.3, 14.2), watchos(9.4, 10.2), tvos(16.4, 17.2)) = 0x02, - MTROTASoftwareUpdateProviderOTAQueryStatusDownloadProtocolNotSupported MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), - tvos(16.4)) MTR_NEWLY_DEPRECATED("Please use MTROTASoftwareUpdateProviderStatusDownloadProtocolNotSupported") + MTROTASoftwareUpdateProviderOTAQueryStatusDownloadProtocolNotSupported + MTR_DEPRECATED("Please use MTROTASoftwareUpdateProviderStatusDownloadProtocolNotSupported", ios(16.4, 17.2), macos(13.3, 14.2), watchos(9.4, 10.2), tvos(16.4, 17.2)) = 0x03, -} MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) - MTR_NEWLY_DEPRECATED("Please use MTROTASoftwareUpdateProviderStatus"); +} MTR_DEPRECATED("Please use MTROTASoftwareUpdateProviderStatus", ios(16.4, 17.2), macos(13.3, 14.2), watchos(9.4, 10.2), tvos(16.4, 17.2)); typedef NS_ENUM(uint8_t, MTROTASoftwareUpdateRequestorOTAAnnouncementReason) { - MTROTASoftwareUpdateRequestorOTAAnnouncementReasonSimpleAnnouncement MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), - tvos(16.4)) MTR_NEWLY_DEPRECATED("Please use MTROTASoftwareUpdateRequestorAnnouncementReasonSimpleAnnouncement") + MTROTASoftwareUpdateRequestorOTAAnnouncementReasonSimpleAnnouncement + MTR_DEPRECATED("Please use MTROTASoftwareUpdateRequestorAnnouncementReasonSimpleAnnouncement", ios(16.4, 17.2), macos(13.3, 14.2), watchos(9.4, 10.2), tvos(16.4, 17.2)) = 0x00, - MTROTASoftwareUpdateRequestorOTAAnnouncementReasonUpdateAvailable MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), - tvos(16.4)) MTR_NEWLY_DEPRECATED("Please use MTROTASoftwareUpdateRequestorAnnouncementReasonUpdateAvailable") + MTROTASoftwareUpdateRequestorOTAAnnouncementReasonUpdateAvailable + MTR_DEPRECATED("Please use MTROTASoftwareUpdateRequestorAnnouncementReasonUpdateAvailable", ios(16.4, 17.2), macos(13.3, 14.2), watchos(9.4, 10.2), tvos(16.4, 17.2)) = 0x01, - MTROTASoftwareUpdateRequestorOTAAnnouncementReasonUrgentUpdateAvailable MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), - tvos(16.4)) MTR_NEWLY_DEPRECATED("Please use MTROTASoftwareUpdateRequestorAnnouncementReasonUrgentUpdateAvailable") + MTROTASoftwareUpdateRequestorOTAAnnouncementReasonUrgentUpdateAvailable + MTR_DEPRECATED("Please use MTROTASoftwareUpdateRequestorAnnouncementReasonUrgentUpdateAvailable", ios(16.4, 17.2), macos(13.3, 14.2), watchos(9.4, 10.2), tvos(16.4, 17.2)) = 0x02, -} MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) - MTR_NEWLY_DEPRECATED("Please use MTROTASoftwareUpdateRequestorAnnouncementReason"); +} MTR_DEPRECATED("Please use MTROTASoftwareUpdateRequestorAnnouncementReason", ios(16.4, 17.2), macos(13.3, 14.2), watchos(9.4, 10.2), tvos(16.4, 17.2)); typedef NS_ENUM(uint8_t, MTROTASoftwareUpdateRequestorOTAChangeReason) { - MTROTASoftwareUpdateRequestorOTAChangeReasonUnknown MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) - MTR_NEWLY_DEPRECATED("Please use MTROTASoftwareUpdateRequestorChangeReasonUnknown") + MTROTASoftwareUpdateRequestorOTAChangeReasonUnknown + MTR_DEPRECATED("Please use MTROTASoftwareUpdateRequestorChangeReasonUnknown", ios(16.4, 17.2), macos(13.3, 14.2), watchos(9.4, 10.2), tvos(16.4, 17.2)) = 0x00, - MTROTASoftwareUpdateRequestorOTAChangeReasonSuccess MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) - MTR_NEWLY_DEPRECATED("Please use MTROTASoftwareUpdateRequestorChangeReasonSuccess") + MTROTASoftwareUpdateRequestorOTAChangeReasonSuccess + MTR_DEPRECATED("Please use MTROTASoftwareUpdateRequestorChangeReasonSuccess", ios(16.4, 17.2), macos(13.3, 14.2), watchos(9.4, 10.2), tvos(16.4, 17.2)) = 0x01, - MTROTASoftwareUpdateRequestorOTAChangeReasonFailure MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) - MTR_NEWLY_DEPRECATED("Please use MTROTASoftwareUpdateRequestorChangeReasonFailure") + MTROTASoftwareUpdateRequestorOTAChangeReasonFailure + MTR_DEPRECATED("Please use MTROTASoftwareUpdateRequestorChangeReasonFailure", ios(16.4, 17.2), macos(13.3, 14.2), watchos(9.4, 10.2), tvos(16.4, 17.2)) = 0x02, - MTROTASoftwareUpdateRequestorOTAChangeReasonTimeOut MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) - MTR_NEWLY_DEPRECATED("Please use MTROTASoftwareUpdateRequestorChangeReasonTimeOut") + MTROTASoftwareUpdateRequestorOTAChangeReasonTimeOut + MTR_DEPRECATED("Please use MTROTASoftwareUpdateRequestorChangeReasonTimeOut", ios(16.4, 17.2), macos(13.3, 14.2), watchos(9.4, 10.2), tvos(16.4, 17.2)) = 0x03, - MTROTASoftwareUpdateRequestorOTAChangeReasonDelayByProvider MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) - MTR_NEWLY_DEPRECATED("Please use MTROTASoftwareUpdateRequestorChangeReasonDelayByProvider") + MTROTASoftwareUpdateRequestorOTAChangeReasonDelayByProvider + MTR_DEPRECATED("Please use MTROTASoftwareUpdateRequestorChangeReasonDelayByProvider", ios(16.4, 17.2), macos(13.3, 14.2), watchos(9.4, 10.2), tvos(16.4, 17.2)) = 0x04, -} MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) - MTR_NEWLY_DEPRECATED("Please use MTROTASoftwareUpdateRequestorChangeReason"); +} MTR_DEPRECATED("Please use MTROTASoftwareUpdateRequestorChangeReason", ios(16.4, 17.2), macos(13.3, 14.2), watchos(9.4, 10.2), tvos(16.4, 17.2)); typedef NS_ENUM(uint8_t, MTROTASoftwareUpdateRequestorOTAUpdateState) { - MTROTASoftwareUpdateRequestorOTAUpdateStateUnknown MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) - MTR_NEWLY_DEPRECATED("Please use MTROTASoftwareUpdateRequestorUpdateStateUnknown") + MTROTASoftwareUpdateRequestorOTAUpdateStateUnknown + MTR_DEPRECATED("Please use MTROTASoftwareUpdateRequestorUpdateStateUnknown", ios(16.4, 17.2), macos(13.3, 14.2), watchos(9.4, 10.2), tvos(16.4, 17.2)) = 0x00, - MTROTASoftwareUpdateRequestorOTAUpdateStateIdle MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) - MTR_NEWLY_DEPRECATED("Please use MTROTASoftwareUpdateRequestorUpdateStateIdle") + MTROTASoftwareUpdateRequestorOTAUpdateStateIdle + MTR_DEPRECATED("Please use MTROTASoftwareUpdateRequestorUpdateStateIdle", ios(16.4, 17.2), macos(13.3, 14.2), watchos(9.4, 10.2), tvos(16.4, 17.2)) = 0x01, - MTROTASoftwareUpdateRequestorOTAUpdateStateQuerying MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) - MTR_NEWLY_DEPRECATED("Please use MTROTASoftwareUpdateRequestorUpdateStateQuerying") + MTROTASoftwareUpdateRequestorOTAUpdateStateQuerying + MTR_DEPRECATED("Please use MTROTASoftwareUpdateRequestorUpdateStateQuerying", ios(16.4, 17.2), macos(13.3, 14.2), watchos(9.4, 10.2), tvos(16.4, 17.2)) = 0x02, - MTROTASoftwareUpdateRequestorOTAUpdateStateDelayedOnQuery MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) - MTR_NEWLY_DEPRECATED("Please use MTROTASoftwareUpdateRequestorUpdateStateDelayedOnQuery") + MTROTASoftwareUpdateRequestorOTAUpdateStateDelayedOnQuery + MTR_DEPRECATED("Please use MTROTASoftwareUpdateRequestorUpdateStateDelayedOnQuery", ios(16.4, 17.2), macos(13.3, 14.2), watchos(9.4, 10.2), tvos(16.4, 17.2)) = 0x03, - MTROTASoftwareUpdateRequestorOTAUpdateStateDownloading MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) - MTR_NEWLY_DEPRECATED("Please use MTROTASoftwareUpdateRequestorUpdateStateDownloading") + MTROTASoftwareUpdateRequestorOTAUpdateStateDownloading + MTR_DEPRECATED("Please use MTROTASoftwareUpdateRequestorUpdateStateDownloading", ios(16.4, 17.2), macos(13.3, 14.2), watchos(9.4, 10.2), tvos(16.4, 17.2)) = 0x04, - MTROTASoftwareUpdateRequestorOTAUpdateStateApplying MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) - MTR_NEWLY_DEPRECATED("Please use MTROTASoftwareUpdateRequestorUpdateStateApplying") + MTROTASoftwareUpdateRequestorOTAUpdateStateApplying + MTR_DEPRECATED("Please use MTROTASoftwareUpdateRequestorUpdateStateApplying", ios(16.4, 17.2), macos(13.3, 14.2), watchos(9.4, 10.2), tvos(16.4, 17.2)) = 0x05, - MTROTASoftwareUpdateRequestorOTAUpdateStateDelayedOnApply MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) - MTR_NEWLY_DEPRECATED("Please use MTROTASoftwareUpdateRequestorUpdateStateDelayedOnApply") + MTROTASoftwareUpdateRequestorOTAUpdateStateDelayedOnApply + MTR_DEPRECATED("Please use MTROTASoftwareUpdateRequestorUpdateStateDelayedOnApply", ios(16.4, 17.2), macos(13.3, 14.2), watchos(9.4, 10.2), tvos(16.4, 17.2)) = 0x06, - MTROTASoftwareUpdateRequestorOTAUpdateStateRollingBack MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) - MTR_NEWLY_DEPRECATED("Please use MTROTASoftwareUpdateRequestorUpdateStateRollingBack") + MTROTASoftwareUpdateRequestorOTAUpdateStateRollingBack + MTR_DEPRECATED("Please use MTROTASoftwareUpdateRequestorUpdateStateRollingBack", ios(16.4, 17.2), macos(13.3, 14.2), watchos(9.4, 10.2), tvos(16.4, 17.2)) = 0x07, - MTROTASoftwareUpdateRequestorOTAUpdateStateDelayedOnUserConsent MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) - MTR_NEWLY_DEPRECATED("Please use MTROTASoftwareUpdateRequestorUpdateStateDelayedOnUserConsent") + MTROTASoftwareUpdateRequestorOTAUpdateStateDelayedOnUserConsent + MTR_DEPRECATED("Please use MTROTASoftwareUpdateRequestorUpdateStateDelayedOnUserConsent", ios(16.4, 17.2), macos(13.3, 14.2), watchos(9.4, 10.2), tvos(16.4, 17.2)) = 0x08, -} MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) - MTR_NEWLY_DEPRECATED("Please use MTROTASoftwareUpdateRequestorUpdateState"); +} MTR_DEPRECATED("Please use MTROTASoftwareUpdateRequestorUpdateState", ios(16.4, 17.2), macos(13.3, 14.2), watchos(9.4, 10.2), tvos(16.4, 17.2)); NS_ASSUME_NONNULL_END diff --git a/src/darwin/Framework/CHIP/MTRCommandTimedCheck.h b/src/darwin/Framework/CHIP/MTRCommandTimedCheck.h new file mode 100644 index 00000000000000..423a133d93dcc7 --- /dev/null +++ b/src/darwin/Framework/CHIP/MTRCommandTimedCheck.h @@ -0,0 +1,26 @@ +/** + * Copyright (c) 2023 Project CHIP Authors + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#import + +NS_ASSUME_NONNULL_BEGIN + +BOOL MTRCommandNeedsTimedInvoke(NSNumber * aClusterID, NSNumber * aCommandID); + +NS_ASSUME_NONNULL_END diff --git a/src/darwin/Framework/CHIP/MTRDefines_Internal.h b/src/darwin/Framework/CHIP/MTRDefines_Internal.h index b4e73c8f97e044..731ea45d4ce17a 100644 --- a/src/darwin/Framework/CHIP/MTRDefines_Internal.h +++ b/src/darwin/Framework/CHIP/MTRDefines_Internal.h @@ -57,3 +57,6 @@ _Pragma("clang diagnostic pop") typedef struct {} variable_hidden_by_mtr_hide; // clang-format on + +// Default timed interaction timeout, in ms, if another one is not provided. +#define MTR_DEFAULT_TIMED_INTERACTION_TIMEOUT_MS 10000 diff --git a/src/darwin/Framework/CHIP/MTRDevice.h b/src/darwin/Framework/CHIP/MTRDevice.h index 2544deaa32280a..c155936ed6cd99 100644 --- a/src/darwin/Framework/CHIP/MTRDevice.h +++ b/src/darwin/Framework/CHIP/MTRDevice.h @@ -126,32 +126,56 @@ typedef NS_ENUM(NSUInteger, MTRDeviceState) { /** * Invoke a command with a designated command path * - * @param commandFields command fields object. The object must be a data-value NSDictionary object - * as described in the MTRDeviceResponseHandler. - * The attribute must be a Structure, i.e., - * the NSDictionary MTRTypeKey key must have the value MTRStructureValueType. - * - * @param expectedValues array of dictionaries containing the expected values in the same format as - * attribute read completion handler. Requires MTRAttributePathKey values. - * See MTRDeviceResponseHandler definition for dictionary details. - * The expectedValues and expectedValueInterval arguments need to be both - * nil or both non-nil, or both will be both ignored. + * @param commandFields command fields object. If not nil, the object must be a data-value + * NSDictionary object as described in the MTRDeviceResponseHandler + * documentation. The value must be a Structure, i.e., the NSDictionary + * MTRTypeKey key must have the value MTRStructureValueType. * - * TODO: document better the expectedValues is how this command is expected to change attributes when read, and that the next - * readAttribute will get these values + * If commandFields is nil, it will be treated as a Structure with no fields. * - * @param expectedValueInterval maximum interval in milliseconds during which reads of the attribute will return the value being - * written. If the value is less than 1, both this value and expectedValues will be ignored. - If this value is greater than UINT32_MAX, it will be clamped to UINT32_MAX. + * @param expectedValues The expected values of attributes that will be affected by the command, if + * any. If these are provided, the relevant attributes will have the provided + * values when read until one of the following happens: * - * @param timeout timeout in milliseconds for timed invoke, or nil. This value must be within [1, UINT16_MAX], and will be clamped - * to this range. + * 1. Something (another invoke or a write) sets different expected values. + * 2. expectedValueInterval elapses without the device reporting the + * attributes changing their values to the expected values. + * 3. The command invoke fails. + * 4. The device reports some other values for these attributes. + * + * The dictionaries in this array are expected to be response-value + * dictionaries as documented in the documentation of + * MTRDeviceResponseHandler, and each one must have an MTRAttributePathKey. + * + * The expectedValues and expectedValueInterval arguments need to be both + * nil or both non-nil, or both will be both ignored. + * + * @param expectedValueInterval maximum interval in milliseconds during which reads of the + * attributes that had expected values provided will return the + * expected values. If the value is less than 1, both this value and + * expectedValues will be ignored. If this value is greater than + * UINT32_MAX, it will be clamped to UINT32_MAX. * * @param completion response handler will receive either values or error. A * path-specific error status from the command invocation * will result in an error being passed to the completion, so * values will only be passed in when the command succeeds. + * + * If values are passed, the array length will always be 1 and the single + * response-value in it will have an MTRCommandPathKey. If the command + * response is just a success status, there will be no MTRDataKey. If the + * command response has data fields, there will be an MTRDataKey, whose value + * will be of type MTRStructureValueType and describe the response payload. */ +- (void)invokeCommandWithEndpointID:(NSNumber *)endpointID + clusterID:(NSNumber *)clusterID + commandID:(NSNumber *)commandID + commandFields:(NSDictionary * _Nullable)commandFields + expectedValues:(NSArray *> * _Nullable)expectedValues + expectedValueInterval:(NSNumber * _Nullable)expectedValueInterval + queue:(dispatch_queue_t)queue + completion:(MTRDeviceResponseHandler)completion MTR_NEWLY_AVAILABLE; + - (void)invokeCommandWithEndpointID:(NSNumber *)endpointID clusterID:(NSNumber *)clusterID commandID:(NSNumber *)commandID diff --git a/src/darwin/Framework/CHIP/MTRDevice.mm b/src/darwin/Framework/CHIP/MTRDevice.mm index cb6c8594dfddb3..0bcac1e96bd618 100644 --- a/src/darwin/Framework/CHIP/MTRDevice.mm +++ b/src/darwin/Framework/CHIP/MTRDevice.mm @@ -24,6 +24,8 @@ #import "MTRBaseSubscriptionCallback.h" #import "MTRCluster.h" #import "MTRClusterConstants.h" +#import "MTRCommandTimedCheck.h" +#import "MTRDefines_Internal.h" #import "MTRDeviceController_Internal.h" #import "MTRDevice_Internal.h" #import "MTRError_Internal.h" @@ -194,6 +196,7 @@ @protocol MTRDeviceUnitTestDelegate - (void)unitTestReportEndForDevice:(MTRDevice *)device; - (BOOL)unitTestShouldSetUpSubscriptionForDevice:(MTRDevice *)device; - (BOOL)unitTestShouldSkipExpectedValuesForWrite:(MTRDevice *)device; +- (NSNumber *)unitTestMaxIntervalOverrideForSubscription:(MTRDevice *)device; @end #endif @@ -231,8 +234,8 @@ + (MTRDevice *)deviceWithNodeID:(NSNumber *)nodeID controller:(MTRDeviceControll #pragma mark Subscription and delegate handling // subscription intervals are in seconds -#define MTR_DEVICE_SUBSCRIPTION_MAX_INTERVAL_MIN (2) -#define MTR_DEVICE_SUBSCRIPTION_MAX_INTERVAL_MAX (60) +#define MTR_DEVICE_SUBSCRIPTION_MAX_INTERVAL_MIN (1 * 60) // 1 minute (for now) +#define MTR_DEVICE_SUBSCRIPTION_MAX_INTERVAL_MAX (60 * 60) // 60 minutes - (void)setDelegate:(id)delegate queue:(dispatch_queue_t)queue { @@ -588,6 +591,17 @@ - (void)_handleEventReport:(NSArray *> *)eventRepor // assume lock is held - (void)_setupSubscription { +#ifdef DEBUG + id delegate = _weakDelegate.strongObject; + Optional maxIntervalOverride; + if (delegate) { + if ([delegate respondsToSelector:@selector(unitTestMaxIntervalOverrideForSubscription:)]) { + NSNumber * delegateMin = [delegate unitTestMaxIntervalOverrideForSubscription:self]; + maxIntervalOverride.Emplace(delegateMin.unsignedIntValue); + } + } +#endif + os_unfair_lock_assert_owner(&self->_lock); // for now just subscribe once @@ -621,12 +635,21 @@ - (void)_setupSubscription // Select a max interval based on the device's claimed idle sleep interval. auto idleSleepInterval = std::chrono::duration_cast( session.Value()->GetRemoteMRPConfig().mIdleRetransTimeout); - if (idleSleepInterval.count() < MTR_DEVICE_SUBSCRIPTION_MAX_INTERVAL_MIN) { - idleSleepInterval = System::Clock::Seconds32(MTR_DEVICE_SUBSCRIPTION_MAX_INTERVAL_MIN); + + auto maxIntervalCeilingMin = System::Clock::Seconds32(MTR_DEVICE_SUBSCRIPTION_MAX_INTERVAL_MIN); + if (idleSleepInterval < maxIntervalCeilingMin) { + idleSleepInterval = maxIntervalCeilingMin; + } + + auto maxIntervalCeilingMax = System::Clock::Seconds32(MTR_DEVICE_SUBSCRIPTION_MAX_INTERVAL_MAX); + if (idleSleepInterval > maxIntervalCeilingMax) { + idleSleepInterval = maxIntervalCeilingMax; } - if (idleSleepInterval.count() > MTR_DEVICE_SUBSCRIPTION_MAX_INTERVAL_MAX) { - idleSleepInterval = System::Clock::Seconds32(MTR_DEVICE_SUBSCRIPTION_MAX_INTERVAL_MAX); +#ifdef DEBUG + if (maxIntervalOverride.HasValue()) { + idleSleepInterval = maxIntervalOverride.Value(); } +#endif readParams.mMaxIntervalCeilingSeconds = static_cast(idleSleepInterval.count()); readParams.mpAttributePathParamsList = attributePath.get(); @@ -1066,6 +1089,33 @@ - (void)writeAttributeWithEndpointID:(NSNumber *)endpointID [_asyncWorkQueue enqueueWorkItem:workItem descriptionWithFormat:@"write %@ %@ %@", endpointID, clusterID, attributeID]; } +- (void)invokeCommandWithEndpointID:(NSNumber *)endpointID + clusterID:(NSNumber *)clusterID + commandID:(NSNumber *)commandID + commandFields:(NSDictionary * _Nullable)commandFields + expectedValues:(NSArray *> * _Nullable)expectedValues + expectedValueInterval:(NSNumber * _Nullable)expectedValueInterval + queue:(dispatch_queue_t)queue + completion:(MTRDeviceResponseHandler)completion +{ + if (commandFields == nil) { + commandFields = @{ + MTRTypeKey : MTRStructureValueType, + MTRValueKey : @[], + }; + } + + [self invokeCommandWithEndpointID:endpointID + clusterID:clusterID + commandID:commandID + commandFields:commandFields + expectedValues:expectedValues + expectedValueInterval:expectedValueInterval + timedInvokeTimeout:nil + queue:queue + completion:completion]; +} + - (void)invokeCommandWithEndpointID:(NSNumber *)endpointID clusterID:(NSNumber *)clusterID commandID:(NSNumber *)commandID @@ -1112,6 +1162,15 @@ - (void)_invokeCommandWithEndpointID:(NSNumber *)endpointID serverSideProcessingTimeout = [serverSideProcessingTimeout copy]; timeout = [timeout copy]; + if (timeout == nil && MTRCommandNeedsTimedInvoke(clusterID, commandID)) { + timeout = @(MTR_DEFAULT_TIMED_INTERACTION_TIMEOUT_MS); + } + + NSDate * cutoffTime; + if (timeout) { + cutoffTime = [NSDate dateWithTimeIntervalSinceNow:(timeout.doubleValue / 1000)]; + } + uint64_t expectedValueID = 0; NSMutableArray * attributePaths = nil; if (expectedValues) { @@ -1130,26 +1189,51 @@ - (void)_invokeCommandWithEndpointID:(NSNumber *)endpointID *stop = YES; }]; [workItem setReadyHandler:^(MTRDevice * device, NSInteger retryCount, MTRAsyncWorkCompletionBlock workCompletion) { + auto workDone = ^(NSArray *> * _Nullable values, NSError * _Nullable error) { + dispatch_async(queue, ^{ + completion(values, error); + }); + if (error && expectedValues) { + [self removeExpectedValuesForAttributePaths:attributePaths expectedValueID:expectedValueID]; + } + workCompletion(MTRAsyncWorkComplete); + }; + + NSNumber * timedInvokeTimeout = nil; + if (timeout) { + auto * now = [NSDate now]; + if ([now compare:cutoffTime] == NSOrderedDescending) { + // Our timed invoke timeout has expired already. Command + // was queued for too long. Do not send it out. + workDone(nil, [MTRError errorForIMStatusCode:Status::Timeout]); + return; + } + + // Recompute the actual timeout left, accounting for time spent + // in our queuing and retries. + timedInvokeTimeout = @([cutoffTime timeIntervalSinceDate:now] * 1000); + } MTRBaseDevice * baseDevice = [self newBaseDevice]; [baseDevice _invokeCommandWithEndpointID:endpointID clusterID:clusterID commandID:commandID commandFields:commandFields - timedInvokeTimeout:timeout + timedInvokeTimeout:timedInvokeTimeout serverSideProcessingTimeout:serverSideProcessingTimeout queue:self.queue completion:^(NSArray *> * _Nullable values, NSError * _Nullable error) { // Log the data at the INFO level (not usually persisted permanently), // but make sure we log the work completion at the DEFAULT level. MTR_LOG_INFO("Invoke work item [%llu] received command response: %@ error: %@", workItemID, values, error); - dispatch_async(queue, ^{ - completion(values, error); - }); - if (error && expectedValues) { - [self removeExpectedValuesForAttributePaths:attributePaths expectedValueID:expectedValueID]; + // TODO: This 5-retry cap is very arbitrary. + // TODO: Should there be some sort of backoff here? + if (error != nil && error.domain == MTRInteractionErrorDomain && error.code == MTRInteractionErrorCodeBusy && retryCount < 5) { + workCompletion(MTRAsyncWorkNeedsRetry); + return; } - workCompletion(MTRAsyncWorkComplete); + + workDone(values, error); }]; }]; [_asyncWorkQueue enqueueWorkItem:workItem descriptionWithFormat:@"invoke %@ %@ %@", endpointID, clusterID, commandID]; diff --git a/src/darwin/Framework/CHIP/MTRDeviceController_Internal.h b/src/darwin/Framework/CHIP/MTRDeviceController_Internal.h index 8ba3c76e6c0f20..6bc64e03d8594a 100644 --- a/src/darwin/Framework/CHIP/MTRDeviceController_Internal.h +++ b/src/darwin/Framework/CHIP/MTRDeviceController_Internal.h @@ -60,7 +60,7 @@ NS_ASSUME_NONNULL_BEGIN /** * The ID assigned to this controller at creation time. */ -@property (readonly, nonatomic) NSUUID * uniqueIdentifier MTR_NEWLY_AVAILABLE; +@property (readonly, nonatomic) NSUUID * uniqueIdentifier; #endif // MTR_PER_CONTROLLER_STORAGE_ENABLED #pragma mark - MTRDeviceControllerFactory methods diff --git a/src/darwin/Framework/CHIP/MTRError.h b/src/darwin/Framework/CHIP/MTRError.h index 9b27c835bb674b..1abc415a35b0d1 100644 --- a/src/darwin/Framework/CHIP/MTRError.h +++ b/src/darwin/Framework/CHIP/MTRError.h @@ -86,7 +86,7 @@ typedef NS_ERROR_ENUM(MTRErrorDomain, MTRErrorCode){ * (for commissionable lookup) under the NSBonjourServices key in the * application's Info.plist. */ - MTRErrorCodeDNSSDUnauthorized MTR_NEWLY_AVAILABLE = 15, + MTRErrorCodeDNSSDUnauthorized MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)) = 15, }; // clang-format on diff --git a/src/darwin/Framework/CHIP/MTRError.mm b/src/darwin/Framework/CHIP/MTRError.mm index 906f63a1538f5b..8d326a098f3681 100644 --- a/src/darwin/Framework/CHIP/MTRError.mm +++ b/src/darwin/Framework/CHIP/MTRError.mm @@ -232,6 +232,11 @@ + (NSError *)errorForIMStatus:(const chip::app::StatusIB &)status return [NSError errorWithDomain:MTRInteractionErrorDomain code:chip::to_underlying(status.mStatus) userInfo:userInfo]; } ++ (NSError *)errorForIMStatusCode:(chip::Protocols::InteractionModel::Status)status +{ + return [self errorForIMStatus:chip::app::StatusIB(status)]; +} + + (CHIP_ERROR)errorToCHIPErrorCode:(NSError * _Nullable)error { if (error == nil) { diff --git a/src/darwin/Framework/CHIP/MTRError_Internal.h b/src/darwin/Framework/CHIP/MTRError_Internal.h index 696895f02e234d..8fb49d97f08237 100644 --- a/src/darwin/Framework/CHIP/MTRError_Internal.h +++ b/src/darwin/Framework/CHIP/MTRError_Internal.h @@ -21,6 +21,7 @@ #include #include +#include NS_ASSUME_NONNULL_BEGIN @@ -28,6 +29,7 @@ MTR_HIDDEN @interface MTRError : NSObject + (NSError * _Nullable)errorForCHIPErrorCode:(CHIP_ERROR)errorCode; + (NSError * _Nullable)errorForIMStatus:(const chip::app::StatusIB &)status; ++ (NSError * _Nullable)errorForIMStatusCode:(chip::Protocols::InteractionModel::Status)status; + (CHIP_ERROR)errorToCHIPErrorCode:(NSError * _Nullable)error; @end diff --git a/src/darwin/Framework/CHIP/templates/MTRBaseClusters-src.zapt b/src/darwin/Framework/CHIP/templates/MTRBaseClusters-src.zapt index 94a9a6e93dfc65..fa249b734ee90a 100644 --- a/src/darwin/Framework/CHIP/templates/MTRBaseClusters-src.zapt +++ b/src/darwin/Framework/CHIP/templates/MTRBaseClusters-src.zapt @@ -12,6 +12,7 @@ #import "MTRStructsObjc.h" #import "NSStringSpanConversion.h" #import "NSDataSpanConversion.h" +#import "MTRDefines_Internal.h" #include #include @@ -97,7 +98,7 @@ MTR{{cluster}}Cluster{{command}}Params auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs; {{#if mustUseTimedInvoke}} if (timedInvokeTimeoutMs == nil) { - timedInvokeTimeoutMs = @(10000); + timedInvokeTimeoutMs = @(MTR_DEFAULT_TIMED_INTERACTION_TIMEOUT_MS); } {{/if}} @@ -175,9 +176,9 @@ MTR{{cluster}}Cluster{{command}}Params timedWriteTimeout.SetValue(params.timedWriteTimeout.unsignedShortValue); } } - {{#if mustUseTimedInvoke}} + {{#if mustUseTimedWrite}} if (!timedWriteTimeout.HasValue()) { - timedWriteTimeout.SetValue(10000); + timedWriteTimeout.SetValue(MTR_DEFAULT_TIMED_INTERACTION_TIMEOUT_MS); } {{/if}} diff --git a/src/darwin/Framework/CHIP/templates/MTRClusters-src.zapt b/src/darwin/Framework/CHIP/templates/MTRClusters-src.zapt index d8ebe2f39b1f40..617beb92815d92 100644 --- a/src/darwin/Framework/CHIP/templates/MTRClusters-src.zapt +++ b/src/darwin/Framework/CHIP/templates/MTRClusters-src.zapt @@ -10,6 +10,7 @@ #import "MTRStructsObjc.h" #import "MTRCommandPayloadsObjc.h" #import "MTRLogging_Internal.h" +#import "MTRDefines_Internal.h" #include #include @@ -79,7 +80,7 @@ MTR{{cluster}}Cluster{{command}}Params auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs; {{#if mustUseTimedInvoke}} if (timedInvokeTimeoutMs == nil) { - timedInvokeTimeoutMs = @(10000); + timedInvokeTimeoutMs = @(MTR_DEFAULT_TIMED_INTERACTION_TIMEOUT_MS); } {{/if}} @@ -133,7 +134,7 @@ MTR{{cluster}}Cluster{{command}}Params NSNumber *timedWriteTimeout = params.timedWriteTimeout; {{#if mustUseTimedWrite}} if (!timedWriteTimeout) { - timedWriteTimeout = @(10000); + timedWriteTimeout = @(MTR_DEFAULT_TIMED_INTERACTION_TIMEOUT_MS); } {{/if}} diff --git a/src/darwin/Framework/CHIP/templates/MTRCommandTimedCheck-src.zapt b/src/darwin/Framework/CHIP/templates/MTRCommandTimedCheck-src.zapt new file mode 100644 index 00000000000000..ea0c2d3a92b73d --- /dev/null +++ b/src/darwin/Framework/CHIP/templates/MTRCommandTimedCheck-src.zapt @@ -0,0 +1,51 @@ +{{> header excludeZapComment=true}} + +#import "MTRCommandTimedCheck.h" + +#include +#include + +using namespace chip; +using namespace chip::app; + +{{#zcl_clusters}} +{{#if (isSupported (asUpperCamelCase name preserveAcronyms=true))}} +static BOOL CommandNeedsTimedInvokeIn{{asUpperCamelCase name preserveAcronyms=true}}Cluster(AttributeId aAttributeId) +{ + using namespace Clusters::{{asUpperCamelCase name}}; + switch (aAttributeId) { + {{#zcl_commands}} + {{#if (and (isSupported (asUpperCamelCase ../name preserveAcronyms=true) attribute=(asUpperCamelCase name preserveAcronyms=true)) + mustUseTimedInvoke)}} + case Commands::{{asUpperCamelCase name}}::Id: { + return YES; + } + {{/if}} + {{/zcl_commands}} + default: { + return NO; + } + } +} +{{/if}} +{{/zcl_clusters}} + +BOOL MTRCommandNeedsTimedInvoke(NSNumber * _Nonnull aClusterID, NSNumber * _Nonnull aCommandID) +{ + ClusterId clusterID = static_cast(aClusterID.unsignedLongLongValue); + CommandId commandID = static_cast(aCommandID.unsignedLongLongValue); + + switch (clusterID) + { + {{#zcl_clusters}} + {{#if (isSupported (asUpperCamelCase name preserveAcronyms=true))}} + case Clusters::{{asUpperCamelCase name}}::Id: { + return CommandNeedsTimedInvokeIn{{asUpperCamelCase name preserveAcronyms=true}}Cluster(commandID); + } + {{/if}} + {{/zcl_clusters}} + default: { + return NO; + } + } +} diff --git a/src/darwin/Framework/CHIP/templates/availability.yaml b/src/darwin/Framework/CHIP/templates/availability.yaml index c02f9ffcf536bd..bd7f01d8ccc31a 100644 --- a/src/darwin/Framework/CHIP/templates/availability.yaml +++ b/src/darwin/Framework/CHIP/templates/availability.yaml @@ -7581,8 +7581,12 @@ - ProxyDiscovery - ProxyValid -- release: "Future" - versions: "future" +- release: "Fall 2023 #3" + versions: + ios: "17.2" + macos: "14.2" + watchos: "10.2" + tvos: "17.2" introduced: command payloads: TimeSynchronization: @@ -7721,3 +7725,6 @@ OnOff: Feature: DeadFrontBehavior: DeadFront + +- release: "Future" + versions: "future" diff --git a/src/darwin/Framework/CHIP/templates/templates.json b/src/darwin/Framework/CHIP/templates/templates.json index 73eb9fbb986fa5..47804e519dfba7 100644 --- a/src/darwin/Framework/CHIP/templates/templates.json +++ b/src/darwin/Framework/CHIP/templates/templates.json @@ -123,6 +123,11 @@ "path": "MTRAttributeSpecifiedCheck-src.zapt", "name": "Function to check if attribute is specified", "output": "src/darwin/Framework/CHIP/zap-generated/MTRAttributeSpecifiedCheck.mm" + }, + { + "path": "MTRCommandTimedCheck-src.zapt", + "name": "Function to check if command needs timed invoke", + "output": "src/darwin/Framework/CHIP/zap-generated/MTRCommandTimedCheck.mm" } ] } diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h index c7b3d8ef2955e5..996229a68b65d7 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h +++ b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h @@ -13278,22 +13278,16 @@ typedef NS_OPTIONS(uint8_t, MTRScenesCopyMode) { } MTR_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)); typedef NS_ENUM(uint8_t, MTROnOffDelayedAllOffEffectVariant) { - MTROnOffDelayedAllOffEffectVariantDelayedOffFastFade MTR_NEWLY_AVAILABLE = 0x00, - MTROnOffDelayedAllOffEffectVariantFadeToOffIn0p8Seconds MTR_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)) - MTR_NEWLY_DEPRECATED("Please use MTROnOffDelayedAllOffEffectVariantDelayedOffFastFade") - = 0x00, + MTROnOffDelayedAllOffEffectVariantDelayedOffFastFade MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)) = 0x00, + MTROnOffDelayedAllOffEffectVariantFadeToOffIn0p8Seconds MTR_DEPRECATED("Please use MTROnOffDelayedAllOffEffectVariantDelayedOffFastFade", ios(16.1, 17.2), macos(13.0, 14.2), watchos(9.1, 10.2), tvos(16.1, 17.2)) = 0x00, MTROnOffDelayedAllOffEffectVariantNoFade MTR_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)) = 0x01, - MTROnOffDelayedAllOffEffectVariantDelayedOffSlowFade MTR_NEWLY_AVAILABLE = 0x02, - MTROnOffDelayedAllOffEffectVariant50PercentDimDownIn0p8SecondsThenFadeToOffIn12Seconds MTR_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)) - MTR_NEWLY_DEPRECATED("Please use MTROnOffDelayedAllOffEffectVariantDelayedOffSlowFade") - = 0x02, + MTROnOffDelayedAllOffEffectVariantDelayedOffSlowFade MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)) = 0x02, + MTROnOffDelayedAllOffEffectVariant50PercentDimDownIn0p8SecondsThenFadeToOffIn12Seconds MTR_DEPRECATED("Please use MTROnOffDelayedAllOffEffectVariantDelayedOffSlowFade", ios(16.1, 17.2), macos(13.0, 14.2), watchos(9.1, 10.2), tvos(16.1, 17.2)) = 0x02, } MTR_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)); typedef NS_ENUM(uint8_t, MTROnOffDyingLightEffectVariant) { - MTROnOffDyingLightEffectVariantDyingLightFadeOff MTR_NEWLY_AVAILABLE = 0x00, - MTROnOffDyingLightEffectVariant20PercenterDimUpIn0p5SecondsThenFadeToOffIn1Second MTR_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)) - MTR_NEWLY_DEPRECATED("Please use MTROnOffDyingLightEffectVariantDyingLightFadeOff") - = 0x00, + MTROnOffDyingLightEffectVariantDyingLightFadeOff MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)) = 0x00, + MTROnOffDyingLightEffectVariant20PercenterDimUpIn0p5SecondsThenFadeToOffIn1Second MTR_DEPRECATED("Please use MTROnOffDyingLightEffectVariantDyingLightFadeOff", ios(16.1, 17.2), macos(13.0, 14.2), watchos(9.1, 10.2), tvos(16.1, 17.2)) = 0x00, } MTR_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)); typedef NS_ENUM(uint8_t, MTROnOffEffectIdentifier) { @@ -13304,30 +13298,23 @@ typedef NS_ENUM(uint8_t, MTROnOffEffectIdentifier) { typedef NS_ENUM(uint8_t, MTROnOffStartUpOnOff) { MTROnOffStartUpOnOffOff MTR_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)) = 0x00, MTROnOffStartUpOnOffOn MTR_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)) = 0x01, - MTROnOffStartUpOnOffToggle MTR_NEWLY_AVAILABLE = 0x02, - MTROnOffStartUpOnOffTogglePreviousOnOff MTR_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)) - MTR_NEWLY_DEPRECATED("Please use MTROnOffStartUpOnOffToggle") - = 0x02, + MTROnOffStartUpOnOffToggle MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)) = 0x02, + MTROnOffStartUpOnOffTogglePreviousOnOff MTR_DEPRECATED("Please use MTROnOffStartUpOnOffToggle", ios(16.1, 17.2), macos(13.0, 14.2), watchos(9.1, 10.2), tvos(16.1, 17.2)) = 0x02, } MTR_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)); typedef NS_OPTIONS(uint32_t, MTROnOffFeature) { MTROnOffFeatureLighting MTR_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)) = 0x1, - MTROnOffFeatureDeadFrontBehavior MTR_NEWLY_AVAILABLE = 0x2, - MTROnOffFeatureDeadFront MTR_AVAILABLE(ios(17.1), macos(14.1), watchos(10.1), tvos(17.1)) - MTR_NEWLY_DEPRECATED("Please use MTROnOffFeatureDeadFrontBehavior") - = 0x2, + MTROnOffFeatureDeadFrontBehavior MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)) = 0x2, + MTROnOffFeatureDeadFront MTR_DEPRECATED("Please use MTROnOffFeatureDeadFrontBehavior", ios(17.1, 17.2), macos(14.1, 14.2), watchos(10.1, 10.2), tvos(17.1, 17.2)) = 0x2, } MTR_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)); typedef NS_OPTIONS(uint8_t, MTROnOffControlBitmap) { - MTROnOffControlBitmapAcceptOnlyWhenOn MTR_NEWLY_AVAILABLE = 0x1, -} MTR_NEWLY_AVAILABLE; + MTROnOffControlBitmapAcceptOnlyWhenOn MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)) = 0x1, +} MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)); typedef NS_OPTIONS(uint8_t, MTROnOffControl) { - MTROnOffControlAcceptOnlyWhenOn MTR_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)) - MTR_NEWLY_DEPRECATED("Please use MTROnOffControlBitmapAcceptOnlyWhenOn") - = 0x1, -} MTR_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)) - MTR_NEWLY_DEPRECATED("Please use MTROnOffControlBitmap"); + MTROnOffControlAcceptOnlyWhenOn MTR_DEPRECATED("Please use MTROnOffControlBitmapAcceptOnlyWhenOn", ios(16.1, 17.2), macos(13.0, 14.2), watchos(9.1, 10.2), tvos(16.1, 17.2)) = 0x1, +} MTR_DEPRECATED("Please use MTROnOffControlBitmap", ios(16.1, 17.2), macos(13.0, 14.2), watchos(9.1, 10.2), tvos(16.1, 17.2)); typedef NS_ENUM(uint8_t, MTRLevelControlMoveMode) { MTRLevelControlMoveModeUp MTR_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)) = 0x00, @@ -13465,10 +13452,10 @@ typedef NS_ENUM(uint8_t, MTRBasicInformationProductFinish) { } MTR_AVAILABLE(ios(17.0), macos(14.0), watchos(10.0), tvos(17.0)); typedef NS_ENUM(uint8_t, MTROTASoftwareUpdateProviderApplyUpdateAction) { - MTROTASoftwareUpdateProviderApplyUpdateActionProceed MTR_NEWLY_AVAILABLE = 0x00, - MTROTASoftwareUpdateProviderApplyUpdateActionAwaitNextAction MTR_NEWLY_AVAILABLE = 0x01, - MTROTASoftwareUpdateProviderApplyUpdateActionDiscontinue MTR_NEWLY_AVAILABLE = 0x02, -} MTR_NEWLY_AVAILABLE; + MTROTASoftwareUpdateProviderApplyUpdateActionProceed MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)) = 0x00, + MTROTASoftwareUpdateProviderApplyUpdateActionAwaitNextAction MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)) = 0x01, + MTROTASoftwareUpdateProviderApplyUpdateActionDiscontinue MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)) = 0x02, +} MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)); typedef NS_ENUM(uint8_t, MTROtaSoftwareUpdateProviderOTAApplyUpdateAction) { MTROtaSoftwareUpdateProviderOTAApplyUpdateActionProceed MTR_DEPRECATED("Please use MTROTASoftwareUpdateProviderApplyUpdateActionProceed", ios(16.1, 16.4), macos(13.0, 13.3), watchos(9.1, 9.4), tvos(16.1, 16.4)) = 0x00, @@ -13477,11 +13464,11 @@ typedef NS_ENUM(uint8_t, MTROtaSoftwareUpdateProviderOTAApplyUpdateAction) { } MTR_DEPRECATED("Please use MTROTASoftwareUpdateProviderApplyUpdateAction", ios(16.1, 16.4), macos(13.0, 13.3), watchos(9.1, 9.4), tvos(16.1, 16.4)); typedef NS_ENUM(uint8_t, MTROTASoftwareUpdateProviderDownloadProtocol) { - MTROTASoftwareUpdateProviderDownloadProtocolBDXSynchronous MTR_NEWLY_AVAILABLE = 0x00, - MTROTASoftwareUpdateProviderDownloadProtocolBDXAsynchronous MTR_NEWLY_AVAILABLE = 0x01, - MTROTASoftwareUpdateProviderDownloadProtocolHTTPS MTR_NEWLY_AVAILABLE = 0x02, - MTROTASoftwareUpdateProviderDownloadProtocolVendorSpecific MTR_NEWLY_AVAILABLE = 0x03, -} MTR_NEWLY_AVAILABLE; + MTROTASoftwareUpdateProviderDownloadProtocolBDXSynchronous MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)) = 0x00, + MTROTASoftwareUpdateProviderDownloadProtocolBDXAsynchronous MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)) = 0x01, + MTROTASoftwareUpdateProviderDownloadProtocolHTTPS MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)) = 0x02, + MTROTASoftwareUpdateProviderDownloadProtocolVendorSpecific MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)) = 0x03, +} MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)); typedef NS_ENUM(uint8_t, MTROtaSoftwareUpdateProviderOTADownloadProtocol) { MTROtaSoftwareUpdateProviderOTADownloadProtocolBDXSynchronous MTR_DEPRECATED("Please use MTROTASoftwareUpdateProviderDownloadProtocolBDXSynchronous", ios(16.1, 16.4), macos(13.0, 13.3), watchos(9.1, 9.4), tvos(16.1, 16.4)) = 0x00, @@ -13491,11 +13478,11 @@ typedef NS_ENUM(uint8_t, MTROtaSoftwareUpdateProviderOTADownloadProtocol) { } MTR_DEPRECATED("Please use MTROTASoftwareUpdateProviderDownloadProtocol", ios(16.1, 16.4), macos(13.0, 13.3), watchos(9.1, 9.4), tvos(16.1, 16.4)); typedef NS_ENUM(uint8_t, MTROTASoftwareUpdateProviderStatus) { - MTROTASoftwareUpdateProviderStatusUpdateAvailable MTR_NEWLY_AVAILABLE = 0x00, - MTROTASoftwareUpdateProviderStatusBusy MTR_NEWLY_AVAILABLE = 0x01, - MTROTASoftwareUpdateProviderStatusNotAvailable MTR_NEWLY_AVAILABLE = 0x02, - MTROTASoftwareUpdateProviderStatusDownloadProtocolNotSupported MTR_NEWLY_AVAILABLE = 0x03, -} MTR_NEWLY_AVAILABLE; + MTROTASoftwareUpdateProviderStatusUpdateAvailable MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)) = 0x00, + MTROTASoftwareUpdateProviderStatusBusy MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)) = 0x01, + MTROTASoftwareUpdateProviderStatusNotAvailable MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)) = 0x02, + MTROTASoftwareUpdateProviderStatusDownloadProtocolNotSupported MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)) = 0x03, +} MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)); typedef NS_ENUM(uint8_t, MTROtaSoftwareUpdateProviderOTAQueryStatus) { MTROtaSoftwareUpdateProviderOTAQueryStatusUpdateAvailable MTR_DEPRECATED("Please use MTROTASoftwareUpdateProviderStatusUpdateAvailable", ios(16.1, 16.4), macos(13.0, 13.3), watchos(9.1, 9.4), tvos(16.1, 16.4)) = 0x00, @@ -13505,10 +13492,10 @@ typedef NS_ENUM(uint8_t, MTROtaSoftwareUpdateProviderOTAQueryStatus) { } MTR_DEPRECATED("Please use MTROTASoftwareUpdateProviderStatus", ios(16.1, 16.4), macos(13.0, 13.3), watchos(9.1, 9.4), tvos(16.1, 16.4)); typedef NS_ENUM(uint8_t, MTROTASoftwareUpdateRequestorAnnouncementReason) { - MTROTASoftwareUpdateRequestorAnnouncementReasonSimpleAnnouncement MTR_NEWLY_AVAILABLE = 0x00, - MTROTASoftwareUpdateRequestorAnnouncementReasonUpdateAvailable MTR_NEWLY_AVAILABLE = 0x01, - MTROTASoftwareUpdateRequestorAnnouncementReasonUrgentUpdateAvailable MTR_NEWLY_AVAILABLE = 0x02, -} MTR_NEWLY_AVAILABLE; + MTROTASoftwareUpdateRequestorAnnouncementReasonSimpleAnnouncement MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)) = 0x00, + MTROTASoftwareUpdateRequestorAnnouncementReasonUpdateAvailable MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)) = 0x01, + MTROTASoftwareUpdateRequestorAnnouncementReasonUrgentUpdateAvailable MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)) = 0x02, +} MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)); typedef NS_ENUM(uint8_t, MTROtaSoftwareUpdateRequestorOTAAnnouncementReason) { MTROtaSoftwareUpdateRequestorOTAAnnouncementReasonSimpleAnnouncement MTR_DEPRECATED("Please use MTROTASoftwareUpdateRequestorAnnouncementReasonSimpleAnnouncement", ios(16.1, 16.4), macos(13.0, 13.3), watchos(9.1, 9.4), tvos(16.1, 16.4)) = 0x00, @@ -13517,12 +13504,12 @@ typedef NS_ENUM(uint8_t, MTROtaSoftwareUpdateRequestorOTAAnnouncementReason) { } MTR_DEPRECATED("Please use MTROTASoftwareUpdateRequestorAnnouncementReason", ios(16.1, 16.4), macos(13.0, 13.3), watchos(9.1, 9.4), tvos(16.1, 16.4)); typedef NS_ENUM(uint8_t, MTROTASoftwareUpdateRequestorChangeReason) { - MTROTASoftwareUpdateRequestorChangeReasonUnknown MTR_NEWLY_AVAILABLE = 0x00, - MTROTASoftwareUpdateRequestorChangeReasonSuccess MTR_NEWLY_AVAILABLE = 0x01, - MTROTASoftwareUpdateRequestorChangeReasonFailure MTR_NEWLY_AVAILABLE = 0x02, - MTROTASoftwareUpdateRequestorChangeReasonTimeOut MTR_NEWLY_AVAILABLE = 0x03, - MTROTASoftwareUpdateRequestorChangeReasonDelayByProvider MTR_NEWLY_AVAILABLE = 0x04, -} MTR_NEWLY_AVAILABLE; + MTROTASoftwareUpdateRequestorChangeReasonUnknown MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)) = 0x00, + MTROTASoftwareUpdateRequestorChangeReasonSuccess MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)) = 0x01, + MTROTASoftwareUpdateRequestorChangeReasonFailure MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)) = 0x02, + MTROTASoftwareUpdateRequestorChangeReasonTimeOut MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)) = 0x03, + MTROTASoftwareUpdateRequestorChangeReasonDelayByProvider MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)) = 0x04, +} MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)); typedef NS_ENUM(uint8_t, MTROtaSoftwareUpdateRequestorOTAChangeReason) { MTROtaSoftwareUpdateRequestorOTAChangeReasonUnknown MTR_DEPRECATED("Please use MTROTASoftwareUpdateRequestorChangeReasonUnknown", ios(16.1, 16.4), macos(13.0, 13.3), watchos(9.1, 9.4), tvos(16.1, 16.4)) = 0x00, @@ -13533,16 +13520,16 @@ typedef NS_ENUM(uint8_t, MTROtaSoftwareUpdateRequestorOTAChangeReason) { } MTR_DEPRECATED("Please use MTROTASoftwareUpdateRequestorChangeReason", ios(16.1, 16.4), macos(13.0, 13.3), watchos(9.1, 9.4), tvos(16.1, 16.4)); typedef NS_ENUM(uint8_t, MTROTASoftwareUpdateRequestorUpdateState) { - MTROTASoftwareUpdateRequestorUpdateStateUnknown MTR_NEWLY_AVAILABLE = 0x00, - MTROTASoftwareUpdateRequestorUpdateStateIdle MTR_NEWLY_AVAILABLE = 0x01, - MTROTASoftwareUpdateRequestorUpdateStateQuerying MTR_NEWLY_AVAILABLE = 0x02, - MTROTASoftwareUpdateRequestorUpdateStateDelayedOnQuery MTR_NEWLY_AVAILABLE = 0x03, - MTROTASoftwareUpdateRequestorUpdateStateDownloading MTR_NEWLY_AVAILABLE = 0x04, - MTROTASoftwareUpdateRequestorUpdateStateApplying MTR_NEWLY_AVAILABLE = 0x05, - MTROTASoftwareUpdateRequestorUpdateStateDelayedOnApply MTR_NEWLY_AVAILABLE = 0x06, - MTROTASoftwareUpdateRequestorUpdateStateRollingBack MTR_NEWLY_AVAILABLE = 0x07, - MTROTASoftwareUpdateRequestorUpdateStateDelayedOnUserConsent MTR_NEWLY_AVAILABLE = 0x08, -} MTR_NEWLY_AVAILABLE; + MTROTASoftwareUpdateRequestorUpdateStateUnknown MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)) = 0x00, + MTROTASoftwareUpdateRequestorUpdateStateIdle MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)) = 0x01, + MTROTASoftwareUpdateRequestorUpdateStateQuerying MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)) = 0x02, + MTROTASoftwareUpdateRequestorUpdateStateDelayedOnQuery MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)) = 0x03, + MTROTASoftwareUpdateRequestorUpdateStateDownloading MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)) = 0x04, + MTROTASoftwareUpdateRequestorUpdateStateApplying MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)) = 0x05, + MTROTASoftwareUpdateRequestorUpdateStateDelayedOnApply MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)) = 0x06, + MTROTASoftwareUpdateRequestorUpdateStateRollingBack MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)) = 0x07, + MTROTASoftwareUpdateRequestorUpdateStateDelayedOnUserConsent MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)) = 0x08, +} MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)); typedef NS_ENUM(uint8_t, MTROtaSoftwareUpdateRequestorOTAUpdateState) { MTROtaSoftwareUpdateRequestorOTAUpdateStateUnknown MTR_DEPRECATED("Please use MTROTASoftwareUpdateRequestorUpdateStateUnknown", ios(16.1, 16.4), macos(13.0, 13.3), watchos(9.1, 9.4), tvos(16.1, 16.4)) = 0x00, @@ -14251,6 +14238,8 @@ typedef NS_OPTIONS(uint32_t, MTRGroupKeyManagementFeature) { typedef NS_OPTIONS(uint32_t, MTRICDManagementFeature) { MTRICDManagementFeatureCheckInProtocolSupport MTR_PROVISIONALLY_AVAILABLE = 0x1, + MTRICDManagementFeatureUserActiveModeTrigger MTR_PROVISIONALLY_AVAILABLE = 0x2, + MTRICDManagementFeatureLongIdleTimeSupport MTR_PROVISIONALLY_AVAILABLE = 0x4, } MTR_PROVISIONALLY_AVAILABLE; typedef NS_OPTIONS(uint32_t, MTRModeSelectFeature) { diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm index b50f013f88502e..b62652b9d46429 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm +++ b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm @@ -23,6 +23,7 @@ #import "MTRClusterStateCacheContainer_Internal.h" #import "MTRCluster_Internal.h" #import "MTRCommandPayloadsObjc.h" +#import "MTRDefines_Internal.h" #import "MTRDevice_Internal.h" #import "MTRStructsObjc.h" #import "NSDataSpanConversion.h" @@ -34410,7 +34411,7 @@ - (void)openCommissioningWindowWithParams:(MTRAdministratorCommissioningClusterO auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs; if (timedInvokeTimeoutMs == nil) { - timedInvokeTimeoutMs = @(10000); + timedInvokeTimeoutMs = @(MTR_DEFAULT_TIMED_INTERACTION_TIMEOUT_MS); } using RequestType = AdministratorCommissioning::Commands::OpenCommissioningWindow::Type; @@ -34437,7 +34438,7 @@ - (void)openBasicCommissioningWindowWithParams:(MTRAdministratorCommissioningClu auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs; if (timedInvokeTimeoutMs == nil) { - timedInvokeTimeoutMs = @(10000); + timedInvokeTimeoutMs = @(MTR_DEFAULT_TIMED_INTERACTION_TIMEOUT_MS); } using RequestType = AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type; @@ -34468,7 +34469,7 @@ - (void)revokeCommissioningWithParams:(MTRAdministratorCommissioningClusterRevok auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs; if (timedInvokeTimeoutMs == nil) { - timedInvokeTimeoutMs = @(10000); + timedInvokeTimeoutMs = @(MTR_DEFAULT_TIMED_INTERACTION_TIMEOUT_MS); } using RequestType = AdministratorCommissioning::Commands::RevokeCommissioning::Type; @@ -47433,7 +47434,7 @@ - (void)lockDoorWithParams:(MTRDoorLockClusterLockDoorParams * _Nullable)params auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs; if (timedInvokeTimeoutMs == nil) { - timedInvokeTimeoutMs = @(10000); + timedInvokeTimeoutMs = @(MTR_DEFAULT_TIMED_INTERACTION_TIMEOUT_MS); } using RequestType = DoorLock::Commands::LockDoor::Type; @@ -47460,7 +47461,7 @@ - (void)unlockDoorWithParams:(MTRDoorLockClusterUnlockDoorParams * _Nullable)par auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs; if (timedInvokeTimeoutMs == nil) { - timedInvokeTimeoutMs = @(10000); + timedInvokeTimeoutMs = @(MTR_DEFAULT_TIMED_INTERACTION_TIMEOUT_MS); } using RequestType = DoorLock::Commands::UnlockDoor::Type; @@ -47487,7 +47488,7 @@ - (void)unlockWithTimeoutWithParams:(MTRDoorLockClusterUnlockWithTimeoutParams * auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs; if (timedInvokeTimeoutMs == nil) { - timedInvokeTimeoutMs = @(10000); + timedInvokeTimeoutMs = @(MTR_DEFAULT_TIMED_INTERACTION_TIMEOUT_MS); } using RequestType = DoorLock::Commands::UnlockWithTimeout::Type; @@ -47730,7 +47731,7 @@ - (void)setUserWithParams:(MTRDoorLockClusterSetUserParams *)params completion:( auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs; if (timedInvokeTimeoutMs == nil) { - timedInvokeTimeoutMs = @(10000); + timedInvokeTimeoutMs = @(MTR_DEFAULT_TIMED_INTERACTION_TIMEOUT_MS); } using RequestType = DoorLock::Commands::SetUser::Type; @@ -47781,7 +47782,7 @@ - (void)clearUserWithParams:(MTRDoorLockClusterClearUserParams *)params completi auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs; if (timedInvokeTimeoutMs == nil) { - timedInvokeTimeoutMs = @(10000); + timedInvokeTimeoutMs = @(MTR_DEFAULT_TIMED_INTERACTION_TIMEOUT_MS); } using RequestType = DoorLock::Commands::ClearUser::Type; @@ -47808,7 +47809,7 @@ - (void)setCredentialWithParams:(MTRDoorLockClusterSetCredentialParams *)params auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs; if (timedInvokeTimeoutMs == nil) { - timedInvokeTimeoutMs = @(10000); + timedInvokeTimeoutMs = @(MTR_DEFAULT_TIMED_INTERACTION_TIMEOUT_MS); } using RequestType = DoorLock::Commands::SetCredential::Type; @@ -47859,7 +47860,7 @@ - (void)clearCredentialWithParams:(MTRDoorLockClusterClearCredentialParams *)par auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs; if (timedInvokeTimeoutMs == nil) { - timedInvokeTimeoutMs = @(10000); + timedInvokeTimeoutMs = @(MTR_DEFAULT_TIMED_INTERACTION_TIMEOUT_MS); } using RequestType = DoorLock::Commands::ClearCredential::Type; @@ -47886,7 +47887,7 @@ - (void)unboltDoorWithParams:(MTRDoorLockClusterUnboltDoorParams * _Nullable)par auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs; if (timedInvokeTimeoutMs == nil) { - timedInvokeTimeoutMs = @(10000); + timedInvokeTimeoutMs = @(MTR_DEFAULT_TIMED_INTERACTION_TIMEOUT_MS); } using RequestType = DoorLock::Commands::UnboltDoor::Type; @@ -91848,7 +91849,7 @@ - (void)getSetupPINWithParams:(MTRAccountLoginClusterGetSetupPINParams *)params auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs; if (timedInvokeTimeoutMs == nil) { - timedInvokeTimeoutMs = @(10000); + timedInvokeTimeoutMs = @(MTR_DEFAULT_TIMED_INTERACTION_TIMEOUT_MS); } using RequestType = AccountLogin::Commands::GetSetupPIN::Type; @@ -91875,7 +91876,7 @@ - (void)loginWithParams:(MTRAccountLoginClusterLoginParams *)params completion:( auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs; if (timedInvokeTimeoutMs == nil) { - timedInvokeTimeoutMs = @(10000); + timedInvokeTimeoutMs = @(MTR_DEFAULT_TIMED_INTERACTION_TIMEOUT_MS); } using RequestType = AccountLogin::Commands::Login::Type; @@ -91906,7 +91907,7 @@ - (void)logoutWithParams:(MTRAccountLoginClusterLogoutParams * _Nullable)params auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs; if (timedInvokeTimeoutMs == nil) { - timedInvokeTimeoutMs = @(10000); + timedInvokeTimeoutMs = @(MTR_DEFAULT_TIMED_INTERACTION_TIMEOUT_MS); } using RequestType = AccountLogin::Commands::Logout::Type; @@ -102737,7 +102738,7 @@ - (void)timedInvokeRequestWithParams:(MTRUnitTestingClusterTimedInvokeRequestPar auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs; if (timedInvokeTimeoutMs == nil) { - timedInvokeTimeoutMs = @(10000); + timedInvokeTimeoutMs = @(MTR_DEFAULT_TIMED_INTERACTION_TIMEOUT_MS); } using RequestType = UnitTesting::Commands::TimedInvokeRequest::Type; @@ -106281,6 +106282,9 @@ - (void)writeAttributeTimedWriteBooleanWithValue:(NSNumber * _Nonnull)value para timedWriteTimeout.SetValue(params.timedWriteTimeout.unsignedShortValue); } } + if (!timedWriteTimeout.HasValue()) { + timedWriteTimeout.SetValue(MTR_DEFAULT_TIMED_INTERACTION_TIMEOUT_MS); + } ListFreer listFreer; using TypeInfo = UnitTesting::Attributes::TimedWriteBoolean::TypeInfo; diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRClusters.mm b/src/darwin/Framework/CHIP/zap-generated/MTRClusters.mm index 329fdafa6eeda8..4a7e4e27ccf3ac 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRClusters.mm +++ b/src/darwin/Framework/CHIP/zap-generated/MTRClusters.mm @@ -22,6 +22,7 @@ #import "MTRCluster_Internal.h" #import "MTRClusters_Internal.h" #import "MTRCommandPayloadsObjc.h" +#import "MTRDefines_Internal.h" #import "MTRDevice_Internal.h" #import "MTRLogging_Internal.h" #import "MTRStructsObjc.h" @@ -5856,7 +5857,7 @@ - (void)openCommissioningWindowWithParams:(MTRAdministratorCommissioningClusterO auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs; if (timedInvokeTimeoutMs == nil) { - timedInvokeTimeoutMs = @(10000); + timedInvokeTimeoutMs = @(MTR_DEFAULT_TIMED_INTERACTION_TIMEOUT_MS); } using RequestType = AdministratorCommissioning::Commands::OpenCommissioningWindow::Type; @@ -5886,7 +5887,7 @@ - (void)openBasicCommissioningWindowWithParams:(MTRAdministratorCommissioningClu auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs; if (timedInvokeTimeoutMs == nil) { - timedInvokeTimeoutMs = @(10000); + timedInvokeTimeoutMs = @(MTR_DEFAULT_TIMED_INTERACTION_TIMEOUT_MS); } using RequestType = AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type; @@ -5920,7 +5921,7 @@ - (void)revokeCommissioningWithParams:(MTRAdministratorCommissioningClusterRevok auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs; if (timedInvokeTimeoutMs == nil) { - timedInvokeTimeoutMs = @(10000); + timedInvokeTimeoutMs = @(MTR_DEFAULT_TIMED_INTERACTION_TIMEOUT_MS); } using RequestType = AdministratorCommissioning::Commands::RevokeCommissioning::Type; @@ -8903,7 +8904,7 @@ - (void)lockDoorWithParams:(MTRDoorLockClusterLockDoorParams * _Nullable)params auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs; if (timedInvokeTimeoutMs == nil) { - timedInvokeTimeoutMs = @(10000); + timedInvokeTimeoutMs = @(MTR_DEFAULT_TIMED_INTERACTION_TIMEOUT_MS); } using RequestType = DoorLock::Commands::LockDoor::Type; @@ -8933,7 +8934,7 @@ - (void)unlockDoorWithParams:(MTRDoorLockClusterUnlockDoorParams * _Nullable)par auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs; if (timedInvokeTimeoutMs == nil) { - timedInvokeTimeoutMs = @(10000); + timedInvokeTimeoutMs = @(MTR_DEFAULT_TIMED_INTERACTION_TIMEOUT_MS); } using RequestType = DoorLock::Commands::UnlockDoor::Type; @@ -8963,7 +8964,7 @@ - (void)unlockWithTimeoutWithParams:(MTRDoorLockClusterUnlockWithTimeoutParams * auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs; if (timedInvokeTimeoutMs == nil) { - timedInvokeTimeoutMs = @(10000); + timedInvokeTimeoutMs = @(MTR_DEFAULT_TIMED_INTERACTION_TIMEOUT_MS); } using RequestType = DoorLock::Commands::UnlockWithTimeout::Type; @@ -9236,7 +9237,7 @@ - (void)setUserWithParams:(MTRDoorLockClusterSetUserParams *)params expectedValu auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs; if (timedInvokeTimeoutMs == nil) { - timedInvokeTimeoutMs = @(10000); + timedInvokeTimeoutMs = @(MTR_DEFAULT_TIMED_INTERACTION_TIMEOUT_MS); } using RequestType = DoorLock::Commands::SetUser::Type; @@ -9293,7 +9294,7 @@ - (void)clearUserWithParams:(MTRDoorLockClusterClearUserParams *)params expected auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs; if (timedInvokeTimeoutMs == nil) { - timedInvokeTimeoutMs = @(10000); + timedInvokeTimeoutMs = @(MTR_DEFAULT_TIMED_INTERACTION_TIMEOUT_MS); } using RequestType = DoorLock::Commands::ClearUser::Type; @@ -9323,7 +9324,7 @@ - (void)setCredentialWithParams:(MTRDoorLockClusterSetCredentialParams *)params auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs; if (timedInvokeTimeoutMs == nil) { - timedInvokeTimeoutMs = @(10000); + timedInvokeTimeoutMs = @(MTR_DEFAULT_TIMED_INTERACTION_TIMEOUT_MS); } using RequestType = DoorLock::Commands::SetCredential::Type; @@ -9380,7 +9381,7 @@ - (void)clearCredentialWithParams:(MTRDoorLockClusterClearCredentialParams *)par auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs; if (timedInvokeTimeoutMs == nil) { - timedInvokeTimeoutMs = @(10000); + timedInvokeTimeoutMs = @(MTR_DEFAULT_TIMED_INTERACTION_TIMEOUT_MS); } using RequestType = DoorLock::Commands::ClearCredential::Type; @@ -9410,7 +9411,7 @@ - (void)unboltDoorWithParams:(MTRDoorLockClusterUnboltDoorParams * _Nullable)par auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs; if (timedInvokeTimeoutMs == nil) { - timedInvokeTimeoutMs = @(10000); + timedInvokeTimeoutMs = @(MTR_DEFAULT_TIMED_INTERACTION_TIMEOUT_MS); } using RequestType = DoorLock::Commands::UnboltDoor::Type; @@ -16713,7 +16714,7 @@ - (void)getSetupPINWithParams:(MTRAccountLoginClusterGetSetupPINParams *)params auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs; if (timedInvokeTimeoutMs == nil) { - timedInvokeTimeoutMs = @(10000); + timedInvokeTimeoutMs = @(MTR_DEFAULT_TIMED_INTERACTION_TIMEOUT_MS); } using RequestType = AccountLogin::Commands::GetSetupPIN::Type; @@ -16743,7 +16744,7 @@ - (void)loginWithParams:(MTRAccountLoginClusterLoginParams *)params expectedValu auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs; if (timedInvokeTimeoutMs == nil) { - timedInvokeTimeoutMs = @(10000); + timedInvokeTimeoutMs = @(MTR_DEFAULT_TIMED_INTERACTION_TIMEOUT_MS); } using RequestType = AccountLogin::Commands::Login::Type; @@ -16777,7 +16778,7 @@ - (void)logoutWithParams:(MTRAccountLoginClusterLogoutParams * _Nullable)params auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs; if (timedInvokeTimeoutMs == nil) { - timedInvokeTimeoutMs = @(10000); + timedInvokeTimeoutMs = @(MTR_DEFAULT_TIMED_INTERACTION_TIMEOUT_MS); } using RequestType = AccountLogin::Commands::Logout::Type; @@ -18245,7 +18246,7 @@ - (void)timedInvokeRequestWithParams:(MTRUnitTestingClusterTimedInvokeRequestPar auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs; if (timedInvokeTimeoutMs == nil) { - timedInvokeTimeoutMs = @(10000); + timedInvokeTimeoutMs = @(MTR_DEFAULT_TIMED_INTERACTION_TIMEOUT_MS); } using RequestType = UnitTesting::Commands::TimedInvokeRequest::Type; @@ -19060,7 +19061,7 @@ - (void)writeAttributeTimedWriteBooleanWithValue:(NSDictionary * { NSNumber * timedWriteTimeout = params.timedWriteTimeout; if (!timedWriteTimeout) { - timedWriteTimeout = @(10000); + timedWriteTimeout = @(MTR_DEFAULT_TIMED_INTERACTION_TIMEOUT_MS); } [self.device writeAttributeWithEndpointID:@(self.endpoint) clusterID:@(MTRClusterIDTypeUnitTestingID) attributeID:@(MTRAttributeIDTypeClusterUnitTestingAttributeTimedWriteBooleanID) value:dataValueDictionary expectedValueInterval:expectedValueIntervalMs timedWriteTimeout:timedWriteTimeout]; diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.h b/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.h index f798dab013285c..3f1e00bc19794b 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.h +++ b/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.h @@ -3362,14 +3362,14 @@ MTR_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)) @property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout; @end -MTR_NEWLY_AVAILABLE +MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)) @interface MTRTimeSynchronizationClusterSetUTCTimeParams : NSObject -@property (nonatomic, copy) NSNumber * _Nonnull utcTime MTR_NEWLY_AVAILABLE; +@property (nonatomic, copy) NSNumber * _Nonnull utcTime MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)); -@property (nonatomic, copy) NSNumber * _Nonnull granularity MTR_NEWLY_AVAILABLE; +@property (nonatomic, copy) NSNumber * _Nonnull granularity MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)); -@property (nonatomic, copy) NSNumber * _Nullable timeSource MTR_NEWLY_AVAILABLE; +@property (nonatomic, copy) NSNumber * _Nullable timeSource MTR_AVAILABLE(ios(17.2), macos(14.2), watchos(10.2), tvos(17.2)); /** * Controls whether the command is a timed command (using Timed Invoke). * diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRCommandTimedCheck.mm b/src/darwin/Framework/CHIP/zap-generated/MTRCommandTimedCheck.mm new file mode 100644 index 00000000000000..9bfe9808a3d775 --- /dev/null +++ b/src/darwin/Framework/CHIP/zap-generated/MTRCommandTimedCheck.mm @@ -0,0 +1,1210 @@ +/* + * + * Copyright (c) 2022 Project CHIP Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "MTRCommandTimedCheck.h" + +#include +#include + +using namespace chip; +using namespace chip::app; + +static BOOL CommandNeedsTimedInvokeInIdentifyCluster(AttributeId aAttributeId) +{ + using namespace Clusters::Identify; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInGroupsCluster(AttributeId aAttributeId) +{ + using namespace Clusters::Groups; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInScenesCluster(AttributeId aAttributeId) +{ + using namespace Clusters::Scenes; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInOnOffCluster(AttributeId aAttributeId) +{ + using namespace Clusters::OnOff; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInOnOffSwitchConfigurationCluster(AttributeId aAttributeId) +{ + using namespace Clusters::OnOffSwitchConfiguration; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInLevelControlCluster(AttributeId aAttributeId) +{ + using namespace Clusters::LevelControl; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInBinaryInputBasicCluster(AttributeId aAttributeId) +{ + using namespace Clusters::BinaryInputBasic; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInPulseWidthModulationCluster(AttributeId aAttributeId) +{ + using namespace Clusters::PulseWidthModulation; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInDescriptorCluster(AttributeId aAttributeId) +{ + using namespace Clusters::Descriptor; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInBindingCluster(AttributeId aAttributeId) +{ + using namespace Clusters::Binding; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInAccessControlCluster(AttributeId aAttributeId) +{ + using namespace Clusters::AccessControl; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInActionsCluster(AttributeId aAttributeId) +{ + using namespace Clusters::Actions; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInBasicInformationCluster(AttributeId aAttributeId) +{ + using namespace Clusters::BasicInformation; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInOTASoftwareUpdateProviderCluster(AttributeId aAttributeId) +{ + using namespace Clusters::OtaSoftwareUpdateProvider; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInOTASoftwareUpdateRequestorCluster(AttributeId aAttributeId) +{ + using namespace Clusters::OtaSoftwareUpdateRequestor; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInLocalizationConfigurationCluster(AttributeId aAttributeId) +{ + using namespace Clusters::LocalizationConfiguration; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInTimeFormatLocalizationCluster(AttributeId aAttributeId) +{ + using namespace Clusters::TimeFormatLocalization; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInUnitLocalizationCluster(AttributeId aAttributeId) +{ + using namespace Clusters::UnitLocalization; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInPowerSourceConfigurationCluster(AttributeId aAttributeId) +{ + using namespace Clusters::PowerSourceConfiguration; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInPowerSourceCluster(AttributeId aAttributeId) +{ + using namespace Clusters::PowerSource; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInGeneralCommissioningCluster(AttributeId aAttributeId) +{ + using namespace Clusters::GeneralCommissioning; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInNetworkCommissioningCluster(AttributeId aAttributeId) +{ + using namespace Clusters::NetworkCommissioning; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInDiagnosticLogsCluster(AttributeId aAttributeId) +{ + using namespace Clusters::DiagnosticLogs; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInGeneralDiagnosticsCluster(AttributeId aAttributeId) +{ + using namespace Clusters::GeneralDiagnostics; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInSoftwareDiagnosticsCluster(AttributeId aAttributeId) +{ + using namespace Clusters::SoftwareDiagnostics; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInThreadNetworkDiagnosticsCluster(AttributeId aAttributeId) +{ + using namespace Clusters::ThreadNetworkDiagnostics; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInWiFiNetworkDiagnosticsCluster(AttributeId aAttributeId) +{ + using namespace Clusters::WiFiNetworkDiagnostics; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInEthernetNetworkDiagnosticsCluster(AttributeId aAttributeId) +{ + using namespace Clusters::EthernetNetworkDiagnostics; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInTimeSynchronizationCluster(AttributeId aAttributeId) +{ + using namespace Clusters::TimeSynchronization; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInBridgedDeviceBasicInformationCluster(AttributeId aAttributeId) +{ + using namespace Clusters::BridgedDeviceBasicInformation; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInSwitchCluster(AttributeId aAttributeId) +{ + using namespace Clusters::Switch; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInAdministratorCommissioningCluster(AttributeId aAttributeId) +{ + using namespace Clusters::AdministratorCommissioning; + switch (aAttributeId) { + case Commands::OpenCommissioningWindow::Id: { + return YES; + } + case Commands::OpenBasicCommissioningWindow::Id: { + return YES; + } + case Commands::RevokeCommissioning::Id: { + return YES; + } + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInOperationalCredentialsCluster(AttributeId aAttributeId) +{ + using namespace Clusters::OperationalCredentials; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInGroupKeyManagementCluster(AttributeId aAttributeId) +{ + using namespace Clusters::GroupKeyManagement; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInFixedLabelCluster(AttributeId aAttributeId) +{ + using namespace Clusters::FixedLabel; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInUserLabelCluster(AttributeId aAttributeId) +{ + using namespace Clusters::UserLabel; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInBooleanStateCluster(AttributeId aAttributeId) +{ + using namespace Clusters::BooleanState; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInICDManagementCluster(AttributeId aAttributeId) +{ + using namespace Clusters::IcdManagement; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInModeSelectCluster(AttributeId aAttributeId) +{ + using namespace Clusters::ModeSelect; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInLaundryWasherModeCluster(AttributeId aAttributeId) +{ + using namespace Clusters::LaundryWasherMode; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInRefrigeratorAndTemperatureControlledCabinetModeCluster(AttributeId aAttributeId) +{ + using namespace Clusters::RefrigeratorAndTemperatureControlledCabinetMode; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInLaundryWasherControlsCluster(AttributeId aAttributeId) +{ + using namespace Clusters::LaundryWasherControls; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInRVCRunModeCluster(AttributeId aAttributeId) +{ + using namespace Clusters::RvcRunMode; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInRVCCleanModeCluster(AttributeId aAttributeId) +{ + using namespace Clusters::RvcCleanMode; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInTemperatureControlCluster(AttributeId aAttributeId) +{ + using namespace Clusters::TemperatureControl; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInRefrigeratorAlarmCluster(AttributeId aAttributeId) +{ + using namespace Clusters::RefrigeratorAlarm; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInDishwasherModeCluster(AttributeId aAttributeId) +{ + using namespace Clusters::DishwasherMode; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInAirQualityCluster(AttributeId aAttributeId) +{ + using namespace Clusters::AirQuality; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInSmokeCOAlarmCluster(AttributeId aAttributeId) +{ + using namespace Clusters::SmokeCoAlarm; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInDishwasherAlarmCluster(AttributeId aAttributeId) +{ + using namespace Clusters::DishwasherAlarm; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInOperationalStateCluster(AttributeId aAttributeId) +{ + using namespace Clusters::OperationalState; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInRVCOperationalStateCluster(AttributeId aAttributeId) +{ + using namespace Clusters::RvcOperationalState; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInHEPAFilterMonitoringCluster(AttributeId aAttributeId) +{ + using namespace Clusters::HepaFilterMonitoring; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInActivatedCarbonFilterMonitoringCluster(AttributeId aAttributeId) +{ + using namespace Clusters::ActivatedCarbonFilterMonitoring; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInDoorLockCluster(AttributeId aAttributeId) +{ + using namespace Clusters::DoorLock; + switch (aAttributeId) { + case Commands::LockDoor::Id: { + return YES; + } + case Commands::UnlockDoor::Id: { + return YES; + } + case Commands::UnlockWithTimeout::Id: { + return YES; + } + case Commands::SetUser::Id: { + return YES; + } + case Commands::ClearUser::Id: { + return YES; + } + case Commands::SetCredential::Id: { + return YES; + } + case Commands::ClearCredential::Id: { + return YES; + } + case Commands::UnboltDoor::Id: { + return YES; + } + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInWindowCoveringCluster(AttributeId aAttributeId) +{ + using namespace Clusters::WindowCovering; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInBarrierControlCluster(AttributeId aAttributeId) +{ + using namespace Clusters::BarrierControl; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInPumpConfigurationAndControlCluster(AttributeId aAttributeId) +{ + using namespace Clusters::PumpConfigurationAndControl; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInThermostatCluster(AttributeId aAttributeId) +{ + using namespace Clusters::Thermostat; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInFanControlCluster(AttributeId aAttributeId) +{ + using namespace Clusters::FanControl; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInThermostatUserInterfaceConfigurationCluster(AttributeId aAttributeId) +{ + using namespace Clusters::ThermostatUserInterfaceConfiguration; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInColorControlCluster(AttributeId aAttributeId) +{ + using namespace Clusters::ColorControl; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInBallastConfigurationCluster(AttributeId aAttributeId) +{ + using namespace Clusters::BallastConfiguration; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInIlluminanceMeasurementCluster(AttributeId aAttributeId) +{ + using namespace Clusters::IlluminanceMeasurement; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInTemperatureMeasurementCluster(AttributeId aAttributeId) +{ + using namespace Clusters::TemperatureMeasurement; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInPressureMeasurementCluster(AttributeId aAttributeId) +{ + using namespace Clusters::PressureMeasurement; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInFlowMeasurementCluster(AttributeId aAttributeId) +{ + using namespace Clusters::FlowMeasurement; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInRelativeHumidityMeasurementCluster(AttributeId aAttributeId) +{ + using namespace Clusters::RelativeHumidityMeasurement; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInOccupancySensingCluster(AttributeId aAttributeId) +{ + using namespace Clusters::OccupancySensing; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInCarbonMonoxideConcentrationMeasurementCluster(AttributeId aAttributeId) +{ + using namespace Clusters::CarbonMonoxideConcentrationMeasurement; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInCarbonDioxideConcentrationMeasurementCluster(AttributeId aAttributeId) +{ + using namespace Clusters::CarbonDioxideConcentrationMeasurement; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInNitrogenDioxideConcentrationMeasurementCluster(AttributeId aAttributeId) +{ + using namespace Clusters::NitrogenDioxideConcentrationMeasurement; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInOzoneConcentrationMeasurementCluster(AttributeId aAttributeId) +{ + using namespace Clusters::OzoneConcentrationMeasurement; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInPM25ConcentrationMeasurementCluster(AttributeId aAttributeId) +{ + using namespace Clusters::Pm25ConcentrationMeasurement; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInFormaldehydeConcentrationMeasurementCluster(AttributeId aAttributeId) +{ + using namespace Clusters::FormaldehydeConcentrationMeasurement; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInPM1ConcentrationMeasurementCluster(AttributeId aAttributeId) +{ + using namespace Clusters::Pm1ConcentrationMeasurement; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInPM10ConcentrationMeasurementCluster(AttributeId aAttributeId) +{ + using namespace Clusters::Pm10ConcentrationMeasurement; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInTotalVolatileOrganicCompoundsConcentrationMeasurementCluster(AttributeId aAttributeId) +{ + using namespace Clusters::TotalVolatileOrganicCompoundsConcentrationMeasurement; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInRadonConcentrationMeasurementCluster(AttributeId aAttributeId) +{ + using namespace Clusters::RadonConcentrationMeasurement; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInWakeOnLANCluster(AttributeId aAttributeId) +{ + using namespace Clusters::WakeOnLan; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInChannelCluster(AttributeId aAttributeId) +{ + using namespace Clusters::Channel; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInTargetNavigatorCluster(AttributeId aAttributeId) +{ + using namespace Clusters::TargetNavigator; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInMediaPlaybackCluster(AttributeId aAttributeId) +{ + using namespace Clusters::MediaPlayback; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInMediaInputCluster(AttributeId aAttributeId) +{ + using namespace Clusters::MediaInput; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInLowPowerCluster(AttributeId aAttributeId) +{ + using namespace Clusters::LowPower; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInKeypadInputCluster(AttributeId aAttributeId) +{ + using namespace Clusters::KeypadInput; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInContentLauncherCluster(AttributeId aAttributeId) +{ + using namespace Clusters::ContentLauncher; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInAudioOutputCluster(AttributeId aAttributeId) +{ + using namespace Clusters::AudioOutput; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInApplicationLauncherCluster(AttributeId aAttributeId) +{ + using namespace Clusters::ApplicationLauncher; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInApplicationBasicCluster(AttributeId aAttributeId) +{ + using namespace Clusters::ApplicationBasic; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInAccountLoginCluster(AttributeId aAttributeId) +{ + using namespace Clusters::AccountLogin; + switch (aAttributeId) { + case Commands::GetSetupPIN::Id: { + return YES; + } + case Commands::Login::Id: { + return YES; + } + case Commands::Logout::Id: { + return YES; + } + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInElectricalMeasurementCluster(AttributeId aAttributeId) +{ + using namespace Clusters::ElectricalMeasurement; + switch (aAttributeId) { + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInUnitTestingCluster(AttributeId aAttributeId) +{ + using namespace Clusters::UnitTesting; + switch (aAttributeId) { + case Commands::TimedInvokeRequest::Id: { + return YES; + } + default: { + return NO; + } + } +} +static BOOL CommandNeedsTimedInvokeInSampleMEICluster(AttributeId aAttributeId) +{ + using namespace Clusters::SampleMei; + switch (aAttributeId) { + default: { + return NO; + } + } +} + +BOOL MTRCommandNeedsTimedInvoke(NSNumber * _Nonnull aClusterID, NSNumber * _Nonnull aCommandID) +{ + ClusterId clusterID = static_cast(aClusterID.unsignedLongLongValue); + CommandId commandID = static_cast(aCommandID.unsignedLongLongValue); + + switch (clusterID) { + case Clusters::Identify::Id: { + return CommandNeedsTimedInvokeInIdentifyCluster(commandID); + } + case Clusters::Groups::Id: { + return CommandNeedsTimedInvokeInGroupsCluster(commandID); + } + case Clusters::Scenes::Id: { + return CommandNeedsTimedInvokeInScenesCluster(commandID); + } + case Clusters::OnOff::Id: { + return CommandNeedsTimedInvokeInOnOffCluster(commandID); + } + case Clusters::OnOffSwitchConfiguration::Id: { + return CommandNeedsTimedInvokeInOnOffSwitchConfigurationCluster(commandID); + } + case Clusters::LevelControl::Id: { + return CommandNeedsTimedInvokeInLevelControlCluster(commandID); + } + case Clusters::BinaryInputBasic::Id: { + return CommandNeedsTimedInvokeInBinaryInputBasicCluster(commandID); + } + case Clusters::PulseWidthModulation::Id: { + return CommandNeedsTimedInvokeInPulseWidthModulationCluster(commandID); + } + case Clusters::Descriptor::Id: { + return CommandNeedsTimedInvokeInDescriptorCluster(commandID); + } + case Clusters::Binding::Id: { + return CommandNeedsTimedInvokeInBindingCluster(commandID); + } + case Clusters::AccessControl::Id: { + return CommandNeedsTimedInvokeInAccessControlCluster(commandID); + } + case Clusters::Actions::Id: { + return CommandNeedsTimedInvokeInActionsCluster(commandID); + } + case Clusters::BasicInformation::Id: { + return CommandNeedsTimedInvokeInBasicInformationCluster(commandID); + } + case Clusters::OtaSoftwareUpdateProvider::Id: { + return CommandNeedsTimedInvokeInOTASoftwareUpdateProviderCluster(commandID); + } + case Clusters::OtaSoftwareUpdateRequestor::Id: { + return CommandNeedsTimedInvokeInOTASoftwareUpdateRequestorCluster(commandID); + } + case Clusters::LocalizationConfiguration::Id: { + return CommandNeedsTimedInvokeInLocalizationConfigurationCluster(commandID); + } + case Clusters::TimeFormatLocalization::Id: { + return CommandNeedsTimedInvokeInTimeFormatLocalizationCluster(commandID); + } + case Clusters::UnitLocalization::Id: { + return CommandNeedsTimedInvokeInUnitLocalizationCluster(commandID); + } + case Clusters::PowerSourceConfiguration::Id: { + return CommandNeedsTimedInvokeInPowerSourceConfigurationCluster(commandID); + } + case Clusters::PowerSource::Id: { + return CommandNeedsTimedInvokeInPowerSourceCluster(commandID); + } + case Clusters::GeneralCommissioning::Id: { + return CommandNeedsTimedInvokeInGeneralCommissioningCluster(commandID); + } + case Clusters::NetworkCommissioning::Id: { + return CommandNeedsTimedInvokeInNetworkCommissioningCluster(commandID); + } + case Clusters::DiagnosticLogs::Id: { + return CommandNeedsTimedInvokeInDiagnosticLogsCluster(commandID); + } + case Clusters::GeneralDiagnostics::Id: { + return CommandNeedsTimedInvokeInGeneralDiagnosticsCluster(commandID); + } + case Clusters::SoftwareDiagnostics::Id: { + return CommandNeedsTimedInvokeInSoftwareDiagnosticsCluster(commandID); + } + case Clusters::ThreadNetworkDiagnostics::Id: { + return CommandNeedsTimedInvokeInThreadNetworkDiagnosticsCluster(commandID); + } + case Clusters::WiFiNetworkDiagnostics::Id: { + return CommandNeedsTimedInvokeInWiFiNetworkDiagnosticsCluster(commandID); + } + case Clusters::EthernetNetworkDiagnostics::Id: { + return CommandNeedsTimedInvokeInEthernetNetworkDiagnosticsCluster(commandID); + } + case Clusters::TimeSynchronization::Id: { + return CommandNeedsTimedInvokeInTimeSynchronizationCluster(commandID); + } + case Clusters::BridgedDeviceBasicInformation::Id: { + return CommandNeedsTimedInvokeInBridgedDeviceBasicInformationCluster(commandID); + } + case Clusters::Switch::Id: { + return CommandNeedsTimedInvokeInSwitchCluster(commandID); + } + case Clusters::AdministratorCommissioning::Id: { + return CommandNeedsTimedInvokeInAdministratorCommissioningCluster(commandID); + } + case Clusters::OperationalCredentials::Id: { + return CommandNeedsTimedInvokeInOperationalCredentialsCluster(commandID); + } + case Clusters::GroupKeyManagement::Id: { + return CommandNeedsTimedInvokeInGroupKeyManagementCluster(commandID); + } + case Clusters::FixedLabel::Id: { + return CommandNeedsTimedInvokeInFixedLabelCluster(commandID); + } + case Clusters::UserLabel::Id: { + return CommandNeedsTimedInvokeInUserLabelCluster(commandID); + } + case Clusters::BooleanState::Id: { + return CommandNeedsTimedInvokeInBooleanStateCluster(commandID); + } + case Clusters::IcdManagement::Id: { + return CommandNeedsTimedInvokeInICDManagementCluster(commandID); + } + case Clusters::ModeSelect::Id: { + return CommandNeedsTimedInvokeInModeSelectCluster(commandID); + } + case Clusters::LaundryWasherMode::Id: { + return CommandNeedsTimedInvokeInLaundryWasherModeCluster(commandID); + } + case Clusters::RefrigeratorAndTemperatureControlledCabinetMode::Id: { + return CommandNeedsTimedInvokeInRefrigeratorAndTemperatureControlledCabinetModeCluster(commandID); + } + case Clusters::LaundryWasherControls::Id: { + return CommandNeedsTimedInvokeInLaundryWasherControlsCluster(commandID); + } + case Clusters::RvcRunMode::Id: { + return CommandNeedsTimedInvokeInRVCRunModeCluster(commandID); + } + case Clusters::RvcCleanMode::Id: { + return CommandNeedsTimedInvokeInRVCCleanModeCluster(commandID); + } + case Clusters::TemperatureControl::Id: { + return CommandNeedsTimedInvokeInTemperatureControlCluster(commandID); + } + case Clusters::RefrigeratorAlarm::Id: { + return CommandNeedsTimedInvokeInRefrigeratorAlarmCluster(commandID); + } + case Clusters::DishwasherMode::Id: { + return CommandNeedsTimedInvokeInDishwasherModeCluster(commandID); + } + case Clusters::AirQuality::Id: { + return CommandNeedsTimedInvokeInAirQualityCluster(commandID); + } + case Clusters::SmokeCoAlarm::Id: { + return CommandNeedsTimedInvokeInSmokeCOAlarmCluster(commandID); + } + case Clusters::DishwasherAlarm::Id: { + return CommandNeedsTimedInvokeInDishwasherAlarmCluster(commandID); + } + case Clusters::OperationalState::Id: { + return CommandNeedsTimedInvokeInOperationalStateCluster(commandID); + } + case Clusters::RvcOperationalState::Id: { + return CommandNeedsTimedInvokeInRVCOperationalStateCluster(commandID); + } + case Clusters::HepaFilterMonitoring::Id: { + return CommandNeedsTimedInvokeInHEPAFilterMonitoringCluster(commandID); + } + case Clusters::ActivatedCarbonFilterMonitoring::Id: { + return CommandNeedsTimedInvokeInActivatedCarbonFilterMonitoringCluster(commandID); + } + case Clusters::DoorLock::Id: { + return CommandNeedsTimedInvokeInDoorLockCluster(commandID); + } + case Clusters::WindowCovering::Id: { + return CommandNeedsTimedInvokeInWindowCoveringCluster(commandID); + } + case Clusters::BarrierControl::Id: { + return CommandNeedsTimedInvokeInBarrierControlCluster(commandID); + } + case Clusters::PumpConfigurationAndControl::Id: { + return CommandNeedsTimedInvokeInPumpConfigurationAndControlCluster(commandID); + } + case Clusters::Thermostat::Id: { + return CommandNeedsTimedInvokeInThermostatCluster(commandID); + } + case Clusters::FanControl::Id: { + return CommandNeedsTimedInvokeInFanControlCluster(commandID); + } + case Clusters::ThermostatUserInterfaceConfiguration::Id: { + return CommandNeedsTimedInvokeInThermostatUserInterfaceConfigurationCluster(commandID); + } + case Clusters::ColorControl::Id: { + return CommandNeedsTimedInvokeInColorControlCluster(commandID); + } + case Clusters::BallastConfiguration::Id: { + return CommandNeedsTimedInvokeInBallastConfigurationCluster(commandID); + } + case Clusters::IlluminanceMeasurement::Id: { + return CommandNeedsTimedInvokeInIlluminanceMeasurementCluster(commandID); + } + case Clusters::TemperatureMeasurement::Id: { + return CommandNeedsTimedInvokeInTemperatureMeasurementCluster(commandID); + } + case Clusters::PressureMeasurement::Id: { + return CommandNeedsTimedInvokeInPressureMeasurementCluster(commandID); + } + case Clusters::FlowMeasurement::Id: { + return CommandNeedsTimedInvokeInFlowMeasurementCluster(commandID); + } + case Clusters::RelativeHumidityMeasurement::Id: { + return CommandNeedsTimedInvokeInRelativeHumidityMeasurementCluster(commandID); + } + case Clusters::OccupancySensing::Id: { + return CommandNeedsTimedInvokeInOccupancySensingCluster(commandID); + } + case Clusters::CarbonMonoxideConcentrationMeasurement::Id: { + return CommandNeedsTimedInvokeInCarbonMonoxideConcentrationMeasurementCluster(commandID); + } + case Clusters::CarbonDioxideConcentrationMeasurement::Id: { + return CommandNeedsTimedInvokeInCarbonDioxideConcentrationMeasurementCluster(commandID); + } + case Clusters::NitrogenDioxideConcentrationMeasurement::Id: { + return CommandNeedsTimedInvokeInNitrogenDioxideConcentrationMeasurementCluster(commandID); + } + case Clusters::OzoneConcentrationMeasurement::Id: { + return CommandNeedsTimedInvokeInOzoneConcentrationMeasurementCluster(commandID); + } + case Clusters::Pm25ConcentrationMeasurement::Id: { + return CommandNeedsTimedInvokeInPM25ConcentrationMeasurementCluster(commandID); + } + case Clusters::FormaldehydeConcentrationMeasurement::Id: { + return CommandNeedsTimedInvokeInFormaldehydeConcentrationMeasurementCluster(commandID); + } + case Clusters::Pm1ConcentrationMeasurement::Id: { + return CommandNeedsTimedInvokeInPM1ConcentrationMeasurementCluster(commandID); + } + case Clusters::Pm10ConcentrationMeasurement::Id: { + return CommandNeedsTimedInvokeInPM10ConcentrationMeasurementCluster(commandID); + } + case Clusters::TotalVolatileOrganicCompoundsConcentrationMeasurement::Id: { + return CommandNeedsTimedInvokeInTotalVolatileOrganicCompoundsConcentrationMeasurementCluster(commandID); + } + case Clusters::RadonConcentrationMeasurement::Id: { + return CommandNeedsTimedInvokeInRadonConcentrationMeasurementCluster(commandID); + } + case Clusters::WakeOnLan::Id: { + return CommandNeedsTimedInvokeInWakeOnLANCluster(commandID); + } + case Clusters::Channel::Id: { + return CommandNeedsTimedInvokeInChannelCluster(commandID); + } + case Clusters::TargetNavigator::Id: { + return CommandNeedsTimedInvokeInTargetNavigatorCluster(commandID); + } + case Clusters::MediaPlayback::Id: { + return CommandNeedsTimedInvokeInMediaPlaybackCluster(commandID); + } + case Clusters::MediaInput::Id: { + return CommandNeedsTimedInvokeInMediaInputCluster(commandID); + } + case Clusters::LowPower::Id: { + return CommandNeedsTimedInvokeInLowPowerCluster(commandID); + } + case Clusters::KeypadInput::Id: { + return CommandNeedsTimedInvokeInKeypadInputCluster(commandID); + } + case Clusters::ContentLauncher::Id: { + return CommandNeedsTimedInvokeInContentLauncherCluster(commandID); + } + case Clusters::AudioOutput::Id: { + return CommandNeedsTimedInvokeInAudioOutputCluster(commandID); + } + case Clusters::ApplicationLauncher::Id: { + return CommandNeedsTimedInvokeInApplicationLauncherCluster(commandID); + } + case Clusters::ApplicationBasic::Id: { + return CommandNeedsTimedInvokeInApplicationBasicCluster(commandID); + } + case Clusters::AccountLogin::Id: { + return CommandNeedsTimedInvokeInAccountLoginCluster(commandID); + } + case Clusters::ElectricalMeasurement::Id: { + return CommandNeedsTimedInvokeInElectricalMeasurementCluster(commandID); + } + case Clusters::UnitTesting::Id: { + return CommandNeedsTimedInvokeInUnitTestingCluster(commandID); + } + case Clusters::SampleMei::Id: { + return CommandNeedsTimedInvokeInSampleMEICluster(commandID); + } + default: { + return NO; + } + } +} diff --git a/src/darwin/Framework/CHIPTests/MTRDeviceTests.m b/src/darwin/Framework/CHIPTests/MTRDeviceTests.m index 083d241d104263..603dea93d49288 100644 --- a/src/darwin/Framework/CHIPTests/MTRDeviceTests.m +++ b/src/darwin/Framework/CHIPTests/MTRDeviceTests.m @@ -160,6 +160,12 @@ - (void)unitTestReportEndForDevice:(MTRDevice *)device } } +- (NSNumber *)unitTestMaxIntervalOverrideForSubscription:(MTRDevice *)device +{ + // Make sure our subscriptions time out in finite time. + return @(2); // seconds +} + @end @interface MTRDeviceTests : XCTestCase @@ -1744,13 +1750,18 @@ - (void)test019_MTRDeviceMultipleCommands }]; XCTestExpectation * offExpectation = [self expectationWithDescription:@"Off command executed"]; - [onOffCluster offWithParams:nil - expectedValues:nil - expectedValueInterval:nil - completion:^(NSError * _Nullable error) { - XCTAssertNil(error); - [offExpectation fulfill]; - }]; + // Send this one via MTRDevice, to test that codepath. + [device invokeCommandWithEndpointID:@(1) + clusterID:@(MTRClusterIDTypeOnOffID) + commandID:@(MTRCommandIDTypeClusterOnOffCommandOffID) + commandFields:nil + expectedValues:nil + expectedValueInterval:nil + queue:queue + completion:^(NSArray *> * _Nullable values, NSError * _Nullable error) { + XCTAssertNil(error); + [offExpectation fulfill]; + }]; XCTestExpectation * onFailedExpectation = [self expectationWithDescription:@"On command failed"]; [badOnOffCluster onWithParams:nil @@ -2234,12 +2245,15 @@ - (void)test023_SubscribeMultipleAttributes { XCTAssertTrue([values isKindOfClass:[NSArray class]]); NSArray * resultArray = values; + XCTAssertEqual(resultArray.count, 1); for (NSDictionary * result in resultArray) { MTRCommandPath * path = result[@"commandPath"]; XCTAssertEqualObjects(path.endpoint, @1); XCTAssertEqualObjects(path.cluster, @6); XCTAssertEqualObjects(path.command, @1); XCTAssertNil(result[@"error"]); + // This command just has a status response. + XCTAssertNil(result[@"value"]); } XCTAssertEqual([resultArray count], 1); } diff --git a/src/darwin/Framework/CHIPTests/MTRSwiftDeviceTests.swift b/src/darwin/Framework/CHIPTests/MTRSwiftDeviceTests.swift index badcbabbca2fd2..5d963fb51176fd 100644 --- a/src/darwin/Framework/CHIPTests/MTRSwiftDeviceTests.swift +++ b/src/darwin/Framework/CHIPTests/MTRSwiftDeviceTests.swift @@ -88,6 +88,13 @@ class MTRSwiftDeviceTestDelegate : NSObject, MTRDeviceDelegate { { onReportEnd?() } + + @objc func unitTestMaxIntervalOverrideForSubscription(_ device : MTRDevice) -> NSNumber + { + // Make sure our subscriptions time out in finite time. + return 2; // seconds + } + } // Because we are using things from Matter.framework that are flagged diff --git a/src/darwin/Framework/Matter.xcodeproj/project.pbxproj b/src/darwin/Framework/Matter.xcodeproj/project.pbxproj index 33032722024600..b2fc3f8c50e86a 100644 --- a/src/darwin/Framework/Matter.xcodeproj/project.pbxproj +++ b/src/darwin/Framework/Matter.xcodeproj/project.pbxproj @@ -164,6 +164,9 @@ 5173A47929C0E82300F67F48 /* MTRFabricInfoTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 5173A47829C0E82300F67F48 /* MTRFabricInfoTests.m */; }; 51742B4A29CB5FC1009974FE /* MTRTestResetCommissioneeHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 51742B4929CB5FC0009974FE /* MTRTestResetCommissioneeHelper.m */; }; 51742B4E29CB6B88009974FE /* MTRPairingTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 51742B4D29CB6B88009974FE /* MTRPairingTests.m */; }; + 5178E67E2AE098210069DF72 /* MTRCommandTimedCheck.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5178E67D2AE098210069DF72 /* MTRCommandTimedCheck.mm */; }; + 5178E6812AE098520069DF72 /* MTRCommandTimedCheck.h in Headers */ = {isa = PBXBuildFile; fileRef = 5178E67F2AE098510069DF72 /* MTRCommandTimedCheck.h */; }; + 5178E6822AE098520069DF72 /* MTRCommissionableBrowserResult_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 5178E6802AE098520069DF72 /* MTRCommissionableBrowserResult_Internal.h */; }; 517BF3F0282B62B800A8B7DB /* MTRCertificates.h in Headers */ = {isa = PBXBuildFile; fileRef = 517BF3EE282B62B800A8B7DB /* MTRCertificates.h */; settings = {ATTRIBUTES = (Public, ); }; }; 517BF3F1282B62B800A8B7DB /* MTRCertificates.mm in Sources */ = {isa = PBXBuildFile; fileRef = 517BF3EF282B62B800A8B7DB /* MTRCertificates.mm */; }; 517BF3F3282B62CB00A8B7DB /* MTRCertificateTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 517BF3F2282B62CB00A8B7DB /* MTRCertificateTests.m */; }; @@ -519,6 +522,12 @@ 51742B4829CB5F45009974FE /* MTRTestResetCommissioneeHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MTRTestResetCommissioneeHelper.h; sourceTree = ""; }; 51742B4929CB5FC0009974FE /* MTRTestResetCommissioneeHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MTRTestResetCommissioneeHelper.m; sourceTree = ""; }; 51742B4D29CB6B88009974FE /* MTRPairingTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MTRPairingTests.m; sourceTree = ""; }; + 5178E6592AE097A20069DF72 /* MTRCommandPayloads_Internal.zapt */ = {isa = PBXFileReference; lastKnownFileType = text; path = MTRCommandPayloads_Internal.zapt; sourceTree = ""; }; + 5178E65A2AE097A20069DF72 /* MTRCommandTimedCheck-src.zapt */ = {isa = PBXFileReference; lastKnownFileType = text; path = "MTRCommandTimedCheck-src.zapt"; sourceTree = ""; }; + 5178E65B2AE097B30069DF72 /* availability.yaml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.yaml; path = availability.yaml; sourceTree = ""; }; + 5178E67D2AE098210069DF72 /* MTRCommandTimedCheck.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MTRCommandTimedCheck.mm; sourceTree = ""; }; + 5178E67F2AE098510069DF72 /* MTRCommandTimedCheck.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MTRCommandTimedCheck.h; sourceTree = ""; }; + 5178E6802AE098520069DF72 /* MTRCommissionableBrowserResult_Internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MTRCommissionableBrowserResult_Internal.h; sourceTree = ""; }; 517BF3EE282B62B800A8B7DB /* MTRCertificates.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MTRCertificates.h; sourceTree = ""; }; 517BF3EF282B62B800A8B7DB /* MTRCertificates.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MTRCertificates.mm; sourceTree = ""; }; 517BF3F2282B62CB00A8B7DB /* MTRCertificateTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MTRCertificateTests.m; sourceTree = ""; }; @@ -981,6 +990,7 @@ 7560FD1B27FBBD3F005E85B3 /* MTREventTLVValueDecoder.mm */, 51B22C1D2740CB0A008D5055 /* MTRStructsObjc.h */, 51B22C252740CB32008D5055 /* MTRStructsObjc.mm */, + 5178E67D2AE098210069DF72 /* MTRCommandTimedCheck.mm */, ); path = "zap-generated"; sourceTree = ""; @@ -1019,6 +1029,9 @@ 3D84371D294984AF0070D20A /* MTREventTLVValueDecoder-src.zapt */, 3D84371F294984AF0070D20A /* MTRStructsObjc.zapt */, 3D843722294984AF0070D20A /* MTRStructsObjc-src.zapt */, + 5178E6592AE097A20069DF72 /* MTRCommandPayloads_Internal.zapt */, + 5178E65A2AE097A20069DF72 /* MTRCommandTimedCheck-src.zapt */, + 5178E65B2AE097B30069DF72 /* availability.yaml */, 3D843729294984AF0070D20A /* partials */, ); path = templates; @@ -1121,7 +1134,9 @@ 5ACDDD7B27CD14AF00EFD68A /* MTRClusterStateCacheContainer_Internal.h */, 5ACDDD7C27CD16D200EFD68A /* MTRClusterStateCacheContainer.mm */, 5A60370727EA1FF60020DB79 /* MTRClusterStateCacheContainer+XPC.h */, + 5178E67F2AE098510069DF72 /* MTRCommandTimedCheck.h */, 51FE723E2ACDEF3E00437032 /* MTRCommandPayloadExtensions_Internal.h */, + 5178E6802AE098520069DF72 /* MTRCommissionableBrowserResult_Internal.h */, 99D466E02798936D0089A18F /* MTRCommissioningParameters.h */, 99AECC7F2798A57E00B6355B /* MTRCommissioningParameters.mm */, 3DFCB32B29678C9500332B35 /* MTRConversion.h */, @@ -1383,6 +1398,7 @@ 517BF3F0282B62B800A8B7DB /* MTRCertificates.h in Headers */, 51E51FBF282AD37A00FC978D /* MTRDeviceControllerStartupParams.h in Headers */, 5136661628067D550025EDAE /* MTRDeviceControllerFactory.h in Headers */, + 5178E6812AE098520069DF72 /* MTRCommandTimedCheck.h in Headers */, 7596A84B287636C1004DAE0E /* MTRDevice_Internal.h in Headers */, 5A6FEC9927B5C88900F25F42 /* MTRDeviceOverXPC.h in Headers */, 51B22C222740CB1D008D5055 /* MTRCommandPayloadsObjc.h in Headers */, @@ -1412,6 +1428,7 @@ AF1CB86E2874B03B00865A96 /* MTROTAProviderDelegate.h in Headers */, 754F3DF427FBB94B00E60580 /* MTREventTLVValueDecoder_Internal.h in Headers */, 3CF134AF289D90FF0017A19E /* MTROperationalCertificateIssuer.h in Headers */, + 5178E6822AE098520069DF72 /* MTRCommissionableBrowserResult_Internal.h in Headers */, 3CF134AB289D8DF70017A19E /* MTRDeviceAttestationInfo.h in Headers */, B2E0D7B2245B0B5C003C5B48 /* MTRManualSetupPayloadParser.h in Headers */, 3CF134A7289D8ADA0017A19E /* MTRCSRInfo.h in Headers */, @@ -1738,6 +1755,7 @@ 3CF134AD289D8E570017A19E /* MTRDeviceAttestationInfo.mm in Sources */, 2C1B027A2641DB4E00780EF1 /* MTROperationalCredentialsDelegate.mm in Sources */, 7560FD1C27FBBD3F005E85B3 /* MTREventTLVValueDecoder.mm in Sources */, + 5178E67E2AE098210069DF72 /* MTRCommandTimedCheck.mm in Sources */, 7596A84928762783004DAE0E /* MTRAsyncCallbackWorkQueue.mm in Sources */, B2E0D7B9245B0B5C003C5B48 /* MTRSetupPayload.mm in Sources */, B2E0D7B6245B0B5C003C5B48 /* MTRManualSetupPayloadParser.mm in Sources */, diff --git a/src/lib/core/CHIPConfig.h b/src/lib/core/CHIPConfig.h index 30d6d6b8a65b36..5ef55d3ff2239a 100644 --- a/src/lib/core/CHIPConfig.h +++ b/src/lib/core/CHIPConfig.h @@ -1403,13 +1403,6 @@ extern const char CHIP_NON_PRODUCTION_MARKER[]; #define CHIP_CONFIG_MAX_SUBSCRIPTION_RESUMPTION_STORAGE_CONCURRENT_ITERATORS 2 #endif -/** - * @brief The minimum number of scenes to support according to spec - */ -#ifndef CHIP_CONFIG_MAX_SCENES_PER_ENDPOINT -#define CHIP_CONFIG_MAX_SCENES_PER_ENDPOINT 16 -#endif - /** * @brief Maximum length of Scene names */ @@ -1417,13 +1410,6 @@ extern const char CHIP_NON_PRODUCTION_MARKER[]; #define CHIP_CONFIG_SCENES_CLUSTER_MAXIMUM_NAME_LENGTH 16 #endif -/** - * @brief The maximum number of scenes allowed on a single fabric - */ -#ifndef CHIP_CONFIG_SCENES_MAX_PER_FABRIC -#define CHIP_CONFIG_SCENES_MAX_PER_FABRIC (CHIP_CONFIG_MAX_SCENES_PER_ENDPOINT / 2) -#endif - /** * @brief The maximum number of attribute value pairs in an extension field set. */ diff --git a/src/messaging/ExchangeContext.cpp b/src/messaging/ExchangeContext.cpp index ac4a620a7ee66a..1b93bff5a62e62 100644 --- a/src/messaging/ExchangeContext.cpp +++ b/src/messaging/ExchangeContext.cpp @@ -542,7 +542,6 @@ CHIP_ERROR ExchangeContext::HandleMessage(uint32_t messageCounter, const Payload if (payloadHeader.NeedsAck()) { // An acknowledgment needs to be sent back to the peer for this message on this exchange, - HandleNeedsAck(messageCounter, msgFlags); } } @@ -590,6 +589,9 @@ CHIP_ERROR ExchangeContext::HandleMessage(uint32_t messageCounter, const Payload app::ICDNotifier::GetInstance().BroadcastNetworkActivityNotification(); #endif // CHIP_CONFIG_ENABLE_ICD_SERVER + // Set kFlagReceivedAtLeastOneMessage to true since we have received at least one new application level message + SetHasReceivedAtLeastOneMessage(true); + if (IsResponseExpected()) { // Since we got the response, cancel the response timer. diff --git a/src/messaging/ExchangeContext.h b/src/messaging/ExchangeContext.h index e30cf0593b3ed9..fc20a5aace5273 100644 --- a/src/messaging/ExchangeContext.h +++ b/src/messaging/ExchangeContext.h @@ -214,6 +214,14 @@ class DLL_EXPORT ExchangeContext : public ReliableMessageContext, */ bool IsSendExpected() const { return mFlags.Has(Flags::kFlagWillSendMessage); } + /** + * Tracks whether we have received at least one application level message + * during the life-time of this exchange + * + * @return Returns 'true' if we have received at least one message, else 'false' + */ + inline bool HasReceivedAtLeastOneMessage() { return mFlags.Has(Flags::kFlagReceivedAtLeastOneMessage); } + #if CONFIG_BUILD_FOR_HOST_UNIT_TEST SessionHolder & GetSessionHolder() { return mSession; } @@ -292,42 +300,19 @@ class DLL_EXPORT ExchangeContext : public ReliableMessageContext, */ void MessageHandled(); - /** - * Updates Sleepy End Device intervals mode in the following way: - * - does nothing for exchanges over Bluetooth LE - * - requests active mode if there are more messages, - * including MRP acknowledgements, expected to be sent or received on - * this exchange. - * - withdraws the request for active mode, otherwise. - */ - void UpdateSEDIntervalMode(); - - /** - * Requests or withdraws the request for Sleepy End Device active mode - * based on the argument value. - * - * Note that the device switches to the idle mode if no - * exchange nor other component requests the active mode. - */ - void UpdateSEDIntervalMode(bool activeMode); - static ExchangeMessageDispatch & GetMessageDispatch(bool isEphemeralExchange, ExchangeDelegate * delegate); // If SetAutoReleaseSession() is called, this exchange must be using a SecureSession, and should // evict it when the exchange is done with all its work (including any MRP traffic). - inline void SetIgnoreSessionRelease(bool ignore); - inline bool ShouldIgnoreSessionRelease(); -}; + inline void SetIgnoreSessionRelease(bool ignore) { mFlags.Set(Flags::kFlagIgnoreSessionRelease, ignore); } -inline void ExchangeContext::SetIgnoreSessionRelease(bool ignore) -{ - mFlags.Set(Flags::kFlagIgnoreSessionRelease, ignore); -} + inline bool ShouldIgnoreSessionRelease() { return mFlags.Has(Flags::kFlagIgnoreSessionRelease); } -inline bool ExchangeContext::ShouldIgnoreSessionRelease() -{ - return mFlags.Has(Flags::kFlagIgnoreSessionRelease); -} + inline void SetHasReceivedAtLeastOneMessage(bool hasReceivedMessage) + { + mFlags.Set(Flags::kFlagReceivedAtLeastOneMessage, hasReceivedMessage); + } +}; } // namespace Messaging } // namespace chip diff --git a/src/messaging/ReliableMessageContext.cpp b/src/messaging/ReliableMessageContext.cpp index ece92063ffff69..30f00a67814a25 100644 --- a/src/messaging/ReliableMessageContext.cpp +++ b/src/messaging/ReliableMessageContext.cpp @@ -107,7 +107,6 @@ void ReliableMessageContext::HandleRcvdAck(uint32_t ackMessageCounter) } CHIP_ERROR ReliableMessageContext::HandleNeedsAck(uint32_t messageCounter, BitFlags messageFlags) - { CHIP_ERROR err = HandleNeedsAckInner(messageCounter, messageFlags); diff --git a/src/messaging/ReliableMessageContext.h b/src/messaging/ReliableMessageContext.h index 7fb90bfcd54c36..7e8f725cbed15b 100644 --- a/src/messaging/ReliableMessageContext.h +++ b/src/messaging/ReliableMessageContext.h @@ -123,9 +123,6 @@ class ReliableMessageContext /// Set if this exchange is requesting Sleepy End Device active mode void SetRequestingActiveMode(bool activeMode); - /// Determine whether this exchange is requesting Sleepy End Device active mode - bool IsRequestingActiveMode() const; - /// Determine whether this exchange is a EphemeralExchange for replying a StandaloneAck bool IsEphemeralExchange() const; @@ -169,14 +166,17 @@ class ReliableMessageContext /// When set, we have had Close() or Abort() called on us already. kFlagClosed = (1u << 7), - /// When set, signifies that the exchange is requesting Sleepy End Device active mode. - kFlagActiveMode = (1u << 8), - /// When set, signifies that the exchange created sorely for replying a StandaloneAck - kFlagEphemeralExchange = (1u << 9), + kFlagEphemeralExchange = (1u << 8), /// When set, ignore session being released, because we are releasing it ourselves. - kFlagIgnoreSessionRelease = (1u << 10), + kFlagIgnoreSessionRelease = (1u << 9), + + // This flag is used to determine if the peer (receiver) should be considered active or not. + // When set, sender knows it has received at least one application-level message + // from the peer and can assume the peer (receiver) is active. + // If the flag is not set, we don't know if the peer (receiver) is active or not. + kFlagReceivedAtLeastOneMessage = (1u << 10), /// When set: /// @@ -238,11 +238,6 @@ inline bool ReliableMessageContext::HasPiggybackAckPending() const return mFlags.Has(Flags::kFlagAckMessageCounterIsValid); } -inline bool ReliableMessageContext::IsRequestingActiveMode() const -{ - return mFlags.Has(Flags::kFlagActiveMode); -} - inline void ReliableMessageContext::SetAutoRequestAck(bool autoReqAck) { mFlags.Set(Flags::kFlagAutoRequestAck, autoReqAck); @@ -253,11 +248,6 @@ inline void ReliableMessageContext::SetAckPending(bool inAckPending) mFlags.Set(Flags::kFlagAckPending, inAckPending); } -inline void ReliableMessageContext::SetRequestingActiveMode(bool activeMode) -{ - mFlags.Set(Flags::kFlagActiveMode, activeMode); -} - inline bool ReliableMessageContext::IsEphemeralExchange() const { return mFlags.Has(Flags::kFlagEphemeralExchange); diff --git a/src/messaging/ReliableMessageMgr.cpp b/src/messaging/ReliableMessageMgr.cpp index f0ee9f380092fe..e22bd4db24a517 100644 --- a/src/messaging/ReliableMessageMgr.cpp +++ b/src/messaging/ReliableMessageMgr.cpp @@ -168,10 +168,7 @@ void ReliableMessageMgr::ExecuteActions() " Send Cnt %d", messageCounter, ChipLogValueExchange(&entry->ec.Get()), entry->sendCount); - // Choose active/idle timeout from PeerActiveMode of session per 4.11.2.1. Retransmissions. - System::Clock::Timestamp baseTimeout = entry->ec->GetSessionHandle()->GetMRPBaseTimeout(); - System::Clock::Timestamp backoff = ReliableMessageMgr::GetBackoff(baseTimeout, entry->sendCount); - entry->nextRetransTime = System::SystemClock().GetMonotonicTimestamp() + backoff; + CalculateNextRetransTime(*entry); SendFromRetransTable(entry); return Loop::Continue; @@ -272,10 +269,7 @@ System::Clock::Timestamp ReliableMessageMgr::GetBackoff(System::Clock::Timestamp void ReliableMessageMgr::StartRetransmision(RetransTableEntry * entry) { - // Choose active/idle timeout from PeerActiveMode of session per 4.11.2.1. Retransmissions. - System::Clock::Timestamp baseTimeout = entry->ec->GetSessionHandle()->GetMRPBaseTimeout(); - System::Clock::Timestamp backoff = ReliableMessageMgr::GetBackoff(baseTimeout, entry->sendCount); - entry->nextRetransTime = System::SystemClock().GetMonotonicTimestamp() + backoff; + CalculateNextRetransTime(*entry); StartTimer(); } @@ -456,6 +450,27 @@ CHIP_ERROR ReliableMessageMgr::MapSendError(CHIP_ERROR error, uint16_t exchangeI return error; } +void ReliableMessageMgr::CalculateNextRetransTime(RetransTableEntry & entry) +{ + System::Clock::Timestamp baseTimeout = System::Clock::Milliseconds64(0); + + // Check if we have received at least one application-level message + if (entry.ec->HasReceivedAtLeastOneMessage()) + { + // If we have received at least one message, assume peer is active and use ActiveRetransTimeout + baseTimeout = entry.ec->GetSessionHandle()->GetRemoteMRPConfig().mActiveRetransTimeout; + } + else + { + // If we haven't received at least one message + // Choose active/idle timeout from PeerActiveMode of session per 4.11.2.1. Retransmissions. + baseTimeout = entry.ec->GetSessionHandle()->GetMRPBaseTimeout(); + } + + System::Clock::Timestamp backoff = ReliableMessageMgr::GetBackoff(baseTimeout, entry.sendCount); + entry.nextRetransTime = System::SystemClock().GetMonotonicTimestamp() + backoff; +} + #if CHIP_CONFIG_TEST int ReliableMessageMgr::TestGetCountRetransTable() { diff --git a/src/messaging/ReliableMessageMgr.h b/src/messaging/ReliableMessageMgr.h index ea31e46f4df066..934094c83d4259 100644 --- a/src/messaging/ReliableMessageMgr.h +++ b/src/messaging/ReliableMessageMgr.h @@ -206,6 +206,14 @@ class ReliableMessageMgr #endif // CHIP_CONFIG_TEST private: + /** + * Calculates the next retransmission time for the entry + * Function sets the nextRetransTime of the entry + * + * @param[in,out] entry RetransTableEntry for which we need to calculate the nextRetransTime + */ + void CalculateNextRetransTime(RetransTableEntry & entry); + ObjectPool & mContextPool; chip::System::Layer * mSystemLayer; diff --git a/src/messaging/tests/TestReliableMessageProtocol.cpp b/src/messaging/tests/TestReliableMessageProtocol.cpp index c8b318e3bd6c30..325f27c782832c 100644 --- a/src/messaging/tests/TestReliableMessageProtocol.cpp +++ b/src/messaging/tests/TestReliableMessageProtocol.cpp @@ -296,7 +296,36 @@ struct BackoffComplianceTestVector theBackoffComplianceTestVector[] = { }, }; -void CheckAddClearRetrans(nlTestSuite * inSuite, void * inContext) +} // namespace + +class TestReliableMessageProtocol +{ +public: + static void CheckAddClearRetrans(nlTestSuite * inSuite, void * inContext); + static void CheckResendApplicationMessage(nlTestSuite * inSuite, void * inContext); + static void CheckCloseExchangeAndResendApplicationMessage(nlTestSuite * inSuite, void * inContext); + static void CheckFailedMessageRetainOnSend(nlTestSuite * inSuite, void * inContext); + static void CheckResendApplicationMessageWithPeerExchange(nlTestSuite * inSuite, void * inContext); + static void CheckResendSessionEstablishmentMessageWithPeerExchange(nlTestSuite * inSuite, void * inContext); + static void CheckDuplicateMessage(nlTestSuite * inSuite, void * inContext); + static void CheckDuplicateMessageClosedExchange(nlTestSuite * inSuite, void * inContext); + static void CheckDuplicateOldMessageClosedExchange(nlTestSuite * inSuite, void * inContext); + static void CheckReceiveAfterStandaloneAck(nlTestSuite * inSuite, void * inContext); + static void CheckPiggybackAfterPiggyback(nlTestSuite * inSuite, void * inContext); + static void CheckSendUnsolicitedStandaloneAckMessage(nlTestSuite * inSuite, void * inContext); + static void CheckSendStandaloneAckMessage(nlTestSuite * inSuite, void * inContext); + static void CheckMessageAfterClosed(nlTestSuite * inSuite, void * inContext); + static void CheckUnencryptedMessageReceiveFailure(nlTestSuite * inSuite, void * inContext); + static void CheckLostResponseWithPiggyback(nlTestSuite * inSuite, void * inContext); + static void CheckLostStandaloneAck(nlTestSuite * inSuite, void * inContext); + static void CheckIsPeerActiveNotInitiator(nlTestSuite * inSuite, void * inContext); + static void CheckGetBackoff(nlTestSuite * inSuite, void * inContext); + static void CheckApplicationResponseDelayed(nlTestSuite * inSuite, void * inContext); + static void CheckApplicationResponseNeverComes(nlTestSuite * inSuite, void * inContext); + static int InitializeTestCase(void * inContext); +}; + +void TestReliableMessageProtocol::CheckAddClearRetrans(nlTestSuite * inSuite, void * inContext) { TestContext & ctx = *reinterpret_cast(inContext); @@ -345,7 +374,7 @@ void CheckAddClearRetrans(nlTestSuite * inSuite, void * inContext) * - PEER to acknowledge message * - Observe DUT signal successful reliable transmission */ -void CheckResendApplicationMessage(nlTestSuite * inSuite, void * inContext) +void TestReliableMessageProtocol::CheckResendApplicationMessage(nlTestSuite * inSuite, void * inContext) { TestContext & ctx = *reinterpret_cast(inContext); BackoffComplianceTestVector * expectedBackoff; @@ -462,7 +491,7 @@ void CheckResendApplicationMessage(nlTestSuite * inSuite, void * inContext) exchange->Close(); } -void CheckCloseExchangeAndResendApplicationMessage(nlTestSuite * inSuite, void * inContext) +void TestReliableMessageProtocol::CheckCloseExchangeAndResendApplicationMessage(nlTestSuite * inSuite, void * inContext) { TestContext & ctx = *reinterpret_cast(inContext); @@ -522,7 +551,7 @@ void CheckCloseExchangeAndResendApplicationMessage(nlTestSuite * inSuite, void * NL_TEST_ASSERT(inSuite, rm->TestGetCountRetransTable() == 0); } -void CheckFailedMessageRetainOnSend(nlTestSuite * inSuite, void * inContext) +void TestReliableMessageProtocol::CheckFailedMessageRetainOnSend(nlTestSuite * inSuite, void * inContext) { TestContext & ctx = *reinterpret_cast(inContext); @@ -567,7 +596,7 @@ void CheckFailedMessageRetainOnSend(nlTestSuite * inSuite, void * inContext) NL_TEST_ASSERT(inSuite, rm->TestGetCountRetransTable() == 0); } -void CheckUnencryptedMessageReceiveFailure(nlTestSuite * inSuite, void * inContext) +void TestReliableMessageProtocol::CheckUnencryptedMessageReceiveFailure(nlTestSuite * inSuite, void * inContext) { TestContext & ctx = *reinterpret_cast(inContext); @@ -606,7 +635,7 @@ void CheckUnencryptedMessageReceiveFailure(nlTestSuite * inSuite, void * inConte NL_TEST_ASSERT(inSuite, rm->TestGetCountRetransTable() == 0); } -void CheckResendApplicationMessageWithPeerExchange(nlTestSuite * inSuite, void * inContext) +void TestReliableMessageProtocol::CheckResendApplicationMessageWithPeerExchange(nlTestSuite * inSuite, void * inContext) { TestContext & ctx = *reinterpret_cast(inContext); @@ -668,7 +697,7 @@ void CheckResendApplicationMessageWithPeerExchange(nlTestSuite * inSuite, void * NL_TEST_ASSERT(inSuite, err == CHIP_NO_ERROR); } -void CheckDuplicateMessageClosedExchange(nlTestSuite * inSuite, void * inContext) +void TestReliableMessageProtocol::CheckDuplicateMessageClosedExchange(nlTestSuite * inSuite, void * inContext) { TestContext & ctx = *reinterpret_cast(inContext); @@ -735,7 +764,7 @@ void CheckDuplicateMessageClosedExchange(nlTestSuite * inSuite, void * inContext NL_TEST_ASSERT(inSuite, rm->TestGetCountRetransTable() == 0); } -void CheckDuplicateOldMessageClosedExchange(nlTestSuite * inSuite, void * inContext) +void TestReliableMessageProtocol::CheckDuplicateOldMessageClosedExchange(nlTestSuite * inSuite, void * inContext) { TestContext & ctx = *reinterpret_cast(inContext); @@ -832,7 +861,7 @@ void CheckDuplicateOldMessageClosedExchange(nlTestSuite * inSuite, void * inCont NL_TEST_ASSERT(inSuite, rm->TestGetCountRetransTable() == 0); } -void CheckResendSessionEstablishmentMessageWithPeerExchange(nlTestSuite * inSuite, void * inContext) +void TestReliableMessageProtocol::CheckResendSessionEstablishmentMessageWithPeerExchange(nlTestSuite * inSuite, void * inContext) { // Making this static to reduce stack usage, as some platforms have limits on stack size. static Test::MessagingContext ctx; @@ -900,7 +929,7 @@ void CheckResendSessionEstablishmentMessageWithPeerExchange(nlTestSuite * inSuit ctx.ShutdownAndRestoreExisting(inctx); } -void CheckDuplicateMessage(nlTestSuite * inSuite, void * inContext) +void TestReliableMessageProtocol::CheckDuplicateMessage(nlTestSuite * inSuite, void * inContext) { TestContext & ctx = *reinterpret_cast(inContext); @@ -970,7 +999,7 @@ void CheckDuplicateMessage(nlTestSuite * inSuite, void * inContext) mockReceiver.CloseExchangeIfNeeded(); } -void CheckReceiveAfterStandaloneAck(nlTestSuite * inSuite, void * inContext) +void TestReliableMessageProtocol::CheckReceiveAfterStandaloneAck(nlTestSuite * inSuite, void * inContext) { TestContext & ctx = *reinterpret_cast(inContext); @@ -1060,7 +1089,7 @@ void CheckReceiveAfterStandaloneAck(nlTestSuite * inSuite, void * inContext) NL_TEST_ASSERT(inSuite, rm->TestGetCountRetransTable() == 0); } -void CheckPiggybackAfterPiggyback(nlTestSuite * inSuite, void * inContext) +void TestReliableMessageProtocol::CheckPiggybackAfterPiggyback(nlTestSuite * inSuite, void * inContext) { TestContext & ctx = *reinterpret_cast(inContext); @@ -1191,7 +1220,7 @@ void CheckPiggybackAfterPiggyback(nlTestSuite * inSuite, void * inContext) NL_TEST_ASSERT(inSuite, rm->TestGetCountRetransTable() == 0); } -void CheckSendUnsolicitedStandaloneAckMessage(nlTestSuite * inSuite, void * inContext) +void TestReliableMessageProtocol::CheckSendUnsolicitedStandaloneAckMessage(nlTestSuite * inSuite, void * inContext) { /** * Tests sending a standalone ack message that is: @@ -1242,7 +1271,7 @@ void CheckSendUnsolicitedStandaloneAckMessage(nlTestSuite * inSuite, void * inCo NL_TEST_ASSERT(inSuite, rm->TestGetCountRetransTable() == 0); } -void CheckSendStandaloneAckMessage(nlTestSuite * inSuite, void * inContext) +void TestReliableMessageProtocol::CheckSendStandaloneAckMessage(nlTestSuite * inSuite, void * inContext) { TestContext & ctx = *reinterpret_cast(inContext); @@ -1262,7 +1291,7 @@ void CheckSendStandaloneAckMessage(nlTestSuite * inSuite, void * inContext) exchange->Close(); } -void CheckMessageAfterClosed(nlTestSuite * inSuite, void * inContext) +void TestReliableMessageProtocol::CheckMessageAfterClosed(nlTestSuite * inSuite, void * inContext) { /** * This test performs the following sequence of actions, where all messages @@ -1387,7 +1416,7 @@ void CheckMessageAfterClosed(nlTestSuite * inSuite, void * inContext) NL_TEST_ASSERT(inSuite, rm->TestGetCountRetransTable() == 0); } -void CheckLostResponseWithPiggyback(nlTestSuite * inSuite, void * inContext) +void TestReliableMessageProtocol::CheckLostResponseWithPiggyback(nlTestSuite * inSuite, void * inContext) { /** * This tests the following scenario: @@ -1541,7 +1570,125 @@ void CheckLostResponseWithPiggyback(nlTestSuite * inSuite, void * inContext) NL_TEST_ASSERT(inSuite, rm->TestGetCountRetransTable() == 0); } -void CheckLostStandaloneAck(nlTestSuite * inSuite, void * inContext) +void TestReliableMessageProtocol::CheckIsPeerActiveNotInitiator(nlTestSuite * inSuite, void * inContext) +{ + /** + * This tests the following scenario: + * 1) A reliable message expecting a response is sent from the initiator to responder which is lost + * 2) Initiator resends the message at the IdleRetrans interval + * 3) Responder receives the message and sends a standalone ack + * 4) Responder sends a response and fails + * 5) Responder retries at the ActiveRestrans interval + * 6) Initiator receives the response + */ + + TestContext & ctx = *reinterpret_cast(inContext); + + chip::System::PacketBufferHandle buffer = chip::MessagePacketBuffer::NewWithData(PAYLOAD, sizeof(PAYLOAD)); + NL_TEST_ASSERT(inSuite, !buffer.IsNull()); + + CHIP_ERROR err = CHIP_NO_ERROR; + + MockAppDelegate mockReceiver(ctx); + err = ctx.GetExchangeManager().RegisterUnsolicitedMessageHandlerForType(Echo::MsgType::EchoRequest, &mockReceiver); + NL_TEST_ASSERT(inSuite, err == CHIP_NO_ERROR); + + mockReceiver.mTestSuite = inSuite; + + MockAppDelegate mockSender(ctx); + ExchangeContext * exchange = ctx.NewExchangeToAlice(&mockSender); + NL_TEST_ASSERT(inSuite, exchange != nullptr); + + mockSender.mTestSuite = inSuite; + + exchange->GetSessionHandle()->AsSecureSession()->SetRemoteMRPConfig({ + 1000_ms32, // CHIP_CONFIG_MRP_LOCAL_IDLE_RETRY_INTERVAL + 1000_ms32, // CHIP_CONFIG_MRP_LOCAL_ACTIVE_RETRY_INTERVAL + }); + + ReliableMessageMgr * rm = ctx.GetExchangeManager().GetReliableMessageMgr(); + NL_TEST_ASSERT(inSuite, rm != nullptr); + + // Ensure the retransmit table is empty right now + NL_TEST_ASSERT(inSuite, rm->TestGetCountRetransTable() == 0); + + auto & loopback = ctx.GetLoopback(); + loopback.mSentMessageCount = 0; + loopback.mNumMessagesToDrop = 1; + loopback.mDroppedMessageCount = 0; + + mockReceiver.mRetainExchange = true; + mockSender.mRetainExchange = true; + + NL_TEST_ASSERT(inSuite, !exchange->HasReceivedAtLeastOneMessage()); + + err = exchange->SendMessage(Echo::MsgType::EchoRequest, std::move(buffer), SendFlags(SendMessageFlags::kExpectResponse)); + NL_TEST_ASSERT(inSuite, err == CHIP_NO_ERROR); + ctx.DrainAndServiceIO(); + + // Verify that the first message is dropped + NL_TEST_ASSERT(inSuite, loopback.mDroppedMessageCount == 1); + NL_TEST_ASSERT(inSuite, loopback.mSentMessageCount == 1); + NL_TEST_ASSERT(inSuite, loopback.mNumMessagesToDrop == 0); + + // Make sure retransmit was not done before the idle restrans interval hits + ctx.GetIOContext().DriveIOUntil(500_ms32, [&] { return loopback.mSentMessageCount >= 1; }); + ctx.DrainAndServiceIO(); + + NL_TEST_ASSERT(inSuite, !exchange->HasReceivedAtLeastOneMessage()); + + // // Make sure nothing happened + NL_TEST_ASSERT(inSuite, loopback.mSentMessageCount == 1); + NL_TEST_ASSERT(inSuite, !mockReceiver.IsOnMessageReceivedCalled); + + // // Retrasnmit message + ctx.GetIOContext().DriveIOUntil(2000_ms32, [&] { return loopback.mSentMessageCount >= 2; }); + ctx.DrainAndServiceIO(); + + NL_TEST_ASSERT(inSuite, !exchange->HasReceivedAtLeastOneMessage()); + + // // Make sure nothing happened + NL_TEST_ASSERT(inSuite, loopback.mSentMessageCount == 2); + NL_TEST_ASSERT(inSuite, mockReceiver.IsOnMessageReceivedCalled); + + // // Verify that the receiver considers the sender is active + NL_TEST_ASSERT(inSuite, !exchange->HasReceivedAtLeastOneMessage()); + NL_TEST_ASSERT(inSuite, mockReceiver.mExchange->HasReceivedAtLeastOneMessage()); + + mockReceiver.mExchange->GetSessionHandle()->AsSecureSession()->SetRemoteMRPConfig({ + 1000_ms32, // CHIP_CONFIG_MRP_LOCAL_IDLE_RETRY_INTERVAL + 100_ms32, // CHIP_CONFIG_MRP_LOCAL_ACTIVE_RETRY_INTERVAL + }); + + mockReceiver.mRetainExchange = false; + mockSender.mRetainExchange = false; + + // Now send a message from the other side. + buffer = chip::MessagePacketBuffer::NewWithData(PAYLOAD, sizeof(PAYLOAD)); + NL_TEST_ASSERT(inSuite, !buffer.IsNull()); + + // Make receiver message fail once + loopback.mNumMessagesToDrop = 1; + + err = mockReceiver.mExchange->SendMessage(Echo::MsgType::EchoResponse, std::move(buffer)); + NL_TEST_ASSERT(inSuite, err == CHIP_NO_ERROR); + ctx.DrainAndServiceIO(); + + // Make sure nothing happened + NL_TEST_ASSERT(inSuite, loopback.mDroppedMessageCount == 2); + NL_TEST_ASSERT(inSuite, loopback.mNumMessagesToDrop == 0); + NL_TEST_ASSERT(inSuite, loopback.mSentMessageCount == 3); + NL_TEST_ASSERT(inSuite, !mockSender.IsOnMessageReceivedCalled); + + // // Retrasnmit message + ctx.GetIOContext().DriveIOUntil(150_ms32, [&] { return loopback.mSentMessageCount >= 4; }); + ctx.DrainAndServiceIO(); + + NL_TEST_ASSERT(inSuite, mockSender.IsOnMessageReceivedCalled); + NL_TEST_ASSERT(inSuite, loopback.mSentMessageCount == 5); +} + +void TestReliableMessageProtocol::CheckLostStandaloneAck(nlTestSuite * inSuite, void * inContext) { /** * This tests the following scenario: @@ -1669,7 +1816,7 @@ void CheckLostStandaloneAck(nlTestSuite * inSuite, void * inContext) NL_TEST_ASSERT(inSuite, rm->TestGetCountRetransTable() == 0); } -void CheckGetBackoff(nlTestSuite * inSuite, void * inContext) +void TestReliableMessageProtocol::CheckGetBackoff(nlTestSuite * inSuite, void * inContext) { // Run 3x iterations to thoroughly test random jitter always results in backoff within bounds. for (uint32_t j = 0; j < 3; j++) @@ -1686,7 +1833,7 @@ void CheckGetBackoff(nlTestSuite * inSuite, void * inContext) } } -void CheckApplicationResponseDelayed(nlTestSuite * inSuite, void * inContext) +void TestReliableMessageProtocol::CheckApplicationResponseDelayed(nlTestSuite * inSuite, void * inContext) { TestContext & ctx = *reinterpret_cast(inContext); @@ -1849,7 +1996,7 @@ void CheckApplicationResponseDelayed(nlTestSuite * inSuite, void * inContext) NL_TEST_ASSERT(inSuite, err == CHIP_NO_ERROR); } -void CheckApplicationResponseNeverComes(nlTestSuite * inSuite, void * inContext) +void TestReliableMessageProtocol::CheckApplicationResponseNeverComes(nlTestSuite * inSuite, void * inContext) { TestContext & ctx = *reinterpret_cast(inContext); @@ -1977,7 +2124,7 @@ void CheckApplicationResponseNeverComes(nlTestSuite * inSuite, void * inContext) NL_TEST_ASSERT(inSuite, err == CHIP_NO_ERROR); } -int InitializeTestCase(void * inContext) +int TestReliableMessageProtocol::InitializeTestCase(void * inContext) { TestContext & ctx = *static_cast(inContext); ctx.GetSessionAliceToBob()->AsSecureSession()->SetRemoteMRPConfig(GetLocalMRPConfig().ValueOr(GetDefaultMRPConfig())); @@ -2001,34 +2148,44 @@ int InitializeTestCase(void * inContext) */ const nlTest sTests[] = { - NL_TEST_DEF("Test ReliableMessageMgr::CheckAddClearRetrans", CheckAddClearRetrans), - NL_TEST_DEF("Test ReliableMessageMgr::CheckResendApplicationMessage", CheckResendApplicationMessage), + NL_TEST_DEF("Test ReliableMessageMgr::CheckAddClearRetrans", TestReliableMessageProtocol::CheckAddClearRetrans), + NL_TEST_DEF("Test ReliableMessageMgr::CheckResendApplicationMessage", + TestReliableMessageProtocol::CheckResendApplicationMessage), NL_TEST_DEF("Test ReliableMessageMgr::CheckCloseExchangeAndResendApplicationMessage", - CheckCloseExchangeAndResendApplicationMessage), - NL_TEST_DEF("Test ReliableMessageMgr::CheckFailedMessageRetainOnSend", CheckFailedMessageRetainOnSend), + TestReliableMessageProtocol::CheckCloseExchangeAndResendApplicationMessage), + NL_TEST_DEF("Test ReliableMessageMgr::CheckFailedMessageRetainOnSend", + TestReliableMessageProtocol::CheckFailedMessageRetainOnSend), NL_TEST_DEF("Test ReliableMessageMgr::CheckResendApplicationMessageWithPeerExchange", - CheckResendApplicationMessageWithPeerExchange), + TestReliableMessageProtocol::CheckResendApplicationMessageWithPeerExchange), NL_TEST_DEF("Test ReliableMessageMgr::CheckResendSessionEstablishmentMessageWithPeerExchange", - CheckResendSessionEstablishmentMessageWithPeerExchange), - NL_TEST_DEF("Test ReliableMessageMgr::CheckDuplicateMessage", CheckDuplicateMessage), - NL_TEST_DEF("Test ReliableMessageMgr::CheckDuplicateMessageClosedExchange", CheckDuplicateMessageClosedExchange), - NL_TEST_DEF("Test ReliableMessageMgr::CheckDuplicateOldMessageClosedExchange", CheckDuplicateOldMessageClosedExchange), - NL_TEST_DEF("Test that a reply after a standalone ack comes through correctly", CheckReceiveAfterStandaloneAck), + TestReliableMessageProtocol::CheckResendSessionEstablishmentMessageWithPeerExchange), + NL_TEST_DEF("Test ReliableMessageMgr::CheckDuplicateMessage", TestReliableMessageProtocol::CheckDuplicateMessage), + NL_TEST_DEF("Test ReliableMessageMgr::CheckDuplicateMessageClosedExchange", + TestReliableMessageProtocol::CheckDuplicateMessageClosedExchange), + NL_TEST_DEF("Test ReliableMessageMgr::CheckDuplicateOldMessageClosedExchange", + TestReliableMessageProtocol::CheckDuplicateOldMessageClosedExchange), + NL_TEST_DEF("Test that a reply after a standalone ack comes through correctly", + TestReliableMessageProtocol::CheckReceiveAfterStandaloneAck), NL_TEST_DEF("Test that a reply to a non-MRP message piggybacks an ack if there were MRP things happening on the context before", - CheckPiggybackAfterPiggyback), - NL_TEST_DEF("Test sending an unsolicited ack-soliciting 'standalone ack' message", CheckSendUnsolicitedStandaloneAckMessage), - NL_TEST_DEF("Test ReliableMessageMgr::CheckSendStandaloneAckMessage", CheckSendStandaloneAckMessage), + TestReliableMessageProtocol::CheckPiggybackAfterPiggyback), + NL_TEST_DEF("Test sending an unsolicited ack-soliciting 'standalone ack' message", + TestReliableMessageProtocol::CheckSendUnsolicitedStandaloneAckMessage), + NL_TEST_DEF("Test ReliableMessageMgr::CheckSendStandaloneAckMessage", + TestReliableMessageProtocol::CheckSendStandaloneAckMessage), NL_TEST_DEF("Test command, response, default response, with receiver closing exchange after sending response", - CheckMessageAfterClosed), - NL_TEST_DEF("Test that unencrypted message is dropped if exchange requires encryption", CheckUnencryptedMessageReceiveFailure), + TestReliableMessageProtocol::CheckMessageAfterClosed), + NL_TEST_DEF("Test that unencrypted message is dropped if exchange requires encryption", + TestReliableMessageProtocol::CheckUnencryptedMessageReceiveFailure), NL_TEST_DEF("Test that dropping an application-level message with a piggyback ack works ok once both sides retransmit", - CheckLostResponseWithPiggyback), + TestReliableMessageProtocol::CheckLostResponseWithPiggyback), NL_TEST_DEF("Test that an application-level response-to-response after a lost standalone ack to the initial message works", - CheckLostStandaloneAck), - NL_TEST_DEF("Test MRP backoff algorithm", CheckGetBackoff), - NL_TEST_DEF("Test an application response that comes after MRP retransmits run out", CheckApplicationResponseDelayed), + TestReliableMessageProtocol::CheckLostStandaloneAck), + NL_TEST_DEF("Test Is Peer Active Retry logic", TestReliableMessageProtocol::CheckIsPeerActiveNotInitiator), + NL_TEST_DEF("Test MRP backoff algorithm", TestReliableMessageProtocol::CheckGetBackoff), + NL_TEST_DEF("Test an application response that comes after MRP retransmits run out", + TestReliableMessageProtocol::CheckApplicationResponseDelayed), NL_TEST_DEF("Test an application response that never comes, so MRP retransmits run out and then exchange times out", - CheckApplicationResponseNeverComes), + TestReliableMessageProtocol::CheckApplicationResponseNeverComes), NL_TEST_SENTINEL(), }; @@ -2038,15 +2195,13 @@ nlTestSuite sSuite = { &sTests[0], TestContext::Initialize, TestContext::Finalize, - InitializeTestCase, + TestReliableMessageProtocol::InitializeTestCase, }; // clang-format on -} // namespace - -int TestReliableMessageProtocol() +int TestReliableMessageProtocolSuite() { return chip::ExecuteTestsWithContext(&sSuite); } -CHIP_REGISTER_TEST_SUITE(TestReliableMessageProtocol) +CHIP_REGISTER_TEST_SUITE(TestReliableMessageProtocolSuite) diff --git a/src/platform/GLibTypeDeleter.h b/src/platform/GLibTypeDeleter.h index 565403566f60a8..93ff40f61c111d 100644 --- a/src/platform/GLibTypeDeleter.h +++ b/src/platform/GLibTypeDeleter.h @@ -60,6 +60,16 @@ struct GErrorDeleter void operator()(GError * object) { g_error_free(object); } }; +struct GIOChannelDeleter +{ + void operator()(GIOChannel * object) { g_io_channel_unref(object); } +}; + +struct GSourceDeleter +{ + void operator()(GSource * object) { g_source_unref(object); } +}; + struct GVariantDeleter { void operator()(GVariant * object) { g_variant_unref(object); } @@ -110,10 +120,16 @@ struct GAutoPtrDeleter using deleter = GErrorDeleter; }; +template <> +struct GAutoPtrDeleter +{ + using deleter = GIOChannelDeleter; +}; + template <> struct GAutoPtrDeleter { - using deleter = GObjectDeleter; + using deleter = GSourceDeleter; }; template <> diff --git a/src/platform/Linux/BLEManagerImpl.cpp b/src/platform/Linux/BLEManagerImpl.cpp index 4e4e853ccdc69f..bf0f4eb2f909bd 100644 --- a/src/platform/Linux/BLEManagerImpl.cpp +++ b/src/platform/Linux/BLEManagerImpl.cpp @@ -344,21 +344,26 @@ void BLEManagerImpl::HandlePlatformSpecificBLEEvent(const ChipDeviceEvent * apEv uint16_t BLEManagerImpl::GetMTU(BLE_CONNECTION_OBJECT conId) const { - BluezConnection * connection = static_cast(conId); - return (connection != nullptr) ? connection->mMtu : 0; + uint16_t mtu = 0; + VerifyOrExit(conId != BLE_CONNECTION_UNINITIALIZED, + ChipLogError(DeviceLayer, "BLE connection is not initialized in %s", __func__)); + mtu = conId->GetMTU(); +exit: + return mtu; } bool BLEManagerImpl::SubscribeCharacteristic(BLE_CONNECTION_OBJECT conId, const ChipBleUUID * svcId, const ChipBleUUID * charId) { bool result = false; + VerifyOrExit(conId != BLE_CONNECTION_UNINITIALIZED, + ChipLogError(DeviceLayer, "BLE connection is not initialized in %s", __func__)); VerifyOrExit(Ble::UUIDsMatch(svcId, &CHIP_BLE_SVC_ID), ChipLogError(DeviceLayer, "SubscribeCharacteristic() called with invalid service ID")); VerifyOrExit(Ble::UUIDsMatch(charId, &ChipUUID_CHIPoBLEChar_TX), ChipLogError(DeviceLayer, "SubscribeCharacteristic() called with invalid characteristic ID")); - VerifyOrExit(BluezSubscribeCharacteristic(conId) == CHIP_NO_ERROR, - ChipLogError(DeviceLayer, "BluezSubscribeCharacteristic() failed")); + VerifyOrExit(conId->SubscribeCharacteristic() == CHIP_NO_ERROR, ChipLogError(DeviceLayer, "SubscribeCharacteristic() failed")); result = true; exit: @@ -369,13 +374,15 @@ bool BLEManagerImpl::UnsubscribeCharacteristic(BLE_CONNECTION_OBJECT conId, cons { bool result = false; + VerifyOrExit(conId != BLE_CONNECTION_UNINITIALIZED, + ChipLogError(DeviceLayer, "BLE connection is not initialized in %s", __func__)); VerifyOrExit(Ble::UUIDsMatch(svcId, &CHIP_BLE_SVC_ID), ChipLogError(DeviceLayer, "UnsubscribeCharacteristic() called with invalid service ID")); VerifyOrExit(Ble::UUIDsMatch(charId, &ChipUUID_CHIPoBLEChar_TX), ChipLogError(DeviceLayer, "UnsubscribeCharacteristic() called with invalid characteristic ID")); - VerifyOrExit(BluezUnsubscribeCharacteristic(conId) == CHIP_NO_ERROR, - ChipLogError(DeviceLayer, "BluezUnsubscribeCharacteristic() failed")); + VerifyOrExit(conId->UnsubscribeCharacteristic() == CHIP_NO_ERROR, + ChipLogError(DeviceLayer, "UnsubscribeCharacteristic() failed")); result = true; exit: @@ -386,9 +393,11 @@ bool BLEManagerImpl::CloseConnection(BLE_CONNECTION_OBJECT conId) { bool result = false; + VerifyOrExit(conId != BLE_CONNECTION_UNINITIALIZED, + ChipLogError(DeviceLayer, "BLE connection is not initialized in %s", __func__)); ChipLogProgress(DeviceLayer, "Closing BLE GATT connection (con %p)", conId); - VerifyOrExit(CloseBluezConnection(conId) == CHIP_NO_ERROR, ChipLogError(DeviceLayer, "CloseBluezConnection() failed")); + VerifyOrExit(conId->CloseConnection() == CHIP_NO_ERROR, ChipLogError(DeviceLayer, "CloseConnection() failed")); result = true; exit: @@ -400,8 +409,9 @@ bool BLEManagerImpl::SendIndication(BLE_CONNECTION_OBJECT conId, const ChipBleUU { bool result = false; - VerifyOrExit(SendBluezIndication(conId, std::move(pBuf)) == CHIP_NO_ERROR, - ChipLogError(DeviceLayer, "SendBluezIndication() failed")); + VerifyOrExit(conId != BLE_CONNECTION_UNINITIALIZED, + ChipLogError(DeviceLayer, "BLE connection is not initialized in %s", __func__)); + VerifyOrExit(conId->SendIndication(std::move(pBuf)) == CHIP_NO_ERROR, ChipLogError(DeviceLayer, "SendIndication() failed")); result = true; exit: @@ -413,13 +423,14 @@ bool BLEManagerImpl::SendWriteRequest(BLE_CONNECTION_OBJECT conId, const Ble::Ch { bool result = false; + VerifyOrExit(conId != BLE_CONNECTION_UNINITIALIZED, + ChipLogError(DeviceLayer, "BLE connection is not initialized in %s", __func__)); VerifyOrExit(Ble::UUIDsMatch(svcId, &CHIP_BLE_SVC_ID), ChipLogError(DeviceLayer, "SendWriteRequest() called with invalid service ID")); VerifyOrExit(Ble::UUIDsMatch(charId, &ChipUUID_CHIPoBLEChar_RX), ChipLogError(DeviceLayer, "SendWriteRequest() called with invalid characteristic ID")); - VerifyOrExit(BluezSendWriteRequest(conId, std::move(pBuf)) == CHIP_NO_ERROR, - ChipLogError(DeviceLayer, "BluezSendWriteRequest() failed")); + VerifyOrExit(conId->SendWriteRequest(std::move(pBuf)) == CHIP_NO_ERROR, ChipLogError(DeviceLayer, "SendWriteRequest() failed")); result = true; exit: @@ -541,30 +552,18 @@ void BLEManagerImpl::CHIPoBluez_ConnectionClosed(BLE_CONNECTION_OBJECT conId) void BLEManagerImpl::HandleTXCharCCCDWrite(BLE_CONNECTION_OBJECT conId) { - CHIP_ERROR err = CHIP_NO_ERROR; - - BluezConnection * connection = static_cast(conId); - - VerifyOrExit(connection != nullptr, ChipLogError(DeviceLayer, "Connection is NULL in HandleTXCharCCCDWrite")); - VerifyOrExit(connection->mpC2 != nullptr, ChipLogError(DeviceLayer, "C2 is NULL in HandleTXCharCCCDWrite")); + VerifyOrReturn(conId != BLE_CONNECTION_UNINITIALIZED, + ChipLogError(DeviceLayer, "BLE connection is not initialized in %s", __func__)); // Post an event to the Chip queue to process either a CHIPoBLE Subscribe or Unsubscribe based on // whether the client is enabling or disabling indications. - { - ChipDeviceEvent event; - event.Type = connection->mIsNotify ? DeviceEventType::kCHIPoBLESubscribe : DeviceEventType::kCHIPoBLEUnsubscribe; - event.CHIPoBLESubscribe.ConId = connection; - PlatformMgr().PostEventOrDie(&event); - } - - ChipLogProgress(DeviceLayer, "CHIPoBLE %s received", connection->mIsNotify ? "subscribe" : "unsubscribe"); + ChipDeviceEvent event; + event.Type = conId->IsNotifyAcquired() ? DeviceEventType::kCHIPoBLESubscribe : DeviceEventType::kCHIPoBLEUnsubscribe; + event.CHIPoBLESubscribe.ConId = conId; + PlatformMgr().PostEventOrDie(&event); -exit: - if (err != CHIP_NO_ERROR) - { - ChipLogError(DeviceLayer, "HandleTXCharCCCDWrite() failed: %s", ErrorStr(err)); - // TODO: fail connection - } + ChipLogProgress(DeviceLayer, "CHIPoBLE %s received", + (event.Type == DeviceEventType::kCHIPoBLESubscribe) ? "subscribe" : "unsubscribe"); } void BLEManagerImpl::HandleTXComplete(BLE_CONNECTION_OBJECT conId) diff --git a/src/platform/Linux/BlePlatformConfig.h b/src/platform/Linux/BlePlatformConfig.h index 4c1ffd4e66420a..54640b707ab720 100644 --- a/src/platform/Linux/BlePlatformConfig.h +++ b/src/platform/Linux/BlePlatformConfig.h @@ -27,13 +27,15 @@ namespace chip { namespace DeviceLayer { namespace Internal { -struct BluezConnection; +class BluezConnection; } // namespace Internal } // namespace DeviceLayer } // namespace chip // ==================== Platform Adaptations ==================== +#define BLE_CONNECTION_OBJECT chip::DeviceLayer::Internal::BluezConnection * #define BLE_CONNECTION_UNINITIALIZED nullptr + // ========== Platform-specific Configuration Overrides ========= /* none so far */ diff --git a/src/platform/Linux/ConnectivityManagerImpl.cpp b/src/platform/Linux/ConnectivityManagerImpl.cpp index 48abb456a8be68..bbc96914e64e4b 100644 --- a/src/platform/Linux/ConnectivityManagerImpl.cpp +++ b/src/platform/Linux/ConnectivityManagerImpl.cpp @@ -21,7 +21,6 @@ #include #include #include -#include #include #include #include diff --git a/src/platform/Linux/bluez/BluezConnection.cpp b/src/platform/Linux/bluez/BluezConnection.cpp index 142df8f1317202..2d4286a4fe6069 100644 --- a/src/platform/Linux/bluez/BluezConnection.cpp +++ b/src/platform/Linux/bluez/BluezConnection.cpp @@ -40,130 +40,311 @@ namespace chip { namespace DeviceLayer { namespace Internal { -static CHIP_ERROR BluezC2Indicate(BluezConnection::ConnectionDataBundle * closure) +namespace { + +gboolean BluezIsServiceOnDevice(BluezGattService1 * aService, BluezDevice1 * aDevice) { - BluezConnection * conn = nullptr; - GAutoPtr error; - GIOStatus status; - const char * buf; - size_t len, written; + const auto * servicePath = bluez_gatt_service1_get_device(aService); + const auto * devicePath = g_dbus_proxy_get_object_path(G_DBUS_PROXY(aDevice)); + return strcmp(servicePath, devicePath) == 0 ? TRUE : FALSE; +} - VerifyOrExit(closure != nullptr, ChipLogError(DeviceLayer, "ConnectionDataBundle is NULL in %s", __func__)); +gboolean BluezIsCharOnService(BluezGattCharacteristic1 * aChar, BluezGattService1 * aService) +{ + const auto * charPath = bluez_gatt_characteristic1_get_service(aChar); + const auto * servicePath = g_dbus_proxy_get_object_path(G_DBUS_PROXY(aService)); + ChipLogDetail(DeviceLayer, "Char %s on service %s", charPath, servicePath); + return strcmp(charPath, servicePath) == 0 ? TRUE : FALSE; +} - conn = closure->mpConn; - VerifyOrExit(conn != nullptr, ChipLogError(DeviceLayer, "BluezConnection is NULL in %s", __func__)); - VerifyOrExit(conn->mpC2 != nullptr, ChipLogError(DeviceLayer, "FAIL: C2 Indicate: %s", "NULL C2")); +} // namespace - if (bluez_gatt_characteristic1_get_notify_acquired(conn->mpC2) == TRUE) - { - buf = (char *) g_variant_get_fixed_array(closure->mpVal, &len, sizeof(uint8_t)); - VerifyOrExit(len <= static_cast(std::numeric_limits::max()), - ChipLogError(DeviceLayer, "FAIL: buffer too large in %s", __func__)); - status = g_io_channel_write_chars(conn->mC2Channel.mpChannel, buf, static_cast(len), &written, - &MakeUniquePointerReceiver(error).Get()); - g_variant_unref(closure->mpVal); - closure->mpVal = nullptr; +BluezConnection::BluezConnection(BluezEndpoint * apEndpoint, BluezDevice1 * apDevice) : + mpEndpoint(apEndpoint), mpDevice(BLUEZ_DEVICE1(g_object_ref(apDevice))) +{ + Init(); +} - VerifyOrExit(status == G_IO_STATUS_NORMAL, ChipLogError(DeviceLayer, "FAIL: C2 Indicate: %s", error->message)); +BluezConnection::~BluezConnection() +{ + g_object_unref(mpDevice); + if (mpService) + g_object_unref(mpService); + if (mpC1) + g_object_unref(mpC1); + if (mpC2) + g_object_unref(mpC2); +#if CHIP_ENABLE_ADDITIONAL_DATA_ADVERTISING + if (mpC3) + g_object_unref(mpC2); +#endif +} + +BluezConnection::IOChannel::~IOChannel() +{ + if (mWatchSource != nullptr) + // Make sure the source is detached before destroying the channel. + g_source_destroy(mWatchSource.get()); +} + +BluezConnection::ConnectionDataBundle::ConnectionDataBundle(const BluezConnection & aConn, + const chip::System::PacketBufferHandle & aBuf) : + mConn(aConn), + mData(g_variant_new_fixed_array(G_VARIANT_TYPE_BYTE, aBuf->Start(), aBuf->DataLength(), sizeof(uint8_t))) +{} + +CHIP_ERROR BluezConnection::Init() +{ + // populate the service and the characteristics + GList * objects = nullptr; + GList * l; + + if (!mpEndpoint->mIsCentral) + { + mpService = BLUEZ_GATT_SERVICE1(g_object_ref(mpEndpoint->mpService)); + mpC1 = BLUEZ_GATT_CHARACTERISTIC1(g_object_ref(mpEndpoint->mpC1)); + mpC2 = BLUEZ_GATT_CHARACTERISTIC1(g_object_ref(mpEndpoint->mpC2)); } else { - bluez_gatt_characteristic1_set_value(conn->mpC2, closure->mpVal); - closure->mpVal = nullptr; + objects = g_dbus_object_manager_get_objects(mpEndpoint->mpObjMgr); + + for (l = objects; l != nullptr; l = l->next) + { + BluezObject * object = BLUEZ_OBJECT(l->data); + BluezGattService1 * service = bluez_object_get_gatt_service1(object); + + if (service != nullptr) + { + if ((BluezIsServiceOnDevice(service, mpDevice)) == TRUE && + (strcmp(bluez_gatt_service1_get_uuid(service), CHIP_BLE_UUID_SERVICE_STRING) == 0)) + { + mpService = service; + break; + } + g_object_unref(service); + } + } + + VerifyOrExit(mpService != nullptr, ChipLogError(DeviceLayer, "FAIL: NULL service in %s", __func__)); + + for (l = objects; l != nullptr; l = l->next) + { + BluezObject * object = BLUEZ_OBJECT(l->data); + BluezGattCharacteristic1 * char1 = bluez_object_get_gatt_characteristic1(object); + + if (char1 != nullptr) + { + if ((BluezIsCharOnService(char1, mpService) == TRUE) && + (strcmp(bluez_gatt_characteristic1_get_uuid(char1), CHIP_PLAT_BLE_UUID_C1_STRING) == 0)) + { + mpC1 = char1; + } + else if ((BluezIsCharOnService(char1, mpService) == TRUE) && + (strcmp(bluez_gatt_characteristic1_get_uuid(char1), CHIP_PLAT_BLE_UUID_C2_STRING) == 0)) + { + mpC2 = char1; + } +#if CHIP_ENABLE_ADDITIONAL_DATA_ADVERTISING + else if ((BluezIsCharOnService(char1, mpService) == TRUE) && + (strcmp(bluez_gatt_characteristic1_get_uuid(char1), CHIP_PLAT_BLE_UUID_C3_STRING) == 0)) + { + mpC3 = char1; + } +#endif + else + { + g_object_unref(char1); + } + if ((mpC1 != nullptr) && (mpC2 != nullptr)) + { + break; + } + } + } + + VerifyOrExit(mpC1 != nullptr, ChipLogError(DeviceLayer, "FAIL: NULL C1 in %s", __func__)); + VerifyOrExit(mpC2 != nullptr, ChipLogError(DeviceLayer, "FAIL: NULL C2 in %s", __func__)); } exit: - if (closure != nullptr) - { - g_free(closure); - } + if (objects != nullptr) + g_list_free_full(objects, g_object_unref); + return CHIP_NO_ERROR; +} +CHIP_ERROR BluezConnection::BluezDisconnect(BluezConnection * conn) +{ + GAutoPtr error; + gboolean success; + + ChipLogDetail(DeviceLayer, "%s peer=%s", __func__, conn->GetPeerAddress()); + + success = bluez_device1_call_disconnect_sync(conn->mpDevice, nullptr, &MakeUniquePointerReceiver(error).Get()); + VerifyOrExit(success == TRUE, ChipLogError(DeviceLayer, "FAIL: Disconnect: %s", error->message)); + +exit: return CHIP_NO_ERROR; } -static BluezConnection::ConnectionDataBundle * MakeConnectionDataBundle(BLE_CONNECTION_OBJECT apConn, - const chip::System::PacketBufferHandle & apBuf) +CHIP_ERROR BluezConnection::CloseConnection() { - auto * bundle = g_new(BluezConnection::ConnectionDataBundle, 1); - bundle->mpConn = static_cast(apConn); - bundle->mpVal = - g_variant_new_fixed_array(G_VARIANT_TYPE_BYTE, apBuf->Start(), apBuf->DataLength() * sizeof(uint8_t), sizeof(uint8_t)); - return bundle; + return PlatformMgrImpl().GLibMatterContextInvokeSync(BluezDisconnect, this); } -CHIP_ERROR SendBluezIndication(BLE_CONNECTION_OBJECT apConn, chip::System::PacketBufferHandle apBuf) +const char * BluezConnection::GetPeerAddress() const { - VerifyOrReturnError(!apBuf.IsNull(), CHIP_ERROR_INVALID_ARGUMENT, ChipLogError(DeviceLayer, "apBuf is NULL in %s", __func__)); - return PlatformMgrImpl().GLibMatterContextInvokeSync(BluezC2Indicate, MakeConnectionDataBundle(apConn, apBuf)); + return bluez_device1_get_address(mpDevice); } -static CHIP_ERROR BluezDisconnect(BluezConnection * conn) +gboolean BluezConnection::WriteHandlerCallback(GIOChannel * aChannel, GIOCondition aCond, BluezConnection * apConn) { - GAutoPtr error; - gboolean success; + uint8_t buf[512 /* characteristic max size per BLE specification */]; + bool isSuccess = false; + GVariant * newVal; + ssize_t len; - VerifyOrExit(conn != nullptr, ChipLogError(DeviceLayer, "conn is NULL in %s", __func__)); - VerifyOrExit(conn->mpDevice != nullptr, ChipLogError(DeviceLayer, "FAIL: Disconnect: %s", "NULL Device")); + VerifyOrExit(!(aCond & G_IO_HUP), ChipLogError(DeviceLayer, "INFO: socket disconnected in %s", __func__)); + VerifyOrExit(!(aCond & (G_IO_ERR | G_IO_NVAL)), ChipLogError(DeviceLayer, "INFO: socket error in %s", __func__)); + VerifyOrExit(aCond == G_IO_IN, ChipLogError(DeviceLayer, "FAIL: error in %s", __func__)); - ChipLogDetail(DeviceLayer, "%s peer=%s", __func__, bluez_device1_get_address(conn->mpDevice)); + ChipLogDetail(DeviceLayer, "C1 %s MTU: %d", __func__, apConn->GetMTU()); - success = bluez_device1_call_disconnect_sync(conn->mpDevice, nullptr, &MakeUniquePointerReceiver(error).Get()); - VerifyOrExit(success == TRUE, ChipLogError(DeviceLayer, "FAIL: Disconnect: %s", error->message)); + len = read(g_io_channel_unix_get_fd(aChannel), buf, sizeof(buf)); + VerifyOrExit(len > 0, ChipLogError(DeviceLayer, "FAIL: short read in %s (%zd)", __func__, len)); + + // Casting len to size_t is safe, since we ensured that it's not negative. + newVal = g_variant_new_fixed_array(G_VARIANT_TYPE_BYTE, buf, static_cast(len), sizeof(uint8_t)); + + bluez_gatt_characteristic1_set_value(apConn->mpC1, newVal); + BLEManagerImpl::HandleRXCharWrite(apConn, buf, static_cast(len)); + isSuccess = true; + +exit: + return isSuccess ? G_SOURCE_CONTINUE : G_SOURCE_REMOVE; +} + +void BluezConnection::SetupWriteHandler(int aSocketFd) +{ + auto channel = g_io_channel_unix_new(aSocketFd); + g_io_channel_set_encoding(channel, nullptr, nullptr); + g_io_channel_set_close_on_unref(channel, TRUE); + g_io_channel_set_buffered(channel, FALSE); + + auto watchSource = g_io_create_watch(channel, static_cast(G_IO_HUP | G_IO_IN | G_IO_ERR | G_IO_NVAL)); + g_source_set_callback(watchSource, G_SOURCE_FUNC(WriteHandlerCallback), this, nullptr); + + mC1Channel.mChannel.reset(channel); + mC1Channel.mWatchSource.reset(watchSource); + + PlatformMgrImpl().GLibMatterContextAttachSource(watchSource); +} + +gboolean BluezConnection::NotifyHandlerCallback(GIOChannel *, GIOCondition, BluezConnection *) +{ + return G_SOURCE_REMOVE; +} + +void BluezConnection::SetupNotifyHandler(int aSocketFd, bool aAdditionalAdvertising) +{ + auto channel = g_io_channel_unix_new(aSocketFd); + g_io_channel_set_encoding(channel, nullptr, nullptr); + g_io_channel_set_close_on_unref(channel, TRUE); + g_io_channel_set_buffered(channel, FALSE); + + auto watchSource = g_io_create_watch(channel, static_cast(G_IO_HUP | G_IO_ERR | G_IO_NVAL)); + g_source_set_callback(watchSource, G_SOURCE_FUNC(NotifyHandlerCallback), this, nullptr); + +#if CHIP_ENABLE_ADDITIONAL_DATA_ADVERTISING + if (aAdditionalAdvertising) + { + mC3Channel.mChannel.reset(channel); + mC3Channel.mWatchSource.reset(watchSource); + } + else +#endif + { + mC2Channel.mChannel.reset(channel); + mC2Channel.mWatchSource.reset(watchSource); + } + + PlatformMgrImpl().GLibMatterContextAttachSource(watchSource); +} + +// SendIndication callbacks + +CHIP_ERROR BluezConnection::SendIndicationImpl(ConnectionDataBundle * data) +{ + GAutoPtr error; + size_t len, written; + + if (bluez_gatt_characteristic1_get_notify_acquired(data->mConn.mpC2) == TRUE) + { + auto * buf = static_cast(g_variant_get_fixed_array(data->mData.get(), &len, sizeof(uint8_t))); + VerifyOrExit(len <= static_cast(std::numeric_limits::max()), + ChipLogError(DeviceLayer, "FAIL: buffer too large in %s", __func__)); + auto status = g_io_channel_write_chars(data->mConn.mC2Channel.mChannel.get(), buf, static_cast(len), &written, + &MakeUniquePointerReceiver(error).Get()); + VerifyOrExit(status == G_IO_STATUS_NORMAL, ChipLogError(DeviceLayer, "FAIL: C2 Indicate: %s", error->message)); + } + else + { + bluez_gatt_characteristic1_set_value(data->mConn.mpC2, data->mData.release()); + } exit: return CHIP_NO_ERROR; } -CHIP_ERROR CloseBluezConnection(BLE_CONNECTION_OBJECT apConn) +CHIP_ERROR BluezConnection::SendIndication(chip::System::PacketBufferHandle apBuf) { - return PlatformMgrImpl().GLibMatterContextInvokeSync(BluezDisconnect, static_cast(apConn)); + VerifyOrReturnError(!apBuf.IsNull(), CHIP_ERROR_INVALID_ARGUMENT, ChipLogError(DeviceLayer, "apBuf is NULL in %s", __func__)); + VerifyOrReturnError(mpC2 != nullptr, CHIP_ERROR_INTERNAL, ChipLogError(DeviceLayer, "C2 is NULL in %s", __func__)); + + ConnectionDataBundle bundle(*this, apBuf); + return PlatformMgrImpl().GLibMatterContextInvokeSync(SendIndicationImpl, &bundle); } -// BluezSendWriteRequest callbacks +// SendWriteRequest callbacks -static void SendWriteRequestDone(GObject * aObject, GAsyncResult * aResult, gpointer apConnection) +void BluezConnection::SendWriteRequestDone(GObject * aObject, GAsyncResult * aResult, gpointer apConnection) { BluezGattCharacteristic1 * c1 = BLUEZ_GATT_CHARACTERISTIC1(aObject); GAutoPtr error; gboolean success = bluez_gatt_characteristic1_call_write_value_finish(c1, aResult, &MakeUniquePointerReceiver(error).Get()); - VerifyOrReturn(success == TRUE, ChipLogError(DeviceLayer, "FAIL: BluezSendWriteRequest : %s", error->message)); - BLEManagerImpl::HandleWriteComplete(static_cast(apConnection)); + VerifyOrReturn(success == TRUE, ChipLogError(DeviceLayer, "FAIL: SendWriteRequest : %s", error->message)); + BLEManagerImpl::HandleWriteComplete(static_cast(apConnection)); } -static CHIP_ERROR SendWriteRequestImpl(BluezConnection::ConnectionDataBundle * data) +CHIP_ERROR BluezConnection::SendWriteRequestImpl(ConnectionDataBundle * data) { - GVariant * options = nullptr; GVariantBuilder optionsBuilder; - VerifyOrExit(data != nullptr, ChipLogError(DeviceLayer, "ConnectionDataBundle is NULL in %s", __func__)); - VerifyOrExit(data->mpConn != nullptr, ChipLogError(DeviceLayer, "BluezConnection is NULL in %s", __func__)); - VerifyOrExit(data->mpConn->mpC1 != nullptr, ChipLogError(DeviceLayer, "C1 is NULL in %s", __func__)); - g_variant_builder_init(&optionsBuilder, G_VARIANT_TYPE_ARRAY); g_variant_builder_add(&optionsBuilder, "{sv}", "type", g_variant_new_string("request")); - options = g_variant_builder_end(&optionsBuilder); + auto options = g_variant_builder_end(&optionsBuilder); - bluez_gatt_characteristic1_call_write_value(data->mpConn->mpC1, data->mpVal, options, nullptr, SendWriteRequestDone, - data->mpConn); + bluez_gatt_characteristic1_call_write_value(data->mConn.mpC1, data->mData.release(), options, nullptr, SendWriteRequestDone, + const_cast(&data->mConn)); -exit: - g_free(data); return CHIP_NO_ERROR; } -CHIP_ERROR BluezSendWriteRequest(BLE_CONNECTION_OBJECT apConn, chip::System::PacketBufferHandle apBuf) +CHIP_ERROR BluezConnection::SendWriteRequest(chip::System::PacketBufferHandle apBuf) { VerifyOrReturnError(!apBuf.IsNull(), CHIP_ERROR_INVALID_ARGUMENT, ChipLogError(DeviceLayer, "apBuf is NULL in %s", __func__)); - return PlatformMgrImpl().GLibMatterContextInvokeSync(SendWriteRequestImpl, MakeConnectionDataBundle(apConn, apBuf)); + VerifyOrReturnError(mpC1 != nullptr, CHIP_ERROR_INTERNAL, ChipLogError(DeviceLayer, "C1 is NULL in %s", __func__)); + + ConnectionDataBundle bundle(*this, apBuf); + return PlatformMgrImpl().GLibMatterContextInvokeSync(SendWriteRequestImpl, &bundle); } -// BluezSubscribeCharacteristic callbacks +// SubscribeCharacteristic callbacks -static void OnCharacteristicChanged(GDBusProxy * aInterface, GVariant * aChangedProperties, const gchar * const * aInvalidatedProps, - gpointer apConnection) +void BluezConnection::OnCharacteristicChanged(GDBusProxy * aInterface, GVariant * aChangedProperties, + const gchar * const * aInvalidatedProps, gpointer apConnection) { - BLE_CONNECTION_OBJECT connection = static_cast(apConnection); GAutoPtr dataValue(g_variant_lookup_value(aChangedProperties, "Value", G_VARIANT_TYPE_BYTESTRING)); VerifyOrReturn(dataValue != nullptr); @@ -171,24 +352,24 @@ static void OnCharacteristicChanged(GDBusProxy * aInterface, GVariant * aChanged auto buffer = g_variant_get_fixed_array(dataValue.get(), &bufferLen, sizeof(uint8_t)); VerifyOrReturn(buffer != nullptr, ChipLogError(DeviceLayer, "Characteristic value has unexpected type")); - BLEManagerImpl::HandleTXCharChanged(connection, static_cast(buffer), bufferLen); + BLEManagerImpl::HandleTXCharChanged(static_cast(apConnection), static_cast(buffer), + bufferLen); } -static void SubscribeCharacteristicDone(GObject * aObject, GAsyncResult * aResult, gpointer apConnection) +void BluezConnection::SubscribeCharacteristicDone(GObject * aObject, GAsyncResult * aResult, gpointer apConnection) { BluezGattCharacteristic1 * c2 = BLUEZ_GATT_CHARACTERISTIC1(aObject); GAutoPtr error; gboolean success = bluez_gatt_characteristic1_call_write_value_finish(c2, aResult, &MakeUniquePointerReceiver(error).Get()); - VerifyOrReturn(success == TRUE, ChipLogError(DeviceLayer, "FAIL: BluezSubscribeCharacteristic : %s", error->message)); + VerifyOrReturn(success == TRUE, ChipLogError(DeviceLayer, "FAIL: SubscribeCharacteristic : %s", error->message)); - BLEManagerImpl::HandleSubscribeOpComplete(static_cast(apConnection), true); + BLEManagerImpl::HandleSubscribeOpComplete(static_cast(apConnection), true); } -static CHIP_ERROR SubscribeCharacteristicImpl(BluezConnection * connection) +CHIP_ERROR BluezConnection::SubscribeCharacteristicImpl(BluezConnection * connection) { BluezGattCharacteristic1 * c2 = nullptr; - VerifyOrExit(connection != nullptr, ChipLogError(DeviceLayer, "BluezConnection is NULL in %s", __func__)); VerifyOrExit(connection->mpC2 != nullptr, ChipLogError(DeviceLayer, "C2 is NULL in %s", __func__)); c2 = BLUEZ_GATT_CHARACTERISTIC1(connection->mpC2); @@ -200,29 +381,28 @@ static CHIP_ERROR SubscribeCharacteristicImpl(BluezConnection * connection) return CHIP_NO_ERROR; } -CHIP_ERROR BluezSubscribeCharacteristic(BLE_CONNECTION_OBJECT apConn) +CHIP_ERROR BluezConnection::SubscribeCharacteristic() { - return PlatformMgrImpl().GLibMatterContextInvokeSync(SubscribeCharacteristicImpl, static_cast(apConn)); + return PlatformMgrImpl().GLibMatterContextInvokeSync(SubscribeCharacteristicImpl, this); } -// BluezUnsubscribeCharacteristic callbacks +// UnsubscribeCharacteristic callbacks -static void UnsubscribeCharacteristicDone(GObject * aObject, GAsyncResult * aResult, gpointer apConnection) +void BluezConnection::UnsubscribeCharacteristicDone(GObject * aObject, GAsyncResult * aResult, gpointer apConnection) { BluezGattCharacteristic1 * c2 = BLUEZ_GATT_CHARACTERISTIC1(aObject); GAutoPtr error; gboolean success = bluez_gatt_characteristic1_call_write_value_finish(c2, aResult, &MakeUniquePointerReceiver(error).Get()); - VerifyOrReturn(success == TRUE, ChipLogError(DeviceLayer, "FAIL: BluezUnsubscribeCharacteristic : %s", error->message)); + VerifyOrReturn(success == TRUE, ChipLogError(DeviceLayer, "FAIL: UnsubscribeCharacteristic : %s", error->message)); // Stop listening to the TX characteristic changes g_signal_handlers_disconnect_by_data(c2, apConnection); - BLEManagerImpl::HandleSubscribeOpComplete(static_cast(apConnection), false); + BLEManagerImpl::HandleSubscribeOpComplete(static_cast(apConnection), false); } -static CHIP_ERROR UnsubscribeCharacteristicImpl(BluezConnection * connection) +CHIP_ERROR BluezConnection::UnsubscribeCharacteristicImpl(BluezConnection * connection) { - VerifyOrExit(connection != nullptr, ChipLogError(DeviceLayer, "BluezConnection is NULL in %s", __func__)); VerifyOrExit(connection->mpC2 != nullptr, ChipLogError(DeviceLayer, "C2 is NULL in %s", __func__)); bluez_gatt_characteristic1_call_stop_notify(connection->mpC2, nullptr, UnsubscribeCharacteristicDone, connection); @@ -231,9 +411,9 @@ static CHIP_ERROR UnsubscribeCharacteristicImpl(BluezConnection * connection) return CHIP_NO_ERROR; } -CHIP_ERROR BluezUnsubscribeCharacteristic(BLE_CONNECTION_OBJECT apConn) +CHIP_ERROR BluezConnection::UnsubscribeCharacteristic() { - return PlatformMgrImpl().GLibMatterContextInvokeSync(UnsubscribeCharacteristicImpl, static_cast(apConn)); + return PlatformMgrImpl().GLibMatterContextInvokeSync(UnsubscribeCharacteristicImpl, this); } } // namespace Internal diff --git a/src/platform/Linux/bluez/BluezConnection.h b/src/platform/Linux/bluez/BluezConnection.h index 7375fbe79d915d..3a64ac931220a8 100644 --- a/src/platform/Linux/bluez/BluezConnection.h +++ b/src/platform/Linux/bluez/BluezConnection.h @@ -34,45 +34,104 @@ namespace Internal { struct BluezEndpoint; -struct BluezConnection +class BluezConnection { +public: + BluezConnection(BluezEndpoint * apEndpoint, BluezDevice1 * apDevice); + ~BluezConnection(); + const char * GetPeerAddress() const; + + uint16_t GetMTU() const { return mMtu; } + void SetMTU(uint16_t aMtu) { mMtu = aMtu; } + + bool IsNotifyAcquired() const { return mNotifyAcquired; } + void SetNotifyAcquired(bool aNotifyAcquired) { mNotifyAcquired = aNotifyAcquired; } + + /** + * @brief Setup callback for receiving data from the CHIP TX characteristic on + * the remote peripheral device. + * + * @note This function takes the ownership of the passed file descriptor and + * will close it when the connection is closed. + */ + void SetupWriteHandler(int aSocketFd); + + /** + * @brief Setup callback for receiving HUP event on the notification channel. + * + * @note This function takes the ownership of the passed file descriptor and + * will close it when the connection is closed. + */ + void SetupNotifyHandler(int aSocketFd, bool aAdditionalAdvertising = false); + + /// Send indication to the CHIP RX characteristic on the remote peripheral device + CHIP_ERROR SendIndication(chip::System::PacketBufferHandle apBuf); + /// Write to the CHIP RX characteristic on the remote peripheral device + CHIP_ERROR SendWriteRequest(chip::System::PacketBufferHandle apBuf); + /// Subscribe to the CHIP TX characteristic on the remote peripheral device + CHIP_ERROR SubscribeCharacteristic(); + /// Unsubscribe from the CHIP TX characteristic on the remote peripheral device + CHIP_ERROR UnsubscribeCharacteristic(); + + CHIP_ERROR CloseConnection(); + +private: struct IOChannel { - GIOChannel * mpChannel; - GSource * mWatchSource; + IOChannel() = default; + ~IOChannel(); + + GAutoPtr mChannel; + GAutoPtr mWatchSource; }; struct ConnectionDataBundle { - BluezConnection * mpConn; - GVariant * mpVal; + ConnectionDataBundle(const BluezConnection &, const chip::System::PacketBufferHandle &); + ~ConnectionDataBundle() = default; + + const BluezConnection & mConn; + GAutoPtr mData; }; - char * mpPeerAddress; - BluezDevice1 * mpDevice; - BluezGattService1 * mpService; - BluezGattCharacteristic1 * mpC1; - BluezGattCharacteristic1 * mpC2; - // additional data characteristics - BluezGattCharacteristic1 * mpC3; - - bool mIsNotify; - uint16_t mMtu; - struct IOChannel mC1Channel; - struct IOChannel mC2Channel; + CHIP_ERROR Init(); + + static CHIP_ERROR BluezDisconnect(BluezConnection * apConn); + + static gboolean WriteHandlerCallback(GIOChannel * aChannel, GIOCondition aCond, BluezConnection * apConn); + static gboolean NotifyHandlerCallback(GIOChannel * aChannel, GIOCondition aCond, BluezConnection * apConn); + + static CHIP_ERROR SendIndicationImpl(ConnectionDataBundle * data); + + static void SendWriteRequestDone(GObject * aObject, GAsyncResult * aResult, gpointer apConn); + static CHIP_ERROR SendWriteRequestImpl(ConnectionDataBundle * data); + + static void OnCharacteristicChanged(GDBusProxy * aInterface, GVariant * aChangedProperties, + const gchar * const * aInvalidatedProps, gpointer apConn); + static void SubscribeCharacteristicDone(GObject * aObject, GAsyncResult * aResult, gpointer apConn); + static CHIP_ERROR SubscribeCharacteristicImpl(BluezConnection * apConn); + + static void UnsubscribeCharacteristicDone(GObject * aObject, GAsyncResult * aResult, gpointer apConn); + static CHIP_ERROR UnsubscribeCharacteristicImpl(BluezConnection * apConn); + BluezEndpoint * mpEndpoint; -}; + BluezDevice1 * mpDevice; -CHIP_ERROR SendBluezIndication(BLE_CONNECTION_OBJECT apConn, chip::System::PacketBufferHandle apBuf); -CHIP_ERROR CloseBluezConnection(BLE_CONNECTION_OBJECT apConn); + bool mNotifyAcquired = false; + uint16_t mMtu = 0; -/// Write to the CHIP RX characteristic on the remote peripheral device -CHIP_ERROR BluezSendWriteRequest(BLE_CONNECTION_OBJECT apConn, chip::System::PacketBufferHandle apBuf); -/// Subscribe to the CHIP TX characteristic on the remote peripheral device -CHIP_ERROR BluezSubscribeCharacteristic(BLE_CONNECTION_OBJECT apConn); -/// Unsubscribe from the CHIP TX characteristic on the remote peripheral device -CHIP_ERROR BluezUnsubscribeCharacteristic(BLE_CONNECTION_OBJECT apConn); + BluezGattService1 * mpService = nullptr; + + BluezGattCharacteristic1 * mpC1 = nullptr; + IOChannel mC1Channel = { 0 }; + BluezGattCharacteristic1 * mpC2 = nullptr; + IOChannel mC2Channel = { 0 }; +#if CHIP_ENABLE_ADDITIONAL_DATA_ADVERTISING + BluezGattCharacteristic1 * mpC3 = nullptr; + IOChannel mC3Channel = { 0 }; +#endif +}; } // namespace Internal } // namespace DeviceLayer diff --git a/src/platform/Linux/bluez/BluezEndpoint.cpp b/src/platform/Linux/bluez/BluezEndpoint.cpp index d6f3196a6b877c..b4f519ced3ce9d 100644 --- a/src/platform/Linux/bluez/BluezEndpoint.cpp +++ b/src/platform/Linux/bluez/BluezEndpoint.cpp @@ -310,39 +310,6 @@ static gboolean BluezCharacteristicWriteValueError(BluezGattCharacteristic1 * aC return TRUE; } -static gboolean BluezCharacteristicWriteFD(GIOChannel * aChannel, GIOCondition aCond, gpointer apEndpoint) -{ - GVariant * newVal; - uint8_t * buf = nullptr; - ssize_t len; - bool isSuccess = false; - - BluezConnection * conn = static_cast(apEndpoint); - - VerifyOrExit(conn != nullptr, ChipLogError(DeviceLayer, "No CHIP Bluez connection in %s", __func__)); - - VerifyOrExit(!(aCond & G_IO_HUP), ChipLogError(DeviceLayer, "INFO: socket disconnected in %s", __func__)); - VerifyOrExit(!(aCond & (G_IO_ERR | G_IO_NVAL)), ChipLogError(DeviceLayer, "INFO: socket error in %s", __func__)); - VerifyOrExit(aCond == G_IO_IN, ChipLogError(DeviceLayer, "FAIL: error in %s", __func__)); - - ChipLogDetail(DeviceLayer, "c1 %s mtu, %d", __func__, conn->mMtu); - - buf = g_new(uint8_t, conn->mMtu); - len = read(g_io_channel_unix_get_fd(aChannel), buf, conn->mMtu); - VerifyOrExit(len > 0, ChipLogError(DeviceLayer, "FAIL: short read in %s (%zd)", __func__, len)); - - // Casting len to size_t is safe, since we ensured that it's not negative. - newVal = g_variant_new_fixed_array(G_VARIANT_TYPE_BYTE, buf, static_cast(len), sizeof(uint8_t)); - - bluez_gatt_characteristic1_set_value(conn->mpC1, newVal); - BLEManagerImpl::HandleRXCharWrite(conn, buf, static_cast(len)); - isSuccess = true; - -exit: - g_free(buf); - return isSuccess ? G_SOURCE_CONTINUE : G_SOURCE_REMOVE; -} - static void Bluez_gatt_characteristic1_complete_acquire_write_with_fd(GDBusMethodInvocation * invocation, int fd, guint16 mtu) { GUnixFDList * fd_list = g_unix_fd_list_new(); @@ -352,22 +319,16 @@ static void Bluez_gatt_characteristic1_complete_acquire_write_with_fd(GDBusMetho g_object_unref(fd_list); } -static gboolean bluezCharacteristicDestroyFD(GIOChannel * aChannel, GIOCondition aCond, gpointer apEndpoint) -{ - return G_SOURCE_REMOVE; -} - static gboolean BluezCharacteristicAcquireWrite(BluezGattCharacteristic1 * aChar, GDBusMethodInvocation * aInvocation, GVariant * aOptions, gpointer apEndpoint) { int fds[2] = { -1, -1 }; - GIOChannel * channel; - GSource * watchSource; #if CHIP_ERROR_LOGGING char * errStr; #endif // CHIP_ERROR_LOGGING BluezConnection * conn = nullptr; GAutoPtr option_mtu; + uint16_t mtu; BluezEndpoint * endpoint = static_cast(apEndpoint); @@ -380,6 +341,11 @@ static gboolean BluezCharacteristicAcquireWrite(BluezGattCharacteristic1 * aChar ChipLogDetail(DeviceLayer, "BluezCharacteristicAcquireWrite is called, conn: %p", conn); + VerifyOrReturnValue( + g_variant_lookup(aOptions, "mtu", "q", &mtu), FALSE, ChipLogError(DeviceLayer, "FAIL: No MTU in options in %s", __func__); + g_dbus_method_invocation_return_dbus_error(aInvocation, "org.bluez.Error.InvalidArguments", "MTU negotiation failed")); + conn->SetMTU(mtu); + if (socketpair(AF_UNIX, SOCK_SEQPACKET | SOCK_NONBLOCK | SOCK_CLOEXEC, 0, fds) < 0) { #if CHIP_ERROR_LOGGING @@ -390,25 +356,10 @@ static gboolean BluezCharacteristicAcquireWrite(BluezGattCharacteristic1 * aChar return FALSE; } - VerifyOrReturnValue( - g_variant_lookup(aOptions, "mtu", "q", &conn->mMtu), FALSE, - ChipLogError(DeviceLayer, "FAIL: No MTU in options in %s", __func__); - g_dbus_method_invocation_return_dbus_error(aInvocation, "org.bluez.Error.InvalidArguments", "MTU negotiation failed")); - - channel = g_io_channel_unix_new(fds[0]); - g_io_channel_set_encoding(channel, nullptr, nullptr); - g_io_channel_set_close_on_unref(channel, TRUE); - g_io_channel_set_buffered(channel, FALSE); - conn->mC1Channel.mpChannel = channel; - - watchSource = g_io_create_watch(channel, static_cast(G_IO_HUP | G_IO_IN | G_IO_ERR | G_IO_NVAL)); - g_source_set_callback(watchSource, G_SOURCE_FUNC(BluezCharacteristicWriteFD), conn, nullptr); - PlatformMgrImpl().GLibMatterContextAttachSource(watchSource); - conn->mC1Channel.mWatchSource = watchSource; - + conn->SetupWriteHandler(fds[0]); bluez_gatt_characteristic1_set_write_acquired(aChar, TRUE); - Bluez_gatt_characteristic1_complete_acquire_write_with_fd(aInvocation, fds[1], conn->mMtu); + Bluez_gatt_characteristic1_complete_acquire_write_with_fd(aInvocation, fds[1], conn->GetMTU()); close(fds[1]); return TRUE; @@ -427,17 +378,21 @@ static gboolean BluezCharacteristicAcquireNotify(BluezGattCharacteristic1 * aCha GVariant * aOptions, gpointer apEndpoint) { int fds[2] = { -1, -1 }; - GIOChannel * channel; - GSource * watchSource; #if CHIP_ERROR_LOGGING char * errStr; #endif // CHIP_ERROR_LOGGING - BluezConnection * conn = nullptr; + BluezConnection * conn = nullptr; + bool isAdditionalAdvertising = false; GAutoPtr option_mtu; + uint16_t mtu; BluezEndpoint * endpoint = static_cast(apEndpoint); VerifyOrReturnValue(endpoint != nullptr, FALSE, ChipLogError(DeviceLayer, "endpoint is NULL in %s", __func__)); +#if CHIP_ENABLE_ADDITIONAL_DATA_ADVERTISING + isAdditionalAdvertising = (aChar == endpoint->mpC3); +#endif + if (bluez_gatt_characteristic1_get_notifying(aChar)) { g_dbus_method_invocation_return_dbus_error(aInvocation, "org.bluez.Error.NotPermitted", "Already notifying"); @@ -449,10 +404,10 @@ static gboolean BluezCharacteristicAcquireNotify(BluezGattCharacteristic1 * aCha conn != nullptr, FALSE, g_dbus_method_invocation_return_dbus_error(aInvocation, "org.bluez.Error.Failed", "No Chipoble connection")); - VerifyOrReturnValue(g_variant_lookup(aOptions, "mtu", "q", &conn->mMtu), FALSE, { - ChipLogError(DeviceLayer, "FAIL: No MTU in options in %s", __func__); - g_dbus_method_invocation_return_dbus_error(aInvocation, "org.bluez.Error.InvalidArguments", "MTU negotiation failed"); - }); + VerifyOrReturnValue( + g_variant_lookup(aOptions, "mtu", "q", &mtu), FALSE, ChipLogError(DeviceLayer, "FAIL: No MTU in options in %s", __func__); + g_dbus_method_invocation_return_dbus_error(aInvocation, "org.bluez.Error.InvalidArguments", "MTU negotiation failed");); + conn->SetMTU(mtu); if (socketpair(AF_UNIX, SOCK_SEQPACKET | SOCK_NONBLOCK | SOCK_CLOEXEC, 0, fds) < 0) { @@ -464,24 +419,14 @@ static gboolean BluezCharacteristicAcquireNotify(BluezGattCharacteristic1 * aCha return FALSE; } - channel = g_io_channel_unix_new(fds[0]); - g_io_channel_set_encoding(channel, nullptr, nullptr); - g_io_channel_set_close_on_unref(channel, TRUE); - g_io_channel_set_buffered(channel, FALSE); - conn->mC2Channel.mpChannel = channel; - - watchSource = g_io_create_watch(channel, static_cast(G_IO_HUP | G_IO_ERR | G_IO_NVAL)); - g_source_set_callback(watchSource, G_SOURCE_FUNC(bluezCharacteristicDestroyFD), conn, nullptr); - PlatformMgrImpl().GLibMatterContextAttachSource(watchSource); - conn->mC1Channel.mWatchSource = watchSource; - + conn->SetupNotifyHandler(fds[0], isAdditionalAdvertising); bluez_gatt_characteristic1_set_notify_acquired(aChar, TRUE); + conn->SetNotifyAcquired(true); // same reply as for AcquireWrite - Bluez_gatt_characteristic1_complete_acquire_write_with_fd(aInvocation, fds[1], conn->mMtu); + Bluez_gatt_characteristic1_complete_acquire_write_with_fd(aInvocation, fds[1], conn->GetMTU()); close(fds[1]); - conn->mIsNotify = true; BLEManagerImpl::HandleTXCharCCCDWrite(conn); return TRUE; @@ -517,7 +462,7 @@ static gboolean BluezCharacteristicStartNotify(BluezGattCharacteristic1 * aChar, { bluez_gatt_characteristic1_complete_start_notify(aChar, aInvocation); bluez_gatt_characteristic1_set_notifying(aChar, TRUE); - conn->mIsNotify = true; + conn->SetNotifyAcquired(true); BLEManagerImpl::HandleTXCharCCCDWrite(conn); } isSuccess = true; @@ -555,7 +500,7 @@ static gboolean BluezCharacteristicStopNotify(BluezGattCharacteristic1 * aChar, bluez_gatt_characteristic1_complete_start_notify(aChar, aInvocation); bluez_gatt_characteristic1_set_notifying(aChar, FALSE); } - conn->mIsNotify = false; + conn->SetNotifyAcquired(false); isSuccess = true; @@ -593,136 +538,6 @@ static gboolean BluezIsDeviceOnAdapter(BluezDevice1 * aDevice, BluezAdapter1 * a return strcmp(bluez_device1_get_adapter(aDevice), g_dbus_proxy_get_object_path(G_DBUS_PROXY(aAdapter))) == 0 ? TRUE : FALSE; } -static gboolean BluezIsServiceOnDevice(BluezGattService1 * aService, BluezDevice1 * aDevice) -{ - return strcmp(bluez_gatt_service1_get_device(aService), g_dbus_proxy_get_object_path(G_DBUS_PROXY(aDevice))) == 0 ? TRUE - : FALSE; -} - -static gboolean BluezIsCharOnService(BluezGattCharacteristic1 * aChar, BluezGattService1 * aService) -{ - ChipLogDetail(DeviceLayer, "Char1 %s", bluez_gatt_characteristic1_get_service(aChar)); - ChipLogDetail(DeviceLayer, "Char1 %s", g_dbus_proxy_get_object_path(G_DBUS_PROXY(aService))); - return strcmp(bluez_gatt_characteristic1_get_service(aChar), g_dbus_proxy_get_object_path(G_DBUS_PROXY(aService))) == 0 ? TRUE - : FALSE; -} - -static void BluezConnectionInit(BluezConnection * apConn) -{ - // populate the service and the characteristics - GList * objects = nullptr; - GList * l; - BluezEndpoint * endpoint = nullptr; - - VerifyOrExit(apConn != nullptr, ChipLogError(DeviceLayer, "Bluez connection is NULL in %s", __func__)); - - endpoint = apConn->mpEndpoint; - VerifyOrExit(endpoint != nullptr, ChipLogError(DeviceLayer, "endpoint is NULL in %s", __func__)); - - if (!endpoint->mIsCentral) - { - apConn->mpService = BLUEZ_GATT_SERVICE1(g_object_ref(apConn->mpEndpoint->mpService)); - apConn->mpC1 = BLUEZ_GATT_CHARACTERISTIC1(g_object_ref(endpoint->mpC1)); - apConn->mpC2 = BLUEZ_GATT_CHARACTERISTIC1(g_object_ref(endpoint->mpC2)); - } - else - { - objects = g_dbus_object_manager_get_objects(endpoint->mpObjMgr); - - for (l = objects; l != nullptr; l = l->next) - { - BluezObject * object = BLUEZ_OBJECT(l->data); - BluezGattService1 * service = bluez_object_get_gatt_service1(object); - - if (service != nullptr) - { - if ((BluezIsServiceOnDevice(service, apConn->mpDevice)) == TRUE && - (strcmp(bluez_gatt_service1_get_uuid(service), CHIP_BLE_UUID_SERVICE_STRING) == 0)) - { - apConn->mpService = service; - break; - } - g_object_unref(service); - } - } - - VerifyOrExit(apConn->mpService != nullptr, ChipLogError(DeviceLayer, "FAIL: NULL service in %s", __func__)); - - for (l = objects; l != nullptr; l = l->next) - { - BluezObject * object = BLUEZ_OBJECT(l->data); - BluezGattCharacteristic1 * char1 = bluez_object_get_gatt_characteristic1(object); - - if (char1 != nullptr) - { - if ((BluezIsCharOnService(char1, apConn->mpService) == TRUE) && - (strcmp(bluez_gatt_characteristic1_get_uuid(char1), CHIP_PLAT_BLE_UUID_C1_STRING) == 0)) - { - apConn->mpC1 = char1; - } - else if ((BluezIsCharOnService(char1, apConn->mpService) == TRUE) && - (strcmp(bluez_gatt_characteristic1_get_uuid(char1), CHIP_PLAT_BLE_UUID_C2_STRING) == 0)) - { - apConn->mpC2 = char1; - } - else if ((BluezIsCharOnService(char1, apConn->mpService) == TRUE) && - (strcmp(bluez_gatt_characteristic1_get_uuid(char1), CHIP_PLAT_BLE_UUID_C3_STRING) == 0)) - { - apConn->mpC3 = char1; - } - else - { - g_object_unref(char1); - } - if ((apConn->mpC1 != nullptr) && (apConn->mpC2 != nullptr)) - { - break; - } - } - } - - VerifyOrExit(apConn->mpC1 != nullptr, ChipLogError(DeviceLayer, "FAIL: NULL C1 in %s", __func__)); - VerifyOrExit(apConn->mpC2 != nullptr, ChipLogError(DeviceLayer, "FAIL: NULL C2 in %s", __func__)); - } - -exit: - if (objects != nullptr) - g_list_free_full(objects, g_object_unref); -} - -static void BluezOTConnectionDestroy(BluezConnection * aConn) -{ - if (aConn) - { - if (aConn->mpDevice) - g_object_unref(aConn->mpDevice); - if (aConn->mpService) - g_object_unref(aConn->mpService); - if (aConn->mpC1) - g_object_unref(aConn->mpC1); - if (aConn->mpC2) - g_object_unref(aConn->mpC2); - if (aConn->mpPeerAddress) - g_free(aConn->mpPeerAddress); - if (aConn->mC1Channel.mWatchSource) - { - g_source_destroy(aConn->mC1Channel.mWatchSource); - g_source_unref(aConn->mC1Channel.mWatchSource); - } - if (aConn->mC1Channel.mpChannel) - g_io_channel_unref(aConn->mC1Channel.mpChannel); - if (aConn->mC2Channel.mWatchSource) - { - g_source_destroy(aConn->mC2Channel.mWatchSource); - g_source_unref(aConn->mC2Channel.mWatchSource); - } - if (aConn->mC2Channel.mpChannel) - g_io_channel_unref(aConn->mC2Channel.mpChannel); - - g_free(aConn); - } -} - static BluezGattCharacteristic1 * BluezCharacteristicCreate(BluezGattService1 * aService, const char * aCharName, const char * aUUID, GDBusObjectManagerServer * aRoot) { @@ -801,7 +616,7 @@ static void UpdateConnectionTable(BluezDevice1 * apDevice, BluezEndpoint & aEndp BLEManagerImpl::CHIPoBluez_ConnectionClosed(connection); // TODO: the connection object should be released after BLEManagerImpl finishes cleaning up its resources // after the disconnection. Releasing it here doesn't cause any issues, but it's error-prone. - BluezOTConnectionDestroy(connection); + chip::Platform::Delete(connection); g_hash_table_remove(aEndpoint.mpConnMap, objectPath); return; } @@ -814,15 +629,11 @@ static void UpdateConnectionTable(BluezDevice1 * apDevice, BluezEndpoint & aEndp if (connection == nullptr && bluez_device1_get_connected(apDevice) && (!aEndpoint.mIsCentral || bluez_device1_get_services_resolved(apDevice))) { - connection = g_new0(BluezConnection, 1); - connection->mpPeerAddress = g_strdup(bluez_device1_get_address(apDevice)); - connection->mpDevice = static_cast(g_object_ref(apDevice)); - connection->mpEndpoint = &aEndpoint; - BluezConnectionInit(connection); + connection = chip::Platform::New(&aEndpoint, apDevice); aEndpoint.mpPeerDevicePath = g_strdup(objectPath); g_hash_table_insert(aEndpoint.mpConnMap, aEndpoint.mpPeerDevicePath, connection); - ChipLogDetail(DeviceLayer, "New BLE connection: conn %p, device %s, path %s", connection, connection->mpPeerAddress, + ChipLogDetail(DeviceLayer, "New BLE connection: conn %p, device %s, path %s", connection, connection->GetPeerAddress(), aEndpoint.mpPeerDevicePath); BLEManagerImpl::HandleNewConnection(connection); @@ -865,15 +676,11 @@ static void BluezHandleNewDevice(BluezDevice1 * device, BluezEndpoint * apEndpoi ChipLogError(DeviceLayer, "FAIL: connection already tracked: conn: %p new device: %s", conn, g_dbus_proxy_get_object_path(G_DBUS_PROXY(device)))); - conn = g_new0(BluezConnection, 1); - conn->mpPeerAddress = g_strdup(bluez_device1_get_address(device)); - conn->mpDevice = static_cast(g_object_ref(device)); - conn->mpEndpoint = apEndpoint; - BluezConnectionInit(conn); + conn = chip::Platform::New(apEndpoint, device); apEndpoint->mpPeerDevicePath = g_strdup(g_dbus_proxy_get_object_path(G_DBUS_PROXY(device))); g_hash_table_insert(apEndpoint->mpConnMap, apEndpoint->mpPeerDevicePath, conn); - ChipLogDetail(DeviceLayer, "BLE device connected: conn %p, device %s, path %s", conn, conn->mpPeerAddress, + ChipLogDetail(DeviceLayer, "BLE device connected: conn %p, device %s, path %s", conn, conn->GetPeerAddress(), apEndpoint->mpPeerDevicePath); exit: @@ -1383,6 +1190,8 @@ static CHIP_ERROR ConnectDeviceImpl(ConnectParams * apParams) CHIP_ERROR ConnectDevice(BluezDevice1 & aDevice, BluezEndpoint * apEndpoint) { auto params = chip::Platform::New(&aDevice, apEndpoint); + VerifyOrReturnError(params != nullptr, CHIP_ERROR_NO_MEMORY); + if (PlatformMgrImpl().GLibMatterContextInvokeSync(ConnectDeviceImpl, params) != CHIP_NO_ERROR) { ChipLogError(Ble, "Failed to schedule ConnectDeviceImpl() on CHIPoBluez thread"); diff --git a/src/platform/android/PlatformManagerImpl.cpp b/src/platform/android/PlatformManagerImpl.cpp index 4a6211b68713e0..ad95be14746b1c 100644 --- a/src/platform/android/PlatformManagerImpl.cpp +++ b/src/platform/android/PlatformManagerImpl.cpp @@ -29,7 +29,6 @@ #include #include #include -#include #include #include diff --git a/src/platform/silabs/efr32/wifi/ethernetif.cpp b/src/platform/silabs/efr32/wifi/ethernetif.cpp index a7173f38e23e91..2aeaf00fc14b95 100644 --- a/src/platform/silabs/efr32/wifi/ethernetif.cpp +++ b/src/platform/silabs/efr32/wifi/ethernetif.cpp @@ -358,7 +358,8 @@ static err_t low_level_output(struct netif * netif, struct pbuf * p) void * packet; #endif struct pbuf * q; - uint16_t framelength; + uint16_t framelength = 0; + uint16_t datalength = 0; #ifdef WIFI_DEBUG_ENABLED SILABS_LOG("LWIP : low_level_output"); #endif @@ -366,6 +367,15 @@ static err_t low_level_output(struct netif * netif, struct pbuf * p) { return ERR_IF; } + /* Calculate total packet size */ + for (q = p, framelength = 0; q != NULL; q = q->next) + { + framelength += q->len; + } + if (framelength < LWIP_FRAME_ALIGNMENT) + { + framelength = LWIP_FRAME_ALIGNMENT; + } #ifdef WIFI_DEBUG_ENABLED SILABS_LOG("EN-RSI: Output"); #endif @@ -377,7 +387,7 @@ static err_t low_level_output(struct netif * netif, struct pbuf * p) } /* Confirm if packet is allocated */ #if (SIWX_917 | EXP_BOARD) - status = sl_si91x_allocate_command_buffer(&buffer, (void **) &packet, sizeof(sl_si91x_packet_t) + p->len, + status = sl_si91x_allocate_command_buffer(&buffer, (void **) &packet, sizeof(sl_si91x_packet_t) + framelength, SL_WIFI_ALLOCATE_COMMAND_BUFFER_WAIT_TIME_MS); VERIFY_STATUS_AND_RETURN(status); if (packet == NULL) @@ -402,29 +412,32 @@ static err_t low_level_output(struct netif * netif, struct pbuf * p) b[4], b[5], b[6], b[7], b[8], b[9], b[10], b[11], b[12], b[13]); #endif /* Generate the packet */ - for (q = p, framelength = 0; q != NULL; q = q->next) + for (q = p, datalength = 0; q != NULL; q = q->next) { - wfx_rsi_pkt_add_data(packet, (uint8_t *) (q->payload), (uint16_t) q->len, framelength); - framelength += q->len; + wfx_rsi_pkt_add_data(packet, (uint8_t *) (q->payload), (uint16_t) q->len, datalength); + datalength += q->len; } - if (framelength < LWIP_FRAME_ALIGNMENT) + if (datalength < LWIP_FRAME_ALIGNMENT) { /* Add junk data to the end for frame alignment if framelength is less than 60 */ - wfx_rsi_pkt_add_data(packet, (uint8_t *) (p->payload), LWIP_FRAME_ALIGNMENT - framelength, framelength); + wfx_rsi_pkt_add_data(packet, (uint8_t *) (p->payload), LWIP_FRAME_ALIGNMENT - datalength, datalength); } #ifdef WIFI_DEBUG_ENABLED SILABS_LOG("EN-RSI: Sending %d", framelength); #endif + /* forward the generated packet to RSI to + * send the data over wifi network + */ #if (SIWX_917 | EXP_BOARD) - packet->length = p->len & 0xFFF; + packet->length = framelength & 0xFFF; packet->command = RSI_SEND_RAW_DATA; if (sl_si91x_driver_send_data_packet(SI91X_WLAN_CMD_QUEUE, buffer, 1000)) #else /* forward the generated packet to RSI to * send the data over wifi network */ - if (wfx_rsi_send_data(packet, framelength)) + if (wfx_rsi_send_data(packet, datalength)) #endif { SILABS_LOG("*ERR*EN-RSI:Send fail"); diff --git a/third_party/bouffalolab/bl702/bl_iot_sdk.gni b/third_party/bouffalolab/bl702/bl_iot_sdk.gni index 357b69e95d3c24..1a8db3440e12f5 100644 --- a/third_party/bouffalolab/bl702/bl_iot_sdk.gni +++ b/third_party/bouffalolab/bl702/bl_iot_sdk.gni @@ -715,9 +715,8 @@ template("bl_iot_sdk") { defines = [ "OT_FREERTOS_ENABLE=1" ] include_dirs = [ - "${chip_root}/platform/bl702", - "${chip_root}/third_party/openthread/repo/src/core", - "${chip_root}/third_party/openthread/repo/examples/platforms", + "${openthread_root}/src/core", + "${openthread_root}/examples/platforms", "${bl_iot_sdk_root}/components/network/thread/openthread_port/include", "${bl_iot_sdk_root}/components/network/thread/openthread_utils/include", ] diff --git a/third_party/bouffalolab/bl702l/bl_iot_sdk.gni b/third_party/bouffalolab/bl702l/bl_iot_sdk.gni index 5928d22b18e05d..c0fdd3e41d3b8f 100644 --- a/third_party/bouffalolab/bl702l/bl_iot_sdk.gni +++ b/third_party/bouffalolab/bl702l/bl_iot_sdk.gni @@ -648,9 +648,8 @@ template("bl_iot_sdk") { config("${sdk_target_name}_config_openthread_port") { include_dirs = [ - "${chip_root}/platform/bl702l", - "${chip_root}/third_party/openthread/repo/src/core", - "${chip_root}/third_party/openthread/repo/examples/platforms", + "${openthread_root}/src/core", + "${openthread_root}/examples/platforms", "${bl_iot_sdk_root}/components/network/thread/openthread_port/include", "${bl_iot_sdk_root}/components/network/thread/openthread_utils/include", ] diff --git a/third_party/bouffalolab/repo b/third_party/bouffalolab/repo index 690b348635806f..f65861db5bee5b 160000 --- a/third_party/bouffalolab/repo +++ b/third_party/bouffalolab/repo @@ -1 +1 @@ -Subproject commit 690b348635806f312b61ddcc5b2c566daafe833e +Subproject commit f65861db5bee5b24aeeae5b6039cefabcdc57294 diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-enums-check.h b/zzz_generated/app-common/app-common/zap-generated/cluster-enums-check.h index 9a8e5409d17453..c047b38ee99562 100644 --- a/zzz_generated/app-common/app-common/zap-generated/cluster-enums-check.h +++ b/zzz_generated/app-common/app-common/zap-generated/cluster-enums-check.h @@ -1361,38 +1361,6 @@ static auto __attribute__((unused)) EnsureKnownEnumValue(OperationalState::Opera } } -static auto __attribute__((unused)) EnsureKnownEnumValue(RvcOperationalState::ErrorStateEnum val) -{ - using EnumType = RvcOperationalState::ErrorStateEnum; - switch (val) - { - case EnumType::kFailedToFindChargingDock: - case EnumType::kStuck: - case EnumType::kDustBinMissing: - case EnumType::kDustBinFull: - case EnumType::kWaterTankEmpty: - case EnumType::kWaterTankMissing: - case EnumType::kWaterTankLidOpen: - case EnumType::kMopCleaningPadMissing: - return val; - default: - return static_cast(0); - } -} -static auto __attribute__((unused)) EnsureKnownEnumValue(RvcOperationalState::OperationalStateEnum val) -{ - using EnumType = RvcOperationalState::OperationalStateEnum; - switch (val) - { - case EnumType::kSeekingCharger: - case EnumType::kCharging: - case EnumType::kDocked: - return val; - default: - return static_cast(0); - } -} - static auto __attribute__((unused)) EnsureKnownEnumValue(HepaFilterMonitoring::ChangeIndicationEnum val) { using EnumType = HepaFilterMonitoring::ChangeIndicationEnum; diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h b/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h index 80f06899acf9c2..4c57da6b554d5f 100644 --- a/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h +++ b/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h @@ -1472,6 +1472,8 @@ namespace IcdManagement { enum class Feature : uint32_t { kCheckInProtocolSupport = 0x1, + kUserActiveModeTrigger = 0x2, + kLongIdleTimeSupport = 0x4, }; } // namespace IcdManagement @@ -1852,11 +1854,11 @@ enum class ErrorStateEnum : uint8_t kWaterTankMissing = 0x45, kWaterTankLidOpen = 0x46, kMopCleaningPadMissing = 0x47, - // All received enum values that are not listed above will be mapped - // to kUnknownEnumValue. This is a helper enum value that should only - // be used by code to process how it handles receiving and unknown - // enum value. This specific should never be transmitted. - kUnknownEnumValue = 0, + // kUnknownEnumValue intentionally not defined. This enum never goes + // through DataModel::Decode, likely because it is a part of a derived + // cluster. As a result having kUnknownEnumValue in this enum is error + // prone, and was removed. See + // src/app/common/templates/config-data.yaml. }; // Enum for OperationalStateEnum @@ -1865,11 +1867,11 @@ enum class OperationalStateEnum : uint8_t kSeekingCharger = 0x40, kCharging = 0x41, kDocked = 0x42, - // All received enum values that are not listed above will be mapped - // to kUnknownEnumValue. This is a helper enum value that should only - // be used by code to process how it handles receiving and unknown - // enum value. This specific should never be transmitted. - kUnknownEnumValue = 0, + // kUnknownEnumValue intentionally not defined. This enum never goes + // through DataModel::Decode, likely because it is a part of a derived + // cluster. As a result having kUnknownEnumValue in this enum is error + // prone, and was removed. See + // src/app/common/templates/config-data.yaml. }; } // namespace RvcOperationalState diff --git a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h index 9b2b20b3229423..7e1221dc650fd1 100644 --- a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h +++ b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h @@ -297,7 +297,6 @@ class TestList : public Command { printf("Test_TC_G_1_1\n"); printf("Test_TC_S_1_1\n"); printf("Test_TC_S_2_1\n"); - printf("Test_TC_S_2_3\n"); printf("Test_TC_S_2_4\n"); printf("TestActivatedCarbonFilterMonitoring\n"); printf("TestHepaFilterMonitoring\n"); @@ -46418,72 +46417,80 @@ class Test_TC_FAN_1_1 : public TestCommandBridge { err = TestStep3gGivenFansf05dirEnsureFeaturemapHasTheCorrectBitSet_8(); break; case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : Step 4: Read the global attribute: AttributeList\n"); + ChipLogProgress(chipTool, " ***** Test Step 9 : Step 4a: Read the global attribute: AttributeList\n"); if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } - err = TestStep4ReadTheGlobalAttributeAttributeList_9(); + err = TestStep4aReadTheGlobalAttributeAttributeList_9(); break; case 10: - ChipLogProgress(chipTool, " ***** Test Step 10 : Step 4: Read the global attribute: AttributeList\n"); + ChipLogProgress(chipTool, " ***** Test Step 10 : Step 4a: Read the global attribute: AttributeList\n"); if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } - err = TestStep4ReadTheGlobalAttributeAttributeList_10(); + err = TestStep4aReadTheGlobalAttributeAttributeList_10(); break; case 11: - ChipLogProgress(chipTool, " ***** Test Step 11 : Step 4: Read the feature dependent FAN.S.F00 (SPD) attribute in AttributeList\n"); + ChipLogProgress(chipTool, " ***** Test Step 11 : Step 4c: Read the feature dependent FAN.S.F00 (SPD) attribute in AttributeList\n"); if (ShouldSkip("FAN.S.F00")) { NextTest(); return; } - err = TestStep4ReadTheFeatureDependentFansf00SpdAttributeInAttributeList_11(); + err = TestStep4cReadTheFeatureDependentFansf00SpdAttributeInAttributeList_11(); break; case 12: - ChipLogProgress(chipTool, " ***** Test Step 12 : Step 4: Read the feature dependent FAN.S.F02(RCK) attribute in AttributeList\n"); + ChipLogProgress(chipTool, " ***** Test Step 12 : Step 4d: Read the feature dependent FAN.S.F02(RCK) attribute in AttributeList\n"); if (ShouldSkip("FAN.S.F02")) { NextTest(); return; } - err = TestStep4ReadTheFeatureDependentFansf02rckAttributeInAttributeList_12(); + err = TestStep4dReadTheFeatureDependentFansf02rckAttributeInAttributeList_12(); break; case 13: - ChipLogProgress(chipTool, " ***** Test Step 13 : Step 4: Read the feature dependent FAN.S.F03(WND) attribute in AttributeList\n"); + ChipLogProgress(chipTool, " ***** Test Step 13 : Step 4e: Read the feature dependent FAN.S.F03(WND) attribute in AttributeList\n"); if (ShouldSkip("FAN.S.F03")) { NextTest(); return; } - err = TestStep4ReadTheFeatureDependentFansf03wndAttributeInAttributeList_13(); + err = TestStep4eReadTheFeatureDependentFansf03wndAttributeInAttributeList_13(); break; case 14: - ChipLogProgress(chipTool, " ***** Test Step 14 : Step 4: Read the feature dependent FAN.S.F05(DIR) attribute in AttributeList\n"); + ChipLogProgress(chipTool, " ***** Test Step 14 : Step 4f: Read the feature dependent FAN.S.F05(DIR) attribute in AttributeList\n"); if (ShouldSkip("FAN.S.F05")) { NextTest(); return; } - err = TestStep4ReadTheFeatureDependentFansf05dirAttributeInAttributeList_14(); + err = TestStep4fReadTheFeatureDependentFansf05dirAttributeInAttributeList_14(); break; case 15: - ChipLogProgress(chipTool, " ***** Test Step 15 : Step 6: Read the global attribute: AcceptedCommandList\n"); + ChipLogProgress(chipTool, " ***** Test Step 15 : Step 5: TH reads EventList attribute from DUT\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 16: + ChipLogProgress(chipTool, " ***** Test Step 16 : Step 6: Read the global attribute: AcceptedCommandList\n"); if (ShouldSkip(" !FAN.S.C00.Rsp ")) { NextTest(); return; } - err = TestStep6ReadTheGlobalAttributeAcceptedCommandList_15(); + err = TestStep6ReadTheGlobalAttributeAcceptedCommandList_16(); break; - case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : Step 6: Read the optional command (Step) in AcceptedCommandList\n"); + case 17: + ChipLogProgress(chipTool, " ***** Test Step 17 : Step 6: Read the optional command (Step) in AcceptedCommandList\n"); if (ShouldSkip("FAN.S.C00.Rsp")) { NextTest(); return; } - err = TestStep6ReadTheOptionalCommandStepInAcceptedCommandList_16(); + err = TestStep6ReadTheOptionalCommandStepInAcceptedCommandList_17(); break; - case 17: - ChipLogProgress(chipTool, " ***** Test Step 17 : Step 7: Read the global attribute: GeneratedCommandList\n"); - err = TestStep7ReadTheGlobalAttributeGeneratedCommandList_17(); + case 18: + ChipLogProgress(chipTool, " ***** Test Step 18 : Step 7: Read the global attribute: GeneratedCommandList\n"); + err = TestStep7ReadTheGlobalAttributeGeneratedCommandList_18(); break; } @@ -46550,6 +46557,9 @@ class Test_TC_FAN_1_1 : public TestCommandBridge { case 17: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -46560,7 +46570,7 @@ class Test_TC_FAN_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 18; + const uint16_t mTestCount = 19; chip::Optional mNodeId; chip::Optional mCluster; @@ -46737,7 +46747,7 @@ class Test_TC_FAN_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4ReadTheGlobalAttributeAttributeList_9() + CHIP_ERROR TestStep4aReadTheGlobalAttributeAttributeList_9() { MTRBaseDevice * device = GetDevice("alpha"); @@ -46745,7 +46755,7 @@ class Test_TC_FAN_1_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"Step 4: Read the global attribute: AttributeList Error: %@", err); + NSLog(@"Step 4a: Read the global attribute: AttributeList Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -46767,7 +46777,7 @@ class Test_TC_FAN_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4ReadTheGlobalAttributeAttributeList_10() + CHIP_ERROR TestStep4aReadTheGlobalAttributeAttributeList_10() { MTRBaseDevice * device = GetDevice("alpha"); @@ -46775,7 +46785,7 @@ class Test_TC_FAN_1_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"Step 4: Read the global attribute: AttributeList Error: %@", err); + NSLog(@"Step 4a: Read the global attribute: AttributeList Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -46796,7 +46806,7 @@ class Test_TC_FAN_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4ReadTheFeatureDependentFansf00SpdAttributeInAttributeList_11() + CHIP_ERROR TestStep4cReadTheFeatureDependentFansf00SpdAttributeInAttributeList_11() { MTRBaseDevice * device = GetDevice("alpha"); @@ -46804,7 +46814,7 @@ class Test_TC_FAN_1_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"Step 4: Read the feature dependent FAN.S.F00 (SPD) attribute in AttributeList Error: %@", err); + NSLog(@"Step 4c: Read the feature dependent FAN.S.F00 (SPD) attribute in AttributeList Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -46819,7 +46829,7 @@ class Test_TC_FAN_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4ReadTheFeatureDependentFansf02rckAttributeInAttributeList_12() + CHIP_ERROR TestStep4dReadTheFeatureDependentFansf02rckAttributeInAttributeList_12() { MTRBaseDevice * device = GetDevice("alpha"); @@ -46827,7 +46837,7 @@ class Test_TC_FAN_1_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"Step 4: Read the feature dependent FAN.S.F02(RCK) attribute in AttributeList Error: %@", err); + NSLog(@"Step 4d: Read the feature dependent FAN.S.F02(RCK) attribute in AttributeList Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -46841,7 +46851,7 @@ class Test_TC_FAN_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4ReadTheFeatureDependentFansf03wndAttributeInAttributeList_13() + CHIP_ERROR TestStep4eReadTheFeatureDependentFansf03wndAttributeInAttributeList_13() { MTRBaseDevice * device = GetDevice("alpha"); @@ -46849,7 +46859,7 @@ class Test_TC_FAN_1_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"Step 4: Read the feature dependent FAN.S.F03(WND) attribute in AttributeList Error: %@", err); + NSLog(@"Step 4e: Read the feature dependent FAN.S.F03(WND) attribute in AttributeList Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -46863,7 +46873,7 @@ class Test_TC_FAN_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4ReadTheFeatureDependentFansf05dirAttributeInAttributeList_14() + CHIP_ERROR TestStep4fReadTheFeatureDependentFansf05dirAttributeInAttributeList_14() { MTRBaseDevice * device = GetDevice("alpha"); @@ -46871,7 +46881,7 @@ class Test_TC_FAN_1_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"Step 4: Read the feature dependent FAN.S.F05(DIR) attribute in AttributeList Error: %@", err); + NSLog(@"Step 4f: Read the feature dependent FAN.S.F05(DIR) attribute in AttributeList Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -46884,7 +46894,7 @@ class Test_TC_FAN_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6ReadTheGlobalAttributeAcceptedCommandList_15() + CHIP_ERROR TestStep6ReadTheGlobalAttributeAcceptedCommandList_16() { MTRBaseDevice * device = GetDevice("alpha"); @@ -46908,7 +46918,7 @@ class Test_TC_FAN_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6ReadTheOptionalCommandStepInAcceptedCommandList_16() + CHIP_ERROR TestStep6ReadTheOptionalCommandStepInAcceptedCommandList_17() { MTRBaseDevice * device = GetDevice("alpha"); @@ -46929,7 +46939,7 @@ class Test_TC_FAN_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep7ReadTheGlobalAttributeGeneratedCommandList_17() + CHIP_ERROR TestStep7ReadTheGlobalAttributeGeneratedCommandList_18() { MTRBaseDevice * device = GetDevice("alpha"); @@ -77445,12 +77455,8 @@ class Test_TC_MOD_1_1 : public TestCommandBridge { err = TestStep1WaitForTheCommissionedDeviceToBeRetrieved_0(); break; case 1: - ChipLogProgress(chipTool, " ***** Test Step 1 : Step 2: TH reads the ClusterRevision attribute from the DUT\n"); - if (ShouldSkip("PICS_USER_PROMPT")) { - NextTest(); - return; - } - err = TestStep2ThReadsTheClusterRevisionAttributeFromTheDut_1(); + ChipLogProgress(chipTool, " ***** Test Step 1 : Step 2: Read the global attribute: ClusterRevision\n"); + err = TestStep2ReadTheGlobalAttributeClusterRevision_1(); break; case 2: ChipLogProgress(chipTool, " ***** Test Step 2 : Step 3: TH reads the FeatureMap attribute from the DUT\n"); @@ -77585,14 +77591,28 @@ class Test_TC_MOD_1_1 : public TestCommandBridge { return WaitForCommissionee("alpha", value); } - CHIP_ERROR TestStep2ThReadsTheClusterRevisionAttributeFromTheDut_1() + CHIP_ERROR TestStep2ReadTheGlobalAttributeClusterRevision_1() { - chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; - value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); - value.expectedValue.Emplace(); - value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); - return UserPrompt("alpha", value); + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterModeSelect alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeClusterRevisionWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 2: Read the global attribute: ClusterRevision Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + { + id actualValue = value; + VerifyOrReturn(CheckValue("ClusterRevision", actualValue, 2U)); + } + + VerifyOrReturn(CheckConstraintType("clusterRevision", "int16u", "int16u")); + NextTest(); + }]; + + return CHIP_NO_ERROR; } CHIP_ERROR TestStep3ThReadsTheFeatureMapAttributeFromTheDut_2() @@ -100464,57 +100484,57 @@ class Test_TC_DGWIFI_1_1 : public TestCommandBridge { err = TestStep4dThReadsOptionalAttributeCurrentMaxRateInAttributeListFromDut_9(); break; case 10: - ChipLogProgress(chipTool, " ***** Test Step 10 : Step 5a: TH reads AcceptedCommandList from DUT\n"); - if (ShouldSkip(" !DGWIFI.S.F01 ")) { - NextTest(); - return; - } - err = TestStep5aThReadsAcceptedCommandListFromDut_10(); - break; - case 11: - ChipLogProgress(chipTool, " ***** Test Step 11 : Step 5b: TH reads Feature dependent(DGWIFI.S.F01) command in AcceptedCommandList from DUT\n"); - if (ShouldSkip("DGWIFI.S.F01")) { - NextTest(); - return; - } - err = TestStep5bThReadsFeatureDependentDGWIFISF01CommandInAcceptedCommandListFromDut_11(); - break; - case 12: - ChipLogProgress(chipTool, " ***** Test Step 12 : Step 6: TH reads GeneratedCommandList from DUT\n"); - err = TestStep6ThReadsGeneratedCommandListFromDut_12(); - break; - case 13: - ChipLogProgress(chipTool, " ***** Test Step 13 : Step 7a: TH reads EventList from DUT\n"); + ChipLogProgress(chipTool, " ***** Test Step 10 : Step 5a: TH reads EventList from DUT\n"); if (ShouldSkip(" !DGWIFI.S.E00 && !DGWIFI.S.E01 && !DGWIFI.S.E02 && PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } NextTest(); return; - case 14: - ChipLogProgress(chipTool, " ***** Test Step 14 : Step 7b: TH reads optional attribute (Disconnection) in EventList from DUT\n"); + case 11: + ChipLogProgress(chipTool, " ***** Test Step 11 : Step 5b: TH reads optional attribute (Disconnection) in EventList from DUT\n"); if (ShouldSkip("DGWIFI.S.E00 && PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } NextTest(); return; - case 15: - ChipLogProgress(chipTool, " ***** Test Step 15 : Step 7c: TH reads optional attribute (AssociationFailure) in EventList from DUT\n"); + case 12: + ChipLogProgress(chipTool, " ***** Test Step 12 : Step 5c: TH reads optional attribute (AssociationFailure) in EventList from DUT\n"); if (ShouldSkip("DGWIFI.S.E01 && PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } NextTest(); return; - case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : Step 7d: TH reads optional attribute (ConnectionStatus) in EventList from DUT\n"); + case 13: + ChipLogProgress(chipTool, " ***** Test Step 13 : Step 5d: TH reads optional attribute (ConnectionStatus) in EventList from DUT\n"); if (ShouldSkip("DGWIFI.S.E02 && PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } NextTest(); return; + case 14: + ChipLogProgress(chipTool, " ***** Test Step 14 : Step 6a: TH reads AcceptedCommandList from DUT\n"); + if (ShouldSkip(" !DGWIFI.S.F01 ")) { + NextTest(); + return; + } + err = TestStep6aThReadsAcceptedCommandListFromDut_14(); + break; + case 15: + ChipLogProgress(chipTool, " ***** Test Step 15 : Step 6b: TH reads Feature dependent(DGWIFI.S.F01) command in AcceptedCommandList from DUT\n"); + if (ShouldSkip("DGWIFI.S.F01")) { + NextTest(); + return; + } + err = TestStep6bThReadsFeatureDependentDGWIFISF01CommandInAcceptedCommandListFromDut_15(); + break; + case 16: + ChipLogProgress(chipTool, " ***** Test Step 16 : Step 7: TH reads GeneratedCommandList from DUT\n"); + err = TestStep7ThReadsGeneratedCommandListFromDut_16(); + break; } if (CHIP_NO_ERROR != err) { @@ -100817,7 +100837,7 @@ class Test_TC_DGWIFI_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep5aThReadsAcceptedCommandListFromDut_10() + CHIP_ERROR TestStep6aThReadsAcceptedCommandListFromDut_14() { MTRBaseDevice * device = GetDevice("alpha"); @@ -100825,7 +100845,7 @@ class Test_TC_DGWIFI_1_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeAcceptedCommandListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"Step 5a: TH reads AcceptedCommandList from DUT Error: %@", err); + NSLog(@"Step 6a: TH reads AcceptedCommandList from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -100841,7 +100861,7 @@ class Test_TC_DGWIFI_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep5bThReadsFeatureDependentDGWIFISF01CommandInAcceptedCommandListFromDut_11() + CHIP_ERROR TestStep6bThReadsFeatureDependentDGWIFISF01CommandInAcceptedCommandListFromDut_15() { MTRBaseDevice * device = GetDevice("alpha"); @@ -100849,7 +100869,7 @@ class Test_TC_DGWIFI_1_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeAcceptedCommandListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"Step 5b: TH reads Feature dependent(DGWIFI.S.F01) command in AcceptedCommandList from DUT Error: %@", err); + NSLog(@"Step 6b: TH reads Feature dependent(DGWIFI.S.F01) command in AcceptedCommandList from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -100862,7 +100882,7 @@ class Test_TC_DGWIFI_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6ThReadsGeneratedCommandListFromDut_12() + CHIP_ERROR TestStep7ThReadsGeneratedCommandListFromDut_16() { MTRBaseDevice * device = GetDevice("alpha"); @@ -100870,7 +100890,7 @@ class Test_TC_DGWIFI_1_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeGeneratedCommandListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"Step 6: TH reads GeneratedCommandList from DUT Error: %@", err); + NSLog(@"Step 7: TH reads GeneratedCommandList from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -171491,112 +171511,120 @@ class Test_TC_S_1_1 : public TestCommandBridge { err = TestStep3aReadFeatureMapGlobalAttribute65532_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4: Read Mandatory attributes in AttributeList (global attribute 65531)\n"); + ChipLogProgress(chipTool, " ***** Test Step 4 : Step 3b: Read FeatureMap (global attribute 65532)\n"); + err = TestStep3bReadFeatureMapGlobalAttribute65532_4(); + break; + case 5: + ChipLogProgress(chipTool, " ***** Test Step 5 : Step 3c: Read FeatureMap (global attribute 65532)\n"); + err = TestStep3cReadFeatureMapGlobalAttribute65532_5(); + break; + case 6: + ChipLogProgress(chipTool, " ***** Test Step 6 : Step 4: Read Mandatory attributes in AttributeList (global attribute 65531)\n"); if (ShouldSkip("S.S")) { NextTest(); return; } - err = TestStep4ReadMandatoryAttributesInAttributeListGlobalAttribute65531_4(); + err = TestStep4ReadMandatoryAttributesInAttributeListGlobalAttribute65531_6(); break; - case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Step 4b: Read optional attributes(SceneCount, CurrentScene, CurrentGroup, SceneValid) in AttributeList (global attribute 65531)\n"); + case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 4b: Read optional attributes(SceneCount, CurrentScene, CurrentGroup, SceneValid) in AttributeList (global attribute 65531)\n"); if (ShouldSkip("(!S.S.F03)")) { NextTest(); return; } - err = TestStep4bReadOptionalAttributesSceneCountCurrentSceneCurrentGroupSceneValidInAttributeListGlobalAttribute65531_5(); + err = TestStep4bReadOptionalAttributesSceneCountCurrentSceneCurrentGroupSceneValidInAttributeListGlobalAttribute65531_7(); break; - case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Step 4c: Read optinnal attribute(LastConfiguredBy) in AttributeList (global attribute 65531)\n"); + case 8: + ChipLogProgress(chipTool, " ***** Test Step 8 : Step 4c: Read optinnal attribute(LastConfiguredBy) in AttributeList (global attribute 65531)\n"); if (ShouldSkip("S.S.A0005")) { NextTest(); return; } - err = TestStep4cReadOptinnalAttributeLastConfiguredByInAttributeListGlobalAttribute65531_6(); + err = TestStep4cReadOptinnalAttributeLastConfiguredByInAttributeListGlobalAttribute65531_8(); break; - case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Step 4d: Read optionnal attribute(SceneTableSize) in AttributeList (global attribute 65531)\n"); + case 9: + ChipLogProgress(chipTool, " ***** Test Step 9 : Step 4d: Read optionnal attribute(SceneTableSize) in AttributeList (global attribute 65531)\n"); if (ShouldSkip("S.S.F02")) { NextTest(); return; } - err = TestStep4dReadOptionnalAttributeSceneTableSizeInAttributeListGlobalAttribute65531_7(); + err = TestStep4dReadOptionnalAttributeSceneTableSizeInAttributeListGlobalAttribute65531_9(); break; - case 8: - ChipLogProgress(chipTool, " ***** Test Step 8 : Step 4e: Read optional attribute(FabricSceneInfo) in AttributeList (global attribute 65531)\n"); + case 10: + ChipLogProgress(chipTool, " ***** Test Step 10 : Step 4e: Read optional attribute(FabricSceneInfo) in AttributeList (global attribute 65531)\n"); if (ShouldSkip("S.S.F03")) { NextTest(); return; } - err = TestStep4eReadOptionalAttributeFabricSceneInfoInAttributeListGlobalAttribute65531_8(); + err = TestStep4eReadOptionalAttributeFabricSceneInfoInAttributeListGlobalAttribute65531_10(); break; - case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : Step 5: Read EventList (global attribute 65530)\n"); + case 11: + ChipLogProgress(chipTool, " ***** Test Step 11 : Step 5: Read EventList (global attribute 65530)\n"); if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } NextTest(); return; - case 10: - ChipLogProgress(chipTool, " ***** Test Step 10 : Step 6a: Read Mandatory commands in AcceptedCommandList (global attribute 65529)\n"); + case 12: + ChipLogProgress(chipTool, " ***** Test Step 12 : Step 6a: Read Mandatory commands in AcceptedCommandList (global attribute 65529)\n"); if (ShouldSkip("S.S")) { NextTest(); return; } - err = TestStep6aReadMandatoryCommandsInAcceptedCommandListGlobalAttribute65529_10(); + err = TestStep6aReadMandatoryCommandsInAcceptedCommandListGlobalAttribute65529_12(); break; - case 11: - ChipLogProgress(chipTool, " ***** Test Step 11 : Step 6b: Read optional command(EnhancedAddSceneResponse) AcceptedCommandList (global attribute 65529)\n"); + case 13: + ChipLogProgress(chipTool, " ***** Test Step 13 : Step 6b: Read optional command(EnhancedAddSceneResponse) AcceptedCommandList (global attribute 65529)\n"); if (ShouldSkip("S.S.C40.Rsp")) { NextTest(); return; } - err = TestStep6bReadOptionalCommandEnhancedAddSceneResponseAcceptedCommandListGlobalAttribute65529_11(); + err = TestStep6bReadOptionalCommandEnhancedAddSceneResponseAcceptedCommandListGlobalAttribute65529_13(); break; - case 12: - ChipLogProgress(chipTool, " ***** Test Step 12 : Step 6c: Read optional command(EnhancedViewSceneResponse) AcceptedCommandList (global attribute 65529)\n"); + case 14: + ChipLogProgress(chipTool, " ***** Test Step 14 : Step 6c: Read optional command(EnhancedViewSceneResponse) AcceptedCommandList (global attribute 65529)\n"); if (ShouldSkip("S.S.C41.Rsp")) { NextTest(); return; } - err = TestStep6cReadOptionalCommandEnhancedViewSceneResponseAcceptedCommandListGlobalAttribute65529_12(); + err = TestStep6cReadOptionalCommandEnhancedViewSceneResponseAcceptedCommandListGlobalAttribute65529_14(); break; - case 13: - ChipLogProgress(chipTool, " ***** Test Step 13 : Step 6d: Read optional command(CopySceneResponse) AcceptedCommandList (global attribute 65529)\n"); + case 15: + ChipLogProgress(chipTool, " ***** Test Step 15 : Step 6d: Read optional command(CopySceneResponse) AcceptedCommandList (global attribute 65529)\n"); if (ShouldSkip("S.S.C42.Rsp")) { NextTest(); return; } - err = TestStep6dReadOptionalCommandCopySceneResponseAcceptedCommandListGlobalAttribute65529_13(); + err = TestStep6dReadOptionalCommandCopySceneResponseAcceptedCommandListGlobalAttribute65529_15(); break; - case 14: - ChipLogProgress(chipTool, " ***** Test Step 14 : Step 7a: Read GeneratedCommandList (global attribute 65528)\n"); - err = TestStep7aReadGeneratedCommandListGlobalAttribute65528_14(); + case 16: + ChipLogProgress(chipTool, " ***** Test Step 16 : Step 7a: Read GeneratedCommandList (global attribute 65528)\n"); + err = TestStep7aReadGeneratedCommandListGlobalAttribute65528_16(); break; - case 15: - ChipLogProgress(chipTool, " ***** Test Step 15 : Step 7b: Read optional command(EnhancedAddSceneResponse) in GeneratedCommandList (global attribute 65528)\n"); + case 17: + ChipLogProgress(chipTool, " ***** Test Step 17 : Step 7b: Read optional command(EnhancedAddSceneResponse) in GeneratedCommandList (global attribute 65528)\n"); if (ShouldSkip("S.S.C40.Rsp")) { NextTest(); return; } - err = TestStep7bReadOptionalCommandEnhancedAddSceneResponseInGeneratedCommandListGlobalAttribute65528_15(); + err = TestStep7bReadOptionalCommandEnhancedAddSceneResponseInGeneratedCommandListGlobalAttribute65528_17(); break; - case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : Step 7c: Read optional command(EnhancedViewSceneResponse) in GeneratedCommandList (global attribute 65528)\n"); + case 18: + ChipLogProgress(chipTool, " ***** Test Step 18 : Step 7c: Read optional command(EnhancedViewSceneResponse) in GeneratedCommandList (global attribute 65528)\n"); if (ShouldSkip("S.S.C41.Rsp")) { NextTest(); return; } - err = TestStep7cReadOptionalCommandEnhancedViewSceneResponseInGeneratedCommandListGlobalAttribute65528_16(); + err = TestStep7cReadOptionalCommandEnhancedViewSceneResponseInGeneratedCommandListGlobalAttribute65528_18(); break; - case 17: - ChipLogProgress(chipTool, " ***** Test Step 17 : Step 7d: Read optional command(CopySceneResponse) in GeneratedCommandList (global attribute 65528)\n"); + case 19: + ChipLogProgress(chipTool, " ***** Test Step 19 : Step 7d: Read optional command(CopySceneResponse) in GeneratedCommandList (global attribute 65528)\n"); if (ShouldSkip("S.S.C42.Rsp")) { NextTest(); return; } - err = TestStep7dReadOptionalCommandCopySceneResponseInGeneratedCommandListGlobalAttribute65528_17(); + err = TestStep7dReadOptionalCommandCopySceneResponseInGeneratedCommandListGlobalAttribute65528_19(); break; } @@ -171663,6 +171691,12 @@ class Test_TC_S_1_1 : public TestCommandBridge { case 17: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -171673,7 +171707,7 @@ class Test_TC_S_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 18; + const uint16_t mTestCount = 20; chip::Optional mNodeId; chip::Optional mCluster; @@ -171750,7 +171784,45 @@ class Test_TC_S_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4ReadMandatoryAttributesInAttributeListGlobalAttribute65531_4() + CHIP_ERROR TestStep3bReadFeatureMapGlobalAttribute65532_4() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterScenes alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 3b: Read FeatureMap (global attribute 65532) Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep3cReadFeatureMapGlobalAttribute65532_5() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterScenes alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 3c: Read FeatureMap (global attribute 65532) Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4ReadMandatoryAttributesInAttributeListGlobalAttribute65531_6() { MTRBaseDevice * device = GetDevice("alpha"); @@ -171776,7 +171848,7 @@ class Test_TC_S_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bReadOptionalAttributesSceneCountCurrentSceneCurrentGroupSceneValidInAttributeListGlobalAttribute65531_5() + CHIP_ERROR TestStep4bReadOptionalAttributesSceneCountCurrentSceneCurrentGroupSceneValidInAttributeListGlobalAttribute65531_7() { MTRBaseDevice * device = GetDevice("alpha"); @@ -171800,7 +171872,7 @@ class Test_TC_S_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4cReadOptinnalAttributeLastConfiguredByInAttributeListGlobalAttribute65531_6() + CHIP_ERROR TestStep4cReadOptinnalAttributeLastConfiguredByInAttributeListGlobalAttribute65531_8() { MTRBaseDevice * device = GetDevice("alpha"); @@ -171821,7 +171893,7 @@ class Test_TC_S_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4dReadOptionnalAttributeSceneTableSizeInAttributeListGlobalAttribute65531_7() + CHIP_ERROR TestStep4dReadOptionnalAttributeSceneTableSizeInAttributeListGlobalAttribute65531_9() { MTRBaseDevice * device = GetDevice("alpha"); @@ -171842,7 +171914,7 @@ class Test_TC_S_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4eReadOptionalAttributeFabricSceneInfoInAttributeListGlobalAttribute65531_8() + CHIP_ERROR TestStep4eReadOptionalAttributeFabricSceneInfoInAttributeListGlobalAttribute65531_10() { MTRBaseDevice * device = GetDevice("alpha"); @@ -171863,7 +171935,7 @@ class Test_TC_S_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6aReadMandatoryCommandsInAcceptedCommandListGlobalAttribute65529_10() + CHIP_ERROR TestStep6aReadMandatoryCommandsInAcceptedCommandListGlobalAttribute65529_12() { MTRBaseDevice * device = GetDevice("alpha"); @@ -171890,7 +171962,7 @@ class Test_TC_S_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6bReadOptionalCommandEnhancedAddSceneResponseAcceptedCommandListGlobalAttribute65529_11() + CHIP_ERROR TestStep6bReadOptionalCommandEnhancedAddSceneResponseAcceptedCommandListGlobalAttribute65529_13() { MTRBaseDevice * device = GetDevice("alpha"); @@ -171911,7 +171983,7 @@ class Test_TC_S_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6cReadOptionalCommandEnhancedViewSceneResponseAcceptedCommandListGlobalAttribute65529_12() + CHIP_ERROR TestStep6cReadOptionalCommandEnhancedViewSceneResponseAcceptedCommandListGlobalAttribute65529_14() { MTRBaseDevice * device = GetDevice("alpha"); @@ -171932,7 +172004,7 @@ class Test_TC_S_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6dReadOptionalCommandCopySceneResponseAcceptedCommandListGlobalAttribute65529_13() + CHIP_ERROR TestStep6dReadOptionalCommandCopySceneResponseAcceptedCommandListGlobalAttribute65529_15() { MTRBaseDevice * device = GetDevice("alpha"); @@ -171953,7 +172025,7 @@ class Test_TC_S_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep7aReadGeneratedCommandListGlobalAttribute65528_14() + CHIP_ERROR TestStep7aReadGeneratedCommandListGlobalAttribute65528_16() { MTRBaseDevice * device = GetDevice("alpha"); @@ -171979,7 +172051,7 @@ class Test_TC_S_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep7bReadOptionalCommandEnhancedAddSceneResponseInGeneratedCommandListGlobalAttribute65528_15() + CHIP_ERROR TestStep7bReadOptionalCommandEnhancedAddSceneResponseInGeneratedCommandListGlobalAttribute65528_17() { MTRBaseDevice * device = GetDevice("alpha"); @@ -172000,7 +172072,7 @@ class Test_TC_S_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep7cReadOptionalCommandEnhancedViewSceneResponseInGeneratedCommandListGlobalAttribute65528_16() + CHIP_ERROR TestStep7cReadOptionalCommandEnhancedViewSceneResponseInGeneratedCommandListGlobalAttribute65528_18() { MTRBaseDevice * device = GetDevice("alpha"); @@ -172021,7 +172093,7 @@ class Test_TC_S_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep7dReadOptionalCommandCopySceneResponseInGeneratedCommandListGlobalAttribute65528_17() + CHIP_ERROR TestStep7dReadOptionalCommandCopySceneResponseInGeneratedCommandListGlobalAttribute65528_19() { MTRBaseDevice * device = GetDevice("alpha"); @@ -172411,1143 +172483,6 @@ class Test_TC_S_2_1 : public TestCommandBridge { } }; -class Test_TC_S_2_3 : public TestCommandBridge { -public: - // NOLINTBEGIN(clang-analyzer-nullability.NullPassedToNonnull): Test constructor nullability not enforced - Test_TC_S_2_3() - : TestCommandBridge("Test_TC_S_2_3") - , mTestIndex(0) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("G1", 0, UINT16_MAX, &mG1); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - // NOLINTEND(clang-analyzer-nullability.NullPassedToNonnull) - - ~Test_TC_S_2_3() - { - } - - /////////// TestCommand Interface ///////// - void NextTest() override - { - CHIP_ERROR err = CHIP_NO_ERROR; - - if (0 == mTestIndex) { - ChipLogProgress(chipTool, " **** Test Start: Test_TC_S_2_3\n"); - } - - if (mTestCount == mTestIndex) { - ChipLogProgress(chipTool, " **** Test Complete: Test_TC_S_2_3\n"); - SetCommandExitStatus(CHIP_NO_ERROR); - return; - } - - Wait(); - - // Ensure we increment mTestIndex before we start running the relevant - // command. That way if we lose the timeslice after we send the message - // but before our function call returns, we won't end up with an - // incorrect mTestIndex value observed when we get the response. - switch (mTestIndex++) { - case 0: - ChipLogProgress(chipTool, " ***** Test Step 0 : Wait for the commissioned device to be retrieved\n"); - err = TestWaitForTheCommissionedDeviceToBeRetrieved_0(); - break; - case 1: - ChipLogProgress(chipTool, " ***** Test Step 1 : TH reads from the DUT the (0x0006) SceneTableSize attribute\n"); - if (ShouldSkip("S.S.A0006")) { - NextTest(); - return; - } - err = TestThReadsFromTheDutThe0x0006SceneTableSizeAttribute_1(); - break; - case 2: - ChipLogProgress(chipTool, " ***** Test Step 2 : Step 0a: preparation step for using commands from Groups cluster: Add KeySet\n"); - err = TestStep0aPreparationStepForUsingCommandsFromGroupsClusterAddKeySet_2(); - break; - case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Step 0b: Preparation step for using commands from Groups cluster: Write Group Keys\n"); - err = TestStep0bPreparationStepForUsingCommandsFromGroupsClusterWriteGroupKeys_3(); - break; - case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Step 1a: TH sends a AddGroup command to DUT with the GroupID field set to G1.\n"); - if (ShouldSkip("G.S.C00.Rsp")) { - NextTest(); - return; - } - err = TestStep1aThSendsAAddGroupCommandToDutWithTheGroupIDFieldSetToG1_4(); - break; - case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Install ACLs\n"); - err = TestInstallACLs_5(); - break; - case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Step 1b: TH sends a RemoveAllScenes command to DUT with the GroupID field set to G1.\n"); - if (ShouldSkip("S.S.C03.Rsp")) { - NextTest(); - return; - } - err = TestStep1bThSendsARemoveAllScenesCommandToDutWithTheGroupIDFieldSetToG1_6(); - break; - case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Step 1c: TH sends a GetSceneMembership command to DUT with the GroupID field set to G1.\n"); - if (ShouldSkip("S.S.C06.Rsp")) { - NextTest(); - return; - } - err = TestStep1cThSendsAGetSceneMembershipCommandToDutWithTheGroupIDFieldSetToG1_7(); - break; - case 8: - ChipLogProgress(chipTool, " ***** Test Step 8 : Step 2a: TH sends a EnhancedAddScene command to DUT with the GroupID field set to G1, the SceneID field set to 0x01, the TransitionTime field set to 0x000a (1s) and a set of extension fields appropriate to AC1.\n"); - if (ShouldSkip("S.S.C40.Rsp && PICS_SDK_CI_ONLY")) { - NextTest(); - return; - } - err = TestStep2aThSendsAEnhancedAddSceneCommandToDutWithTheGroupIDFieldSetToG1TheSceneIDFieldSetTo0x01TheTransitionTimeFieldSetTo0x000a1sAndASetOfExtensionFieldsAppropriateToAc1_8(); - break; - case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : Step 2b: TH sends a AddScene command to DUT with the GroupID field set to G1, the SceneID field set to 0x01, the TransitionTime field set to 0x0001 (1s) and a set of extension fields appropriate to AC1.\n"); - if (ShouldSkip("S.S.C00.Rsp && PICS_SDK_CI_ONLY")) { - NextTest(); - return; - } - err = TestStep2bThSendsAAddSceneCommandToDutWithTheGroupIDFieldSetToG1TheSceneIDFieldSetTo0x01TheTransitionTimeFieldSetTo0x00011sAndASetOfExtensionFieldsAppropriateToAc1_9(); - break; - case 10: - ChipLogProgress(chipTool, " ***** Test Step 10 : Step 2a: TH sends a EnhancedAddScene command to DUT with the GroupID field set to G1, the SceneID field set to 0x01, the TransitionTime field set to 0x000a and a set of extension fields appropriate to AC1.\n"); - if (ShouldSkip("S.S.C40.Rsp && PICS_SKIP_SAMPLE_APP")) { - NextTest(); - return; - } - err = TestStep2aThSendsAEnhancedAddSceneCommandToDutWithTheGroupIDFieldSetToG1TheSceneIDFieldSetTo0x01TheTransitionTimeFieldSetTo0x000aAndASetOfExtensionFieldsAppropriateToAc1_10(); - break; - case 11: - ChipLogProgress(chipTool, " ***** Test Step 11 : Step 2b: TH sends a AddScene command to DUT with the GroupID field set to G1, the SceneID field set to 0x01, the TransitionTime field set to G1 and a set of extension fields appropriate to AC1.\n"); - if (ShouldSkip("S.S.C00.Rsp && PICS_SKIP_SAMPLE_APP")) { - NextTest(); - return; - } - err = TestStep2bThSendsAAddSceneCommandToDutWithTheGroupIDFieldSetToG1TheSceneIDFieldSetTo0x01TheTransitionTimeFieldSetToG1AndASetOfExtensionFieldsAppropriateToAc1_11(); - break; - case 12: - ChipLogProgress(chipTool, " ***** Test Step 12 : Step 3a: TH sends a EnhancedViewScene command to DUT with the GroupID field set to G1 and the SceneID field set to 0x01.\n"); - if (ShouldSkip("S.S.C41.Rsp && PICS_SDK_CI_ONLY")) { - NextTest(); - return; - } - err = TestStep3aThSendsAEnhancedViewSceneCommandToDutWithTheGroupIDFieldSetToG1AndTheSceneIDFieldSetTo0x01_12(); - break; - case 13: - ChipLogProgress(chipTool, " ***** Test Step 13 : Step 3b: TH sends a ViewScene command to DUT with the GroupID field set to G1 and the SceneID field set to 0x01.\n"); - if (ShouldSkip("S.S.C01.Rsp && PICS_SDK_CI_ONLY")) { - NextTest(); - return; - } - err = TestStep3bThSendsAViewSceneCommandToDutWithTheGroupIDFieldSetToG1AndTheSceneIDFieldSetTo0x01_13(); - break; - case 14: - ChipLogProgress(chipTool, " ***** Test Step 14 : Step 3a: TH sends a EnhancedViewScene command to DUT with the GroupID field set to G1 and the SceneID field set to 0x01.\n"); - if (ShouldSkip("S.S.C41.Rsp && PICS_SKIP_SAMPLE_APP")) { - NextTest(); - return; - } - err = TestStep3aThSendsAEnhancedViewSceneCommandToDutWithTheGroupIDFieldSetToG1AndTheSceneIDFieldSetTo0x01_14(); - break; - case 15: - ChipLogProgress(chipTool, " ***** Test Step 15 : Step 3b: TH sends a ViewScene command to DUT with the GroupID field set to G1 and the SceneID field set to 0x01.\n"); - if (ShouldSkip("S.S.C01.Rsp && PICS_SKIP_SAMPLE_APP")) { - NextTest(); - return; - } - err = TestStep3bThSendsAViewSceneCommandToDutWithTheGroupIDFieldSetToG1AndTheSceneIDFieldSetTo0x01_15(); - break; - case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : Step 4: TH sends a GetSceneMembership command to DUT with the GroupID field set to G1.\n"); - if (ShouldSkip("S.S.C06.Rsp")) { - NextTest(); - return; - } - err = TestStep4ThSendsAGetSceneMembershipCommandToDutWithTheGroupIDFieldSetToG1_16(); - break; - case 17: - ChipLogProgress(chipTool, " ***** Test Step 17 : Step 5a: TH configures AC2 on DUT for all implemented application clusters supporting scenes.\n"); - if (ShouldSkip("PICS_SDK_CI_ONLY")) { - NextTest(); - return; - } - err = TestStep5aThConfiguresAc2OnDutForAllImplementedApplicationClustersSupportingScenes_17(); - break; - case 18: - ChipLogProgress(chipTool, " ***** Test Step 18 : Step 5a: TH configures AC2 on DUT for all implemented application clusters supporting scenes.\n"); - if (ShouldSkip("PICS_SKIP_SAMPLE_APP")) { - NextTest(); - return; - } - err = TestStep5aThConfiguresAc2OnDutForAllImplementedApplicationClustersSupportingScenes_18(); - break; - case 19: - ChipLogProgress(chipTool, " ***** Test Step 19 : Step 5b: TH sends a RecallScene command to group G1 with the GroupID field set to G1 and the scene ID field set to 0x01.\n"); - if (ShouldSkip("S.S.C05.Rsp")) { - NextTest(); - return; - } - err = TestStep5bThSendsARecallSceneCommandToGroupG1WithTheGroupIDFieldSetToG1AndTheSceneIdFieldSetTo0x01_19(); - break; - case 20: - ChipLogProgress(chipTool, " ***** Test Step 20 : Wait 1s\n"); - if (ShouldSkip("PICS_SDK_CI_ONLY")) { - NextTest(); - return; - } - err = TestWait1s_20(); - break; - case 21: - ChipLogProgress(chipTool, " ***** Test Step 21 : TH confirm the DUT reached AC1 (on level control cluster) after 1s\n"); - if (ShouldSkip("PICS_SDK_CI_ONLY && S.S.C05.Rsp")) { - NextTest(); - return; - } - err = TestThConfirmTheDutReachedAc1OnLevelControlClusterAfter1s_21(); - break; - case 22: - ChipLogProgress(chipTool, " ***** Test Step 22 : Verify DUT returns to AC1.\n"); - if (ShouldSkip("PICS_SKIP_SAMPLE_APP")) { - NextTest(); - return; - } - err = TestVerifyDutReturnsToAc1_22(); - break; - case 23: - ChipLogProgress(chipTool, " ***** Test Step 23 : Step 6a: TH sends a CopyScene command to DUT with the mode field set to 0x00, the group identifier from field set to G1, the scene identifier from field set to 0x01, the group identifier to field set to G1 and the scene identifier to field set to 0x02.\n"); - if (ShouldSkip("S.S.C42.Rsp")) { - NextTest(); - return; - } - err = TestStep6aThSendsACopySceneCommandToDutWithTheModeFieldSetTo0x00TheGroupIdentifierFromFieldSetToG1TheSceneIdentifierFromFieldSetTo0x01TheGroupIdentifierToFieldSetToG1AndTheSceneIdentifierToFieldSetTo0x02_23(); - break; - case 24: - ChipLogProgress(chipTool, " ***** Test Step 24 : Step 6b: TH sends a GetSceneMembership command to DUT with the GroupID field set to G1.\n"); - if (ShouldSkip("S.S.C06.Rsp")) { - NextTest(); - return; - } - err = TestStep6bThSendsAGetSceneMembershipCommandToDutWithTheGroupIDFieldSetToG1_24(); - break; - case 25: - ChipLogProgress(chipTool, " ***** Test Step 25 : Step 7: TH removes the Group key set that was added by sending a KeySetRemove command to the GroupKeyManagement cluster with the GroupKeySetID field set to 0x01a1\n"); - err = TestStep7ThRemovesTheGroupKeySetThatWasAddedBySendingAKeySetRemoveCommandToTheGroupKeyManagementClusterWithTheGroupKeySetIDFieldSetTo0x01a1_25(); - break; - } - - if (CHIP_NO_ERROR != err) { - ChipLogError(chipTool, " ***** Test Failure: %s\n", chip::ErrorStr(err)); - SetCommandExitStatus(err); - } - } - - void OnStatusUpdate(const chip::app::StatusIB & status) override - { - switch (mTestIndex - 1) { - case 0: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 1: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 2: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 3: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 4: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 5: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 6: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 7: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 8: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 9: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 10: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 11: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 12: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 13: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 14: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 15: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 16: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 17: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 18: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 19: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 20: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 21: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 22: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 23: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 24: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 25: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - } - - // Go on to the next test. - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - - chip::System::Clock::Timeout GetWaitDuration() const override { return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); } - -private: - std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 26; - - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mG1; - chip::Optional mTimeout; - - CHIP_ERROR TestWaitForTheCommissionedDeviceToBeRetrieved_0() - { - - chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; - value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; - return WaitForCommissionee("alpha", value); - } - NSNumber * _Nonnull maxScenes; - - CHIP_ERROR TestThReadsFromTheDutThe0x0006SceneTableSizeAttribute_1() - { - - MTRBaseDevice * device = GetDevice("alpha"); - __auto_type * cluster = [[MTRBaseClusterScenes alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeSceneTableSizeWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"TH reads from the DUT the (0x0006) SceneTableSize attribute Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - { - maxScenes = value; - } - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestStep0aPreparationStepForUsingCommandsFromGroupsClusterAddKeySet_2() - { - - MTRBaseDevice * device = GetDevice("alpha"); - __auto_type * cluster = [[MTRBaseClusterGroupKeyManagement alloc] initWithDevice:device endpointID:@(0) queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - __auto_type * params = [[MTRGroupKeyManagementClusterKeySetWriteParams alloc] init]; - params.groupKeySet = [[MTRGroupKeyManagementClusterGroupKeySetStruct alloc] init]; - ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).groupKeySetID = - [NSNumber numberWithUnsignedShort:417U]; - ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).groupKeySecurityPolicy = - [NSNumber numberWithUnsignedChar:0U]; - ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochKey0 = - [[NSData alloc] initWithBytes:"\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257" length:16]; - ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochStartTime0 = - [NSNumber numberWithUnsignedLongLong:1110000ULL]; - ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochKey1 = - [[NSData alloc] initWithBytes:"\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277" length:16]; - ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochStartTime1 = - [NSNumber numberWithUnsignedLongLong:1110001ULL]; - ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochKey2 = - [[NSData alloc] initWithBytes:"\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317" length:16]; - ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochStartTime2 = - [NSNumber numberWithUnsignedLongLong:1110002ULL]; - - [cluster keySetWriteWithParams:params completion: - ^(NSError * _Nullable err) { - NSLog(@"Step 0a: preparation step for using commands from Groups cluster: Add KeySet Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestStep0bPreparationStepForUsingCommandsFromGroupsClusterWriteGroupKeys_3() - { - - MTRBaseDevice * device = GetDevice("alpha"); - __auto_type * cluster = [[MTRBaseClusterGroupKeyManagement alloc] initWithDevice:device endpointID:@(0) queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - id groupKeyMapArgument; - { - NSMutableArray * temp_0 = [[NSMutableArray alloc] init]; - temp_0[0] = [[MTRGroupKeyManagementClusterGroupKeyMapStruct alloc] init]; - ((MTRGroupKeyManagementClusterGroupKeyMapStruct *) temp_0[0]).groupId = mG1.HasValue() ? [NSNumber numberWithUnsignedShort:mG1.Value()] : [NSNumber numberWithUnsignedShort:257U]; - ((MTRGroupKeyManagementClusterGroupKeyMapStruct *) temp_0[0]).groupKeySetID = - [NSNumber numberWithUnsignedShort:417U]; - ((MTRGroupKeyManagementClusterGroupKeyMapStruct *) temp_0[0]).fabricIndex = - [NSNumber numberWithUnsignedChar:1U]; - - groupKeyMapArgument = temp_0; - } - [cluster writeAttributeGroupKeyMapWithValue:groupKeyMapArgument completion:^(NSError * _Nullable err) { - NSLog(@"Step 0b: Preparation step for using commands from Groups cluster: Write Group Keys Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestStep1aThSendsAAddGroupCommandToDutWithTheGroupIDFieldSetToG1_4() - { - - MTRBaseDevice * device = GetDevice("alpha"); - __auto_type * cluster = [[MTRBaseClusterGroups alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - __auto_type * params = [[MTRGroupsClusterAddGroupParams alloc] init]; - params.groupID = mG1.HasValue() ? [NSNumber numberWithUnsignedShort:mG1.Value()] : [NSNumber numberWithUnsignedShort:257U]; - params.groupName = @"Group #1"; - [cluster addGroupWithParams:params completion: - ^(MTRGroupsClusterAddGroupResponseParams * _Nullable values, NSError * _Nullable err) { - NSLog(@"Step 1a: TH sends a AddGroup command to DUT with the GroupID field set to G1. Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - { - id actualValue = values.status; - VerifyOrReturn(CheckValue("Status", actualValue, 0U)); - } - - { - id actualValue = values.groupID; - VerifyOrReturn(CheckValue("GroupID", actualValue, mG1.HasValue() ? mG1.Value() : 257U)); - } - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestInstallACLs_5() - { - - MTRBaseDevice * device = GetDevice("alpha"); - __auto_type * cluster = [[MTRBaseClusterAccessControl alloc] initWithDevice:device endpointID:@(0) queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - id aclArgument; - { - NSMutableArray * temp_0 = [[NSMutableArray alloc] init]; - temp_0[0] = [[MTRAccessControlClusterAccessControlEntryStruct alloc] init]; - ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[0]).privilege = - [NSNumber numberWithUnsignedChar:5U]; - ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[0]).authMode = - [NSNumber numberWithUnsignedChar:2U]; - ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[0]).subjects = nil; - ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[0]).targets = nil; - ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[0]).fabricIndex = - [NSNumber numberWithUnsignedChar:0U]; - - temp_0[1] = [[MTRAccessControlClusterAccessControlEntryStruct alloc] init]; - ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[1]).privilege = - [NSNumber numberWithUnsignedChar:4U]; - ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[1]).authMode = - [NSNumber numberWithUnsignedChar:3U]; - ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[1]).subjects = nil; - ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[1]).targets = nil; - ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[1]).fabricIndex = - [NSNumber numberWithUnsignedChar:0U]; - - aclArgument = temp_0; - } - [cluster writeAttributeACLWithValue:aclArgument completion:^(NSError * _Nullable err) { - NSLog(@"Install ACLs Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestStep1bThSendsARemoveAllScenesCommandToDutWithTheGroupIDFieldSetToG1_6() - { - - MTRBaseDevice * device = GetDevice("alpha"); - __auto_type * cluster = [[MTRBaseClusterScenes alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - __auto_type * params = [[MTRScenesClusterRemoveAllScenesParams alloc] init]; - params.groupID = mG1.HasValue() ? [NSNumber numberWithUnsignedShort:mG1.Value()] : [NSNumber numberWithUnsignedShort:257U]; - [cluster removeAllScenesWithParams:params completion: - ^(MTRScenesClusterRemoveAllScenesResponseParams * _Nullable values, NSError * _Nullable err) { - NSLog(@"Step 1b: TH sends a RemoveAllScenes command to DUT with the GroupID field set to G1. Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - { - id actualValue = values.status; - VerifyOrReturn(CheckValue("Status", actualValue, 0U)); - } - - { - id actualValue = values.groupID; - VerifyOrReturn(CheckValue("GroupID", actualValue, mG1.HasValue() ? mG1.Value() : 257U)); - } - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestStep1cThSendsAGetSceneMembershipCommandToDutWithTheGroupIDFieldSetToG1_7() - { - - MTRBaseDevice * device = GetDevice("alpha"); - __auto_type * cluster = [[MTRBaseClusterScenes alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - __auto_type * params = [[MTRScenesClusterGetSceneMembershipParams alloc] init]; - params.groupID = mG1.HasValue() ? [NSNumber numberWithUnsignedShort:mG1.Value()] : [NSNumber numberWithUnsignedShort:257U]; - [cluster getSceneMembershipWithParams:params completion: - ^(MTRScenesClusterGetSceneMembershipResponseParams * _Nullable values, NSError * _Nullable err) { - NSLog(@"Step 1c: TH sends a GetSceneMembership command to DUT with the GroupID field set to G1. Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - { - id actualValue = values.status; - VerifyOrReturn(CheckValue("Status", actualValue, 0U)); - } - - { - id actualValue = values.capacity; - VerifyOrReturn(CheckValueNonNull("Capacity", actualValue)); - VerifyOrReturn(CheckValue("Capacity", actualValue, [maxScenes unsignedShortValue] / 2U)); - } - - { - id actualValue = values.groupID; - VerifyOrReturn(CheckValue("GroupID", actualValue, mG1.HasValue() ? mG1.Value() : 257U)); - } - - { - id actualValue = values.sceneList; - VerifyOrReturn(CheckValue("SceneList", [actualValue count], static_cast(0))); - } - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestStep2aThSendsAEnhancedAddSceneCommandToDutWithTheGroupIDFieldSetToG1TheSceneIDFieldSetTo0x01TheTransitionTimeFieldSetTo0x000a1sAndASetOfExtensionFieldsAppropriateToAc1_8() - { - - MTRBaseDevice * device = GetDevice("alpha"); - __auto_type * cluster = [[MTRBaseClusterScenes alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - __auto_type * params = [[MTRScenesClusterEnhancedAddSceneParams alloc] init]; - params.groupID = mG1.HasValue() ? [NSNumber numberWithUnsignedShort:mG1.Value()] : [NSNumber numberWithUnsignedShort:257U]; - params.sceneID = - [NSNumber numberWithUnsignedChar:1U]; - params.transitionTime = - [NSNumber numberWithUnsignedShort:10U]; - params.sceneName = @"Scene1"; - { - NSMutableArray * temp_0 = [[NSMutableArray alloc] init]; - temp_0[0] = [[MTRScenesClusterExtensionFieldSet alloc] init]; - ((MTRScenesClusterExtensionFieldSet *) temp_0[0]).clusterID = - [NSNumber numberWithUnsignedInt:6UL]; - { - NSMutableArray * temp_2 = [[NSMutableArray alloc] init]; - temp_2[0] = [[MTRScenesClusterAttributeValuePair alloc] init]; - ((MTRScenesClusterAttributeValuePair *) temp_2[0]).attributeID = - [NSNumber numberWithUnsignedInt:0UL]; - ((MTRScenesClusterAttributeValuePair *) temp_2[0]).attributeValue = - [NSNumber numberWithUnsignedInt:1UL]; - - ((MTRScenesClusterExtensionFieldSet *) temp_0[0]).attributeValueList = temp_2; - } - - temp_0[1] = [[MTRScenesClusterExtensionFieldSet alloc] init]; - ((MTRScenesClusterExtensionFieldSet *) temp_0[1]).clusterID = - [NSNumber numberWithUnsignedInt:8UL]; - { - NSMutableArray * temp_2 = [[NSMutableArray alloc] init]; - temp_2[0] = [[MTRScenesClusterAttributeValuePair alloc] init]; - ((MTRScenesClusterAttributeValuePair *) temp_2[0]).attributeID = - [NSNumber numberWithUnsignedInt:0UL]; - ((MTRScenesClusterAttributeValuePair *) temp_2[0]).attributeValue = - [NSNumber numberWithUnsignedInt:100UL]; - - ((MTRScenesClusterExtensionFieldSet *) temp_0[1]).attributeValueList = temp_2; - } - - params.extensionFieldSets = temp_0; - } - [cluster enhancedAddSceneWithParams:params completion: - ^(MTRScenesClusterEnhancedAddSceneResponseParams * _Nullable values, NSError * _Nullable err) { - NSLog(@"Step 2a: TH sends a EnhancedAddScene command to DUT with the GroupID field set to G1, the SceneID field set to 0x01, the TransitionTime field set to 0x000a (1s) and a set of extension fields appropriate to AC1. Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - { - id actualValue = values.status; - VerifyOrReturn(CheckValue("Status", actualValue, 0U)); - } - - { - id actualValue = values.groupID; - VerifyOrReturn(CheckValue("GroupID", actualValue, mG1.HasValue() ? mG1.Value() : 257U)); - } - - { - id actualValue = values.sceneID; - VerifyOrReturn(CheckValue("SceneID", actualValue, 1U)); - } - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestStep2bThSendsAAddSceneCommandToDutWithTheGroupIDFieldSetToG1TheSceneIDFieldSetTo0x01TheTransitionTimeFieldSetTo0x00011sAndASetOfExtensionFieldsAppropriateToAc1_9() - { - - MTRBaseDevice * device = GetDevice("alpha"); - __auto_type * cluster = [[MTRBaseClusterScenes alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - __auto_type * params = [[MTRScenesClusterAddSceneParams alloc] init]; - params.groupID = mG1.HasValue() ? [NSNumber numberWithUnsignedShort:mG1.Value()] : [NSNumber numberWithUnsignedShort:257U]; - params.sceneID = - [NSNumber numberWithUnsignedChar:1U]; - params.transitionTime = - [NSNumber numberWithUnsignedShort:1U]; - params.sceneName = @"Scene1"; - { - NSMutableArray * temp_0 = [[NSMutableArray alloc] init]; - temp_0[0] = [[MTRScenesClusterExtensionFieldSet alloc] init]; - ((MTRScenesClusterExtensionFieldSet *) temp_0[0]).clusterID = - [NSNumber numberWithUnsignedInt:6UL]; - { - NSMutableArray * temp_2 = [[NSMutableArray alloc] init]; - temp_2[0] = [[MTRScenesClusterAttributeValuePair alloc] init]; - ((MTRScenesClusterAttributeValuePair *) temp_2[0]).attributeID = - [NSNumber numberWithUnsignedInt:0UL]; - ((MTRScenesClusterAttributeValuePair *) temp_2[0]).attributeValue = - [NSNumber numberWithUnsignedInt:1UL]; - - ((MTRScenesClusterExtensionFieldSet *) temp_0[0]).attributeValueList = temp_2; - } - - temp_0[1] = [[MTRScenesClusterExtensionFieldSet alloc] init]; - ((MTRScenesClusterExtensionFieldSet *) temp_0[1]).clusterID = - [NSNumber numberWithUnsignedInt:8UL]; - { - NSMutableArray * temp_2 = [[NSMutableArray alloc] init]; - temp_2[0] = [[MTRScenesClusterAttributeValuePair alloc] init]; - ((MTRScenesClusterAttributeValuePair *) temp_2[0]).attributeID = - [NSNumber numberWithUnsignedInt:0UL]; - ((MTRScenesClusterAttributeValuePair *) temp_2[0]).attributeValue = - [NSNumber numberWithUnsignedInt:100UL]; - - ((MTRScenesClusterExtensionFieldSet *) temp_0[1]).attributeValueList = temp_2; - } - - params.extensionFieldSets = temp_0; - } - [cluster addSceneWithParams:params completion: - ^(MTRScenesClusterAddSceneResponseParams * _Nullable values, NSError * _Nullable err) { - NSLog(@"Step 2b: TH sends a AddScene command to DUT with the GroupID field set to G1, the SceneID field set to 0x01, the TransitionTime field set to 0x0001 (1s) and a set of extension fields appropriate to AC1. Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - { - id actualValue = values.status; - VerifyOrReturn(CheckValue("Status", actualValue, 0U)); - } - - { - id actualValue = values.groupID; - VerifyOrReturn(CheckValue("GroupID", actualValue, mG1.HasValue() ? mG1.Value() : 257U)); - } - - { - id actualValue = values.sceneID; - VerifyOrReturn(CheckValue("SceneID", actualValue, 1U)); - } - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestStep2aThSendsAEnhancedAddSceneCommandToDutWithTheGroupIDFieldSetToG1TheSceneIDFieldSetTo0x01TheTransitionTimeFieldSetTo0x000aAndASetOfExtensionFieldsAppropriateToAc1_10() - { - - chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; - value.message = chip::Span("Please execute the enhanced add scene command with extensionfieldsets in accordance with AC1 on DUT and enter 'y' if the command is successfulgarbage: not in length on purpose", 142); - value.expectedValue.Emplace(); - value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); - return UserPrompt("alpha", value); - } - - CHIP_ERROR TestStep2bThSendsAAddSceneCommandToDutWithTheGroupIDFieldSetToG1TheSceneIDFieldSetTo0x01TheTransitionTimeFieldSetToG1AndASetOfExtensionFieldsAppropriateToAc1_11() - { - - chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; - value.message = chip::Span("Please execute the add scene command with extensionfieldsets in accordance with AC1 on DUT and enter 'y' if the command is successfulgarbage: not in length on purpose", 133); - value.expectedValue.Emplace(); - value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); - return UserPrompt("alpha", value); - } - - CHIP_ERROR TestStep3aThSendsAEnhancedViewSceneCommandToDutWithTheGroupIDFieldSetToG1AndTheSceneIDFieldSetTo0x01_12() - { - - MTRBaseDevice * device = GetDevice("alpha"); - __auto_type * cluster = [[MTRBaseClusterScenes alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - __auto_type * params = [[MTRScenesClusterEnhancedViewSceneParams alloc] init]; - params.groupID = mG1.HasValue() ? [NSNumber numberWithUnsignedShort:mG1.Value()] : [NSNumber numberWithUnsignedShort:257U]; - params.sceneID = - [NSNumber numberWithUnsignedChar:1U]; - [cluster enhancedViewSceneWithParams:params completion: - ^(MTRScenesClusterEnhancedViewSceneResponseParams * _Nullable values, NSError * _Nullable err) { - NSLog(@"Step 3a: TH sends a EnhancedViewScene command to DUT with the GroupID field set to G1 and the SceneID field set to 0x01. Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - { - id actualValue = values.status; - VerifyOrReturn(CheckValue("Status", actualValue, 0U)); - } - - { - id actualValue = values.groupID; - VerifyOrReturn(CheckValue("GroupID", actualValue, mG1.HasValue() ? mG1.Value() : 257U)); - } - - { - id actualValue = values.sceneID; - VerifyOrReturn(CheckValue("SceneID", actualValue, 1U)); - } - - { - id actualValue = values.transitionTime; - VerifyOrReturn(CheckValue("TransitionTime", actualValue, 10U)); - } - - { - id actualValue = values.extensionFieldSets; - VerifyOrReturn(CheckValue("ExtensionFieldSets", [actualValue count], static_cast(2))); - VerifyOrReturn(CheckValue("ClusterID", ((MTRScenesClusterExtensionFieldSet *) actualValue[0]).clusterID, 6UL)); - VerifyOrReturn(CheckValue("AttributeValueList", [((MTRScenesClusterExtensionFieldSet *) actualValue[0]).attributeValueList count], static_cast(1))); - VerifyOrReturn(CheckValue("AttributeID", ((MTRScenesClusterAttributeValuePair *) ((MTRScenesClusterExtensionFieldSet *) actualValue[0]).attributeValueList[0]).attributeID, 0UL)); - VerifyOrReturn(CheckValue("AttributeValue", ((MTRScenesClusterAttributeValuePair *) ((MTRScenesClusterExtensionFieldSet *) actualValue[0]).attributeValueList[0]).attributeValue, 1UL)); - VerifyOrReturn(CheckValue("ClusterID", ((MTRScenesClusterExtensionFieldSet *) actualValue[1]).clusterID, 8UL)); - VerifyOrReturn(CheckValue("AttributeValueList", [((MTRScenesClusterExtensionFieldSet *) actualValue[1]).attributeValueList count], static_cast(1))); - VerifyOrReturn(CheckValue("AttributeID", ((MTRScenesClusterAttributeValuePair *) ((MTRScenesClusterExtensionFieldSet *) actualValue[1]).attributeValueList[0]).attributeID, 0UL)); - VerifyOrReturn(CheckValue("AttributeValue", ((MTRScenesClusterAttributeValuePair *) ((MTRScenesClusterExtensionFieldSet *) actualValue[1]).attributeValueList[0]).attributeValue, 100UL)); - } - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestStep3bThSendsAViewSceneCommandToDutWithTheGroupIDFieldSetToG1AndTheSceneIDFieldSetTo0x01_13() - { - - MTRBaseDevice * device = GetDevice("alpha"); - __auto_type * cluster = [[MTRBaseClusterScenes alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - __auto_type * params = [[MTRScenesClusterViewSceneParams alloc] init]; - params.groupID = mG1.HasValue() ? [NSNumber numberWithUnsignedShort:mG1.Value()] : [NSNumber numberWithUnsignedShort:257U]; - params.sceneID = - [NSNumber numberWithUnsignedChar:1U]; - [cluster viewSceneWithParams:params completion: - ^(MTRScenesClusterViewSceneResponseParams * _Nullable values, NSError * _Nullable err) { - NSLog(@"Step 3b: TH sends a ViewScene command to DUT with the GroupID field set to G1 and the SceneID field set to 0x01. Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - { - id actualValue = values.status; - VerifyOrReturn(CheckValue("Status", actualValue, 0U)); - } - - { - id actualValue = values.groupID; - VerifyOrReturn(CheckValue("GroupID", actualValue, mG1.HasValue() ? mG1.Value() : 257U)); - } - - { - id actualValue = values.sceneID; - VerifyOrReturn(CheckValue("SceneID", actualValue, 1U)); - } - - { - id actualValue = values.transitionTime; - VerifyOrReturn(CheckValue("TransitionTime", actualValue, 1U)); - } - - { - id actualValue = values.extensionFieldSets; - VerifyOrReturn(CheckValue("ExtensionFieldSets", [actualValue count], static_cast(2))); - VerifyOrReturn(CheckValue("ClusterID", ((MTRScenesClusterExtensionFieldSet *) actualValue[0]).clusterID, 6UL)); - VerifyOrReturn(CheckValue("AttributeValueList", [((MTRScenesClusterExtensionFieldSet *) actualValue[0]).attributeValueList count], static_cast(1))); - VerifyOrReturn(CheckValue("AttributeID", ((MTRScenesClusterAttributeValuePair *) ((MTRScenesClusterExtensionFieldSet *) actualValue[0]).attributeValueList[0]).attributeID, 0UL)); - VerifyOrReturn(CheckValue("AttributeValue", ((MTRScenesClusterAttributeValuePair *) ((MTRScenesClusterExtensionFieldSet *) actualValue[0]).attributeValueList[0]).attributeValue, 1UL)); - VerifyOrReturn(CheckValue("ClusterID", ((MTRScenesClusterExtensionFieldSet *) actualValue[1]).clusterID, 8UL)); - VerifyOrReturn(CheckValue("AttributeValueList", [((MTRScenesClusterExtensionFieldSet *) actualValue[1]).attributeValueList count], static_cast(1))); - VerifyOrReturn(CheckValue("AttributeID", ((MTRScenesClusterAttributeValuePair *) ((MTRScenesClusterExtensionFieldSet *) actualValue[1]).attributeValueList[0]).attributeID, 0UL)); - VerifyOrReturn(CheckValue("AttributeValue", ((MTRScenesClusterAttributeValuePair *) ((MTRScenesClusterExtensionFieldSet *) actualValue[1]).attributeValueList[0]).attributeValue, 100UL)); - } - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestStep3aThSendsAEnhancedViewSceneCommandToDutWithTheGroupIDFieldSetToG1AndTheSceneIDFieldSetTo0x01_14() - { - - chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; - value.message = chip::Span("Please execute the ehanced-view-scene command and verify that the extensionfieldsets, status, groupID and SceneID are in accordance with AC1 on DUT and enter 'y' if the command is successfulgarbage: not in length on purpose", 190); - value.expectedValue.Emplace(); - value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); - return UserPrompt("alpha", value); - } - - CHIP_ERROR TestStep3bThSendsAViewSceneCommandToDutWithTheGroupIDFieldSetToG1AndTheSceneIDFieldSetTo0x01_15() - { - - chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; - value.message = chip::Span("Please execute the view-scene command and verify that the extensionfieldsets, status, groupID and SceneID are in accordance with AC1 on DUT and enter 'y' if the command is successfulgarbage: not in length on purpose", 182); - value.expectedValue.Emplace(); - value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); - return UserPrompt("alpha", value); - } - - CHIP_ERROR TestStep4ThSendsAGetSceneMembershipCommandToDutWithTheGroupIDFieldSetToG1_16() - { - - MTRBaseDevice * device = GetDevice("alpha"); - __auto_type * cluster = [[MTRBaseClusterScenes alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - __auto_type * params = [[MTRScenesClusterGetSceneMembershipParams alloc] init]; - params.groupID = mG1.HasValue() ? [NSNumber numberWithUnsignedShort:mG1.Value()] : [NSNumber numberWithUnsignedShort:257U]; - [cluster getSceneMembershipWithParams:params completion: - ^(MTRScenesClusterGetSceneMembershipResponseParams * _Nullable values, NSError * _Nullable err) { - NSLog(@"Step 4: TH sends a GetSceneMembership command to DUT with the GroupID field set to G1. Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - { - id actualValue = values.status; - VerifyOrReturn(CheckValue("Status", actualValue, 0U)); - } - - { - id actualValue = values.capacity; - VerifyOrReturn(CheckValueNonNull("Capacity", actualValue)); - VerifyOrReturn(CheckValue("Capacity", actualValue, ([maxScenes unsignedShortValue] / 2U) - 1U)); - } - - { - id actualValue = values.groupID; - VerifyOrReturn(CheckValue("GroupID", actualValue, mG1.HasValue() ? mG1.Value() : 257U)); - } - - { - id actualValue = values.sceneList; - VerifyOrReturn(CheckValue("SceneList", [actualValue count], static_cast(1))); - VerifyOrReturn(CheckValue("", actualValue[0], 1U)); - } - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestStep5aThConfiguresAc2OnDutForAllImplementedApplicationClustersSupportingScenes_17() - { - - MTRBaseDevice * device = GetDevice("alpha"); - __auto_type * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - __auto_type * params = [[MTRLevelControlClusterMoveToLevelWithOnOffParams alloc] init]; - params.level = - [NSNumber numberWithUnsignedChar:200U]; - params.transitionTime = - [NSNumber numberWithUnsignedShort:0U]; - params.optionsMask = - [NSNumber numberWithUnsignedChar:0U]; - params.optionsOverride = - [NSNumber numberWithUnsignedChar:0U]; - [cluster moveToLevelWithOnOffWithParams:params completion: - ^(NSError * _Nullable err) { - NSLog(@"Step 5a: TH configures AC2 on DUT for all implemented application clusters supporting scenes. Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestStep5aThConfiguresAc2OnDutForAllImplementedApplicationClustersSupportingScenes_18() - { - - chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; - value.message = chip::Span("Please configure AC2 on DUT and enter 'y' after the configuration is completegarbage: not in length on purpose", 77); - value.expectedValue.Emplace(); - value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); - return UserPrompt("alpha", value); - } - - CHIP_ERROR TestStep5bThSendsARecallSceneCommandToGroupG1WithTheGroupIDFieldSetToG1AndTheSceneIdFieldSetTo0x01_19() - { - - MTRBaseDevice * device = GetDevice("alpha"); - __auto_type * cluster = [[MTRBaseClusterScenes alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - __auto_type * params = [[MTRScenesClusterRecallSceneParams alloc] init]; - params.groupID = mG1.HasValue() ? [NSNumber numberWithUnsignedShort:mG1.Value()] : [NSNumber numberWithUnsignedShort:257U]; - params.sceneID = - [NSNumber numberWithUnsignedChar:1U]; - [cluster recallSceneWithParams:params completion: - ^(NSError * _Nullable err) { - NSLog(@"Step 5b: TH sends a RecallScene command to group G1 with the GroupID field set to G1 and the scene ID field set to 0x01. Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestWait1s_20() - { - - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 1050UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestThConfirmTheDutReachedAc1OnLevelControlClusterAfter1s_21() - { - - MTRBaseDevice * device = GetDevice("alpha"); - __auto_type * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeCurrentLevelWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"TH confirm the DUT reached AC1 (on level control cluster) after 1s Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - { - id actualValue = value; - VerifyOrReturn(CheckValueNonNull("CurrentLevel", actualValue)); - VerifyOrReturn(CheckValue("CurrentLevel", actualValue, 100U)); - } - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestVerifyDutReturnsToAc1_22() - { - - chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; - value.message = chip::Span("Please confirm AC1 on DUT and enter 'y'.garbage: not in length on purpose", 40); - value.expectedValue.Emplace(); - value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); - return UserPrompt("alpha", value); - } - - CHIP_ERROR TestStep6aThSendsACopySceneCommandToDutWithTheModeFieldSetTo0x00TheGroupIdentifierFromFieldSetToG1TheSceneIdentifierFromFieldSetTo0x01TheGroupIdentifierToFieldSetToG1AndTheSceneIdentifierToFieldSetTo0x02_23() - { - - MTRBaseDevice * device = GetDevice("alpha"); - __auto_type * cluster = [[MTRBaseClusterScenes alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - __auto_type * params = [[MTRScenesClusterCopySceneParams alloc] init]; - params.mode = - [NSNumber numberWithUnsignedChar:0U]; - params.groupIdentifierFrom = mG1.HasValue() ? [NSNumber numberWithUnsignedShort:mG1.Value()] : [NSNumber numberWithUnsignedShort:257U]; - params.sceneIdentifierFrom = - [NSNumber numberWithUnsignedChar:1U]; - params.groupIdentifierTo = mG1.HasValue() ? [NSNumber numberWithUnsignedShort:mG1.Value()] : [NSNumber numberWithUnsignedShort:257U]; - params.sceneIdentifierTo = - [NSNumber numberWithUnsignedChar:2U]; - [cluster copySceneWithParams:params completion: - ^(MTRScenesClusterCopySceneResponseParams * _Nullable values, NSError * _Nullable err) { - NSLog(@"Step 6a: TH sends a CopyScene command to DUT with the mode field set to 0x00, the group identifier from field set to G1, the scene identifier from field set to 0x01, the group identifier to field set to G1 and the scene identifier to field set to 0x02. Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - { - id actualValue = values.status; - VerifyOrReturn(CheckValue("Status", actualValue, 0U)); - } - - { - id actualValue = values.groupIdentifierFrom; - VerifyOrReturn(CheckValue("GroupIdentifierFrom", actualValue, mG1.HasValue() ? mG1.Value() : 257U)); - } - - { - id actualValue = values.sceneIdentifierFrom; - VerifyOrReturn(CheckValue("SceneIdentifierFrom", actualValue, 1U)); - } - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestStep6bThSendsAGetSceneMembershipCommandToDutWithTheGroupIDFieldSetToG1_24() - { - - MTRBaseDevice * device = GetDevice("alpha"); - __auto_type * cluster = [[MTRBaseClusterScenes alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - __auto_type * params = [[MTRScenesClusterGetSceneMembershipParams alloc] init]; - params.groupID = mG1.HasValue() ? [NSNumber numberWithUnsignedShort:mG1.Value()] : [NSNumber numberWithUnsignedShort:257U]; - [cluster getSceneMembershipWithParams:params completion: - ^(MTRScenesClusterGetSceneMembershipResponseParams * _Nullable values, NSError * _Nullable err) { - NSLog(@"Step 6b: TH sends a GetSceneMembership command to DUT with the GroupID field set to G1. Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - { - id actualValue = values.status; - VerifyOrReturn(CheckValue("Status", actualValue, 0U)); - } - - { - id actualValue = values.capacity; - VerifyOrReturn(CheckValueNonNull("Capacity", actualValue)); - VerifyOrReturn(CheckValue("Capacity", actualValue, ([maxScenes unsignedShortValue] / 2U) - 2U)); - } - - { - id actualValue = values.groupID; - VerifyOrReturn(CheckValue("GroupID", actualValue, mG1.HasValue() ? mG1.Value() : 257U)); - } - - { - id actualValue = values.sceneList; - VerifyOrReturn(CheckValue("SceneList", [actualValue count], static_cast(2))); - VerifyOrReturn(CheckValue("", actualValue[0], 1U)); - VerifyOrReturn(CheckValue("", actualValue[1], 2U)); - } - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestStep7ThRemovesTheGroupKeySetThatWasAddedBySendingAKeySetRemoveCommandToTheGroupKeyManagementClusterWithTheGroupKeySetIDFieldSetTo0x01a1_25() - { - - MTRBaseDevice * device = GetDevice("alpha"); - __auto_type * cluster = [[MTRBaseClusterGroupKeyManagement alloc] initWithDevice:device endpointID:@(0) queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - __auto_type * params = [[MTRGroupKeyManagementClusterKeySetRemoveParams alloc] init]; - params.groupKeySetID = - [NSNumber numberWithUnsignedShort:417U]; - [cluster keySetRemoveWithParams:params completion: - ^(NSError * _Nullable err) { - NSLog(@"Step 7: TH removes the Group key set that was added by sending a KeySetRemove command to the GroupKeyManagement cluster with the GroupKeySetID field set to 0x01a1 Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } -}; - class Test_TC_S_2_4 : public TestCommandBridge { public: // NOLINTBEGIN(clang-analyzer-nullability.NullPassedToNonnull): Test constructor nullability not enforced @@ -176739,7 +175674,6 @@ void registerCommandsTests(Commands & commands) make_unique(), make_unique(), make_unique(), - make_unique(), make_unique(), make_unique(), make_unique(), diff --git a/zzz_generated/placeholder/app1/zap-generated/test/Commands.h b/zzz_generated/placeholder/app1/zap-generated/test/Commands.h index 2c689ce70fe83b..ac254a6f41f108 100644 --- a/zzz_generated/placeholder/app1/zap-generated/test/Commands.h +++ b/zzz_generated/placeholder/app1/zap-generated/test/Commands.h @@ -70,27 +70,26 @@ class Test_TC_WNCV_5_1_SimulatedSuite : public TestCommand switch (testIndex) { case 0: { - LogStep(0, "DUT reads the FeatureMap attribute from TH"); - VerifyOrDo(!ShouldSkip("WNCV.C.Afffc"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(0, "Step 1a: DUT reads the FeatureMap attribute from TH"); return WaitAttribute(GetEndpoint(0), WindowCovering::Id, WindowCovering::Attributes::FeatureMap::Id); } case 1: { - LogStep(1, "DUT reads the Type attribute from TH"); + LogStep(1, "Step 2a: DUT reads the Type attribute from TH"); VerifyOrDo(!ShouldSkip("WNCV.C.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return WaitAttribute(GetEndpoint(0), WindowCovering::Id, WindowCovering::Attributes::Type::Id); } case 2: { - LogStep(2, "DUT reads the EndProductType attribute from TH"); + LogStep(2, "Step 2b: DUT reads the EndProductType attribute from TH"); VerifyOrDo(!ShouldSkip("WNCV.C.A000d"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return WaitAttribute(GetEndpoint(0), WindowCovering::Id, WindowCovering::Attributes::EndProductType::Id); } case 3: { - LogStep(3, "DUT reads the Mode attribute from TH"); + LogStep(3, "Step 3a: DUT reads the Mode attribute from TH"); VerifyOrDo(!ShouldSkip("WNCV.C.A0017"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return WaitAttribute(GetEndpoint(0), WindowCovering::Id, WindowCovering::Attributes::Mode::Id); } case 4: { - LogStep(4, "DUT reads the ConfigStatus attribute from TH"); + LogStep(4, "Step 3b: DUT reads the ConfigStatus attribute from TH"); VerifyOrDo(!ShouldSkip("WNCV.C.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return WaitAttribute(GetEndpoint(0), WindowCovering::Id, WindowCovering::Attributes::ConfigStatus::Id); } @@ -376,17 +375,17 @@ class Test_TC_WNCV_6_1_SimulatedSuite : public TestCommand switch (testIndex) { case 0: { - LogStep(0, "DUT sends UpOrOpen command to TH"); + LogStep(0, "Step 1a: DUT sends UpOrOpen command to TH"); VerifyOrDo(!ShouldSkip("WNCV.C.C00.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return WaitCommand(GetEndpoint(0), WindowCovering::Id, WindowCovering::Commands::UpOrOpen::Id); } case 1: { - LogStep(1, "DUT sends DownOrClose command to TH"); + LogStep(1, "Step 2a: DUT sends DownOrClose command to TH"); VerifyOrDo(!ShouldSkip("WNCV.C.C01.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return WaitCommand(GetEndpoint(0), WindowCovering::Id, WindowCovering::Commands::DownOrClose::Id); } case 2: { - LogStep(2, "DUT sends StopMotion command to TH"); + LogStep(2, "Step 3a: DUT sends StopMotion command to TH"); VerifyOrDo(!ShouldSkip("WNCV.C.C02.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return WaitCommand(GetEndpoint(0), WindowCovering::Id, WindowCovering::Commands::StopMotion::Id); } @@ -442,12 +441,12 @@ class Test_TC_WNCV_7_1_SimulatedSuite : public TestCommand switch (testIndex) { case 0: { - LogStep(0, "If (PA_LF & LF) DUT sends GoToLiftPercentage command with 50% to DUT"); + LogStep(0, "Step 1a: If (PA_LF & LF) DUT sends GoToLiftPercentage command with 50% to DUT"); VerifyOrDo(!ShouldSkip("WNCV.C.C05.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return WaitCommand(GetEndpoint(0), WindowCovering::Id, WindowCovering::Commands::GoToLiftPercentage::Id); } case 1: { - LogStep(1, "If (PA_TL & TL) DUT sends GoToTiltPercentage command with 50% to DUT"); + LogStep(1, "Step 2a: If (PA_TL & TL) DUT sends GoToTiltPercentage command with 50% to DUT"); VerifyOrDo(!ShouldSkip("WNCV.C.C08.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return WaitCommand(GetEndpoint(0), WindowCovering::Id, WindowCovering::Commands::GoToTiltPercentage::Id); } diff --git a/zzz_generated/placeholder/app2/zap-generated/test/Commands.h b/zzz_generated/placeholder/app2/zap-generated/test/Commands.h index 2c689ce70fe83b..ac254a6f41f108 100644 --- a/zzz_generated/placeholder/app2/zap-generated/test/Commands.h +++ b/zzz_generated/placeholder/app2/zap-generated/test/Commands.h @@ -70,27 +70,26 @@ class Test_TC_WNCV_5_1_SimulatedSuite : public TestCommand switch (testIndex) { case 0: { - LogStep(0, "DUT reads the FeatureMap attribute from TH"); - VerifyOrDo(!ShouldSkip("WNCV.C.Afffc"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(0, "Step 1a: DUT reads the FeatureMap attribute from TH"); return WaitAttribute(GetEndpoint(0), WindowCovering::Id, WindowCovering::Attributes::FeatureMap::Id); } case 1: { - LogStep(1, "DUT reads the Type attribute from TH"); + LogStep(1, "Step 2a: DUT reads the Type attribute from TH"); VerifyOrDo(!ShouldSkip("WNCV.C.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return WaitAttribute(GetEndpoint(0), WindowCovering::Id, WindowCovering::Attributes::Type::Id); } case 2: { - LogStep(2, "DUT reads the EndProductType attribute from TH"); + LogStep(2, "Step 2b: DUT reads the EndProductType attribute from TH"); VerifyOrDo(!ShouldSkip("WNCV.C.A000d"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return WaitAttribute(GetEndpoint(0), WindowCovering::Id, WindowCovering::Attributes::EndProductType::Id); } case 3: { - LogStep(3, "DUT reads the Mode attribute from TH"); + LogStep(3, "Step 3a: DUT reads the Mode attribute from TH"); VerifyOrDo(!ShouldSkip("WNCV.C.A0017"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return WaitAttribute(GetEndpoint(0), WindowCovering::Id, WindowCovering::Attributes::Mode::Id); } case 4: { - LogStep(4, "DUT reads the ConfigStatus attribute from TH"); + LogStep(4, "Step 3b: DUT reads the ConfigStatus attribute from TH"); VerifyOrDo(!ShouldSkip("WNCV.C.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return WaitAttribute(GetEndpoint(0), WindowCovering::Id, WindowCovering::Attributes::ConfigStatus::Id); } @@ -376,17 +375,17 @@ class Test_TC_WNCV_6_1_SimulatedSuite : public TestCommand switch (testIndex) { case 0: { - LogStep(0, "DUT sends UpOrOpen command to TH"); + LogStep(0, "Step 1a: DUT sends UpOrOpen command to TH"); VerifyOrDo(!ShouldSkip("WNCV.C.C00.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return WaitCommand(GetEndpoint(0), WindowCovering::Id, WindowCovering::Commands::UpOrOpen::Id); } case 1: { - LogStep(1, "DUT sends DownOrClose command to TH"); + LogStep(1, "Step 2a: DUT sends DownOrClose command to TH"); VerifyOrDo(!ShouldSkip("WNCV.C.C01.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return WaitCommand(GetEndpoint(0), WindowCovering::Id, WindowCovering::Commands::DownOrClose::Id); } case 2: { - LogStep(2, "DUT sends StopMotion command to TH"); + LogStep(2, "Step 3a: DUT sends StopMotion command to TH"); VerifyOrDo(!ShouldSkip("WNCV.C.C02.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return WaitCommand(GetEndpoint(0), WindowCovering::Id, WindowCovering::Commands::StopMotion::Id); } @@ -442,12 +441,12 @@ class Test_TC_WNCV_7_1_SimulatedSuite : public TestCommand switch (testIndex) { case 0: { - LogStep(0, "If (PA_LF & LF) DUT sends GoToLiftPercentage command with 50% to DUT"); + LogStep(0, "Step 1a: If (PA_LF & LF) DUT sends GoToLiftPercentage command with 50% to DUT"); VerifyOrDo(!ShouldSkip("WNCV.C.C05.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return WaitCommand(GetEndpoint(0), WindowCovering::Id, WindowCovering::Commands::GoToLiftPercentage::Id); } case 1: { - LogStep(1, "If (PA_TL & TL) DUT sends GoToTiltPercentage command with 50% to DUT"); + LogStep(1, "Step 2a: If (PA_TL & TL) DUT sends GoToTiltPercentage command with 50% to DUT"); VerifyOrDo(!ShouldSkip("WNCV.C.C08.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return WaitCommand(GetEndpoint(0), WindowCovering::Id, WindowCovering::Commands::GoToTiltPercentage::Id); }