diff --git a/config/nrfconnect/chip-module/Kconfig b/config/nrfconnect/chip-module/Kconfig index ee51bfb15f4b99..d8247813838e68 100644 --- a/config/nrfconnect/chip-module/Kconfig +++ b/config/nrfconnect/chip-module/Kconfig @@ -18,6 +18,10 @@ rsource "../../zephyr/Kconfig" if CHIP +# See config/zephyr/Kconfig for full definition +config CHIP_DEVICE_VENDOR_NAME + default "Nordic Semiconductor ASA" + config CHIP_APP_LOG_LEVEL int "Set logging level in application" default LOG_DEFAULT_LEVEL @@ -159,140 +163,6 @@ config CHIP_DEVICE_GENERATE_ROTATING_DEVICE_UID endif #CHIP_FACTORY_DATA_BUILD -# Factory data parameters -config CHIP_DEVICE_SERIAL_NUMBER - string "Serial number of device" - default "11223344556677889900" - help - A serial number parameter defines an unique number of manufactured device. - Maximum length of serial number is 32 characters. - -config CHIP_DEVICE_VENDOR_NAME - string "Human-readable vendor name" - default "Nordic Semiconductor ASA" - help - A human-readable vendor name which provides a simple string - containing identification of device's vendor for the Content APP. - This information should be included in the Matter Basic Cluster. - -config CHIP_DEVICE_PRODUCT_NAME - string "Human-readable product name" - default "not-specified" - help - A human-readable product name which provides a simple string - containing identification of the product for the Content APP. - -config CHIP_DEVICE_MANUFACTURING_DATE - string "Manufacturing date in ISO 8601" - default "2022-01-01" - help - A manufacturing date specifies the date that the device was manufactured. - The format used for providing a manufacturing date is ISO 8601 e.g. YYYY-MM-DD. - -config CHIP_DEVICE_HARDWARE_VERSION - int "Integer representation of hardware version" - default 0 - help - A hardware version number specifies the version number - of the hardware of the device. The meaning of its value, - and the versioning scheme, are vendor defined. - -config CHIP_DEVICE_HARDWARE_VERSION_STRING - string "user-friendly string representation of hardware version" - default "prerelease" - help - A hardware version string parameter specifies the version - of the hardware of the device as a more user-friendly value - than that represented by the hardware version integer value. - The meaning of its value, and the versioning scheme, are - vendor defined. - -config CHIP_DEVICE_DISCRIMINATOR - hex "Device pairing discriminator" - default 0xF00 - help - A 12-bit value matching the field of the same name in - the setup code. Discriminator is used during - a discovery process. - -config CHIP_DEVICE_SPAKE2_PASSCODE - int "Spake2+ passcode" - default 20202021 - range 1 99999998 - help - A pairing passcode is a 27-bit unsigned integer which serves - as a proof of possession during commissioning. - Its value shall be restricted to the values 0x0000001 to 0x5F5E0FE - (00000001 to 99999998 in decimal), excluding the invalid Passcode values: - - 00000000, 11111111, 22222222, 33333333, 44444444, 55555555, - 66666666, 77777777, 88888888, 99999999, 12345678, 87654321. - -config CHIP_DEVICE_SPAKE2_IT - int "Spake2+ iteration count" - default 1000 - help - The Spake2 iteration count is associated with the ephemeral - PAKE passcode verifier to be used for the commissioning. - The iteration count is used as a crypto parameter to process - spake2 verifier. - -config CHIP_DEVICE_SPAKE2_SALT - string "Spake2+ salt in string format" - default "U1BBS0UyUCBLZXkgU2FsdA==" - help - The spake2 salt is random data that is used as an additional input - to a one-way function that “hashes” data. - A new salt should be randomly generated for each password. - The minimum length of spake2 salt is 16 Bytes. - The maximum length of spake2 salt is 32 Bytes. - -config CHIP_DEVICE_SPAKE2_TEST_VERIFIER - string "Testing spake2+ verifier" - default "uWFwqugDNGiEck/po7KHwwMwwqZgN10XuyBajPGuyzUEV/iree4lOrao5GuwnlQ65CJzbeUB49s31EH+NEkg0JVI5MGCQGMMT/SRPFNRODm3wH/MBiehuFc6FJ/NH6Rmzw==" - help - The spake 2 verifier generated using default SPAKE2 salt, - iteration count and passcode. This value can be used for development - or testing purposes. - Generated with: - spake2p gen-verifier -o - -i 1000 -s "U1BBS0UyUCBLZXkgU2FsdA==" -p 20202021 - -config CHIP_DEVICE_ROTATING_DEVICE_UID - string "A rotating device id unique id" - default "91a9c12a7c80700a31ddcfa7fce63e44" - help - A device rotating id unique id which will be generated if - this config is not set in prj.conf file. - -config CHIP_DEVICE_ENABLE_KEY - string "Enable Key for triggering test actions on device" - default "00112233445566778899AABBCCDDEEFF" - help - The Enable Key is a 128-bit value that triggers test action - while invoking the TestEventTrigger Command. - Pattern: "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - This value is used during Certification Tests, - and should not be present on production devices. - -config CHIP_CERTIFICATION_DECLARATION_STORAGE - bool "Enable storing Certification Declaration" - depends on CHIP_FACTORY_DATA - help - Enables storing Certification Declaration in Zephyr settings - instead of using hardcoded value from firmware. It also adds - support for including new Certification Declaration into a firmware - update image package sent via OTA Software Update. - -if CHIP_CERTIFICATION_DECLARATION_STORAGE - -config CHIP_CERTIFiCATION_DECLARATION_OTA_IMAGE_ID - int "Certification declaration OTA image id" - default 205 #0xcd - help - The image id of Certification Declaration image - for sending it via OTA Software Update purposes. - -endif - # See config/zephyr/Kconfig for full definition config CHIP_FACTORY_RESET_ERASE_NVS bool diff --git a/config/nrfconnect/chip-module/Kconfig.defaults b/config/nrfconnect/chip-module/Kconfig.defaults index e02d0d2981cc71..f24fc4608b4122 100644 --- a/config/nrfconnect/chip-module/Kconfig.defaults +++ b/config/nrfconnect/chip-module/Kconfig.defaults @@ -60,11 +60,6 @@ config SHELL bool default y -# Enable getting reboot reasons information -config HWINFO - bool - default y - # Generic networking options config NET_SOCKETS_POSIX_NAMES bool @@ -79,14 +74,6 @@ config INIT_STACKS bool default y -config CHIP_DEVICE_VENDOR_ID - int - default 65521 - -config CHIP_DEVICE_PRODUCT_ID - int - default 32768 - # Disable certain parts of Zephyr IPv6 stack config NET_IPV6_NBR_CACHE bool diff --git a/config/nrfconnect/chip-module/Kconfig.features b/config/nrfconnect/chip-module/Kconfig.features index 6ff4aa5ea62527..918a82685cad02 100644 --- a/config/nrfconnect/chip-module/Kconfig.features +++ b/config/nrfconnect/chip-module/Kconfig.features @@ -25,10 +25,6 @@ config CHIP_WIFI select WIFI_NRF700X select WIFI select WPA_SUPP - imply FLASH - imply SETTINGS - imply NVS - imply FLASH_MAP imply NORDIC_SECURITY_BACKEND imply MBEDTLS_ENTROPY_C imply MBEDTLS_PSA_CRYPTO_C @@ -85,6 +81,13 @@ config CHIP_DFU_OVER_BT_SMP imply CHIP_QSPI_NOR if BOARD_NRF5340DK_NRF5340_CPUAPP || BOARD_NRF52840DK_NRF52840 imply CHIP_SPI_NOR if BOARD_NRF7002DK_NRF5340_CPUAPP imply BOOTLOADER_MCUBOOT + select MCUMGR + select MCUMGR_SMP_BT + select MCUMGR_CMD_IMG_MGMT + select MCUMGR_CMD_OS_MGMT + # Enable custom SMP request to erase settings partition. + select MCUMGR_GRP_ZEPHYR_BASIC if SOC_SERIES_NRF53X + select MCUMGR_GRP_BASIC_CMD_STORAGE_ERASE if SOC_SERIES_NRF53X help Enables Device Firmware Upgrade over Bluetoot LE with SMP and configures set of options related to that feature. @@ -92,22 +95,6 @@ config CHIP_DFU_OVER_BT_SMP if CHIP_DFU_OVER_BT_SMP # MCU Manager and SMP configuration -config MCUMGR - bool - default y - -config MCUMGR_CMD_IMG_MGMT - bool - default y - -config MCUMGR_CMD_OS_MGMT - bool - default y - -config MCUMGR_SMP_BT - bool - default y - config MCUMGR_SMP_BT_AUTHEN bool default n @@ -137,12 +124,6 @@ config SYSTEM_WORKQUEUE_STACK_SIZE if SOC_SERIES_NRF53X -# FLASH nop device is enabled to prevent bus faults when mcumgr tries to access -# simulated partition with network core image data. -config FLASH_NOP_DEVICE - bool - default y - # Enable custom SMP request to erase settings partition. config MCUMGR_GRP_ZEPHYR_BASIC bool diff --git a/config/telink/chip-module/Kconfig b/config/telink/chip-module/Kconfig index db442126a2c14e..aa58ad3c58a8cb 100644 --- a/config/telink/chip-module/Kconfig +++ b/config/telink/chip-module/Kconfig @@ -16,6 +16,10 @@ rsource "../../zephyr/Kconfig" +# See config/zephyr/Kconfig for full definition +config CHIP_DEVICE_VENDOR_NAME + default "Telink semiconductor" + # See config/zephyr/Kconfig for full definition config CHIP_OTA_REQUESTOR bool @@ -50,11 +54,6 @@ config CHIP_EXAMPLE_DEVICE_INFO_PROVIDER bool "Include default device information provider build" default y -# Enable getting reboot reasons information -config HWINFO - bool - default y - config CHIP_FACTORY_DATA bool "Enable Factory Data support" select ZCBOR @@ -127,140 +126,6 @@ config CHIP_DEVICE_GENERATE_ROTATING_DEVICE_UID endif #CHIP_FACTORY_DATA_BUILD -# Factory data parameters -config CHIP_DEVICE_SERIAL_NUMBER - string "Serial number of device" - default "11223344556677889900" - help - A serial number parameter defines an unique number of manufactured device. - Maximum length of serial number is 32 characters. - -config CHIP_DEVICE_VENDOR_NAME - string "Human-readable vendor name" - default "Telink Semiconductor" - help - A human-readable vendor name which provides a simple string - containing identification of device's vendor for the Content APP. - This information should be included in the Matter Basic Cluster. - -config CHIP_DEVICE_PRODUCT_NAME - string "Human-readable product name" - default "not-specified" - help - A human-readable product name which provides a simple string - containing identification of the product for the Content APP. - -config CHIP_DEVICE_MANUFACTURING_DATE - string "Manufacturing date in ISO 8601" - default "2022-01-01" - help - A manufacturing date specifies the date that the device was manufactured. - The format used for providing a manufacturing date is ISO 8601 e.g. YYYY-MM-DD. - -config CHIP_DEVICE_HARDWARE_VERSION - int "Integer representation of hardware version" - default 0 - help - A hardware version number specifies the version number - of the hardware of the device. The meaning of its value, - and the versioning scheme, are vendor defined. - -config CHIP_DEVICE_HARDWARE_VERSION_STRING - string "user-friendly string representation of hardware version" - default "prerelease" - help - A hardware version string parameter specifies the version - of the hardware of the device as a more user-friendly value - than that represented by the hardware version integer value. - The meaning of its value, and the versioning scheme, are - vendor defined. - -config CHIP_DEVICE_DISCRIMINATOR - hex "Device pairing discriminator" - default 0xF00 - help - A 12-bit value matching the field of the same name in - the setup code. Discriminator is used during - a discovery process. - -config CHIP_DEVICE_SPAKE2_PASSCODE - int "Spake2+ passcode" - default 20202021 - range 1 99999998 - help - A pairing passcode is a 27-bit unsigned integer which serves - as a proof of possession during commissioning. - Its value shall be restricted to the values 0x0000001 to 0x5F5E0FE - (00000001 to 99999998 in decimal), excluding the invalid Passcode values: - - 00000000, 11111111, 22222222, 33333333, 44444444, 55555555, - 66666666, 77777777, 88888888, 99999999, 12345678, 87654321. - -config CHIP_DEVICE_SPAKE2_IT - int "Spake2+ iteration count" - default 1000 - help - The Spake2 iteration count is associated with the ephemeral - PAKE passcode verifier to be used for the commissioning. - The iteration count is used as a crypto parameter to process - spake2 verifier. - -config CHIP_DEVICE_SPAKE2_SALT - string "Spake2+ salt in string format" - default "U1BBS0UyUCBLZXkgU2FsdA==" - help - The spake2 salt is random data that is used as an additional input - to a one-way function that “hashes” data. - A new salt should be randomly generated for each password. - The minimum length of spake2 salt is 16 Bytes. - The maximum length of spake2 salt is 32 Bytes. - -config CHIP_DEVICE_SPAKE2_TEST_VERIFIER - string "Testing spake2+ verifier" - default "uWFwqugDNGiEck/po7KHwwMwwqZgN10XuyBajPGuyzUEV/iree4lOrao5GuwnlQ65CJzbeUB49s31EH+NEkg0JVI5MGCQGMMT/SRPFNRODm3wH/MBiehuFc6FJ/NH6Rmzw==" - help - The spake 2 verifier generated using default SPAKE2 salt, - iteration count and passcode. This value can be used for development - or testing purposes. - Generated with: - spake2p gen-verifier -o - -i 1000 -s "U1BBS0UyUCBLZXkgU2FsdA==" -p 20202021 - -config CHIP_DEVICE_ROTATING_DEVICE_UID - string "A rotating device id unique id" - default "91a9c12a7c80700a31ddcfa7fce63e44" - help - A device rotating id unique id which will be generated if - this config is not set in prj.conf file. - -config CHIP_DEVICE_ENABLE_KEY - string "Enable Key for triggering test actions on device" - default "00112233445566778899AABBCCDDEEFF" - help - The Enable Key is a 128-bit value that triggers test action - while invoking the TestEventTrigger Command. - Pattern: "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - This value is used during Certification Tests, - and should not be present on production devices. - -config CHIP_CERTIFICATION_DECLARATION_STORAGE - bool "Enable storing Certification Declaration" - depends on CHIP_FACTORY_DATA - help - Enables storing Certification Declaration in Zephyr settings - instead of using hardcoded value from firmware. It also adds - support for including new Certification Declaration into a firmware - update image package sent via OTA Software Update. - -if CHIP_CERTIFICATION_DECLARATION_STORAGE - -config CHIP_CERTIFiCATION_DECLARATION_OTA_IMAGE_ID - int "Certification declaration OTA image id" - default 205 #0xcd - help - The image id of Certification Declaration image - for sending it via OTA Software Update purposes. - -endif - # See config/zephyr/Kconfig for full definition config CHIP_FACTORY_RESET_ERASE_NVS bool diff --git a/config/zephyr/Kconfig b/config/zephyr/Kconfig index 048855d23e2263..4fd9b7ec36d17c 100644 --- a/config/zephyr/Kconfig +++ b/config/zephyr/Kconfig @@ -30,11 +30,18 @@ menuconfig CHIP imply NET_CONFIG_NEED_IPV6 imply NET_SOCKETS imply NETWORKING + imply HWINFO + imply FLASH + imply FLASH_MAP + imply NVS + imply SETTINGS help This option enables Connected Home over IP libraries. if CHIP +# Device and firmware identifers + config CHIP_DEVICE_VENDOR_ID int "Device vendor ID" default 65521 # 0xFFF1 @@ -44,6 +51,13 @@ config CHIP_DEVICE_VENDOR_ID Alliance. It is used in various CHIP areas, such as the Basic Information cluster or OTA (Over-the-air update) image header. +config CHIP_DEVICE_VENDOR_NAME + string "Human-readable vendor name" + help + A human-readable vendor name which provides a simple string + containing identification of device's vendor for the Content APP. + This information should be included in the Matter Basic Cluster. + config CHIP_DEVICE_PRODUCT_ID int "Device product ID" default 32768 # 0x8000 @@ -53,6 +67,31 @@ config CHIP_DEVICE_PRODUCT_ID in various CHIP areas, such as the Basic Information cluster or OTA (Over-the-air update) image header. +config CHIP_DEVICE_PRODUCT_NAME + string "Human-readable product name" + default "not-specified" + help + A human-readable product name which provides a simple string + containing identification of the product for the Content APP. + +config CHIP_DEVICE_HARDWARE_VERSION + int "Integer representation of hardware version" + default 0 + help + A hardware version number specifies the version number + of the hardware of the device. The meaning of its value, + and the versioning scheme, are vendor defined. + +config CHIP_DEVICE_HARDWARE_VERSION_STRING + string "user-friendly string representation of hardware version" + default "prerelease" + help + A hardware version string parameter specifies the version + of the hardware of the device as a more user-friendly value + than that represented by the hardware version integer value. + The meaning of its value, and the versioning scheme, are + vendor defined. + config CHIP_DEVICE_SOFTWARE_VERSION int "Device software version" default 0 @@ -72,37 +111,94 @@ config CHIP_DEVICE_SOFTWARE_VERSION_STRING CHIP_DEVICE_SOFTWARE_VERSION. It is used in various CHIP areas, such as the Basic Information cluster or OTA (Over-the-air update) image header. -config CHIP_PROJECT_CONFIG - string "Project configuration file for CHIP" +config CHIP_DEVICE_MANUFACTURING_DATE + string "Manufacturing date in ISO 8601" + default "2022-01-01" help - Project configuration file for CHIP. If specified, CHIP generic - configuration files will include the project configuration file which can - be used to override any CHIP default or platform-specific settings. + A manufacturing date specifies the date that the device was manufactured. + The format used for providing a manufacturing date is ISO 8601 e.g. YYYY-MM-DD. -config CHIP_OPENTHREAD_CONFIG - string "Custom OpenThread configuration file" +config CHIP_DEVICE_SERIAL_NUMBER + string "Serial number of device" + default "11223344556677889900" help - This option can be used to replace Zephyr-supplied OpenThread - configuration file with a custom one. + A serial number parameter defines an unique number of manufactured device. + Maximum length of serial number is 32 characters. -config CHIP_LIB_SHELL - bool "Enable CHIP shell library" - default n - imply SHELL +config CHIP_DEVICE_ROTATING_DEVICE_UID + string "A rotating device id unique id" + default "91a9c12a7c80700a31ddcfa7fce63e44" help - Link the application with the library containing CHIP shell commands. + A device rotating id unique id which will be generated if + this config is not set in prj.conf file. -config CHIP_PW_RPC - bool "Enable Pigweed RPC library" - default n +config CHIP_DEVICE_TYPE + int "Device type" + default 65535 + range 0 65535 help - Link the application with the library containing Pigweed RPC functionalities. + Type of device that uses the CHIP Device Type Identifier. The default value means invalid device type. -config CHIP_BUILD_TESTS - bool "Build CHIP unit tests" - default n +config CHIP_DEVICE_DISCRIMINATOR + hex "Device pairing discriminator" + default 0xF00 help - This option enables building CHIP unit tests. + A 12-bit value matching the field of the same name in + the setup code. Discriminator is used during + a discovery process. + +config CHIP_DEVICE_SPAKE2_PASSCODE + int "Spake2+ passcode" + default 20202021 + range 1 99999998 + help + A pairing passcode is a 27-bit unsigned integer which serves + as a proof of possession during commissioning. + Its value shall be restricted to the values 0x0000001 to 0x5F5E0FE + (00000001 to 99999998 in decimal), excluding the invalid Passcode values: + - 00000000, 11111111, 22222222, 33333333, 44444444, 55555555, + 66666666, 77777777, 88888888, 99999999, 12345678, 87654321. + +config CHIP_DEVICE_SPAKE2_IT + int "Spake2+ iteration count" + default 1000 + help + The Spake2 iteration count is associated with the ephemeral + PAKE passcode verifier to be used for the commissioning. + The iteration count is used as a crypto parameter to process + spake2 verifier. + +config CHIP_DEVICE_SPAKE2_SALT + string "Spake2+ salt in string format" + default "U1BBS0UyUCBLZXkgU2FsdA==" + help + The spake2 salt is random data that is used as an additional input + to a one-way function that “hashes” data. + A new salt should be randomly generated for each password. + The minimum length of spake2 salt is 16 Bytes. + The maximum length of spake2 salt is 32 Bytes. + +config CHIP_DEVICE_SPAKE2_TEST_VERIFIER + string "Testing spake2+ verifier" + default "uWFwqugDNGiEck/po7KHwwMwwqZgN10XuyBajPGuyzUEV/iree4lOrao5GuwnlQ65CJzbeUB49s31EH+NEkg0JVI5MGCQGMMT/SRPFNRODm3wH/MBiehuFc6FJ/NH6Rmzw==" + help + The spake 2 verifier generated using default SPAKE2 salt, + iteration count and passcode. This value can be used for development + or testing purposes. + Generated with: + spake2p gen-verifier -o - -i 1000 -s "U1BBS0UyUCBLZXkgU2FsdA==" -p 20202021 + +config CHIP_DEVICE_ENABLE_KEY + string "Enable Key for triggering test actions on device" + default "00112233445566778899AABBCCDDEEFF" + help + The Enable Key is a 128-bit value that triggers test action + while invoking the TestEventTrigger Command. + Pattern: "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + This value is used during Certification Tests, + and should not be present on production devices. + +# Matter optional features and parameters config CHIP_ENABLE_PAIRING_AUTOSTART bool "Enable pairing autostart" @@ -110,6 +206,64 @@ config CHIP_ENABLE_PAIRING_AUTOSTART help Open pairing window automatically at application boot time. +config CHIP_OTA_REQUESTOR + bool "Enable OTA requestor" + help + Enables OTA (Over-the-air) Requestor role that allows a device to perform + Device Firmware Upgrade by quering and downloading a new firmware image + from an external OTA Provider node. + +config CHIP_ROTATING_DEVICE_ID + bool "Enable rotating device ID support" + help + Enables rotating device identifier that provides a non-trackable identifier + which is unique per device and rotates at pre-defined moments. + +config CHIP_COMMISSIONABLE_DEVICE_TYPE + bool "Enable the device type subtype in commissionable node discovery record" + depends on CHIP_ENABLE_DNSSD_SRP + help + Enables including device type subtype in the commissionable node discovery record, + which allows filtering of the results to find the nodes that match the device type. + +config CHIP_EXTENDED_DISCOVERY + bool "Enable extended discovery" + help + Enables the device to advertise commissionable service when not in the + commissioning mode. + +config CHIP_OPERATIONAL_TIME_SAVE_INTERVAL + int "Interval of saving node operation time to flash in hours unit" + default 10 + range 1 4294967295 + help + Interval in hours with which the node operation time is saved to the flash + memory. Selected value is a trade off between performing frequent saves to know + precisely operation time in case of device reboot and maximizing flash memory + lifetime. + +config CHIP_CRYPTO_PSA + bool "Use PSA crypto API for cryptographic operations" + help + Use the backend for the Matter crypto layer that is based on PSA crypto + API instead of the default, based on legacy mbedTLS APIs. + +config CHIP_LIB_SHELL + bool "Enable CHIP shell library" + default n + imply SHELL + help + Link the application with the library containing CHIP shell commands. + +config CHIP_PROJECT_CONFIG + string "Project configuration file for CHIP" + help + Project configuration file for CHIP. If specified, CHIP generic + configuration files will include the project configuration file which can + be used to override any CHIP default or platform-specific settings. + +# Thread network features + config CHIP_ENABLE_DNSSD_SRP bool "Enable support for service registration" default y if NET_L2_OPENTHREAD @@ -157,50 +311,35 @@ config CHIP_THREAD_SSED bool "Enable Thread Synchronized Sleepy End Device support" depends on OPENTHREAD_CSL_RECEIVER && CHIP_ENABLE_SLEEPY_END_DEVICE_SUPPORT help - Enables Thread Synchronized Sleepy End Device support in Matter. + Enables Thread Synchronized Sleepy End Device support in Matter. -config CHIP_OTA_REQUESTOR - bool "Enable OTA requestor" +config CHIP_OPENTHREAD_CONFIG + string "Custom OpenThread configuration file" help - Enables OTA (Over-the-air) Requestor role that allows a device to perform - Device Firmware Upgrade by quering and downloading a new firmware image - from an external OTA Provider node. + This option can be used to replace Zephyr-supplied OpenThread + configuration file with a custom one. -config CHIP_ROTATING_DEVICE_ID - bool "Enable rotating device ID support" - help - Enables rotating device identifier that provides a non-trackable identifier - which is unique per device and rotates at pre-defined moments. +# Platform additions and configuration -config CHIP_COMMISSIONABLE_DEVICE_TYPE - bool "Enable the device type subtype in commissionable node discovery record" - depends on CHIP_ENABLE_DNSSD_SRP +config CHIP_CERTIFICATION_DECLARATION_STORAGE + bool "Enable storing Certification Declaration" + depends on CHIP_FACTORY_DATA help - Enables including device type subtype in the commissionable node discovery record, - which allows filtering of the results to find the nodes that match the device type. + Enables storing Certification Declaration in Zephyr settings + instead of using hardcoded value from firmware. It also adds + support for including new Certification Declaration into a firmware + update image package sent via OTA Software Update. -config CHIP_DEVICE_TYPE - int "Device type" - default 65535 - range 0 65535 - help - Type of device that uses the CHIP Device Type Identifier. The default value means invalid device type. +if CHIP_CERTIFICATION_DECLARATION_STORAGE -config CHIP_OPERATIONAL_TIME_SAVE_INTERVAL - int "Interval of saving node operation time to flash in hours unit" - default 10 - range 1 4294967295 +config CHIP_CERTIFiCATION_DECLARATION_OTA_IMAGE_ID + int "Certification declaration OTA image id" + default 205 #0xcd help - Interval in hours with which the node operation time is saved to the flash - memory. Selected value is a trade off between performing frequent saves to know - precisely operation time in case of device reboot and maximizing flash memory - lifetime. + The image id of Certification Declaration image + for sending it via OTA Software Update purposes. -config CHIP_CRYPTO_PSA - bool "Use PSA crypto API for cryptographic operations" - help - Use the backend for the Matter crypto layer that is based on PSA crypto - API instead of the default, based on legacy mbedTLS APIs. +endif config CHIP_FACTORY_RESET_ERASE_NVS bool "Erase NVS flash pages on factory reset" @@ -240,6 +379,12 @@ config CHIP_MALLOC_SYS_HEAP_SIZE endif +module = MATTER +module-str = Matter +source "${ZEPHYR_BASE}/subsys/logging/Kconfig.template.log_config" + +# Build system options + config APP_LINK_WITH_CHIP bool "Link 'app' with Connected Home over IP" default y @@ -247,6 +392,18 @@ config APP_LINK_WITH_CHIP Add Connected Home over IP header files to the 'app' include path and link the 'app' with Connected Home over IP libraries. +config CHIP_PW_RPC + bool "Enable Pigweed RPC library" + default n + help + Link the application with the library containing Pigweed RPC functionalities. + +config CHIP_BUILD_TESTS + bool "Build CHIP unit tests" + default n + help + This option enables building CHIP unit tests. + config CHIP_OTA_IMAGE_BUILD bool "Generate OTA image" help @@ -268,14 +425,4 @@ config CHIP_OTA_IMAGE_EXTRA_ARGS endif -config CHIP_EXTENDED_DISCOVERY - bool "Enable extended discovery" - help - Enables the device to advertise commissionable service when not in the - commissioning mode. - -module = MATTER -module-str = Matter -source "${ZEPHYR_BASE}/subsys/logging/Kconfig.template.log_config" - endif 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 cd24d151ec0ac8..d0874dec15e8e4 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 @@ -91,7 +91,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -107,7 +107,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", @@ -8657,7 +8657,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -8673,7 +8673,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", @@ -20819,7 +20819,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", 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 775df034c55364..a9d16f86c65d19 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 @@ -91,7 +91,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -107,7 +107,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", @@ -8507,7 +8507,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -8523,7 +8523,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", @@ -20595,7 +20595,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", diff --git a/examples/bridge-app/bridge-common/bridge-app.zap b/examples/bridge-app/bridge-common/bridge-app.zap index 47d910200b1004..11a61720309318 100644 --- a/examples/bridge-app/bridge-common/bridge-app.zap +++ b/examples/bridge-app/bridge-common/bridge-app.zap @@ -5019,7 +5019,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5035,7 +5035,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", @@ -5719,7 +5719,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", diff --git a/examples/bridge-app/linux/main.cpp b/examples/bridge-app/linux/main.cpp index 2c7c513a2cf0b5..c7ef75c26d9928 100644 --- a/examples/bridge-app/linux/main.cpp +++ b/examples/bridge-app/linux/main.cpp @@ -39,10 +39,20 @@ #include #include #include -#include #include #include +#if CHIP_DEVICE_LAYER_TARGET_DARWIN +#include +#if CHIP_DEVICE_CONFIG_ENABLE_WIFI +#include +#endif // CHIP_DEVICE_CONFIG_ENABLE_WIFI +#endif // CHIP_DEVICE_LAYER_TARGET_DARWIN + +#if CHIP_DEVICE_LAYER_TARGET_LINUX +#include +#endif // CHIP_DEVICE_LAYER_TARGET_LINUX + #include #include @@ -74,10 +84,36 @@ EndpointId gFirstDynamicEndpointId; Device * gDevices[CHIP_DEVICE_CONFIG_DYNAMIC_ENDPOINT_COUNT]; std::vector gRooms; std::vector gActions; -#if defined(CHIP_DEVICE_CONFIG_ENABLE_WIFI) && defined(CHIP_DEVICE_LAYER_TARGET_LINUX) -DeviceLayer::NetworkCommissioning::LinuxWiFiDriver sLinuxWiFiDriver; -Clusters::NetworkCommissioning::Instance sWiFiNetworkCommissioningInstance(0, &sLinuxWiFiDriver); -#endif + +#if CHIP_DEVICE_LAYER_TARGET_LINUX +#if CHIP_DEVICE_CONFIG_ENABLE_THREAD +DeviceLayer::NetworkCommissioning::LinuxThreadDriver sThreadDriver; +#endif // CHIP_DEVICE_CONFIG_ENABLE_THREAD + +#if CHIP_DEVICE_CONFIG_ENABLE_WIFI +DeviceLayer::NetworkCommissioning::LinuxWiFiDriver sWiFiDriver; +#endif // CHIP_DEVICE_CONFIG_ENABLE_WIFI + +DeviceLayer::NetworkCommissioning::LinuxEthernetDriver sEthernetDriver; +#endif // CHIP_DEVICE_LAYER_TARGET_LINUX + +#if CHIP_DEVICE_LAYER_TARGET_DARWIN +#if CHIP_DEVICE_CONFIG_ENABLE_WIFI +DeviceLayer::NetworkCommissioning::DarwinWiFiDriver sWiFiDriver; +#endif // CHIP_DEVICE_CONFIG_ENABLE_WIFI + +DeviceLayer::NetworkCommissioning::DarwinEthernetDriver sEthernetDriver; +#endif // CHIP_DEVICE_LAYER_TARGET_DARWIN + +#if CHIP_DEVICE_CONFIG_ENABLE_WIFI +Clusters::NetworkCommissioning::Instance sWiFiNetworkCommissioningInstance(0, &sWiFiDriver); +#endif // CHIP_DEVICE_CONFIG_ENABLE_WIFI + +#if CHIP_DEVICE_CONFIG_ENABLE_THREAD +Clusters::NetworkCommissioning::Instance sThreadNetworkCommissioningInstance(0, &sThreadDriver); +#endif // CHIP_DEVICE_CONFIG_ENABLE_THREAD + +Clusters::NetworkCommissioning::Instance sEthernetNetworkCommissioningInstance(0, &sEthernetDriver); const int16_t minMeasuredValue = -27315; const int16_t maxMeasuredValue = 32766; @@ -728,9 +764,45 @@ bool emberAfActionsClusterInstantActionCallback(app::CommandHandler * commandObj void ApplicationInit() { -#if defined(CHIP_DEVICE_CONFIG_ENABLE_WIFI) && defined(CHIP_DEVICE_LAYER_TARGET_LINUX) - sWiFiNetworkCommissioningInstance.Init(); + const bool kThreadEnabled = { +#if CHIP_DEVICE_CONFIG_ENABLE_THREAD + LinuxDeviceOptions::GetInstance().mThread +#else + false +#endif + }; + + const bool kWiFiEnabled = { +#if CHIP_DEVICE_CONFIG_ENABLE_WIFI + LinuxDeviceOptions::GetInstance().mWiFi +#else + false +#endif + }; + + if (kThreadEnabled && kWiFiEnabled) + { + // Just use the Thread one. +#if CHIP_DEVICE_CONFIG_ENABLE_THREAD + sThreadNetworkCommissioningInstance.Init(); +#endif + } + else if (kThreadEnabled) + { +#if CHIP_DEVICE_CONFIG_ENABLE_THREAD + sThreadNetworkCommissioningInstance.Init(); #endif + } + else if (kWiFiEnabled) + { +#if CHIP_DEVICE_CONFIG_ENABLE_WIFI + sWiFiNetworkCommissioningInstance.Init(); +#endif + } + else + { + sEthernetNetworkCommissioningInstance.Init(); + } } const EmberAfDeviceType gBridgedOnOffDeviceTypes[] = { { DEVICE_TYPE_LO_ON_OFF_LIGHT, DEVICE_VERSION_DEFAULT }, diff --git a/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.zap b/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.zap index edf180ba895f16..ab66735db5b2df 100644 --- a/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.zap +++ b/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.zap @@ -83,7 +83,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5261,7 +5261,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5277,7 +5277,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", diff --git a/examples/chef/devices/rootnode_colortemperaturelight_hbUnzYVeyn.zap b/examples/chef/devices/rootnode_colortemperaturelight_hbUnzYVeyn.zap index f4cd517e9a21d6..8634ffb89470c2 100644 --- a/examples/chef/devices/rootnode_colortemperaturelight_hbUnzYVeyn.zap +++ b/examples/chef/devices/rootnode_colortemperaturelight_hbUnzYVeyn.zap @@ -83,7 +83,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5397,7 +5397,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5413,7 +5413,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", diff --git a/examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.zap b/examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.zap index 2ff3308cb778eb..c0b3b624458b12 100644 --- a/examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.zap +++ b/examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.zap @@ -83,7 +83,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5261,7 +5261,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5277,7 +5277,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", diff --git a/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.zap b/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.zap index 064213069b157e..dfedd4ba175e21 100644 --- a/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.zap +++ b/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.zap @@ -83,7 +83,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5261,7 +5261,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5277,7 +5277,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", diff --git a/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.zap b/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.zap index 68cde1f3f6871b..0e56a1a59a4289 100644 --- a/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.zap +++ b/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.zap @@ -83,7 +83,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5261,7 +5261,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5277,7 +5277,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", diff --git a/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.zap b/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.zap index e0eae000faa891..dba651796102e3 100644 --- a/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.zap +++ b/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.zap @@ -83,7 +83,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5261,7 +5261,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5277,7 +5277,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", diff --git a/examples/chef/devices/rootnode_fan_7N2TobIlOX.zap b/examples/chef/devices/rootnode_fan_7N2TobIlOX.zap index 55cde9980340c1..1b917cc96427bc 100644 --- a/examples/chef/devices/rootnode_fan_7N2TobIlOX.zap +++ b/examples/chef/devices/rootnode_fan_7N2TobIlOX.zap @@ -83,7 +83,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5445,7 +5445,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5461,7 +5461,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", diff --git a/examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.zap b/examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.zap index 08e484e552a5bc..c04b23579cd78f 100644 --- a/examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.zap +++ b/examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.zap @@ -83,7 +83,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5261,7 +5261,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5277,7 +5277,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", diff --git a/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.zap b/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.zap index 9fd12c98429f73..7d2c77f7a7261e 100644 --- a/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.zap +++ b/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.zap @@ -83,7 +83,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5261,7 +5261,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5277,7 +5277,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", diff --git a/examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.zap b/examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.zap index b40907aae4e0c7..a9a852b9e2cf6c 100644 --- a/examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.zap +++ b/examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.zap @@ -83,7 +83,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5261,7 +5261,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5277,7 +5277,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", diff --git a/examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.zap b/examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.zap index a8960bde887757..2424113df9d07e 100644 --- a/examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.zap +++ b/examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.zap @@ -83,7 +83,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5261,7 +5261,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5277,7 +5277,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", diff --git a/examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.zap b/examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.zap index c6ff45dc52f256..60d6a2983d9782 100644 --- a/examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.zap +++ b/examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.zap @@ -83,7 +83,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5261,7 +5261,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5277,7 +5277,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", diff --git a/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.zap b/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.zap index db66e1622218af..c0e106f8eb8281 100644 --- a/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.zap +++ b/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.zap @@ -83,7 +83,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5261,7 +5261,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5277,7 +5277,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", diff --git a/examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.zap b/examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.zap index 7b636644d1ccc5..e1db44e7efa78e 100644 --- a/examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.zap +++ b/examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.zap @@ -83,7 +83,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5261,7 +5261,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5277,7 +5277,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", diff --git a/examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.zap b/examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.zap index 896114ca8782f6..88077564992f0a 100644 --- a/examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.zap +++ b/examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.zap @@ -83,7 +83,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5261,7 +5261,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5277,7 +5277,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", diff --git a/examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.zap b/examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.zap index 5862b26714eeef..8cdcfd01a4b75e 100644 --- a/examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.zap +++ b/examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.zap @@ -83,7 +83,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5261,7 +5261,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5277,7 +5277,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", diff --git a/examples/chef/devices/rootnode_speaker_RpzeXdimqA.zap b/examples/chef/devices/rootnode_speaker_RpzeXdimqA.zap index ff9e37a86e3e2a..0d001f8f524993 100644 --- a/examples/chef/devices/rootnode_speaker_RpzeXdimqA.zap +++ b/examples/chef/devices/rootnode_speaker_RpzeXdimqA.zap @@ -83,7 +83,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5261,7 +5261,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5277,7 +5277,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", diff --git a/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.zap b/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.zap index 1fc5fd080cbd11..3c52979b32b5b2 100644 --- a/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.zap +++ b/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.zap @@ -83,7 +83,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5261,7 +5261,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5277,7 +5277,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", diff --git a/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.zap b/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.zap index ecc339f0352de6..99ebe10bf6fad3 100644 --- a/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.zap +++ b/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.zap @@ -83,7 +83,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5309,7 +5309,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5325,7 +5325,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", diff --git a/examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.zap b/examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.zap index b2e73a9a2e62dc..9c2c66761f534e 100644 --- a/examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.zap +++ b/examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.zap @@ -83,7 +83,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5261,7 +5261,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5277,7 +5277,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", diff --git a/examples/contact-sensor-app/contact-sensor-common/contact-sensor-app.zap b/examples/contact-sensor-app/contact-sensor-common/contact-sensor-app.zap index bac7da6ce486b5..6dd09d9367ba83 100644 --- a/examples/contact-sensor-app/contact-sensor-common/contact-sensor-app.zap +++ b/examples/contact-sensor-app/contact-sensor-common/contact-sensor-app.zap @@ -83,7 +83,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5365,7 +5365,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5381,7 +5381,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", diff --git a/examples/dynamic-bridge-app/bridge-common/bridge-app.zap b/examples/dynamic-bridge-app/bridge-common/bridge-app.zap index 47d910200b1004..11a61720309318 100644 --- a/examples/dynamic-bridge-app/bridge-common/bridge-app.zap +++ b/examples/dynamic-bridge-app/bridge-common/bridge-app.zap @@ -5019,7 +5019,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5035,7 +5035,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", @@ -5719,7 +5719,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", diff --git a/examples/light-switch-app/light-switch-common/light-switch-app.zap b/examples/light-switch-app/light-switch-common/light-switch-app.zap index 3559d6a467bcbd..09d6b7f97e2568 100644 --- a/examples/light-switch-app/light-switch-common/light-switch-app.zap +++ b/examples/light-switch-app/light-switch-common/light-switch-app.zap @@ -83,7 +83,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5347,7 +5347,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5363,7 +5363,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", @@ -7995,7 +7995,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -8011,7 +8011,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", diff --git a/examples/lighting-app/lighting-common/lighting-app.zap b/examples/lighting-app/lighting-common/lighting-app.zap index 5a366ae96fe18f..04d047e1c038c3 100644 --- a/examples/lighting-app/lighting-common/lighting-app.zap +++ b/examples/lighting-app/lighting-common/lighting-app.zap @@ -83,7 +83,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5349,7 +5349,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5365,7 +5365,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", diff --git a/examples/lighting-app/nxp/zap/lighting-on-off.zap b/examples/lighting-app/nxp/zap/lighting-on-off.zap index edbc585cd2b22d..482bbdc4c192c9 100644 --- a/examples/lighting-app/nxp/zap/lighting-on-off.zap +++ b/examples/lighting-app/nxp/zap/lighting-on-off.zap @@ -83,7 +83,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5560,7 +5560,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5576,7 +5576,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", diff --git a/examples/lock-app/lock-common/lock-app.zap b/examples/lock-app/lock-common/lock-app.zap index a4ab26aab325a5..0d4b608be89a9f 100644 --- a/examples/lock-app/lock-common/lock-app.zap +++ b/examples/lock-app/lock-common/lock-app.zap @@ -83,7 +83,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5335,7 +5335,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5351,7 +5351,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", diff --git a/examples/log-source-app/log-source-common/log-source-app.zap b/examples/log-source-app/log-source-common/log-source-app.zap index 20f81f455cc722..36521f83142409 100644 --- a/examples/log-source-app/log-source-common/log-source-app.zap +++ b/examples/log-source-app/log-source-common/log-source-app.zap @@ -83,7 +83,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", diff --git a/examples/ota-provider-app/ota-provider-common/ota-provider-app.matter b/examples/ota-provider-app/ota-provider-common/ota-provider-app.matter index d7326bba12c170..276b7a73991ce9 100644 --- a/examples/ota-provider-app/ota-provider-common/ota-provider-app.matter +++ b/examples/ota-provider-app/ota-provider-common/ota-provider-app.matter @@ -6,6 +6,23 @@ struct LabelStruct { char_string<16> value = 1; } +server cluster Descriptor = 29 { + struct DeviceTypeStruct { + devtype_id type = 0; + int16u revision = 1; + } + + readonly attribute DeviceTypeStruct deviceTypeList[] = 0; + readonly attribute CLUSTER_ID serverList[] = 1; + readonly attribute CLUSTER_ID clientList[] = 2; + readonly attribute ENDPOINT_NO partsList[] = 3; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + client cluster AccessControl = 31 { enum AuthMode : ENUM8 { kPase = 1; @@ -802,6 +819,18 @@ endpoint 0 { device type rootdevice = 22, version 1; binding cluster AccessControl; + server cluster Descriptor { + callback attribute deviceTypeList; + callback attribute serverList; + callback attribute clientList; + callback attribute partsList; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + server cluster AccessControl { callback attribute acl; callback attribute extension; diff --git a/examples/ota-provider-app/ota-provider-common/ota-provider-app.zap b/examples/ota-provider-app/ota-provider-common/ota-provider-app.zap index d49c8005dd3231..523233cbda32dd 100644 --- a/examples/ota-provider-app/ota-provider-common/ota-provider-app.zap +++ b/examples/ota-provider-app/ota-provider-common/ota-provider-app.zap @@ -83,7 +83,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -736,6 +736,202 @@ } ] }, + { + "name": "Descriptor", + "code": 29, + "mfgCode": null, + "define": "DESCRIPTOR_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Descriptor", + "code": 29, + "mfgCode": null, + "define": "DESCRIPTOR_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "DeviceTypeList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ServerList", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClientList", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "PartsList", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, { "name": "Access Control", "code": 31, @@ -4747,5 +4943,6 @@ "endpointVersion": 1, "deviceIdentifier": 22 } - ] + ], + "log": [] } \ No newline at end of file diff --git a/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.zap b/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.zap index 34fd76cba36170..ffed1259cb4982 100644 --- a/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.zap +++ b/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.zap @@ -83,7 +83,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5061,7 +5061,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5077,7 +5077,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", diff --git a/examples/placeholder/linux/apps/app1/config.zap b/examples/placeholder/linux/apps/app1/config.zap index b19559d673991d..53334068acb830 100644 --- a/examples/placeholder/linux/apps/app1/config.zap +++ b/examples/placeholder/linux/apps/app1/config.zap @@ -6877,7 +6877,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -6893,7 +6893,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", diff --git a/examples/placeholder/linux/apps/app2/config.zap b/examples/placeholder/linux/apps/app2/config.zap index ff3ba116ab937d..a39673d9ba9459 100644 --- a/examples/placeholder/linux/apps/app2/config.zap +++ b/examples/placeholder/linux/apps/app2/config.zap @@ -6877,7 +6877,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -6893,7 +6893,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", diff --git a/examples/platform/silabs/SiWx917/SiWx917/rsi_if.c b/examples/platform/silabs/SiWx917/SiWx917/rsi_if.c index 3b15cd8f29e7af..f54846b34314e8 100644 --- a/examples/platform/silabs/SiWx917/SiWx917/rsi_if.c +++ b/examples/platform/silabs/SiWx917/SiWx917/rsi_if.c @@ -63,6 +63,7 @@ bool hasNotifiedIPV4 = false; #endif /* CHIP_DEVICE_CONFIG_ENABLE_IPV4 */ bool hasNotifiedWifiConnectivity = false; +extern rsi_semaphore_handle_t sl_ble_init_sem; /* * This file implements the interface to the RSI SAPIs */ @@ -275,7 +276,7 @@ static int32_t wfx_rsi_init(void) /* Initialize WiSeConnect or Module features. */ WFX_RSI_LOG("%s: rsi_wireless_init", __func__); - if ((status = rsi_wireless_init(OPER_MODE_0, COEX_MODE_0)) != RSI_SUCCESS) + if ((status = rsi_wireless_init(OPER_MODE_0, RSI_OPERMODE_WLAN_BLE)) != RSI_SUCCESS) { WFX_RSI_LOG("%s: error: rsi_wireless_init failed with status: %02x", __func__, status); return status; @@ -331,6 +332,7 @@ static int32_t wfx_rsi_init(void) } #endif wfx_rsi.dev_state |= WFX_RSI_ST_DEV_READY; + rsi_semaphore_post(&sl_ble_init_sem); WFX_RSI_LOG("%s: RSI: OK", __func__); return RSI_SUCCESS; } diff --git a/examples/pump-app/pump-common/pump-app.zap b/examples/pump-app/pump-common/pump-app.zap index e74ae94ee74348..934fe71be55faf 100644 --- a/examples/pump-app/pump-common/pump-app.zap +++ b/examples/pump-app/pump-common/pump-app.zap @@ -73,7 +73,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -89,7 +89,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", @@ -5631,7 +5631,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5647,7 +5647,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", diff --git a/examples/pump-controller-app/pump-controller-common/pump-controller-app.zap b/examples/pump-controller-app/pump-controller-common/pump-controller-app.zap index a8eec31d3b3bb6..dc3a4bc206d159 100644 --- a/examples/pump-controller-app/pump-controller-common/pump-controller-app.zap +++ b/examples/pump-controller-app/pump-controller-common/pump-controller-app.zap @@ -91,7 +91,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -107,7 +107,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", @@ -5579,7 +5579,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -5595,7 +5595,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", diff --git a/examples/temperature-measurement-app/esp32/main/temperature-measurement.zap b/examples/temperature-measurement-app/esp32/main/temperature-measurement.zap index 42b4b659900568..0d217c9fce00be 100644 --- a/examples/temperature-measurement-app/esp32/main/temperature-measurement.zap +++ b/examples/temperature-measurement-app/esp32/main/temperature-measurement.zap @@ -83,7 +83,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -3293,7 +3293,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", diff --git a/examples/thermostat/thermostat-common/thermostat.zap b/examples/thermostat/thermostat-common/thermostat.zap index ba937d1043aa4c..d83a9d05c6b9bc 100644 --- a/examples/thermostat/thermostat-common/thermostat.zap +++ b/examples/thermostat/thermostat-common/thermostat.zap @@ -83,7 +83,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -7539,7 +7539,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -7555,7 +7555,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", diff --git a/examples/tv-app/tv-common/tv-app.zap b/examples/tv-app/tv-common/tv-app.zap index bb3e5878e7ef16..6e360a6df41106 100644 --- a/examples/tv-app/tv-common/tv-app.zap +++ b/examples/tv-app/tv-common/tv-app.zap @@ -83,7 +83,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", diff --git a/examples/tv-casting-app/android/args.gni b/examples/tv-casting-app/android/args.gni index 802f54f8b49484..e3a20c5055dd91 100644 --- a/examples/tv-casting-app/android/args.gni +++ b/examples/tv-casting-app/android/args.gni @@ -29,3 +29,5 @@ chip_build_libshell = true chip_enable_additional_data_advertising = true chip_enable_rotating_device_id = true + +chip_config_network_layer_ble = false diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge.xcodeproj/project.pbxproj b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge.xcodeproj/project.pbxproj index d85d5a6f2d4f91..ef0579eca8eb50 100644 --- a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge.xcodeproj/project.pbxproj +++ b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge.xcodeproj/project.pbxproj @@ -26,6 +26,7 @@ 3CCB8742286A593700771BAD /* ConversionUtils.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 3CCB873C286A593700771BAD /* ConversionUtils.hpp */; }; 3CCB8743286A593700771BAD /* CastingServerBridge.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3CCB873D286A593700771BAD /* CastingServerBridge.mm */; }; 3CCB8744286A593700771BAD /* ConversionUtils.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3CCB873E286A593700771BAD /* ConversionUtils.mm */; }; + 3CE868F42946D76200FCB92B /* CommissionableDataProviderImpl.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3CE868F32946D76200FCB92B /* CommissionableDataProviderImpl.mm */; }; 3CF8532728E37F1000F07B9F /* MatterError.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3CF8532628E37F1000F07B9F /* MatterError.mm */; }; /* End PBXBuildFile section */ @@ -59,6 +60,7 @@ 3CCB873C286A593700771BAD /* ConversionUtils.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = ConversionUtils.hpp; sourceTree = ""; }; 3CCB873D286A593700771BAD /* CastingServerBridge.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = CastingServerBridge.mm; sourceTree = ""; }; 3CCB873E286A593700771BAD /* ConversionUtils.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ConversionUtils.mm; sourceTree = ""; }; + 3CE868F32946D76200FCB92B /* CommissionableDataProviderImpl.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = CommissionableDataProviderImpl.mm; sourceTree = ""; }; 3CF8532528E37ED800F07B9F /* MatterError.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MatterError.h; sourceTree = ""; }; 3CF8532628E37F1000F07B9F /* MatterError.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = MatterError.mm; sourceTree = ""; }; /* End PBXFileReference section */ @@ -125,6 +127,7 @@ 3C26AC8B2926FE0C00BA6881 /* DeviceAttestationCredentialsProviderImpl.hpp */, 3C26AC8F2927008900BA6881 /* DeviceAttestationCredentialsProviderImpl.mm */, 3C0D9CDF2920A30C00D3332B /* CommissionableDataProviderImpl.hpp */, + 3CE868F32946D76200FCB92B /* CommissionableDataProviderImpl.mm */, ); path = MatterTvCastingBridge; sourceTree = ""; @@ -241,6 +244,7 @@ 3CCB8744286A593700771BAD /* ConversionUtils.mm in Sources */, 3C4E53B028E4F28100F293E8 /* MediaPlaybackTypes.mm in Sources */, 3C66FBFC290327BB00B63FE7 /* AppParameters.mm in Sources */, + 3CE868F42946D76200FCB92B /* CommissionableDataProviderImpl.mm in Sources */, 3C26AC9329282B8100BA6881 /* DeviceAttestationCredentialsHolder.m in Sources */, 3C26AC902927008900BA6881 /* DeviceAttestationCredentialsProviderImpl.mm in Sources */, 3CCB873F286A593700771BAD /* DiscoveredNodeData.mm in Sources */, diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/AppParameters.h b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/AppParameters.h index 929722387a7388..9e445e25fa63d7 100644 --- a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/AppParameters.h +++ b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/AppParameters.h @@ -31,9 +31,9 @@ @property uint32_t spake2pIterationCount; -@property NSData * spake2pSalt; +@property NSData * spake2pSaltBase64; -@property NSData * spake2pVerifier; +@property NSData * spake2pVerifierBase64; @property DeviceAttestationCredentialsHolder * deviceAttestationCredentials; diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/CastingServerBridge.h b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/CastingServerBridge.h index 8c8f8c83e71849..8f1d7d17bf95ac 100644 --- a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/CastingServerBridge.h +++ b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/CastingServerBridge.h @@ -54,7 +54,7 @@ @param clientQueue Queue to dispatch the call to the discoveredCommissionerHandler on - @param discoveredCommissionerHandler Handler to call after a discovered commissioner has been retrieved + @param discoveredCommissionerHandler Handler called synchronously after a discovered commissioner has been retrieved */ - (void)getDiscoveredCommissioner:(int)index clientQueue:(dispatch_queue_t _Nonnull)clientQueue @@ -184,6 +184,16 @@ */ - (void)disconnect:(dispatch_queue_t _Nonnull)clientQueue requestSentHandler:(nullable void (^)())requestSentHandler; +/** + @brief Start the Matter server and reconnect to a previously connected Video Player (if any) + */ +- (void)startMatterServer; + +/** + @brief Stop the Matter server + */ +- (void)stopMatterServer; + /*! @brief Send a ContentLauncher:LaunchURL request to a TV diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/CastingServerBridge.mm b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/CastingServerBridge.mm index d2620f6ca69e01..cd860847c4b300 100644 --- a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/CastingServerBridge.mm +++ b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/CastingServerBridge.mm @@ -38,10 +38,14 @@ @interface CastingServerBridge () @property OnboardingPayload * _Nonnull onboardingPayload; -@property chip::DeviceLayer::CommissionableDataProviderImpl * commissionableDataProvider; +@property CommissionableDataProviderImpl * commissionableDataProvider; @property chip::Credentials::DeviceAttestationCredentialsProvider * deviceAttestationCredentialsProvider; +@property chip::CommonCaseDeviceServerInitParams * serverInitParams; + +@property TargetVideoPlayerInfo * previouslyConnectedVideoPlayer; + // queue used to serialize all work performed by the CastingServerBridge @property (atomic) dispatch_queue_t chipWorkQueue; @@ -111,10 +115,15 @@ - (void)initApp:(AppParameters * _Nullable)appParameters ChipLogProgress(AppServer, "CastingServerBridge().initApp() called"); CHIP_ERROR err = CHIP_NO_ERROR; - _commissionableDataProvider = new chip::DeviceLayer::CommissionableDataProviderImpl(); + _commissionableDataProvider = new CommissionableDataProviderImpl(); _deviceAttestationCredentialsProvider = chip::Credentials::Examples::GetExampleDACProvider(); + _appParameters = appParameters; AppParams cppAppParams; + uint32_t setupPasscode = CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE; + uint16_t setupDiscriminator = CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR; + uint32_t spake2pIterationCount; + chip::ByteSpan spake2pSaltSpan, spake2pVerifierSpan; if (_appParameters != nil) { err = [ConversionUtils convertToCppAppParamsInfoFrom:_appParameters outAppParams:cppAppParams]; if (err != CHIP_NO_ERROR) { @@ -123,22 +132,31 @@ - (void)initApp:(AppParameters * _Nullable)appParameters } // set fields in commissionableDataProvider - _commissionableDataProvider->SetSpake2pIterationCount(_appParameters.spake2pIterationCount); - if (_appParameters.spake2pSalt != nil) { - chip::ByteSpan spake2pSaltSpan - = chip::ByteSpan(static_cast(_appParameters.spake2pSalt.bytes), _appParameters.spake2pSalt.length); - _commissionableDataProvider->SetSpake2pSalt(spake2pSaltSpan); + if (_appParameters.onboardingPayload != nil) { + setupPasscode = _appParameters.onboardingPayload.setupPasscode > 0 ? _appParameters.onboardingPayload.setupPasscode + : CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE; + setupDiscriminator = _appParameters.onboardingPayload.setupDiscriminator > 0 + ? _appParameters.onboardingPayload.setupDiscriminator + : CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR; + } + spake2pIterationCount = _appParameters.spake2pIterationCount; + if (_appParameters.spake2pSaltBase64 != nil) { + spake2pSaltSpan = chip::ByteSpan( + static_cast(_appParameters.spake2pSaltBase64.bytes), _appParameters.spake2pSaltBase64.length); } - if (_appParameters.spake2pVerifier != nil) { - chip::ByteSpan spake2pVerifierSpan = chip::ByteSpan( - static_cast(_appParameters.spake2pVerifier.bytes), _appParameters.spake2pVerifier.length); - _commissionableDataProvider->SetSpake2pSalt(spake2pVerifierSpan); + if (_appParameters.spake2pVerifierBase64 != nil) { + chip::ByteSpan spake2pVerifierSpan + = chip::ByteSpan(static_cast(_appParameters.spake2pVerifierBase64.bytes), + _appParameters.spake2pVerifierBase64.length); } - if (_appParameters.onboardingPayload != nil) { - _commissionableDataProvider->SetSetupPasscode(_appParameters.onboardingPayload.setupPasscode); - _commissionableDataProvider->SetSetupDiscriminator(_appParameters.onboardingPayload.setupDiscriminator); + err = _commissionableDataProvider->Initialize(_appParameters.spake2pVerifierBase64 != nil ? &spake2pVerifierSpan : nil, + _appParameters.spake2pSaltBase64 != nil ? &spake2pSaltSpan : nil, spake2pIterationCount, setupPasscode, + setupDiscriminator); + if (err != CHIP_NO_ERROR) { + ChipLogError(AppServer, "Failed to initialize CommissionableDataProvider: %s", ErrorStr(err)); + return; } if (_appParameters.deviceAttestationCredentials != nil) { @@ -182,8 +200,6 @@ - (void)initApp:(AppParameters * _Nullable)appParameters } chip::DeviceLayer::SetCommissionableDataProvider(_commissionableDataProvider); - uint32_t setupPasscode = 0; - uint16_t setupDiscriminator = 0; _commissionableDataProvider->GetSetupPasscode(setupPasscode); _commissionableDataProvider->GetSetupDiscriminator(setupDiscriminator); _onboardingPayload = [[OnboardingPayload alloc] initWithSetupPasscode:setupPasscode setupDiscriminator:setupDiscriminator]; @@ -199,14 +215,14 @@ - (void)initApp:(AppParameters * _Nullable)appParameters } // init app Server - static chip::CommonCaseDeviceServerInitParams initParams; - err = initParams.InitializeStaticResourcesBeforeServerInit(); + _serverInitParams = new chip::CommonCaseDeviceServerInitParams(); + err = _serverInitParams->InitializeStaticResourcesBeforeServerInit(); if (err != CHIP_NO_ERROR) { ChipLogError(AppServer, "InitializeStaticResourcesBeforeServerInit failed: %s", ErrorStr(err)); return; } - err = chip::Server::GetInstance().Init(initParams); + err = chip::Server::GetInstance().Init(*_serverInitParams); if (err != CHIP_NO_ERROR) { ChipLogError(AppServer, "chip::Server init failed: %s", ErrorStr(err)); return; @@ -261,7 +277,7 @@ - (void)getDiscoveredCommissioner:(int)index { ChipLogProgress(AppServer, "CastingServerBridge().getDiscoveredCommissioner() called"); - dispatch_async(_chipWorkQueue, ^{ + dispatch_sync(_chipWorkQueue, ^{ chip::Optional associatedConnectableVideoPlayer; DiscoveredNodeData * commissioner = nil; const chip::Dnssd::DiscoveredNodeData * cppDiscoveredNodeData @@ -275,7 +291,7 @@ - (void)getDiscoveredCommissioner:(int)index } } - dispatch_async(clientQueue, ^{ + dispatch_sync(clientQueue, ^{ discoveredCommissionerHandler(commissioner); }); }); @@ -407,10 +423,9 @@ - (void)getActiveTargetVideoPlayers:(dispatch_queue_t _Nonnull)clientQueue ChipLogProgress(AppServer, "CastingServerBridge().getActiveTargetVideoPlayers() called"); dispatch_async(_chipWorkQueue, ^{ - NSMutableArray * videoPlayers = nil; + NSMutableArray * videoPlayers = [NSMutableArray new]; TargetVideoPlayerInfo * cppTargetVideoPlayerInfo = CastingServer::GetInstance()->GetActiveTargetVideoPlayer(); - if (cppTargetVideoPlayerInfo != nullptr) { - videoPlayers = [NSMutableArray new]; + if (cppTargetVideoPlayerInfo != nullptr && cppTargetVideoPlayerInfo->IsInitialized()) { videoPlayers[0] = [ConversionUtils convertToObjCVideoPlayerFrom:cppTargetVideoPlayerInfo]; } @@ -495,6 +510,79 @@ - (void)shutdownAllSubscriptions:(dispatch_queue_t _Nonnull)clientQueue requestS }); } +- (void)startMatterServer +{ + ChipLogProgress(AppServer, "CastingServerBridge().startMatterServer() called"); + + dispatch_sync(_chipWorkQueue, ^{ + // Initialize the Matter server + CHIP_ERROR err = chip::Server::GetInstance().Init(*self->_serverInitParams); + if (err != CHIP_NO_ERROR) { + ChipLogError(AppServer, "chip::Server init failed: %s", ErrorStr(err)); + return; + } + + // Now reconnect to the VideoPlayer the casting app was previously connected to (if any) + if (self->_previouslyConnectedVideoPlayer != nil) { + ChipLogProgress( + AppServer, "CastingServerBridge().startMatterServer() reconnecting to previously connected VideoPlayer..."); + err = CastingServer::GetInstance()->VerifyOrEstablishConnection( + *(self->_previouslyConnectedVideoPlayer), [](TargetVideoPlayerInfo * cppTargetVideoPlayerInfo) {}, + [](CHIP_ERROR err) {}, [](TargetEndpointInfo * cppTargetEndpointInfo) {}); + } + }); +} + +- (void)stopMatterServer +{ + ChipLogProgress(AppServer, "CastingServerBridge().stopMatterServer() called"); + + dispatch_sync(_chipWorkQueue, ^{ + // capture pointer to previouslyConnectedVideoPlayer, to be deleted + TargetVideoPlayerInfo * videoPlayerForDeletion + = self->_previouslyConnectedVideoPlayer == nil ? nil : self->_previouslyConnectedVideoPlayer; + + // On shutting down the Matter server, the casting app will be automatically disconnected from any Video Players it was + // connected to. Save the VideoPlayer that the casting app was targetting and connected to, so we can reconnect to it on + // re-starting the Matter server. + TargetVideoPlayerInfo * currentTargetVideoPlayerInfo = CastingServer::GetInstance()->GetActiveTargetVideoPlayer(); + if (currentTargetVideoPlayerInfo != nil && currentTargetVideoPlayerInfo->IsInitialized() + && currentTargetVideoPlayerInfo->GetOperationalDeviceProxy() != nil) { + self->_previouslyConnectedVideoPlayer = new TargetVideoPlayerInfo(); + self->_previouslyConnectedVideoPlayer->Initialize(currentTargetVideoPlayerInfo->GetNodeId(), + currentTargetVideoPlayerInfo->GetFabricIndex(), nullptr, nullptr, currentTargetVideoPlayerInfo->GetVendorId(), + currentTargetVideoPlayerInfo->GetProductId(), currentTargetVideoPlayerInfo->GetDeviceType(), + currentTargetVideoPlayerInfo->GetDeviceName(), currentTargetVideoPlayerInfo->GetNumIPs(), + const_cast(currentTargetVideoPlayerInfo->GetIpAddresses())); + + TargetEndpointInfo * prevEndpoints = self->_previouslyConnectedVideoPlayer->GetEndpoints(); + if (prevEndpoints != nullptr) { + for (size_t i = 0; i < kMaxNumberOfEndpoints; i++) { + prevEndpoints[i].Reset(); + } + } + TargetEndpointInfo * currentEndpoints = currentTargetVideoPlayerInfo->GetEndpoints(); + for (size_t i = 0; i < kMaxNumberOfEndpoints && currentEndpoints[i].IsInitialized(); i++) { + prevEndpoints[i].Initialize(currentEndpoints[i].GetEndpointId()); + chip::ClusterId * currentClusters = currentEndpoints[i].GetClusters(); + for (size_t j = 0; j < kMaxNumberOfClustersPerEndpoint && currentClusters[j] != chip::kInvalidClusterId; j++) { + prevEndpoints[i].AddCluster(currentClusters[j]); + } + } + } else { + self->_previouslyConnectedVideoPlayer = nil; + } + + // Now shutdown the Matter server + chip::Server::GetInstance().Shutdown(); + + // Delete the old previouslyConnectedVideoPlayer, if non-nil + if (videoPlayerForDeletion != nil) { + delete videoPlayerForDeletion; + } + }); +} + - (void)disconnect:(dispatch_queue_t _Nonnull)clientQueue requestSentHandler:(nullable void (^)())requestSentHandler { ChipLogProgress(AppServer, "CastingServerBridge().disconnect() called"); diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/CommissionableDataProviderImpl.hpp b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/CommissionableDataProviderImpl.hpp index b05ce4aa89a4ef..979c7c72f5e057 100644 --- a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/CommissionableDataProviderImpl.hpp +++ b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/CommissionableDataProviderImpl.hpp @@ -1,6 +1,7 @@ -/** +/* * - * Copyright (c) 2020-2022 Project CHIP Authors + * Copyright (c) 2022 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. @@ -15,166 +16,47 @@ * limitations under the License. */ -#ifndef CommissionableDataProviderImpl_h -#define CommissionableDataProviderImpl_h - #pragma once #include -#include +#include #include +#include +#include -namespace chip { -namespace DeviceLayer { - -class CommissionableDataProviderImpl : public CommissionableDataProvider +class CommissionableDataProviderImpl : public chip::DeviceLayer::CommissionableDataProvider { public: - CommissionableDataProviderImpl() {} - - CHIP_ERROR GetSetupPasscode(uint32_t & setupPasscode) override - { - if (mSetupPasscode > 0) - { - setupPasscode = mSetupPasscode; - } - else - { - setupPasscode = kDefaultTestPasscode; - } - - return CHIP_NO_ERROR; - } - - CHIP_ERROR SetSetupPasscode(uint32_t setupPasscode) override - { - mSetupPasscode = setupPasscode; - return CHIP_NO_ERROR; - } - - CHIP_ERROR GetSetupDiscriminator(uint16_t & setupDiscriminator) override - { - if (mSetupDiscriminator > 0) - { - setupDiscriminator = mSetupDiscriminator; - } - else - { - setupDiscriminator = kDefaultTestDiscriminator; - } - - return CHIP_NO_ERROR; - } - + CHIP_ERROR Initialize(chip::ByteSpan * spake2pVerifierBase64, chip::ByteSpan * spake2pSaltBase64, + uint32_t spake2pIterationCount, uint32_t setupPasscode, uint16_t discriminator); + CHIP_ERROR GetSetupDiscriminator(uint16_t & setupDiscriminator) override; CHIP_ERROR SetSetupDiscriminator(uint16_t setupDiscriminator) override { - mSetupDiscriminator = setupDiscriminator; - return CHIP_NO_ERROR; - } - - CHIP_ERROR GetSpake2pIterationCount(uint32_t & iterationCount) override - { - if (mSpake2pIterationCount > 0) - { - iterationCount = mSpake2pIterationCount; - } - else - { - iterationCount = kDefaultTestVerifierIterationCount; - } - - return CHIP_NO_ERROR; - } - - CHIP_ERROR SetSpake2pIterationCount(uint32_t iterationCount) - { - mSpake2pIterationCount = iterationCount; - return CHIP_NO_ERROR; + // We don't support overriding the discriminator post-init (it is deprecated!) + return CHIP_ERROR_NOT_IMPLEMENTED; } - - CHIP_ERROR GetSpake2pSalt(MutableByteSpan & saltBuf) override - { - size_t saltLen = mSpake2pSalt.data() == nullptr ? sizeof(kDefaultTestVerifierSalt) : mSpake2pSalt.size(); - if (saltBuf.size() < saltLen) - { - return CHIP_ERROR_BUFFER_TOO_SMALL; - } - - memcpy(saltBuf.data(), mSpake2pSalt.data() == nullptr ? kDefaultTestVerifierSalt : mSpake2pSalt.data(), saltLen); - saltBuf.reduce_size(saltLen); - return CHIP_NO_ERROR; - } - - CHIP_ERROR SetSpake2pSalt(ByteSpan saltBuf) - { - size_t saltLen = saltBuf.size(); - if (chip::Crypto::kSpake2p_Max_PBKDF_Salt_Length < saltLen) - { - return CHIP_ERROR_BUFFER_TOO_SMALL; - } - - mSpake2pSalt = MutableByteSpan(mSpake2pSaltBuf, chip::Crypto::kSpake2p_Max_PBKDF_Salt_Length); - - memcpy(mSpake2pSalt.data(), saltBuf.data(), saltLen); - mSpake2pSalt.reduce_size(saltLen); - return CHIP_NO_ERROR; - } - - CHIP_ERROR GetSpake2pVerifier(MutableByteSpan & verifierBuf, size_t & outVerifierLen) override - { - outVerifierLen = mSpake2pVerifier.data() == nullptr ? sizeof(kDefaultTestVerifier) : mSpake2pVerifier.size(); - if (verifierBuf.size() < outVerifierLen) - { - return CHIP_ERROR_BUFFER_TOO_SMALL; - } - memcpy(verifierBuf.data(), mSpake2pVerifier.data() == nullptr ? kDefaultTestVerifier : mSpake2pVerifier.data(), - outVerifierLen); - verifierBuf.reduce_size(outVerifierLen); - return CHIP_NO_ERROR; - } - - CHIP_ERROR SetSpake2pVerifier(MutableByteSpan verifierBuf) + CHIP_ERROR GetSpake2pIterationCount(uint32_t & iterationCount) override; + CHIP_ERROR GetSpake2pSalt(chip::MutableByteSpan & saltBuf) override; + CHIP_ERROR GetSpake2pVerifier(chip::MutableByteSpan & verifierBuf, size_t & outVerifierLen) override; + CHIP_ERROR GetSetupPasscode(uint32_t & setupPasscode) override; + CHIP_ERROR SetSetupPasscode(uint32_t setupPasscode) override { - size_t inVerifierBufLen = verifierBuf.size(); - if (chip::Crypto::kSpake2p_VerifierSerialized_Length < inVerifierBufLen) - { - return CHIP_ERROR_BUFFER_TOO_SMALL; - } - - mSpake2pVerifier = MutableByteSpan(mSpake2pSaltBuf, chip::Crypto::kSpake2p_VerifierSerialized_Length); - - memcpy(mSpake2pVerifier.data(), verifierBuf.data(), inVerifierBufLen); - mSpake2pVerifier.reduce_size(inVerifierBufLen); - return CHIP_NO_ERROR; + // We don't support overriding the passcode post-init (it is deprecated!) + return CHIP_ERROR_NOT_IMPLEMENTED; } private: - static constexpr uint32_t kDefaultTestPasscode = 20202021; - static constexpr uint16_t kDefaultTestDiscriminator = 3840; - static constexpr uint32_t kDefaultTestVerifierIterationCount = 1000; - static constexpr uint8_t kDefaultTestVerifierSalt[16] = { - 0x53, 0x50, 0x41, 0x4b, 0x45, 0x32, 0x50, 0x20, 0x4b, 0x65, 0x79, 0x20, 0x53, 0x61, 0x6c, 0x74, - }; - static constexpr uint8_t kDefaultTestVerifier[97] = { - 0xb9, 0x61, 0x70, 0xaa, 0xe8, 0x03, 0x34, 0x68, 0x84, 0x72, 0x4f, 0xe9, 0xa3, 0xb2, 0x87, 0xc3, 0x03, 0x30, 0xc2, 0xa6, - 0x60, 0x37, 0x5d, 0x17, 0xbb, 0x20, 0x5a, 0x8c, 0xf1, 0xae, 0xcb, 0x35, 0x04, 0x57, 0xf8, 0xab, 0x79, 0xee, 0x25, 0x3a, - 0xb6, 0xa8, 0xe4, 0x6b, 0xb0, 0x9e, 0x54, 0x3a, 0xe4, 0x22, 0x73, 0x6d, 0xe5, 0x01, 0xe3, 0xdb, 0x37, 0xd4, 0x41, 0xfe, - 0x34, 0x49, 0x20, 0xd0, 0x95, 0x48, 0xe4, 0xc1, 0x82, 0x40, 0x63, 0x0c, 0x4f, 0xf4, 0x91, 0x3c, 0x53, 0x51, 0x38, 0x39, - 0xb7, 0xc0, 0x7f, 0xcc, 0x06, 0x27, 0xa1, 0xb8, 0x57, 0x3a, 0x14, 0x9f, 0xcd, 0x1f, 0xa4, 0x66, 0xcf, - }; - - uint32_t mSetupPasscode = 0; - uint16_t mSetupDiscriminator = 0; - uint32_t mSpake2pIterationCount = 0; - - uint8_t mSpake2pSaltBuf[chip::Crypto::kSpake2p_Max_PBKDF_Salt_Length]; - MutableByteSpan mSpake2pSalt; - - MutableByteSpan mSpake2pVerifier; - uint8_t mSpake2pVerifierBuf[chip::Crypto::kSpake2p_VerifierSerialized_Length]; + friend CommissionableDataProviderImpl & CommissionableDataProviderMgrImpl(); + static CommissionableDataProviderImpl sInstance; + bool mFirstUpdated = false; + std::vector mSerializedPaseVerifier; + std::vector mPaseSalt; + uint32_t mPaseIterationCount = 0; + chip::Optional mSetupPasscode; + uint16_t mDiscriminator = 0; }; -} // namespace DeviceLayer -} // namespace chip - -#endif /* CommissionableDataProviderImpl_h */ +inline CommissionableDataProviderImpl & CommissionableDataProviderMgrImpl() +{ + return CommissionableDataProviderImpl::sInstance; +} diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/CommissionableDataProviderImpl.mm b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/CommissionableDataProviderImpl.mm new file mode 100644 index 00000000000000..c1e7c6ef9b6120 --- /dev/null +++ b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/CommissionableDataProviderImpl.mm @@ -0,0 +1,205 @@ +/* + * + * Copyright (c) 2022 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. + */ + +#include "CommissionableDataProviderImpl.hpp" + +#include +#include + +#include +#include +#include +#include +#include +#include + +using namespace chip; +using namespace chip::Crypto; + +namespace { + +CHIP_ERROR GeneratePaseSalt(std::vector & spake2pSaltVector) +{ + constexpr size_t kSaltLen = kSpake2p_Max_PBKDF_Salt_Length; + spake2pSaltVector.resize(kSaltLen); + return DRBG_get_bytes(spake2pSaltVector.data(), spake2pSaltVector.size()); +} + +} // namespace + +CommissionableDataProviderImpl CommissionableDataProviderImpl::sInstance; + +CHIP_ERROR CommissionableDataProviderImpl::Initialize(chip::ByteSpan * spake2pVerifierBase64, chip::ByteSpan * spake2pSaltBase64, + uint32_t spake2pIterationCount, uint32_t setupPasscode, uint16_t discriminator) +{ + VerifyOrReturnLogError(discriminator <= chip::kMaxDiscriminatorValue, CHIP_ERROR_INVALID_ARGUMENT); + + if (spake2pIterationCount == 0) { + spake2pIterationCount = CHIP_DEVICE_CONFIG_USE_TEST_SPAKE2P_ITERATION_COUNT; + } + VerifyOrReturnLogError( + static_cast(spake2pIterationCount) >= kSpake2p_Min_PBKDF_Iterations, CHIP_ERROR_INVALID_ARGUMENT); + VerifyOrReturnLogError( + static_cast(spake2pIterationCount) <= kSpake2p_Max_PBKDF_Iterations, CHIP_ERROR_INVALID_ARGUMENT); + + const bool havePaseVerifier = (spake2pVerifierBase64 != nullptr); + const bool havePaseSalt = (spake2pSaltBase64 != nullptr); + VerifyOrReturnLogError(!havePaseVerifier || (havePaseVerifier && havePaseSalt), CHIP_ERROR_INVALID_ARGUMENT); + + CHIP_ERROR err; + // read verifier from paramter if provided + Spake2pVerifier providedVerifier; + std::vector serializedSpake2pVerifier(kSpake2p_VerifierSerialized_Length); + if (havePaseVerifier) { + size_t maxBase64Size = BASE64_ENCODED_LEN(chip::Crypto::kSpake2p_VerifierSerialized_Length); + VerifyOrReturnLogError(static_cast(spake2pVerifierBase64->size()) <= maxBase64Size, CHIP_ERROR_INVALID_ARGUMENT); + + size_t decodedLen = chip::Base64Decode32(reinterpret_cast(spake2pVerifierBase64->data()), + static_cast(spake2pVerifierBase64->size()), reinterpret_cast(serializedSpake2pVerifier.data())); + VerifyOrReturnLogError(decodedLen == chip::Crypto::kSpake2p_VerifierSerialized_Length, CHIP_ERROR_INVALID_ARGUMENT); + + chip::MutableByteSpan verifierSpan { serializedSpake2pVerifier.data(), decodedLen }; + err = providedVerifier.Deserialize(verifierSpan); + VerifyOrReturnLogError(err == CHIP_NO_ERROR, err); + + ChipLogProgress(Support, "Got externally provided verifier, using it."); + } + + // read salt from paramter if provided or generate one + std::vector spake2pSalt(chip::Crypto::kSpake2p_Max_PBKDF_Salt_Length); + if (!havePaseSalt) { + ChipLogProgress(Support, "CommissionableDataProviderImpl didn't get a PASE salt, generating one."); + err = GeneratePaseSalt(spake2pSalt); + VerifyOrReturnLogError(err == CHIP_NO_ERROR, err); + } else { + size_t maxBase64Size = BASE64_ENCODED_LEN(chip::Crypto::kSpake2p_Max_PBKDF_Salt_Length); + VerifyOrReturnLogError(static_cast(spake2pSaltBase64->size()) <= maxBase64Size, CHIP_ERROR_INVALID_ARGUMENT); + + size_t decodedLen = chip::Base64Decode32(reinterpret_cast(spake2pSaltBase64->data()), + static_cast(spake2pSaltBase64->size()), reinterpret_cast(spake2pSalt.data())); + VerifyOrReturnLogError(decodedLen >= chip::Crypto::kSpake2p_Min_PBKDF_Salt_Length + && decodedLen <= chip::Crypto::kSpake2p_Max_PBKDF_Salt_Length, + CHIP_ERROR_INVALID_ARGUMENT); + spake2pSalt.resize(decodedLen); + } + + // generate verifier from passcode if provided + const bool havePasscode = (setupPasscode > kMinSetupPasscode && setupPasscode < kMaxSetupPasscode); + Spake2pVerifier passcodeVerifier; + std::vector serializedPasscodeVerifier(kSpake2p_VerifierSerialized_Length); + chip::MutableByteSpan saltSpan { spake2pSalt.data(), spake2pSalt.size() }; + if (havePasscode) { + uint32_t u32SetupPasscode = static_cast(setupPasscode); + err = passcodeVerifier.Generate(spake2pIterationCount, saltSpan, u32SetupPasscode); + VerifyOrReturnLogError(err == CHIP_NO_ERROR, err); + + chip::MutableByteSpan verifierSpan { serializedPasscodeVerifier.data(), serializedPasscodeVerifier.size() }; + err = passcodeVerifier.Serialize(verifierSpan); + VerifyOrReturnLogError(err == CHIP_NO_ERROR, err); + } + + // Make sure we actually have a verifier + VerifyOrReturnLogError(havePasscode || havePaseVerifier, CHIP_ERROR_INVALID_ARGUMENT); + + // If both passcode and external verifier were provided, validate they match, otherwise + // it's ambiguous. + if (havePasscode && havePaseVerifier) { + VerifyOrReturnLogError(serializedPasscodeVerifier == serializedSpake2pVerifier, CHIP_ERROR_INVALID_ARGUMENT); + ChipLogProgress(Support, "Validated externally provided passcode matches the one generated from provided passcode."); + } + + // External PASE verifier takes precedence when present (even though it is identical to passcode-based + // one when the latter is present). + if (havePaseVerifier) { + mSerializedPaseVerifier = std::move(serializedSpake2pVerifier); + } else { + mSerializedPaseVerifier = std::move(serializedPasscodeVerifier); + } + mDiscriminator = discriminator; + mPaseSalt = std::move(spake2pSalt); + mPaseIterationCount = spake2pIterationCount; + if (havePasscode) { + mSetupPasscode.SetValue(setupPasscode); + } + + // Set to global CommissionableDataProvider once success first time + if (!mFirstUpdated) { + DeviceLayer::SetCommissionableDataProvider(this); + } + mFirstUpdated = true; + + return CHIP_NO_ERROR; +} + +CHIP_ERROR CommissionableDataProviderImpl::GetSetupDiscriminator(uint16_t & setupDiscriminator) +{ + VerifyOrReturnError(mFirstUpdated, CHIP_ERROR_INCORRECT_STATE); + setupDiscriminator = mDiscriminator; + return CHIP_NO_ERROR; +} + +CHIP_ERROR CommissionableDataProviderImpl::GetSpake2pIterationCount(uint32_t & iterationCount) +{ + ChipLogProgress(AppServer, "CommissionableDataProviderImpl::GetSpake2pIterationCount called"); + VerifyOrReturnLogError(mFirstUpdated, CHIP_ERROR_INCORRECT_STATE); + iterationCount = mPaseIterationCount; + return CHIP_NO_ERROR; +} + +CHIP_ERROR CommissionableDataProviderImpl::GetSpake2pSalt(chip::MutableByteSpan & saltBuf) +{ + ChipLogProgress(AppServer, "CommissionableDataProviderImpl::GetSpake2pSalt called"); + VerifyOrReturnError(mFirstUpdated, CHIP_ERROR_INCORRECT_STATE); + + VerifyOrReturnError(saltBuf.size() >= kSpake2p_Max_PBKDF_Salt_Length, CHIP_ERROR_BUFFER_TOO_SMALL); + memcpy(saltBuf.data(), mPaseSalt.data(), mPaseSalt.size()); + saltBuf.reduce_size(mPaseSalt.size()); + + return CHIP_NO_ERROR; +} + +CHIP_ERROR CommissionableDataProviderImpl::GetSpake2pVerifier(chip::MutableByteSpan & verifierBuf, size_t & outVerifierLen) +{ + ChipLogProgress(AppServer, "CommissionableDataProviderImpl::GetSpake2pVerifier called"); + VerifyOrReturnError(mFirstUpdated, CHIP_ERROR_INCORRECT_STATE); + + // By now, serialized verifier from Init should be correct size + VerifyOrReturnError(mSerializedPaseVerifier.size() == kSpake2p_VerifierSerialized_Length, CHIP_ERROR_INTERNAL); + + outVerifierLen = mSerializedPaseVerifier.size(); + VerifyOrReturnError(verifierBuf.size() >= outVerifierLen, CHIP_ERROR_BUFFER_TOO_SMALL); + memcpy(verifierBuf.data(), mSerializedPaseVerifier.data(), mSerializedPaseVerifier.size()); + verifierBuf.reduce_size(mSerializedPaseVerifier.size()); + + return CHIP_NO_ERROR; +} + +CHIP_ERROR CommissionableDataProviderImpl::GetSetupPasscode(uint32_t & setupPasscode) +{ + ChipLogProgress(AppServer, "CommissionableDataProviderImpl::GetSetupPasscode called"); + VerifyOrReturnError(mFirstUpdated, CHIP_ERROR_INCORRECT_STATE); + + // Pretend not implemented if we don't have a passcode value externally set + if (!mSetupPasscode.HasValue()) { + return CHIP_ERROR_NOT_IMPLEMENTED; + } + + setupPasscode = mSetupPasscode.Value(); + ChipLogProgress(AppServer, "CommissionableDataProviderImpl::GetSetupPasscode returning value %d", setupPasscode); + return CHIP_NO_ERROR; +} diff --git a/examples/tv-casting-app/darwin/TvCasting/TvCasting/TvCastingApp.swift b/examples/tv-casting-app/darwin/TvCasting/TvCasting/TvCastingApp.swift index daef2e730d5e3a..322f1a1108d15b 100644 --- a/examples/tv-casting-app/darwin/TvCasting/TvCasting/TvCastingApp.swift +++ b/examples/tv-casting-app/darwin/TvCasting/TvCasting/TvCastingApp.swift @@ -22,6 +22,8 @@ import os.log struct TvCastingApp: App { let Log = Logger(subsystem: "com.matter.casting", category: "TvCastingApp") + @State + var firstAppActivation: Bool = true var body: some Scene { WindowGroup { @@ -49,6 +51,36 @@ struct TvCastingApp: App { }) } }) + .onReceive(NotificationCenter.default.publisher(for: UIApplication.willResignActiveNotification)) { _ in + self.Log.info("TvCastingApp: UIApplication.willResignActiveNotification") + if let castingServerBridge = CastingServerBridge.getSharedInstance() + { + castingServerBridge.stopMatterServer() + } + } + .onReceive(NotificationCenter.default.publisher(for: UIApplication.didBecomeActiveNotification)) { _ in + self.Log.info("TvCastingApp: UIApplication.didBecomeActiveNotification") + if(!firstAppActivation) + { + if let castingServerBridge = CastingServerBridge.getSharedInstance() + { + castingServerBridge.startMatterServer() + } + } + firstAppActivation = false + } + .onReceive(NotificationCenter.default.publisher(for: UIApplication.didEnterBackgroundNotification)) { _ in + self.Log.info("TvCastingApp: UIApplication.didEnterBackgroundNotification") + } + .onReceive(NotificationCenter.default.publisher(for: UIApplication.didFinishLaunchingNotification)) { _ in + self.Log.info("TvCastingApp: UIApplication.didFinishLaunchingNotification") + } + .onReceive(NotificationCenter.default.publisher(for: UIApplication.willEnterForegroundNotification)) { _ in + self.Log.info("TvCastingApp: UIApplication.willEnterForegroundNotification") + } + .onReceive(NotificationCenter.default.publisher(for: UIApplication.willTerminateNotification)) { _ in + self.Log.info("TvCastingApp: UIApplication.willTerminateNotification") + } } } } diff --git a/examples/tv-casting-app/darwin/args.gni b/examples/tv-casting-app/darwin/args.gni index 1171f4d8398a89..64353389c5285f 100644 --- a/examples/tv-casting-app/darwin/args.gni +++ b/examples/tv-casting-app/darwin/args.gni @@ -29,3 +29,5 @@ chip_build_libshell = true chip_enable_additional_data_advertising = true chip_enable_rotating_device_id = true + +chip_config_network_layer_ble = false diff --git a/examples/tv-casting-app/tv-casting-common/include/CHIPProjectAppConfig.h b/examples/tv-casting-app/tv-casting-common/include/CHIPProjectAppConfig.h index b8daebc0a86f5e..e11b96824bcd5a 100644 --- a/examples/tv-casting-app/tv-casting-common/include/CHIPProjectAppConfig.h +++ b/examples/tv-casting-app/tv-casting-common/include/CHIPProjectAppConfig.h @@ -47,6 +47,10 @@ #define CHIP_DEVICE_CONFIG_ENABLE_COMMISSIONABLE_DEVICE_NAME 1 +#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE 20202021 + +#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR 0xF00 + #define CHIP_DEVICE_CONFIG_DEVICE_NAME "Test TV casting app" #define CHIP_DEVICE_CONFIG_ENABLE_PAIRING_AUTOSTART 0 diff --git a/examples/tv-casting-app/tv-casting-common/tv-casting-app.zap b/examples/tv-casting-app/tv-casting-common/tv-casting-app.zap index 3b7aa956e4b67e..c4f4a0254a4324 100644 --- a/examples/tv-casting-app/tv-casting-common/tv-casting-app.zap +++ b/examples/tv-casting-app/tv-casting-common/tv-casting-app.zap @@ -83,7 +83,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -6809,7 +6809,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -6825,7 +6825,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", @@ -13543,7 +13543,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", diff --git a/examples/window-app/common/window-app.zap b/examples/window-app/common/window-app.zap index a9a56ff2f42823..705e782125e759 100644 --- a/examples/window-app/common/window-app.zap +++ b/examples/window-app/common/window-app.zap @@ -91,7 +91,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -107,7 +107,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", @@ -6181,7 +6181,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -6197,7 +6197,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", @@ -7717,7 +7717,7 @@ "enabled": 1, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -7733,7 +7733,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", diff --git a/integrations/docker/images/chip-build-telink/Dockerfile b/integrations/docker/images/chip-build-telink/Dockerfile index 1161d628aeaab2..00085e37db68f5 100644 --- a/integrations/docker/images/chip-build-telink/Dockerfile +++ b/integrations/docker/images/chip-build-telink/Dockerfile @@ -23,7 +23,7 @@ RUN set -x \ && : # last line # Setup Zephyr -ARG ZEPHYR_REVISION=7e93d9eeb7d2796d678a069558c251cf94dd0c2e +ARG ZEPHYR_REVISION=0074d643c84e985bf91177216b4557236952b4fa WORKDIR /opt/telink/zephyrproject RUN set -x \ && python3 -m pip install -U --no-cache-dir \ diff --git a/integrations/docker/images/chip-build/Dockerfile b/integrations/docker/images/chip-build/Dockerfile index c7c99fea34f87b..57eb0030689518 100644 --- a/integrations/docker/images/chip-build/Dockerfile +++ b/integrations/docker/images/chip-build/Dockerfile @@ -95,7 +95,22 @@ RUN set -x \ && : # last line RUN set -x \ - && pip3 install attrs coloredlogs PyGithub pygit future portpicker mobly click cxxfilt ghapi pandas tabulate \ + && pip3 install \ + attrs \ + click \ + coloredlogs \ + cxxfilt \ + flake8 \ + future \ + ghapi \ + mobly \ + pandas \ + portpicker \ + pygit \ + PyGithub \ + tabulate \ + # Cleanup + && pip3 cache purge \ && : # last line # build and install gn diff --git a/integrations/docker/images/chip-build/version b/integrations/docker/images/chip-build/version index d4562f8125ae06..bcccaaff02e138 100644 --- a/integrations/docker/images/chip-build/version +++ b/integrations/docker/images/chip-build/version @@ -1 +1 @@ -0.6.25 Version bump reason: Updating ZAP to v2022.12.20-nightly +0.6.27 Version bump reason: [Telink] Update Telink Docker image (Zephyr update) diff --git a/scripts/tools/zap/convert.py b/scripts/tools/zap/convert.py index 0edc09167baa8e..c3fab0ddd880e6 100755 --- a/scripts/tools/zap/convert.py +++ b/scripts/tools/zap/convert.py @@ -102,6 +102,8 @@ def runConversion(zap_file): if 'ZAP_DEVELOPMENT_PATH' in os.environ: convert_cmd = ['node', 'src-script/zap-start.js', 'convert'] working_directory = os.environ['ZAP_DEVELOPMENT_PATH'] + # Make sure we don't try to munge the package.json in the ZAP repo. + os.environ['ZAP_SKIP_REAL_VERSION'] = '1' elif 'ZAP_INSTALL_PATH' in os.environ: convert_cmd = [os.path.join(os.environ['ZAP_INSTALL_PATH'], 'zap-cli'), 'convert'] working_directory = None diff --git a/scripts/tools/zap/generate.py b/scripts/tools/zap/generate.py index bd120752164895..30f60aa8127d21 100755 --- a/scripts/tools/zap/generate.py +++ b/scripts/tools/zap/generate.py @@ -164,6 +164,8 @@ def runGeneration(zap_file, zcl_file, templates_file, output_dir): if 'ZAP_DEVELOPMENT_PATH' in os.environ: generate_cmd = ['node', 'src-script/zap-start.js', 'generate'] working_directory = os.environ['ZAP_DEVELOPMENT_PATH'] + # Make sure we don't try to munge the package.json in the ZAP repo. + os.environ['ZAP_SKIP_REAL_VERSION'] = '1' elif 'ZAP_INSTALL_PATH' in os.environ: generate_cmd = [os.path.join(os.environ['ZAP_INSTALL_PATH'], 'zap-cli'), 'generate'] working_directory = None diff --git a/scripts/tools/zap/run_zaptool.sh b/scripts/tools/zap/run_zaptool.sh index 5e7a1855b4288a..8885cddea10669 100755 --- a/scripts/tools/zap/run_zaptool.sh +++ b/scripts/tools/zap/run_zaptool.sh @@ -34,6 +34,8 @@ CHIP_ROOT="${SCRIPT_PATH%/scripts/tools/zap/run_zaptool.sh}" if [ ! -z "$ZAP_DEVELOPMENT_PATH" ]; then WORKING_DIR=$ZAP_DEVELOPMENT_PATH ZAP_CMD="node src-script/zap-start.js" + # Make sure we don't try to munge the package.json in the ZAP repo. + export ZAP_SKIP_REAL_VERSION=1 "$CHIP_ROOT"/scripts/tools/zap/zap_bootstrap.sh elif [ ! -z "$ZAP_INSTALL_PATH" ]; then diff --git a/scripts/tools/zap_convert_all.py b/scripts/tools/zap_convert_all.py index 15a68cf0ddb1ef..a626a97efc74fb 100755 --- a/scripts/tools/zap_convert_all.py +++ b/scripts/tools/zap_convert_all.py @@ -20,6 +20,7 @@ import sys import subprocess import argparse +import multiprocessing CHIP_ROOT_DIR = os.path.realpath( os.path.join(os.path.dirname(__file__), '../..')) @@ -59,9 +60,20 @@ def runArgumentsParser(): description='Convert all .zap files to the current zap version') parser.add_argument('--run-bootstrap', default=None, action='store_true', help='Automatically run ZAP bootstrap. By default the bootstrap is not triggered') + parser.add_argument('--parallel', action='store_true') + parser.add_argument('--no-parallel', action='store_false', dest='parallel') + parser.set_defaults(parallel=True) + return parser.parse_args() +def convertOne(target): + """ + Helper method that may be run in parallel to convert a single target. + """ + subprocess.check_call(['./scripts/tools/zap/convert.py'] + target) + + def main(): args = runArgumentsParser() checkPythonVersion() @@ -72,8 +84,16 @@ def main(): os.chdir(CHIP_ROOT_DIR) targets = getTargets() - for target in targets: - subprocess.check_call(['./scripts/tools/zap/convert.py'] + target) + + if args.parallel: + # Ensure each zap run is independent + os.environ['ZAP_TEMPSTATE'] = '1' + with multiprocessing.Pool() as pool: + for _ in pool.imap_unordered(convertOne, targets): + pass + else: + for target in targets: + generateOne(target) if __name__ == '__main__': 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 a3c75c4818ff9c..86f6b10fe7b7d4 100644 --- a/src/app/clusters/door-lock-server/door-lock-server.cpp +++ b/src/app/clusters/door-lock-server/door-lock-server.cpp @@ -2085,8 +2085,11 @@ DlStatus DoorLockServer::addCredentialToUser(chip::EndpointId endpointId, chip:: for (size_t i = 0; i < user.credentials.size(); ++i) { - // appclusters, 5.2.4.40: user should not be already associated with given credentialIndex - if (user.credentials.data()[i].CredentialIndex == credential.CredentialIndex) + // appclusters, 5.2.4.40: CredentialIndex in CredentialStruct provided SHALL be for an available credential slot. + // appclusters, 5.6.3.2: This is the index of the specific credential used to authorize + // the lock operation in the list of credentials identified by CredentialType + if (user.credentials.data()[i].CredentialIndex == credential.CredentialIndex && + user.credentials.data()[i].CredentialType == credential.CredentialType) { emberAfDoorLockClusterPrintln( "[AddCredentialToUser] Unable to add credential to user: credential with this index is already associated " diff --git a/src/app/tests/suites/certification/Test_TC_G_2_3.yaml b/src/app/tests/suites/certification/Test_TC_G_2_3.yaml index 9564198509225f..899cf13ebeaf26 100644 --- a/src/app/tests/suites/certification/Test_TC_G_2_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_G_2_3.yaml @@ -392,7 +392,7 @@ tests: Verify the "identifytime" on the TH(Chip-tool) Log: [1658306684.629338][3050:3055] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 3871913205 - [1658306684.629394][3050:3055] CHIP:TOO: identify time: 102 + [1658306684.629394][3050:3055] CHIP:TOO: IdentifyTime: 102 disabled: true - label: @@ -599,10 +599,10 @@ tests: verification: | ./chip-tool identify read identify-time 1 1 - Verify the "identify time" on the TH(Chip-tool) Log: + Verify the "IdentifyTime" on the TH(Chip-tool) Log: [1658307393.820520][3274:3279] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 3871913767 - [1658307393.820575][3274:3279] CHIP:TOO: identify time: 0 + [1658307393.820575][3274:3279] CHIP:TOO: IdentifyTime: 0 disabled: true - label: diff --git a/src/app/tests/suites/certification/Test_TC_IDM_2_1.yaml b/src/app/tests/suites/certification/Test_TC_IDM_2_1.yaml index 1283e505679f6a..e5015ce57f52dc 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_2_1.yaml @@ -65,7 +65,7 @@ tests: [1657881522.001890][2575:2580] CHIP:DMG: } [1657881522.002053][2575:2580] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 3999381333 - [1657881522.002133][2575:2580] CHIP:TOO: identify time: 0 + [1657881522.002133][2575:2580] CHIP:TOO: IdentifyTime: 0 [1657881522.002227][2575:2580] CHIP:EM: Sending Standalone Ack for MessageCounter:54477998 on exchange 6586i disabled: true @@ -107,9 +107,9 @@ tests: If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response [1657881584.166241][2584:2589] CHIP:DMG: } [1657881584.166599][2584:2589] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 4079829024 - [1657881584.166672][2584:2589] CHIP:TOO: identify time: 0 + [1657881584.166672][2584:2589] CHIP:TOO: IdentifyTime: 0 [1657881584.166734][2584:2589] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 4079829024 - [1657881584.166761][2584:2589] CHIP:TOO: identify type: 2 + [1657881584.166761][2584:2589] CHIP:TOO: IdentifyType: 2 [1657881584.166817][2584:2589] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_FFFC DataVersion: 4079829024 [1657881584.166844][2584:2589] CHIP:TOO: FeatureMap: 0 [1657881584.166900][2584:2589] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_FFFD DataVersion: 4079829024 @@ -210,9 +210,9 @@ tests: If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response with attribute values [1657881729.900518][2608:2613] CHIP:DMG: } [1657881729.901108][2608:2613] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 4079829024 - [1657881729.901182][2608:2613] CHIP:TOO: identify time: 0 + [1657881729.901182][2608:2613] CHIP:TOO: IdentifyTime: 0 [1657881729.901245][2608:2613] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 4079829024 - [1657881729.901273][2608:2613] CHIP:TOO: identify type: 2 + [1657881729.901273][2608:2613] CHIP:TOO: IdentifyType: 2 [1657881729.901331][2608:2613] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_FFFC DataVersion: 4079829024 [1657881729.901359][2608:2613] CHIP:TOO: FeatureMap: 0 [1657881729.901431][2608:2613] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_FFFD DataVersion: 4079829024 @@ -233,9 +233,9 @@ tests: [1657881729.902426][2608:2613] CHIP:TOO: [6]: 65532 [1657881729.902451][2608:2613] CHIP:TOO: [7]: 65533 [1657881729.902474][2608:2613] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 3999381333 - [1657881729.902500][2608:2613] CHIP:TOO: identify time: 0 + [1657881729.902500][2608:2613] CHIP:TOO: IdentifyTime: 0 [1657881729.902556][2608:2613] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 3999381333 - [1657881729.902583][2608:2613] CHIP:TOO: identify type: 2 + [1657881729.902583][2608:2613] CHIP:TOO: IdentifyType: 2 [1657881729.902640][2608:2613] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_FFFC DataVersion: 3999381333 [1657881729.902665][2608:2613] CHIP:TOO: FeatureMap: 0 [1657881729.902721][2608:2613] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_FFFD DataVersion: 3999381333 @@ -292,9 +292,9 @@ tests: If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response with attribute values [1657881792.350417][2616:2621] CHIP:DMG: } [1657881792.350641][2616:2621] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 4079829024 - [1657881792.350742][2616:2621] CHIP:TOO: identify type: 2 + [1657881792.350742][2616:2621] CHIP:TOO: IdentifyType: 2 [1657881792.350845][2616:2621] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 3999381333 - [1657881792.350891][2616:2621] CHIP:TOO: identify type: 2 + [1657881792.350891][2616:2621] CHIP:TOO: IdentifyType: 2 [1657881792.351000][2616:2621] CHIP:EM: Sending Standalone Ack for MessageCounter:222990264 on exchange 23721i disabled: true @@ -535,7 +535,7 @@ tests: If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response with attribute values [1657882043.053353][2648:2653] CHIP:DMG: } [1657882043.053561][2648:2653] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 4079829024 - [1657882043.053662][2648:2653] CHIP:TOO: identify type: 2 + [1657882043.053662][2648:2653] CHIP:TOO: IdentifyType: 2 [1657882043.053774][2648:2653] CHIP:EM: Sending Standalone Ack for MessageCounter:228608905 on exchange 11019i disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_IDM_2_2.yaml b/src/app/tests/suites/certification/Test_TC_IDM_2_2.yaml index a12f684673959e..a24a4b6ad89568 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_2_2.yaml @@ -63,7 +63,7 @@ tests: [1655727338.262145][5267:5272] CHIP:DMG: InteractionModelRevision = 1 [1655727338.262182][5267:5272] CHIP:DMG: } [1655727338.262379][5267:5272] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 236949823 - [1655727338.262475][5267:5272] CHIP:TOO: identify time: 0 + [1655727338.262475][5267:5272] CHIP:TOO: IdentifyTime: 0 [1655727338.262588][5267:5272] CHIP:EM: Sending Standalone Ack for MessageCounter:9195311 on exchange 32586i disabled: true @@ -85,9 +85,9 @@ tests: [1655727546.354538][5286:5291] CHIP:DMG: InteractionModelRevision = 1 [1655727546.354580][5286:5291] CHIP:DMG: } [1655727546.355252][5286:5291] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 1545325355 - [1655727546.355324][5286:5291] CHIP:TOO: identify time: 0 + [1655727546.355324][5286:5291] CHIP:TOO: IdentifyTime: 0 [1655727546.355386][5286:5291] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 1545325355 - [1655727546.355414][5286:5291] CHIP:TOO: identify type: 2 + [1655727546.355414][5286:5291] CHIP:TOO: IdentifyType: 2 [1655727546.355470][5286:5291] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_FFFC DataVersion: 1545325355 [1655727546.355524][5286:5291] CHIP:TOO: FeatureMap: 0 [1655727546.355606][5286:5291] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_FFFD DataVersion: 1545325355 @@ -167,9 +167,9 @@ tests: [1655727602.119897][5301:5306] CHIP:DMG: InteractionModelRevision = 1 [1655727602.119933][5301:5306] CHIP:DMG: } [1655727602.120134][5301:5306] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 1545325355 - [1655727602.120223][5301:5306] CHIP:TOO: identify time: 0 + [1655727602.120223][5301:5306] CHIP:TOO: IdentifyTime: 0 [1655727602.120315][5301:5306] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 236949823 - [1655727602.120356][5301:5306] CHIP:TOO: identify time: 0 + [1655727602.120356][5301:5306] CHIP:TOO: IdentifyTime: 0 [1655727602.120460][5301:5306] CHIP:EM: Sending Standalone Ack for MessageCounter:192238779 on exchange 58891i disabled: true @@ -284,9 +284,9 @@ tests: [1653629930.057852][8778:8783] CHIP:DMG: } [1653629930.058739][8778:8783] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 2065044836 - [1653629930.058788][8778:8783] CHIP:TOO: identify time: 0 + [1653629930.058788][8778:8783] CHIP:TOO: IdentifyTime: 0 [1653629930.058889][8778:8783] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 2065044836 - [1653629930.058919][8778:8783] CHIP:TOO: identify type: 2 + [1653629930.058919][8778:8783] CHIP:TOO: IdentifyType: 2 [1653629930.058980][8778:8783] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_FFFD DataVersion: 2065044836 [1653629930.058998][8778:8783] CHIP:TOO: ClusterRevision: 4 [1653629930.059191][8778:8783] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_FFF8 DataVersion: 2065044836 @@ -306,9 +306,9 @@ tests: [1653629930.060048][8778:8783] CHIP:TOO: [5]: 65531 [1653629930.060064][8778:8783] CHIP:TOO: [6]: 65533 [1653629930.060077][8778:8783] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 3620435651 - [1653629930.060095][8778:8783] CHIP:TOO: identify time: 0 + [1653629930.060095][8778:8783] CHIP:TOO: IdentifyTime: 0 [1653629930.060151][8778:8783] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 3620435651 - [1653629930.060167][8778:8783] CHIP:TOO: identify type: 2 + [1653629930.060167][8778:8783] CHIP:TOO: IdentifyType: 2 [1653629930.060224][8778:8783] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_FFFD DataVersion: 3620435651 [1653629930.060240][8778:8783] CHIP:TOO: ClusterRevision: 4 [1653629930.060411][8778:8783] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_FFF8 DataVersion: 3620435651 @@ -390,7 +390,7 @@ tests: Verify on TH(chip-tool), DUT is responds right attribute value for above command [1653630355.834677][8923:8928] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 2065044836 - [1653630355.834735][8923:8928] CHIP:TOO: identify type: 2 + [1653630355.834735][8923:8928] CHIP:TOO: IdentifyType: 2 [1653630355.834801][8923:8928] CHIP:EM: Sending Standalone Ack for MessageCounter:1314384 on exchange 51148i disabled: true @@ -667,17 +667,17 @@ tests: sudo ./chip-tool identify read identify-time 1 1 [1653631418.770328][9322:9327] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 3620435651 - [1653631418.770402][9322:9327] CHIP:TOO: identify time: 0 + [1653631418.770402][9322:9327] CHIP:TOO: IdentifyTime: 0 [1653631418.770491][9322:9327] CHIP:EM: Sending Standalone Ack for MessageCounter:12532212 on exchange 36485i sudo ./chip-tool identify read identify-time 1 1 [1653631479.556292][9357:9362] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 3620435651 - [1653631479.556345][9357:9362] CHIP:TOO: identify time: 0 + [1653631479.556345][9357:9362] CHIP:TOO: IdentifyTime: 0 [1653631479.556418][9357:9362] CHIP:EM: Sending Standalone Ack for MessageCounter:7220061 on exchange 60774i sudo ./chip-tool identify read identify-time 1 1 [1653632941.731096][9571:9576] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 3620435651 - [1653632941.731146][9571:9576] CHIP:TOO: identify time: 0 + [1653632941.731146][9571:9576] CHIP:TOO: IdentifyTime: 0 [1653632941.731258][9571:9576] CHIP:EM: Sending Standalone Ack for MessageCounter:578130 on exchange 46565i disabled: true @@ -718,7 +718,7 @@ tests: [1653633746.448375][9791:9796] CHIP:DMG: InteractionModelRevision = 1 [1653633746.448389][9791:9796] CHIP:DMG: } [1653633746.448532][9791:9796] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 3620435654 - [1653633746.448576][9791:9796] CHIP:TOO: identify time: 0 + [1653633746.448576][9791:9796] CHIP:TOO: IdentifyTime: 0 [1653633746.448656][9791:9796] CHIP:EM: Sending Standalone Ack for MessageCounter:16255130 on exchange 13134i TH sends a below mentioned second read request to the same cluster with the DataVersionFilter Field set with the dataversion value received before. @@ -776,7 +776,7 @@ tests: [1653632941.730858][9571:9576] CHIP:DMG: InteractionModelRevision = 1 [1653632941.730912][9571:9576] CHIP:DMG: } [1653632941.731096][9571:9576] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 3620435651 - [1653632941.731146][9571:9576] CHIP:TOO: identify time: 0 + [1653632941.731146][9571:9576] CHIP:TOO: IdentifyTime: 0 [1653632941.731258][9571:9576] CHIP:EM: Sending Standalone Ack for MessageCounter:578130 on exchange 46565i @@ -793,7 +793,7 @@ tests: sudo ./chip-tool identify read identify-time 1 1 --data-version 0xd7cb76c3 [1653633215.246620][9664:9669] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 3620435654 - [1653633215.246671][9664:9669] CHIP:TOO: identify time: 0 + [1653633215.246671][9664:9669] CHIP:TOO: IdentifyTime: 0 [1653633215.246786][9664:9669] CHIP:EM: Sending Standalone Ack for MessageCounter:3995786 on exchange 44935i disabled: true @@ -814,9 +814,9 @@ tests: [1653633965.092996][9835:9840] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 3620435654 - [1653633965.093041][9835:9840] CHIP:TOO: identify time: 0 + [1653633965.093041][9835:9840] CHIP:TOO: IdentifyTime: 0 [1653633965.093120][9835:9840] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 3620435654 - [1653633965.093140][9835:9840] CHIP:TOO: identify type: 2 + [1653633965.093140][9835:9840] CHIP:TOO: IdentifyType: 2 [1653633965.093202][9835:9840] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_FFFD DataVersion: 3620435654 [1653633965.093221][9835:9840] CHIP:TOO: ClusterRevision: 4 [1653633965.093411][9835:9840] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_FFF8 DataVersion: 3620435654 @@ -872,9 +872,9 @@ tests: [1653634117.935268][9878:9883] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 3620435657 - [1653634117.935294][9878:9883] CHIP:TOO: identify time: 0 + [1653634117.935294][9878:9883] CHIP:TOO: IdentifyTime: 0 [1653634117.935322][9878:9883] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 3620435657 - [1653634117.935331][9878:9883] CHIP:TOO: identify type: 2 + [1653634117.935331][9878:9883] CHIP:TOO: IdentifyType: 2 [1653634117.935357][9878:9883] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_FFFD DataVersion: 3620435657 [1653634117.935366][9878:9883] CHIP:TOO: ClusterRevision: 4 [1653634117.935452][9878:9883] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_FFF8 DataVersion: 3620435657 @@ -912,7 +912,7 @@ tests: sudo ./chip-tool identify read identify-time 1 1 [1653634213.984023][9909:9914] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 3620435660 - [1653634213.984086][9909:9914] CHIP:TOO: identify time: 0 + [1653634213.984086][9909:9914] CHIP:TOO: IdentifyTime: 0 [1653634213.984156][9909:9914] CHIP:EM: Sending Standalone Ack for MessageCounter:1385351 on exchange 48030i @@ -964,9 +964,9 @@ tests: [1653634371.475517][9936:9941] CHIP:DMG: InteractionModelRevision = 1 [1653634371.475531][9936:9941] CHIP:DMG: } [1653634371.475692][9936:9941] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 3620435660 - [1653634371.475731][9936:9941] CHIP:TOO: identify type: 2 + [1653634371.475731][9936:9941] CHIP:TOO: IdentifyType: 2 [1653634371.475818][9936:9941] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 3620435660 - [1653634371.475837][9936:9941] CHIP:TOO: identify type: 2 + [1653634371.475837][9936:9941] CHIP:TOO: IdentifyType: 2 [1653634371.475907][9936:9941] CHIP:EM: Sending Standalone Ack for MessageCounter:16704146 on exchange 6313i disabled: true @@ -987,9 +987,9 @@ tests: sudo ./chip-tool any read-by-id 0x03 0xFFFFFFFF 1 1 [1653634446.678378][9962:9967] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 3620435660 - [1653634446.678404][9962:9967] CHIP:TOO: identify time: 0 + [1653634446.678404][9962:9967] CHIP:TOO: IdentifyTime: 0 [1653634446.678437][9962:9967] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 3620435660 - [1653634446.678447][9962:9967] CHIP:TOO: identify type: 2 + [1653634446.678447][9962:9967] CHIP:TOO: IdentifyType: 2 [1653634446.678474][9962:9967] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_FFFD DataVersion: 3620435660 [1653634446.678483][9962:9967] CHIP:TOO: ClusterRevision: 4 [1653634446.678570][9962:9967] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_FFF8 DataVersion: 3620435660 diff --git a/src/app/tests/suites/certification/Test_TC_IDM_4_1.yaml b/src/app/tests/suites/certification/Test_TC_IDM_4_1.yaml index 7c34d0686393e7..348603f5f80997 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_4_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_4_1.yaml @@ -591,7 +591,7 @@ tests: If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent Subscription report with unic subscriptionID [1662036515.630221][166451:166456] CHIP:DMG: } [1662036515.630284][166451:166456] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 3175537504 - [1662036515.630298][166451:166456] CHIP:TOO: identify time: 0 + [1662036515.630298][166451:166456] CHIP:TOO: IdentifyTime: 0 [1662036515.630329][166451:166456] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0001 DataVersion: 3999635638 [1662036515.630338][166451:166456] CHIP:TOO: RemainingTime: 0 [1662036515.630366][166451:166456] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 2488235261 diff --git a/src/app/tests/suites/certification/Test_TC_I_2_1.yaml b/src/app/tests/suites/certification/Test_TC_I_2_1.yaml index a92583c1313e96..30d32e7c9870bf 100644 --- a/src/app/tests/suites/certification/Test_TC_I_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_I_2_1.yaml @@ -34,7 +34,7 @@ tests: - label: "TH reads the IdentifyTime attribute from the DUT" PICS: I.S.A0000 command: "readAttribute" - attribute: "identify time" + attribute: "IdentifyTime" response: constraints: type: int16u @@ -44,7 +44,7 @@ tests: - label: "TH reads the IdentifyType attribute from the DUT" PICS: I.S.A0001 command: "readAttribute" - attribute: "identify type" + attribute: "IdentifyType" response: constraints: type: enum8 diff --git a/src/app/tests/suites/certification/Test_TC_I_2_2.yaml b/src/app/tests/suites/certification/Test_TC_I_2_2.yaml index 5cc1964f1dc397..4b9e9304610e98 100644 --- a/src/app/tests/suites/certification/Test_TC_I_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_I_2_2.yaml @@ -33,7 +33,7 @@ tests: value: nodeId - label: - "TH sends Identify command to DUT, with the identify time field set to + "TH sends Identify command to DUT, with the IdentifyTime field set to 0x003c (60s)." PICS: I.S.C00.Rsp command: "Identify" @@ -45,7 +45,7 @@ tests: - label: "TH reads immediately IdentifyTime attribute from DUT" PICS: I.S.A0000 command: "readAttribute" - attribute: "identify time" + attribute: "IdentifyTime" response: constraints: minValue: 51 @@ -62,7 +62,7 @@ tests: - label: "After 10 seconds, the TH reads IdentifyTime attribute from DUT" PICS: I.S.A0000 command: "readAttribute" - attribute: "identify time" + attribute: "IdentifyTime" response: constraints: minValue: 42 @@ -85,7 +85,7 @@ tests: value: "y" - label: - "TH sends Identify command to DUT, with the identify time field set to + "TH sends Identify command to DUT, with the IdentifyTime field set to 0x0000 (stop identifying)." PICS: I.S.C00.Rsp command: "Identify" @@ -97,7 +97,7 @@ tests: - label: "TH reads immediately IdentifyTime attribute from DUT" PICS: I.S.A0000 command: "readAttribute" - attribute: "identify time" + attribute: "IdentifyTime" response: value: 0 @@ -119,7 +119,7 @@ tests: "TH writes a value of 0x000f (15s) to IdentifyTime attribute of DUT" PICS: I.S.A0000 command: "writeAttribute" - attribute: "identify time" + attribute: "IdentifyTime" arguments: value: 15 @@ -134,7 +134,7 @@ tests: - label: "After 5 seconds, the TH reads IdentifyTime attribute from DUT" PICS: I.S.A0000 command: "readAttribute" - attribute: "identify time" + attribute: "IdentifyTime" response: constraints: minValue: 5 diff --git a/src/app/tests/suites/certification/Test_TC_I_3_1_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_I_3_1_Simulated.yaml index 3c3b4ea6afa18d..4d59f817ed2776 100644 --- a/src/app/tests/suites/certification/Test_TC_I_3_1_Simulated.yaml +++ b/src/app/tests/suites/certification/Test_TC_I_3_1_Simulated.yaml @@ -24,20 +24,20 @@ tests: cluster: "DelayCommands" command: "WaitForCommissioning" - - label: "Read attribute: identify time" + - label: "Read attribute: IdentifyTime" wait: "readAttribute" - attribute: "identify time" + attribute: "IdentifyTime" - - label: "write attribute: identify time" + - label: "write attribute: IdentifyTime" wait: "writeAttribute" - attribute: "identify time" + attribute: "IdentifyTime" arguments: value: - - label: "Readback attribute: identify time" + - label: "Readback attribute: IdentifyTime" wait: "readAttribute" - attribute: "identify time" + attribute: "IdentifyTime" - label: "Read attribute: identifytype" wait: "readAttribute" - attribute: "identify type" + attribute: "IdentifyType" diff --git a/src/app/tests/suites/certification/Test_TC_SC_5_2.yaml b/src/app/tests/suites/certification/Test_TC_SC_5_2.yaml index bae5304f8095b1..ee739c3e61facd 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_5_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_5_2.yaml @@ -55,8 +55,8 @@ tests: verification: | ./chip-tool identify read identify-time 1 1 - Verify identify time ,on the TH Log: + Verify IdentifyTime ,on the TH Log: [1657785288.647504][1624:1629] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 1130139861 - [1657785288.647621][1624:1629] CHIP:TOO: identify time: 106 + [1657785288.647621][1624:1629] CHIP:TOO: IdentifyTime: 106 disabled: true diff --git a/src/app/zap-templates/zcl/data-model/chip/identify-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/identify-cluster.xml index 8a24bd7c617811..f2b4ab7728197d 100644 --- a/src/app/zap-templates/zcl/data-model/chip/identify-cluster.xml +++ b/src/app/zap-templates/zcl/data-model/chip/identify-cluster.xml @@ -51,21 +51,21 @@ limitations under the License. true true - identify time - identify type + IdentifyTime + IdentifyType Command description for Identify - + Command description for TriggerEffect - - + + diff --git a/src/controller/data_model/controller-clusters.zap b/src/controller/data_model/controller-clusters.zap index 6a6e911c88ce24..ae5582ba161bfa 100644 --- a/src/controller/data_model/controller-clusters.zap +++ b/src/controller/data_model/controller-clusters.zap @@ -91,7 +91,7 @@ "enabled": 0, "attributes": [ { - "name": "identify time", + "name": "IdentifyTime", "code": 0, "mfgCode": null, "side": "server", @@ -107,7 +107,7 @@ "reportableChange": 0 }, { - "name": "identify type", + "name": "IdentifyType", "code": 1, "mfgCode": null, "side": "server", diff --git a/src/platform/silabs/BLEManagerImpl.h b/src/platform/silabs/BLEManagerImpl.h index e0a04e5f356e7e..347f8e722ecc7f 100644 --- a/src/platform/silabs/BLEManagerImpl.h +++ b/src/platform/silabs/BLEManagerImpl.h @@ -66,6 +66,7 @@ class BLEManagerImpl final : public BLEManager, private BleLayer, private BlePla void HandleTxConfirmationEvent(BLE_CONNECTION_OBJECT conId); void HandleTXCharCCCDWrite(rsi_ble_event_write_t * evt); void HandleSoftTimerEvent(void); + CHIP_ERROR StartAdvertising(void); #else void HandleConnectEvent(volatile sl_bt_msg_t * evt); void HandleConnectionCloseEvent(volatile sl_bt_msg_t * evt); @@ -74,7 +75,7 @@ class BLEManagerImpl final : public BLEManager, private BleLayer, private BlePla void HandleTxConfirmationEvent(BLE_CONNECTION_OBJECT conId); void HandleTXCharCCCDWrite(volatile sl_bt_msg_t * evt); void HandleSoftTimerEvent(volatile sl_bt_msg_t * evt); - + CHIP_ERROR StartAdvertising(void); #endif // RS91X_BLE_ENABLE #if CHIP_ENABLE_ADDITIONAL_DATA_ADVERTISING @@ -180,7 +181,6 @@ class BLEManagerImpl final : public BLEManager, private BleLayer, private BlePla CHIP_ERROR MapBLEError(int bleErr); void DriveBLEState(void); CHIP_ERROR ConfigureAdvertisingData(void); - CHIP_ERROR StartAdvertising(void); CHIP_ERROR StopAdvertising(void); #if CHIP_ENABLE_ADDITIONAL_DATA_ADVERTISING CHIP_ERROR EncodeAdditionalDataTlv(); diff --git a/src/platform/silabs/SiWx917/BLEManagerImpl.cpp b/src/platform/silabs/SiWx917/BLEManagerImpl.cpp index 6563f4b5b2e790..c2b6c7a2f1769b 100644 --- a/src/platform/silabs/SiWx917/BLEManagerImpl.cpp +++ b/src/platform/silabs/SiWx917/BLEManagerImpl.cpp @@ -58,21 +58,52 @@ extern uint16_t rsi_ble_measurement_hndl; extern rsi_ble_event_conn_status_t conn_event_to_app; extern sl_wfx_msg_t event_msg; -// StaticTask_t busInitTaskStruct; +StaticTask_t rsiBLETaskStruct; +rsi_semaphore_handle_t sl_ble_init_sem; +rsi_semaphore_handle_t sl_ble_event_sem; /* wfxRsi Task will use as its stack */ -// StackType_t wfxRsiInitTaskStack[WFX_RSI_TASK_SZ] = { 0 }; +StackType_t wfxBLETaskStack[WFX_RSI_TASK_SZ] = { 0 }; using namespace ::chip; using namespace ::chip::Ble; -void rsi_ble_event_handling_task(void) +void sl_ble_init() { - int32_t event_id; + WFX_RSI_LOG("%s starting", __func__); + + // registering the GAP callback functions + rsi_ble_gap_register_callbacks(NULL, NULL, rsi_ble_on_disconnect_event, NULL, NULL, NULL, rsi_ble_on_enhance_conn_status_event, + NULL, NULL, NULL); + + // registering the GATT call back functions + rsi_ble_gatt_register_callbacks(NULL, NULL, NULL, NULL, NULL, NULL, NULL, rsi_ble_on_gatt_write_event, NULL, NULL, NULL, + rsi_ble_on_mtu_event, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + rsi_ble_on_event_indication_confirmation, NULL); + rsi_semaphore_create(&sl_ble_event_sem, 0); + WFX_RSI_LOG("registering rsi_ble_add_service"); + + // Exchange of GATT info with BLE stack + rsi_ble_add_matter_service(); + + // initializing the application events map + rsi_ble_app_init_events(); - // int32_t event_id; WFX_RSI_LOG("StartAdvertising"); - // chip::DeviceLayer::Internal::BLEManagerImpl().StartAdvertising(); //TODO:: Called on after init of module + chip::DeviceLayer::Internal::BLEManagerImpl().StartAdvertising(); // TODO:: Called on after init of module + WFX_RSI_LOG("%s Ended", __func__); +} + +void sl_ble_event_handling_task(void) +{ + int32_t event_id; + + WFX_RSI_LOG("%s starting", __func__); + rsi_semaphore_create(&sl_ble_init_sem, 0); + //! This semaphore is waiting for wifi module initialization. + rsi_semaphore_wait(&sl_ble_init_sem, 0); + + sl_ble_init(); // Application event map while (1) @@ -81,6 +112,7 @@ void rsi_ble_event_handling_task(void) event_id = rsi_ble_app_get_event(); if (event_id == -1) { + rsi_semaphore_wait(&sl_ble_event_sem, 0); continue; } switch (event_id) @@ -88,12 +120,12 @@ void rsi_ble_event_handling_task(void) case RSI_BLE_CONN_EVENT: { rsi_ble_app_clear_event(RSI_BLE_CONN_EVENT); chip::DeviceLayer::Internal::BLEMgrImpl().HandleConnectEvent(); - WFX_RSI_LOG(" RSI_BLE : Module got connected"); + WFX_RSI_LOG("%s Module got connected", __func__); } break; case RSI_BLE_DISCONN_EVENT: { // event invokes when disconnection was completed - WFX_RSI_LOG(" RSI_BLE : Module got Disconnected"); + WFX_RSI_LOG("%s Module got Disconnected", __func__); chip::DeviceLayer::Internal::BLEMgrImpl().HandleConnectionCloseEvent(event_msg.reason); // clear the served event rsi_ble_app_clear_event(RSI_BLE_DISCONN_EVENT); @@ -101,7 +133,7 @@ void rsi_ble_event_handling_task(void) break; case RSI_BLE_MTU_EVENT: { // event invokes when write/notification events received - WFX_RSI_LOG("RSI_BLE:: RSI_BLE_MTU_EVENT"); + WFX_RSI_LOG("%s RSI_BLE_MTU_EVENT", __func__); chip::DeviceLayer::Internal::BLEMgrImpl().UpdateMtu(event_msg.rsi_ble_mtu); // clear the served event rsi_ble_app_clear_event(RSI_BLE_MTU_EVENT); @@ -109,14 +141,14 @@ void rsi_ble_event_handling_task(void) break; case RSI_BLE_GATT_WRITE_EVENT: { // event invokes when write/notification events received - WFX_RSI_LOG("RSI_BLE : RSI_BLE_GATT_WRITE_EVENT"); + WFX_RSI_LOG("%s RSI_BLE_GATT_WRITE_EVENT", __func__); chip::DeviceLayer::Internal::BLEMgrImpl().HandleWriteEvent(event_msg.rsi_ble_write); // clear the served event rsi_ble_app_clear_event(RSI_BLE_GATT_WRITE_EVENT); } break; case RSI_BLE_GATT_INDICATION_CONFIRMATION: { - WFX_RSI_LOG("RSI_BLE : indication confirmation"); + WFX_RSI_LOG("%s indication confirmation", __func__); chip::DeviceLayer::Internal::BLEMgrImpl().HandleTxConfirmationEvent(1); rsi_ble_app_clear_event(RSI_BLE_GATT_INDICATION_CONFIRMATION); } @@ -130,7 +162,7 @@ void rsi_ble_event_handling_task(void) } } - WFX_RSI_LOG("%s END", __func__); + WFX_RSI_LOG("%s Ended", __func__); } namespace chip { @@ -198,21 +230,18 @@ CHIP_ERROR BLEManagerImpl::_Init() CHIP_ERROR err; ChipLogProgress(DeviceLayer, "%s Start ", __func__); - // wfx_rsi.init_task = xTaskCreateStatic((TaskFunction_t) wfx_sl_module_init, "init_task", WFX_RSI_TASK_SZ, NULL, 1, - // wfxRsiInitTaskStack, &busInitTaskStruct); + wfx_rsi.ble_task = xTaskCreateStatic((TaskFunction_t) sl_ble_event_handling_task, "rsi_ble", WFX_RSI_TASK_SZ, NULL, 1, + wfxBLETaskStack, &rsiBLETaskStruct); - if (NULL == wfx_rsi.init_task) + if (wfx_rsi.ble_task == NULL) { - WFX_RSI_LOG("%s: error: failed to create task.", __func__); + WFX_RSI_LOG("%s: error: failed to create ble task.", __func__); } // Initialize the CHIP BleLayer. err = BleLayer::Init(this, this, &DeviceLayer::SystemLayer()); SuccessOrExit(err); - return err; - - ble_rsi_task(); memset(mBleConnections, 0, sizeof(mBleConnections)); memset(mIndConfId, kUnusedIndex, sizeof(mIndConfId)); mServiceMode = ConnectivityManager::kCHIPoBLEServiceMode_Enabled; @@ -295,7 +324,6 @@ CHIP_ERROR BLEManagerImpl::_GetDeviceName(char * buf, size_t bufSize) CHIP_ERROR BLEManagerImpl::_SetDeviceName(const char * deviceName) { ChipLogProgress(DeviceLayer, "_SetDeviceName Started"); - rsi_bt_set_local_name((uint8_t *) RSI_BLE_DEV_NAME); if (mServiceMode == ConnectivityManager::kCHIPoBLEServiceMode_NotSupported) { ChipLogProgress(DeviceLayer, "_SetDeviceName CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE"); @@ -382,13 +410,9 @@ bool BLEManagerImpl::UnsubscribeCharacteristic(BLE_CONNECTION_OBJECT conId, cons bool BLEManagerImpl::CloseConnection(BLE_CONNECTION_OBJECT conId) { CHIP_ERROR err = CHIP_NO_ERROR; - // int32_t ret; ChipLogProgress(DeviceLayer, "Closing BLE GATT connection (con %u)", conId); - // ret = rsi_ble_disconnect(1); - // err = MapBLEError(ret); - if (err != CHIP_NO_ERROR) { ChipLogError(DeviceLayer, "sl_bt_connection_close() failed: %s", ErrorStr(err)); @@ -413,6 +437,7 @@ bool BLEManagerImpl::SendIndication(BLE_CONNECTION_OBJECT conId, const ChipBleUU if (status != RSI_SUCCESS) { WFX_RSI_LOG("indication %d failed with error code %lx ", status); + return false; } return true; @@ -515,7 +540,6 @@ CHIP_ERROR BLEManagerImpl::ConfigureAdvertisingData(void) uint32_t index = 0; uint32_t mDeviceNameLength = 0; uint8_t mDeviceIdInfoLength = 0; - err = ConfigurationMgr().GetBLEDeviceIdentificationInfo(mDeviceIdInfo); ChipLogProgress(DeviceLayer, "ConfigureAdvertisingData start"); @@ -524,6 +548,7 @@ CHIP_ERROR BLEManagerImpl::ConfigureAdvertisingData(void) memset(responseData, 0, MAX_RESPONSE_DATA_LEN); memset(advData, 0, MAX_ADV_DATA_LEN); + err = ConfigurationMgr().GetBLEDeviceIdentificationInfo(mDeviceIdInfo); SuccessOrExit(err); if (!mFlags.Has(Flags::kDeviceNameSet)) @@ -555,22 +580,8 @@ CHIP_ERROR BLEManagerImpl::ConfigureAdvertisingData(void) advData[index++] = ShortUUID_CHIPoBLEService[0]; // AD value advData[index++] = ShortUUID_CHIPoBLEService[1]; - // TODO:: replace the hardcoded values by calling the GetBLEDeviceIdentificationInfo - advData[index++] = 0; // OpCode - advData[index++] = 0; // DeviceDiscriminatorAndAdvVersion [] - advData[index++] = 15; // DeviceDiscriminatorAndAdvVersion [] - advData[index++] = 241; // DeviceVendorId [] - advData[index++] = 255; // DeviceVendorId [] - advData[index++] = 5; // DeviceProductId[] - advData[index++] = 128; // DeviceProductId[] - advData[index++] = 0; // AdditionalDataFlag - - //! prepare advertise data //local/device name - advData[index++] = strlen(RSI_BLE_DEV_NAME) + 1; - advData[index++] = 9; - - memcpy(&advData[index], RSI_BLE_DEV_NAME, strlen(RSI_BLE_DEV_NAME)); // AD value - index += strlen(RSI_BLE_DEV_NAME); + memcpy(&advData[index], (void *) &mDeviceIdInfo, mDeviceIdInfoLength); // AD value + index += mDeviceIdInfoLength; #if CHIP_ENABLE_ADDITIONAL_DATA_ADVERTISING ReturnErrorOnFailure(EncodeAdditionalDataTlv()); @@ -612,10 +623,6 @@ CHIP_ERROR BLEManagerImpl::StartAdvertising(void) ChipLogDetail(DeviceLayer, "Start BLE advertissement"); } - // bd_addr unusedBdAddr; // We can ignore this field when setting random address. - - // (void) unusedBdAddr; - err = ConfigureAdvertisingData(); SuccessOrExit(err); @@ -656,13 +663,7 @@ CHIP_ERROR BLEManagerImpl::StopAdvertising(void) { mFlags.Clear(Flags::kAdvertising).Clear(Flags::kRestartAdvertising); mFlags.Set(Flags::kFastAdvertisingEnabled, true); - - // ret = sl_bt_advertiser_stop(advertising_set_handle); - // sl_bt_advertiser_delete_set(advertising_set_handle); advertising_set_handle = 0xff; - // err = MapBLEError(ret); - // SuccessOrExit(err); - CancelBleAdvTimeoutTimer(); } @@ -720,19 +721,19 @@ void BLEManagerImpl::HandleConnectionCloseEvent(uint16_t reason) event.Type = DeviceEventType::kCHIPoBLEConnectionError; event.CHIPoBLEConnectionError.ConId = connHandle; - // switch (reason) - // { - // - // case RSI_REMOTE_DEV_TERMINATE_CONN: - // case RSI_BT_CTRL_REMOTE_DEVICE_TERMINATED_CONNECTION_DUE_TO_LOW_RESOURCES: - // case RSI_BT_CTRL_REMOTE_POWERING_OFF: - // event.CHIPoBLEConnectionError.Reason = BLE_ERROR_REMOTE_DEVICE_DISCONNECTED; - // break; - // default: - // event.CHIPoBLEConnectionError.Reason = BLE_ERROR_CHIPOBLE_PROTOCOL_ABORT; - // } + switch (reason) + { - // ChipLogProgress(DeviceLayer, "BLE GATT connection closed (con %u, reason %u)", connHandle, conn_evt->reason); + case RSI_BT_CTRL_REMOTE_USER_TERMINATED: + case RSI_BT_CTRL_REMOTE_DEVICE_TERMINATED_CONNECTION_DUE_TO_LOW_RESOURCES: + case RSI_BT_CTRL_REMOTE_POWERING_OFF: + event.CHIPoBLEConnectionError.Reason = BLE_ERROR_REMOTE_DEVICE_DISCONNECTED; + break; + default: + event.CHIPoBLEConnectionError.Reason = BLE_ERROR_CHIPOBLE_PROTOCOL_ABORT; + } + + ChipLogProgress(DeviceLayer, "BLE GATT connection closed (con %u, reason %x)", connHandle, reason); PlatformMgr().PostEventOrDie(&event); @@ -748,9 +749,9 @@ void BLEManagerImpl::HandleWriteEvent(rsi_ble_event_write_t evt) { // RSI_BLE_WRITE_REQUEST_EVENT ChipLogProgress(DeviceLayer, "Char Write Req, packet type %d", evt.pkt_type); - uint8_t attribute = (uint8_t) event_msg.rsi_ble_measurement_hndl; + // uint8_t attribute = (uint8_t) event_msg.rsi_ble_measurement_hndl; - WFX_RSI_LOG("attribute = %d,rsi_ble_measurement_hndl = %d", attribute, event_msg.rsi_ble_measurement_hndl); + WFX_RSI_LOG("event_msg.rsi_ble_gatt_server_client_config_hndl = %d", event_msg.rsi_ble_gatt_server_client_config_hndl); if (evt.handle[0] == (uint8_t) event_msg.rsi_ble_gatt_server_client_config_hndl) // TODO:: compare the handle exactly { @@ -763,13 +764,34 @@ void BLEManagerImpl::HandleWriteEvent(rsi_ble_event_write_t evt) } } +// TODO:: Need to implement this void BLEManagerImpl::HandleTXCharCCCDWrite(rsi_ble_event_write_t * evt) { - CHIP_ERROR err = CHIP_NO_ERROR; + CHIP_ERROR err = CHIP_NO_ERROR; + bool isIndicationEnabled = false; ChipDeviceEvent event; - // whether the client is enabling or disabling indications. + + // Determine if the client is enabling or disabling notification/indication. + if (evt->att_value[0] != 0) + { + isIndicationEnabled = true; + } + ChipLogProgress(DeviceLayer, "HandleTXcharCCCDWrite - Config Flags value : %d", evt->att_value[0]); + ChipLogProgress(DeviceLayer, "CHIPoBLE %s received", isIndicationEnabled ? "subscribe" : "unsubscribe"); + + if (isIndicationEnabled) + { + // 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. + { + event.Type = DeviceEventType::kCHIPoBLESubscribe; + event.CHIPoBLESubscribe.ConId = 1; + err = PlatformMgr().PostEvent(&event); + } + } + else { - event.Type = DeviceEventType::kCHIPoBLESubscribe; + event.Type = DeviceEventType::kCHIPoBLEUnsubscribe; event.CHIPoBLESubscribe.ConId = 1; err = PlatformMgr().PostEvent(&event); } @@ -783,11 +805,6 @@ void BLEManagerImpl::HandleRXCharWrite(rsi_ble_event_write_t * evt) uint16_t writeLen = evt->length; uint8_t * data = (uint8_t *) evt->att_value; - for (int i = 0; i < evt->length; i++) - { - ChipLogDetail(DeviceLayer, "HandleRXCharWrite value : %d", evt->att_value[i]); - } - // Copy the data to a packet buffer. buf = System::PacketBufferHandle::NewWithData(data, writeLen, 0, 0); VerifyOrExit(!buf.IsNull(), err = CHIP_ERROR_NO_MEMORY); @@ -813,17 +830,6 @@ void BLEManagerImpl::HandleRXCharWrite(rsi_ble_event_write_t * evt) void BLEManagerImpl::HandleTxConfirmationEvent(BLE_CONNECTION_OBJECT conId) { ChipDeviceEvent event; - // uint8_t timerHandle = sInstance.GetTimerHandle(conId, false); - // - // ChipLogProgress(DeviceLayer, "Tx Confirmation received"); - // - // // stop indication confirmation timer // TODO:: Need to find the proper repleacement - // if (timerHandle < kMaxConnections) - // { - // ChipLogProgress(DeviceLayer, " stop soft timer"); - // // sl_bt_system_set_lazy_soft_timer(0, 0, timerHandle, false); - // } - event.Type = DeviceEventType::kCHIPoBLEIndicateConfirm; event.CHIPoBLEIndicateConfirm.ConId = conId; PlatformMgr().PostEventOrDie(&event); @@ -832,19 +838,7 @@ void BLEManagerImpl::HandleTxConfirmationEvent(BLE_CONNECTION_OBJECT conId) // TODO:: Need to Implement void BLEManagerImpl::HandleSoftTimerEvent(void) { - - // BLE Manager starts soft timers with timer handles less than kMaxConnections - // If we receive a callback for unknown timer handle ignore this. - // if (evt->data.evt_system_soft_timer.handle < kMaxConnections) - // { - // ChipLogProgress(DeviceLayer, "BLEManagerImpl::HandleSoftTimerEvent CHIPOBLE_PROTOCOL_ABORT"); - // ChipDeviceEvent event; - // event.Type = DeviceEventType::kCHIPoBLEConnectionError; - // event.CHIPoBLEConnectionError.ConId = mIndConfId[evt->data.evt_system_soft_timer.handle]; - // sInstance.mIndConfId[evt->data.evt_system_soft_timer.handle] = kUnusedIndex; - // event.CHIPoBLEConnectionError.Reason = BLE_ERROR_CHIPOBLE_PROTOCOL_ABORT; - // PlatformMgr().PostEventOrDie(&event); - // } + // TODO:: Need to Implement } bool BLEManagerImpl::RemoveConnection(uint8_t connectionHandle) @@ -941,12 +935,6 @@ CHIP_ERROR BLEManagerImpl::EncodeAdditionalDataTlv() // TODO:: Need the void BLEManagerImpl::HandleC3ReadRequest(void) { - // sl_bt_evt_gatt_server_user_read_request_t * readReq = - // (sl_bt_evt_gatt_server_user_read_request_t *) &(evt->data.evt_gatt_server_user_read_request); - // ChipLogDetail(DeviceLayer, "Read request received for CHIPoBLEChar_C3 - opcode:%d", readReq->att_opcode); - // sl_status_t ret = sl_bt_gatt_server_send_user_read_response(readReq->connection, readReq->characteristic, 0, - // sInstance.c3AdditionalDataBufferHandle->DataLength(), - // sInstance.c3AdditionalDataBufferHandle->Start(), nullptr); // if (ret != SL_STATUS_OK) // { diff --git a/src/platform/silabs/SiWx917/bluetooth/wfx_sl_ble_init.c b/src/platform/silabs/SiWx917/bluetooth/wfx_sl_ble_init.c index 115e5c16ffdcec..27f29d00b63791 100644 --- a/src/platform/silabs/SiWx917/bluetooth/wfx_sl_ble_init.c +++ b/src/platform/silabs/SiWx917/bluetooth/wfx_sl_ble_init.c @@ -36,128 +36,12 @@ rsi_ble_event_conn_status_t conn_event_to_app; rsi_ble_t att_list; sl_wfx_msg_t event_msg; +extern rsi_semaphore_handle_t sl_ble_event_sem; // Memory to initialize driver uint8_t bt_global_buf[BT_GLOBAL_BUFF_LEN]; -static uint8_t wfx_rsi_drv_buf[WFX_RSI_BUF_SZ]; const uint8_t ShortUUID_CHIPoBLEService[] = { 0xF6, 0xFF }; -/* Rsi driver Task will use as its stack */ -// StackType_t driverRsiTaskStack[WFX_RSI_WLAN_TASK_SZ] = { 0 }; - -/* Structure that will hold the TCB of the wfxRsi Task being created. */ -// StaticTask_t driverRsiTaskBuffer; - -StaticTask_t rsiBLETaskStruct; - -/* wfxRsi Task will use as its stack */ -StackType_t wfxBLETaskStack[WFX_RSI_TASK_SZ] = { 0 }; - -int32_t ble_rsi_task(void) -{ - int32_t status; - uint8_t buf[RSI_RESPONSE_HOLD_BUFF_SIZE]; - // extern void rsi_hal_board_init(void); - // - // WFX_RSI_LOG("%s: starting(HEAP_SZ = %d)", __func__, SL_HEAP_SIZE); - // - // //! Driver initialization - // status = rsi_driver_init(wfx_rsi_drv_buf, WFX_RSI_BUF_SZ); - // if ((status < RSI_DRIVER_STATUS) || (status > WFX_RSI_BUF_SZ)) - // { - // WFX_RSI_LOG("%s: error: RSI Driver initialization failed with status: %02x", __func__, status); - // return status; - // } - // - // WFX_RSI_LOG("%s: rsi_device_init", __func__); - // - // /* ! Redpine module intialisation */ - // if ((status = rsi_device_init(LOAD_NWP_FW)) != RSI_SUCCESS) - // { - // WFX_RSI_LOG("%s: error: rsi_device_init failed with status: %02x", __func__, status); - // return status; - // } - // WFX_RSI_LOG("%s: start wireless drv task", __func__); - // - // /* - // * Create the driver task - // */ - // wfx_rsi.drv_task = xTaskCreateStatic((TaskFunction_t) rsi_wireless_driver_task, "rsi_drv", WFX_RSI_WLAN_TASK_SZ, NULL, - // 1, driverRsiTaskStack, &driverRsiTaskBuffer); - // if (NULL == wfx_rsi.drv_task) - // { - // WFX_RSI_LOG("%s: error: Create the driver task failed", __func__); - // return RSI_ERROR_INVALID_PARAM; - // } - // - // /* Initialize WiSeConnect or Module features. */ - // WFX_RSI_LOG("%s: rsi_wireless_init", __func__); - // if ((status = rsi_wireless_init(OPER_MODE_0, RSI_OPERMODE_WLAN_BLE)) != RSI_SUCCESS) - // { - // WFX_RSI_LOG("%s: error: Initialize WiSeConnect failed with status: %02x", __func__, status); - // return status; - // } - // - // WFX_RSI_LOG("%s: get FW version..", __func__); - // - // /* - // * Get the MAC and other info to let the user know about it. - // */ - // if (rsi_wlan_get(RSI_FW_VERSION, buf, sizeof(buf)) != RSI_SUCCESS) - // { - // WFX_RSI_LOG("%s: error: rsi_wlan_get(RSI_FW_VERSION) failed with status: %02x", __func__, status); - // return status; - // } - // - // buf[sizeof(buf) - 1] = 0; - // WFX_RSI_LOG("%s: RSI firmware version: %s", __func__, buf); - // //! Send feature frame - // if ((status = rsi_send_feature_frame()) != RSI_SUCCESS) - // { - // WFX_RSI_LOG("%s: error: rsi_send_feature_frame failed with status: %02x", __func__, status); - // return status; - // } - // - // WFX_RSI_LOG("%s: sent rsi_send_feature_frame", __func__); - // /* initializes wlan radio parameters and WLAN supplicant parameters. - // */ - // (void) rsi_wlan_radio_init(); /* Required so we can get MAC address */ - // if ((status = rsi_wlan_get(RSI_MAC_ADDRESS, &wfx_rsi.sta_mac.octet[0], RESP_BUFF_SIZE)) != RSI_SUCCESS) - // { - // WFX_RSI_LOG("%s: error: rsi_wlan_get failed with status: %02x", __func__, status); - // return status; - // } - - // registering the GAP callback functions - rsi_ble_gap_register_callbacks(NULL, NULL, rsi_ble_on_disconnect_event, NULL, NULL, NULL, rsi_ble_on_enhance_conn_status_event, - NULL, NULL, NULL); - - // registering the GATT call back functions - rsi_ble_gatt_register_callbacks(NULL, NULL, NULL, NULL, NULL, NULL, NULL, rsi_ble_on_gatt_write_event, NULL, NULL, NULL, - rsi_ble_on_mtu_event, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - rsi_ble_on_event_indication_confirmation, NULL); - - WFX_RSI_LOG("registering rsi_ble_add_service"); - - // Exchange of GATT info with BLE stack - rsi_ble_add_matter_service(); - - // initializing the application events map - rsi_ble_app_init_events(); - - wfx_rsi.ble_task = xTaskCreateStatic((TaskFunction_t) rsi_ble_event_handling_task, "rsi_ble", WFX_RSI_TASK_SZ, NULL, 2, - wfxBLETaskStack, &rsiBLETaskStruct); - WFX_RSI_LOG("%s: rsi_task_suspend init_task ", __func__); - if (wfx_rsi.ble_task == NULL) - { - WFX_RSI_LOG("%s: error: failed to create ble task.", __func__); - } - - WFX_RSI_LOG("%s complete", __func__); - // rsi_task_destroy((rsi_task_handle_t *)wfx_rsi.init_task); - return RSI_SUCCESS; -} - /*==============================================*/ /** * @fn rsi_ble_app_init_events @@ -169,10 +53,10 @@ int32_t ble_rsi_task(void) */ void rsi_ble_app_init_events() { + WFX_RSI_LOG("%s: starting", __func__); event_msg.ble_app_event_map = 0; event_msg.ble_app_event_mask = 0xFFFFFFFF; event_msg.ble_app_event_mask = event_msg.ble_app_event_mask; // To suppress warning while compiling - WFX_RSI_LOG("Function :: rsi_ble_app_init_events"); return; } @@ -187,6 +71,7 @@ void rsi_ble_app_init_events() */ void rsi_ble_app_clear_event(uint32_t event_num) { + WFX_RSI_LOG("%s: starting", __func__); event_msg.event_num = event_num; event_msg.ble_app_event_map &= ~BIT(event_num); return; @@ -203,8 +88,7 @@ void rsi_ble_app_clear_event(uint32_t event_num) */ void rsi_ble_on_mtu_event(rsi_ble_event_mtu_t * rsi_ble_mtu) { - WFX_RSI_LOG(" RSI_BLE : rsi_ble_on_mtu_event"); - memset(&event_msg.rsi_ble_mtu, 0, sizeof(rsi_ble_event_mtu_t)); + WFX_RSI_LOG("%s: starting", __func__); memcpy(&event_msg.rsi_ble_mtu, rsi_ble_mtu, sizeof(rsi_ble_event_mtu_t)); rsi_ble_app_set_event(RSI_BLE_MTU_EVENT); } @@ -221,8 +105,7 @@ void rsi_ble_on_mtu_event(rsi_ble_event_mtu_t * rsi_ble_mtu) */ void rsi_ble_on_gatt_write_event(uint16_t event_id, rsi_ble_event_write_t * rsi_ble_write) { - WFX_RSI_LOG(" RSI_BLE : rsi_ble_on_gatt_write_event"); - memset(&event_msg.rsi_ble_write, 0, sizeof(rsi_ble_event_write_t)); + WFX_RSI_LOG("%s: starting", __func__); event_msg.event_id = event_id; memcpy(&event_msg.rsi_ble_write, rsi_ble_write, sizeof(rsi_ble_event_write_t)); rsi_ble_app_set_event(RSI_BLE_GATT_WRITE_EVENT); @@ -239,7 +122,7 @@ void rsi_ble_on_gatt_write_event(uint16_t event_id, rsi_ble_event_write_t * rsi_ */ void rsi_ble_on_enhance_conn_status_event(rsi_ble_event_enhance_conn_status_t * resp_enh_conn) { - WFX_RSI_LOG(" RSI_BLE : rsi_ble_on_enhance_conn_status_event"); + WFX_RSI_LOG("%s: starting", __func__); event_msg.connectionHandle = 1; event_msg.bondingHandle = 255; memcpy(event_msg.resp_enh_conn.dev_addr, resp_enh_conn->dev_addr, RSI_DEV_ADDR_LEN); @@ -258,7 +141,7 @@ void rsi_ble_on_enhance_conn_status_event(rsi_ble_event_enhance_conn_status_t * */ void rsi_ble_on_disconnect_event(rsi_ble_event_disconnect_t * resp_disconnect, uint16_t reason) { - WFX_RSI_LOG(" RSI_BLE : rsi_ble_on_disconnect_event"); + WFX_RSI_LOG("%s: starting", __func__); event_msg.reason = reason; memcpy(event_msg.resp_disconnect, resp_disconnect, sizeof(rsi_ble_event_disconnect_t)); rsi_ble_app_set_event(RSI_BLE_DISCONN_EVENT); @@ -275,7 +158,7 @@ void rsi_ble_on_disconnect_event(rsi_ble_event_disconnect_t * resp_disconnect, u */ void rsi_ble_on_event_indication_confirmation(uint16_t resp_status, rsi_ble_set_att_resp_t * rsi_ble_event_set_att_rsp) { - WFX_RSI_LOG(" RSI_BLE : rsi_ble_on_event_indication_confirmation"); + WFX_RSI_LOG("%s: starting", __func__); event_msg.resp_status = resp_status; memcpy(&event_msg.rsi_ble_event_set_att_rsp, rsi_ble_event_set_att_rsp, sizeof(rsi_ble_set_att_resp_t)); rsi_ble_app_set_event(RSI_BLE_GATT_INDICATION_CONFIRMATION); @@ -318,7 +201,9 @@ int32_t rsi_ble_app_get_event(void) */ void rsi_ble_app_set_event(uint32_t event_num) { + WFX_RSI_LOG("%s: starting", __func__); event_msg.ble_app_event_map |= BIT(event_num); + rsi_semaphore_post(&sl_ble_event_sem); return; } diff --git a/src/platform/silabs/SiWx917/bluetooth/wfx_sl_ble_init.h b/src/platform/silabs/SiWx917/bluetooth/wfx_sl_ble_init.h index 497d2b5ee33bfe..e52e1553de540d 100644 --- a/src/platform/silabs/SiWx917/bluetooth/wfx_sl_ble_init.h +++ b/src/platform/silabs/SiWx917/bluetooth/wfx_sl_ble_init.h @@ -53,8 +53,36 @@ #include "rsi_board.h" #endif +typedef struct sl_wfx_msg_s +{ + uint8_t connectionHandle; + uint8_t bondingHandle; + uint32_t event_num; + uint16_t reason; + uint16_t event_id; + uint16_t resp_status; + rsi_ble_event_mtu_t rsi_ble_mtu; + rsi_ble_event_write_t rsi_ble_write; + rsi_ble_event_enhance_conn_status_t resp_enh_conn; + rsi_ble_event_disconnect_t * resp_disconnect; + rsi_ble_set_att_resp_t rsi_ble_event_set_att_rsp; + uint32_t ble_app_event_map; + uint32_t ble_app_event_mask; + uint16_t rsi_ble_measurement_hndl; + uint16_t rsi_ble_gatt_server_client_config_hndl; + uint16_t subscribed; + +} sl_wfx_msg_t; + #define ATT_REC_IN_HOST 0 +#define RSI_BT_CTRL_REMOTE_USER_TERMINATED 0x4E13 +#define RSI_BT_CTRL_REMOTE_DEVICE_TERMINATED_CONNECTION_DUE_TO_LOW_RESOURCES 0x4E14 +#define RSI_BT_CTRL_REMOTE_POWERING_OFF 0x4E15 +#define RSI_BT_CTRL_TERMINATED_MIC_FAILURE 0x4E3D +#define RSI_BT_FAILED_TO_ESTABLISH_CONN 0x4E3E +#define RSI_BT_INVALID_RANGE 0x4E60 + #define RSI_BLE_MATTER_CUSTOM_SERVICE_UUID 0 #define RSI_BLE_MATTER_CUSTOM_SERVICE_SIZE 2 #define RSI_BLE_MATTER_CUSTOM_SERVICE_VALUE_16 0xFFF6 @@ -79,26 +107,7 @@ #define RSI_BLE_CHARACTERISTIC_TX_MEASUREMENT_HANDLE_LOCATION 4 #define RSI_BLE_CHARACTERISTIC_TX_GATT_SERVER_CLIENT_HANDLE_LOCATION 5 -typedef struct sl_wfx_msg_s -{ - uint8_t connectionHandle; - uint8_t bondingHandle; - uint32_t event_num; - uint16_t reason; - uint16_t event_id; - uint16_t resp_status; - rsi_ble_event_mtu_t rsi_ble_mtu; - rsi_ble_event_write_t rsi_ble_write; - rsi_ble_event_enhance_conn_status_t resp_enh_conn; - rsi_ble_event_disconnect_t * resp_disconnect; - rsi_ble_set_att_resp_t rsi_ble_event_set_att_rsp; - uint32_t ble_app_event_map; - uint32_t ble_app_event_mask; - uint16_t rsi_ble_measurement_hndl; - uint16_t rsi_ble_gatt_server_client_config_hndl; -} sl_wfx_msg_t; - -int32_t ble_rsi_task(void); +// ALL Ble functions void rsi_ble_on_connect_event(rsi_ble_event_conn_status_t * resp_conn); void rsi_ble_on_disconnect_event(rsi_ble_event_disconnect_t * resp_disconnect, uint16_t reason); void rsi_ble_on_enhance_conn_status_event(rsi_ble_event_enhance_conn_status_t * resp_enh_conn); diff --git a/src/test_driver/nrfconnect/prj.conf b/src/test_driver/nrfconnect/prj.conf index d50406fae0d258..3b167d03c64124 100644 --- a/src/test_driver/nrfconnect/prj.conf +++ b/src/test_driver/nrfconnect/prj.conf @@ -39,11 +39,7 @@ CONFIG_NET_IPV6_NBR_CACHE=n CONFIG_NET_IPV6_MLD=n # Configure settings -CONFIG_FLASH=y CONFIG_FLASH_SIMULATOR=y -CONFIG_FLASH_MAP=y -CONFIG_NVS=y -CONFIG_SETTINGS=y # Network buffers CONFIG_NET_PKT_RX_COUNT=16 diff --git a/src/tools/chip-cert/CertUtils.cpp b/src/tools/chip-cert/CertUtils.cpp index ed7f09d040ad26..28b6e0d3951131 100644 --- a/src/tools/chip-cert/CertUtils.cpp +++ b/src/tools/chip-cert/CertUtils.cpp @@ -567,13 +567,13 @@ bool AddAuthorityKeyId(X509 * cert, X509 * caCert, bool isAKIDLengthValid) } // namespace -bool ReadCert(const char * fileNameOrStr, X509 * cert) +bool ReadCert(const char * fileNameOrStr, std::unique_ptr & cert) { CertFormat origCertFmt; return ReadCert(fileNameOrStr, cert, origCertFmt); } -bool ReadCert(const char * fileNameOrStr, X509 * cert, CertFormat & certFmt) +bool ReadCert(const char * fileNameOrStr, std::unique_ptr & cert, CertFormat & certFmt) { bool res = true; uint32_t certLen = 0; @@ -628,7 +628,8 @@ bool ReadCert(const char * fileNameOrStr, X509 * cert, CertFormat & certFmt) std::unique_ptr certBIO( BIO_new_mem_buf(static_cast(certBuf.get()), static_cast(certLen)), &BIO_free_all); - if (PEM_read_bio_X509(certBIO.get(), &cert, nullptr, nullptr) == nullptr) + cert.reset(PEM_read_bio_X509(certBIO.get(), nullptr, nullptr, nullptr)); + if (cert.get() == nullptr) { ReportOpenSSLErrorAndExit("PEM_read_bio_X509", res = false); } @@ -639,7 +640,8 @@ bool ReadCert(const char * fileNameOrStr, X509 * cert, CertFormat & certFmt) const uint8_t * outCert = certBuf.get(); - if (d2i_X509(&cert, &outCert, static_cast(certLen)) == nullptr) + cert.reset(d2i_X509(nullptr, &outCert, static_cast(certLen))); + if (cert.get() == nullptr) { ReportOpenSSLErrorAndExit("d2i_X509", res = false); } @@ -667,7 +669,8 @@ bool ReadCert(const char * fileNameOrStr, X509 * cert, CertFormat & certFmt) VerifyOrReturnError(chip::CanCastTo(x509Cert.size()), false); - if (d2i_X509(&cert, &outCert, static_cast(x509Cert.size())) == nullptr) + cert.reset(d2i_X509(nullptr, &outCert, static_cast(x509Cert.size()))); + if (cert.get() == nullptr) { ReportOpenSSLErrorAndExit("d2i_X509", res = false); } @@ -680,9 +683,9 @@ bool ReadCert(const char * fileNameOrStr, X509 * cert, CertFormat & certFmt) bool ReadCertDER(const char * fileNameOrStr, MutableByteSpan & cert) { bool res = true; - std::unique_ptr certX509(X509_new(), &X509_free); + std::unique_ptr certX509(nullptr, &X509_free); - VerifyOrReturnError(ReadCert(fileNameOrStr, certX509.get()), false); + VerifyOrReturnError(ReadCert(fileNameOrStr, certX509), false); uint8_t * certPtr = cert.data(); int certLen = i2d_X509(certX509.get(), &certPtr); @@ -730,9 +733,9 @@ bool LoadChipCert(const char * fileNameOrStr, bool isTrused, ChipCertificateSet bool res = true; CHIP_ERROR err; BitFlags decodeFlags; - std::unique_ptr cert(X509_new(), &X509_free); + std::unique_ptr cert(nullptr, &X509_free); - res = ReadCert(fileNameOrStr, cert.get()); + res = ReadCert(fileNameOrStr, cert); VerifyTrueOrExit(res); res = X509ToChipCert(cert.get(), chipCert); diff --git a/src/tools/chip-cert/Cmd_ConvertCert.cpp b/src/tools/chip-cert/Cmd_ConvertCert.cpp index 7eba1cc2f8868c..efd5816293ebdd 100644 --- a/src/tools/chip-cert/Cmd_ConvertCert.cpp +++ b/src/tools/chip-cert/Cmd_ConvertCert.cpp @@ -178,7 +178,7 @@ bool HandleNonOptionArgs(const char * progName, int argc, char * const argv[]) bool Cmd_ConvertCert(int argc, char * argv[]) { bool res = true; - std::unique_ptr cert(X509_new(), &X509_free); + std::unique_ptr cert(nullptr, &X509_free); if (argc == 1) { @@ -192,7 +192,7 @@ bool Cmd_ConvertCert(int argc, char * argv[]) res = InitOpenSSL(); VerifyTrueOrExit(res); - res = ReadCert(gInFileNameOrStr, cert.get()); + res = ReadCert(gInFileNameOrStr, cert); VerifyTrueOrExit(res); res = WriteCert(gOutFileName, cert.get(), gOutCertFormat); diff --git a/src/tools/chip-cert/Cmd_GenAttCert.cpp b/src/tools/chip-cert/Cmd_GenAttCert.cpp index 845344860c49cd..270e42cfcbd1d6 100644 --- a/src/tools/chip-cert/Cmd_GenAttCert.cpp +++ b/src/tools/chip-cert/Cmd_GenAttCert.cpp @@ -560,10 +560,10 @@ bool Cmd_GenAttCert(int argc, char * argv[]) } else { - std::unique_ptr caCert(X509_new(), &X509_free); + std::unique_ptr caCert(nullptr, &X509_free); std::unique_ptr caKey(EVP_PKEY_new(), &EVP_PKEY_free); - res = ReadCert(gCACertFileNameOrStr, caCert.get()); + res = ReadCert(gCACertFileNameOrStr, caCert); VerifyTrueOrExit(res); res = ReadKey(gCAKeyFileNameOrStr, caKey, gCertConfig.IsErrorTestCaseEnabled()); diff --git a/src/tools/chip-cert/Cmd_GenCD.cpp b/src/tools/chip-cert/Cmd_GenCD.cpp index a338e19ea6e835..77f77471d93ffa 100644 --- a/src/tools/chip-cert/Cmd_GenCD.cpp +++ b/src/tools/chip-cert/Cmd_GenCD.cpp @@ -485,8 +485,8 @@ bool HandleOption(const char * progName, OptionSet * optSet, int id, const char } { const char * fileNameOrStr = arg; - std::unique_ptr cert(X509_new(), &X509_free); - VerifyOrReturnError(ReadCert(fileNameOrStr, cert.get()), false); + std::unique_ptr cert(nullptr, &X509_free); + VerifyOrReturnError(ReadCert(fileNameOrStr, cert), false); ByteSpan skid; VerifyOrReturnError(ExtractSKIDFromX509Cert(cert.get(), skid), false); @@ -1144,10 +1144,10 @@ bool Cmd_GenCD(int argc, char * argv[]) } { - std::unique_ptr cert(X509_new(), &X509_free); + std::unique_ptr cert(nullptr, &X509_free); std::unique_ptr key(EVP_PKEY_new(), &EVP_PKEY_free); - VerifyOrReturnError(ReadCert(gCertFileNameOrStr, cert.get()), false); + VerifyOrReturnError(ReadCert(gCertFileNameOrStr, cert), false); VerifyOrReturnError(ReadKey(gKeyFileNameOrStr, key), false); // Extract the subject key id from the X509 certificate. diff --git a/src/tools/chip-cert/Cmd_GenCert.cpp b/src/tools/chip-cert/Cmd_GenCert.cpp index c17780eec584d4..07317d414c673f 100644 --- a/src/tools/chip-cert/Cmd_GenCert.cpp +++ b/src/tools/chip-cert/Cmd_GenCert.cpp @@ -992,7 +992,7 @@ bool Cmd_GenCert(int argc, char * argv[]) uint8_t certType = kCertType_NotSpecified; std::unique_ptr newCert(X509_new(), &X509_free); std::unique_ptr newKey(EVP_PKEY_new(), &EVP_PKEY_free); - std::unique_ptr caCert(X509_new(), &X509_free); + std::unique_ptr caCert(nullptr, &X509_free); std::unique_ptr caKey(EVP_PKEY_new(), &EVP_PKEY_free); X509 * caCertPtr = nullptr; EVP_PKEY * caKeyPtr = nullptr; @@ -1162,7 +1162,7 @@ bool Cmd_GenCert(int argc, char * argv[]) } else { - res = ReadCert(gCACertFileNameOrStr, caCert.get()); + res = ReadCert(gCACertFileNameOrStr, caCert); VerifyTrueOrExit(res); res = ReadKey(gCAKeyFileNameOrStr, caKey); diff --git a/src/tools/chip-cert/Cmd_PrintCert.cpp b/src/tools/chip-cert/Cmd_PrintCert.cpp index 76110b8dca5981..0c7f696bdb8a5d 100644 --- a/src/tools/chip-cert/Cmd_PrintCert.cpp +++ b/src/tools/chip-cert/Cmd_PrintCert.cpp @@ -1,6 +1,6 @@ /* * - * Copyright (c) 2021 Project CHIP Authors + * Copyright (c) 2021-2022 Project CHIP Authors * Copyright (c) 2013-2017 Nest Labs, Inc. * All rights reserved. * @@ -371,7 +371,7 @@ bool PrintCert(const char * fileName, X509 * cert) bool Cmd_PrintCert(int argc, char * argv[]) { bool res = true; - std::unique_ptr cert(X509_new(), &X509_free); + std::unique_ptr cert(nullptr, &X509_free); if (argc == 1) { @@ -382,7 +382,7 @@ bool Cmd_PrintCert(int argc, char * argv[]) res = ParseArgs(CMD_NAME, argc, argv, gCmdOptionSets, HandleNonOptionArgs); VerifyTrueOrExit(res); - res = ReadCert(gInFileNameOrStr, cert.get()); + res = ReadCert(gInFileNameOrStr, cert); VerifyTrueOrExit(res); res = PrintCert(gOutFileName, cert.get()); diff --git a/src/tools/chip-cert/Cmd_ResignCert.cpp b/src/tools/chip-cert/Cmd_ResignCert.cpp index 053b5ff917d0b9..425d295c918170 100644 --- a/src/tools/chip-cert/Cmd_ResignCert.cpp +++ b/src/tools/chip-cert/Cmd_ResignCert.cpp @@ -137,7 +137,7 @@ bool Cmd_ResignCert(int argc, char * argv[]) { bool res = true; CertFormat inCertFmt; - std::unique_ptr cert(X509_new(), &X509_free); + std::unique_ptr cert(nullptr, &X509_free); std::unique_ptr caKey(EVP_PKEY_new(), &EVP_PKEY_free); if (argc == 1) @@ -192,7 +192,7 @@ bool Cmd_ResignCert(int argc, char * argv[]) res = InitOpenSSL(); VerifyTrueOrExit(res); - res = ReadCert(gInCertFileNameOrStr, cert.get(), inCertFmt); + res = ReadCert(gInCertFileNameOrStr, cert, inCertFmt); VerifyTrueOrExit(res); res = ReadKey(gCAKeyFileNameOrStr, caKey); @@ -200,9 +200,9 @@ bool Cmd_ResignCert(int argc, char * argv[]) if (!gSelfSign) { - std::unique_ptr caCert(X509_new(), &X509_free); + std::unique_ptr caCert(nullptr, &X509_free); - res = ReadCert(gCACertFileNameOrStr, caCert.get()); + res = ReadCert(gCACertFileNameOrStr, caCert); VerifyTrueOrExit(res); res = ResignCert(cert.get(), caCert.get(), caKey.get()); diff --git a/src/tools/chip-cert/KeyUtils.cpp b/src/tools/chip-cert/KeyUtils.cpp index 9cc7fc484cdc80..fcc2e567724a9a 100644 --- a/src/tools/chip-cert/KeyUtils.cpp +++ b/src/tools/chip-cert/KeyUtils.cpp @@ -264,9 +264,8 @@ bool ReadKey(const char * fileNameOrStr, std::unique_ptr & cert); +extern bool ReadCert(const char * fileNameOrStr, std::unique_ptr & cert, CertFormat & origCertFmt); extern bool ReadCertDER(const char * fileNameOrStr, chip::MutableByteSpan & cert); extern bool LoadChipCert(const char * fileNameOrStr, bool isTrused, chip::Credentials::ChipCertificateSet & certSet, chip::MutableByteSpan & chipCert); diff --git a/third_party/silabs/SiWx917_sdk.gni b/third_party/silabs/SiWx917_sdk.gni index b50ceedf817803..7b5b3fbecbfc9f 100644 --- a/third_party/silabs/SiWx917_sdk.gni +++ b/third_party/silabs/SiWx917_sdk.gni @@ -24,7 +24,9 @@ declare_args() { # Location of the efr32 SDK. efr32_sdk_root = "${chip_root}/third_party/silabs/gecko_sdk" sdk_support_root = "${chip_root}/third_party/silabs/matter_support" - wiseconnect_sdk_root = "${chip_root}/third_party/silabs/wisemcu-wifi-bt-sdk" + wiseconnect_sdk_root = + "${chip_root}/third_party/silabs/wiseconnect-wifi-bt-sdk" + wisemcu_sdk_root = "${chip_root}/third_party/silabs/wisemcu-wifi-bt-sdk" examples_plat_dir = "${chip_root}/examples/platform/silabs/SiWx917" # Build openthread with prebuilt silabs lib @@ -84,21 +86,22 @@ template("efr32_sdk") { "${sdk_support_root}/platform/emdrv/nvm3/inc", "${sdk_support_root}/matter/mbedtls/tinycrypt/inc", "${chip_root}/third_party/mbedtls/repo/include", + "${chip_root}/third_party/mbedtls/repo/library", ### CCP includes ### - "${wiseconnect_sdk_root}/platforms/si91x/drivers/peripheral_drivers/inc", - "${wiseconnect_sdk_root}/platforms/si91x/core/chip/inc", - "${wiseconnect_sdk_root}/platforms/si91x/core/config", - "${wiseconnect_sdk_root}/platforms/si91x/drivers/cmsis_driver/config", - "${wiseconnect_sdk_root}/platforms/si91x/drivers/rom_driver/inc", - "${wiseconnect_sdk_root}/platforms/si91x/drivers/systemlevel/inc", - - "${wiseconnect_sdk_root}/platforms/si91x/drivers/cmsis_driver", - "${wiseconnect_sdk_root}/platforms/si91x/drivers/cmsis_driver/CMSIS/Driver/Include", - "${wiseconnect_sdk_root}/platforms/si91x/boards/brd4325a/inc", - "${wiseconnect_sdk_root}/platforms/si91x/core/cmsis", - "${wiseconnect_sdk_root}/third_party/freertos/include", - "${wiseconnect_sdk_root}/third_party/freertos/portable/GCC/ARM_CM4F", + "${wisemcu_sdk_root}/platforms/si91x/drivers/peripheral_drivers/inc", + "${wisemcu_sdk_root}/platforms/si91x/core/chip/inc", + "${wisemcu_sdk_root}/platforms/si91x/core/config", + "${wisemcu_sdk_root}/platforms/si91x/drivers/cmsis_driver/config", + "${wisemcu_sdk_root}/platforms/si91x/drivers/rom_driver/inc", + "${wisemcu_sdk_root}/platforms/si91x/drivers/systemlevel/inc", + + "${wisemcu_sdk_root}/platforms/si91x/drivers/cmsis_driver", + "${wisemcu_sdk_root}/platforms/si91x/drivers/cmsis_driver/CMSIS/Driver/Include", + "${wisemcu_sdk_root}/platforms/si91x/boards/brd4325a/inc", + "${wisemcu_sdk_root}/platforms/si91x/core/cmsis", + "${wisemcu_sdk_root}/third_party/freertos/include", + "${wisemcu_sdk_root}/third_party/freertos/portable/GCC/ARM_CM4F", "${examples_plat_dir}/device/inc", "${wiseconnect_sdk_root}/sapi/include", @@ -138,6 +141,7 @@ template("efr32_sdk") { "RSI_BLE_ENABLE=1", "BRD4325A", "CHIP_9117", + "RSI_BLE_ENABLE=1", "TINYCRYPT_PRIMITIVES", "OPTIMIZE_TINYCRYPT_ASM", "RS91X_BLE_ENABLE=1", @@ -254,46 +258,42 @@ template("efr32_sdk") { "${sdk_support_root}/platform/emdrv/nvm3/src/nvm3_lock.c", ######## CCP Platform ######### - "${wiseconnect_sdk_root}/platforms/si91x/boards/brd4325a/src/rsi_board.c", - - #"${wiseconnect_sdk_root}/platforms/si91x/boards/brd4325a/src/syscalls.c", - "${wiseconnect_sdk_root}/platforms/si91x/core/chip/src/rsi_deepsleep_commonflash.c", - "${wiseconnect_sdk_root}/platforms/si91x/core/chip/src/rsi_ps_ram_func.c", - "${wiseconnect_sdk_root}/platforms/si91x/core/chip/src/rsi_system_config.c", - "${wiseconnect_sdk_root}/platforms/si91x/core/chip/src/system_RS1xxxx.c", - - #"${wiseconnect_sdk_root}/platforms/si91x/drivers/cmsis_driver/UDMA.c", - #"${wiseconnect_sdk_root}/platforms/si91x/drivers/cmsis_driver/USART.c", - - "${wiseconnect_sdk_root}/platforms/si91x/drivers/peripheral_drivers/src/clock_update.c", - "${wiseconnect_sdk_root}/platforms/si91x/drivers/peripheral_drivers/src/rsi_comparator.c", - "${wiseconnect_sdk_root}/platforms/si91x/drivers/peripheral_drivers/src/rsi_egpio.c", - "${wiseconnect_sdk_root}/platforms/si91x/drivers/peripheral_drivers/src/rsi_udma.c", - "${wiseconnect_sdk_root}/platforms/si91x/drivers/peripheral_drivers/src/rsi_udma_wrapper.c", - "${wiseconnect_sdk_root}/platforms/si91x/drivers/peripheral_drivers/src/rsi_usart.c", - "${wiseconnect_sdk_root}/platforms/si91x/drivers/systemlevel/src/rsi_ipmu.c", - "${wiseconnect_sdk_root}/platforms/si91x/drivers/systemlevel/src/rsi_pll.c", - "${wiseconnect_sdk_root}/platforms/si91x/drivers/systemlevel/src/rsi_power_save.c", - "${wiseconnect_sdk_root}/platforms/si91x/drivers/systemlevel/src/rsi_processor_sensor.c", - "${wiseconnect_sdk_root}/platforms/si91x/drivers/systemlevel/src/rsi_rtc.c", - "${wiseconnect_sdk_root}/platforms/si91x/drivers/systemlevel/src/rsi_temp_sensor.c", - "${wiseconnect_sdk_root}/platforms/si91x/drivers/systemlevel/src/rsi_time_period.c", - "${wiseconnect_sdk_root}/platforms/si91x/drivers/systemlevel/src/rsi_ulpss_clk.c", - "${wiseconnect_sdk_root}/platforms/si91x/drivers/systemlevel/src/rsi_wwdt.c", - "${wiseconnect_sdk_root}/third_party/freertos/croutine.c", - "${wiseconnect_sdk_root}/third_party/freertos/event_groups.c", - "${wiseconnect_sdk_root}/third_party/freertos/list.c", - "${wiseconnect_sdk_root}/third_party/freertos/portable/GCC/ARM_CM4F/port.c", - "${wiseconnect_sdk_root}/third_party/freertos/queue.c", - "${wiseconnect_sdk_root}/third_party/freertos/stream_buffer.c", - "${wiseconnect_sdk_root}/third_party/freertos/tasks.c", - "${wiseconnect_sdk_root}/third_party/freertos/timers.c", + "${wisemcu_sdk_root}/platforms/si91x/boards/brd4325a/src/rsi_board.c", + + #"${wisemcu_sdk_root}/platforms/si91x/boards/brd4325a/src/syscalls.c", + "${wisemcu_sdk_root}/platforms/si91x/core/chip/src/rsi_deepsleep_commonflash.c", + "${wisemcu_sdk_root}/platforms/si91x/core/chip/src/rsi_ps_ram_func.c", + "${wisemcu_sdk_root}/platforms/si91x/core/chip/src/rsi_system_config.c", + "${wisemcu_sdk_root}/platforms/si91x/core/chip/src/system_RS1xxxx.c", # Bluetooth "${wiseconnect_sdk_root}/sapi/bluetooth/rsi_ble_gap_apis.c", "${wiseconnect_sdk_root}/sapi/bluetooth/rsi_ble_gatt_apis.c", "${wiseconnect_sdk_root}/sapi/bluetooth/rsi_bt_common_apis.c", "${wiseconnect_sdk_root}/sapi/driver/rsi_bt_ble.c", + "${wisemcu_sdk_root}/platforms/si91x/drivers/peripheral_drivers/src/clock_update.c", + "${wisemcu_sdk_root}/platforms/si91x/drivers/peripheral_drivers/src/rsi_comparator.c", + "${wisemcu_sdk_root}/platforms/si91x/drivers/peripheral_drivers/src/rsi_egpio.c", + "${wisemcu_sdk_root}/platforms/si91x/drivers/peripheral_drivers/src/rsi_udma.c", + "${wisemcu_sdk_root}/platforms/si91x/drivers/peripheral_drivers/src/rsi_udma_wrapper.c", + "${wisemcu_sdk_root}/platforms/si91x/drivers/peripheral_drivers/src/rsi_usart.c", + "${wisemcu_sdk_root}/platforms/si91x/drivers/systemlevel/src/rsi_ipmu.c", + "${wisemcu_sdk_root}/platforms/si91x/drivers/systemlevel/src/rsi_pll.c", + "${wisemcu_sdk_root}/platforms/si91x/drivers/systemlevel/src/rsi_power_save.c", + "${wisemcu_sdk_root}/platforms/si91x/drivers/systemlevel/src/rsi_processor_sensor.c", + "${wisemcu_sdk_root}/platforms/si91x/drivers/systemlevel/src/rsi_rtc.c", + "${wisemcu_sdk_root}/platforms/si91x/drivers/systemlevel/src/rsi_temp_sensor.c", + "${wisemcu_sdk_root}/platforms/si91x/drivers/systemlevel/src/rsi_time_period.c", + "${wisemcu_sdk_root}/platforms/si91x/drivers/systemlevel/src/rsi_ulpss_clk.c", + "${wisemcu_sdk_root}/platforms/si91x/drivers/systemlevel/src/rsi_wwdt.c", + "${wisemcu_sdk_root}/third_party/freertos/croutine.c", + "${wisemcu_sdk_root}/third_party/freertos/event_groups.c", + "${wisemcu_sdk_root}/third_party/freertos/list.c", + "${wisemcu_sdk_root}/third_party/freertos/portable/GCC/ARM_CM4F/port.c", + "${wisemcu_sdk_root}/third_party/freertos/queue.c", + "${wisemcu_sdk_root}/third_party/freertos/stream_buffer.c", + "${wisemcu_sdk_root}/third_party/freertos/tasks.c", + "${wisemcu_sdk_root}/third_party/freertos/timers.c", # mbedtls "${chip_root}/third_party/mbedtls/repo/library/aes.c", diff --git a/zzz_generated/all-clusters-app/zap-generated/endpoint_config.h b/zzz_generated/all-clusters-app/zap-generated/endpoint_config.h index 3aca7751a280b6..b63b342d4889d8 100644 --- a/zzz_generated/all-clusters-app/zap-generated/endpoint_config.h +++ b/zzz_generated/all-clusters-app/zap-generated/endpoint_config.h @@ -374,8 +374,8 @@ { \ \ /* Endpoint: 0, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0000) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0000) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \ \ @@ -766,8 +766,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0000) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0000) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \ \ diff --git a/zzz_generated/all-clusters-minimal-app/zap-generated/endpoint_config.h b/zzz_generated/all-clusters-minimal-app/zap-generated/endpoint_config.h index b771930dfa2ffa..ee653446210dae 100644 --- a/zzz_generated/all-clusters-minimal-app/zap-generated/endpoint_config.h +++ b/zzz_generated/all-clusters-minimal-app/zap-generated/endpoint_config.h @@ -301,8 +301,8 @@ { \ \ /* Endpoint: 0, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0000) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0000) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \ \ @@ -564,8 +564,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(3) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0000) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0000) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \ \ diff --git a/zzz_generated/bridge-app/zap-generated/endpoint_config.h b/zzz_generated/bridge-app/zap-generated/endpoint_config.h index 0b560b81a1a74e..fd09812c0d6212 100644 --- a/zzz_generated/bridge-app/zap-generated/endpoint_config.h +++ b/zzz_generated/bridge-app/zap-generated/endpoint_config.h @@ -442,8 +442,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(2) }, /* ClusterRevision */ \ \ diff --git a/zzz_generated/chef-noip_rootnode_dimmablelight_bCwGYSDpoe/zap-generated/endpoint_config.h b/zzz_generated/chef-noip_rootnode_dimmablelight_bCwGYSDpoe/zap-generated/endpoint_config.h index 3fb81caf438b22..97b72598414f14 100644 --- a/zzz_generated/chef-noip_rootnode_dimmablelight_bCwGYSDpoe/zap-generated/endpoint_config.h +++ b/zzz_generated/chef-noip_rootnode_dimmablelight_bCwGYSDpoe/zap-generated/endpoint_config.h @@ -409,8 +409,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(2) }, /* ClusterRevision */ \ \ diff --git a/zzz_generated/chef-rootnode_colortemperaturelight_hbUnzYVeyn/zap-generated/endpoint_config.h b/zzz_generated/chef-rootnode_colortemperaturelight_hbUnzYVeyn/zap-generated/endpoint_config.h index 47419fdcb71b14..8a0446d0cf8c7e 100644 --- a/zzz_generated/chef-rootnode_colortemperaturelight_hbUnzYVeyn/zap-generated/endpoint_config.h +++ b/zzz_generated/chef-rootnode_colortemperaturelight_hbUnzYVeyn/zap-generated/endpoint_config.h @@ -260,8 +260,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \ \ diff --git a/zzz_generated/chef-rootnode_contactsensor_lFAGG1bfRO/zap-generated/endpoint_config.h b/zzz_generated/chef-rootnode_contactsensor_lFAGG1bfRO/zap-generated/endpoint_config.h index 9c48350df9c13c..252d4b7be03d33 100644 --- a/zzz_generated/chef-rootnode_contactsensor_lFAGG1bfRO/zap-generated/endpoint_config.h +++ b/zzz_generated/chef-rootnode_contactsensor_lFAGG1bfRO/zap-generated/endpoint_config.h @@ -269,8 +269,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(2) }, /* ClusterRevision */ \ \ diff --git a/zzz_generated/chef-rootnode_dimmablelight_bCwGYSDpoe/zap-generated/endpoint_config.h b/zzz_generated/chef-rootnode_dimmablelight_bCwGYSDpoe/zap-generated/endpoint_config.h index 0ba05c09d1ccab..f911ba6ae1e50d 100644 --- a/zzz_generated/chef-rootnode_dimmablelight_bCwGYSDpoe/zap-generated/endpoint_config.h +++ b/zzz_generated/chef-rootnode_dimmablelight_bCwGYSDpoe/zap-generated/endpoint_config.h @@ -272,8 +272,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(2) }, /* ClusterRevision */ \ \ diff --git a/zzz_generated/chef-rootnode_doorlock_aNKYAreMXE/zap-generated/endpoint_config.h b/zzz_generated/chef-rootnode_doorlock_aNKYAreMXE/zap-generated/endpoint_config.h index 6bb56d357867d2..6c0dd496a190f0 100644 --- a/zzz_generated/chef-rootnode_doorlock_aNKYAreMXE/zap-generated/endpoint_config.h +++ b/zzz_generated/chef-rootnode_doorlock_aNKYAreMXE/zap-generated/endpoint_config.h @@ -274,8 +274,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(2) }, /* ClusterRevision */ \ \ diff --git a/zzz_generated/chef-rootnode_extendedcolorlight_8lcaaYJVAa/zap-generated/endpoint_config.h b/zzz_generated/chef-rootnode_extendedcolorlight_8lcaaYJVAa/zap-generated/endpoint_config.h index 725c64a814c71c..c5a1d8603c6b8e 100644 --- a/zzz_generated/chef-rootnode_extendedcolorlight_8lcaaYJVAa/zap-generated/endpoint_config.h +++ b/zzz_generated/chef-rootnode_extendedcolorlight_8lcaaYJVAa/zap-generated/endpoint_config.h @@ -278,8 +278,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(2) }, /* ClusterRevision */ \ \ diff --git a/zzz_generated/chef-rootnode_fan_7N2TobIlOX/zap-generated/endpoint_config.h b/zzz_generated/chef-rootnode_fan_7N2TobIlOX/zap-generated/endpoint_config.h index 06941223355dfb..631f59bc67fff7 100644 --- a/zzz_generated/chef-rootnode_fan_7N2TobIlOX/zap-generated/endpoint_config.h +++ b/zzz_generated/chef-rootnode_fan_7N2TobIlOX/zap-generated/endpoint_config.h @@ -288,8 +288,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \ \ diff --git a/zzz_generated/chef-rootnode_flowsensor_1zVxHedlaV/zap-generated/endpoint_config.h b/zzz_generated/chef-rootnode_flowsensor_1zVxHedlaV/zap-generated/endpoint_config.h index 775a97ceec0be9..1daa88c4ede41b 100644 --- a/zzz_generated/chef-rootnode_flowsensor_1zVxHedlaV/zap-generated/endpoint_config.h +++ b/zzz_generated/chef-rootnode_flowsensor_1zVxHedlaV/zap-generated/endpoint_config.h @@ -269,8 +269,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(2) }, /* ClusterRevision */ \ \ diff --git a/zzz_generated/chef-rootnode_heatingcoolingunit_ncdGai1E5a/zap-generated/endpoint_config.h b/zzz_generated/chef-rootnode_heatingcoolingunit_ncdGai1E5a/zap-generated/endpoint_config.h index f40f4651951baf..78b54e5d6fd663 100644 --- a/zzz_generated/chef-rootnode_heatingcoolingunit_ncdGai1E5a/zap-generated/endpoint_config.h +++ b/zzz_generated/chef-rootnode_heatingcoolingunit_ncdGai1E5a/zap-generated/endpoint_config.h @@ -275,8 +275,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(2) }, /* ClusterRevision */ \ \ diff --git a/zzz_generated/chef-rootnode_humiditysensor_Xyj4gda6Hb/zap-generated/endpoint_config.h b/zzz_generated/chef-rootnode_humiditysensor_Xyj4gda6Hb/zap-generated/endpoint_config.h index e68ef4a6569f8c..f5d06cd8e5af27 100644 --- a/zzz_generated/chef-rootnode_humiditysensor_Xyj4gda6Hb/zap-generated/endpoint_config.h +++ b/zzz_generated/chef-rootnode_humiditysensor_Xyj4gda6Hb/zap-generated/endpoint_config.h @@ -269,8 +269,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(2) }, /* ClusterRevision */ \ \ diff --git a/zzz_generated/chef-rootnode_lightsensor_lZQycTFcJK/zap-generated/endpoint_config.h b/zzz_generated/chef-rootnode_lightsensor_lZQycTFcJK/zap-generated/endpoint_config.h index 1f0006068b8991..48a1ed8d839765 100644 --- a/zzz_generated/chef-rootnode_lightsensor_lZQycTFcJK/zap-generated/endpoint_config.h +++ b/zzz_generated/chef-rootnode_lightsensor_lZQycTFcJK/zap-generated/endpoint_config.h @@ -269,8 +269,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(2) }, /* ClusterRevision */ \ \ diff --git a/zzz_generated/chef-rootnode_occupancysensor_iHyVgifZuo/zap-generated/endpoint_config.h b/zzz_generated/chef-rootnode_occupancysensor_iHyVgifZuo/zap-generated/endpoint_config.h index 47185f15712988..123465dcfa155a 100644 --- a/zzz_generated/chef-rootnode_occupancysensor_iHyVgifZuo/zap-generated/endpoint_config.h +++ b/zzz_generated/chef-rootnode_occupancysensor_iHyVgifZuo/zap-generated/endpoint_config.h @@ -269,8 +269,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(2) }, /* ClusterRevision */ \ \ diff --git a/zzz_generated/chef-rootnode_onofflight_bbs1b7IaOV/zap-generated/endpoint_config.h b/zzz_generated/chef-rootnode_onofflight_bbs1b7IaOV/zap-generated/endpoint_config.h index d831f3dcfb1ff1..ce8b09a9f15200 100644 --- a/zzz_generated/chef-rootnode_onofflight_bbs1b7IaOV/zap-generated/endpoint_config.h +++ b/zzz_generated/chef-rootnode_onofflight_bbs1b7IaOV/zap-generated/endpoint_config.h @@ -272,8 +272,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(2) }, /* ClusterRevision */ \ \ diff --git a/zzz_generated/chef-rootnode_onofflightswitch_FsPlMr090Q/zap-generated/endpoint_config.h b/zzz_generated/chef-rootnode_onofflightswitch_FsPlMr090Q/zap-generated/endpoint_config.h index 3b1352ec27f9d3..033f01df5cb44c 100644 --- a/zzz_generated/chef-rootnode_onofflightswitch_FsPlMr090Q/zap-generated/endpoint_config.h +++ b/zzz_generated/chef-rootnode_onofflightswitch_FsPlMr090Q/zap-generated/endpoint_config.h @@ -269,8 +269,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(2) }, /* ClusterRevision */ \ \ diff --git a/zzz_generated/chef-rootnode_onoffpluginunit_Wtf8ss5EBY/zap-generated/endpoint_config.h b/zzz_generated/chef-rootnode_onoffpluginunit_Wtf8ss5EBY/zap-generated/endpoint_config.h index 7bac27a09d33c2..eb1983060821e8 100644 --- a/zzz_generated/chef-rootnode_onoffpluginunit_Wtf8ss5EBY/zap-generated/endpoint_config.h +++ b/zzz_generated/chef-rootnode_onoffpluginunit_Wtf8ss5EBY/zap-generated/endpoint_config.h @@ -269,8 +269,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(2) }, /* ClusterRevision */ \ \ diff --git a/zzz_generated/chef-rootnode_pressuresensor_s0qC9wLH4k/zap-generated/endpoint_config.h b/zzz_generated/chef-rootnode_pressuresensor_s0qC9wLH4k/zap-generated/endpoint_config.h index cdcccb560fa8bd..ce32ab8a9c11ff 100644 --- a/zzz_generated/chef-rootnode_pressuresensor_s0qC9wLH4k/zap-generated/endpoint_config.h +++ b/zzz_generated/chef-rootnode_pressuresensor_s0qC9wLH4k/zap-generated/endpoint_config.h @@ -275,8 +275,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(2) }, /* ClusterRevision */ \ \ diff --git a/zzz_generated/chef-rootnode_speaker_RpzeXdimqA/zap-generated/endpoint_config.h b/zzz_generated/chef-rootnode_speaker_RpzeXdimqA/zap-generated/endpoint_config.h index 03897307a5830b..69ab7e3458da2c 100644 --- a/zzz_generated/chef-rootnode_speaker_RpzeXdimqA/zap-generated/endpoint_config.h +++ b/zzz_generated/chef-rootnode_speaker_RpzeXdimqA/zap-generated/endpoint_config.h @@ -269,8 +269,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(2) }, /* ClusterRevision */ \ \ diff --git a/zzz_generated/chef-rootnode_temperaturesensor_Qy1zkNW7c3/zap-generated/endpoint_config.h b/zzz_generated/chef-rootnode_temperaturesensor_Qy1zkNW7c3/zap-generated/endpoint_config.h index d575df90b83280..69ef078fd7297f 100644 --- a/zzz_generated/chef-rootnode_temperaturesensor_Qy1zkNW7c3/zap-generated/endpoint_config.h +++ b/zzz_generated/chef-rootnode_temperaturesensor_Qy1zkNW7c3/zap-generated/endpoint_config.h @@ -269,8 +269,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(2) }, /* ClusterRevision */ \ \ diff --git a/zzz_generated/chef-rootnode_thermostat_bm3fb8dhYi/zap-generated/endpoint_config.h b/zzz_generated/chef-rootnode_thermostat_bm3fb8dhYi/zap-generated/endpoint_config.h index 92d754f2febbb5..a889c85efb490f 100644 --- a/zzz_generated/chef-rootnode_thermostat_bm3fb8dhYi/zap-generated/endpoint_config.h +++ b/zzz_generated/chef-rootnode_thermostat_bm3fb8dhYi/zap-generated/endpoint_config.h @@ -289,8 +289,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(2) }, /* ClusterRevision */ \ \ diff --git a/zzz_generated/chef-rootnode_windowcovering_RLCxaGi9Yx/zap-generated/endpoint_config.h b/zzz_generated/chef-rootnode_windowcovering_RLCxaGi9Yx/zap-generated/endpoint_config.h index 7732cb33091d67..ccc320afac2102 100644 --- a/zzz_generated/chef-rootnode_windowcovering_RLCxaGi9Yx/zap-generated/endpoint_config.h +++ b/zzz_generated/chef-rootnode_windowcovering_RLCxaGi9Yx/zap-generated/endpoint_config.h @@ -269,8 +269,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(2) }, /* ClusterRevision */ \ \ diff --git a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp index 031a52a9ae99ee..4010f1b0e29c32 100644 --- a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp +++ b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp @@ -4204,12 +4204,12 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP case Identify::Attributes::IdentifyTime::Id: { uint16_t value; ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value)); - return DataModelLogger::LogValue("identify time", 1, value); + return DataModelLogger::LogValue("IdentifyTime", 1, value); } case Identify::Attributes::IdentifyType::Id: { uint8_t value; ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value)); - return DataModelLogger::LogValue("identify type", 1, value); + return DataModelLogger::LogValue("IdentifyType", 1, value); } case Identify::Attributes::GeneratedCommandList::Id: { chip::app::DataModel::DecodableList value; diff --git a/zzz_generated/chip-tool/zap-generated/test/Commands.h b/zzz_generated/chip-tool/zap-generated/test/Commands.h index cc2a7153a620dc..fcd53dfa94f3b7 100644 --- a/zzz_generated/chip-tool/zap-generated/test/Commands.h +++ b/zzz_generated/chip-tool/zap-generated/test/Commands.h @@ -18734,7 +18734,7 @@ class Test_TC_I_2_2Suite : public TestCommand return WaitForCommissionee(kIdentityAlpha, value); } case 1: { - LogStep(1, "TH sends Identify command to DUT, with the identify time field set to 0x003c (60s)."); + LogStep(1, "TH sends Identify command to DUT, with the IdentifyTime field set to 0x003c (60s)."); VerifyOrDo(!ShouldSkip("I.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::Identify::Commands::Identify::Type value; @@ -18777,7 +18777,7 @@ class Test_TC_I_2_2Suite : public TestCommand return UserPrompt(kIdentityAlpha, value); } case 6: { - LogStep(6, "TH sends Identify command to DUT, with the identify time field set to 0x0000 (stop identifying)."); + LogStep(6, "TH sends Identify command to DUT, with the IdentifyTime field set to 0x0000 (stop identifying)."); VerifyOrDo(!ShouldSkip("I.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::Identify::Commands::Identify::Type value; diff --git a/zzz_generated/contact-sensor-app/zap-generated/endpoint_config.h b/zzz_generated/contact-sensor-app/zap-generated/endpoint_config.h index 4fa6a18948e165..419bb7512cb90f 100644 --- a/zzz_generated/contact-sensor-app/zap-generated/endpoint_config.h +++ b/zzz_generated/contact-sensor-app/zap-generated/endpoint_config.h @@ -441,8 +441,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0000) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0000) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \ \ 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 8471aa74e11653..11e60b3dbedc0a 100644 --- a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h +++ b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h @@ -25631,7 +25631,7 @@ class Test_TC_I_2_2 : public TestCommandBridge { break; case 1: ChipLogProgress(chipTool, - " ***** Test Step 1 : TH sends Identify command to DUT, with the identify time field set to 0x003c (60s).\n"); + " ***** Test Step 1 : TH sends Identify command to DUT, with the IdentifyTime field set to 0x003c (60s).\n"); if (ShouldSkip("I.S.C00.Rsp")) { NextTest(); return; @@ -25670,7 +25670,7 @@ class Test_TC_I_2_2 : public TestCommandBridge { break; case 6: ChipLogProgress(chipTool, - " ***** Test Step 6 : TH sends Identify command to DUT, with the identify time field set to 0x0000 (stop " + " ***** Test Step 6 : TH sends Identify command to DUT, with the IdentifyTime field set to 0x0000 (stop " "identifying).\n"); if (ShouldSkip("I.S.C00.Rsp")) { NextTest(); @@ -25787,15 +25787,15 @@ class Test_TC_I_2_2 : public TestCommandBridge { __auto_type * params = [[MTRIdentifyClusterIdentifyParams alloc] init]; params.identifyTime = [NSNumber numberWithUnsignedShort:60U]; - [cluster identifyWithParams:params - completion:^(NSError * _Nullable err) { - NSLog(@"TH sends Identify command to DUT, with the identify time field set to 0x003c (60s). Error: %@", - err); + [cluster + identifyWithParams:params + completion:^(NSError * _Nullable err) { + NSLog(@"TH sends Identify command to DUT, with the IdentifyTime field set to 0x003c (60s). Error: %@", err); - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - NextTest(); - }]; + NextTest(); + }]; return CHIP_NO_ERROR; } @@ -25872,7 +25872,7 @@ class Test_TC_I_2_2 : public TestCommandBridge { params.identifyTime = [NSNumber numberWithUnsignedShort:0U]; [cluster identifyWithParams:params completion:^(NSError * _Nullable err) { - NSLog(@"TH sends Identify command to DUT, with the identify time field set to 0x0000 (stop " + NSLog(@"TH sends Identify command to DUT, with the IdentifyTime field set to 0x0000 (stop " @"identifying). Error: %@", err); @@ -25898,7 +25898,7 @@ class Test_TC_I_2_2 : public TestCommandBridge { { id actualValue = value; - VerifyOrReturn(CheckValue("identify time", actualValue, 0U)); + VerifyOrReturn(CheckValue("IdentifyTime", actualValue, 0U)); } NextTest(); diff --git a/zzz_generated/dynamic-bridge-app/zap-generated/endpoint_config.h b/zzz_generated/dynamic-bridge-app/zap-generated/endpoint_config.h index 0b560b81a1a74e..fd09812c0d6212 100644 --- a/zzz_generated/dynamic-bridge-app/zap-generated/endpoint_config.h +++ b/zzz_generated/dynamic-bridge-app/zap-generated/endpoint_config.h @@ -442,8 +442,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(2) }, /* ClusterRevision */ \ \ diff --git a/zzz_generated/light-switch-app/zap-generated/endpoint_config.h b/zzz_generated/light-switch-app/zap-generated/endpoint_config.h index 0b76a509783f96..c3725bb64036f3 100644 --- a/zzz_generated/light-switch-app/zap-generated/endpoint_config.h +++ b/zzz_generated/light-switch-app/zap-generated/endpoint_config.h @@ -431,8 +431,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0000) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0000) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \ \ @@ -456,8 +456,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ /* Endpoint: 2, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(2) }, /* ClusterRevision */ \ \ diff --git a/zzz_generated/lighting-app/nxp/zap-generated/endpoint_config.h b/zzz_generated/lighting-app/nxp/zap-generated/endpoint_config.h index 8b09f0fdf7ecfd..fb3a75039574a8 100644 --- a/zzz_generated/lighting-app/nxp/zap-generated/endpoint_config.h +++ b/zzz_generated/lighting-app/nxp/zap-generated/endpoint_config.h @@ -314,8 +314,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0000) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0000) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \ \ diff --git a/zzz_generated/lighting-app/zap-generated/endpoint_config.h b/zzz_generated/lighting-app/zap-generated/endpoint_config.h index 9bfeaaf0c6d63e..a8d2d046f2d30d 100644 --- a/zzz_generated/lighting-app/zap-generated/endpoint_config.h +++ b/zzz_generated/lighting-app/zap-generated/endpoint_config.h @@ -454,8 +454,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0000) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0000) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \ \ diff --git a/zzz_generated/lock-app/zap-generated/endpoint_config.h b/zzz_generated/lock-app/zap-generated/endpoint_config.h index f84dc63c751d7b..b5b15063d4efeb 100644 --- a/zzz_generated/lock-app/zap-generated/endpoint_config.h +++ b/zzz_generated/lock-app/zap-generated/endpoint_config.h @@ -488,8 +488,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0000) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0000) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \ \ diff --git a/zzz_generated/ota-provider-app/zap-generated/endpoint_config.h b/zzz_generated/ota-provider-app/zap-generated/endpoint_config.h index 6e02f75314ba22..3d6a28b26cda1d 100644 --- a/zzz_generated/ota-provider-app/zap-generated/endpoint_config.h +++ b/zzz_generated/ota-provider-app/zap-generated/endpoint_config.h @@ -90,13 +90,21 @@ #define ZAP_ATTRIBUTE_MASK(mask) ATTRIBUTE_MASK_##mask // This is an array of EmberAfAttributeMetadata structures. -#define GENERATED_ATTRIBUTE_COUNT 93 +#define GENERATED_ATTRIBUTE_COUNT 99 #define GENERATED_ATTRIBUTES \ { \ \ - /* Endpoint: 0, Cluster: Access Control (server) */ \ - { 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(WRITABLE), \ - ZAP_EMPTY_DEFAULT() }, /* ACL */ \ + /* Endpoint: 0, Cluster: Descriptor (server) */ \ + { 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* DeviceTypeList */ \ + { 0x00000001, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* ServerList */ \ + { 0x00000002, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* ClientList */ \ + { 0x00000003, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* PartsList */ \ + { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ + { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ + \ + /* Endpoint: 0, Cluster: Access Control (server) */ \ + { 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(WRITABLE), \ + ZAP_EMPTY_DEFAULT() }, /* ACL */ \ { 0x00000001, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(WRITABLE), \ ZAP_EMPTY_DEFAULT() }, /* Extension */ \ { 0x00000002, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ @@ -357,14 +365,25 @@ // clang-format on #define ZAP_CLUSTER_MASK(mask) CLUSTER_MASK_##mask -#define GENERATED_CLUSTER_COUNT 14 +#define GENERATED_CLUSTER_COUNT 15 // clang-format off #define GENERATED_CLUSTERS { \ + { \ + /* Endpoint: 0, Cluster: Descriptor (server) */ \ + .clusterId = 0x0000001D, \ + .attributes = ZAP_ATTRIBUTE_INDEX(0), \ + .attributeCount = 6, \ + .clusterSize = 6, \ + .mask = ZAP_CLUSTER_MASK(SERVER), \ + .functions = NULL, \ + .acceptedCommandList = nullptr ,\ + .generatedCommandList = nullptr ,\ + },\ { \ /* Endpoint: 0, Cluster: Access Control (client) */ \ .clusterId = 0x0000001F, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ + .attributes = ZAP_ATTRIBUTE_INDEX(6), \ .attributeCount = 0, \ .clusterSize = 0, \ .mask = ZAP_CLUSTER_MASK(CLIENT), \ @@ -375,7 +394,7 @@ { \ /* Endpoint: 0, Cluster: Access Control (server) */ \ .clusterId = 0x0000001F, \ - .attributes = ZAP_ATTRIBUTE_INDEX(0), \ + .attributes = ZAP_ATTRIBUTE_INDEX(6), \ .attributeCount = 7, \ .clusterSize = 6, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -386,7 +405,7 @@ { \ /* Endpoint: 0, Cluster: Basic Information (server) */ \ .clusterId = 0x00000028, \ - .attributes = ZAP_ATTRIBUTE_INDEX(7), \ + .attributes = ZAP_ATTRIBUTE_INDEX(13), \ .attributeCount = 22, \ .clusterSize = 41, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -397,7 +416,7 @@ { \ /* Endpoint: 0, Cluster: OTA Software Update Provider (server) */ \ .clusterId = 0x00000029, \ - .attributes = ZAP_ATTRIBUTE_INDEX(29), \ + .attributes = ZAP_ATTRIBUTE_INDEX(35), \ .attributeCount = 2, \ .clusterSize = 6, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -408,7 +427,7 @@ { \ /* Endpoint: 0, Cluster: Localization Configuration (server) */ \ .clusterId = 0x0000002B, \ - .attributes = ZAP_ATTRIBUTE_INDEX(31), \ + .attributes = ZAP_ATTRIBUTE_INDEX(37), \ .attributeCount = 4, \ .clusterSize = 42, \ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(PRE_ATTRIBUTE_CHANGED_FUNCTION), \ @@ -419,7 +438,7 @@ { \ /* Endpoint: 0, Cluster: Time Format Localization (server) */ \ .clusterId = 0x0000002C, \ - .attributes = ZAP_ATTRIBUTE_INDEX(35), \ + .attributes = ZAP_ATTRIBUTE_INDEX(41), \ .attributeCount = 5, \ .clusterSize = 8, \ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(PRE_ATTRIBUTE_CHANGED_FUNCTION), \ @@ -430,7 +449,7 @@ { \ /* Endpoint: 0, Cluster: General Commissioning (server) */ \ .clusterId = 0x00000030, \ - .attributes = ZAP_ATTRIBUTE_INDEX(40), \ + .attributes = ZAP_ATTRIBUTE_INDEX(46), \ .attributeCount = 7, \ .clusterSize = 14, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -441,7 +460,7 @@ { \ /* Endpoint: 0, Cluster: Network Commissioning (server) */ \ .clusterId = 0x00000031, \ - .attributes = ZAP_ATTRIBUTE_INDEX(47), \ + .attributes = ZAP_ATTRIBUTE_INDEX(53), \ .attributeCount = 10, \ .clusterSize = 48, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -452,7 +471,7 @@ { \ /* Endpoint: 0, Cluster: General Diagnostics (server) */ \ .clusterId = 0x00000033, \ - .attributes = ZAP_ATTRIBUTE_INDEX(57), \ + .attributes = ZAP_ATTRIBUTE_INDEX(63), \ .attributeCount = 11, \ .clusterSize = 6, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -463,7 +482,7 @@ { \ /* Endpoint: 0, Cluster: AdministratorCommissioning (server) */ \ .clusterId = 0x0000003C, \ - .attributes = ZAP_ATTRIBUTE_INDEX(68), \ + .attributes = ZAP_ATTRIBUTE_INDEX(74), \ .attributeCount = 5, \ .clusterSize = 6, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -474,7 +493,7 @@ { \ /* Endpoint: 0, Cluster: Operational Credentials (server) */ \ .clusterId = 0x0000003E, \ - .attributes = ZAP_ATTRIBUTE_INDEX(73), \ + .attributes = ZAP_ATTRIBUTE_INDEX(79), \ .attributeCount = 8, \ .clusterSize = 6, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -485,7 +504,7 @@ { \ /* Endpoint: 0, Cluster: Group Key Management (server) */ \ .clusterId = 0x0000003F, \ - .attributes = ZAP_ATTRIBUTE_INDEX(81), \ + .attributes = ZAP_ATTRIBUTE_INDEX(87), \ .attributeCount = 6, \ .clusterSize = 6, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -496,7 +515,7 @@ { \ /* Endpoint: 0, Cluster: Fixed Label (server) */ \ .clusterId = 0x00000040, \ - .attributes = ZAP_ATTRIBUTE_INDEX(87), \ + .attributes = ZAP_ATTRIBUTE_INDEX(93), \ .attributeCount = 3, \ .clusterSize = 6, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -507,7 +526,7 @@ { \ /* Endpoint: 0, Cluster: User Label (server) */ \ .clusterId = 0x00000041, \ - .attributes = ZAP_ATTRIBUTE_INDEX(90), \ + .attributes = ZAP_ATTRIBUTE_INDEX(96), \ .attributeCount = 3, \ .clusterSize = 6, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -521,12 +540,12 @@ #define ZAP_CLUSTER_INDEX(index) (&generatedClusters[index]) -#define ZAP_FIXED_ENDPOINT_DATA_VERSION_COUNT 13 +#define ZAP_FIXED_ENDPOINT_DATA_VERSION_COUNT 14 // This is an array of EmberAfEndpointType structures. #define GENERATED_ENDPOINT_TYPES \ { \ - { ZAP_CLUSTER_INDEX(0), 14, 201 }, \ + { ZAP_CLUSTER_INDEX(0), 15, 207 }, \ } // Largest attribute size is needed for various buffers @@ -538,7 +557,7 @@ static_assert(ATTRIBUTE_LARGEST <= CHIP_CONFIG_MAX_ATTRIBUTE_STORE_ELEMENT_SIZE, #define ATTRIBUTE_SINGLETONS_SIZE (37) // Total size of attribute storage -#define ATTRIBUTE_MAX_SIZE (201) +#define ATTRIBUTE_MAX_SIZE (207) // Number of fixed endpoints #define FIXED_ENDPOINT_COUNT (1) diff --git a/zzz_generated/ota-provider-app/zap-generated/gen_config.h b/zzz_generated/ota-provider-app/zap-generated/gen_config.h index 9a6f2803bc427c..ad0b8b80cc7fed 100644 --- a/zzz_generated/ota-provider-app/zap-generated/gen_config.h +++ b/zzz_generated/ota-provider-app/zap-generated/gen_config.h @@ -29,6 +29,7 @@ #define EMBER_APS_UNICAST_MESSAGE_COUNT 10 /**** Cluster endpoint counts ****/ +#define EMBER_AF_DESCRIPTOR_CLUSTER_SERVER_ENDPOINT_COUNT (1) #define EMBER_AF_ACCESS_CONTROL_CLUSTER_CLIENT_ENDPOINT_COUNT (1) #define EMBER_AF_ACCESS_CONTROL_CLUSTER_SERVER_ENDPOINT_COUNT (1) #define EMBER_AF_BASIC_INFORMATION_CLUSTER_SERVER_ENDPOINT_COUNT (1) @@ -46,6 +47,11 @@ /**** Cluster Plugins ****/ +// Use this macro to check if the server side of the Descriptor cluster is included +#define ZCL_USING_DESCRIPTOR_CLUSTER_SERVER +#define EMBER_AF_PLUGIN_DESCRIPTOR_SERVER +#define EMBER_AF_PLUGIN_DESCRIPTOR + // Use this macro to check if the client side of the Access Control cluster is included #define ZCL_USING_ACCESS_CONTROL_CLUSTER_CLIENT #define EMBER_AF_PLUGIN_ACCESS_CONTROL_CLIENT diff --git a/zzz_generated/ota-requestor-app/zap-generated/endpoint_config.h b/zzz_generated/ota-requestor-app/zap-generated/endpoint_config.h index d852177bd8042c..6adce2687b9e8a 100644 --- a/zzz_generated/ota-requestor-app/zap-generated/endpoint_config.h +++ b/zzz_generated/ota-requestor-app/zap-generated/endpoint_config.h @@ -274,8 +274,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \ \ diff --git a/zzz_generated/placeholder/app1/zap-generated/endpoint_config.h b/zzz_generated/placeholder/app1/zap-generated/endpoint_config.h index 0fb412b793a9e1..d56322d5664e35 100644 --- a/zzz_generated/placeholder/app1/zap-generated/endpoint_config.h +++ b/zzz_generated/placeholder/app1/zap-generated/endpoint_config.h @@ -548,8 +548,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \ \ diff --git a/zzz_generated/placeholder/app1/zap-generated/test/Commands.h b/zzz_generated/placeholder/app1/zap-generated/test/Commands.h index 0be28d444940cc..2aa767a3d65ebb 100644 --- a/zzz_generated/placeholder/app1/zap-generated/test/Commands.h +++ b/zzz_generated/placeholder/app1/zap-generated/test/Commands.h @@ -1118,15 +1118,15 @@ class Test_TC_I_3_1_SimulatedSuite : public TestCommand return WaitForCommissioning(kIdentityAlpha, value); } case 1: { - LogStep(1, "Read attribute: identify time"); + LogStep(1, "Read attribute: IdentifyTime"); return WaitAttribute(GetEndpoint(1), Identify::Id, Identify::Attributes::IdentifyTime::Id); } case 2: { - LogStep(2, "write attribute: identify time"); + LogStep(2, "write attribute: IdentifyTime"); return WaitAttribute(GetEndpoint(1), Identify::Id, Identify::Attributes::IdentifyTime::Id); } case 3: { - LogStep(3, "Readback attribute: identify time"); + LogStep(3, "Readback attribute: IdentifyTime"); return WaitAttribute(GetEndpoint(1), Identify::Id, Identify::Attributes::IdentifyTime::Id); } case 4: { diff --git a/zzz_generated/placeholder/app2/zap-generated/endpoint_config.h b/zzz_generated/placeholder/app2/zap-generated/endpoint_config.h index 04db6489fde39f..7a04e417d5fea8 100644 --- a/zzz_generated/placeholder/app2/zap-generated/endpoint_config.h +++ b/zzz_generated/placeholder/app2/zap-generated/endpoint_config.h @@ -548,8 +548,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \ \ diff --git a/zzz_generated/placeholder/app2/zap-generated/test/Commands.h b/zzz_generated/placeholder/app2/zap-generated/test/Commands.h index 0be28d444940cc..2aa767a3d65ebb 100644 --- a/zzz_generated/placeholder/app2/zap-generated/test/Commands.h +++ b/zzz_generated/placeholder/app2/zap-generated/test/Commands.h @@ -1118,15 +1118,15 @@ class Test_TC_I_3_1_SimulatedSuite : public TestCommand return WaitForCommissioning(kIdentityAlpha, value); } case 1: { - LogStep(1, "Read attribute: identify time"); + LogStep(1, "Read attribute: IdentifyTime"); return WaitAttribute(GetEndpoint(1), Identify::Id, Identify::Attributes::IdentifyTime::Id); } case 2: { - LogStep(2, "write attribute: identify time"); + LogStep(2, "write attribute: IdentifyTime"); return WaitAttribute(GetEndpoint(1), Identify::Id, Identify::Attributes::IdentifyTime::Id); } case 3: { - LogStep(3, "Readback attribute: identify time"); + LogStep(3, "Readback attribute: IdentifyTime"); return WaitAttribute(GetEndpoint(1), Identify::Id, Identify::Attributes::IdentifyTime::Id); } case 4: { diff --git a/zzz_generated/pump-app/zap-generated/endpoint_config.h b/zzz_generated/pump-app/zap-generated/endpoint_config.h index 7c0f3b9e0a5e69..4175c8b2a12042 100644 --- a/zzz_generated/pump-app/zap-generated/endpoint_config.h +++ b/zzz_generated/pump-app/zap-generated/endpoint_config.h @@ -260,8 +260,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x2) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x2) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(2) }, /* ClusterRevision */ \ \ diff --git a/zzz_generated/pump-controller-app/zap-generated/endpoint_config.h b/zzz_generated/pump-controller-app/zap-generated/endpoint_config.h index 3d245dfa1e2451..2614982aeceb09 100644 --- a/zzz_generated/pump-controller-app/zap-generated/endpoint_config.h +++ b/zzz_generated/pump-controller-app/zap-generated/endpoint_config.h @@ -251,8 +251,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x2) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x2) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(2) }, /* ClusterRevision */ \ \ diff --git a/zzz_generated/thermostat/zap-generated/endpoint_config.h b/zzz_generated/thermostat/zap-generated/endpoint_config.h index 7223877f53d5f6..628b2fbb615d52 100644 --- a/zzz_generated/thermostat/zap-generated/endpoint_config.h +++ b/zzz_generated/thermostat/zap-generated/endpoint_config.h @@ -113,7 +113,7 @@ { \ \ /* Endpoint: 0, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0000) }, /* identify time */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0000) }, /* IdentifyTime */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \ \ @@ -472,8 +472,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0000) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0000) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \ \ diff --git a/zzz_generated/tv-casting-app/zap-generated/endpoint_config.h b/zzz_generated/tv-casting-app/zap-generated/endpoint_config.h index aca7423155aa86..18555e81e4aee8 100644 --- a/zzz_generated/tv-casting-app/zap-generated/endpoint_config.h +++ b/zzz_generated/tv-casting-app/zap-generated/endpoint_config.h @@ -456,8 +456,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0000) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0000) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \ \ diff --git a/zzz_generated/window-app/zap-generated/endpoint_config.h b/zzz_generated/window-app/zap-generated/endpoint_config.h index 0127eddd7e7ce5..f968c8d69b4a90 100644 --- a/zzz_generated/window-app/zap-generated/endpoint_config.h +++ b/zzz_generated/window-app/zap-generated/endpoint_config.h @@ -452,8 +452,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x05) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x05) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \ \ @@ -522,8 +522,8 @@ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(5) }, /* ClusterRevision */ \ \ /* Endpoint: 2, Cluster: Identify (server) */ \ - { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* identify time */ \ - { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x05) }, /* identify type */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0) }, /* IdentifyTime */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x05) }, /* IdentifyType */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \ \