diff --git a/zboss/CHANGELOG.rst b/zboss/CHANGELOG.rst index 97b1847d86..7b4cbe87cc 100644 --- a/zboss/CHANGELOG.rst +++ b/zboss/CHANGELOG.rst @@ -12,11 +12,28 @@ All notable changes to this project in the |NCS| are documented in this file. nRF Connect SDK v2.6.0 ********************** +Updated +======= + +* The ZBOSS stack to version ``3.11.3.0+5.1.4``. + For detailed information, see `ZBOSS stack release notes`_ for the |NCS| v2.6.0 release. + Removed ======= * Precompiled development ZBOSS libraries. +Bug fixes +========= + +* Fixed security vulnerabilities. +* Fixed an issue with group command with group ID 0xFFF7. +* Fixed an issue with incorrect access type in Zigbee Discover Attributes Extended Response. +* Fixed an issue with incorrect handling of two "move to color" commands received in a row. +* Fixed an issue with incorrect validation of Manufacturer-specific attribute bit. +* Fixed an issue with incorrect response of ZC to beacon when joining is open. +* Fixed an issue that prevented defining individual reporting contexts when multiple endpoints are implemented. + nRF Connect SDK v2.3.0 ********************** diff --git a/zboss/production/include/ha/zb_ha_on_off_output.h b/zboss/production/include/ha/zb_ha_on_off_output.h new file mode 100644 index 0000000000..24483ff5ac --- /dev/null +++ b/zboss/production/include/ha/zb_ha_on_off_output.h @@ -0,0 +1,226 @@ +/* + * ZBOSS Zigbee 3.0 + * + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. + * www.dsr-zboss.com + * www.dsr-corporation.com + * All rights reserved. + * + * + * Use in source and binary forms, redistribution in binary form only, with + * or without modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 2. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 3. This software, with or without modification, must only be used with a Nordic + * Semiconductor ASA integrated circuit. + * + * 4. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/* PURPOSE: On/Off output device definition +*/ + +#ifndef ZB_HA_ON_OFF_OUTPUT_H +#define ZB_HA_ON_OFF_OUTPUT_H 1 + +#if defined ZB_HA_DEFINE_DEVICE_ON_OFF_OUTPUT || defined DOXYGEN + +/** @cond DOXYGEN_HA_SECTION */ + +/** + * @defgroup ha_on_off_output On/Off Output + * @addtogroup ha_on_off_output + * @ingroup ZB_HA_DEVICES + @{ + @details + On/Off Output device has 5 clusters (see spec 7.4.3): \n + - @ref ZB_ZCL_IDENTIFY \n + - @ref ZB_ZCL_BASIC \n + - @ref ZB_ZCL_ON_OFF \n + - @ref ZB_ZCL_SCENES \n + - @ref ZB_ZCL_GROUPS + + On/Off Output device sample + + @par Example + + - Declaring clusters: + + @snippet HA_samples/common/zcl_basic_attr_list.h BASIC_CLUSTER_COMMON + @snippet HA_samples/on_off_output/sample_zc.c COMMON_DECLARATION + + - Registering device list: + + @snippet HA_samples/on_off_output/sample_zc.c REGISTER + + - Example of command handler: + + @snippet HA_samples/on_off_output/sample_zc.c COMMAND_HANDLER + @snippet HA_samples/on_off_output/sample_zc.c ZCL_COMMAND_HANDLER + + @par +*/ + +#define ZB_HA_DEVICE_VER_ON_OFF_OUTPUT 0 /*!< On/Off Output device version */ + +/** @cond internals_doc */ +#define ZB_HA_ON_OFF_OUTPUT_IN_CLUSTER_NUM 5 /*!< On/Off output IN cluster number */ +#define ZB_HA_ON_OFF_OUTPUT_OUT_CLUSTER_NUM 0 /*!< On/Off output OUT cluster number */ + +#define ZB_HA_ON_OFF_OUTPUT_CLUSTER_NUM \ + (ZB_HA_ON_OFF_OUTPUT_IN_CLUSTER_NUM + ZB_HA_ON_OFF_OUTPUT_OUT_CLUSTER_NUM) + +/*! Number of attribute for reporting on On/Off output device */ +#define ZB_HA_ON_OFF_OUTPUT_REPORT_ATTR_COUNT \ + (ZB_ZCL_ON_OFF_REPORT_ATTR_COUNT) + +/** @endcond */ + +/** @brief Declare cluster list for On/Off output device + @param cluster_list_name - cluster list variable name + @param on_off_attr_list - attribute list for On/Off cluster + @param basic_attr_list - attribute list for Basic cluster + @param identify_attr_list - attribute list for Identify cluster + @param groups_attr_list - attribute list for Groups cluster + @param scenes_attr_list - attribute list for Scenes cluster + */ +#define ZB_HA_DECLARE_ON_OFF_OUTPUT_CLUSTER_LIST( \ + cluster_list_name, \ + on_off_attr_list, \ + basic_attr_list, \ + identify_attr_list, \ + groups_attr_list, \ + scenes_attr_list) \ + zb_zcl_cluster_desc_t cluster_list_name[] = \ + { \ + ZB_ZCL_CLUSTER_DESC( \ + ZB_ZCL_CLUSTER_ID_IDENTIFY, \ + ZB_ZCL_ARRAY_SIZE(identify_attr_list, zb_zcl_attr_t), \ + (identify_attr_list), \ + ZB_ZCL_CLUSTER_SERVER_ROLE, \ + ZB_ZCL_MANUF_CODE_INVALID \ + ), \ + ZB_ZCL_CLUSTER_DESC( \ + ZB_ZCL_CLUSTER_ID_BASIC, \ + ZB_ZCL_ARRAY_SIZE(basic_attr_list, zb_zcl_attr_t), \ + (basic_attr_list), \ + ZB_ZCL_CLUSTER_SERVER_ROLE, \ + ZB_ZCL_MANUF_CODE_INVALID \ + ), \ + ZB_ZCL_CLUSTER_DESC( \ + ZB_ZCL_CLUSTER_ID_ON_OFF, \ + ZB_ZCL_ARRAY_SIZE(on_off_attr_list, zb_zcl_attr_t), \ + (on_off_attr_list), \ + ZB_ZCL_CLUSTER_SERVER_ROLE, \ + ZB_ZCL_MANUF_CODE_INVALID \ + ), \ + ZB_ZCL_CLUSTER_DESC( \ + ZB_ZCL_CLUSTER_ID_GROUPS, \ + ZB_ZCL_ARRAY_SIZE(groups_attr_list, zb_zcl_attr_t), \ + (groups_attr_list), \ + ZB_ZCL_CLUSTER_SERVER_ROLE, \ + ZB_ZCL_MANUF_CODE_INVALID \ + ), \ + ZB_ZCL_CLUSTER_DESC( \ + ZB_ZCL_CLUSTER_ID_SCENES, \ + ZB_ZCL_ARRAY_SIZE(scenes_attr_list, zb_zcl_attr_t), \ + (scenes_attr_list), \ + ZB_ZCL_CLUSTER_SERVER_ROLE, \ + ZB_ZCL_MANUF_CODE_INVALID \ + ) \ + } + +/** @cond internals_doc */ + +/** @brief Declare simple descriptor for On/Off output device + @param ep_name - endpoint variable name + @param ep_id - endpoint ID + @param in_clust_num - number of supported input clusters + @param out_clust_num - number of supported output clusters + @note in_clust_num, out_clust_num should be defined by numeric constants, not variables or any + definitions, because these values are used to form simple descriptor type name +*/ +#define ZB_ZCL_DECLARE_ON_OFF_OUTPUT_SIMPLE_DESC(ep_name, ep_id, in_clust_num, out_clust_num) \ + ZB_DECLARE_SIMPLE_DESC(in_clust_num, out_clust_num); \ + ZB_AF_SIMPLE_DESC_TYPE(in_clust_num, out_clust_num) simple_desc_##ep_name = \ + { \ + ep_id, \ + ZB_AF_HA_PROFILE_ID, \ + ZB_HA_ON_OFF_OUTPUT_DEVICE_ID, \ + ZB_HA_DEVICE_VER_ON_OFF_OUTPUT, \ + 0, \ + in_clust_num, \ + out_clust_num, \ + { \ + ZB_ZCL_CLUSTER_ID_BASIC, \ + ZB_ZCL_CLUSTER_ID_IDENTIFY, \ + ZB_ZCL_CLUSTER_ID_ON_OFF, \ + ZB_ZCL_CLUSTER_ID_SCENES, \ + ZB_ZCL_CLUSTER_ID_GROUPS \ + } \ + } + + /** @endcond */ + +/** @brief Declare endpoint for On/off output device + @param ep_name - endpoint variable name + @param ep_id - endpoint ID + @param cluster_list - endpoint cluster list + */ +#define ZB_HA_DECLARE_ON_OFF_OUTPUT_EP(ep_name, ep_id, cluster_list) \ + ZB_ZCL_DECLARE_ON_OFF_OUTPUT_SIMPLE_DESC( \ + ep_name, \ + ep_id, \ + ZB_HA_ON_OFF_OUTPUT_IN_CLUSTER_NUM, \ + ZB_HA_ON_OFF_OUTPUT_OUT_CLUSTER_NUM); \ + ZBOSS_DEVICE_DECLARE_REPORTING_CTX(reporting_info## ep_name, \ + ZB_HA_ON_OFF_OUTPUT_REPORT_ATTR_COUNT); \ + ZB_AF_DECLARE_ENDPOINT_DESC(ep_name, \ + ep_id, \ + ZB_AF_HA_PROFILE_ID, \ + 0, \ + NULL, \ + ZB_ZCL_ARRAY_SIZE( \ + cluster_list, \ + zb_zcl_cluster_desc_t), \ + cluster_list, \ + (zb_af_simple_desc_1_1_t*)&simple_desc_##ep_name, \ + ZB_HA_ON_OFF_OUTPUT_REPORT_ATTR_COUNT, reporting_info## ep_name, \ + 0, NULL) + +/** @brief Declare On/Off Output device context. + @param device_ctx - device context variable name. + @param ep_name - endpoint variable name. + */ +#define ZB_HA_DECLARE_ON_OFF_OUTPUT_CTX(device_ctx, ep_name) \ + ZBOSS_DECLARE_DEVICE_CTX_1_EP(device_ctx, ep_name) + + +/*! @} */ + +/** @endcond */ /* DOXYGEN_HA_SECTION */ + +#endif /* ZB_HA_DEFINE_DEVICE_ON_OFF_OUTPUT */ + +#endif /* ZB_HA_ON_OFF_OUTPUT_H */ diff --git a/zboss/production/include/ha/zb_ha_on_off_switch.h b/zboss/production/include/ha/zb_ha_on_off_switch.h new file mode 100644 index 0000000000..32dd4c4a94 --- /dev/null +++ b/zboss/production/include/ha/zb_ha_on_off_switch.h @@ -0,0 +1,233 @@ +/* + * ZBOSS Zigbee 3.0 + * + * Copyright (c) 2012-2021 DSR Corporation, Denver CO, USA. + * www.dsr-zboss.com + * www.dsr-corporation.com + * All rights reserved. + * + * + * Use in source and binary forms, redistribution in binary form only, with + * or without modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 2. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 3. This software, with or without modification, must only be used with a Nordic + * Semiconductor ASA integrated circuit. + * + * 4. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/* PURPOSE: On/off switch device definition +*/ +#ifndef ZB_HA_ON_OFF_SWITCH_H +#define ZB_HA_ON_OFF_SWITCH_H 1 + +#if defined ZB_HA_DEFINE_DEVICE_ON_OFF_SWITCH || defined DOXYGEN + +/** @cond DOXYGEN_HA_SECTION */ + +/** + * @defgroup ha_on_off_switch On/Off Switch + * @ingroup ZB_HA_DEVICES + @{ + @details + On/Off Switch device has 6 clusters (see spec 7.4.1): \n + - @ref ZB_ZCL_IDENTIFY \n + - @ref ZB_ZCL_BASIC \n + - @ref ZB_ZCL_OOSC \n + - @ref ZB_ZCL_ON_OFF \n + - @ref ZB_ZCL_SCENES \n + - @ref ZB_ZCL_GROUPS + + On/Off Switch device sample + + @par Example + + - Declaring clusters: + + @snippet HA_samples/common/zcl_basic_attr_list.h BASIC_CLUSTER_COMMON + @snippet HA_samples/on_off_switch/sample_zc.c COMMON_DECLARATION + + - Registering device list: + + @snippet HA_samples/on_off_switch/sample_zc.c REGISTER + + - Example of command handler: + + @snippet HA_samples/on_off_switch/sample_zc.c COMMAND_HANDLER + @snippet HA_samples/on_off_switch/sample_zc.c ZCL_COMMAND_HANDLER + + @par +*/ + +/** @cond internals_doc */ +#define ZB_HA_DEVICE_VER_ON_OFF_SWITCH 0 /*!< On/Off Switch device version */ + +#define ZB_HA_ON_OFF_SWITCH_IN_CLUSTER_NUM 3 /*!< On/Off switch IN clusters number */ +#define ZB_HA_ON_OFF_SWITCH_OUT_CLUSTER_NUM 4 /*!< On/Off switch OUT clusters number */ + +#define ZB_HA_ON_OFF_SWITCH_CLUSTER_NUM \ + (ZB_HA_ON_OFF_SWITCH_IN_CLUSTER_NUM + ZB_HA_ON_OFF_SWITCH_OUT_CLUSTER_NUM) + +/*! Number of attribute for reporting on On/Off switch device */ +#define ZB_HA_ON_OFF_SWITCH_REPORT_ATTR_COUNT \ + (ZB_ZCL_ON_OFF_SWITCH_CONFIG_REPORT_ATTR_COUNT) + +/** @endcond */ + +/** @brief Declare cluster list for On/Off switch device + @param cluster_list_name - cluster list variable name + @param on_off_switch_config_attr_list - attribute list for On/off switch configuration cluster + @param basic_attr_list - attribute list for Basic cluster + @param identify_attr_list - attribute list for Identify cluster + */ +#define ZB_HA_DECLARE_ON_OFF_SWITCH_CLUSTER_LIST( \ + cluster_list_name, \ + on_off_switch_config_attr_list, \ + basic_attr_list, \ + identify_attr_list) \ + zb_zcl_cluster_desc_t cluster_list_name[] = \ + { \ + ZB_ZCL_CLUSTER_DESC( \ + ZB_ZCL_CLUSTER_ID_ON_OFF_SWITCH_CONFIG, \ + ZB_ZCL_ARRAY_SIZE(on_off_switch_config_attr_list, zb_zcl_attr_t), \ + (on_off_switch_config_attr_list), \ + ZB_ZCL_CLUSTER_SERVER_ROLE, \ + ZB_ZCL_MANUF_CODE_INVALID \ + ), \ + ZB_ZCL_CLUSTER_DESC( \ + ZB_ZCL_CLUSTER_ID_IDENTIFY, \ + ZB_ZCL_ARRAY_SIZE(identify_attr_list, zb_zcl_attr_t), \ + (identify_attr_list), \ + ZB_ZCL_CLUSTER_SERVER_ROLE, \ + ZB_ZCL_MANUF_CODE_INVALID \ + ), \ + ZB_ZCL_CLUSTER_DESC( \ + ZB_ZCL_CLUSTER_ID_BASIC, \ + ZB_ZCL_ARRAY_SIZE(basic_attr_list, zb_zcl_attr_t), \ + (basic_attr_list), \ + ZB_ZCL_CLUSTER_SERVER_ROLE, \ + ZB_ZCL_MANUF_CODE_INVALID \ + ), \ + ZB_ZCL_CLUSTER_DESC( \ + ZB_ZCL_CLUSTER_ID_ON_OFF, \ + 0, \ + NULL, \ + ZB_ZCL_CLUSTER_CLIENT_ROLE, \ + ZB_ZCL_MANUF_CODE_INVALID \ + ), \ + ZB_ZCL_CLUSTER_DESC( \ + ZB_ZCL_CLUSTER_ID_SCENES, \ + 0, \ + NULL, \ + ZB_ZCL_CLUSTER_CLIENT_ROLE, \ + ZB_ZCL_MANUF_CODE_INVALID \ + ), \ + ZB_ZCL_CLUSTER_DESC( \ + ZB_ZCL_CLUSTER_ID_IDENTIFY, \ + 0, \ + NULL, \ + ZB_ZCL_CLUSTER_CLIENT_ROLE, \ + ZB_ZCL_MANUF_CODE_INVALID \ + ), \ + ZB_ZCL_CLUSTER_DESC( \ + ZB_ZCL_CLUSTER_ID_GROUPS, \ + 0, \ + NULL, \ + ZB_ZCL_CLUSTER_CLIENT_ROLE, \ + ZB_ZCL_MANUF_CODE_INVALID \ + ) \ + } + + +/** @cond internals_doc */ +/** @brief Declare simple descriptor for On/Off switch device + @param ep_name - endpoint variable name + @param ep_id - endpoint ID + @param in_clust_num - number of supported input clusters + @param out_clust_num - number of supported output clusters + @note in_clust_num, out_clust_num should be defined by numeric constants, not variables or any + definitions, because these values are used to form simple descriptor type name +*/ +#define ZB_ZCL_DECLARE_ON_OFF_SWITCH_SIMPLE_DESC(ep_name, ep_id, in_clust_num, out_clust_num) \ + ZB_DECLARE_SIMPLE_DESC(in_clust_num, out_clust_num); \ + ZB_AF_SIMPLE_DESC_TYPE(in_clust_num, out_clust_num) simple_desc_##ep_name = \ + { \ + ep_id, \ + ZB_AF_HA_PROFILE_ID, \ + ZB_HA_ON_OFF_SWITCH_DEVICE_ID, \ + ZB_HA_DEVICE_VER_ON_OFF_SWITCH, \ + 0, \ + in_clust_num, \ + out_clust_num, \ + { \ + ZB_ZCL_CLUSTER_ID_BASIC, \ + ZB_ZCL_CLUSTER_ID_IDENTIFY, \ + ZB_ZCL_CLUSTER_ID_ON_OFF_SWITCH_CONFIG, \ + ZB_ZCL_CLUSTER_ID_ON_OFF, \ + ZB_ZCL_CLUSTER_ID_SCENES, \ + ZB_ZCL_CLUSTER_ID_GROUPS, \ + ZB_ZCL_CLUSTER_ID_IDENTIFY, \ + } \ + } + +/** @endcond */ + +/** @brief Declare endpoint for On/off Switch device + @param ep_name - endpoint variable name + @param ep_id - endpoint ID + @param cluster_list - endpoint cluster list + */ +#define ZB_HA_DECLARE_ON_OFF_SWITCH_EP(ep_name, ep_id, cluster_list) \ + ZB_ZCL_DECLARE_ON_OFF_SWITCH_SIMPLE_DESC( \ + ep_name, \ + ep_id, \ + ZB_HA_ON_OFF_SWITCH_IN_CLUSTER_NUM, \ + ZB_HA_ON_OFF_SWITCH_OUT_CLUSTER_NUM); \ + ZB_AF_DECLARE_ENDPOINT_DESC(ep_name, \ + ep_id, \ + ZB_AF_HA_PROFILE_ID, \ + 0, \ + NULL, \ + ZB_ZCL_ARRAY_SIZE(cluster_list, zb_zcl_cluster_desc_t), \ + cluster_list, \ + (zb_af_simple_desc_1_1_t*)&simple_desc_##ep_name, \ + 0, NULL, /* No reporting ctx */ \ + 0, NULL) /* No CVC ctx */ + +/** @brief Declare On/Off Switch device context. + @param device_ctx - device context variable name. + @param ep_name - endpoint variable name. +*/ +#define ZB_HA_DECLARE_ON_OFF_SWITCH_CTX(device_ctx, ep_name) \ + ZBOSS_DECLARE_DEVICE_CTX_1_EP(device_ctx, ep_name) + + +/*! @} */ + +/** @endcond */ /* DOXYGEN_HA_SECTION */ + +#endif /* ZB_HA_DEFINE_DEVICE_ON_OFF_SWITCH */ + +#endif /* ZB_HA_ON_OFF_SWITCH_H */ diff --git a/zboss/production/include/osif/build_info.h b/zboss/production/include/osif/build_info.h index 850c6d99c5..bf47949567 100644 --- a/zboss/production/include/osif/build_info.h +++ b/zboss/production/include/osif/build_info.h @@ -11,66 +11,69 @@ * Please use release scripts to update it's contents. * * Repositories: - * platform_ncs d86d8e92f77d0676adcf160fd597819480a95dd5 https://projecttools.nordicsemi.no/bitbucket/scm/ZOI/platform_ncs.git - * zboss-stack-src a7b9cdd6212a96dad981e8b40da8e606188e7616 https://projecttools.nordicsemi.no/bitbucket/scm/zoi/zboss_stable - * zboss-stack-doc 696296a5555bc9bb703e104b6d057236e0f9cd25 https://projecttools.nordicsemi.no/bitbucket/scm/zoi/zboss_doc - * nrf 1df0b2611d91229da2233b26b6e6da871d726bf0 https://github.com/nrfconnect/sdk-nrf - * zephyr 87138104fa60dae4b2fa61ae0c03559b6e555ee2 https://github.com/nrfconnect/sdk-zephyr - * sdk-hostap 8d3f26d7da1b49815fbd0fe8335189cfac4ded85 https://github.com/nrfconnect/sdk-hostap - * mcuboot d97046ef74ccb932531521a8380c4a831cb344f4 https://github.com/nrfconnect/sdk-mcuboot - * mbedtls 89419b374d17d30b7637cfb91f699c2d8432127a https://github.com/nrfconnect/sdk-mbedtls - * nrfxlib 161b58f53846891351812d621116e7d6b0eb0e50 https://github.com/nrfconnect/sdk-nrfxlib - * trusted-firmware-m 81e6a7fbbc972b95affc9b6805b62237d0ffd6f4 https://github.com/nrfconnect/sdk-trusted-firmware-m - * matter 0a72fe40ed90d5162bd2419e203ca8036c7345b2 https://github.com/nrfconnect/sdk-connectedhomeip + * platform_ncs 1366df8ca7f42a702dbec8d494a0015e85837755 https://projecttools.nordicsemi.no/bitbucket/scm/ZOI/platform_ncs.git + * zboss-stack-src 5c339a77a158b29b0072141573e9f7e661cac96c https://projecttools.nordicsemi.no/bitbucket/scm/zoi/zboss_stable + * zboss-stack-doc 31a9182d4fc43bfedbcc1bb1dab2aec4e07288ad https://projecttools.nordicsemi.no/bitbucket/scm/zoi/zboss_doc + * nrf 68bd648703fd5500e178a5e9ef2dd6fd98018245 https://github.com/nrfconnect/sdk-nrf + * zephyr 0fa93fad62c1cf6fb1f4c0f8fa30afcb0dbe50aa https://github.com/nrfconnect/sdk-zephyr + * hostap c66e5de97a44c77ec87a86ded88636a92d7ceea6 https://github.com/nrfconnect/sdk-hostap + * wfa-qt-control-app b3cea7b770cf8270cf25831cf3c9db063234e603 https://github.com/nrfconnect/sdk-wi-fiquicktrack-controlappc + * mcuboot 323fb663e832d4c45eb2fc2d30a3955684791b7d https://github.com/nrfconnect/sdk-mcuboot + * qcbor 751d36583a9ce1a640900c57e13c9b6b8f3a2ba2 https://github.com/laurencelundblade/QCBOR.git + * mbedtls 4625a6097993a0bae01f809aacd48ee2c9cb1d0b https://github.com/nrfconnect/sdk-mbedtls + * nrfxlib 502ce15474c2619e3ef9291588357dd2ddf31fb0 https://github.com/nrfconnect/sdk-nrfxlib + * trusted-firmware-m 51fe43807f8d968de0b0df01862f9a20d9f119e6 https://github.com/nrfconnect/sdk-trusted-firmware-m + * psa-arch-tests 94a349db22cd0e44136c281724ffc71b6e7391c3 https://github.com/nrfconnect/sdk-psa-arch-tests + * matter 0b7d6e4909f070d20e0f5532927a7241f5de9364 https://github.com/nrfconnect/sdk-connectedhomeip * cjson c6af068b7f05207b28d68880740e4b9ec1e4b50a https://github.com/nrfconnect/sdk-cjson * azure-sdk-for-c 308c171cb4b5eed266649012a68406487ec81fb2 https://github.com/nrfconnect/azure-sdk-for-c + * cirrus 3873a08377d93a479105a75ac390d3bbcd31d690 https://github.com/nrfconnect/sdk-mcu-drivers + * openthread b9dcdbca4edd348e924d7579a2bada48bf085645 https://github.com/nrfconnect/sdk-openthread * cmock f65066f15d8248e6dcb778efb8739904a4512087 https://github.com/ThrowTheSwitch/cmock - * memfault-firmware-sdk dbe84b934757ce8ed78cf7840ff1b701f5657fe9 https://github.com/memfault/memfault-firmware-sdk - * cirrus 9f6b3812237fbb0d4157ba3584c13f1644fcbe3a https://github.com/nrfconnect/sdk-mcu-drivers - * openthread 55074652907295709f9f3361244a6e76f732bcba https://github.com/nrfconnect/sdk-openthread - * canopennode 53d3415c14d60f8f4bfca54bfbc5d5a667d7e724 https://github.com/zephyrproject-rtos/canopennode - * chre fe0ab36e0fa7453a4c9b97bedac89709f45cf965 https://github.com/zephyrproject-rtos/chre - * cmsis 74981bf893e8b10931464b9945e2143d99a3f0a3 https://github.com/zephyrproject-rtos/cmsis - * edtt 000fb87261beaf33f80a8868e73857bd62edc668 https://github.com/zephyrproject-rtos/edtt - * fatfs 38f303ad09fdd687ee066a938f65ad708dd5989d https://github.com/zephyrproject-rtos/fatfs - * hal_nordic fe0be3c3546e136a67264084c0e3edfd7354645a https://github.com/zephyrproject-rtos/hal_nordic - * hal_st cccbc24c14decfd3f93959f7b14514536af973c7 https://github.com/zephyrproject-rtos/hal_st + * memfault-firmware-sdk 3d51c80bc58933671403eca7c5250a9b03294c5e https://github.com/memfault/memfault-firmware-sdk + * bsim 384a091445c57b44ac8cbd18ebd245b47c71db94 https://github.com/BabbleSim/bsim_west + * canopennode dec12fa3f0d790cafa8414a4c2930ea71ab72ffd https://github.com/zephyrproject-rtos/canopennode + * chre 3b32c76efee705af146124fb4190f71be5a4e36e https://github.com/zephyrproject-rtos/chre + * lz4 8e303c264fc21c2116dc612658003a22e933124d https://github.com/zephyrproject-rtos/lz4 + * nanopb 42fa8b211e946b90b9d968523fce7b1cfe27617e https://github.com/zephyrproject-rtos/nanopb + * tf-m-tests 08a3158f0623a4205608a52d880b17ae394e31d2 https://github.com/zephyrproject-rtos/tf-m-tests + * zscilib 34a94b0995683822fa3626dcd5d838301c94c350 https://github.com/zephyrproject-rtos/zscilib + * cmsis 4b96cbb174678dcd3ca86e11e1f24bc5f8726da0 https://github.com/zephyrproject-rtos/cmsis + * cmsis-dsp ff7b5fd1ea5f094665c090c343ec44e74dc0b193 https://github.com/zephyrproject-rtos/cmsis-dsp + * cmsis-nn 0c8669d81381ccf3b1a01d699f3b68b50134a99f https://github.com/zephyrproject-rtos/cmsis-nn + * edtt 64e5105ad82390164fb73fc654be3f73a608209a https://github.com/zephyrproject-rtos/edtt + * fatfs 427159bf95ea49b7680facffaa29ad506b42709b https://github.com/zephyrproject-rtos/fatfs + * hal_nordic dce8519f7da37b0a745237679fd3f88250b495ff https://github.com/zephyrproject-rtos/hal_nordic + * hal_st fb8e79d1a261fd02aadff7c142729f1954163cf3 https://github.com/zephyrproject-rtos/hal_st * hal_wurthelektronik 24ca9873c3d608fad1fea0431836bc8f144c132e https://github.com/zephyrproject-rtos/hal_wurthelektronik - * libmetal efa2ace6028290ddee494a78ade772a0b112ab83 https://github.com/zephyrproject-rtos/libmetal + * libmetal 03140d7f4bd9ba474ebfbb6256e84a9089248e67 https://github.com/zephyrproject-rtos/libmetal * liblc3 448f3de31f49a838988a162ef1e23a89ddf2d2ed https://github.com/zephyrproject-rtos/liblc3 * littlefs ca583fd297ceb48bced3c2548600dc615d67af24 https://github.com/zephyrproject-rtos/littlefs - * loramac-node ce57712f3e426bbbb13acaec97b45369f716f43a https://github.com/zephyrproject-rtos/loramac-node - * lvgl 5ab83099854719ed326b6ecb9b09b07b1eee4818 https://github.com/zephyrproject-rtos/lvgl - * lz4 8e303c264fc21c2116dc612658003a22e933124d https://github.com/zephyrproject-rtos/lz4 - * mipi-sys-t 0d521d8055f3b2b4842f728b0365d3f0ece9c37f https://github.com/zephyrproject-rtos/mipi-sys-t - * nanopb dc4deed54fd4c7e1935e3b6387eedf21bb45dc38 https://github.com/zephyrproject-rtos/nanopb - * net-tools e0828aa9629b533644dc96ff6d1295c939bd713c https://github.com/zephyrproject-rtos/net-tools - * nrf_hw_models 65bc5305d432c08e24a3f343006d1e7deaff4908 https://github.com/zephyrproject-rtos/nrf_hw_models - * open-amp aedcc262f93bbb1b0c2f58026911575729b7465c https://github.com/zephyrproject-rtos/open-amp - * picolibc 04ada5951cbaf8e7b17f8226ce31cb6837c28ba7 https://github.com/zephyrproject-rtos/picolibc - * segger d4e568a920b4bd087886170a5624c167b2d0665e https://github.com/zephyrproject-rtos/segger - * tinycbor 9e1f34bc08123aaad7666d3652aaa839e8178b3b https://github.com/zephyrproject-rtos/tinycbor + * loramac-node 842413c5fb98707eb5f26e619e8e792453877897 https://github.com/zephyrproject-rtos/loramac-node + * lvgl 7c61a4cec26402d20c845c95dcad0e39dcd319f8 https://github.com/zephyrproject-rtos/lvgl + * mipi-sys-t a819419603a2dfcb47f7f39092e1bc112e45d1ef https://github.com/zephyrproject-rtos/mipi-sys-t + * net-tools d68ee9d17648a1bb3729c2023abfcb735dfe92fa https://github.com/zephyrproject-rtos/net-tools + * nrf_hw_models 52d0b4b7b7431d8da6222cc3b17a8afdcb099baf https://github.com/zephyrproject-rtos/nrf_hw_models + * open-amp 214f9fc1539f8e5937c0474cb6ee29b6dcb2d4b8 https://github.com/zephyrproject-rtos/open-amp + * picolibc 1a5c603b9f8e228f9459bdafedad15ea28efc700 https://github.com/zephyrproject-rtos/picolibc + * segger 9d0191285956cef43daf411edc2f1a7788346def https://github.com/zephyrproject-rtos/segger * tinycrypt 3e9a49d2672ec01435ffbf0d788db6d95ef28de0 https://github.com/zephyrproject-rtos/tinycrypt - * TraceRecorderSource d92607521335eaaaedb01b241cdd26fda48a5ca6 https://github.com/zephyrproject-rtos/TraceRecorderSource - * tf-m-tests bcb53bccccdc05c713aade707e7a8ddad35c210f https://github.com/zephyrproject-rtos/tf-m-tests - * psa-arch-tests f4fc2442b8e29e2a03d9899e46e5a3ea3df8c2c9 https://github.com/zephyrproject-rtos/psa-arch-tests - * uoscore-uedhoc e8920192b66db4f909eb9cd3f155d5245c1ae825 https://github.com/zephyrproject-rtos/uoscore-uedhoc - * zcbor 0556edac504d1f34699aa8a22fcd507c14756c9e https://github.com/zephyrproject-rtos/zcbor - * zscilib ca070ddabdaf67175a2da901d0bd62e8899371c5 https://github.com/zephyrproject-rtos/zscilib + * uoscore-uedhoc 150f4eb2955eaf36ac0f9519d4f4f58d5ade5740 https://github.com/zephyrproject-rtos/uoscore-uedhoc + * zcbor d3093b5684f62268c7f27f8a5079f166772619de https://github.com/zephyrproject-rtos/zcbor */ /** ZBOSS build tag */ -#define ZBOSS_BUILD_TAG "ncs_release-3.11.2.1" +#define ZBOSS_BUILD_TAG "ncs_release-3.11.3.0" /** ZBOSS platform build tag */ -#define ZBOSS_PLATFORM_BUILD_TAG "v3.11.2.1+v5.1.3" +#define ZBOSS_PLATFORM_BUILD_TAG "v3.11.3.0+v5.1.4" /** ZBOSS build date (UTC) */ -#define ZBOSS_BUILD_DATE 20230220 +#define ZBOSS_BUILD_DATE 20240229 /** ZBOSS build time (UTC) */ -#define ZBOSS_BUILD_TIME 080243 +#define ZBOSS_BUILD_TIME 112147 #endif /* ZBOSS_BUILD_INFO_H__ */ diff --git a/zboss/production/include/osif/mac_platform.h b/zboss/production/include/osif/mac_platform.h index 78228a5b04..2b6f287db5 100644 --- a/zboss/production/include/osif/mac_platform.h +++ b/zboss/production/include/osif/mac_platform.h @@ -218,5 +218,6 @@ zb_transceiver_ctx_t; */ #define ZB_TRANS_CUT_SPECIFIC_HEADER(zb_buffer) +#define ZB_TRANSCEIVER_SET_AUTO_ACK_OFF() zb_macll_set_auto_ack_off() #endif /* ZB_MAC_PLATFORM_H__ */ diff --git a/zboss/production/include/osif/zb_macll.h b/zboss/production/include/osif/zb_macll.h index 5455a8470c..82a2cff90a 100644 --- a/zboss/production/include/osif/zb_macll.h +++ b/zboss/production/include/osif/zb_macll.h @@ -98,4 +98,6 @@ void zb_macll_set_received_data_status(zb_bufid_t bufid, zb_bool_t pending_bit); zb_ret_t zb_macll_tx_carrier(zb_uint8_t channel, zb_time_t timeout_bi); +#define zb_macll_set_auto_ack_off zb_trans_set_auto_ack_off + #endif /* ZB_MACLL_H__ */ diff --git a/zboss/production/include/osif/zb_revision_r22.h b/zboss/production/include/osif/zb_revision_r22.h index ed389e1367..ede1d44bf2 100644 --- a/zboss/production/include/osif/zb_revision_r22.h +++ b/zboss/production/include/osif/zb_revision_r22.h @@ -29,11 +29,11 @@ * * Note: This value is automatically updated by the release script. */ -#define ZBOSS_PLATFORM_PATCH 3U +#define ZBOSS_PLATFORM_PATCH 4U /** * Patch version number of the ZBOSS core. * * Note: This value is automatically updated by the release script. */ -#define ZBOSS_PATCH 2U +#define ZBOSS_PATCH 3U diff --git a/zboss/production/include/osif/zb_transceiver.h b/zboss/production/include/osif/zb_transceiver.h index e134699446..b4c81a5600 100644 --- a/zboss/production/include/osif/zb_transceiver.h +++ b/zboss/production/include/osif/zb_transceiver.h @@ -33,5 +33,6 @@ zb_uint8_t zb_trans_get_next_packet(zb_bufid_t buf); zb_ret_t zb_trans_cca(void); zb_ret_t zb_trans_continuous_carrier(void); void zb_trans_set_crcpoly(zb_uint32_t iv, zb_uint32_t polynomial); +void zb_trans_set_auto_ack_off(void); #endif /* ZB_TRANSCEIVER_H__ */ diff --git a/zboss/production/include/osif/zb_vendor.h b/zboss/production/include/osif/zb_vendor.h index 8acef98daf..dc6a7d9e3a 100644 --- a/zboss/production/include/osif/zb_vendor.h +++ b/zboss/production/include/osif/zb_vendor.h @@ -315,9 +315,13 @@ /* Include Zigbee HA clusters implementation (always defined, except macsplit). */ #define ZB_ENABLE_HA +/* HA declarations needed for RTP_SEC_17-18-19 tests */ +#define ZB_HA_DEFINE_DEVICE_ON_OFF_SWITCH +#define ZB_HA_DEFINE_DEVICE_ON_OFF_OUTPUT + /* Include all ZCL clusters. */ #define ZB_ZCL_SUPPORT_CLUSTER_ALARMS -#define ZB_ZCL_SUPPORT_CLUSTER_BASIC +// #define ZB_ZCL_SUPPORT_CLUSTER_BASIC #define ZB_ZCL_SUPPORT_CLUSTER_BINARY_INPUT #define ZB_ZCL_SUPPORT_CLUSTER_COLOR_CONTROL #define ZB_ZCL_SUPPORT_CLUSTER_DEHUMIDIFICATION_CONTROL @@ -326,27 +330,27 @@ #define ZB_ZCL_SUPPORT_CLUSTER_DRLC #define ZB_ZCL_SUPPORT_CLUSTER_EN50523_APPLIANCE_EVENTS_AND_ALERTS #define ZB_ZCL_SUPPORT_CLUSTER_FAN_CONTROL -#define ZB_ZCL_SUPPORT_CLUSTER_GROUPS +// #define ZB_ZCL_SUPPORT_CLUSTER_GROUPS #define ZB_ZCL_SUPPORT_CLUSTER_GROUPS_CLIENT #define ZB_ZCL_SUPPORT_CLUSTER_IAS_ACE #define ZB_ZCL_SUPPORT_CLUSTER_IAS_WD #define ZB_ZCL_SUPPORT_CLUSTER_IAS_ZONE -#define ZB_ZCL_SUPPORT_CLUSTER_IDENTIFY +// #define ZB_ZCL_SUPPORT_CLUSTER_IDENTIFY #define ZB_ZCL_SUPPORT_CLUSTER_ILLUMINANCE_MEASUREMENT #define ZB_ZCL_SUPPORT_CLUSTER_LEVEL_CONTROL #define ZB_ZCL_SUPPORT_CLUSTER_MESSAGING #define ZB_ZCL_SUPPORT_CLUSTER_METER_IDENTIFICATION #define ZB_ZCL_SUPPORT_CLUSTER_METERING #define ZB_ZCL_SUPPORT_CLUSTER_OCCUPANCY_SENSING -#define ZB_ZCL_SUPPORT_CLUSTER_ON_OFF -#define ZB_ZCL_SUPPORT_CLUSTER_ON_OFF_SWITCH_CONFIG +// #define ZB_ZCL_SUPPORT_CLUSTER_ON_OFF +// #define ZB_ZCL_SUPPORT_CLUSTER_ON_OFF_SWITCH_CONFIG #define ZB_ZCL_SUPPORT_CLUSTER_OTA_UPGRADE #define ZB_ZCL_SUPPORT_CLUSTER_POLL_CONTROL #define ZB_ZCL_SUPPORT_CLUSTER_POWER_CONFIG #define ZB_ZCL_SUPPORT_CLUSTER_PRESSURE_MEASUREMENT #define ZB_ZCL_SUPPORT_CLUSTER_PRICE #define ZB_ZCL_SUPPORT_CLUSTER_REL_HUMIDITY_MEASUREMENT -#define ZB_ZCL_SUPPORT_CLUSTER_SCENES +// #define ZB_ZCL_SUPPORT_CLUSTER_SCENES #define ZB_ZCL_SUPPORT_CLUSTER_SHADE_CONFIG #define ZB_ZCL_SUPPORT_CLUSTER_TEMP_MEASUREMENT #define ZB_ZCL_SUPPORT_CLUSTER_THERMOSTAT diff --git a/zboss/production/include/zb_address.h b/zboss/production/include/zb_address.h index ec394b4beb..79bc649a03 100644 --- a/zboss/production/include/zb_address.h +++ b/zboss/production/include/zb_address.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2021 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -614,6 +614,25 @@ void zb_ieee_addr_compress(const zb_ieee_addr_t address, zb_ieee_addr_compressed */ void zb_ieee_addr_decompress(zb_ieee_addr_t address, zb_ieee_addr_compressed_t *compressed_address); +/** + Check that two address refs refer to the one address. + In this case one record is regular, second - redirect. + Also returns returns true if addr_ref_a is equal to addr_ref_b. + + @param addr_ref_a Address ref to compare. + @param addr_ref_b Address ref to compare. + @return zb_bool_t ZB_FALSE if these address refs refer to different addresses. + ZB_TRUE otherwise. + */ +zb_bool_t zb_address_cmp_two_refs(zb_address_ieee_ref_t addr_ref_a, zb_address_ieee_ref_t addr_ref_b); + +/** + * @brief Check if address tables have enough memory for the new address + * + @param new_addr - new uncompressed IEEE address + * @return zb_bool_t ZB_TRUE if there is enough memory, ZB_FALSE otherwise. + */ +zb_bool_t zb_address_check_mem_for_new_addr(const zb_ieee_addr_t new_addr); /*! @endcond */ /*! @} */ diff --git a/zboss/production/include/zb_trace.h b/zboss/production/include/zb_trace.h index 82163837be..7d836a7c60 100644 --- a/zboss/production/include/zb_trace.h +++ b/zboss/production/include/zb_trace.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -705,6 +705,8 @@ typedef struct zb_byte128_struct_s #define FMT__D_H_D_P_D TRACE_ARG_SIZE(1,3,0,1,0) #define FMT__D_H_H TRACE_ARG_SIZE(2,1,0,0,0) #define FMT__D_H_H_D TRACE_ARG_SIZE(2,2,0,0,0) +#define FMT__D_H_H_D_H TRACE_ARG_SIZE(3,2,0,0,0) +#define FMT__D_H_H_D_H_D TRACE_ARG_SIZE(3,3,0,0,0) #define FMT__D_H_H_D_D_D_D TRACE_ARG_SIZE(2,5,0,0,0) #define FMT__D_H_H_H TRACE_ARG_SIZE(3,1,0,0,0) #define FMT__D_H_H_H_H TRACE_ARG_SIZE(4,1,0,0,0) @@ -985,6 +987,7 @@ typedef struct zb_byte128_struct_s #define FMT__H_A_H_H_H_H_H TRACE_ARG_SIZE(6,0,0,0,1) #define FMT__H_D_A_H TRACE_ARG_SIZE(2,1,0,0,1) #define FMT__D_A_H_D TRACE_ARG_SIZE(1,2,0,0,1) +#define FMT__D_D_A_H TRACE_ARG_SIZE(1,2,0,0,1) #define FMT__P_H_H_H_H_H_H_H_H TRACE_ARG_SIZE(8,0,0,1,0) #define FMT__D_D_H_L_H_H TRACE_ARG_SIZE(3,2,1,0,0) #define FMT__D_H_L_H_H TRACE_ARG_SIZE(3,1,1,0,0) diff --git a/zboss/production/include/zb_version.h b/zboss/production/include/zb_version.h index 892668670b..7775b34681 100644 --- a/zboss/production/include/zb_version.h +++ b/zboss/production/include/zb_version.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. diff --git a/zboss/production/include/zboss_api_nwk.h b/zboss/production/include/zboss_api_nwk.h index 1f6c012d4d..b17d72453d 100644 --- a/zboss/production/include/zboss_api_nwk.h +++ b/zboss/production/include/zboss_api_nwk.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2021 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -677,20 +677,26 @@ void zb_enable_panid_conflict_resolution(zb_bool_t status); /** @endcond */ /* internals_doc */ /** @} */ /* nwk_panid_conflicts */ -#ifdef ZB_LOW_SECURITY_MODE /** @addtogroup nwk_management_service NWK management service * @{ */ +#ifdef ZB_LOW_SECURITY_MODE /** Public API to set device security level to 0 + @deprecated This function will be removed in the next Major release after june 2023. + Now security level is always equal to 5. */ void zb_disable_nwk_security(void); /** Public API to set device security level to 5 + @deprecated This function will be removed in the next Major release after june 2023. + Now security level is always equal to 5. */ void zb_enable_nwk_security(void); +#endif /* ZB_LOW_SECURITY_MODE */ +#ifdef ZB_NWK_CONFIGURABLE_DST_IEEE_IN_HDR /** Configure Destination IEEE policy for out NWK frames @@ -699,8 +705,8 @@ void zb_enable_nwk_security(void); Default value is ZB_TRUE. */ void zb_nwk_set_ieee_policy(zb_bool_t put_always); +#endif /* ZB_NWK_CONFIGURABLE_DST_IEEE_IN_HDR */ /** @} */ /* nwk_management_service */ -#endif /*ZB_LOW_SECURITY_MODE*/ /** @addtogroup nwk_mtorr NWK MTORR functionality * @{ diff --git a/zboss/production/include/zboss_api_zcl.h b/zboss/production/include/zboss_api_zcl.h index 8def02ed39..5c84ce3211 100644 --- a/zboss/production/include/zboss_api_zcl.h +++ b/zboss/production/include/zboss_api_zcl.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -287,11 +287,23 @@ /** * @brief Set "Check attribute value" callback. * The macro sets a callback being called for need to check attribute value. + * + * @deprecated This callback will be removed in the next Major release after February 2023 + * Use @ref ZB_ZCL_CHECK_ATTR_VALUE_MANUF_CB instead + * * @param func_ptr - callback to set (of type @ref zb_zcl_app_check_attr_value_cb_t). * @hideinitializer */ #define ZB_ZCL_CHECK_ATTR_VALUE_CB(func_ptr) ZCL_CTX().app_check_attr_value_cb = (func_ptr) +/** + * @brief Set "Check attribute value" callback to check with manufacturer specific code. + * The macro sets a callback being called for need to check attribute value. + * @param func_ptr - callback to set (of type @ref zb_zcl_app_check_attr_value_manuf_cb_t). + * @hideinitializer + */ +#define ZB_ZCL_CHECK_ATTR_VALUE_MANUF_CB(func_ptr) ZCL_CTX().app_check_attr_value_manuf_cb = (func_ptr) + /** @brief Set "Discovery manufacture command" callback. The macro sets a callback that will be called to get a list of manufacture specific commands. @@ -2434,8 +2446,14 @@ typedef struct zb_zcl_globals_s /** @internal Set default value all attributes */ zb_zcl_set_default_value_attr_cb_t set_default_attr_cb; - /** @internal Check attribute value */ + /** @internal Check attribute value + * + * @deprecated This callback will be removed in the next Major release after February 2023 + * Use @ref app_check_attr_value_manuf_cb instead + */ zb_zcl_app_check_attr_value_cb_t app_check_attr_value_cb; + /** @internal Check attribute value with manufacturer specific code */ + zb_zcl_app_check_attr_value_manuf_cb_t app_check_attr_value_manuf_cb; #ifdef ZB_HA_ENABLE_OTA_UPGRADE_SERVER zb_zcl_ota_upgrade_next_data_ind_t ota_upgrade_next_data_ind_cb; #endif /* ZB_HA_ENABLE_OTA_UPGRADE_SERVER */ diff --git a/zboss/production/include/zcl/zb_zcl_basic.h b/zboss/production/include/zcl/zb_zcl_basic.h index 880178ff2d..80d30ca308 100644 --- a/zboss/production/include/zcl/zb_zcl_basic.h +++ b/zboss/production/include/zcl/zb_zcl_basic.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -251,7 +251,8 @@ typedef struct zb_zcl_basic_disable_local_conf_s ZB_ZCL_ATTR_BASIC_ZCL_VERSION_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_BASIC_APPLICATION_VERSION_ID(data_ptr) \ @@ -259,7 +260,8 @@ typedef struct zb_zcl_basic_disable_local_conf_s ZB_ZCL_ATTR_BASIC_APPLICATION_VERSION_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_BASIC_STACK_VERSION_ID(data_ptr) \ @@ -267,7 +269,8 @@ typedef struct zb_zcl_basic_disable_local_conf_s ZB_ZCL_ATTR_BASIC_STACK_VERSION_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_BASIC_HW_VERSION_ID(data_ptr) \ @@ -275,7 +278,8 @@ typedef struct zb_zcl_basic_disable_local_conf_s ZB_ZCL_ATTR_BASIC_HW_VERSION_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_BASIC_MANUFACTURER_NAME_ID(data_ptr) \ @@ -283,7 +287,8 @@ typedef struct zb_zcl_basic_disable_local_conf_s ZB_ZCL_ATTR_BASIC_MANUFACTURER_NAME_ID, \ ZB_ZCL_ATTR_TYPE_CHAR_STRING, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_BASIC_MODEL_IDENTIFIER_ID(data_ptr) \ @@ -291,7 +296,8 @@ typedef struct zb_zcl_basic_disable_local_conf_s ZB_ZCL_ATTR_BASIC_MODEL_IDENTIFIER_ID, \ ZB_ZCL_ATTR_TYPE_CHAR_STRING, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_BASIC_DATE_CODE_ID(data_ptr) \ @@ -299,7 +305,8 @@ typedef struct zb_zcl_basic_disable_local_conf_s ZB_ZCL_ATTR_BASIC_DATE_CODE_ID, \ ZB_ZCL_ATTR_TYPE_CHAR_STRING, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_BASIC_POWER_SOURCE_ID(data_ptr) \ @@ -307,7 +314,8 @@ typedef struct zb_zcl_basic_disable_local_conf_s ZB_ZCL_ATTR_BASIC_POWER_SOURCE_ID, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_BASIC_LOCATION_DESCRIPTION_ID(data_ptr) \ @@ -315,7 +323,8 @@ typedef struct zb_zcl_basic_disable_local_conf_s ZB_ZCL_ATTR_BASIC_LOCATION_DESCRIPTION_ID, \ ZB_ZCL_ATTR_TYPE_CHAR_STRING, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_BASIC_PHYSICAL_ENVIRONMENT_ID(data_ptr) \ @@ -323,7 +332,8 @@ typedef struct zb_zcl_basic_disable_local_conf_s ZB_ZCL_ATTR_BASIC_PHYSICAL_ENVIRONMENT_ID, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_BASIC_DEVICE_ENABLED_ID(data_ptr) \ @@ -331,7 +341,8 @@ typedef struct zb_zcl_basic_disable_local_conf_s ZB_ZCL_ATTR_BASIC_DEVICE_ENABLED_ID, \ ZB_ZCL_ATTR_TYPE_BOOL, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_BASIC_SW_BUILD_ID(data_ptr) \ @@ -339,7 +350,8 @@ typedef struct zb_zcl_basic_disable_local_conf_s ZB_ZCL_ATTR_BASIC_SW_BUILD_ID, \ ZB_ZCL_ATTR_TYPE_CHAR_STRING, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #if defined ZB_ZCL_SUPPORT_CLUSTER_SCENES diff --git a/zboss/production/include/zcl/zb_zcl_binary_input.h b/zboss/production/include/zcl/zb_zcl_binary_input.h index 1a7dee4e15..db1880a7dd 100644 --- a/zboss/production/include/zcl/zb_zcl_binary_input.h +++ b/zboss/production/include/zcl/zb_zcl_binary_input.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -253,16 +253,18 @@ enum zb_zcl_binary_input_status_flag_value_e ZB_ZCL_ATTR_BINARY_INPUT_OUT_OF_SERVICE_ID, \ ZB_ZCL_ATTR_TYPE_BOOL, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_WRITE_OPTIONAL, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } /* Optionally, access to this attribute may be changed to READ_WRITE */ #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_BINARY_INPUT_PRESENT_VALUE_ID(data_ptr) \ -{ \ - ZB_ZCL_ATTR_BINARY_INPUT_PRESENT_VALUE_ID, \ - ZB_ZCL_ATTR_TYPE_BOOL, \ +{ \ + ZB_ZCL_ATTR_BINARY_INPUT_PRESENT_VALUE_ID, \ + ZB_ZCL_ATTR_TYPE_BOOL, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_WRITE_OPTIONAL | ZB_ZCL_ATTR_ACCESS_REPORTING, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_BINARY_INPUT_STATUS_FLAG_ID(data_ptr) \ @@ -270,7 +272,8 @@ enum zb_zcl_binary_input_status_flag_value_e ZB_ZCL_ATTR_BINARY_INPUT_STATUS_FLAG_ID, \ ZB_ZCL_ATTR_TYPE_8BITMAP, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } /*! Number of attributes mandatory for reporting in Binary Input cluster */ diff --git a/zboss/production/include/zcl/zb_zcl_color_control.h b/zboss/production/include/zcl/zb_zcl_color_control.h index 5074aa61cb..724197513f 100644 --- a/zboss/production/include/zcl/zb_zcl_color_control.h +++ b/zboss/production/include/zcl/zb_zcl_color_control.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -561,7 +561,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_CURRENT_HUE_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_CURRENT_SATURATION_ID(data_ptr) \ @@ -569,7 +570,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_CURRENT_SATURATION_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING | ZB_ZCL_ATTR_ACCESS_SCENE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_REMAINING_TIME_ID(data_ptr) \ @@ -577,7 +579,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_REMAINING_TIME_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_CURRENT_X_ID(data_ptr) \ @@ -585,7 +588,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_CURRENT_X_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING | ZB_ZCL_ATTR_ACCESS_SCENE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_CURRENT_Y_ID(data_ptr) \ @@ -593,7 +597,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_CURRENT_Y_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING | ZB_ZCL_ATTR_ACCESS_SCENE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_DRIFT_COMPENSATION_ID(data_ptr) \ @@ -601,7 +606,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_DRIFT_COMPENSATION_ID, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_COMPENSATION_TEXT_ID(data_ptr) \ @@ -609,7 +615,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_COMPENSATION_TEXT_ID, \ ZB_ZCL_ATTR_TYPE_CHAR_STRING, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_COLOR_TEMPERATURE_ID(data_ptr) \ @@ -617,7 +624,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_COLOR_TEMPERATURE_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING | ZB_ZCL_ATTR_ACCESS_SCENE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_COLOR_MODE_ID(data_ptr) \ @@ -625,7 +633,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_COLOR_MODE_ID, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_OPTIONS_ID(data_ptr) \ @@ -633,7 +642,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_OPTIONS_ID, \ ZB_ZCL_ATTR_TYPE_8BITMAP, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_ENHANCED_CURRENT_HUE_ID(data_ptr) \ @@ -641,7 +651,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_ENHANCED_CURRENT_HUE_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_SCENE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_ENHANCED_COLOR_MODE_ID(data_ptr) \ @@ -649,7 +660,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_ENHANCED_COLOR_MODE_ID, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_COLOR_LOOP_ACTIVE_ID(data_ptr) \ @@ -657,7 +669,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_COLOR_LOOP_ACTIVE_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_SCENE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_COLOR_LOOP_DIRECTION_ID(data_ptr) \ @@ -665,7 +678,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_COLOR_LOOP_DIRECTION_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_SCENE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_COLOR_LOOP_TIME_ID(data_ptr) \ @@ -673,7 +687,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_COLOR_LOOP_TIME_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_SCENE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_COLOR_LOOP_START_ENHANCED_HUE_ID(data_ptr) \ @@ -681,7 +696,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_COLOR_LOOP_START_ENHANCED_HUE_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_COLOR_LOOP_STORED_ENHANCED_HUE_ID(data_ptr) \ @@ -689,7 +705,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_COLOR_LOOP_STORED_ENHANCED_HUE_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_COLOR_CAPABILITIES_ID(data_ptr) \ @@ -697,7 +714,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_COLOR_CAPABILITIES_ID, \ ZB_ZCL_ATTR_TYPE_16BITMAP, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_COLOR_TEMP_PHYSICAL_MIN_MIREDS_ID(data_ptr) \ @@ -705,7 +723,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_COLOR_TEMP_PHYSICAL_MIN_MIREDS_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_COLOR_TEMP_PHYSICAL_MAX_MIREDS_ID(data_ptr) \ @@ -713,7 +732,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_COLOR_TEMP_PHYSICAL_MAX_MIREDS_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_COUPLE_COLOR_TEMP_TO_LEVEL_MIN_MIREDS_ID(data_ptr) \ @@ -721,7 +741,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_COUPLE_COLOR_TEMP_TO_LEVEL_MIN_MIREDS_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_START_UP_COLOR_TEMPERATURE_MIREDS_ID(data_ptr) \ @@ -729,7 +750,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_START_UP_COLOR_TEMPERATURE_MIREDS_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_NUMBER_OF_PRIMARIES_ID(data_ptr) \ @@ -737,7 +759,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_NUMBER_OF_PRIMARIES_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_PRIMARY_1_X_ID(data_ptr) \ @@ -745,7 +768,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_PRIMARY_1_X_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_PRIMARY_1_Y_ID(data_ptr) \ @@ -753,7 +777,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_PRIMARY_1_Y_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_PRIMARY_1_INTENSITY_ID(data_ptr) \ @@ -761,7 +786,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_PRIMARY_1_INTENSITY_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_PRIMARY_2_X_ID(data_ptr) \ @@ -769,7 +795,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_PRIMARY_2_X_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_PRIMARY_2_Y_ID(data_ptr) \ @@ -777,7 +804,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_PRIMARY_2_Y_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_PRIMARY_2_INTENSITY_ID(data_ptr) \ @@ -785,7 +813,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_PRIMARY_2_INTENSITY_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_PRIMARY_3_X_ID(data_ptr) \ @@ -793,7 +822,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_PRIMARY_3_X_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_PRIMARY_3_Y_ID(data_ptr) \ @@ -801,7 +831,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_PRIMARY_3_Y_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_PRIMARY_3_INTENSITY_ID(data_ptr) \ @@ -809,7 +840,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_PRIMARY_3_INTENSITY_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_PRIMARY_4_X_ID(data_ptr) \ @@ -817,7 +849,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_PRIMARY_4_X_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_PRIMARY_4_Y_ID(data_ptr) \ @@ -825,7 +858,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_PRIMARY_4_Y_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_PRIMARY_4_INTENSITY_ID(data_ptr) \ @@ -833,7 +867,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_PRIMARY_4_INTENSITY_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_PRIMARY_5_X_ID(data_ptr) \ @@ -841,7 +876,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_PRIMARY_5_X_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_PRIMARY_5_Y_ID(data_ptr) \ @@ -849,7 +885,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_PRIMARY_5_Y_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_PRIMARY_5_INTENSITY_ID(data_ptr) \ @@ -857,7 +894,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_PRIMARY_5_INTENSITY_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_PRIMARY_6_X_ID(data_ptr) \ @@ -865,7 +903,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_PRIMARY_6_X_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_PRIMARY_6_Y_ID(data_ptr) \ @@ -873,7 +912,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_PRIMARY_6_Y_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_COLOR_CONTROL_PRIMARY_6_INTENSITY_ID(data_ptr) \ @@ -881,7 +921,8 @@ enum zb_zcl_color_control_color_capabilities_e ZB_ZCL_ATTR_COLOR_CONTROL_PRIMARY_6_INTENSITY_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } /** @internal Structure of Move variables for Move alarm diff --git a/zboss/production/include/zcl/zb_zcl_commands.h b/zboss/production/include/zcl/zb_zcl_commands.h index f60c35fdaa..800dc6596c 100644 --- a/zboss/production/include/zcl/zb_zcl_commands.h +++ b/zboss/production/include/zcl/zb_zcl_commands.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -999,6 +999,22 @@ zb_zcl_write_attr_res_t; ZB_ZCL_GENERAL_INIT_WRITE_ATTR_REQ_BY_TYPE( \ (buffer), (cmd_ptr), (def_resp), ZB_ZCL_CMD_WRITE_ATTRIB); +/** @brief Initialize Write attribute command + @param buffer - buffer to store command data + @param cmd_ptr - pointer to a command data memory + @param direction - direction of command (see @ref zcl_frame_direction) + @param def_resp - enable/disable default response + @param manuf_code - manufacturer specific code +*/ +#define ZB_ZCL_GENERAL_INIT_WRITE_ATTR_REQ_MANUF(buffer, cmd_ptr, direction, def_resp, manuf_code) \ +{ \ + cmd_ptr = ZB_ZCL_START_PACKET(buffer); \ + ZB_ZCL_CONSTRUCT_GENERAL_COMMAND_REQ_FRAME_CONTROL_A( \ + cmd_ptr, direction, ZB_ZCL_MANUFACTURER_SPECIFIC, def_resp); \ + ZB_ZCL_CONSTRUCT_COMMAND_HEADER_EXT( \ + cmd_ptr, ZB_ZCL_GET_SEQ_NUM(), ZB_TRUE, manuf_code, ZB_ZCL_CMD_WRITE_ATTRIB); \ +} + /** @brief Initialize Write Attribute No Response command @param buffer - buffer to store command data @param cmd_ptr - pointer to a command data memory @@ -1314,6 +1330,40 @@ typedef zb_uint8_t zb_zcl_disc_complete_t; ZB_ZCL_SEND_COMMAND_SHORT(buffer, addr, dst_addr_mode, dst_ep, ep, profile_id, cluster_id, cb); \ } +/** + * @brief Discover Attribute Request + * @param buffer - reference to buffer to put packet into + * @param cmd_ptr - pointer to command (not used) + * @param direction - direction of command (see @ref zcl_frame_direction) + * @param def_resp - enable/disable default response + * @param manuf_code - manufacturer specific code + * @param start_attr_id - start attribute ID + * @param max_len - max count + * @param addr - address to send packet to + * @param dst_addr_mode - addressing mode + * @param dst_ep - destination endpoint + * @param ep - sending endpoint + * @param profile_id - profile identifier + * @param cluster_id - cluster identifier + * @param cb - callback for getting command send status + */ +#define ZB_ZCL_GENERAL_DISC_ATTR_REQ_MANUF(buffer, cmd_ptr, direction, def_resp, \ + manuf_code, start_attr_id, max_len, \ + addr, dst_addr_mode, dst_ep, ep, \ + profile_id, cluster_id, cb) \ +{ \ + zb_uint8_t *cmd_ptr = ZB_ZCL_START_PACKET(buffer); \ + ZB_ZCL_CONSTRUCT_GENERAL_COMMAND_REQ_FRAME_CONTROL_A(cmd_ptr, direction, \ + ZB_ZCL_MANUFACTURER_SPECIFIC, def_resp); \ + ZB_ZCL_CONSTRUCT_COMMAND_HEADER_EXT( \ + cmd_ptr, ZB_ZCL_GET_SEQ_NUM(), \ + ZB_ZCL_MANUFACTURER_SPECIFIC, (manuf_code), ZB_ZCL_CMD_DISC_ATTRIB); \ + ZB_ZCL_PACKET_PUT_DATA16_VAL(cmd_ptr, (start_attr_id)); \ + ZB_ZCL_PACKET_PUT_DATA8(cmd_ptr, (max_len)); \ + ZB_ZCL_FINISH_PACKET(buffer, cmd_ptr) \ + ZB_ZCL_SEND_COMMAND_SHORT(buffer, addr, dst_addr_mode, dst_ep, ep, profile_id, cluster_id, cb); \ +} + /** @} */ /* Discover attribute request and response sending and parsing. */ @@ -1561,6 +1611,21 @@ zb_zcl_configure_reporting_res_t; ZB_ZCL_CONSTRUCT_COMMAND_HEADER(ptr, ZB_ZCL_GET_SEQ_NUM(), ZB_ZCL_CMD_CONFIG_REPORT); \ } +/*! @brief Initialize Configure reporting command (report send case) + @param buffer to put packet to + @param ptr - command buffer pointer + @param def_resp - enable/disable default response + @param manuf_code - manufacturer specific code +*/ +#define ZB_ZCL_GENERAL_INIT_CONFIGURE_REPORTING_SRV_REQ_MANUF(buffer, ptr, def_resp, manuf_code) \ +{ \ + ptr = ZB_ZCL_START_PACKET(buffer); \ + ZB_ZCL_CONSTRUCT_GENERAL_COMMAND_REQ_FRAME_CONTROL_A( \ + ptr, ZB_ZCL_FRAME_DIRECTION_TO_SRV, ZB_ZCL_MANUFACTURER_SPECIFIC, def_resp); \ + ZB_ZCL_CONSTRUCT_COMMAND_HEADER_EXT(ptr, ZB_ZCL_GET_SEQ_NUM(), ZB_TRUE, \ + manuf_code, ZB_ZCL_CMD_CONFIG_REPORT); \ +} + /*! @brief Initialize Configure reporting command (report receive case) @param buffer to put packet to @param ptr - command buffer pointer @@ -1876,6 +1941,22 @@ typedef ZB_PACKED_PRE struct zb_zcl_read_reporting_cfg_rsp_s ZB_ZCL_CONSTRUCT_COMMAND_HEADER(ptr, ZB_ZCL_GET_SEQ_NUM(), ZB_ZCL_CMD_READ_REPORT_CFG); \ } + +/*! @brief Initialize Read reporting configuration command (report send case) + @param buffer to put packet to + @param ptr - command buffer pointer + @param def_resp - enable/disable default response + @param manuf_code - manufacturer specific code +*/ +#define ZB_ZCL_GENERAL_INIT_READ_REPORTING_CONFIGURATION_SRV_REQ_MANUF(buffer, ptr, def_resp, manuf_code) \ +{ \ + ptr = ZB_ZCL_START_PACKET(buffer); \ + ZB_ZCL_CONSTRUCT_GENERAL_COMMAND_REQ_FRAME_CONTROL_A( \ + ptr, ZB_ZCL_FRAME_DIRECTION_TO_SRV, ZB_ZCL_MANUFACTURER_SPECIFIC, def_resp); \ + ZB_ZCL_CONSTRUCT_COMMAND_HEADER_EXT(ptr, ZB_ZCL_GET_SEQ_NUM(), ZB_TRUE, \ + manuf_code, ZB_ZCL_CMD_READ_REPORT_CFG); \ +} + /*! @brief Initialize Read reporting configuration command (report receive case) @param buffer to put packet to @param ptr - command buffer pointer @@ -2352,7 +2433,7 @@ zb_zcl_disc_attr_ext_res_t; /*! Convert internal attribute access bitmask into ZCL/HA1.2 bitmask * value (actually, support 0 and 1 bits) */ -#define ZB_ZCL_CONVERT_ATTR_ACCESS_BITMASK(_access) ((_access) & 0x3U) +#define ZB_ZCL_CONVERT_ATTR_ACCESS_BITMASK(_access) ((_access) & 0x7U) /******************** Command handlers ***************************/ diff --git a/zboss/production/include/zcl/zb_zcl_common.h b/zboss/production/include/zcl/zb_zcl_common.h index 1a5d4421f9..ccae23c92e 100644 --- a/zboss/production/include/zcl/zb_zcl_common.h +++ b/zboss/production/include/zcl/zb_zcl_common.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -139,8 +139,9 @@ typedef zb_ret_t (*zb_zcl_cluster_check_value_t)(zb_uint16_t attr_id, zb_uint8_t @param endpoint - Device Endpoint @param attr_id - ZCL Attribute ID @param new_value - pointer to the new Attribute Value + @param manuf_code - manufacturer specific code */ -typedef void (*zb_zcl_cluster_write_attr_hook_t)(zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *new_value); +typedef void (*zb_zcl_cluster_write_attr_hook_t)(zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *new_value, zb_uint16_t manuf_code); /** @brief ZCL cluster description. */ typedef ZB_PACKED_PRE struct zb_zcl_cluster_desc_s @@ -726,6 +727,7 @@ typedef ZB_PACKED_PRE struct zb_zcl_attr_s zb_uint16_t id; /*!< Attribute id */ zb_uint8_t type; /*!< Attribute type see @ref zcl_attr_type */ zb_uint8_t access; /*!< Attribute access options according to @ref zcl_attr_access */ + zb_uint16_t manuf_code; /*!< Manufactirer specific ID */ void* data_p; /*!< Pointer to data */ } ZB_PACKED_STRUCT zb_zcl_attr_t; @@ -762,17 +764,19 @@ zb_zcl_attr_t; @param attr_id - attribute identifier (defined individually for any particular cluster). @param attr_type - attribute data type @see @ref zcl_attr_type @param attr_access - attribute access bitmask @see @ref zcl_attr_access + @param manuf_code - attribute manufacturer specific ID @param data_ptr - pointer to attribute's value storage. Creates attribute description value (@ref zb_zcl_attr_s) initialized with provided pointer to attribute's data. */ -#define ZB_ZCL_SET_MANUF_SPEC_ATTR_DESC(attr_id, attr_type, attr_access, data_ptr) \ +#define ZB_ZCL_SET_MANUF_SPEC_ATTR_DESC(attr_id, attr_type, attr_access, manuf_code, data_ptr) \ { \ attr_id, \ attr_type, \ attr_access | ZB_ZCL_ATTR_MANUF_SPEC, \ - (void*) data_ptr \ + (manuf_code), \ + (void*) data_ptr \ }, @@ -784,6 +788,7 @@ zb_zcl_attr_t; ZB_ZCL_ATTR_GLOBAL_CLUSTER_REVISION_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + ZB_ZCL_NON_MANUFACTURER_SPECIFIC, \ (void*) &(cluster_revision_##attrs_desc_name) \ }, @@ -795,6 +800,7 @@ zb_zcl_attr_t; ZB_ZCL_ATTR_GLOBAL_CLUSTER_REVISION_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + ZB_ZCL_NON_MANUFACTURER_SPECIFIC, \ (void*) &(cluster_revision_##attrs_desc_name) \ }, @@ -808,6 +814,7 @@ zb_zcl_attr_t; ZB_ZCL_ATTR_GLOBAL_CLUSTER_REVISION_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + ZB_ZCL_NON_MANUFACTURER_SPECIFIC, \ (void*) &(cluster_revision_##attrs_desc_name) \ }, @@ -821,6 +828,7 @@ zb_zcl_attr_t; ZB_ZCL_ATTR_GLOBAL_CLUSTER_REVISION_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + ZB_ZCL_NON_MANUFACTURER_SPECIFIC, \ (void*) &(cluster_revision_##attrs_desc_name) \ }, @@ -830,14 +838,15 @@ zb_zcl_attr_t; ZB_ZCL_NULL_ID, \ 0, \ 0, \ + ZB_ZCL_NON_MANUFACTURER_SPECIFIC, \ NULL \ } \ } #define ZB_ZCL_SET_ATTR_DESC_M(id, data_ptr, type, attr) \ - { \ - (id), (type), (attr), (data_ptr) \ - }, +{ \ + (id), (type), (attr), ZB_ZCL_NON_MANUFACTURER_SPECIFIC, (data_ptr) \ +}, #if !(defined ZB_ZCL_DISABLE_REPORTING) || defined(DOXYGEN) @@ -1022,7 +1031,9 @@ typedef zb_uint8_t zb_zcl_frame_type_t; */ typedef zb_uint8_t zb_zcl_manufacturer_specific_t; -#define ZB_ZCL_MANUFACTURER_WILDCARD_ID 0xffff +#define ZB_ZCL_MANUFACTURER_WILDCARD_ID 0xFFFFU + +#define ZB_ZCL_NON_MANUFACTURER_SPECIFIC 0xFFFFU /** * @name Disable default response subfield of FCF in ZCL frame @@ -1193,6 +1204,7 @@ typedef struct zb_zcl_attr_addr_info_s zb_uint16_t cluster_id; /**< Cluster id */ zb_uint8_t cluster_role; /**< Cluster role */ zb_uint16_t attr_id; /**< Attribute id */ + zb_uint16_t manuf_code; } zb_zcl_attr_addr_info_t; @@ -1975,6 +1987,20 @@ typedef void (*zb_zcl_set_default_value_attr_cb_t)(zb_uint8_t ep); typedef zb_ret_t (*zb_zcl_app_check_attr_value_cb_t) (zb_uint16_t cluster_id, zb_uint8_t cluster_role, zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *value); +/** @brief Check attribute value callback with manufacturer specific code + @param cluster_id - Cluster ID + @param cluster_role - cluster role (@ref zcl_cluster_role) + @param endpoint - endpoint number + @param attr_id - attribute ID + @param manuf_code - manufacturer specific code + @param value - new attribute value + + @return RET_OK - if new value is valid, RET_ERROR - if new value is wrong or + RET_IGNORE - if use default Check attribute functions +*/ +typedef zb_ret_t (*zb_zcl_app_check_attr_value_manuf_cb_t) +(zb_uint16_t cluster_id, zb_uint8_t cluster_role, zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint16_t manuf_code, zb_uint8_t *value); + /** @brief Get peer Cluster revision callback @param ieee_addr - IEEE address @param cluster_id - Cluster ID @@ -1995,6 +2021,14 @@ typedef zb_uint16_t (*zb_zcl_peer_revision_cb_t) */ zb_zcl_attr_t* zb_zcl_get_attr_desc(zb_zcl_cluster_desc_t *cluster_desc, zb_uint16_t attr_id); +/*! @brief Get registered attribute description by cluster descriptor + @param cluster_desc - cluster descriptor + @param attr_id - attribute identifier + @param manuf_code - manufacturer specific ID + @returns Pointer to attribute description, or NULL if no attribute description found. +*/ +zb_zcl_attr_t* zb_zcl_get_attr_desc_manuf(zb_zcl_cluster_desc_t *cluster_desc, zb_uint16_t attr_id, zb_uint16_t manuf_code); + /** @brief Check registered attribute is writable one @param attr_desc - attribute descriptor @param endpoint - endpoint @@ -2019,8 +2053,9 @@ zb_uint8_t zb_zcl_check_attribute_writable( @param cluster_role - cluster role (@ref zcl_cluster_role) @param attr_id - attribute ID @param new_value - pointer to newly assigned value + @param manuf_code - manufacturer specific code */ -void zb_zcl_write_attr_hook(zb_uint8_t endpoint, zb_uint16_t cluster_id, zb_uint8_t cluster_role, zb_uint16_t attr_id, zb_uint8_t *new_value); +void zb_zcl_write_attr_hook(zb_uint8_t endpoint, zb_uint16_t cluster_id, zb_uint8_t cluster_role, zb_uint16_t attr_id, zb_uint8_t *new_value, zb_uint16_t manuf_code); /*! Set attribute value cluster specific postprocessing @@ -2060,6 +2095,9 @@ zb_bool_t zb_zcl_is_analog_data_type(zb_uint8_t attr_type); /** * @brief Check if attribute value is valid or not * + * @deprecated This function will be removed in the next Major release after February 2023 + * Use @ref zb_zcl_check_attr_value_manuf instead + * * @param cluster_id - cluster ID * @param cluster_role - cluster role (@ref zcl_cluster_role) * @param endpoint - endpoint @@ -2070,6 +2108,20 @@ zb_bool_t zb_zcl_is_analog_data_type(zb_uint8_t attr_type); */ zb_ret_t zb_zcl_check_attr_value(zb_uint16_t cluster_id, zb_uint8_t cluster_role, zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *value); +/** + * @brief Check if attribute value is valid or not (with manufacturer specific code) + * + * @param cluster_id - cluster ID + * @param cluster_role - cluster role (@ref zcl_cluster_role) + * @param endpoint - endpoint + * @param attr_id - attribute ID + * @param manuf_code - manufacturer specific code + * @param value - pointer to attribute data + * + * @return ZB_TRUE if data value is valid, ZB_FALSE otherwise + */ +zb_ret_t zb_zcl_check_attr_value_manuf(zb_uint16_t cluster_id, zb_uint8_t cluster_role, zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint16_t manuf_code, zb_uint8_t *value); + zb_bool_t zb_zcl_is_target_endpoint(zb_af_endpoint_desc_t *ep_desc, zb_uint16_t profile_id); zb_uint8_t zb_zcl_get_next_target_endpoint( @@ -2128,6 +2180,23 @@ zb_af_endpoint_desc_t *get_endpoint_by_cluster_with_role( */ zb_zcl_attr_t* zb_zcl_get_attr_desc_a(zb_uint8_t ep, zb_uint16_t cluster_id, zb_uint8_t cluster_role, zb_uint16_t attr_id); +/** + * Find attribute descriptor by given endpoint number, cluster ID, attribute ID, and manuf code + * + * @param ep - endpoint number (must exist) + * @param cluster_id - cluster ID (must exist on given ep, see @ref zb_zcl_cluster_id_t) + * @param cluster_role - role (see @ref zcl_cluster_role) + * @param attr_id - attribute ID + * @param manuf_code - manufacturer code + * + * @return attribute descriptor + */ +zb_zcl_attr_t* zb_zcl_get_attr_desc_manuf_a(zb_uint8_t ep, + zb_uint16_t cluster_id, + zb_uint8_t cluster_role, + zb_uint16_t attr_id, + zb_uint16_t manuf_code); + /** * Put attribute value to command packet, fix endian if needed. * @@ -2141,6 +2210,32 @@ zb_uint8_t* zb_zcl_put_value_to_packet( zb_uint8_t *cmd_ptr, zb_uint8_t attr_type, zb_uint8_t *attr_value); +/** + * @brief Sets value for manufacture-specific attribute. Also, perform all needed + * checks before and after setting new value + * + * @param ep - endpoint number + * @param cluster_id - cluster ID (see @ref zb_zcl_cluster_id_t) + * @param cluster_role - role (see @ref zcl_cluster_role) + * @param attr_id - ID of the attribute being set + * @param value - pointer to new value + * @param check_access - whether read-only check should be performed + * @param manuf_code - manufacturer code attribute + * + * @return ZB_ZCL_STATUS_SUCCESS if value was written \n + * ZB_ZCL_STATUS_READ_ONLY if attribute is read only and check_access is false + * ZB_ZCL_STATUS_UNSUP_ATTRIB if attribute is not supported by cluster + * ZB_ZCL_STATUS_INVALID_VALUE if current value of attribute is invalid + * @note given endpoint with given cluster ID should exist + */ +zb_zcl_status_t zb_zcl_set_attr_val_manuf(zb_uint8_t ep, + zb_uint16_t cluster_id, + zb_uint8_t cluster_role, + zb_uint16_t attr_id, + zb_uint16_t manuf_code, + zb_uint8_t *value, + zb_bool_t check_access); + /** * @brief Sets attribute value, perform all needed checks before and after setting new value * diff --git a/zboss/production/include/zcl/zb_zcl_control4_networking.h b/zboss/production/include/zcl/zb_zcl_control4_networking.h index 89abdbdeb2..fd9d891566 100644 --- a/zboss/production/include/zcl/zb_zcl_control4_networking.h +++ b/zboss/production/include/zcl/zb_zcl_control4_networking.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -235,7 +235,8 @@ enum zb_zcl_control4_networking_cmd_e ZB_ZCL_ATTR_CONTROL4_NETWORKING_DEVICE_TYPE_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_CONTROL4_NETWORKING_ANNOUNCE_WINDOW_ID(data_ptr) \ @@ -243,7 +244,8 @@ enum zb_zcl_control4_networking_cmd_e ZB_ZCL_ATTR_CONTROL4_NETWORKING_ANNOUNCE_WINDOW_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_CONTROL4_NETWORKING_MTORR_PERIOD_ID(data_ptr) \ @@ -251,7 +253,8 @@ enum zb_zcl_control4_networking_cmd_e ZB_ZCL_ATTR_CONTROL4_NETWORKING_MTORR_PERIOD_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_CONTROL4_NETWORKING_FIRMWARE_VERSION_ID(data_ptr) \ @@ -259,7 +262,8 @@ enum zb_zcl_control4_networking_cmd_e ZB_ZCL_ATTR_CONTROL4_NETWORKING_FIRMWARE_VERSION_ID, \ ZB_ZCL_ATTR_TYPE_CHAR_STRING, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_CONTROL4_NETWORKING_REFLASH_VERSION_ID(data_ptr) \ @@ -267,7 +271,8 @@ enum zb_zcl_control4_networking_cmd_e ZB_ZCL_ATTR_CONTROL4_NETWORKING_REFLASH_VERSION_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_CONTROL4_NETWORKING_BOOT_COUNT_ID(data_ptr) \ @@ -275,7 +280,8 @@ enum zb_zcl_control4_networking_cmd_e ZB_ZCL_ATTR_CONTROL4_NETWORKING_BOOT_COUNT_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_CONTROL4_NETWORKING_PRODUCT_STRING_ID(data_ptr) \ @@ -283,7 +289,8 @@ enum zb_zcl_control4_networking_cmd_e ZB_ZCL_ATTR_CONTROL4_NETWORKING_PRODUCT_STRING_ID, \ ZB_ZCL_ATTR_TYPE_CHAR_STRING, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_CONTROL4_NETWORKING_ACCESS_POINT_NODE_ID_ID(data_ptr) \ @@ -291,7 +298,8 @@ enum zb_zcl_control4_networking_cmd_e ZB_ZCL_ATTR_CONTROL4_NETWORKING_ACCESS_POINT_NODE_ID_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_CONTROL4_NETWORKING_ACCESS_POINT_LONG_ID_ID(data_ptr) \ @@ -299,7 +307,8 @@ enum zb_zcl_control4_networking_cmd_e ZB_ZCL_ATTR_CONTROL4_NETWORKING_ACCESS_POINT_LONG_ID_ID, \ ZB_ZCL_ATTR_TYPE_IEEE_ADDR, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_CONTROL4_NETWORKING_ACCESS_POINT_COST_ID(data_ptr) \ @@ -307,7 +316,8 @@ enum zb_zcl_control4_networking_cmd_e ZB_ZCL_ATTR_CONTROL4_NETWORKING_ACCESS_POINT_COST_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_CONTROL4_NETWORKING_MESH_CHANNEL_ID(data_ptr) \ @@ -315,7 +325,8 @@ enum zb_zcl_control4_networking_cmd_e ZB_ZCL_ATTR_CONTROL4_NETWORKING_MESH_CHANNEL_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE | ZB_ZCL_ATTR_ACCESS_REPORTING, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_CONTROL4_NETWORKING_AVG_RSSI_ID(data_ptr) \ @@ -323,7 +334,8 @@ enum zb_zcl_control4_networking_cmd_e ZB_ZCL_ATTR_CONTROL4_NETWORKING_AVG_RSSI_ID, \ ZB_ZCL_ATTR_TYPE_S8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_CONTROL4_NETWORKING_AVG_LQI_ID(data_ptr) \ @@ -331,7 +343,8 @@ enum zb_zcl_control4_networking_cmd_e ZB_ZCL_ATTR_CONTROL4_NETWORKING_AVG_LQI_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_CONTROL4_NETWORKING_BATTERY_LEVEL_ID(data_ptr) \ @@ -339,7 +352,8 @@ enum zb_zcl_control4_networking_cmd_e ZB_ZCL_ATTR_CONTROL4_NETWORKING_BATTERY_LEVEL_ID, \ ZB_ZCL_ATTR_TYPE_S8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_CONTROL4_NETWORKING_RADIO_4_BARS_ID(data_ptr) \ @@ -347,7 +361,8 @@ enum zb_zcl_control4_networking_cmd_e ZB_ZCL_ATTR_CONTROL4_NETWORKING_RADIO_4_BARS_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } /** @endcond */ /*internals_doc*/ @@ -388,7 +403,7 @@ enum zb_zcl_control4_networking_cmd_e /* ZB_DECLARE_SIMPLE_DESC(1, 1); it is already defined */ \ ZB_AF_SIMPLE_DESC_TYPE(1, 1) simple_desc_##ep_name = \ { \ - ZB_CONTROL4_NETWORK_ENDPOINT, \ + ZB_CONTROL4_NETWORK_ENDPOINT, \ ZB_AF_CONTROL4_PROFILE_ID, \ 0, 1, 0, 1, 1, \ { \ @@ -405,7 +420,7 @@ enum zb_zcl_control4_networking_cmd_e #define ZB_ZCL_CONTROL4_NETWORK_DECLARE_EP(ep_name, cluster_list) \ ZB_ZCL_CONTROL4_NETWORK_DECLARE_SIMPLE_DESC(ep_name); \ ZB_AF_DECLARE_ENDPOINT_DESC(ep_name, \ - ZB_CONTROL4_NETWORK_ENDPOINT, ZB_AF_CONTROL4_PROFILE_ID, \ + ZB_CONTROL4_NETWORK_ENDPOINT, ZB_AF_CONTROL4_PROFILE_ID, \ 0, \ NULL, \ ZB_ZCL_ARRAY_SIZE(cluster_list, zb_zcl_cluster_desc_t), \ diff --git a/zboss/production/include/zcl/zb_zcl_custom_cluster.h b/zboss/production/include/zcl/zb_zcl_custom_cluster.h index a9e65f5a26..759463c463 100644 --- a/zboss/production/include/zcl/zb_zcl_custom_cluster.h +++ b/zboss/production/include/zcl/zb_zcl_custom_cluster.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -390,7 +390,8 @@ ZB_PACKED_STRUCT zb_zcl_custom_cluster_cmd3_req_t; ZB_ZCL_CUSTOM_CLUSTER_ATTR_U8_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_CUSTOM_CLUSTER_ATTR_S16_ID(data_ptr) \ @@ -398,7 +399,8 @@ ZB_PACKED_STRUCT zb_zcl_custom_cluster_cmd3_req_t; ZB_ZCL_CUSTOM_CLUSTER_ATTR_S16_ID, \ ZB_ZCL_ATTR_TYPE_S16, \ ZB_ZCL_ATTR_ACCESS_WRITE_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_CUSTOM_CLUSTER_ATTR_24BIT_ID(data_ptr) \ @@ -406,7 +408,8 @@ ZB_PACKED_STRUCT zb_zcl_custom_cluster_cmd3_req_t; ZB_ZCL_CUSTOM_CLUSTER_ATTR_24BIT_ID, \ ZB_ZCL_ATTR_TYPE_24BIT, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_CUSTOM_CLUSTER_ATTR_32BITMAP_ID(data_ptr) \ @@ -414,7 +417,8 @@ ZB_PACKED_STRUCT zb_zcl_custom_cluster_cmd3_req_t; ZB_ZCL_CUSTOM_CLUSTER_ATTR_32BITMAP_ID, \ ZB_ZCL_ATTR_TYPE_32BITMAP, \ ZB_ZCL_ATTR_ACCESS_WRITE_OPTIONAL, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_CUSTOM_CLUSTER_ATTR_IEEE_ID(data_ptr) \ @@ -422,7 +426,8 @@ ZB_PACKED_STRUCT zb_zcl_custom_cluster_cmd3_req_t; ZB_ZCL_CUSTOM_CLUSTER_ATTR_IEEE_ID, \ ZB_ZCL_ATTR_TYPE_IEEE_ADDR, \ ZB_ZCL_ATTR_ACCESS_WRITE_OPTIONAL | ZB_ZCL_ATTR_ACCESS_WRITE_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_CUSTOM_CLUSTER_ATTR_CHAR_STRING_ID(data_ptr) \ @@ -430,7 +435,8 @@ ZB_PACKED_STRUCT zb_zcl_custom_cluster_cmd3_req_t; ZB_ZCL_CUSTOM_CLUSTER_ATTR_CHAR_STRING_ID, \ ZB_ZCL_ATTR_TYPE_CHAR_STRING, \ ZB_ZCL_ATTR_ACCESS_INTERNAL, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_CUSTOM_CLUSTER_ATTR_UTC_TIME_ID(data_ptr) \ @@ -438,7 +444,8 @@ ZB_PACKED_STRUCT zb_zcl_custom_cluster_cmd3_req_t; ZB_ZCL_CUSTOM_CLUSTER_ATTR_UTC_TIME_ID, \ ZB_ZCL_ATTR_TYPE_UTC_TIME, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_CUSTOM_CLUSTER_ATTR_OCTET_STRING_ID(data_ptr) \ @@ -446,7 +453,8 @@ ZB_PACKED_STRUCT zb_zcl_custom_cluster_cmd3_req_t; ZB_ZCL_CUSTOM_CLUSTER_ATTR_OCTET_STRING_ID, \ ZB_ZCL_ATTR_TYPE_OCTET_STRING, \ ZB_ZCL_ATTR_ACCESS_WRITE_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_CUSTOM_CLUSTER_ATTR_BOOL_ID(data_ptr) \ @@ -454,7 +462,8 @@ ZB_PACKED_STRUCT zb_zcl_custom_cluster_cmd3_req_t; ZB_ZCL_CUSTOM_CLUSTER_ATTR_BOOL_ID, \ ZB_ZCL_ATTR_TYPE_BOOL, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE | ZB_ZCL_ATTR_ACCESS_SCENE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_CUSTOM_CLUSTER_ATTR_128_BIT_KEY_ID(data_ptr) \ @@ -462,7 +471,8 @@ ZB_PACKED_STRUCT zb_zcl_custom_cluster_cmd3_req_t; ZB_ZCL_CUSTOM_CLUSTER_ATTR_128_BIT_KEY_ID, \ ZB_ZCL_ATTR_TYPE_128_BIT_KEY, \ ZB_ZCL_ATTR_MANUF_SPEC, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } /** @internal @brief Declare attribute list for Custom Attributes cluster @@ -471,7 +481,7 @@ ZB_PACKED_STRUCT zb_zcl_custom_cluster_cmd3_req_t; #define ZB_ZCL_DECLARE_CUSTOM_ATTR_CLUSTER_ATTRIB_LIST( \ attr_list, u8_attr, s16_attr, _24bit_attr, _32bitmap_attr, ieee_attr, \ char_string_attr, utc_time_attr, octet_string_attr, bool_attr, _128_bit_key_attr) \ - ZB_ZCL_START_DECLARE_ATTRIB_LIST_CLUSTER_REVISION(attr_list, ZB_ZCL_CUSTOM) \ + ZB_ZCL_START_DECLARE_ATTRIB_LIST_CLUSTER_REVISION(attr_list, ZB_ZCL_CUSTOM) \ ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_CUSTOM_CLUSTER_ATTR_U8_ID, (u8_attr)) \ ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_CUSTOM_CLUSTER_ATTR_S16_ID, (s16_attr)) \ ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_CUSTOM_CLUSTER_ATTR_24BIT_ID, (_24bit_attr)) \ diff --git a/zboss/production/include/zcl/zb_zcl_dehumidification_control.h b/zboss/production/include/zcl/zb_zcl_dehumidification_control.h index 0744ab14af..2488440e36 100644 --- a/zboss/production/include/zcl/zb_zcl_dehumidification_control.h +++ b/zboss/production/include/zcl/zb_zcl_dehumidification_control.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -162,7 +162,8 @@ enum zb_zcl_dehumidification_control_attr_e ZB_ZCL_ATTR_DEHUMIDIFICATION_CONTROL_DEHUMIDIFICATION_COOLING_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_DEHUMIDIFICATION_CONTROL_RHDEHUMIDIFICATION_SETPOINT_ID(data_ptr) \ @@ -170,7 +171,8 @@ enum zb_zcl_dehumidification_control_attr_e ZB_ZCL_ATTR_DEHUMIDIFICATION_CONTROL_RHDEHUMIDIFICATION_SETPOINT_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_DEHUMIDIFICATION_CONTROL_DEHUMIDIFICATION_HYSTERESIS_ID(data_ptr) \ @@ -178,7 +180,8 @@ enum zb_zcl_dehumidification_control_attr_e ZB_ZCL_ATTR_DEHUMIDIFICATION_CONTROL_DEHUMIDIFICATION_HYSTERESIS_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_DEHUMIDIFICATION_CONTROL_DEHUMIDIFICATION_MAX_COOL_ID(data_ptr) \ @@ -186,7 +189,8 @@ enum zb_zcl_dehumidification_control_attr_e ZB_ZCL_ATTR_DEHUMIDIFICATION_CONTROL_DEHUMIDIFICATION_MAX_COOL_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } /*! @internal Number of attributes mandatory for reporting in Dehumidification Control cluster */ diff --git a/zboss/production/include/zcl/zb_zcl_diagnostics.h b/zboss/production/include/zcl/zb_zcl_diagnostics.h index 5f818e88d2..b5d6c95c9b 100644 --- a/zboss/production/include/zcl/zb_zcl_diagnostics.h +++ b/zboss/production/include/zcl/zb_zcl_diagnostics.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -311,6 +311,7 @@ enum zb_zcl_diagnostics_attr_e ZB_ZCL_ATTR_DIAGNOSTICS_NUMBER_OF_RESETS_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -319,6 +320,7 @@ enum zb_zcl_diagnostics_attr_e ZB_ZCL_ATTR_DIAGNOSTICS_PACKET_BUFFER_ALLOCATE_FAILURES_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -327,6 +329,7 @@ enum zb_zcl_diagnostics_attr_e ZB_ZCL_ATTR_DIAGNOSTICS_JOIN_INDICATION_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -336,6 +339,7 @@ enum zb_zcl_diagnostics_attr_e ZB_ZCL_ATTR_DIAGNOSTICS_MAC_RX_BCAST_ID, \ ZB_ZCL_ATTR_TYPE_U32, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -344,6 +348,7 @@ enum zb_zcl_diagnostics_attr_e ZB_ZCL_ATTR_DIAGNOSTICS_MAC_TX_BCAST_ID, \ ZB_ZCL_ATTR_TYPE_U32, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -352,6 +357,7 @@ enum zb_zcl_diagnostics_attr_e ZB_ZCL_ATTR_DIAGNOSTICS_MAC_TX_BCAST_ID, \ ZB_ZCL_ATTR_TYPE_U32, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -360,6 +366,7 @@ enum zb_zcl_diagnostics_attr_e ZB_ZCL_ATTR_DIAGNOSTICS_MAC_TX_UCAST_ID, \ ZB_ZCL_ATTR_TYPE_U32, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -368,6 +375,7 @@ enum zb_zcl_diagnostics_attr_e ZB_ZCL_ATTR_DIAGNOSTICS_MAC_TX_UCAST_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -376,6 +384,7 @@ enum zb_zcl_diagnostics_attr_e ZB_ZCL_ATTR_DIAGNOSTICS_MAC_TX_UCAST_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -384,6 +393,7 @@ enum zb_zcl_diagnostics_attr_e ZB_ZCL_ATTR_DIAGNOSTICS_APS_TX_BCAST_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -392,6 +402,7 @@ enum zb_zcl_diagnostics_attr_e ZB_ZCL_ATTR_DIAGNOSTICS_APS_TX_UCAST_SUCCESS_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -400,6 +411,7 @@ enum zb_zcl_diagnostics_attr_e ZB_ZCL_ATTR_DIAGNOSTICS_APS_TX_UCAST_RETRY_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -408,6 +420,7 @@ enum zb_zcl_diagnostics_attr_e ZB_ZCL_ATTR_DIAGNOSTICS_APS_TX_UCAST_FAIL_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -416,6 +429,7 @@ enum zb_zcl_diagnostics_attr_e ZB_ZCL_ATTR_DIAGNOSTICS_ROUTE_DISC_INITIATED_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -424,6 +438,7 @@ enum zb_zcl_diagnostics_attr_e ZB_ZCL_ATTR_DIAGNOSTICS_AVERAGE_MAC_RETRY_PER_APS_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -432,6 +447,7 @@ enum zb_zcl_diagnostics_attr_e ZB_ZCL_ATTR_DIAGNOSTICS_LAST_LQI_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -440,6 +456,7 @@ enum zb_zcl_diagnostics_attr_e ZB_ZCL_ATTR_DIAGNOSTICS_LAST_RSSI_ID, \ ZB_ZCL_ATTR_TYPE_S8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -448,6 +465,7 @@ enum zb_zcl_diagnostics_attr_e ZB_ZCL_ATTR_DIAGNOSTICS_CHILD_MOVED_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -456,6 +474,7 @@ enum zb_zcl_diagnostics_attr_e ZB_ZCL_ATTR_DIAGNOSTICS_NWKFC_FAILURE_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -464,6 +483,7 @@ enum zb_zcl_diagnostics_attr_e ZB_ZCL_ATTR_DIAGNOSTICS_APSFC_FAILURE_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -472,6 +492,7 @@ enum zb_zcl_diagnostics_attr_e ZB_ZCL_ATTR_DIAGNOSTICS_APS_UNAUTHORIZED_KEY_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -480,6 +501,7 @@ enum zb_zcl_diagnostics_attr_e ZB_ZCL_ATTR_DIAGNOSTICS_NWK_DECRYPT_FAILURES_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -488,6 +510,7 @@ enum zb_zcl_diagnostics_attr_e ZB_ZCL_ATTR_DIAGNOSTICS_APS_DECRYPT_FAILURES_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -496,6 +519,7 @@ enum zb_zcl_diagnostics_attr_e ZB_ZCL_ATTR_DIAGNOSTICS_PHYTOMACQUEUELIMITREACHED_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -504,6 +528,7 @@ enum zb_zcl_diagnostics_attr_e ZB_ZCL_ATTR_DIAGNOSTICS_PACKET_VALIDATEDROPCOUNT_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -512,6 +537,7 @@ enum zb_zcl_diagnostics_attr_e ZB_ZCL_ATTR_DIAGNOSTICS_NEIGHBOR_ADDED_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -520,6 +546,7 @@ enum zb_zcl_diagnostics_attr_e ZB_ZCL_ATTR_DIAGNOSTICS_NEIGHBOR_REMOVED_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -528,6 +555,7 @@ enum zb_zcl_diagnostics_attr_e ZB_ZCL_ATTR_DIAGNOSTICS_NEIGHBOR_STALE_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -536,6 +564,7 @@ enum zb_zcl_diagnostics_attr_e ZB_ZCL_ATTR_DIAGNOSTICS_CUSTOM_ATTR_NWK_RETRY_OVERFLOW_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -544,6 +573,7 @@ enum zb_zcl_diagnostics_attr_e ZB_ZCL_ATTR_DIAGNOSTICS_CUSTOM_ATTR_PHY_CCA_FAILURES_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -552,6 +582,7 @@ enum zb_zcl_diagnostics_attr_e ZB_ZCL_ATTR_DIAGNOSTICS_CUSTOM_ATTR_BCAST_TABLE_FULL_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } diff --git a/zboss/production/include/zcl/zb_zcl_door_lock.h b/zboss/production/include/zcl/zb_zcl_door_lock.h index da232838a6..b4dce69688 100644 --- a/zboss/production/include/zcl/zb_zcl_door_lock.h +++ b/zboss/production/include/zcl/zb_zcl_door_lock.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -753,7 +753,8 @@ typedef ZB_PACKED_PRE struct zb_zcl_door_lock_read_unlock_door_res_payload_s ZB_ZCL_ATTR_DOOR_LOCK_LOCK_STATE_ID, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING | ZB_ZCL_ATTR_ACCESS_SCENE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_DOOR_LOCK_LOCK_TYPE_ID(data_ptr) \ @@ -761,7 +762,8 @@ typedef ZB_PACKED_PRE struct zb_zcl_door_lock_read_unlock_door_res_payload_s ZB_ZCL_ATTR_DOOR_LOCK_LOCK_TYPE_ID, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_DOOR_LOCK_ACTUATOR_ENABLED_ID(data_ptr) \ @@ -769,7 +771,8 @@ typedef ZB_PACKED_PRE struct zb_zcl_door_lock_read_unlock_door_res_payload_s ZB_ZCL_ATTR_DOOR_LOCK_ACTUATOR_ENABLED_ID, \ ZB_ZCL_ATTR_TYPE_BOOL, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_DOOR_LOCK_RF_OPERATION_EVENT_MASK_ID(data_ptr) \ @@ -777,7 +780,8 @@ typedef ZB_PACKED_PRE struct zb_zcl_door_lock_read_unlock_door_res_payload_s ZB_ZCL_ATTR_DOOR_LOCK_RF_OPERATION_EVENT_MASK_ID, \ ZB_ZCL_ATTR_TYPE_16BITMAP, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE | ZB_ZCL_ATTR_ACCESS_REPORTING, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } /*! @internal @brief Number of attributes mandatory for reporting in Door Lock cluster */ diff --git a/zboss/production/include/zcl/zb_zcl_el_measurement.h b/zboss/production/include/zcl/zb_zcl_el_measurement.h index 0cbd535a14..5a0394e15c 100644 --- a/zboss/production/include/zcl/zb_zcl_el_measurement.h +++ b/zboss/production/include/zcl/zb_zcl_el_measurement.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -795,9 +795,10 @@ enum zb_zcl_electrical_measurement_cli_cmd_e #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_MEASUREMENT_TYPE_ID(data_ptr) \ { \ ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_MEASUREMENT_TYPE_ID, \ - ZB_ZCL_ATTR_TYPE_32BITMAP, \ + ZB_ZCL_ATTR_TYPE_32BITMAP, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_DCPOWER_ID(data_ptr) \ @@ -805,7 +806,8 @@ enum zb_zcl_electrical_measurement_cli_cmd_e ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_DCPOWER_ID, \ ZB_ZCL_ATTR_TYPE_S16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_RMSVOLTAGE_ID(data_ptr) \ @@ -813,7 +815,8 @@ enum zb_zcl_electrical_measurement_cli_cmd_e ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_RMSVOLTAGE_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_RMSCURRENT_ID(data_ptr) \ @@ -821,7 +824,8 @@ enum zb_zcl_electrical_measurement_cli_cmd_e ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_RMSCURRENT_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_ACTIVE_POWER_ID(data_ptr) \ @@ -829,7 +833,8 @@ enum zb_zcl_electrical_measurement_cli_cmd_e ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_ACTIVE_POWER_ID, \ ZB_ZCL_ATTR_TYPE_S16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_POWER_FACTOR_ID(data_ptr) \ @@ -837,7 +842,8 @@ enum zb_zcl_electrical_measurement_cli_cmd_e ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_POWER_FACTOR_ID, \ ZB_ZCL_ATTR_TYPE_S8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_ACPOWER_MULTIPLIER_ID(data_ptr) \ @@ -845,7 +851,8 @@ enum zb_zcl_electrical_measurement_cli_cmd_e ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_ACPOWER_MULTIPLIER_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_ACPOWER_DIVISOR_ID(data_ptr) \ @@ -853,7 +860,8 @@ enum zb_zcl_electrical_measurement_cli_cmd_e ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_ACPOWER_DIVISOR_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } /*! diff --git a/zboss/production/include/zcl/zb_zcl_fan_control.h b/zboss/production/include/zcl/zb_zcl_fan_control.h index 61affff510..fcde55d73e 100644 --- a/zboss/production/include/zcl/zb_zcl_fan_control.h +++ b/zboss/production/include/zcl/zb_zcl_fan_control.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -149,7 +149,8 @@ enum zb_zcl_fan_control_fan_mode_sequence_e ZB_ZCL_ATTR_FAN_CONTROL_FAN_MODE_ID, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_FAN_CONTROL_FAN_MODE_SEQUENCE_ID(data_ptr) \ @@ -157,7 +158,8 @@ enum zb_zcl_fan_control_fan_mode_sequence_e ZB_ZCL_ATTR_FAN_CONTROL_FAN_MODE_SEQUENCE_ID, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } /*! @internal Number of attributes mandatory for reporting in Fan Control cluster */ diff --git a/zboss/production/include/zcl/zb_zcl_groups.h b/zboss/production/include/zcl/zb_zcl_groups.h index dfc99ef0bf..4274461f18 100644 --- a/zboss/production/include/zcl/zb_zcl_groups.h +++ b/zboss/production/include/zcl/zb_zcl_groups.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -760,7 +760,8 @@ zb_bool_t zb_zcl_process_groups_commands_cli(zb_uint8_t param); ZB_ZCL_ATTR_GROUPS_NAME_SUPPORT_ID, \ ZB_ZCL_ATTR_TYPE_8BITMAP, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } /** @internal @brief Number of attributes mandatory for reporting in Groups cluster. */ diff --git a/zboss/production/include/zcl/zb_zcl_ias_ace.h b/zboss/production/include/zcl/zb_zcl_ias_ace.h index 757daaecc5..1609785155 100644 --- a/zboss/production/include/zcl/zb_zcl_ias_ace.h +++ b/zboss/production/include/zcl/zb_zcl_ias_ace.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -115,7 +115,8 @@ enum zb_zcl_ias_ace_attr_e ZB_ZCL_ATTR_IAS_ACE_ZONE_TABLE_LENGTH_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_IAS_ACE_ZONE_TABLE_ID(data_ptr) \ @@ -123,7 +124,8 @@ enum zb_zcl_ias_ace_attr_e ZB_ZCL_ATTR_IAS_ACE_ZONE_TABLE_ID, \ ZB_ZCL_ATTR_TYPE_NULL, \ ZB_ZCL_ATTR_ACCESS_INTERNAL, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } /*! @internal Number of attributes mandatory for reporting in IAS Ace cluster */ diff --git a/zboss/production/include/zcl/zb_zcl_ias_wd.h b/zboss/production/include/zcl/zb_zcl_ias_wd.h index 97a6b6abeb..310b383ff6 100644 --- a/zboss/production/include/zcl/zb_zcl_ias_wd.h +++ b/zboss/production/include/zcl/zb_zcl_ias_wd.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -96,7 +96,8 @@ enum zb_zcl_ias_wd_attr_e ZB_ZCL_ATTR_IAS_WD_MAX_DURATION_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } /*! @internal Number of attributes mandatory for reporting in IAS WD cluster */ diff --git a/zboss/production/include/zcl/zb_zcl_ias_zone.h b/zboss/production/include/zcl/zb_zcl_ias_zone.h index b7ab66a8b8..7bab6768bf 100644 --- a/zboss/production/include/zcl/zb_zcl_ias_zone.h +++ b/zboss/production/include/zcl/zb_zcl_ias_zone.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -220,24 +220,27 @@ enum zb_zcl_ias_zone_zonestatus_e { \ ZB_ZCL_ATTR_CUSTOM_CIE_ADDR_IS_SET, \ ZB_ZCL_ATTR_TYPE_U8, \ - ZB_ZCL_ATTR_ACCESS_INTERNAL, \ - (void*) data_ptr \ + ZB_ZCL_ATTR_ACCESS_INTERNAL, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_CUSTOM_CIE_EP(data_ptr) \ { \ ZB_ZCL_ATTR_CUSTOM_CIE_EP, \ ZB_ZCL_ATTR_TYPE_U8, \ - ZB_ZCL_ATTR_ACCESS_INTERNAL, \ - (void*) data_ptr \ + ZB_ZCL_ATTR_ACCESS_INTERNAL, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_CUSTOM_CIE_SHORT_ADDR(data_ptr) \ { \ ZB_ZCL_ATTR_CUSTOM_CIE_SHORT_ADDR, \ ZB_ZCL_ATTR_TYPE_U16, \ - ZB_ZCL_ATTR_ACCESS_INTERNAL, \ - (void*) data_ptr \ + ZB_ZCL_ATTR_ACCESS_INTERNAL, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } @@ -246,7 +249,8 @@ enum zb_zcl_ias_zone_zonestatus_e ZB_ZCL_ATTR_IAS_ZONE_ZONESTATE_ID, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_IAS_ZONE_ZONETYPE_ID(data_ptr) \ @@ -254,7 +258,8 @@ enum zb_zcl_ias_zone_zonestatus_e ZB_ZCL_ATTR_IAS_ZONE_ZONETYPE_ID, \ ZB_ZCL_ATTR_TYPE_16BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_IAS_ZONE_ZONESTATUS_ID(data_ptr) \ @@ -262,7 +267,8 @@ enum zb_zcl_ias_zone_zonestatus_e ZB_ZCL_ATTR_IAS_ZONE_ZONESTATUS_ID, \ ZB_ZCL_ATTR_TYPE_16BITMAP, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_IAS_ZONE_IAS_CIE_ADDRESS_ID(data_ptr) \ @@ -270,7 +276,8 @@ enum zb_zcl_ias_zone_zonestatus_e ZB_ZCL_ATTR_IAS_ZONE_IAS_CIE_ADDRESS_ID, \ ZB_ZCL_ATTR_TYPE_IEEE_ADDR, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_IAS_ZONE_ZONEID_ID(data_ptr) \ @@ -278,23 +285,26 @@ enum zb_zcl_ias_zone_zonestatus_e ZB_ZCL_ATTR_IAS_ZONE_ZONEID_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_IAS_ZONE_NUMBER_OF_ZONE_SENSITIVITY_LEVELS_SUPPORTED_ID(data_ptr) \ -{ \ - ZB_ZCL_ATTR_IAS_ZONE_NUMBER_OF_ZONE_SENSITIVITY_LEVELS_SUPPORTED_ID, \ - ZB_ZCL_ATTR_TYPE_U8, \ - ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ +{ \ + ZB_ZCL_ATTR_IAS_ZONE_NUMBER_OF_ZONE_SENSITIVITY_LEVELS_SUPPORTED_ID, \ + ZB_ZCL_ATTR_TYPE_U8, \ + ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_IAS_ZONE_CURRENT_ZONE_SENSITIVITY_LEVEL_ID(data_ptr) \ -{ \ - ZB_ZCL_ATTR_IAS_ZONE_CURRENT_ZONE_SENSITIVITY_LEVEL_ID, \ - ZB_ZCL_ATTR_TYPE_U8, \ - ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ +{ \ + ZB_ZCL_ATTR_IAS_ZONE_CURRENT_ZONE_SENSITIVITY_LEVEL_ID, \ + ZB_ZCL_ATTR_TYPE_U8, \ + ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_IAS_ZONE_INT_CTX_ID(data_ptr) \ @@ -302,7 +312,8 @@ enum zb_zcl_ias_zone_zonestatus_e ZB_ZCL_ATTR_IAS_ZONE_INT_CTX_ID, \ ZB_ZCL_ATTR_TYPE_NULL, \ ZB_ZCL_ATTR_ACCESS_INTERNAL, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } /*! @internal Number of attributes mandatory for reporting in IAS Zone cluster */ diff --git a/zboss/production/include/zcl/zb_zcl_identify.h b/zboss/production/include/zcl/zb_zcl_identify.h index 91c044c910..17c0882e38 100644 --- a/zboss/production/include/zcl/zb_zcl_identify.h +++ b/zboss/production/include/zcl/zb_zcl_identify.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -402,11 +402,12 @@ typedef ZB_PACKED_PRE struct zb_zcl_identify_query_res_s @{ */ #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_IDENTIFY_IDENTIFY_TIME_ID(data_ptr) \ -{ \ - ZB_ZCL_ATTR_IDENTIFY_IDENTIFY_TIME_ID, \ - ZB_ZCL_ATTR_TYPE_U16, \ - ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ +{ \ + ZB_ZCL_ATTR_IDENTIFY_IDENTIFY_TIME_ID, \ + ZB_ZCL_ATTR_TYPE_U16, \ + ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #if defined ZB_ZCL_SUPPORT_CLUSTER_SCENES diff --git a/zboss/production/include/zcl/zb_zcl_illuminance_measurement.h b/zboss/production/include/zcl/zb_zcl_illuminance_measurement.h index 145415eaa5..7789f69dc3 100644 --- a/zboss/production/include/zcl/zb_zcl_illuminance_measurement.h +++ b/zboss/production/include/zcl/zb_zcl_illuminance_measurement.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -126,7 +126,8 @@ enum zb_zcl_illuminance_measurement_attr_e ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_MEASURED_VALUE_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_MIN_MEASURED_VALUE_ID(data_ptr) \ @@ -134,7 +135,8 @@ enum zb_zcl_illuminance_measurement_attr_e ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_MIN_MEASURED_VALUE_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_MAX_MEASURED_VALUE_ID(data_ptr) \ @@ -142,7 +144,8 @@ enum zb_zcl_illuminance_measurement_attr_e ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_MAX_MEASURED_VALUE_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_ZCL_ILLUMINANCE_MEASUREMENT_REPORT_ATTR_COUNT 1 diff --git a/zboss/production/include/zcl/zb_zcl_keep_alive.h b/zboss/production/include/zcl/zb_zcl_keep_alive.h index 0f585c2238..c1468dc517 100644 --- a/zboss/production/include/zcl/zb_zcl_keep_alive.h +++ b/zboss/production/include/zcl/zb_zcl_keep_alive.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -95,20 +95,22 @@ enum zb_zcl_keep_alive_attr_e @{ */ -#define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_KEEP_ALIVE_TC_KEEP_ALIVE_BASE_ID(data_ptr) \ +#define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_KEEP_ALIVE_TC_KEEP_ALIVE_BASE_ID(data_ptr) \ { \ - ZB_ZCL_ATTR_KEEP_ALIVE_TC_KEEP_ALIVE_BASE_ID, \ + ZB_ZCL_ATTR_KEEP_ALIVE_TC_KEEP_ALIVE_BASE_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_KEEP_ALIVE_TC_KEEP_ALIVE_JITTER_ID(data_ptr) \ -{ \ +{ \ ZB_ZCL_ATTR_KEEP_ALIVE_TC_KEEP_ALIVE_JITTER_ID, \ - ZB_ZCL_ATTR_TYPE_U16, \ - ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + ZB_ZCL_ATTR_TYPE_U16, \ + ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } /** @internal @brief Declare attribute list for Keep-Alive cluster diff --git a/zboss/production/include/zcl/zb_zcl_level_control.h b/zboss/production/include/zcl/zb_zcl_level_control.h index 0d9a639eac..2642d5a0e6 100644 --- a/zboss/production/include/zcl/zb_zcl_level_control.h +++ b/zboss/production/include/zcl/zb_zcl_level_control.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -242,7 +242,8 @@ enum zb_zcl_level_control_options_e ZB_ZCL_ATTR_LEVEL_CONTROL_CURRENT_LEVEL_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING | ZB_ZCL_ATTR_ACCESS_SCENE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_LEVEL_CONTROL_REMAINING_TIME_ID(data_ptr)\ @@ -250,7 +251,8 @@ enum zb_zcl_level_control_options_e ZB_ZCL_ATTR_LEVEL_CONTROL_REMAINING_TIME_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_LEVEL_CONTROL_OPTIONS_ID(data_ptr) \ @@ -258,7 +260,8 @@ enum zb_zcl_level_control_options_e ZB_ZCL_ATTR_LEVEL_CONTROL_OPTIONS_ID, \ ZB_ZCL_ATTR_TYPE_8BITMAP, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_LEVEL_CONTROL_MOVE_STATUS_ID(data_ptr) \ @@ -266,7 +269,8 @@ enum zb_zcl_level_control_options_e ZB_ZCL_ATTR_LEVEL_CONTROL_MOVE_STATUS_ID, \ ZB_ZCL_ATTR_TYPE_NULL, \ ZB_ZCL_ATTR_ACCESS_INTERNAL, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_LEVEL_CONTROL_START_UP_CURRENT_LEVEL_ID(data_ptr) \ @@ -274,7 +278,8 @@ enum zb_zcl_level_control_options_e ZB_ZCL_ATTR_LEVEL_CONTROL_START_UP_CURRENT_LEVEL_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } /** @internal Structure of addr variables for Move commands */ diff --git a/zboss/production/include/zcl/zb_zcl_meter_identification.h b/zboss/production/include/zcl/zb_zcl_meter_identification.h index a214210387..8b119570c5 100644 --- a/zboss/production/include/zcl/zb_zcl_meter_identification.h +++ b/zboss/production/include/zcl/zb_zcl_meter_identification.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -234,7 +234,8 @@ typedef enum zb_zcl_meter_identification_data_quality_e ZB_ZCl_ATTR_METER_IDENTIFICATION_COMPANY_NAME, \ ZB_ZCL_ATTR_TYPE_CHAR_STRING, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_METER_IDENTIFICATION_METER_TYPE_ID(data_ptr) \ @@ -242,7 +243,8 @@ typedef enum zb_zcl_meter_identification_data_quality_e ZB_ZCl_ATTR_METER_IDENTIFICATION_METER_TYPE_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_METER_IDENTIFICATION_DATA_QUALITY_ID(data_ptr) \ @@ -250,7 +252,8 @@ typedef enum zb_zcl_meter_identification_data_quality_e ZB_ZCl_ATTR_METER_IDENTIFICATION_DATA_QUALITY_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_METER_IDENTIFICATION_POD(data_ptr) \ @@ -258,7 +261,8 @@ typedef enum zb_zcl_meter_identification_data_quality_e ZB_ZCl_ATTR_METER_IDENTIFICATION_POD, \ ZB_ZCL_ATTR_TYPE_CHAR_STRING, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_METER_IDENTIFICATION_AVAILABLE_POWER(data_ptr) \ @@ -266,7 +270,8 @@ typedef enum zb_zcl_meter_identification_data_quality_e ZB_ZCl_ATTR_METER_IDENTIFICATION_AVAILABLE_POWER, \ ZB_ZCL_ATTR_TYPE_S24, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_METER_IDENTIFICATION_POWER_THRESHOLD(data_ptr) \ @@ -274,7 +279,8 @@ typedef enum zb_zcl_meter_identification_data_quality_e ZB_ZCl_ATTR_METER_IDENTIFICATION_POWER_THRESHOLD, \ ZB_ZCL_ATTR_TYPE_S24, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } /*! @internal Number of attributes mandatory for reporting in Meter Identification cluster */ diff --git a/zboss/production/include/zcl/zb_zcl_metering.h b/zboss/production/include/zcl/zb_zcl_metering.h index 58c11f6dce..e74cf60ead 100644 --- a/zboss/production/include/zcl/zb_zcl_metering.h +++ b/zboss/production/include/zcl/zb_zcl_metering.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -2355,11 +2355,12 @@ void zb_zcl_metering_send_cmd_get_sampled_data_response(zb_uint8_t param, const */ #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_METERING_CURRENT_SUMMATION_DELIVERED_ID(data_ptr) \ -{ \ - ZB_ZCL_ATTR_METERING_CURRENT_SUMMATION_DELIVERED_ID, \ +{ \ + ZB_ZCL_ATTR_METERING_CURRENT_SUMMATION_DELIVERED_ID, \ ZB_ZCL_ATTR_TYPE_U48, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_METERING_STATUS_ID(data_ptr) \ @@ -2367,7 +2368,8 @@ void zb_zcl_metering_send_cmd_get_sampled_data_response(zb_uint8_t param, const ZB_ZCL_ATTR_METERING_STATUS_ID, \ ZB_ZCL_ATTR_TYPE_8BITMAP, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_METERING_UNIT_OF_MEASURE_ID(data_ptr) \ @@ -2375,7 +2377,8 @@ void zb_zcl_metering_send_cmd_get_sampled_data_response(zb_uint8_t param, const ZB_ZCL_ATTR_METERING_UNIT_OF_MEASURE_ID, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_METERING_SUMMATION_FORMATTING_ID(data_ptr) \ @@ -2383,7 +2386,8 @@ void zb_zcl_metering_send_cmd_get_sampled_data_response(zb_uint8_t param, const ZB_ZCL_ATTR_METERING_SUMMATION_FORMATTING_ID, \ ZB_ZCL_ATTR_TYPE_8BITMAP, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_METERING_METERING_DEVICE_TYPE_ID(data_ptr) \ @@ -2391,7 +2395,8 @@ void zb_zcl_metering_send_cmd_get_sampled_data_response(zb_uint8_t param, const ZB_ZCL_ATTR_METERING_METERING_DEVICE_TYPE_ID, \ ZB_ZCL_ATTR_TYPE_8BITMAP, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_METERING_INSTANTANEOUS_DEMAND_ID(data_ptr) \ @@ -2399,7 +2404,8 @@ void zb_zcl_metering_send_cmd_get_sampled_data_response(zb_uint8_t param, const ZB_ZCL_ATTR_METERING_INSTANTANEOUS_DEMAND_ID, \ ZB_ZCL_ATTR_TYPE_S24, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_METERING_DEMAND_FORMATTING_ID(data_ptr) \ @@ -2407,7 +2413,8 @@ void zb_zcl_metering_send_cmd_get_sampled_data_response(zb_uint8_t param, const ZB_ZCL_ATTR_METERING_DEMAND_FORMATTING_ID, \ ZB_ZCL_ATTR_TYPE_8BITMAP, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_METERING_HISTORICAL_CONSUMPTION_FORMATTING_ID(data_ptr) \ @@ -2415,7 +2422,8 @@ void zb_zcl_metering_send_cmd_get_sampled_data_response(zb_uint8_t param, const ZB_ZCL_ATTR_METERING_HISTORICAL_CONSUMPTION_FORMATTING_ID, \ ZB_ZCL_ATTR_TYPE_8BITMAP, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_METERING_MULTIPLIER_ID(data_ptr) \ @@ -2423,7 +2431,8 @@ void zb_zcl_metering_send_cmd_get_sampled_data_response(zb_uint8_t param, const ZB_ZCL_ATTR_METERING_MULTIPLIER_ID, \ ZB_ZCL_ATTR_TYPE_U24, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_METERING_DIVISOR_ID(data_ptr) \ @@ -2431,7 +2440,8 @@ void zb_zcl_metering_send_cmd_get_sampled_data_response(zb_uint8_t param, const ZB_ZCL_ATTR_METERING_DIVISOR_ID, \ ZB_ZCL_ATTR_TYPE_U24, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } diff --git a/zboss/production/include/zcl/zb_zcl_occupancy_sensing.h b/zboss/production/include/zcl/zb_zcl_occupancy_sensing.h index 09f38c84a9..c834fcbd5a 100644 --- a/zboss/production/include/zcl/zb_zcl_occupancy_sensing.h +++ b/zboss/production/include/zcl/zb_zcl_occupancy_sensing.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -281,7 +281,8 @@ enum zb_zcl_custom_learn_type_e ZB_ZCL_ATTR_OCCUPANCY_SENSING_OCCUPANCY_ID, \ ZB_ZCL_ATTR_TYPE_8BITMAP, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_OCCUPANCY_SENSING_OCCUPANCY_SENSOR_TYPE_ID(data_ptr) \ @@ -289,7 +290,8 @@ enum zb_zcl_custom_learn_type_e ZB_ZCL_ATTR_OCCUPANCY_SENSING_OCCUPANCY_SENSOR_TYPE_ID, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_OCCUPANCY_SENSING_OCCUPANCY_SENSOR_TYPE_BITMAP_ID(data_ptr) \ @@ -297,7 +299,8 @@ enum zb_zcl_custom_learn_type_e ZB_ZCL_ATTR_OCCUPANCY_SENSING_OCCUPANCY_SENSOR_TYPE_BITMAP_ID, \ ZB_ZCL_ATTR_TYPE_8BITMAP, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } /** @internal Number of attributes mandatory for reporting on Occupancy Sensing cluster */ #define ZB_ZCL_OCCUPANCY_SENSING_REPORT_ATTR_COUNT 1 diff --git a/zboss/production/include/zcl/zb_zcl_on_off.h b/zboss/production/include/zcl/zb_zcl_on_off.h index 0b14e3e0e8..37aa7a3615 100644 --- a/zboss/production/include/zcl/zb_zcl_on_off.h +++ b/zboss/production/include/zcl/zb_zcl_on_off.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -418,7 +418,7 @@ typedef struct zb_zcl_on_off_effect_user_app_schedule_e ZB_MEMMOVE(&(user_data->cmd_info), (pcmd_info), sizeof(zb_zcl_parsed_hdr_t)); \ user_data->param.effect_id = (effectId); \ user_data->param.effect_variant = (effectVar); \ - ZB_SCHEDULE_CALLBACK(zb_zcl_on_off_effect_invoke_user_app, (buffer)); \ + ZB_SCHEDULE_CALLBACK(zb_zcl_on_off_effect_invoke_user_app, (buffer)); \ } /*! @} @@ -437,7 +437,8 @@ typedef struct zb_zcl_on_off_effect_user_app_schedule_e ZB_ZCL_ATTR_ON_OFF_ON_OFF_ID, \ ZB_ZCL_ATTR_TYPE_BOOL, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING | ZB_ZCL_ATTR_ACCESS_SCENE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_ON_OFF_GLOBAL_SCENE_CONTROL(data_ptr) \ @@ -445,7 +446,8 @@ typedef struct zb_zcl_on_off_effect_user_app_schedule_e ZB_ZCL_ATTR_ON_OFF_GLOBAL_SCENE_CONTROL, \ ZB_ZCL_ATTR_TYPE_BOOL, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_ON_OFF_ON_TIME(data_ptr) \ @@ -453,7 +455,8 @@ typedef struct zb_zcl_on_off_effect_user_app_schedule_e ZB_ZCL_ATTR_ON_OFF_ON_TIME, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_ON_OFF_OFF_WAIT_TIME(data_ptr) \ @@ -461,7 +464,8 @@ typedef struct zb_zcl_on_off_effect_user_app_schedule_e ZB_ZCL_ATTR_ON_OFF_OFF_WAIT_TIME, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } /** @struct zb_zcl_on_off_attrs_s @@ -477,10 +481,11 @@ typedef struct zb_zcl_on_off_attrs_s ZB_ZCL_ATTR_ON_OFF_START_UP_ON_OFF, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } -#define ZB_ZCL_DECLARE_ON_OFF_ATTR_LIST(attr_list, attrs) \ +#define ZB_ZCL_DECLARE_ON_OFF_ATTR_LIST(attr_list, attrs) \ ZB_ZCL_DECLARE_ON_OFF_ATTRIB_LIST(attr_list, &attrs.on_off) /*! @internal Number of attributes mandatory for reporting in On/Off cluster */ diff --git a/zboss/production/include/zcl/zb_zcl_on_off_switch_conf.h b/zboss/production/include/zcl/zb_zcl_on_off_switch_conf.h index 3e4625798e..09985a27cf 100644 --- a/zboss/production/include/zcl/zb_zcl_on_off_switch_conf.h +++ b/zboss/production/include/zcl/zb_zcl_on_off_switch_conf.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -145,18 +145,20 @@ enum zb_zcl_on_off_switch_configuration_switch_actions_e #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_ON_OFF_SWITCH_CONFIGURATION_SWITCH_TYPE_ID(data_ptr) \ { \ - ZB_ZCL_ATTR_ON_OFF_SWITCH_CONFIGURATION_SWITCH_TYPE_ID, \ + ZB_ZCL_ATTR_ON_OFF_SWITCH_CONFIGURATION_SWITCH_TYPE_ID, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_ON_OFF_SWITCH_CONFIGURATION_SWITCH_ACTIONS_ID(data_ptr) \ { \ - ZB_ZCL_ATTR_ON_OFF_SWITCH_CONFIGURATION_SWITCH_ACTIONS_ID, \ + ZB_ZCL_ATTR_ON_OFF_SWITCH_CONFIGURATION_SWITCH_ACTIONS_ID, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } /** @internal Number of attributes mandatory for reporting on On/Off switch configuration cluster */ diff --git a/zboss/production/include/zcl/zb_zcl_ota_upgrade.h b/zboss/production/include/zcl/zb_zcl_ota_upgrade.h index 4afcd11a6d..34f2d2d484 100644 --- a/zboss/production/include/zcl/zb_zcl_ota_upgrade.h +++ b/zboss/production/include/zcl/zb_zcl_ota_upgrade.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -671,7 +671,8 @@ enum zb_zcl_ota_upgrade_image_status_e ZB_ZCL_ATTR_OTA_UPGRADE_SERVER_ID, \ ZB_ZCL_ATTR_TYPE_IEEE_ADDR, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_OTA_UPGRADE_FILE_OFFSET_ID(data_ptr) \ @@ -679,7 +680,8 @@ enum zb_zcl_ota_upgrade_image_status_e ZB_ZCL_ATTR_OTA_UPGRADE_FILE_OFFSET_ID, \ ZB_ZCL_ATTR_TYPE_U32, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_OTA_UPGRADE_FILE_VERSION_ID(data_ptr) \ @@ -687,7 +689,8 @@ enum zb_zcl_ota_upgrade_image_status_e ZB_ZCL_ATTR_OTA_UPGRADE_FILE_VERSION_ID, \ ZB_ZCL_ATTR_TYPE_U32, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_OTA_UPGRADE_STACK_VERSION_ID(data_ptr) \ @@ -695,7 +698,8 @@ enum zb_zcl_ota_upgrade_image_status_e ZB_ZCL_ATTR_OTA_UPGRADE_STACK_VERSION_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_OTA_UPGRADE_DOWNLOADED_FILE_VERSION_ID(data_ptr) \ @@ -703,7 +707,8 @@ enum zb_zcl_ota_upgrade_image_status_e ZB_ZCL_ATTR_OTA_UPGRADE_DOWNLOADED_FILE_VERSION_ID, \ ZB_ZCL_ATTR_TYPE_U32, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_OTA_UPGRADE_DOWNLOADED_STACK_VERSION_ID(data_ptr) \ @@ -711,7 +716,8 @@ enum zb_zcl_ota_upgrade_image_status_e ZB_ZCL_ATTR_OTA_UPGRADE_DOWNLOADED_STACK_VERSION_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_OTA_UPGRADE_IMAGE_STATUS_ID(data_ptr) \ @@ -719,7 +725,8 @@ enum zb_zcl_ota_upgrade_image_status_e ZB_ZCL_ATTR_OTA_UPGRADE_IMAGE_STATUS_ID, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_OTA_UPGRADE_MANUFACTURE_ID(data_ptr) \ @@ -727,7 +734,8 @@ enum zb_zcl_ota_upgrade_image_status_e ZB_ZCL_ATTR_OTA_UPGRADE_MANUFACTURE_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_OTA_UPGRADE_IMAGE_TYPE_ID(data_ptr) \ @@ -735,7 +743,8 @@ enum zb_zcl_ota_upgrade_image_status_e ZB_ZCL_ATTR_OTA_UPGRADE_IMAGE_TYPE_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_OTA_UPGRADE_MIN_BLOCK_REQUE_ID(data_ptr) \ @@ -743,7 +752,8 @@ enum zb_zcl_ota_upgrade_image_status_e ZB_ZCL_ATTR_OTA_UPGRADE_MIN_BLOCK_REQUE_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_OTA_UPGRADE_IMAGE_STAMP_ID(data_ptr) \ @@ -751,15 +761,17 @@ enum zb_zcl_ota_upgrade_image_status_e ZB_ZCL_ATTR_OTA_UPGRADE_IMAGE_STAMP_ID, \ ZB_ZCL_ATTR_TYPE_U32, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_OTA_UPGRADE_CLIENT_DATA_ID(data_ptr) \ { \ ZB_ZCL_ATTR_OTA_UPGRADE_CLIENT_DATA_ID, \ ZB_ZCL_ATTR_TYPE_NULL, \ - ZB_ZCL_ATTR_ACCESS_INTERNAL, \ - (void*) data_ptr \ + ZB_ZCL_ATTR_ACCESS_INTERNAL, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_OTA_UPGRADE_SERVER_ADDR_ID(data_ptr) \ @@ -767,7 +779,8 @@ enum zb_zcl_ota_upgrade_image_status_e ZB_ZCL_ATTR_OTA_UPGRADE_SERVER_ADDR_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_OTA_UPGRADE_SERVER_ENDPOINT_ID(data_ptr) \ @@ -775,7 +788,8 @@ enum zb_zcl_ota_upgrade_image_status_e ZB_ZCL_ATTR_OTA_UPGRADE_SERVER_ENDPOINT_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_OTA_UPGRADE_SERVER_DATA_ID(data_ptr) \ @@ -783,7 +797,8 @@ enum zb_zcl_ota_upgrade_image_status_e ZB_ZCL_ATTR_OTA_UPGRADE_SERVER_DATA_ID, \ ZB_ZCL_ATTR_TYPE_NULL, \ ZB_ZCL_ATTR_ACCESS_INTERNAL, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } /*! @internal Number of attributes mandatory for reporting in OTA Upgrade cluster */ @@ -1056,7 +1071,7 @@ enum zb_zcl_ota_upgrade_image_block_fc_e @param data_size_max - Maximum data size @param node_addr - Request node address @param block_delay - BlockRequestDelay - @param current_delay - Delay current send (milliseconds) + @param current_delay - Delay current send (millisec) */ #define ZB_ZCL_OTA_UPGRADE_SEND_IMAGE_BLOCK_REQ( \ buffer, addr, dst_addr_mode, dst_ep, ep, prfl_id, def_resp, cb, \ diff --git a/zboss/production/include/zcl/zb_zcl_poll_control.h b/zboss/production/include/zcl/zb_zcl_poll_control.h index 467ba8875d..5c95136522 100644 --- a/zboss/production/include/zcl/zb_zcl_poll_control.h +++ b/zboss/production/include/zcl/zb_zcl_poll_control.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -188,7 +188,8 @@ void zb_zcl_poll_controll_register_cb(zb_callback_t cb); ZB_ZCL_ATTR_POLL_CONTROL_CHECKIN_INTERVAL_ID, \ ZB_ZCL_ATTR_TYPE_U32, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_POLL_CONTROL_LONG_POLL_INTERVAL_ID(data_ptr) \ @@ -196,7 +197,8 @@ void zb_zcl_poll_controll_register_cb(zb_callback_t cb); ZB_ZCL_ATTR_POLL_CONTROL_LONG_POLL_INTERVAL_ID, \ ZB_ZCL_ATTR_TYPE_U32, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_POLL_CONTROL_SHORT_POLL_INTERVAL_ID(data_ptr) \ @@ -204,7 +206,8 @@ void zb_zcl_poll_controll_register_cb(zb_callback_t cb); ZB_ZCL_ATTR_POLL_CONTROL_SHORT_POLL_INTERVAL_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_POLL_CONTROL_FAST_POLL_TIMEOUT_ID(data_ptr) \ @@ -212,15 +215,17 @@ void zb_zcl_poll_controll_register_cb(zb_callback_t cb); ZB_ZCL_ATTR_POLL_CONTROL_FAST_POLL_TIMEOUT_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_POLL_CONTROL_MIN_CHECKIN_INTERVAL_ID(data_ptr) \ { \ ZB_ZCL_ATTR_POLL_CONTROL_MIN_CHECKIN_INTERVAL_ID, \ ZB_ZCL_ATTR_TYPE_U32, \ - ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_POLL_CONTROL_LONG_POLL_MIN_INTERVAL_ID(data_ptr) \ @@ -228,7 +233,8 @@ void zb_zcl_poll_controll_register_cb(zb_callback_t cb); ZB_ZCL_ATTR_POLL_CONTROL_LONG_POLL_MIN_INTERVAL_ID, \ ZB_ZCL_ATTR_TYPE_U32, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_POLL_CONTROL_FAST_POLL_MAX_TIMEOUT_ID(data_ptr) \ @@ -236,7 +242,8 @@ void zb_zcl_poll_controll_register_cb(zb_callback_t cb); ZB_ZCL_ATTR_POLL_CONTROL_FAST_POLL_MAX_TIMEOUT_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_POLL_CONTROL_STATUS_DATA_ID(data_ptr) \ @@ -244,7 +251,8 @@ void zb_zcl_poll_controll_register_cb(zb_callback_t cb); ZB_ZCL_ATTR_POLL_CONTROL_STATUS_DATA_ID, \ ZB_ZCL_ATTR_TYPE_NULL, \ ZB_ZCL_ATTR_ACCESS_INTERNAL, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } @@ -253,7 +261,8 @@ void zb_zcl_poll_controll_register_cb(zb_callback_t cb); ZB_ZCL_ATTR_POLL_CONTROL_ADDR_DATA_ID, \ ZB_ZCL_ATTR_TYPE_NULL, \ ZB_ZCL_ATTR_ACCESS_INTERNAL, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } diff --git a/zboss/production/include/zcl/zb_zcl_power_config.h b/zboss/production/include/zcl/zb_zcl_power_config.h index a88bb19a2e..4890b65530 100644 --- a/zboss/production/include/zcl/zb_zcl_power_config.h +++ b/zboss/production/include/zcl/zb_zcl_power_config.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -425,7 +425,8 @@ enum zb_zcl_power_config_battery_alarm_state_e ZB_ZCL_ATTR_POWER_CONFIG_MAINS_VOLTAGE_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_POWER_CONFIG_MAINS_FREQUENCY_ID(data_ptr) \ @@ -433,7 +434,8 @@ enum zb_zcl_power_config_battery_alarm_state_e ZB_ZCL_ATTR_POWER_CONFIG_MAINS_FREQUENCY_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_POWER_CONFIG_MAINS_ALARM_MASK_ID(data_ptr) \ @@ -441,7 +443,8 @@ enum zb_zcl_power_config_battery_alarm_state_e ZB_ZCL_ATTR_POWER_CONFIG_MAINS_ALARM_MASK_ID, \ ZB_ZCL_ATTR_TYPE_8BITMAP, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_POWER_CONFIG_MAINS_VOLTAGE_MIN_THRESHOLD(data_ptr) \ @@ -449,7 +452,8 @@ enum zb_zcl_power_config_battery_alarm_state_e ZB_ZCL_ATTR_POWER_CONFIG_MAINS_VOLTAGE_MIN_THRESHOLD, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_POWER_CONFIG_MAINS_VOLTAGE_MAX_THRESHOLD(data_ptr) \ @@ -457,7 +461,8 @@ enum zb_zcl_power_config_battery_alarm_state_e ZB_ZCL_ATTR_POWER_CONFIG_MAINS_VOLTAGE_MAX_THRESHOLD, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_POWER_CONFIG_MAINS_DWELL_TRIP_POINT(data_ptr) \ @@ -465,7 +470,8 @@ enum zb_zcl_power_config_battery_alarm_state_e ZB_ZCL_ATTR_POWER_CONFIG_MAINS_DWELL_TRIP_POINT, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_VOLTAGE_ID(data_ptr, bat_num) \ @@ -473,7 +479,8 @@ enum zb_zcl_power_config_battery_alarm_state_e ZB_ZCL_ATTR_POWER_CONFIG_BATTERY##bat_num##_VOLTAGE_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_SIZE_ID(data_ptr, bat_num) \ @@ -481,40 +488,45 @@ enum zb_zcl_power_config_battery_alarm_state_e ZB_ZCL_ATTR_POWER_CONFIG_BATTERY##bat_num##_SIZE_ID, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_QUANTITY_ID(data_ptr, bat_num) \ -{ \ +{ \ ZB_ZCL_ATTR_POWER_CONFIG_BATTERY##bat_num##_QUANTITY_ID, \ - ZB_ZCL_ATTR_TYPE_U8, \ - ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + ZB_ZCL_ATTR_TYPE_U8, \ + ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_RATED_VOLTAGE_ID(data_ptr, bat_num) \ -{ \ +{ \ ZB_ZCL_ATTR_POWER_CONFIG_BATTERY##bat_num##_RATED_VOLTAGE_ID, \ - ZB_ZCL_ATTR_TYPE_U8, \ - ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + ZB_ZCL_ATTR_TYPE_U8, \ + ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } /* DA: HA12 change */ #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_ALARM_MASK_ID(data_ptr, bat_num) \ -{ \ +{ \ ZB_ZCL_ATTR_POWER_CONFIG_BATTERY##bat_num##_ALARM_MASK_ID, \ - ZB_ZCL_ATTR_TYPE_8BITMAP, \ - ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + ZB_ZCL_ATTR_TYPE_8BITMAP, \ + ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_VOLTAGE_MIN_THRESHOLD_ID(data_ptr, bat_num) \ -{ \ +{ \ ZB_ZCL_ATTR_POWER_CONFIG_BATTERY##bat_num##_VOLTAGE_MIN_THRESHOLD_ID, \ - ZB_ZCL_ATTR_TYPE_U8, \ - ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + ZB_ZCL_ATTR_TYPE_U8, \ + ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_PERCENTAGE_REMAINING_ID(data_ptr, bat_num) \ @@ -522,71 +534,80 @@ enum zb_zcl_power_config_battery_alarm_state_e ZB_ZCL_ATTR_POWER_CONFIG_BATTERY##bat_num##_PERCENTAGE_REMAINING_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_VOLTAGE_THRESHOLD1_ID(data_ptr, bat_num) \ -{ \ +{ \ ZB_ZCL_ATTR_POWER_CONFIG_BATTERY##bat_num##_VOLTAGE_THRESHOLD1_ID, \ - ZB_ZCL_ATTR_TYPE_U8, \ - ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + ZB_ZCL_ATTR_TYPE_U8, \ + ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_VOLTAGE_THRESHOLD2_ID(data_ptr, bat_num) \ -{ \ +{ \ ZB_ZCL_ATTR_POWER_CONFIG_BATTERY##bat_num##_VOLTAGE_THRESHOLD2_ID, \ - ZB_ZCL_ATTR_TYPE_U8, \ - ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + ZB_ZCL_ATTR_TYPE_U8, \ + ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_VOLTAGE_THRESHOLD3_ID(data_ptr, bat_num) \ -{ \ +{ \ ZB_ZCL_ATTR_POWER_CONFIG_BATTERY##bat_num##_VOLTAGE_THRESHOLD3_ID, \ - ZB_ZCL_ATTR_TYPE_U8, \ - ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + ZB_ZCL_ATTR_TYPE_U8, \ + ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_PERCENTAGE_MIN_THRESHOLD_ID(data_ptr, bat_num) \ -{ \ +{ \ ZB_ZCL_ATTR_POWER_CONFIG_BATTERY##bat_num##_PERCENTAGE_MIN_THRESHOLD_ID, \ - ZB_ZCL_ATTR_TYPE_U8, \ - ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + ZB_ZCL_ATTR_TYPE_U8, \ + ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_PERCENTAGE_THRESHOLD1_ID(data_ptr, bat_num) \ -{ \ +{ \ ZB_ZCL_ATTR_POWER_CONFIG_BATTERY##bat_num##_PERCENTAGE_THRESHOLD1_ID, \ - ZB_ZCL_ATTR_TYPE_U8, \ - ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + ZB_ZCL_ATTR_TYPE_U8, \ + ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_PERCENTAGE_THRESHOLD2_ID(data_ptr, bat_num) \ -{ \ +{ \ ZB_ZCL_ATTR_POWER_CONFIG_BATTERY##bat_num##_PERCENTAGE_THRESHOLD2_ID, \ - ZB_ZCL_ATTR_TYPE_U8, \ - ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + ZB_ZCL_ATTR_TYPE_U8, \ + ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_PERCENTAGE_THRESHOLD3_ID(data_ptr, bat_num) \ -{ \ +{ \ ZB_ZCL_ATTR_POWER_CONFIG_BATTERY##bat_num##_PERCENTAGE_THRESHOLD3_ID, \ - ZB_ZCL_ATTR_TYPE_U8, \ - ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + ZB_ZCL_ATTR_TYPE_U8, \ + ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_ALARM_STATE_ID(data_ptr, bat_num) \ { \ - ZB_ZCL_ATTR_POWER_CONFIG_BATTERY##bat_num##_ALARM_STATE_ID, \ + ZB_ZCL_ATTR_POWER_CONFIG_BATTERY##bat_num##_ALARM_STATE_ID, \ ZB_ZCL_ATTR_TYPE_32BITMAP, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } /*! @internal Number of attributes mandatory for reporting in Power diff --git a/zboss/production/include/zcl/zb_zcl_pressure_measurement.h b/zboss/production/include/zcl/zb_zcl_pressure_measurement.h index c4c84f4438..30d6f64e55 100644 --- a/zboss/production/include/zcl/zb_zcl_pressure_measurement.h +++ b/zboss/production/include/zcl/zb_zcl_pressure_measurement.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -201,6 +201,7 @@ enum zb_zcl_pressure_measurement_attr_e ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_VALUE_ID, \ ZB_ZCL_ATTR_TYPE_S16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -209,6 +210,7 @@ enum zb_zcl_pressure_measurement_attr_e ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_MIN_VALUE_ID, \ ZB_ZCL_ATTR_TYPE_S16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -217,6 +219,7 @@ enum zb_zcl_pressure_measurement_attr_e ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_MAX_VALUE_ID, \ ZB_ZCL_ATTR_TYPE_S16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -225,6 +228,7 @@ enum zb_zcl_pressure_measurement_attr_e ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_TOLERANCE_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -233,6 +237,7 @@ enum zb_zcl_pressure_measurement_attr_e ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_SCALED_VALUE_ID, \ ZB_ZCL_ATTR_TYPE_S16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -241,6 +246,7 @@ enum zb_zcl_pressure_measurement_attr_e ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_MIN_SCALED_VALUE_ID, \ ZB_ZCL_ATTR_TYPE_S16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -249,6 +255,7 @@ enum zb_zcl_pressure_measurement_attr_e ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_MAX_SCALED_VALUE_ID, \ ZB_ZCL_ATTR_TYPE_S16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -257,6 +264,7 @@ enum zb_zcl_pressure_measurement_attr_e ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_SCALED_TOLERANCE_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -265,6 +273,7 @@ enum zb_zcl_pressure_measurement_attr_e ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_SCALE_ID, \ ZB_ZCL_ATTR_TYPE_S8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } diff --git a/zboss/production/include/zcl/zb_zcl_price.h b/zboss/production/include/zcl/zb_zcl_price.h index ebf635752a..88427fa3b1 100644 --- a/zboss/production/include/zcl/zb_zcl_price.h +++ b/zboss/production/include/zcl/zb_zcl_price.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -173,9 +173,10 @@ enum zb_zcl_price_set_tier_label_e #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_TIERN_PRICE_LABEL_GNR(tierN, data_ptr) \ { \ ZB_ZCL_ATTR_PRICE_SRV_TIER ## tierN ## _PRICE_LABEL, \ - ZB_ZCL_ATTR_TYPE_OCTET_STRING, \ + ZB_ZCL_ATTR_TYPE_OCTET_STRING, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } /** @endcond */ /* internals_doc */ @@ -498,7 +499,8 @@ enum zb_zcl_set_block_threshold_e ZB_ZCL_ATTR_PRICE_SRV_BLOCK ## blockN ## _THRESHOLD, \ ZB_ZCL_ATTR_TYPE_48BIT, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_BLOCK_THRESHOLD_COUNT_GNR(data_ptr) \ @@ -506,7 +508,8 @@ enum zb_zcl_set_block_threshold_e ZB_ZCL_ATTR_PRICE_SRV_BLOCK_THRESHOLD_COUNT, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_TIERN_BLOCKM_THRESHOLD_GNR(blockN, tierN, data_ptr) \ @@ -514,7 +517,8 @@ enum zb_zcl_set_block_threshold_e ZB_ZCL_ATTR_PRICE_SRV_TIER ## tierN ## _BLOCK ## blockN ## _THRESHOLD, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_TIERN_BLOCK_THRESHOLD_COUNT_GNR(tierN, data_ptr) \ @@ -522,7 +526,8 @@ enum zb_zcl_set_block_threshold_e ZB_ZCL_ATTR_PRICE_SRV_TIER ## tierN ## _BLOCK_THRESHOLD_COUNT, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } /** @endcond */ /* internals_doc */ @@ -580,7 +585,8 @@ enum zb_zcl_price_set_block_period_e ZB_ZCL_ATTR_PRICE_SRV_START_OF_BLOCK_PERIOD, \ ZB_ZCL_ATTR_TYPE_UTC_TIME, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_BLOCK_PERIOD_DURATION(data_ptr) \ @@ -588,15 +594,17 @@ enum zb_zcl_price_set_block_period_e ZB_ZCL_ATTR_PRICE_SRV_BLOCK_PERIOD_DURATION, \ ZB_ZCL_ATTR_TYPE_U24, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_THRESHOLD_MULTIPLIER(data_ptr) \ { \ - ZB_ZCL_ATTR_PRICE_SRV_THRESHOLD_MULTIPLIER, \ + ZB_ZCL_ATTR_PRICE_SRV_THRESHOLD_MULTIPLIER, \ ZB_ZCL_ATTR_TYPE_U24, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_THRESHOLD_DIVISOR(data_ptr) \ @@ -604,7 +612,8 @@ enum zb_zcl_price_set_block_period_e ZB_ZCL_ATTR_PRICE_SRV_THRESHOLD_DIVISOR, \ ZB_ZCL_ATTR_TYPE_U24, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_BLOCK_PERIOD_DURATION_TYPE(data_ptr) \ @@ -612,7 +621,8 @@ enum zb_zcl_price_set_block_period_e ZB_ZCL_ATTR_PRICE_SRV_BLOCK_PERIOD_DURATION_TYPE, \ ZB_ZCL_ATTR_TYPE_8BITMAP, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } /** @endcond */ /* internals_doc */ @@ -699,7 +709,8 @@ enum zb_zcl_price_set_commodity_e ZB_ZCL_ATTR_PRICE_SRV_COMMODITY_TYPE, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_STANDING_CHARGE(data_ptr) \ @@ -707,7 +718,8 @@ enum zb_zcl_price_set_commodity_e ZB_ZCL_ATTR_PRICE_SRV_STANDING_CHARGE, \ ZB_ZCL_ATTR_TYPE_U32, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_CONVERSION_FACTOR(data_ptr) \ @@ -715,7 +727,8 @@ enum zb_zcl_price_set_commodity_e ZB_ZCL_ATTR_PRICE_SRV_CONVERSION_FACTOR, \ ZB_ZCL_ATTR_TYPE_U32, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_CONVERSION_FACTOR_TRAILING_DIGIT(data_ptr) \ @@ -723,7 +736,8 @@ enum zb_zcl_price_set_commodity_e ZB_ZCL_ATTR_PRICE_SRV_CONVERSION_FACTOR_TRAILING_DIGIT, \ ZB_ZCL_ATTR_TYPE_8BITMAP, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_CALORIFIC_VALUE(data_ptr) \ @@ -731,15 +745,17 @@ enum zb_zcl_price_set_commodity_e ZB_ZCL_ATTR_PRICE_SRV_CALORIFIC_VALUE, \ ZB_ZCL_ATTR_TYPE_U32, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_CALORIFIC_VALUE_UNIT(data_ptr) \ { \ - ZB_ZCL_ATTR_PRICE_SRV_CALORIFIC_VALUE_UNIT, \ + ZB_ZCL_ATTR_PRICE_SRV_CALORIFIC_VALUE_UNIT, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_CALORIFIC_VALUE_TRAILING_DIGIT(data_ptr) \ @@ -747,7 +763,8 @@ enum zb_zcl_price_set_commodity_e ZB_ZCL_ATTR_PRICE_SRV_CALORIFIC_VALUE_TRAILING_DIGIT, \ ZB_ZCL_ATTR_TYPE_8BITMAP, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } /** @endcond */ /* internals_doc */ @@ -1056,7 +1073,8 @@ enum zb_zcl_price_set_block_price_information_e ZB_ZCL_ATTR_PRICE_SRV_NO_TIER_BLOCK ## blockN ## _PRICE, \ ZB_ZCL_ATTR_TYPE_U32, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_TIERN_BLOCKM_PRICE_GNR(tierN, blockM, data_ptr) \ @@ -1064,7 +1082,8 @@ enum zb_zcl_price_set_block_price_information_e ZB_ZCL_ATTR_PRICE_SRV_TIER ## tierN ## _BLOCK ## blockM ## _PRICE, \ ZB_ZCL_ATTR_TYPE_U32, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } /** @endcond */ /* internals_doc */ @@ -1149,15 +1168,17 @@ enum zb_zcl_price_set_extended_price_information_e ZB_ZCL_ATTR_PRICE_SRV_PRICE_TIER ## tierN, \ ZB_ZCL_ATTR_TYPE_U32, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_CPPN_PRICE_GNR(cppN, data_ptr) \ { \ - ZB_ZCL_ATTR_PRICE_SRV_CPP ## cppN ## _PRICE, \ + ZB_ZCL_ATTR_PRICE_SRV_CPP ## cppN ## _PRICE, \ ZB_ZCL_ATTR_TYPE_U32, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } /** @endcond */ /* internals_doc */ @@ -1244,17 +1265,19 @@ enum zb_zcl_price_set_tariff_information_e #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_TARIFF_LABEL(data_ptr) \ { \ ZB_ZCL_ATTR_PRICE_SRV_TARIFF_LABEL, \ - ZB_ZCL_ATTR_TYPE_OCTET_STRING, \ + ZB_ZCL_ATTR_TYPE_OCTET_STRING, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_NUMBER_OF_PRICE_TIERS_IN_USE(data_ptr) \ -{ \ +{ \ ZB_ZCL_ATTR_PRICE_SRV_NUMBER_OF_PRICE_TIERS_IN_USE, \ - ZB_ZCL_ATTR_TYPE_U8, \ - ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + ZB_ZCL_ATTR_TYPE_U8, \ + ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_NUMBER_OF_BLOCK_THRESHOLDS_IN_USE(data_ptr) \ @@ -1262,7 +1285,8 @@ enum zb_zcl_price_set_tariff_information_e ZB_ZCL_ATTR_PRICE_SRV_NUMBER_OF_BLOCK_THRESHOLDS_IN_USE, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_TIER_BLOCK_MODE(data_ptr) \ @@ -1270,7 +1294,8 @@ enum zb_zcl_price_set_tariff_information_e ZB_ZCL_ATTR_PRICE_SRV_TIER_BLOCK_MODE, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } /** @see SE spec, table D-82. */ @@ -1279,7 +1304,8 @@ enum zb_zcl_price_set_tariff_information_e ZB_ZCL_ATTR_PRICE_SRV_TIER_BLOCK_MODE, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } /** @see @ref zb_zcl_metering_unit_of_measure_e */ @@ -1288,7 +1314,8 @@ enum zb_zcl_price_set_tariff_information_e ZB_ZCL_ATTR_PRICE_SRV_UNIT_OF_MEASURE, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_CURRENCY(data_ptr) \ @@ -1296,7 +1323,8 @@ enum zb_zcl_price_set_tariff_information_e ZB_ZCL_ATTR_PRICE_SRV_CURRENCY, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_PRICE_TRAILING_DIGIT(data_ptr) \ @@ -1304,7 +1332,8 @@ enum zb_zcl_price_set_tariff_information_e ZB_ZCL_ATTR_PRICE_SRV_PRICE_TRAILING_DIGIT, \ ZB_ZCL_ATTR_TYPE_8BITMAP, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } /** @endcond */ /* internals_doc */ @@ -1328,7 +1357,8 @@ typedef enum zb_zcl_price_tariff_resolution_period_e ZB_ZCL_ATTR_PRICE_SRV_TARIFF_RESOLUTION_PERIOD, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_CO2(data_ptr) \ @@ -1336,7 +1366,8 @@ typedef enum zb_zcl_price_tariff_resolution_period_e ZB_ZCL_ATTR_PRICE_SRV_CO2, \ ZB_ZCL_ATTR_TYPE_U32, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } /** @endcond */ /* internals_doc */ @@ -1360,7 +1391,8 @@ typedef enum zb_zcl_price_co2_unit_e ZB_ZCL_ATTR_PRICE_SRV_CO2_UNIT, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_CO2_TRAILING_DIGIT(data_ptr) \ @@ -1368,7 +1400,8 @@ typedef enum zb_zcl_price_co2_unit_e ZB_ZCL_ATTR_PRICE_SRV_CO2_TRAILING_DIGIT, \ ZB_ZCL_ATTR_TYPE_8BITMAP, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } /** @endcond */ /* internals_doc */ @@ -1424,42 +1457,47 @@ enum zb_zcl_price_set_billing_information_e #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_CURRENT_BILLING_PERIOD_START(data_ptr) \ { \ - ZB_ZCL_ATTR_PRICE_SRV_CURRENT_BILLING_PERIOD_START, \ - ZB_ZCL_ATTR_TYPE_UTC_TIME, \ + ZB_ZCL_ATTR_PRICE_SRV_CURRENT_BILLING_PERIOD_START, \ + ZB_ZCL_ATTR_TYPE_UTC_TIME, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_CURRENT_BILLING_PERIOD_DURATION(data_ptr) \ { \ - ZB_ZCL_ATTR_PRICE_SRV_CURRENT_BILLING_PERIOD_DURATION, \ - ZB_ZCL_ATTR_TYPE_U24, \ + ZB_ZCL_ATTR_PRICE_SRV_CURRENT_BILLING_PERIOD_DURATION, \ + ZB_ZCL_ATTR_TYPE_U24, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_LAST_BILLING_PERIOD_START(data_ptr) \ -{ \ - ZB_ZCL_ATTR_PRICE_SRV_LAST_BILLING_PERIOD_START, \ - ZB_ZCL_ATTR_TYPE_UTC_TIME, \ - ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ +{ \ + ZB_ZCL_ATTR_PRICE_SRV_LAST_BILLING_PERIOD_START, \ + ZB_ZCL_ATTR_TYPE_UTC_TIME, \ + ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } -#define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_LAST_BILLING_PERIOD_DURATION(data_ptr) \ +#define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_LAST_BILLING_PERIOD_DURATION(data_ptr) \ { \ ZB_ZCL_ATTR_PRICE_SRV_LAST_BILLING_PERIOD_DURATION, \ - ZB_ZCL_ATTR_TYPE_U24, \ + ZB_ZCL_ATTR_TYPE_U24, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_LAST_BILLING_PERIOD_CONSOLIDATED_BILL(data_ptr) \ -{ \ - ZB_ZCL_ATTR_PRICE_SRV_LAST_BILLING_PERIOD_CONSOLIDATED_BILL, \ - ZB_ZCL_ATTR_TYPE_U32, \ - ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ +{ \ + ZB_ZCL_ATTR_PRICE_SRV_LAST_BILLING_PERIOD_CONSOLIDATED_BILL, \ + ZB_ZCL_ATTR_TYPE_U32, \ + ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } /** @endcond */ /* internals_doc */ @@ -1551,7 +1589,8 @@ enum zb_zcl_price_set_credit_payment_e ZB_ZCL_ATTR_PRICE_SRV_CREDIT_PAYMENT_DUE_DATE, \ ZB_ZCL_ATTR_TYPE_U32, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } /** @endcond */ /* internals_doc */ @@ -1580,7 +1619,8 @@ typedef enum zb_zcl_price_credit_payment_status_e ZB_ZCL_ATTR_PRICE_SRV_CREDIT_PAYMENT_STATUS, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_CREDIT_PAYMENT_OVER_DUE_AMOUNT(data_ptr) \ @@ -1588,47 +1628,53 @@ typedef enum zb_zcl_price_credit_payment_status_e ZB_ZCL_ATTR_PRICE_SRV_CREDIT_PAYMENT_OVER_DUE_AMOUNT, \ ZB_ZCL_ATTR_TYPE_S32, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } -#define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_CREDIT_PAYMENT(data_ptr) \ +#define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_CREDIT_PAYMENT(data_ptr) \ { \ - ZB_ZCL_ATTR_PRICE_SRV_CREDIT_PAYMENT, \ + ZB_ZCL_ATTR_PRICE_SRV_CREDIT_PAYMENT, \ ZB_ZCL_ATTR_TYPE_S32, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_CREDIT_PAYMENT_PERIOD(data_ptr) \ { \ - ZB_ZCL_ATTR_PRICE_SRV_CREDIT_PAYMENT_PERIOD, \ + ZB_ZCL_ATTR_PRICE_SRV_CREDIT_PAYMENT_PERIOD, \ ZB_ZCL_ATTR_TYPE_S32, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_CREDIT_PAYMENT_N(paymentN, data_ptr) \ { \ - ZB_ZCL_ATTR_PRICE_SRV_CREDIT_PAYMENT_ ## paymentN, \ + ZB_ZCL_ATTR_PRICE_SRV_CREDIT_PAYMENT_ ## paymentN, \ ZB_ZCL_ATTR_TYPE_U32, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_CREDIT_PAYMENT_DATE_N(paymentN, data_ptr) \ { \ - ZB_ZCL_ATTR_PRICE_SRV_CREDIT_PAYMENT_DATE_ ## paymentN, \ - ZB_ZCL_ATTR_TYPE_UTC_TIME, \ + ZB_ZCL_ATTR_PRICE_SRV_CREDIT_PAYMENT_DATE_ ## paymentN, \ + ZB_ZCL_ATTR_TYPE_UTC_TIME, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_CREDIT_PAYMENT_REF_N(paymentN, data_ptr) \ { \ - ZB_ZCL_ATTR_PRICE_SRV_CREDIT_PAYMENT_REF_ ## paymentN, \ - ZB_ZCL_ATTR_TYPE_UTC_TIME, \ + ZB_ZCL_ATTR_PRICE_SRV_CREDIT_PAYMENT_REF_ ## paymentN, \ + ZB_ZCL_ATTR_TYPE_UTC_TIME, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } /** @endcond */ /* internals_doc */ @@ -1706,9 +1752,10 @@ enum zb_zcl_price_set_received_tier_label #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_RECEIVED_TIERN_PRICE_LABEL_GNR(tierN, data_ptr) \ { \ ZB_ZCL_ATTR_PRICE_SRV_RECEIVED_TIER ## tierN ## _PRICE_LABEL, \ - ZB_ZCL_ATTR_TYPE_OCTET_STRING, \ + ZB_ZCL_ATTR_TYPE_OCTET_STRING, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } /** @endcond */ @@ -1759,7 +1806,8 @@ enum zb_zcl_price_set_received_block_threshold_e ZB_ZCL_ATTR_PRICE_SRV_RECEIVED_BLOCK ## blockN ## _THRESHOLD, \ ZB_ZCL_ATTR_TYPE_48BIT, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } /** @endcond */ @@ -1810,7 +1858,8 @@ enum zb_zcl_price_set_received_block_period_e ZB_ZCL_ATTR_PRICE_SRV_RECEIVED_START_OF_BLOCK_PERIOD, \ ZB_ZCL_ATTR_TYPE_UTC_TIME, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_RECEIVED_BLOCK_PERIOD_DURATION(data_ptr) \ @@ -1818,7 +1867,8 @@ enum zb_zcl_price_set_received_block_period_e ZB_ZCL_ATTR_PRICE_SRV_RECEIVED_BLOCK_PERIOD_DURATION, \ ZB_ZCL_ATTR_TYPE_U24, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_RECEIVED_THRESHOLD_MULTIPLIER(data_ptr) \ @@ -1826,7 +1876,8 @@ enum zb_zcl_price_set_received_block_period_e ZB_ZCL_ATTR_PRICE_SRV_RECEIVED_THRESHOLD_MULTIPLIER, \ ZB_ZCL_ATTR_TYPE_U24, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_RECEIVED_THRESHOLD_DIVISOR(data_ptr) \ @@ -1834,7 +1885,8 @@ enum zb_zcl_price_set_received_block_period_e ZB_ZCL_ATTR_PRICE_SRV_RECEIVED_THRESHOLD_DIVISOR, \ ZB_ZCL_ATTR_TYPE_U24, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } /** @endcond */ /* internals_doc */ @@ -2133,10 +2185,11 @@ enum zb_zcl_price_set_received_block_price_information_e #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_RX_NO_TIER_BLOCKN_PRICE_GNR(blockN, data_ptr) \ { \ - ZB_ZCL_ATTR_PRICE_SRV_RX_NO_TIER_BLOCK ## blockN ## _PRICE, \ + ZB_ZCL_ATTR_PRICE_SRV_RX_NO_TIER_BLOCK ## blockN ## _PRICE, \ ZB_ZCL_ATTR_TYPE_U32, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_RX_TIERN_BLOCKM_PRICE_GNR(tierN, blockM, data_ptr) \ @@ -2144,7 +2197,8 @@ enum zb_zcl_price_set_received_block_price_information_e ZB_ZCL_ATTR_PRICE_SRV_RX_TIER ## tierN ## _BLOCK ## blockM ## _PRICE, \ ZB_ZCL_ATTR_TYPE_U32, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } /** @endcond */ /* internals_doc */ @@ -2278,7 +2332,8 @@ enum zb_zcl_price_set_received_extended_price_information_e ZB_ZCL_ATTR_PRICE_SRV_RECEIVED_PRICE_TIER ## tierN, \ ZB_ZCL_ATTR_TYPE_U32, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } /** @endcond */ /* internals_doc */ @@ -2350,9 +2405,10 @@ enum zb_zcl_price_set_received_tariff_information_e #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_RECEIVED_TARIFF_LABEL(data_ptr) \ { \ ZB_ZCL_ATTR_PRICE_SRV_RECEIVED_TARIFF_LABEL, \ - ZB_ZCL_ATTR_TYPE_OCTET_STRING, \ + ZB_ZCL_ATTR_TYPE_OCTET_STRING, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_RECEIVED_NUMBER_OF_PRICE_TIERS_IN_USE(data_ptr) \ @@ -2360,7 +2416,8 @@ enum zb_zcl_price_set_received_tariff_information_e ZB_ZCL_ATTR_PRICE_SRV_RECEIVED_NUMBER_OF_PRICE_TIERS_IN_USE, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_RECEIVED_NUMBER_OF_BLOCK_THRESHOLDS_IN_USE(data_ptr) \ @@ -2368,7 +2425,8 @@ enum zb_zcl_price_set_received_tariff_information_e ZB_ZCL_ATTR_PRICE_SRV_RECEIVED_NUMBER_OF_BLOCK_THRESHOLDS_IN_USE, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } /** @see SE spec, table D-82. */ @@ -2377,7 +2435,8 @@ enum zb_zcl_price_set_received_tariff_information_e ZB_ZCL_ATTR_PRICE_SRV_RECEIVED_TIER_BLOCK_MODE, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } /** @see @ref zb_zcl_price_tariff_resolution_period_t. */ @@ -2386,7 +2445,8 @@ enum zb_zcl_price_set_received_tariff_information_e ZB_ZCL_ATTR_PRICE_SRV_RECEIVED_TARIFF_RESOLUTION_PERIOD, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_RECEIVED_CO2(data_ptr) \ @@ -2394,7 +2454,8 @@ enum zb_zcl_price_set_received_tariff_information_e ZB_ZCL_ATTR_PRICE_SRV_RECEIVED_CO2, \ ZB_ZCL_ATTR_TYPE_U32, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } /** @see @ref zb_zcl_price_co2_unit_t */ @@ -2403,7 +2464,8 @@ enum zb_zcl_price_set_received_tariff_information_e ZB_ZCL_ATTR_PRICE_SRV_RECEIVED_CO2_UNIT, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_RECEIVED_CO2_TRAILING_DIGIT(data_ptr) \ @@ -2411,7 +2473,8 @@ enum zb_zcl_price_set_received_tariff_information_e ZB_ZCL_ATTR_PRICE_SRV_RECEIVED_CO2_TRAILING_DIGIT, \ ZB_ZCL_ATTR_TYPE_8BITMAP, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } /** @endcond */ /* internals_doc */ @@ -2467,7 +2530,8 @@ enum zb_zcl_price_set_received_billing_information ZB_ZCL_ATTR_PRICE_SRV_RECEIVED_CURRENT_BILLING_PERIOD_START, \ ZB_ZCL_ATTR_TYPE_UTC_TIME, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_RECEIVED_CURRENT_BILLING_PERIOD_DURATION(data_ptr) \ @@ -2475,7 +2539,8 @@ enum zb_zcl_price_set_received_billing_information ZB_ZCL_ATTR_PRICE_SRV_RECEIVED_CURRENT_BILLING_PERIOD_DURATION, \ ZB_ZCL_ATTR_TYPE_U24, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_RECEIVED_LAST_BILLING_PERIOD_START(data_ptr) \ @@ -2483,7 +2548,8 @@ enum zb_zcl_price_set_received_billing_information ZB_ZCL_ATTR_PRICE_SRV_RECEIVED_LAST_BILLING_PERIOD_START, \ ZB_ZCL_ATTR_TYPE_UTC_TIME, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_RECEIVED_LAST_BILLING_PERIOD_DURATION(data_ptr) \ @@ -2491,7 +2557,8 @@ enum zb_zcl_price_set_received_billing_information ZB_ZCL_ATTR_PRICE_SRV_RECEIVED_LAST_BILLING_PERIOD_DURATION, \ ZB_ZCL_ATTR_TYPE_U24, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_SRV_RECEIVED_LAST_BILLING_PERIOD_CONSOLIDATED_BILL(data_ptr) \ @@ -2499,7 +2566,8 @@ enum zb_zcl_price_set_received_billing_information ZB_ZCL_ATTR_PRICE_SRV_RECEIVED_LAST_BILLING_PERIOD_CONSOLIDATED_BILL, \ ZB_ZCL_ATTR_TYPE_U32, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } /** @endcond */ /* internals_doc */ @@ -2550,18 +2618,20 @@ typedef enum zb_zcl_price_cli_attr_e #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_CLI_PRICE_INCREASE_RANDOMIZE_MINUTES(data_ptr) \ { \ - ZB_ZCL_ATTR_PRICE_CLI_PRICE_INCREASE_RANDOMIZE_MINUTES, \ - ZB_ZCL_ATTR_TYPE_U8, \ - ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) (data_ptr) \ + ZB_ZCL_ATTR_PRICE_CLI_PRICE_INCREASE_RANDOMIZE_MINUTES, \ + ZB_ZCL_ATTR_TYPE_U8, \ + ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_CLI_PRICE_DECREASE_RANDOMIZE_MINUTES(data_ptr) \ { \ - ZB_ZCL_ATTR_PRICE_CLI_PRICE_DECREASE_RANDOMIZE_MINUTES, \ - ZB_ZCL_ATTR_TYPE_U8, \ - ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) (data_ptr) \ + ZB_ZCL_ATTR_PRICE_CLI_PRICE_DECREASE_RANDOMIZE_MINUTES, \ + ZB_ZCL_ATTR_TYPE_U8, \ + ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PRICE_CLI_COMMODITY_TYPE(data_ptr) \ @@ -2569,7 +2639,8 @@ typedef enum zb_zcl_price_cli_attr_e ZB_ZCL_ATTR_PRICE_CLI_COMMODITY_TYPE, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) (data_ptr) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) (data_ptr) \ } /** @endcond */ /* internals_doc */ diff --git a/zboss/production/include/zcl/zb_zcl_rel_humidity_measurement.h b/zboss/production/include/zcl/zb_zcl_rel_humidity_measurement.h index e853ce698a..cf00ca0426 100644 --- a/zboss/production/include/zcl/zb_zcl_rel_humidity_measurement.h +++ b/zboss/production/include/zcl/zb_zcl_rel_humidity_measurement.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -122,7 +122,8 @@ enum zb_zcl_rel_humidity_measurement_attr_e ZB_ZCL_ATTR_REL_HUMIDITY_MEASUREMENT_VALUE_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_REL_HUMIDITY_MEASUREMENT_MIN_VALUE_ID(data_ptr) \ @@ -130,7 +131,8 @@ enum zb_zcl_rel_humidity_measurement_attr_e ZB_ZCL_ATTR_REL_HUMIDITY_MEASUREMENT_MIN_VALUE_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_REL_HUMIDITY_MEASUREMENT_MAX_VALUE_ID(data_ptr) \ @@ -138,7 +140,8 @@ enum zb_zcl_rel_humidity_measurement_attr_e ZB_ZCL_ATTR_REL_HUMIDITY_MEASUREMENT_MAX_VALUE_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_ZCL_REL_HUMIDITY_MEASUREMENT_REPORT_ATTR_COUNT 1 diff --git a/zboss/production/include/zcl/zb_zcl_reporting.h b/zboss/production/include/zcl/zb_zcl_reporting.h index 790ae91ad3..6c2149e0a1 100644 --- a/zboss/production/include/zcl/zb_zcl_reporting.h +++ b/zboss/production/include/zcl/zb_zcl_reporting.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -134,6 +134,8 @@ typedef struct zb_zcl_reporting_info_s zb_uint16_t profile_id; /*!< Profile id */ } dst; + + zb_uint16_t manuf_code; /*!< Manufacturer specific code */ } zb_zcl_reporting_info_t; @@ -149,6 +151,7 @@ typedef ZB_PACKED_PRE struct zb_zcl_reporting_info_nvram_s zb_uint16_t cluster_id; /*!< Cluster ID for reporting */ zb_uint8_t cluster_role; /*!< Cluster role */ zb_uint16_t attr_id; /*!< Attribute ID for reporting */ + zb_uint16_t manuf_code; /*!< Manufacturer specific code */ zb_uint8_t flags; /*!< Flags to inform status of reporting */ zb_uint16_t min_interval; /*!< Minimum reporting interval or timeout for client*/ @@ -160,7 +163,7 @@ typedef ZB_PACKED_PRE struct zb_zcl_reporting_info_nvram_s zb_uint16_t short_addr_dest; /*!< Destination short address */ zb_uint8_t endpoint_dest; /*!< Destination endpoint */ zb_uint16_t profile_id_dest; /*!< Profile id */ - zb_uint8_t align[3]; + zb_uint8_t align[1]; } ZB_PACKED_STRUCT zb_zcl_reporting_info_nvram_t; #endif /* defined ZB_USE_NVRAM */ @@ -253,6 +256,8 @@ void zb_zcl_report_attr_cmd_handler(zb_uint8_t param); void zb_zcl_report_received(zb_uint8_t ep, zb_uint16_t cluster_id, zb_uint8_t cluster_role, zb_uint16_t attr_id); +void zb_zcl_report_received_manuf(zb_uint8_t ep, zb_uint16_t cluster_id, zb_uint8_t cluster_role, zb_uint16_t attr_id, zb_uint16_t manuf_code); + zb_ret_t zb_zcl_put_reporting_info(zb_zcl_reporting_info_t* rep_info_ptr, zb_bool_t override); zb_ret_t zb_zcl_put_reporting_info_from_req(zb_zcl_configure_reporting_req_t *config_rep_req, @@ -265,6 +270,12 @@ zb_zcl_reporting_info_t* zb_zcl_find_reporting_info( zb_uint8_t ep, zb_uint8_t cluster_role, zb_uint16_t attr_id); +zb_zcl_reporting_info_t* zb_zcl_find_reporting_info_manuf( zb_uint8_t ep, + zb_uint16_t cluster_id, + zb_uint8_t cluster_role, + zb_uint16_t attr_id, + zb_uint16_t manuf_code); + zb_zcl_reporting_info_t* zb_zcl_get_next_reporting_info( zb_zcl_reporting_info_t *rep_info_init, zb_uint8_t is_manuf_spec); @@ -273,10 +284,15 @@ void zb_zcl_reporting_cb(zb_uint8_t param); void zb_zcl_save_reported_value(zb_zcl_reporting_info_t *rep_info, zb_zcl_attr_t* attr_desc); void zb_zcl_mark_attr_for_reporting(zb_uint8_t ep, zb_uint16_t cluster_id, zb_uint8_t cluster_role, zb_uint16_t attr_id); +void zb_zcl_mark_attr_for_reporting_manuf(zb_uint8_t ep, zb_uint16_t cluster_id, zb_uint8_t cluster_role, zb_uint16_t attr_id, zb_uint16_t manuf_code); /** @endcond */ /* internals_doc */ /** @brief Start attribute reporting + + @deprecated This function will be removed in the next Major release after February 2023 + Use @ref zb_zcl_start_attr_reporting_manuf() instead + @param ep - endpoint number @param cluster_id - cluster ID @param cluster_role - cluster role @@ -286,7 +302,22 @@ void zb_zcl_mark_attr_for_reporting(zb_uint8_t ep, zb_uint16_t cluster_id, zb_ui */ zb_ret_t zb_zcl_start_attr_reporting(zb_uint8_t ep, zb_uint16_t cluster_id, zb_uint8_t cluster_role, zb_uint16_t attr_id); +/** @brief Start attribute reporting + @param ep - endpoint number + @param cluster_id - cluster ID + @param cluster_role - cluster role + @param attr_id - attribute ID + @param manuf_code - manufacturer specific code + @return RET_OK if reporting is successfully started \n + RET_DOES_NOT_EXIST if reporting can't be configured with given parameters (i.e cluster not present) +*/ +zb_ret_t zb_zcl_start_attr_reporting_manuf(zb_uint8_t ep, zb_uint16_t cluster_id, zb_uint8_t cluster_role, zb_uint16_t attr_id, zb_uint16_t manuf_code); + /** @brief Stop attribute reporting + + @deprecated This function will be removed in the next Major release after February 2023 + Use @ref zb_zcl_stop_attr_reporting_manuf() instead + @param ep - endpoint number @param cluster_id - cluster ID @param cluster_role - cluster role @@ -296,7 +327,22 @@ zb_ret_t zb_zcl_start_attr_reporting(zb_uint8_t ep, zb_uint16_t cluster_id, zb_u */ zb_ret_t zb_zcl_stop_attr_reporting(zb_uint8_t ep, zb_uint16_t cluster_id, zb_uint8_t cluster_role, zb_uint16_t attr_id); +/** @brief Stop attribute reporting + @param ep - endpoint number + @param cluster_id - cluster ID + @param cluster_role - cluster role + @param attr_id - attribute ID + @param manuf_code - manufacturer specific code + @return RET_OK if reporting is successfully stopped \n + RET_DOES_NOT_EXIST if reporting was not set up with given parameters +*/ +zb_ret_t zb_zcl_stop_attr_reporting_manuf(zb_uint8_t ep, zb_uint16_t cluster_id, zb_uint8_t cluster_role, zb_uint16_t attr_id, zb_uint16_t manuf_code); + /** @brief Check if an attribute is configured for reporting or not + + @deprecated This function will be removed in the next Major release after February 2023 + Use @ref zcl_is_attr_reported_manuf() instead + @param ep - endpoint number @param cluster_id - cluster ID @param cluster_role - cluster role @@ -305,6 +351,16 @@ zb_ret_t zb_zcl_stop_attr_reporting(zb_uint8_t ep, zb_uint16_t cluster_id, zb_ui */ zb_bool_t zcl_is_attr_reported(zb_uint8_t ep, zb_uint16_t cluster_id, zb_uint8_t cluster_role, zb_uint16_t attr_id); +/** @brief Check if an attribute is configured for reporting or not + @param ep - endpoint number + @param cluster_id - cluster ID + @param cluster_role - cluster role + @param attr_id - attribute ID + @param manuf_code - manufacturer specific code + @return ZB_TRUE if attribute is reported +*/ +zb_bool_t zcl_is_attr_reported_manuf(zb_uint8_t ep, zb_uint16_t cluster_id, zb_uint8_t cluster_role, zb_uint16_t attr_id, zb_uint16_t manuf_code); + /* TODO: Document */ zb_ret_t zb_zcl_put_reporting_info(zb_zcl_reporting_info_t* rep_info_ptr, zb_bool_t override); diff --git a/zboss/production/include/zcl/zb_zcl_scenes.h b/zboss/production/include/zcl/zb_zcl_scenes.h index 5cfcbe7420..c3031669fe 100644 --- a/zboss/production/include/zcl/zb_zcl_scenes.h +++ b/zboss/production/include/zcl/zb_zcl_scenes.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -249,7 +249,8 @@ void zb_zcl_scenes_remove_all_scenes_in_all_endpoints(zb_uint8_t param); ZB_ZCL_ATTR_SCENES_SCENE_COUNT_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_SCENES_CURRENT_SCENE_ID(data_ptr) \ @@ -257,7 +258,8 @@ void zb_zcl_scenes_remove_all_scenes_in_all_endpoints(zb_uint8_t param); ZB_ZCL_ATTR_SCENES_CURRENT_SCENE_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_SCENES_CURRENT_GROUP_ID(data_ptr) \ @@ -265,7 +267,8 @@ void zb_zcl_scenes_remove_all_scenes_in_all_endpoints(zb_uint8_t param); ZB_ZCL_ATTR_SCENES_CURRENT_GROUP_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_SCENES_SCENE_VALID_ID(data_ptr) \ @@ -273,7 +276,8 @@ void zb_zcl_scenes_remove_all_scenes_in_all_endpoints(zb_uint8_t param); ZB_ZCL_ATTR_SCENES_SCENE_VALID_ID, \ ZB_ZCL_ATTR_TYPE_BOOL, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_SCENES_NAME_SUPPORT_ID(data_ptr) \ @@ -281,7 +285,8 @@ void zb_zcl_scenes_remove_all_scenes_in_all_endpoints(zb_uint8_t param); ZB_ZCL_ATTR_SCENES_NAME_SUPPORT_ID, \ ZB_ZCL_ATTR_TYPE_8BITMAP, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } /*! @} */ /* Scenes cluster internals */ diff --git a/zboss/production/include/zcl/zb_zcl_shade_config.h b/zboss/production/include/zcl/zb_zcl_shade_config.h index 9f74279cb9..cc9306c652 100644 --- a/zboss/production/include/zcl/zb_zcl_shade_config.h +++ b/zboss/production/include/zcl/zb_zcl_shade_config.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -220,7 +220,8 @@ typedef struct zb_zcl_shade_get_value_param_s ZB_ZCL_ATTR_SHADE_CONFIG_STATUS_ID, \ ZB_ZCL_ATTR_TYPE_8BITMAP, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_SHADE_CONFIG_CLOSED_LIMIT_ID(data_ptr) \ @@ -228,7 +229,8 @@ typedef struct zb_zcl_shade_get_value_param_s ZB_ZCL_ATTR_SHADE_CONFIG_CLOSED_LIMIT_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_SHADE_CONFIG_MODE_ID(data_ptr) \ @@ -236,7 +238,8 @@ typedef struct zb_zcl_shade_get_value_param_s ZB_ZCL_ATTR_SHADE_CONFIG_MODE_ID, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } /** Number of attributes mandatory for reporting in Shade Configuration cluster */ diff --git a/zboss/production/include/zcl/zb_zcl_temp_measurement.h b/zboss/production/include/zcl/zb_zcl_temp_measurement.h index c8b6a94c3c..cab0b3502c 100644 --- a/zboss/production/include/zcl/zb_zcl_temp_measurement.h +++ b/zboss/production/include/zcl/zb_zcl_temp_measurement.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -134,7 +134,8 @@ enum zb_zcl_temp_measurement_attr_e ZB_ZCL_ATTR_TEMP_MEASUREMENT_VALUE_ID, \ ZB_ZCL_ATTR_TYPE_S16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_TEMP_MEASUREMENT_MIN_VALUE_ID(data_ptr) \ @@ -142,7 +143,8 @@ enum zb_zcl_temp_measurement_attr_e ZB_ZCL_ATTR_TEMP_MEASUREMENT_MIN_VALUE_ID, \ ZB_ZCL_ATTR_TYPE_S16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_TEMP_MEASUREMENT_MAX_VALUE_ID(data_ptr) \ @@ -150,7 +152,8 @@ enum zb_zcl_temp_measurement_attr_e ZB_ZCL_ATTR_TEMP_MEASUREMENT_MAX_VALUE_ID, \ ZB_ZCL_ATTR_TYPE_S16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_TEMP_MEASUREMENT_TOLERANCE_ID(data_ptr) \ @@ -158,7 +161,8 @@ enum zb_zcl_temp_measurement_attr_e ZB_ZCL_ATTR_TEMP_MEASUREMENT_TOLERANCE_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } /*! @internal Number of attributes mandatory for reporting in Temperature Measurement cluster */ diff --git a/zboss/production/include/zcl/zb_zcl_thermostat.h b/zboss/production/include/zcl/zb_zcl_thermostat.h index c9c767d685..e8b0a65969 100644 --- a/zboss/production/include/zcl/zb_zcl_thermostat.h +++ b/zboss/production/include/zcl/zb_zcl_thermostat.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -822,7 +822,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_LOCAL_TEMPERATURE_ID, \ ZB_ZCL_ATTR_TYPE_S16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_OUTDOOR_TEMPERATURE_ID(data_ptr) \ @@ -830,7 +831,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_OUTDOOR_TEMPERATURE_ID, \ ZB_ZCL_ATTR_TYPE_S16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_OCCUPANCY_ID(data_ptr) \ @@ -838,7 +840,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_OCCUPANCY_ID, \ ZB_ZCL_ATTR_TYPE_8BITMAP, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_ABS_MIN_HEAT_SETPOINT_LIMIT_ID(data_ptr) \ @@ -846,7 +849,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_ABS_MIN_HEAT_SETPOINT_LIMIT_ID, \ ZB_ZCL_ATTR_TYPE_S16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_ABS_MAX_HEAT_SETPOINT_LIMIT_ID(data_ptr) \ @@ -854,7 +858,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_ABS_MAX_HEAT_SETPOINT_LIMIT_ID, \ ZB_ZCL_ATTR_TYPE_S16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_ABS_MIN_COOL_SETPOINT_LIMIT_ID(data_ptr) \ @@ -862,7 +867,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_ABS_MIN_COOL_SETPOINT_LIMIT_ID, \ ZB_ZCL_ATTR_TYPE_S16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_ABS_MAX_COOL_SETPOINT_LIMIT_ID(data_ptr) \ @@ -870,7 +876,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_ABS_MAX_COOL_SETPOINT_LIMIT_ID, \ ZB_ZCL_ATTR_TYPE_S16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_PI_COOLING_DEMAND_ID(data_ptr) \ @@ -878,7 +885,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_PI_COOLING_DEMAND_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_PI_HEATING_DEMAND_ID(data_ptr) \ @@ -886,7 +894,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_PI_HEATING_DEMAND_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_THERMOSTAT_PROGRAMMING_OPERATION_MODE_ID(data_ptr) \ @@ -894,14 +903,16 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_THERMOSTAT_PROGRAMMING_OPERATION_MODE_ID, \ ZB_ZCL_ATTR_TYPE_8BITMAP, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE | ZB_ZCL_ATTR_ACCESS_REPORTING, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_THERMOSTAT_RUNNING_STATE_ID(data_ptr) \ { \ ZB_ZCL_ATTR_THERMOSTAT_THERMOSTAT_RUNNING_STATE_ID, \ - ZB_ZCL_ATTR_TYPE_16BITMAP, \ + ZB_ZCL_ATTR_TYPE_16BITMAP, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -915,6 +926,7 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_HVAC_SYSTEM_TYPE_CONFIGURATION_ID, \ ZB_ZCL_ATTR_TYPE_8BITMAP, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -923,7 +935,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_LOCAL_TEMPERATURE_CALIBRATION_ID, \ ZB_ZCL_ATTR_TYPE_S8, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_OCCUPIED_COOLING_SETPOINT_ID(data_ptr) \ @@ -931,7 +944,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_OCCUPIED_COOLING_SETPOINT_ID, \ ZB_ZCL_ATTR_TYPE_S16, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE | ZB_ZCL_ATTR_ACCESS_SCENE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_OCCUPIED_HEATING_SETPOINT_ID(data_ptr) \ @@ -939,7 +953,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_OCCUPIED_HEATING_SETPOINT_ID, \ ZB_ZCL_ATTR_TYPE_S16, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE | ZB_ZCL_ATTR_ACCESS_SCENE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_UNOCCUPIED_COOLING_SETPOINT_ID(data_ptr) \ @@ -947,7 +962,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_UNOCCUPIED_COOLING_SETPOINT_ID, \ ZB_ZCL_ATTR_TYPE_S16, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_UNOCCUPIED_HEATING_SETPOINT_ID(data_ptr) \ @@ -955,7 +971,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_UNOCCUPIED_HEATING_SETPOINT_ID, \ ZB_ZCL_ATTR_TYPE_S16, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_MIN_HEAT_SETPOINT_LIMIT_ID(data_ptr) \ @@ -963,7 +980,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_MIN_HEAT_SETPOINT_LIMIT_ID, \ ZB_ZCL_ATTR_TYPE_S16, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_MAX_HEAT_SETPOINT_LIMIT_ID(data_ptr) \ @@ -971,7 +989,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_MAX_HEAT_SETPOINT_LIMIT_ID, \ ZB_ZCL_ATTR_TYPE_S16, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_MIN_COOL_SETPOINT_LIMIT_ID(data_ptr) \ @@ -979,7 +998,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_MIN_COOL_SETPOINT_LIMIT_ID, \ ZB_ZCL_ATTR_TYPE_S16, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_MAX_COOL_SETPOINT_LIMIT_ID(data_ptr) \ @@ -987,7 +1007,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_MAX_COOL_SETPOINT_LIMIT_ID, \ ZB_ZCL_ATTR_TYPE_S16, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } /** According to ZCL8, Table 6-13. Attributes of the Thermostat Settings Attribute Set, @@ -1000,6 +1021,7 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_MIN_SETPOINT_DEAD_BAND_ID, \ ZB_ZCL_ATTR_TYPE_S8, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ (void*) data_ptr \ } @@ -1008,7 +1030,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_REMOTE_SENSING_ID, \ ZB_ZCL_ATTR_TYPE_8BITMAP, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE | ZB_ZCL_ATTR_ACCESS_SCENE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_CONTROL_SEQUENCE_OF_OPERATION_ID(data_ptr) \ @@ -1016,7 +1039,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_CONTROL_SEQUENCE_OF_OPERATION_ID, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_SYSTEM_MODE_ID(data_ptr) \ @@ -1024,7 +1048,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_SYSTEM_MODE_ID, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE | ZB_ZCL_ATTR_ACCESS_SCENE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_ALARM_MASK_ID(data_ptr) \ @@ -1032,7 +1057,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_ALARM_MASK_ID, \ ZB_ZCL_ATTR_TYPE_8BITMAP, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_RUNNING_MODE_ID(data_ptr) \ @@ -1040,7 +1066,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_RUNNING_MODE_ID, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_START_OF_WEEK_ID(data_ptr) \ @@ -1048,7 +1075,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_START_OF_WEEK_ID, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_NUMBER_OF_WEEKLY_TRANSITIONS_ID(data_ptr) \ @@ -1056,7 +1084,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_NUMBER_OF_WEEKLY_TRANSITIONS_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_NUMBER_OF_DAILY_TRANSITIONS_ID(data_ptr) \ @@ -1064,7 +1093,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_NUMBER_OF_DAILY_TRANSITIONS_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_TEMPERATURE_SETPOINT_HOLD_ID(data_ptr) \ @@ -1072,7 +1102,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_TEMPERATURE_SETPOINT_HOLD_ID, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_TEMPERATURE_SETPOINT_HOLD_DURATION_ID(data_ptr) \ @@ -1080,7 +1111,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_TEMPERATURE_SETPOINT_HOLD_DURATION_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_SETPOINT_CHANGE_SOURCE_ID(data_ptr) \ @@ -1088,7 +1120,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_SETPOINT_CHANGE_SOURCE_ID, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_SETPOINT_CHANGE_AMOUNT_ID(data_ptr) \ @@ -1096,7 +1129,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_SETPOINT_CHANGE_AMOUNT_TIMESTAMP_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_SETPOINT_CHANGE_SOURCE_TIMESTAMP_ID(data_ptr) \ @@ -1104,7 +1138,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_SETPOINT_CHANGE_SOURCE_TIMESTAMP_ID, \ ZB_ZCL_ATTR_TYPE_UTC_TIME, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_OCCUPIED_SETBACK_ID(data_ptr) \ @@ -1112,7 +1147,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_OCCUPIED_SETBACK_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_OCCUPIED_SETBACK_MIN_ID(data_ptr) \ @@ -1120,7 +1156,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_OCCUPIED_SETBACK_MIN_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_OCCUPIED_SETBACK_MAX_ID(data_ptr) \ @@ -1128,7 +1165,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_OCCUPIED_SETBACK_MAX_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_UNOCCUPIED_SETBACK_ID(data_ptr) \ @@ -1136,7 +1174,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_UNOCCUPIED_SETBACK_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_UNOCCUPIED_SETBACK_MIN_ID(data_ptr) \ @@ -1144,7 +1183,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_UNOCCUPIED_SETBACK_MIN_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_UNOCCUPIED_SETBACK_MAX_ID(data_ptr) \ @@ -1152,7 +1192,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_UNOCCUPIED_SETBACK_MAX_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_EMERGENCY_HEAT_DELTA_ID(data_ptr) \ @@ -1160,7 +1201,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_EMERGENCY_HEAT_DELTA_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_AC_TYPE_ID(data_ptr) \ @@ -1168,7 +1210,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_AC_TYPE_ID, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_AC_CAPACITY_ID(data_ptr) \ @@ -1176,7 +1219,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_AC_CAPACITY_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_AC_REFRIGERANT_TYPE_ID(data_ptr) \ @@ -1184,7 +1228,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_AC_REFRIGERANT_TYPE_ID, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_AC_COMPRESSOR_TYPE_ID(data_ptr) \ @@ -1192,7 +1237,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_AC_COMPRESSOR_TYPE_ID, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_AC_ERROR_CODE_ID(data_ptr) \ @@ -1200,7 +1246,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_AC_ERROR_CODE_ID, \ ZB_ZCL_ATTR_TYPE_8BITMAP, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_AC_LOUVER_POSITION_ID(data_ptr) \ @@ -1208,7 +1255,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_AC_LOUVER_POSITION_ID, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_AC_COIL_TEMPERATURE_ID(data_ptr) \ @@ -1216,7 +1264,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_AC_COIL_TEMPERATURE_ID, \ ZB_ZCL_ATTR_TYPE_S16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_AC_CAPACITY_FORMAT_ID(data_ptr) \ @@ -1224,7 +1273,8 @@ enum zb_zcl_thermostat_cmd_resp_ha_e ZB_ZCL_ATTR_THERMOSTAT_AC_CAPACITY_FORMAT_ID, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } /*! @internal Number of attributes mandatory for reporting in Thermostat cluster */ @@ -1272,18 +1322,18 @@ enum zb_zcl_thermostat_setpoint_raise_lower_mode_e @param mode - Mode value @param amount - Amount value */ -#define ZB_ZCL_THERMOSTAT_SEND_SETPOINT_RAISE_LOWER_REQ( \ - buffer, addr, dst_addr_mode, dst_ep, ep, prfl_id, def_resp, cb, mode, amount) \ -{ \ - zb_uint8_t* ptr = ZB_ZCL_START_PACKET_REQ(buffer) \ - ZB_ZCL_CONSTRUCT_SPECIFIC_COMMAND_REQ_FRAME_CONTROL(ptr, def_resp) \ - ZB_ZCL_CONSTRUCT_COMMAND_HEADER_REQ(ptr, ZB_ZCL_GET_SEQ_NUM(), \ - ZB_ZCL_CMD_THERMOSTAT_SETPOINT_RAISE_LOWER); \ - ZB_ZCL_PACKET_PUT_DATA8(ptr, (mode)); \ - ZB_ZCL_PACKET_PUT_DATA8(ptr, (amount)); \ - ZB_ZCL_FINISH_PACKET(buffer, ptr) \ - ZB_ZCL_SEND_COMMAND_SHORT( \ - buffer, addr, dst_addr_mode, dst_ep, ep, prfl_id, ZB_ZCL_CLUSTER_ID_THERMOSTAT, cb);\ +#define ZB_ZCL_THERMOSTAT_SEND_SETPOINT_RAISE_LOWER_REQ( \ + buffer, addr, dst_addr_mode, dst_ep, ep, prfl_id, def_resp, cb, mode, amount) \ +{ \ + zb_uint8_t* ptr = ZB_ZCL_START_PACKET_REQ(buffer) \ + ZB_ZCL_CONSTRUCT_SPECIFIC_COMMAND_REQ_FRAME_CONTROL(ptr, def_resp) \ + ZB_ZCL_CONSTRUCT_COMMAND_HEADER_REQ(ptr, ZB_ZCL_GET_SEQ_NUM(), \ + ZB_ZCL_CMD_THERMOSTAT_SETPOINT_RAISE_LOWER); \ + ZB_ZCL_PACKET_PUT_DATA8(ptr, (mode)); \ + ZB_ZCL_PACKET_PUT_DATA8(ptr, (amount)); \ + ZB_ZCL_FINISH_PACKET(buffer, ptr) \ + ZB_ZCL_SEND_COMMAND_SHORT( \ + buffer, addr, dst_addr_mode, dst_ep, ep, prfl_id, ZB_ZCL_CLUSTER_ID_THERMOSTAT, cb); \ } /*! diff --git a/zboss/production/include/zcl/zb_zcl_thermostat_ui_config.h b/zboss/production/include/zcl/zb_zcl_thermostat_ui_config.h index 05d8bc2811..c8b66d42ba 100644 --- a/zboss/production/include/zcl/zb_zcl_thermostat_ui_config.h +++ b/zboss/production/include/zcl/zb_zcl_thermostat_ui_config.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -147,7 +147,8 @@ enum zb_zcl_thermostat_ui_config_keypad_lockout_e ZB_ZCL_ATTR_THERMOSTAT_UI_CONFIG_TEMPERATURE_DISPLAY_MODE_ID, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_THERMOSTAT_UI_CONFIG_KEYPAD_LOCKOUT_ID(data_ptr) \ @@ -155,7 +156,8 @@ enum zb_zcl_thermostat_ui_config_keypad_lockout_e ZB_ZCL_ATTR_THERMOSTAT_UI_CONFIG_KEYPAD_LOCKOUT_ID, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } /*! @internal Number of attributes mandatory for reporting in Thermostat UI Configuration cluster */ diff --git a/zboss/production/include/zcl/zb_zcl_time.h b/zboss/production/include/zcl/zb_zcl_time.h index 0db697aafd..fc8de6cc2e 100644 --- a/zboss/production/include/zcl/zb_zcl_time.h +++ b/zboss/production/include/zcl/zb_zcl_time.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -315,8 +315,9 @@ enum zb_zcl_time_time_status_e { \ ZB_ZCL_ATTR_TIME_TIME_ID, \ ZB_ZCL_ATTR_TYPE_UTC_TIME, \ - ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } /** Acc. to ZCL8 Table 3-69 and section 3.12.2.2.2 "TimeStatus Attribute" TimeStatus attribute is write-optional. @@ -326,73 +327,82 @@ enum zb_zcl_time_time_status_e #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_TIME_TIME_STATUS_ID(data_ptr) \ { \ ZB_ZCL_ATTR_TIME_TIME_STATUS_ID, \ - ZB_ZCL_ATTR_TYPE_8BITMAP, \ - ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + ZB_ZCL_ATTR_TYPE_8BITMAP, \ + ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_TIME_TIME_ZONE_ID(data_ptr) \ { \ ZB_ZCL_ATTR_TIME_TIME_ZONE_ID, \ ZB_ZCL_ATTR_TYPE_S32, \ - ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_TIME_DST_START_ID(data_ptr) \ { \ ZB_ZCL_ATTR_TIME_DST_START_ID, \ ZB_ZCL_ATTR_TYPE_U32, \ - ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_TIME_DST_END_ID(data_ptr) \ { \ ZB_ZCL_ATTR_TIME_DST_END_ID, \ ZB_ZCL_ATTR_TYPE_U32, \ - ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_TIME_DST_SHIFT_ID(data_ptr) \ { \ ZB_ZCL_ATTR_TIME_DST_SHIFT_ID, \ - ZB_ZCL_ATTR_TYPE_S32, \ - ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + ZB_ZCL_ATTR_TYPE_S32, \ + ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_TIME_STANDARD_TIME_ID(data_ptr) \ { \ ZB_ZCL_ATTR_TIME_STANDARD_TIME_ID, \ ZB_ZCL_ATTR_TYPE_U32, \ - ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_TIME_LOCAL_TIME_ID(data_ptr) \ { \ ZB_ZCL_ATTR_TIME_LOCAL_TIME_ID, \ ZB_ZCL_ATTR_TYPE_U32, \ - ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_TIME_LAST_SET_TIME_ID(data_ptr) \ { \ ZB_ZCL_ATTR_TIME_LAST_SET_TIME_ID, \ ZB_ZCL_ATTR_TYPE_UTC_TIME, \ - ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_TIME_VALID_UNTIL_TIME_ID(data_ptr) \ { \ ZB_ZCL_ATTR_TIME_VALID_UNTIL_TIME_ID, \ ZB_ZCL_ATTR_TYPE_UTC_TIME, \ - ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } /*! @internal Number of attributes mandatory for reporting in Time cluster */ diff --git a/zboss/production/include/zcl/zb_zcl_tunneling.h b/zboss/production/include/zcl/zb_zcl_tunneling.h index 1d011e1444..7d22bd557e 100644 --- a/zboss/production/include/zcl/zb_zcl_tunneling.h +++ b/zboss/production/include/zcl/zb_zcl_tunneling.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -104,7 +104,8 @@ enum zb_zcl_tunneling_attr_e ZB_ZCL_ATTR_TUNNELING_CLOSE_TUNNEL_TIMEOUT_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } /** @endcond */ /* internals_doc */ diff --git a/zboss/production/include/zcl/zb_zcl_window_covering.h b/zboss/production/include/zcl/zb_zcl_window_covering.h index 1e4eb3497b..ffac65eb79 100644 --- a/zboss/production/include/zcl/zb_zcl_window_covering.h +++ b/zboss/production/include/zcl/zb_zcl_window_covering.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -380,15 +380,17 @@ enum zb_zcl_window_covering_mode_e ZB_ZCL_ATTR_WINDOW_COVERING_WINDOW_COVERING_TYPE_ID, \ ZB_ZCL_ATTR_TYPE_8BIT_ENUM, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } -#define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_WINDOW_COVERING_CONFIG_STATUS_ID(data_ptr) \ +#define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_WINDOW_COVERING_CONFIG_STATUS_ID(data_ptr) \ { \ ZB_ZCL_ATTR_WINDOW_COVERING_CONFIG_STATUS_ID, \ ZB_ZCL_ATTR_TYPE_8BITMAP, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_WINDOW_COVERING_CURRENT_POSITION_LIFT_ID(data_ptr) \ @@ -396,7 +398,8 @@ enum zb_zcl_window_covering_mode_e ZB_ZCL_ATTR_WINDOW_COVERING_CURRENT_POSITION_LIFT_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_WINDOW_COVERING_CURRENT_POSITION_TILT_ID(data_ptr) \ @@ -404,7 +407,8 @@ enum zb_zcl_window_covering_mode_e ZB_ZCL_ATTR_WINDOW_COVERING_CURRENT_POSITION_TILT_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_WINDOW_COVERING_CURRENT_POSITION_LIFT_PERCENTAGE_ID(data_ptr) \ @@ -412,7 +416,8 @@ enum zb_zcl_window_covering_mode_e ZB_ZCL_ATTR_WINDOW_COVERING_CURRENT_POSITION_LIFT_PERCENTAGE_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_SCENE | ZB_ZCL_ATTR_ACCESS_REPORTING, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_WINDOW_COVERING_CURRENT_POSITION_TILT_PERCENTAGE_ID(data_ptr) \ @@ -420,7 +425,8 @@ enum zb_zcl_window_covering_mode_e ZB_ZCL_ATTR_WINDOW_COVERING_CURRENT_POSITION_TILT_PERCENTAGE_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_SCENE | ZB_ZCL_ATTR_ACCESS_REPORTING, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_WINDOW_COVERING_INSTALLED_OPEN_LIMIT_LIFT_ID(data_ptr) \ @@ -428,16 +434,17 @@ enum zb_zcl_window_covering_mode_e ZB_ZCL_ATTR_WINDOW_COVERING_INSTALLED_OPEN_LIMIT_LIFT_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } -#define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_WINDOW_COVERING_INSTALLED_CLOSED_LIMIT_LIFT_ID( \ - data_ptr) \ +#define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_WINDOW_COVERING_INSTALLED_CLOSED_LIMIT_LIFT_ID(data_ptr) \ { \ ZB_ZCL_ATTR_WINDOW_COVERING_INSTALLED_CLOSED_LIMIT_LIFT_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_WINDOW_COVERING_INSTALLED_OPEN_LIMIT_TILT_ID(data_ptr) \ @@ -445,16 +452,17 @@ enum zb_zcl_window_covering_mode_e ZB_ZCL_ATTR_WINDOW_COVERING_INSTALLED_OPEN_LIMIT_TILT_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } -#define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_WINDOW_COVERING_INSTALLED_CLOSED_LIMIT_TILT_ID( \ - data_ptr) \ +#define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_WINDOW_COVERING_INSTALLED_CLOSED_LIMIT_TILT_ID(data_ptr) \ { \ ZB_ZCL_ATTR_WINDOW_COVERING_INSTALLED_CLOSED_LIMIT_TILT_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_WINDOW_COVERING_MODE_ID(data_ptr) \ @@ -462,7 +470,8 @@ enum zb_zcl_window_covering_mode_e ZB_ZCL_ATTR_WINDOW_COVERING_MODE_ID, \ ZB_ZCL_ATTR_TYPE_8BITMAP, \ ZB_ZCL_ATTR_ACCESS_READ_WRITE, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } /** @internal Number of attributes mandatory for reporting in window covering cluster */ diff --git a/zboss/production/include/zcl/zb_zcl_wwah.h b/zboss/production/include/zcl/zb_zcl_wwah.h index bfd3d06cf1..f23a399b32 100644 --- a/zboss/production/include/zcl/zb_zcl_wwah.h +++ b/zboss/production/include/zcl/zb_zcl_wwah.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -44,6 +44,8 @@ #ifndef ZB_ZCL_WWAH_H #define ZB_ZCL_WWAH_H 1 +#include + #include "zcl/zb_zcl_common.h" #include "zcl/zb_zcl_commands.h" @@ -484,7 +486,8 @@ typedef enum zb_zcl_wwah_behavior_e ZB_ZCL_ATTR_WWAH_DISABLE_OTA_DOWNGRADES_ID, \ ZB_ZCL_ATTR_TYPE_BOOL, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_WWAH_MGMT_LEAVE_WITHOUT_REJOIN_ENABLED_ID(data_ptr) \ @@ -492,7 +495,8 @@ typedef enum zb_zcl_wwah_behavior_e ZB_ZCL_ATTR_WWAH_MGMT_LEAVE_WITHOUT_REJOIN_ENABLED_ID, \ ZB_ZCL_ATTR_TYPE_BOOL, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_WWAH_NWK_RETRY_COUNT_ID(data_ptr) \ @@ -500,7 +504,8 @@ typedef enum zb_zcl_wwah_behavior_e ZB_ZCL_ATTR_WWAH_NWK_RETRY_COUNT_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_WWAH_MAC_RETRY_COUNT_ID(data_ptr) \ @@ -508,7 +513,8 @@ typedef enum zb_zcl_wwah_behavior_e ZB_ZCL_ATTR_WWAH_MAC_RETRY_COUNT_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_WWAH_ROUTER_CHECK_IN_ENABLED_ID(data_ptr) \ @@ -516,7 +522,8 @@ typedef enum zb_zcl_wwah_behavior_e ZB_ZCL_ATTR_WWAH_ROUTER_CHECK_IN_ENABLED_ID, \ ZB_ZCL_ATTR_TYPE_BOOL, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_WWAH_TOUCHLINK_INTERPAN_ENABLED_ID(data_ptr) \ @@ -524,7 +531,8 @@ typedef enum zb_zcl_wwah_behavior_e ZB_ZCL_ATTR_WWAH_TOUCHLINK_INTERPAN_ENABLED_ID, \ ZB_ZCL_ATTR_TYPE_BOOL, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_WWAH_WWAH_PARENT_CLASSIFICATION_ENABLED_ID(data_ptr) \ @@ -532,7 +540,8 @@ typedef enum zb_zcl_wwah_behavior_e ZB_ZCL_ATTR_WWAH_WWAH_PARENT_CLASSIFICATION_ENABLED_ID, \ ZB_ZCL_ATTR_TYPE_BOOL, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_WWAH_WWAH_APP_EVENT_RETRY_ENABLED_ID(data_ptr) \ @@ -540,7 +549,8 @@ typedef enum zb_zcl_wwah_behavior_e ZB_ZCL_ATTR_WWAH_WWAH_APP_EVENT_RETRY_ENABLED_ID, \ ZB_ZCL_ATTR_TYPE_BOOL, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_WWAH_WWAH_APP_EVENT_RETRY_QUEUE_SIZE_ID(data_ptr) \ @@ -548,7 +558,8 @@ typedef enum zb_zcl_wwah_behavior_e ZB_ZCL_ATTR_WWAH_WWAH_APP_EVENT_RETRY_QUEUE_SIZE_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_WWAH_WWAH_REJOIN_ENABLED_ID(data_ptr) \ @@ -556,7 +567,8 @@ typedef enum zb_zcl_wwah_behavior_e ZB_ZCL_ATTR_WWAH_WWAH_REJOIN_ENABLED_ID, \ ZB_ZCL_ATTR_TYPE_BOOL, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_WWAH_MAC_POLL_FAILURE_WAIT_TIME_ID(data_ptr) \ @@ -564,7 +576,8 @@ typedef enum zb_zcl_wwah_behavior_e ZB_ZCL_ATTR_WWAH_MAC_POLL_FAILURE_WAIT_TIME_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_WWAH_CONFIGURATION_MODE_ENABLED_ID(data_ptr) \ @@ -572,7 +585,8 @@ typedef enum zb_zcl_wwah_behavior_e ZB_ZCL_ATTR_WWAH_CONFIGURATION_MODE_ENABLED_ID, \ ZB_ZCL_ATTR_TYPE_BOOL, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_WWAH_CURRENT_DEBUG_REPORT_ID_ID(data_ptr) \ @@ -580,7 +594,8 @@ typedef enum zb_zcl_wwah_behavior_e ZB_ZCL_ATTR_WWAH_CURRENT_DEBUG_REPORT_ID_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_WWAH_TC_SECURITY_ON_NWK_KEY_ROTATION_ENABLED_ID(data_ptr)\ @@ -588,7 +603,8 @@ typedef enum zb_zcl_wwah_behavior_e ZB_ZCL_ATTR_WWAH_TC_SECURITY_ON_NWK_KEY_ROTATION_ENABLED_ID, \ ZB_ZCL_ATTR_TYPE_BOOL, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_WWAH_WWAH_BAD_PARENT_RECOVERY_ENABLED_ID(data_ptr) \ @@ -596,7 +612,8 @@ typedef enum zb_zcl_wwah_behavior_e ZB_ZCL_ATTR_WWAH_WWAH_BAD_PARENT_RECOVERY_ENABLED_ID, \ ZB_ZCL_ATTR_TYPE_BOOL, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_WWAH_PENDING_NETWORK_UPDATE_CHANNEL_ID(data_ptr) \ @@ -604,7 +621,8 @@ typedef enum zb_zcl_wwah_behavior_e ZB_ZCL_ATTR_WWAH_PENDING_NETWORK_UPDATE_CHANNEL_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_WWAH_PENDING_NETWORK_UPDATE_PANID_ID(data_ptr) \ @@ -612,7 +630,8 @@ typedef enum zb_zcl_wwah_behavior_e ZB_ZCL_ATTR_WWAH_PENDING_NETWORK_UPDATE_PANID_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } #define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_WWAH_OTA_MAX_OFFLINE_DURATION_ID(data_ptr) \ @@ -620,7 +639,8 @@ typedef enum zb_zcl_wwah_behavior_e ZB_ZCL_ATTR_WWAH_OTA_MAX_OFFLINE_DURATION_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) data_ptr \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) data_ptr \ } typedef ZB_PACKED_PRE struct zb_zcl_wwah_cluster_list_s @@ -650,7 +670,9 @@ ZB_PACKED_STRUCT zb_zcl_wwah_cluster_list_t; if (zb_buf_len((data_buf)) >= sizeof(zb_uint8_t) + \ src_ptr->number_of_clusters * sizeof(zb_uint16_t)) \ { \ - (req)->cluster_id = (zb_uint16_t*)(&(src_ptr->cluster_id)); \ + zb_uint16_t cluster_id; \ + memcpy(&cluster_id, &(src_ptr->cluster_id), sizeof(zb_uint16_t)); \ + (req)->cluster_id = &cluster_id; \ (status) = ZB_ZCL_PARSE_STATUS_SUCCESS; \ } \ } \ @@ -1172,7 +1194,8 @@ extern zb_zcl_wwah_attr_t wwah_attr; ZB_ZCL_ATTR_GLOBAL_CLUSTER_REVISION_ID, \ ZB_ZCL_ATTR_TYPE_U16, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ - (void*) &(wwah_attr.cluster_revision) \ + (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \ + (void*) &(wwah_attr.cluster_revision) \ }, \ ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_WWAH_DISABLE_OTA_DOWNGRADES_ID, &(wwah_attr.disable_ota_downgrades)) \ ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_WWAH_MGMT_LEAVE_WITHOUT_REJOIN_ENABLED_ID, &(wwah_attr.mgmt_leave_without_rejoin_enabled)) \ diff --git a/zboss/production/lib/cortex-m33/hard-float/libgppb.a b/zboss/production/lib/cortex-m33/hard-float/libgppb.a index 5025b440f3..affcaa1d40 100644 Binary files a/zboss/production/lib/cortex-m33/hard-float/libgppb.a and b/zboss/production/lib/cortex-m33/hard-float/libgppb.a differ diff --git a/zboss/production/lib/cortex-m33/hard-float/libncp-dev.a b/zboss/production/lib/cortex-m33/hard-float/libncp-dev.a index 11ba65fc5c..0d2f776802 100644 Binary files a/zboss/production/lib/cortex-m33/hard-float/libncp-dev.a and b/zboss/production/lib/cortex-m33/hard-float/libncp-dev.a differ diff --git a/zboss/production/lib/cortex-m33/hard-float/libncp-dev.ed.a b/zboss/production/lib/cortex-m33/hard-float/libncp-dev.ed.a index c10ad8d718..bd2af2046d 100644 Binary files a/zboss/production/lib/cortex-m33/hard-float/libncp-dev.ed.a and b/zboss/production/lib/cortex-m33/hard-float/libncp-dev.ed.a differ diff --git a/zboss/production/lib/cortex-m33/hard-float/libzboss.a b/zboss/production/lib/cortex-m33/hard-float/libzboss.a index d26585ea67..e780dcc74f 100644 Binary files a/zboss/production/lib/cortex-m33/hard-float/libzboss.a and b/zboss/production/lib/cortex-m33/hard-float/libzboss.a differ diff --git a/zboss/production/lib/cortex-m33/hard-float/libzboss.ed.a b/zboss/production/lib/cortex-m33/hard-float/libzboss.ed.a index 234505b14a..c7ff52d893 100644 Binary files a/zboss/production/lib/cortex-m33/hard-float/libzboss.ed.a and b/zboss/production/lib/cortex-m33/hard-float/libzboss.ed.a differ diff --git a/zboss/production/lib/cortex-m4/hard-float/libgppb.a b/zboss/production/lib/cortex-m4/hard-float/libgppb.a index 31c8787630..b9a0cc1e21 100644 Binary files a/zboss/production/lib/cortex-m4/hard-float/libgppb.a and b/zboss/production/lib/cortex-m4/hard-float/libgppb.a differ diff --git a/zboss/production/lib/cortex-m4/hard-float/libncp-dev.a b/zboss/production/lib/cortex-m4/hard-float/libncp-dev.a index cadf25abc8..a98823e0d3 100644 Binary files a/zboss/production/lib/cortex-m4/hard-float/libncp-dev.a and b/zboss/production/lib/cortex-m4/hard-float/libncp-dev.a differ diff --git a/zboss/production/lib/cortex-m4/hard-float/libncp-dev.ed.a b/zboss/production/lib/cortex-m4/hard-float/libncp-dev.ed.a index 82d13cf358..0802501240 100644 Binary files a/zboss/production/lib/cortex-m4/hard-float/libncp-dev.ed.a and b/zboss/production/lib/cortex-m4/hard-float/libncp-dev.ed.a differ diff --git a/zboss/production/lib/cortex-m4/hard-float/libzboss.a b/zboss/production/lib/cortex-m4/hard-float/libzboss.a index fb0e69dd4e..70f6446d72 100644 Binary files a/zboss/production/lib/cortex-m4/hard-float/libzboss.a and b/zboss/production/lib/cortex-m4/hard-float/libzboss.a differ diff --git a/zboss/production/lib/cortex-m4/hard-float/libzboss.ed.a b/zboss/production/lib/cortex-m4/hard-float/libzboss.ed.a index 5d25b0e9fd..0568024968 100644 Binary files a/zboss/production/lib/cortex-m4/hard-float/libzboss.ed.a and b/zboss/production/lib/cortex-m4/hard-float/libzboss.ed.a differ diff --git a/zboss/production/src/CMakeLists.txt b/zboss/production/src/CMakeLists.txt index 728139b44f..321d43a545 100644 --- a/zboss/production/src/CMakeLists.txt +++ b/zboss/production/src/CMakeLists.txt @@ -13,12 +13,6 @@ zephyr_library_include_directories( include ) -# Prevent the -Waddress-of-packed-member warning. We appear to be -# taking addresses of struct fields in a manner that is not -# safe. Until this is resolved upstream, we temporarily remove this -# warning. -zephyr_library_compile_options(-Wno-address-of-packed-member) - # Add source files zephyr_library_sources(commissioning/legacy/zdo_commissioning_classic.c) diff --git a/zboss/production/src/include/ha/zb_ha_on_off_output.h b/zboss/production/src/include/ha/zb_ha_on_off_output.h new file mode 100644 index 0000000000..24483ff5ac --- /dev/null +++ b/zboss/production/src/include/ha/zb_ha_on_off_output.h @@ -0,0 +1,226 @@ +/* + * ZBOSS Zigbee 3.0 + * + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. + * www.dsr-zboss.com + * www.dsr-corporation.com + * All rights reserved. + * + * + * Use in source and binary forms, redistribution in binary form only, with + * or without modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 2. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 3. This software, with or without modification, must only be used with a Nordic + * Semiconductor ASA integrated circuit. + * + * 4. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/* PURPOSE: On/Off output device definition +*/ + +#ifndef ZB_HA_ON_OFF_OUTPUT_H +#define ZB_HA_ON_OFF_OUTPUT_H 1 + +#if defined ZB_HA_DEFINE_DEVICE_ON_OFF_OUTPUT || defined DOXYGEN + +/** @cond DOXYGEN_HA_SECTION */ + +/** + * @defgroup ha_on_off_output On/Off Output + * @addtogroup ha_on_off_output + * @ingroup ZB_HA_DEVICES + @{ + @details + On/Off Output device has 5 clusters (see spec 7.4.3): \n + - @ref ZB_ZCL_IDENTIFY \n + - @ref ZB_ZCL_BASIC \n + - @ref ZB_ZCL_ON_OFF \n + - @ref ZB_ZCL_SCENES \n + - @ref ZB_ZCL_GROUPS + + On/Off Output device sample + + @par Example + + - Declaring clusters: + + @snippet HA_samples/common/zcl_basic_attr_list.h BASIC_CLUSTER_COMMON + @snippet HA_samples/on_off_output/sample_zc.c COMMON_DECLARATION + + - Registering device list: + + @snippet HA_samples/on_off_output/sample_zc.c REGISTER + + - Example of command handler: + + @snippet HA_samples/on_off_output/sample_zc.c COMMAND_HANDLER + @snippet HA_samples/on_off_output/sample_zc.c ZCL_COMMAND_HANDLER + + @par +*/ + +#define ZB_HA_DEVICE_VER_ON_OFF_OUTPUT 0 /*!< On/Off Output device version */ + +/** @cond internals_doc */ +#define ZB_HA_ON_OFF_OUTPUT_IN_CLUSTER_NUM 5 /*!< On/Off output IN cluster number */ +#define ZB_HA_ON_OFF_OUTPUT_OUT_CLUSTER_NUM 0 /*!< On/Off output OUT cluster number */ + +#define ZB_HA_ON_OFF_OUTPUT_CLUSTER_NUM \ + (ZB_HA_ON_OFF_OUTPUT_IN_CLUSTER_NUM + ZB_HA_ON_OFF_OUTPUT_OUT_CLUSTER_NUM) + +/*! Number of attribute for reporting on On/Off output device */ +#define ZB_HA_ON_OFF_OUTPUT_REPORT_ATTR_COUNT \ + (ZB_ZCL_ON_OFF_REPORT_ATTR_COUNT) + +/** @endcond */ + +/** @brief Declare cluster list for On/Off output device + @param cluster_list_name - cluster list variable name + @param on_off_attr_list - attribute list for On/Off cluster + @param basic_attr_list - attribute list for Basic cluster + @param identify_attr_list - attribute list for Identify cluster + @param groups_attr_list - attribute list for Groups cluster + @param scenes_attr_list - attribute list for Scenes cluster + */ +#define ZB_HA_DECLARE_ON_OFF_OUTPUT_CLUSTER_LIST( \ + cluster_list_name, \ + on_off_attr_list, \ + basic_attr_list, \ + identify_attr_list, \ + groups_attr_list, \ + scenes_attr_list) \ + zb_zcl_cluster_desc_t cluster_list_name[] = \ + { \ + ZB_ZCL_CLUSTER_DESC( \ + ZB_ZCL_CLUSTER_ID_IDENTIFY, \ + ZB_ZCL_ARRAY_SIZE(identify_attr_list, zb_zcl_attr_t), \ + (identify_attr_list), \ + ZB_ZCL_CLUSTER_SERVER_ROLE, \ + ZB_ZCL_MANUF_CODE_INVALID \ + ), \ + ZB_ZCL_CLUSTER_DESC( \ + ZB_ZCL_CLUSTER_ID_BASIC, \ + ZB_ZCL_ARRAY_SIZE(basic_attr_list, zb_zcl_attr_t), \ + (basic_attr_list), \ + ZB_ZCL_CLUSTER_SERVER_ROLE, \ + ZB_ZCL_MANUF_CODE_INVALID \ + ), \ + ZB_ZCL_CLUSTER_DESC( \ + ZB_ZCL_CLUSTER_ID_ON_OFF, \ + ZB_ZCL_ARRAY_SIZE(on_off_attr_list, zb_zcl_attr_t), \ + (on_off_attr_list), \ + ZB_ZCL_CLUSTER_SERVER_ROLE, \ + ZB_ZCL_MANUF_CODE_INVALID \ + ), \ + ZB_ZCL_CLUSTER_DESC( \ + ZB_ZCL_CLUSTER_ID_GROUPS, \ + ZB_ZCL_ARRAY_SIZE(groups_attr_list, zb_zcl_attr_t), \ + (groups_attr_list), \ + ZB_ZCL_CLUSTER_SERVER_ROLE, \ + ZB_ZCL_MANUF_CODE_INVALID \ + ), \ + ZB_ZCL_CLUSTER_DESC( \ + ZB_ZCL_CLUSTER_ID_SCENES, \ + ZB_ZCL_ARRAY_SIZE(scenes_attr_list, zb_zcl_attr_t), \ + (scenes_attr_list), \ + ZB_ZCL_CLUSTER_SERVER_ROLE, \ + ZB_ZCL_MANUF_CODE_INVALID \ + ) \ + } + +/** @cond internals_doc */ + +/** @brief Declare simple descriptor for On/Off output device + @param ep_name - endpoint variable name + @param ep_id - endpoint ID + @param in_clust_num - number of supported input clusters + @param out_clust_num - number of supported output clusters + @note in_clust_num, out_clust_num should be defined by numeric constants, not variables or any + definitions, because these values are used to form simple descriptor type name +*/ +#define ZB_ZCL_DECLARE_ON_OFF_OUTPUT_SIMPLE_DESC(ep_name, ep_id, in_clust_num, out_clust_num) \ + ZB_DECLARE_SIMPLE_DESC(in_clust_num, out_clust_num); \ + ZB_AF_SIMPLE_DESC_TYPE(in_clust_num, out_clust_num) simple_desc_##ep_name = \ + { \ + ep_id, \ + ZB_AF_HA_PROFILE_ID, \ + ZB_HA_ON_OFF_OUTPUT_DEVICE_ID, \ + ZB_HA_DEVICE_VER_ON_OFF_OUTPUT, \ + 0, \ + in_clust_num, \ + out_clust_num, \ + { \ + ZB_ZCL_CLUSTER_ID_BASIC, \ + ZB_ZCL_CLUSTER_ID_IDENTIFY, \ + ZB_ZCL_CLUSTER_ID_ON_OFF, \ + ZB_ZCL_CLUSTER_ID_SCENES, \ + ZB_ZCL_CLUSTER_ID_GROUPS \ + } \ + } + + /** @endcond */ + +/** @brief Declare endpoint for On/off output device + @param ep_name - endpoint variable name + @param ep_id - endpoint ID + @param cluster_list - endpoint cluster list + */ +#define ZB_HA_DECLARE_ON_OFF_OUTPUT_EP(ep_name, ep_id, cluster_list) \ + ZB_ZCL_DECLARE_ON_OFF_OUTPUT_SIMPLE_DESC( \ + ep_name, \ + ep_id, \ + ZB_HA_ON_OFF_OUTPUT_IN_CLUSTER_NUM, \ + ZB_HA_ON_OFF_OUTPUT_OUT_CLUSTER_NUM); \ + ZBOSS_DEVICE_DECLARE_REPORTING_CTX(reporting_info## ep_name, \ + ZB_HA_ON_OFF_OUTPUT_REPORT_ATTR_COUNT); \ + ZB_AF_DECLARE_ENDPOINT_DESC(ep_name, \ + ep_id, \ + ZB_AF_HA_PROFILE_ID, \ + 0, \ + NULL, \ + ZB_ZCL_ARRAY_SIZE( \ + cluster_list, \ + zb_zcl_cluster_desc_t), \ + cluster_list, \ + (zb_af_simple_desc_1_1_t*)&simple_desc_##ep_name, \ + ZB_HA_ON_OFF_OUTPUT_REPORT_ATTR_COUNT, reporting_info## ep_name, \ + 0, NULL) + +/** @brief Declare On/Off Output device context. + @param device_ctx - device context variable name. + @param ep_name - endpoint variable name. + */ +#define ZB_HA_DECLARE_ON_OFF_OUTPUT_CTX(device_ctx, ep_name) \ + ZBOSS_DECLARE_DEVICE_CTX_1_EP(device_ctx, ep_name) + + +/*! @} */ + +/** @endcond */ /* DOXYGEN_HA_SECTION */ + +#endif /* ZB_HA_DEFINE_DEVICE_ON_OFF_OUTPUT */ + +#endif /* ZB_HA_ON_OFF_OUTPUT_H */ diff --git a/zboss/production/src/include/ha/zb_ha_on_off_switch.h b/zboss/production/src/include/ha/zb_ha_on_off_switch.h new file mode 100644 index 0000000000..32dd4c4a94 --- /dev/null +++ b/zboss/production/src/include/ha/zb_ha_on_off_switch.h @@ -0,0 +1,233 @@ +/* + * ZBOSS Zigbee 3.0 + * + * Copyright (c) 2012-2021 DSR Corporation, Denver CO, USA. + * www.dsr-zboss.com + * www.dsr-corporation.com + * All rights reserved. + * + * + * Use in source and binary forms, redistribution in binary form only, with + * or without modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 2. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 3. This software, with or without modification, must only be used with a Nordic + * Semiconductor ASA integrated circuit. + * + * 4. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/* PURPOSE: On/off switch device definition +*/ +#ifndef ZB_HA_ON_OFF_SWITCH_H +#define ZB_HA_ON_OFF_SWITCH_H 1 + +#if defined ZB_HA_DEFINE_DEVICE_ON_OFF_SWITCH || defined DOXYGEN + +/** @cond DOXYGEN_HA_SECTION */ + +/** + * @defgroup ha_on_off_switch On/Off Switch + * @ingroup ZB_HA_DEVICES + @{ + @details + On/Off Switch device has 6 clusters (see spec 7.4.1): \n + - @ref ZB_ZCL_IDENTIFY \n + - @ref ZB_ZCL_BASIC \n + - @ref ZB_ZCL_OOSC \n + - @ref ZB_ZCL_ON_OFF \n + - @ref ZB_ZCL_SCENES \n + - @ref ZB_ZCL_GROUPS + + On/Off Switch device sample + + @par Example + + - Declaring clusters: + + @snippet HA_samples/common/zcl_basic_attr_list.h BASIC_CLUSTER_COMMON + @snippet HA_samples/on_off_switch/sample_zc.c COMMON_DECLARATION + + - Registering device list: + + @snippet HA_samples/on_off_switch/sample_zc.c REGISTER + + - Example of command handler: + + @snippet HA_samples/on_off_switch/sample_zc.c COMMAND_HANDLER + @snippet HA_samples/on_off_switch/sample_zc.c ZCL_COMMAND_HANDLER + + @par +*/ + +/** @cond internals_doc */ +#define ZB_HA_DEVICE_VER_ON_OFF_SWITCH 0 /*!< On/Off Switch device version */ + +#define ZB_HA_ON_OFF_SWITCH_IN_CLUSTER_NUM 3 /*!< On/Off switch IN clusters number */ +#define ZB_HA_ON_OFF_SWITCH_OUT_CLUSTER_NUM 4 /*!< On/Off switch OUT clusters number */ + +#define ZB_HA_ON_OFF_SWITCH_CLUSTER_NUM \ + (ZB_HA_ON_OFF_SWITCH_IN_CLUSTER_NUM + ZB_HA_ON_OFF_SWITCH_OUT_CLUSTER_NUM) + +/*! Number of attribute for reporting on On/Off switch device */ +#define ZB_HA_ON_OFF_SWITCH_REPORT_ATTR_COUNT \ + (ZB_ZCL_ON_OFF_SWITCH_CONFIG_REPORT_ATTR_COUNT) + +/** @endcond */ + +/** @brief Declare cluster list for On/Off switch device + @param cluster_list_name - cluster list variable name + @param on_off_switch_config_attr_list - attribute list for On/off switch configuration cluster + @param basic_attr_list - attribute list for Basic cluster + @param identify_attr_list - attribute list for Identify cluster + */ +#define ZB_HA_DECLARE_ON_OFF_SWITCH_CLUSTER_LIST( \ + cluster_list_name, \ + on_off_switch_config_attr_list, \ + basic_attr_list, \ + identify_attr_list) \ + zb_zcl_cluster_desc_t cluster_list_name[] = \ + { \ + ZB_ZCL_CLUSTER_DESC( \ + ZB_ZCL_CLUSTER_ID_ON_OFF_SWITCH_CONFIG, \ + ZB_ZCL_ARRAY_SIZE(on_off_switch_config_attr_list, zb_zcl_attr_t), \ + (on_off_switch_config_attr_list), \ + ZB_ZCL_CLUSTER_SERVER_ROLE, \ + ZB_ZCL_MANUF_CODE_INVALID \ + ), \ + ZB_ZCL_CLUSTER_DESC( \ + ZB_ZCL_CLUSTER_ID_IDENTIFY, \ + ZB_ZCL_ARRAY_SIZE(identify_attr_list, zb_zcl_attr_t), \ + (identify_attr_list), \ + ZB_ZCL_CLUSTER_SERVER_ROLE, \ + ZB_ZCL_MANUF_CODE_INVALID \ + ), \ + ZB_ZCL_CLUSTER_DESC( \ + ZB_ZCL_CLUSTER_ID_BASIC, \ + ZB_ZCL_ARRAY_SIZE(basic_attr_list, zb_zcl_attr_t), \ + (basic_attr_list), \ + ZB_ZCL_CLUSTER_SERVER_ROLE, \ + ZB_ZCL_MANUF_CODE_INVALID \ + ), \ + ZB_ZCL_CLUSTER_DESC( \ + ZB_ZCL_CLUSTER_ID_ON_OFF, \ + 0, \ + NULL, \ + ZB_ZCL_CLUSTER_CLIENT_ROLE, \ + ZB_ZCL_MANUF_CODE_INVALID \ + ), \ + ZB_ZCL_CLUSTER_DESC( \ + ZB_ZCL_CLUSTER_ID_SCENES, \ + 0, \ + NULL, \ + ZB_ZCL_CLUSTER_CLIENT_ROLE, \ + ZB_ZCL_MANUF_CODE_INVALID \ + ), \ + ZB_ZCL_CLUSTER_DESC( \ + ZB_ZCL_CLUSTER_ID_IDENTIFY, \ + 0, \ + NULL, \ + ZB_ZCL_CLUSTER_CLIENT_ROLE, \ + ZB_ZCL_MANUF_CODE_INVALID \ + ), \ + ZB_ZCL_CLUSTER_DESC( \ + ZB_ZCL_CLUSTER_ID_GROUPS, \ + 0, \ + NULL, \ + ZB_ZCL_CLUSTER_CLIENT_ROLE, \ + ZB_ZCL_MANUF_CODE_INVALID \ + ) \ + } + + +/** @cond internals_doc */ +/** @brief Declare simple descriptor for On/Off switch device + @param ep_name - endpoint variable name + @param ep_id - endpoint ID + @param in_clust_num - number of supported input clusters + @param out_clust_num - number of supported output clusters + @note in_clust_num, out_clust_num should be defined by numeric constants, not variables or any + definitions, because these values are used to form simple descriptor type name +*/ +#define ZB_ZCL_DECLARE_ON_OFF_SWITCH_SIMPLE_DESC(ep_name, ep_id, in_clust_num, out_clust_num) \ + ZB_DECLARE_SIMPLE_DESC(in_clust_num, out_clust_num); \ + ZB_AF_SIMPLE_DESC_TYPE(in_clust_num, out_clust_num) simple_desc_##ep_name = \ + { \ + ep_id, \ + ZB_AF_HA_PROFILE_ID, \ + ZB_HA_ON_OFF_SWITCH_DEVICE_ID, \ + ZB_HA_DEVICE_VER_ON_OFF_SWITCH, \ + 0, \ + in_clust_num, \ + out_clust_num, \ + { \ + ZB_ZCL_CLUSTER_ID_BASIC, \ + ZB_ZCL_CLUSTER_ID_IDENTIFY, \ + ZB_ZCL_CLUSTER_ID_ON_OFF_SWITCH_CONFIG, \ + ZB_ZCL_CLUSTER_ID_ON_OFF, \ + ZB_ZCL_CLUSTER_ID_SCENES, \ + ZB_ZCL_CLUSTER_ID_GROUPS, \ + ZB_ZCL_CLUSTER_ID_IDENTIFY, \ + } \ + } + +/** @endcond */ + +/** @brief Declare endpoint for On/off Switch device + @param ep_name - endpoint variable name + @param ep_id - endpoint ID + @param cluster_list - endpoint cluster list + */ +#define ZB_HA_DECLARE_ON_OFF_SWITCH_EP(ep_name, ep_id, cluster_list) \ + ZB_ZCL_DECLARE_ON_OFF_SWITCH_SIMPLE_DESC( \ + ep_name, \ + ep_id, \ + ZB_HA_ON_OFF_SWITCH_IN_CLUSTER_NUM, \ + ZB_HA_ON_OFF_SWITCH_OUT_CLUSTER_NUM); \ + ZB_AF_DECLARE_ENDPOINT_DESC(ep_name, \ + ep_id, \ + ZB_AF_HA_PROFILE_ID, \ + 0, \ + NULL, \ + ZB_ZCL_ARRAY_SIZE(cluster_list, zb_zcl_cluster_desc_t), \ + cluster_list, \ + (zb_af_simple_desc_1_1_t*)&simple_desc_##ep_name, \ + 0, NULL, /* No reporting ctx */ \ + 0, NULL) /* No CVC ctx */ + +/** @brief Declare On/Off Switch device context. + @param device_ctx - device context variable name. + @param ep_name - endpoint variable name. +*/ +#define ZB_HA_DECLARE_ON_OFF_SWITCH_CTX(device_ctx, ep_name) \ + ZBOSS_DECLARE_DEVICE_CTX_1_EP(device_ctx, ep_name) + + +/*! @} */ + +/** @endcond */ /* DOXYGEN_HA_SECTION */ + +#endif /* ZB_HA_DEFINE_DEVICE_ON_OFF_SWITCH */ + +#endif /* ZB_HA_ON_OFF_SWITCH_H */ diff --git a/zboss/production/src/include/zb_mac.h b/zboss/production/src/include/zb_mac.h index 5cecdaed1b..6a1c313477 100644 --- a/zboss/production/src/include/zb_mac.h +++ b/zboss/production/src/include/zb_mac.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2021 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -2889,4 +2889,15 @@ void zb_mac_phy_testing_mode_notification(zb_bufid_t param); #endif +/** + Parses association response from pkt body + and writes result to `zb_mlme_associate_confirm_t` struct. + + @param mhr - pointer to parsed mac header + @param cmd_ptr - pointer to mac command start + @param assoc_confirm - pointer to zb_mlme_associate_confirm_t struct + to which result will be written + */ +void zb_mac_parse_associate_response(zb_mac_mhr_t *mhr, zb_uint8_t *cmd_ptr, zb_mlme_associate_confirm_t *assoc_confirm); + #endif /* ZB_MAC_API_INCLUDED */ diff --git a/zboss/production/src/include/zb_nwk_ed_aging.h b/zboss/production/src/include/zb_nwk_ed_aging.h index 85163e3044..77954d613a 100644 --- a/zboss/production/src/include/zb_nwk_ed_aging.h +++ b/zboss/production/src/include/zb_nwk_ed_aging.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2021 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -155,7 +155,8 @@ void zb_nwk_ed_aging_timeout(zb_uint8_t param); zb_uint32_t zb_convert_timeout_value(zb_uint8_t timeout); #ifdef ZB_MAC_PENDING_BIT_SOURCE_MATCHING -void zb_nwk_src_match_add(zb_uint8_t param, zb_uint16_t nbt_idx); +void zb_nwk_src_match_add(zb_uint8_t param, zb_uint16_t addr_ref); +void zb_nwk_src_match_add_ent(zb_uint8_t param, zb_address_ieee_ref_t addr_ref, zb_callback_t cb); void zb_nwk_src_match_delete(zb_uint8_t param, zb_address_ieee_ref_t ieee_ref); void zb_nwk_src_match_drop(zb_uint8_t param); void zb_nwk_src_match_restore(zb_uint8_t param); diff --git a/zboss/production/src/include/zb_nwk_globals.h b/zboss/production/src/include/zb_nwk_globals.h index e64c7aa483..4f5f319617 100644 --- a/zboss/production/src/include/zb_nwk_globals.h +++ b/zboss/production/src/include/zb_nwk_globals.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2021 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -210,6 +210,11 @@ typedef struct zb_rejoin_context_s /* do not pack for IAR */ zb_address_ieee_ref_t addr_ref; zb_uint8_t secure_rejoin; zb_uint8_t rx_on; +#ifdef ZB_MAC_PENDING_BIT_SOURCE_MATCHING + zb_bufid_t rejoin_rsp_param; /*!< Buf with nwk header. */ + zb_bufid_t mlme_set_conf_param; /*!< This param is needed to determine ent in rejoin table + for which confirm has arrived. */ +#endif /* ZB_MAC_PENDING_BIT_SOURCE_MATCHING */ } ZB_PACKED_STRUCT zb_rejoin_context_t; diff --git a/zboss/production/src/include/zb_nwk_nib.h b/zboss/production/src/include/zb_nwk_nib.h index ecbb5790e4..77bcfe9c31 100644 --- a/zboss/production/src/include/zb_nwk_nib.h +++ b/zboss/production/src/include/zb_nwk_nib.h @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2021 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -417,17 +417,10 @@ zb_bool_t zb_is_device_zc_or_zr(void); /** @brief The value of ZB_NIB_ATTRIBUTE_UPDATE_ID attribute */ #define ZB_NIB_UPDATE_ID() ZB_NIB().update_id -#ifndef ZB_LITE_ALWAYS_SECURE -/** @brief Device security level; by default is 5 */ -#define ZB_NIB_SECURITY_LEVEL() ZB_NIB().security_level -/** @brief Set Device security level to value 'v' */ -#define ZB_SET_NIB_SECURITY_LEVEL(v) ZB_NIB().security_level = (v) -#else /** @brief Device security level; always is 5 */ -#define ZB_NIB_SECURITY_LEVEL() 5U +#define ZB_NIB_SECURITY_LEVEL() ZB_SECURITY_LEVEL /** @brief \deprecated unsupported */ #define ZB_SET_NIB_SECURITY_LEVEL(v) -#endif /* ZB_LITE_ALWAYS_SECURE */ /* use tree routing? */ #ifdef ZB_NWK_TREE_ROUTING @@ -769,18 +762,11 @@ typedef struct zb_nib_s zb_bitfield_t uniq_addr:1; /*!< Table 3.44 NIB Attributes - nwkUniqueAddr */ - zb_bitfield_t reserve:1; + zb_bitfield_t reserve:4; /*!< There was security level defined in R22 (spec Table 3-58 NIB Attributes). + Currently, ZBOSS won't run without security. + So, there was a decision to remove possibility of changing security level. + Now, it can be defined only as constant value. */ - zb_bitfield_t security_level:3; /*!< The security level for - outgoing and incoming - NWK frames; the - allowable security level - identifiers are presented - in Table 4.38. - For ZB 2007 (Standard security only) - only values 0 and 5 are possible. - Or, seems, only value 5 is possible? - */ /* all_fresh is always 0 for Standard security */ zb_bitfield_t active_secur_material_i:2; /*!< index in * secur_material_set for @@ -813,12 +799,12 @@ typedef struct zb_nib_s * layer; otherwise, it shall report * a constant value. */ -#ifdef ZB_LOW_SECURITY_MODE +#ifdef ZB_NWK_CONFIGURABLE_DST_IEEE_IN_HDR zb_bitfield_t ieee_policy:1; /*! If 1, put DST and SRC IEEE for NWK commands (it * is mandatory by ZB spec). If 0, include * it for all frame types. * Default value is 0. */ -#endif +#endif /* ZB_NWK_CONFIGURABLE_DST_IEEE_IN_HDR */ #ifdef SNCP_MODE zb_bitfield_t nwk_force_rrec_sending:1; /*!< If the flag is set to 1, local Zigbee Router device diff --git a/zboss/production/src/zcl/zcl_attr_value.c b/zboss/production/src/zcl/zcl_attr_value.c index 2f8edb7ea2..6a9e378f83 100644 --- a/zboss/production/src/zcl/zcl_attr_value.c +++ b/zboss/production/src/zcl/zcl_attr_value.c @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -114,6 +114,20 @@ before cluster's check attribute value callback. */ #endif zb_ret_t zb_zcl_check_attr_value(zb_uint16_t cluster_id, zb_uint8_t cluster_role, zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *value) +{ + zb_ret_t ret; + + TRACE_MSG(TRACE_ZCL1, ">> zb_zcl_check_attr_value cluster_id %d, endpoint %hd, attr_id %d, value %p", + (FMT__D_H_D_P, cluster_id, endpoint, attr_id, value)); + + ret = zb_zcl_check_attr_value_manuf(cluster_id, cluster_role, endpoint, attr_id, ZB_ZCL_NON_MANUFACTURER_SPECIFIC, value); + + TRACE_MSG(TRACE_ZCL1, "<< zb_zcl_check_attr_value ret 0x%lx", (FMT__L, ret)); + + return ret; +} + +zb_ret_t zb_zcl_check_attr_value_manuf(zb_uint16_t cluster_id, zb_uint8_t cluster_role, zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint16_t manuf_code, zb_uint8_t *value) { zb_ret_t ret; zb_ret_t cb_ret = RET_IGNORE; @@ -125,11 +139,18 @@ zb_ret_t zb_zcl_check_attr_value(zb_uint16_t cluster_id, zb_uint8_t cluster_role ZB_ASSERT(value); - - if (ZCL_CTX().app_check_attr_value_cb != NULL) + if (ZCL_CTX().app_check_attr_value_manuf_cb != NULL) + { + cb_ret = ZCL_CTX().app_check_attr_value_manuf_cb(cluster_id, cluster_role, endpoint, attr_id, manuf_code, value); + } + else if (ZCL_CTX().app_check_attr_value_cb != NULL) { cb_ret = ZCL_CTX().app_check_attr_value_cb(cluster_id, cluster_role, endpoint, attr_id, value); } + else + { + TRACE_MSG(TRACE_ZCL1, "application value cb is not set", (FMT__0)); + } cluster_check_value = zb_zcl_internal_get_cluster_check_value(endpoint, cluster_id, @@ -152,6 +173,7 @@ zb_ret_t zb_zcl_check_attr_value(zb_uint16_t cluster_id, zb_uint8_t cluster_role This callback is invoked before cluster's check attribute value callback. */ return ret; } + /*! Hook on Write Attribute command @param endpoint - endpoint @@ -162,7 +184,7 @@ zb_ret_t zb_zcl_check_attr_value(zb_uint16_t cluster_id, zb_uint8_t cluster_role */ void zb_zcl_write_attr_hook( zb_uint8_t endpoint, zb_uint16_t cluster_id, zb_uint8_t cluster_role, - zb_uint16_t attr_id, zb_uint8_t *new_value) + zb_uint16_t attr_id, zb_uint8_t *new_value, zb_uint16_t manuf_code) { zb_zcl_cluster_write_attr_hook_t cluster_write_attr_hook; ZVUNUSED(endpoint); @@ -178,7 +200,7 @@ void zb_zcl_write_attr_hook( cluster_role); if (cluster_write_attr_hook != NULL) { - cluster_write_attr_hook(endpoint, attr_id, new_value); + cluster_write_attr_hook(endpoint, attr_id, new_value, manuf_code); } TRACE_MSG(TRACE_ZCL1, "<< zb_zcl_write_attr_hook", (FMT__0)); diff --git a/zboss/production/src/zcl/zcl_color_control_commands.c b/zboss/production/src/zcl/zcl_color_control_commands.c index b9f110b5a8..7e7f7ed122 100644 --- a/zboss/production/src/zcl/zcl_color_control_commands.c +++ b/zboss/production/src/zcl/zcl_color_control_commands.c @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -1004,7 +1004,11 @@ static void zb_zcl_process_color_control_move_to_loop(zb_uint8_t param) if (rm_time_unit!=0) { zb_int32_t unit_max = is_16bit ? ZB_UINT16_MAX : ZB_UINT8_MAX; - zb_int32_t all_delta = (loop_data.finish_value - loop_data.start_value); + zb_int32_t all_delta = + (loop_data.finish_value > loop_data.start_value) ? + (loop_data.finish_value - loop_data.start_value) : + (loop_data.start_value - loop_data.finish_value); + zb_int32_t step_value; if((loop_data.attr_id == ZB_ZCL_ATTR_COLOR_CONTROL_CURRENT_HUE_ID) || (loop_data.attr_id == ZB_ZCL_ATTR_COLOR_CONTROL_ENHANCED_CURRENT_HUE_ID) @@ -1020,8 +1024,17 @@ static void zb_zcl_process_color_control_move_to_loop(zb_uint8_t param) } } - val = (zb_int32_t)(all_delta * delta_time / loop_data.transition_time + loop_data.start_value); - if(val > unit_max) + step_value = + (delta_time == 0U) ? + (all_delta) : + (zb_int32_t)(all_delta * delta_time / loop_data.transition_time); + + val = + (loop_data.finish_value > loop_data.start_value) ? + (loop_data.start_value + step_value) : + (loop_data.start_value - step_value); + + if (val > unit_max) { val -= unit_max; } @@ -1045,8 +1058,20 @@ static void zb_zcl_process_color_control_move_to_loop(zb_uint8_t param) if (rm_time_unit!=0) { - zb_int32_t all_delta = (loop_data.finish_value2 - loop_data.start_value2); - val = (zb_int32_t)(all_delta * delta_time / loop_data.transition_time + loop_data.start_value2); + zb_int32_t all_delta = + (loop_data.finish_value2 > loop_data.start_value2) ? + (loop_data.finish_value2 - loop_data.start_value2) : + (loop_data.start_value2 - loop_data.finish_value2); + + zb_int32_t step_value = + (delta_time == 0U) ? + (all_delta) : + (zb_int32_t)(all_delta * delta_time / loop_data.transition_time); + + val = + (loop_data.finish_value2 > loop_data.start_value2) ? + (loop_data.start_value2 + step_value) : + (loop_data.start_value2 - step_value); } else { diff --git a/zboss/production/src/zcl/zcl_common.c b/zboss/production/src/zcl/zcl_common.c index accddf84d7..dc4c8e0268 100644 --- a/zboss/production/src/zcl/zcl_common.c +++ b/zboss/production/src/zcl/zcl_common.c @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -835,7 +835,7 @@ zb_uint8_t zb_zcl_check_attribute_writable( if (ZB_ZCL_STATUS_SUCCESS == status) //&& zb_zcl_check_attr_value(cluster_id, cluster_role, endpoint, attr_desc->id, new_value) == RET_ERROR /-- ZB_FALSE) --/ { - zb_ret_t ret = zb_zcl_check_attr_value(cluster_id, cluster_role, endpoint, attr_desc->id, new_value); + zb_ret_t ret = zb_zcl_check_attr_value_manuf(cluster_id, cluster_role, endpoint, attr_desc->id, attr_desc->manuf_code, new_value); if (ret == RET_ERROR) { TRACE_MSG(TRACE_ZCL1, "error, invalid value", (FMT__0)); @@ -874,11 +874,11 @@ zb_uint8_t zb_zcl_check_attribute_writable( /* Sets attribute value, for other endpoint of singleton attribute * check: end-user application may chanage read-only attributes */ -static void zb_zcl_conform_singleton(zb_uint8_t ep_first, zb_uint16_t cluster_id, zb_uint8_t cluster_role, zb_uint16_t attr_id, zb_uint8_t *value) +static void zb_zcl_conform_singleton(zb_uint8_t ep_first, zb_uint16_t cluster_id, zb_uint8_t cluster_role, zb_uint16_t attr_id, zb_uint8_t *value, zb_uint16_t manuf_code) { zb_uindex_t i; - TRACE_MSG(TRACE_ZCL1, ">> zb_zcl_conform_singleton ep %hd, cluster %d, attr %d", - (FMT__H_D_D, ep_first, cluster_id, attr_id)); + TRACE_MSG(TRACE_ZCL1, ">> zb_zcl_conform_singleton ep %hd, cluster %d, attr 0x%x, manuf_code 0x%x", + (FMT__H_D_D_D, ep_first, cluster_id, attr_id, manuf_code)); /*cstat !MISRAC2012-Rule-13.6 */ /* After some investigation, the following violation of Rule 13.6 seems to be a false positive. @@ -900,14 +900,14 @@ static void zb_zcl_conform_singleton(zb_uint8_t ep_first, zb_uint16_t cluster_id continue; } - attr_desc = zb_zcl_get_attr_desc(cluster_desc, attr_id); + attr_desc = zb_zcl_get_attr_desc_manuf(cluster_desc, attr_id, manuf_code); if (attr_desc == NULL) { continue; } zb_zcl_write_attr_hook(device_ctx->ep_desc_list[i]->ep_id, - cluster_id, cluster_role, attr_id, value); + cluster_id, cluster_role, attr_id, value, manuf_code); ZB_MEMCPY(attr_desc->data_p, value, zb_zcl_get_attribute_size(attr_desc->type, value)); @@ -916,8 +916,8 @@ static void zb_zcl_conform_singleton(zb_uint8_t ep_first, zb_uint16_t cluster_id /* check, if reporting is needed for an attribute */ if (ZB_ZCL_IS_ATTR_REPORTABLE(attr_desc)) { - zb_zcl_mark_attr_for_reporting(device_ctx->ep_desc_list[i]->ep_id, - cluster_id, cluster_role, attr_id); + zb_zcl_mark_attr_for_reporting_manuf(device_ctx->ep_desc_list[i]->ep_id, + cluster_id, cluster_role, attr_id, manuf_code); } #endif } @@ -933,8 +933,54 @@ static void zb_zcl_conform_singleton(zb_uint8_t ep_first, zb_uint16_t cluster_id * Note: access_check specifies if it is needed to perform read-only * check: end-user application may chanage read-only attributes */ +zb_zcl_status_t zb_zcl_set_attr_val_manuf(zb_uint8_t ep, zb_uint16_t cluster_id, + zb_uint8_t cluster_role, + zb_uint16_t attr_id, + zb_uint16_t manuf_code, + zb_uint8_t *value, + zb_bool_t check_access) +{ + zb_zcl_attr_t *attr_desc; + zb_zcl_status_t status = ZB_ZCL_STATUS_FAIL; + + TRACE_MSG(TRACE_ZCL1, ">> zb_zcl_set_attr_val_manuf check_access %hd, ep %hd, cluster role %hd, cluster 0x%x, attr %d manuf %d", + (FMT__H_H_H_D_D_D, check_access, ep, cluster_role, cluster_id, attr_id, manuf_code)); + + attr_desc = zb_zcl_get_attr_desc_manuf_a(ep, cluster_id, cluster_role, attr_id, manuf_code); + TRACE_MSG(TRACE_ZCL1, "attr_desc %p, value %p", (FMT__P_P, attr_desc, value)); + + if (attr_desc != NULL && value != NULL) + { + status = (zb_zcl_status_t)zb_zcl_check_attribute_writable(attr_desc, ep, cluster_id, cluster_role, value, check_access); + if (status == ZB_ZCL_STATUS_SUCCESS) + { + zb_zcl_write_attr_hook(ep, cluster_id, cluster_role, attr_id, value, attr_desc->manuf_code); + + ZB_MEMCPY(attr_desc->data_p, value, + zb_zcl_get_attribute_size(attr_desc->type, value)); + +#if !(defined ZB_ZCL_DISABLE_REPORTING) + /* check, if reporting is needed for an attribute */ + if (ZB_ZCL_IS_ATTR_REPORTABLE(attr_desc)) + { + zb_zcl_mark_attr_for_reporting_manuf(ep, cluster_id, cluster_role, attr_id, attr_desc->manuf_code); + } +#endif + + if (ZB_ZCL_IS_ATTR_SINGLETON(attr_desc)) + { + zb_zcl_conform_singleton(ep, cluster_id, cluster_role, attr_id, value, attr_desc->manuf_code); + } + } + } + TRACE_MSG(TRACE_ZCL1, "<< zb_zcl_set_attr_val_manuf, cluster_id 0x%x, attr_id 0x%x status %hx", + (FMT__D_D_H, cluster_id, attr_id, status)); + return status; +} + + zb_zcl_status_t zb_zcl_set_attr_val(zb_uint8_t ep, zb_uint16_t cluster_id, zb_uint8_t cluster_role, - zb_uint16_t attr_id, zb_uint8_t *value, zb_bool_t check_access) + zb_uint16_t attr_id, zb_uint8_t *value, zb_bool_t check_access) { zb_zcl_attr_t *attr_desc; zb_zcl_status_t status = ZB_ZCL_STATUS_FAIL; @@ -950,7 +996,7 @@ zb_zcl_status_t zb_zcl_set_attr_val(zb_uint8_t ep, zb_uint16_t cluster_id, zb_ui status = (zb_zcl_status_t)zb_zcl_check_attribute_writable(attr_desc, ep, cluster_id, cluster_role, value, check_access); if (status == ZB_ZCL_STATUS_SUCCESS) { - zb_zcl_write_attr_hook(ep, cluster_id, cluster_role, attr_id, value); + zb_zcl_write_attr_hook(ep, cluster_id, cluster_role, attr_id, value, attr_desc->manuf_code); ZB_MEMCPY(attr_desc->data_p, value, zb_zcl_get_attribute_size(attr_desc->type, value)); @@ -959,13 +1005,13 @@ zb_zcl_status_t zb_zcl_set_attr_val(zb_uint8_t ep, zb_uint16_t cluster_id, zb_ui /* check, if reporting is needed for an attribute */ if (ZB_ZCL_IS_ATTR_REPORTABLE(attr_desc)) { - zb_zcl_mark_attr_for_reporting(ep, cluster_id, cluster_role, attr_id); + zb_zcl_mark_attr_for_reporting_manuf(ep, cluster_id, cluster_role, attr_id, attr_desc->manuf_code); } #endif if (ZB_ZCL_IS_ATTR_SINGLETON(attr_desc)) { - zb_zcl_conform_singleton(ep, cluster_id, cluster_role, attr_id, value); + zb_zcl_conform_singleton(ep, cluster_id, cluster_role, attr_id, value, attr_desc->manuf_code); } } } @@ -1940,7 +1986,7 @@ static zb_ret_t zb_zcl_finish_and_send_packet_common(zb_bufid_t buffer, apsde_req->clusterid, (zcl_cmd->frame_ctrl.frame_type == ZB_ZCL_FRAME_TYPE_COMMON) ? ZB_TRUE : ZB_FALSE)) { - if (cb != NULL) + if (cb != NULL) { ZB_ZCL_SCHEDULE_STATUS_ABORT(buffer, dst_addr, dst_addr_mode, dst_ep, ep, cb); /* If cb isn't NULL caller should handle result in zb_zcl_command_send_status_t param */ diff --git a/zboss/production/src/zcl/zcl_control4_networking.c b/zboss/production/src/zcl/zcl_control4_networking.c index 41f596dc2c..e452a13670 100644 --- a/zboss/production/src/zcl/zcl_control4_networking.c +++ b/zboss/production/src/zcl/zcl_control4_networking.c @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2021 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -84,7 +84,7 @@ static zb_zcl_control4_network_state_t g_c4_network_cluster_state = ZB_ZCL_CONTR zb_ret_t check_value_control4_networking_server(zb_uint16_t attr_id, zb_uint8_t endpoint, zb_uint8_t *value); zb_ret_t check_value_control4_networking_client(zb_uint16_t attr_id, zb_uint8_t endpoint, zb_uint8_t *value); -void zb_zcl_control4_networking_write_attr_hook_server(zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *new_value); +void zb_zcl_control4_networking_write_attr_hook_server(zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *new_value, zb_uint16_t manuf_code); void zb_zcl_control4_networking_write_attr_hook_client(zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *new_value); zb_bool_t zb_zcl_process_control4_networking_specific_commands_srv(zb_uint8_t param); @@ -204,13 +204,14 @@ static void zb_zcl_control4_networking_zap_info_notify_user_app(zb_bufid_t buffe } } -void zb_zcl_control4_networking_write_attr_hook_server(zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *new_value) +void zb_zcl_control4_networking_write_attr_hook_server(zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *new_value, zb_uint16_t manuf_code) { zb_zcl_attr_t* attr_desc; ZVUNUSED(endpoint); ZVUNUSED(attr_id); ZVUNUSED(new_value); + ZVUNUSED(manuf_code); /* TODO: handle other writable attributes */ diff --git a/zboss/production/src/zcl/zcl_general_commands.c b/zboss/production/src/zcl/zcl_general_commands.c index 6a851ccf3f..8874327d5b 100644 --- a/zboss/production/src/zcl/zcl_general_commands.c +++ b/zboss/production/src/zcl/zcl_general_commands.c @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -207,6 +207,7 @@ static void zb_zcl_read_attr_handler_continue(zb_uint8_t param) zb_uint8_t i; zb_uint32_t bytes_avail; zb_uint16_t global_cluster_revision_value; + zb_uint16_t manuf_code; zb_zcl_status_t status; TRACE_MSG(TRACE_ZCL1, ">>zb_zcl_read_attr_handler_continue param %hd", (FMT__H, param)); @@ -262,9 +263,10 @@ static void zb_zcl_read_attr_handler_continue(zb_uint8_t param) for(i = 0; i < attr_num; i++) { status = ZB_ZCL_STATUS_SUCCESS; + manuf_code = (cmd_info->is_manuf_specific) ? cmd_info->manuf_specific : ZB_ZCL_NON_MANUFACTURER_SPECIFIC; ZB_HTOLE16(&attr_id, &read_attr_req->attr_id[i]); TRACE_MSG(TRACE_ZCL3, "attr_id %d", (FMT__D, attr_id)); - attr_desc = zb_zcl_get_attr_desc(cluster_desc, attr_id); + attr_desc = zb_zcl_get_attr_desc_manuf(cluster_desc, attr_id, manuf_code); TRACE_MSG(TRACE_ZCL3, "attr_desc %p", (FMT__P, attr_desc)); bytes_avail = ZB_ZCL_GET_BYTES_AVAILABLE(ZCL_CTX().runtime_buf, resp_data, @@ -465,23 +467,39 @@ static void zb_zcl_read_attr_resp_handler(zb_uint8_t param) Search for attribute descriptor by its ID */ zb_zcl_attr_t* zb_zcl_get_attr_desc(zb_zcl_cluster_desc_t *cluster_desc, zb_uint16_t attr_id) +{ + zb_zcl_attr_t *attr_desc; + + TRACE_MSG(TRACE_ZCL3, ">> zb_zcl_get_attr_desc cluster_desc %p, attr_id 0x%x", (FMT__P_D, cluster_desc, attr_id)); + attr_desc = zb_zcl_get_attr_desc_manuf(cluster_desc, attr_id, ZB_ZCL_NON_MANUFACTURER_SPECIFIC); + TRACE_MSG(TRACE_ZCL3, "<< zb_zcl_get_attr_desc, attr_desc %p", (FMT__P, attr_desc)); + + return attr_desc; +} + +zb_zcl_attr_t* zb_zcl_get_attr_desc_manuf(zb_zcl_cluster_desc_t *cluster_desc, zb_uint16_t attr_id, zb_uint16_t manuf_code) { zb_zcl_attr_t *attr_desc = cluster_desc->attr_desc_list; + zb_bool_t is_ms_code_check_required = (manuf_code != ZB_ZCL_NON_MANUFACTURER_SPECIFIC); zb_ushort_t i = 0; - TRACE_MSG( - TRACE_ZCL3, - ">> zb_zcl_get_attr_desc cluster_desc %p, attr_id %d", - (FMT__P_D, cluster_desc, attr_id)); - TRACE_MSG(TRACE_ZCL3, "cluster id: 0x%x", (FMT__D, cluster_desc->cluster_id)); + TRACE_MSG(TRACE_ZCL3, ">> zb_zcl_get_attr_desc_manuf cluster_desc %p, attr_id 0x%x, manuf_code 0x%x, cluster id: 0x%x", + (FMT__P_D_D_D, cluster_desc, attr_id, manuf_code, cluster_desc->cluster_id)); + while (attr_desc != NULL) { - TRACE_MSG(TRACE_ZCL3, "Looking up attribute with id: 0x%x", - (FMT__D, attr_desc->id)); + zb_bool_t is_ms_bit_set = ZB_BIT_IS_SET(attr_desc->access, ZB_ZCL_ATTR_MANUF_SPEC); + /* Manufacturer specific bit set correctly if it is required and set or not required and not set, in other words, when this two variables are equal */ + zb_bool_t is_ms_bit_set_correctly = (is_ms_code_check_required == is_ms_bit_set); + zb_bool_t is_attr_ids_match = (attr_desc->id == attr_id); + zb_bool_t is_manuf_codes_match = (manuf_code == attr_desc->manuf_code); + + TRACE_MSG(TRACE_ZCL3, "Checking attribute with id 0x%x: is_attr_ids_match %hd, is_manuf_codes_match %hd, is_ms_bit_set %hd, is_ms_bit_set_correctly %hd", + (FMT__D_H_H_H_H, attr_desc->id, is_attr_ids_match, is_manuf_codes_match, is_ms_bit_set, is_ms_bit_set_correctly)); - if (attr_desc->id == attr_id) + if (is_attr_ids_match && is_manuf_codes_match && is_ms_bit_set_correctly) { - /* attribute is found */ + TRACE_MSG(TRACE_ZCL3, "attribute is found", (FMT__0)); break; } @@ -494,19 +512,23 @@ zb_zcl_attr_t* zb_zcl_get_attr_desc(zb_zcl_cluster_desc_t *cluster_desc, zb_uint } } - TRACE_MSG(TRACE_ZCL3, "<< zb_zcl_get_attr_desc, attr_desc %p", (FMT__P, attr_desc)); + TRACE_MSG(TRACE_ZCL3, "<< zb_zcl_get_attr_desc_manuf, attr_desc %p", (FMT__P, attr_desc)); return attr_desc; } /* aggregates all calls to find attribute descriptor */ -zb_zcl_attr_t* zb_zcl_get_attr_desc_a(zb_uint8_t ep, zb_uint16_t cluster_id, zb_uint8_t cluster_role, zb_uint16_t attr_id) +zb_zcl_attr_t* zb_zcl_get_attr_desc_manuf_a(zb_uint8_t ep, + zb_uint16_t cluster_id, + zb_uint8_t cluster_role, + zb_uint16_t attr_id, + zb_uint16_t manuf_code) { zb_af_endpoint_desc_t *ep_desc; zb_zcl_cluster_desc_t *cluster_desc; zb_zcl_attr_t *attr_desc; - TRACE_MSG(TRACE_ZCL2, ">> zb_zcl_get_attr_desc_a ep %hd, cluster_id %d, attr_id %d", - (FMT__H_D_D, ep, cluster_id, attr_id)); + TRACE_MSG(TRACE_ZCL2, ">> zb_zcl_get_attr_desc_manuf_a ep %hd, cluster_id 0x%x, attr_id 0x%x, manuf_code 0x%x", + (FMT__H_D_D_D, ep, cluster_id, attr_id, manuf_code)); ep_desc = zb_af_get_endpoint_desc(ep); /* EP existence was checked on command accept - it must be in the list */ @@ -516,11 +538,15 @@ zb_zcl_attr_t* zb_zcl_get_attr_desc_a(zb_uint8_t ep, zb_uint16_t cluster_id, zb_ /* Cluster existence was checked on command accept - it must be in the list */ ZB_ASSERT(cluster_desc); - attr_desc = zb_zcl_get_attr_desc(cluster_desc, attr_id); - TRACE_MSG(TRACE_ZCL2, "<< zb_zcl_get_attr_desc_a ret %p", (FMT__P, attr_desc)); + attr_desc = zb_zcl_get_attr_desc_manuf(cluster_desc, attr_id, manuf_code); + TRACE_MSG(TRACE_ZCL2, "<< zb_zcl_get_attr_desc_manuf_a ret %p", (FMT__P, attr_desc)); return attr_desc; } +zb_zcl_attr_t* zb_zcl_get_attr_desc_a(zb_uint8_t ep, zb_uint16_t cluster_id, zb_uint8_t cluster_role, zb_uint16_t attr_id) +{ + return zb_zcl_get_attr_desc_manuf_a(ep, cluster_id, cluster_role, attr_id, ZB_ZCL_NON_MANUFACTURER_SPECIFIC); +} static void zb_zcl_set_attr_val_cmd_post_process(zb_zcl_parsed_hdr_t *cmd_info, zb_uint16_t attr_id, @@ -576,6 +602,7 @@ void zb_zcl_write_attr_handler(zb_uint8_t param) zb_uint8_t endpoint; zb_uint8_t *data_ptr; zb_uint32_t buf_len; + zb_uint16_t manuf_code; zb_bool_t can_write_all_attrs = ZB_TRUE; TRACE_MSG( @@ -624,6 +651,7 @@ void zb_zcl_write_attr_handler(zb_uint8_t param) data_ptr = zb_buf_begin(param); buf_len = zb_buf_len(param); + manuf_code = (cmd_info->is_manuf_specific) ? cmd_info->manuf_specific : ZB_ZCL_NON_MANUFACTURER_SPECIFIC; do { @@ -637,7 +665,7 @@ void zb_zcl_write_attr_handler(zb_uint8_t param) TRACE_MSG(TRACE_ZCL3, "attr_id %d, attr_type %hd", (FMT__D_H, write_attr_req->attr_id, write_attr_req->attr_type)); - attr_desc = zb_zcl_get_attr_desc(cluster_desc, write_attr_req->attr_id); + attr_desc = zb_zcl_get_attr_desc_manuf(cluster_desc, write_attr_req->attr_id, manuf_code); TRACE_MSG(TRACE_ZCL3, "attr_desc %p", (FMT__P, attr_desc)); if (attr_desc == NULL) @@ -684,11 +712,12 @@ void zb_zcl_write_attr_handler(zb_uint8_t param) { if (ZB_ZCL_CMD_WRITE_ATTRIB_UNDIV != cmd_info->cmd_id) { - ZVUNUSED(zb_zcl_set_attr_val(ZB_ZCL_PARSED_HDR_SHORT_DATA(cmd_info).dst_endpoint, + ZVUNUSED(zb_zcl_set_attr_val_manuf(ZB_ZCL_PARSED_HDR_SHORT_DATA(cmd_info).dst_endpoint, cmd_info->cluster_id, (cmd_info->cmd_direction == ZB_ZCL_FRAME_DIRECTION_TO_SRV) ? ZB_ZCL_CLUSTER_SERVER_ROLE : ZB_ZCL_CLUSTER_CLIENT_ROLE, attr_desc->id, + manuf_code, write_attr_req->attr_value, ZB_FALSE)); zcl_write_attr_post_process(cmd_info, attr_desc, write_attr_req->attr_value); @@ -737,15 +766,16 @@ void zb_zcl_write_attr_handler(zb_uint8_t param) ZB_ZCL_GENERAL_GET_NEXT_WRITE_ATTR_REQ(data_ptr, buf_len, write_attr_req); if (write_attr_req != NULL) - { - attr_desc = zb_zcl_get_attr_desc(cluster_desc, write_attr_req->attr_id); + { + attr_desc = zb_zcl_get_attr_desc_manuf(cluster_desc, write_attr_req->attr_id, manuf_code); TRACE_MSG(TRACE_ZCL3, "attr_desc %p", (FMT__P, attr_desc)); - ZVUNUSED(zb_zcl_set_attr_val(ZB_ZCL_PARSED_HDR_SHORT_DATA(cmd_info).dst_endpoint, + ZVUNUSED(zb_zcl_set_attr_val_manuf(ZB_ZCL_PARSED_HDR_SHORT_DATA(cmd_info).dst_endpoint, cmd_info->cluster_id, (cmd_info->cmd_direction == ZB_ZCL_FRAME_DIRECTION_TO_SRV) ? ZB_ZCL_CLUSTER_SERVER_ROLE : ZB_ZCL_CLUSTER_CLIENT_ROLE, attr_desc->id, + manuf_code, write_attr_req->attr_value, ZB_FALSE)); zcl_write_attr_post_process(cmd_info, attr_desc, write_attr_req->attr_value); @@ -919,6 +949,7 @@ void zb_zcl_read_report_config_cmd_handler(zb_uint8_t param) zb_zcl_attr_t *attr_desc; zb_uint16_t free_space = 0; zb_uint8_t required_space = 0; + zb_uint16_t manuf_code; TRACE_MSG(TRACE_ZCL1, ">>zb_zcl_read_report_config_cmd_handler", (FMT__0)); /* ZCL spec, 2.4.10 Read Reporting Configuration Response Command */ @@ -960,6 +991,8 @@ void zb_zcl_read_report_config_cmd_handler(zb_uint8_t param) /* Cluster existence was checked on command accept - it must be in the list */ ZB_ASSERT(cluster_desc); + manuf_code = (cmd_info->is_manuf_specific) ? cmd_info->manuf_specific : ZB_ZCL_NON_MANUFACTURER_SPECIFIC; + do { /*Try to get attribute reporting configuration record from request */ @@ -982,7 +1015,7 @@ void zb_zcl_read_report_config_cmd_handler(zb_uint8_t param) /*Get attribute descriptor to undestand, is it supported and * reportable or not. Calculate status field*/ - attr_desc = zb_zcl_get_attr_desc(cluster_desc, read_rep_cfg_req.attr_id); + attr_desc = zb_zcl_get_attr_desc_manuf(cluster_desc, read_rep_cfg_req.attr_id, manuf_code); if (!attr_desc || !attr_desc->data_p) /*Unsupported attribute*/ { @@ -998,10 +1031,11 @@ void zb_zcl_read_report_config_cmd_handler(zb_uint8_t param) { /*Try to get attr_rep_info for attr_id specified in the current * request record*/ - attr_rep_info = zb_zcl_find_reporting_info(ep_desc->ep_id, - cluster_desc->cluster_id, - cluster_desc->role_mask, - read_rep_cfg_req.attr_id); + attr_rep_info = zb_zcl_find_reporting_info_manuf(ep_desc->ep_id, + cluster_desc->cluster_id, + cluster_desc->role_mask, + read_rep_cfg_req.attr_id, + (cmd_info->is_manuf_specific) ? cmd_info->manuf_specific : ZB_ZCL_NON_MANUFACTURER_SPECIFIC); if(attr_rep_info) /*If requested attribute reporting info found*/ @@ -1169,6 +1203,7 @@ void zb_zcl_configure_reporting_handler(zb_uint8_t param) zb_bool_t error_status = ZB_FALSE; zb_zcl_parsed_hdr_t *cmd_info = ZB_BUF_GET_PARAM(param, zb_zcl_parsed_hdr_t); zb_ret_t ret; + zb_uint16_t manuf_code; TRACE_MSG( TRACE_ZCL1, @@ -1215,7 +1250,8 @@ void zb_zcl_configure_reporting_handler(zb_uint8_t param) TRACE_ZCL3, "direction %hd, attr_id %d, ", (FMT__H_D, config_rep_req->direction, config_rep_req->attr_id)); - attr_desc = zb_zcl_get_attr_desc(cluster_desc, config_rep_req->attr_id); + manuf_code = (cmd_info->is_manuf_specific) ? cmd_info->manuf_specific : ZB_ZCL_NON_MANUFACTURER_SPECIFIC; + attr_desc = zb_zcl_get_attr_desc_manuf(cluster_desc, config_rep_req->attr_id, manuf_code); TRACE_MSG(TRACE_ZCL3, "attr_desc %p", (FMT__P, attr_desc)); status = check_config_rep_req(config_rep_req, attr_desc); @@ -1232,6 +1268,7 @@ void zb_zcl_configure_reporting_handler(zb_uint8_t param) addr_info.profile_id = cmd_info->profile_id; addr_info.cluster_role = (cmd_info->cmd_direction == ZB_ZCL_FRAME_DIRECTION_TO_SRV) ? ZB_ZCL_CLUSTER_SERVER_ROLE : ZB_ZCL_CLUSTER_CLIENT_ROLE; + addr_info.manuf_code = (cmd_info->is_manuf_specific) ? cmd_info->manuf_specific : ZB_ZCL_NON_MANUFACTURER_SPECIFIC; ret = zb_zcl_put_reporting_info_from_req(config_rep_req, &addr_info); if (ret != RET_OK) @@ -1309,7 +1346,12 @@ void zb_zcl_send_report_attr_command(zb_zcl_reporting_info_t *rep_info, zb_uint8 (FMT__P_H, rep_info, param)); attr_desc = - zb_zcl_get_attr_desc_a(rep_info->ep, rep_info->cluster_id, rep_info->cluster_role, rep_info->attr_id); + zb_zcl_get_attr_desc_manuf_a( + rep_info->ep, + rep_info->cluster_id, + rep_info->cluster_role, + rep_info->attr_id, + rep_info->manuf_code); is_manuf_spec = !!ZB_ZCL_IS_ATTR_MANUF_SPEC(attr_desc); @@ -1331,12 +1373,10 @@ void zb_zcl_send_report_attr_command(zb_zcl_reporting_info_t *rep_info, zb_uint8 if (is_manuf_spec) { - zb_af_endpoint_desc_t *ep_desc = zb_af_get_endpoint_desc(rep_info->ep); - zb_zcl_cluster_desc_t *cluster_desc = get_cluster_desc(ep_desc, rep_info->cluster_id, rep_info->cluster_role); - - ZB_ASSERT(ep_desc && cluster_desc && cluster_desc->manuf_code != ZB_ZCL_MANUF_CODE_INVALID); + TRACE_MSG(TRACE_ERROR, "rep_info->manuf_code 0x%x", (FMT__D, rep_info->manuf_code)); + ZB_ASSERT(rep_info->manuf_code != ZB_ZCL_NON_MANUFACTURER_SPECIFIC); - ZB_ZCL_CONSTRUCT_COMMAND_HEADER_EXT(cmd_data, ZB_ZCL_GET_SEQ_NUM(), ZB_TRUE, cluster_desc->manuf_code, ZB_ZCL_CMD_REPORT_ATTRIB); + ZB_ZCL_CONSTRUCT_COMMAND_HEADER_EXT(cmd_data, ZB_ZCL_GET_SEQ_NUM(), ZB_TRUE, rep_info->manuf_code, ZB_ZCL_CMD_REPORT_ATTRIB); } else { @@ -1348,7 +1388,7 @@ void zb_zcl_send_report_attr_command(zb_zcl_reporting_info_t *rep_info, zb_uint8 while (cur_rep_info) { attr_desc = - zb_zcl_get_attr_desc_a(cur_rep_info->ep, cur_rep_info->cluster_id, cur_rep_info->cluster_role, cur_rep_info->attr_id); + zb_zcl_get_attr_desc_manuf_a(cur_rep_info->ep, cur_rep_info->cluster_id, cur_rep_info->cluster_role, cur_rep_info->attr_id, cur_rep_info->manuf_code); TRACE_MSG(TRACE_ZCL3, "attr_desc %p", (FMT__P, attr_desc)); /* attribute description could not be absent, it is checked while accepting configure report @@ -1361,8 +1401,8 @@ void zb_zcl_send_report_attr_command(zb_zcl_reporting_info_t *rep_info, zb_uint8 TRACE_MSG( TRACE_ZCL3, - "attribute: id 0x%x, type 0x%hx", - (FMT__D_H, attr_desc->id, attr_desc->type)); + "attribute: id 0x%x, type 0x%hx, manuf_code 0x%x", + (FMT__D_H_D, attr_desc->id, attr_desc->type, attr_desc->manuf_code)); attr_size = zb_zcl_get_attribute_size(attr_desc->type, attr_desc->data_p); TRACE_MSG(TRACE_ZCL3, "attr_size %hd", (FMT__H, attr_size)); diff --git a/zboss/production/src/zcl/zcl_ias_zone_commands.c b/zboss/production/src/zcl/zcl_ias_zone_commands.c index b57f9f6b4e..020ef01ac6 100644 --- a/zboss/production/src/zcl/zcl_ias_zone_commands.c +++ b/zboss/production/src/zcl/zcl_ias_zone_commands.c @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -93,7 +93,7 @@ void zb_zcl_ias_zone_restore_normal_mode(zb_uint8_t endpoint); void zb_zcl_ias_zone_set_test_bit_delayed(zb_uint8_t endpoint, zb_uint8_t test_bit); void zb_zcl_ias_zone_set_test_bit(zb_uint8_t param, zb_uint16_t user_param); zb_ret_t check_value_ias_zone_server(zb_uint16_t attr_id, zb_uint8_t endpoint, zb_uint8_t *value); -void zb_zcl_ias_zone_write_attr_hook_server(zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *new_value); +void zb_zcl_ias_zone_write_attr_hook_server(zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *new_value, zb_uint16_t manuf_code); zb_bool_t zb_zcl_process_ias_zone_specific_commands_srv(zb_uint8_t param); zb_bool_t zb_zcl_process_ias_zone_specific_commands_cli(zb_uint8_t param); @@ -929,13 +929,13 @@ static void handle_bind_check_response(zb_bufid_t param) } } -void zb_zcl_ias_zone_write_attr_hook_server(zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *new_value) +void zb_zcl_ias_zone_write_attr_hook_server(zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *new_value, zb_uint16_t manuf_code) { zb_zcl_attr_t* attr_desc; zb_zcl_ias_zone_int_ctx_t *int_ctx; - TRACE_MSG(TRACE_ZCL1, "> zb_zcl_ias_zone_write_attr_hook endpoint %hx attr_id %d", - (FMT__H_D, endpoint, attr_id)); + TRACE_MSG(TRACE_ZCL1, "> zb_zcl_ias_zone_write_attr_hook endpoint %hx attr_id 0x%x, manuf_code 0x%x", + (FMT__H_D_D, endpoint, attr_id, manuf_code)); attr_desc = zb_zcl_get_attr_desc_a(endpoint, ZB_ZCL_CLUSTER_ID_IAS_ZONE, diff --git a/zboss/production/src/zcl/zcl_identify_commands.c b/zboss/production/src/zcl/zcl_identify_commands.c index 0ae413d739..d0ba7f2788 100644 --- a/zboss/production/src/zcl/zcl_identify_commands.c +++ b/zboss/production/src/zcl/zcl_identify_commands.c @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -84,7 +84,7 @@ zb_ret_t check_value_identify_server(zb_uint16_t attr_id, zb_uint8_t endpoint, z zb_bool_t zb_zcl_process_identify_specific_commands_srv(zb_uint8_t param); zb_bool_t zb_zcl_process_identify_specific_commands_cli(zb_uint8_t param); -void zb_zcl_identify_write_attr_hook_server(zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *new_value); +void zb_zcl_identify_write_attr_hook_server(zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *new_value, zb_uint16_t manuf_code); void zb_zcl_identify_init_server() { @@ -428,17 +428,19 @@ void zb_zcl_stop_identifying(zb_uint8_t endpoint) /** @brief Hook on Write attribute * Start Identifying on IdentifyTime attribute set */ -void zb_zcl_identify_write_attr_hook_server(zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *new_value) +void zb_zcl_identify_write_attr_hook_server(zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *new_value, zb_uint16_t manuf_code) { zb_uint16_t val = 0; (void)endpoint; (void)attr_id; ZB_ASSIGN_UINT16(&val, new_value); - TRACE_MSG(TRACE_ZCL1, "> zb_zcl_identify_write_attr_hook endpoint %hx attr_id %d", - (FMT__H_D, endpoint, attr_id)); + TRACE_MSG(TRACE_ZCL1, "> zb_zcl_identify_write_attr_hook endpoint %hx attr_id 0x%x, manuf_code 0x%x", + (FMT__H_D, endpoint, attr_id, manuf_code)); - /* ZCL8, 3.5.2.2.1 IdentifyTime attribute: + ZVUNUSED(manuf_code); + + /* ZCL8, 3.5.2.2.1 IdentifyTime attribute: * If this attribute is set to a value other than 0x0000 then the device SHALL enter its * identification procedure, in order to indicate to an observer which of several devices it is. It * is recommended that this procedure consists of flashing a light with a period of 0.5 diff --git a/zboss/production/src/zcl/zcl_main.c b/zboss/production/src/zcl/zcl_main.c index a560f4d088..686cdd277c 100644 --- a/zboss/production/src/zcl/zcl_main.c +++ b/zboss/production/src/zcl/zcl_main.c @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -364,7 +364,7 @@ zb_zcl_cluster_check_value_t zb_zcl_get_cluster_check_value(zb_uint16_t cluster_ zb_uindex_t i = 0; ZVUNUSED(cluster_role); - TRACE_MSG(TRACE_ERROR, "zb_zcl_get_cluster_check_value: cluster_id %d cluster_role %hd", + TRACE_MSG(TRACE_ZCL3, "zb_zcl_get_cluster_check_value: cluster_id %d cluster_role %hd", (FMT__D_H, cluster_id, cluster_role)); /* Search if we already have handler */ @@ -389,7 +389,7 @@ zb_zcl_cluster_write_attr_hook_t zb_zcl_get_cluster_write_attr_hook(zb_uint16_t zb_uindex_t i = 0; ZVUNUSED(cluster_role); - TRACE_MSG(TRACE_ERROR, "zb_zcl_get_cluster_write_attr_hook: cluster_id %d cluster_role %hd", + TRACE_MSG(TRACE_ZCL3, "zb_zcl_get_cluster_write_attr_hook: cluster_id %d cluster_role %hd", (FMT__D_H, cluster_id, cluster_role)); /* Search if we already have handler */ diff --git a/zboss/production/src/zcl/zcl_nvram.c b/zboss/production/src/zcl/zcl_nvram.c index a6c1dc261f..547997eee1 100644 --- a/zboss/production/src/zcl/zcl_nvram.c +++ b/zboss/production/src/zcl/zcl_nvram.c @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -416,6 +416,7 @@ void zb_nvram_read_zcl_reporting_dataset( rep_info->cluster_id = rec.cluster_id; rep_info->cluster_role = rec.cluster_role; rep_info->attr_id = rec.attr_id; + rep_info->manuf_code = rec.manuf_code; rep_info->flags = rec.flags; if (rep_info->direction == ZB_ZCL_CONFIGURE_REPORTING_SEND_REPORT) @@ -530,6 +531,7 @@ zb_ret_t zb_nvram_write_zcl_reporting_dataset(zb_uint8_t page, zb_uint32_t pos) rec.cluster_id = rep_info->cluster_id; rec.cluster_role = rep_info->cluster_role; rec.attr_id = rep_info->attr_id; + rec.manuf_code = rep_info->manuf_code; rec.flags = rep_info->flags; if (rep_info->direction == ZB_ZCL_CONFIGURE_REPORTING_SEND_REPORT) diff --git a/zboss/production/src/zcl/zcl_poll_control_commands.c b/zboss/production/src/zcl/zcl_poll_control_commands.c index 6109da8430..3006a50814 100644 --- a/zboss/production/src/zcl/zcl_poll_control_commands.c +++ b/zboss/production/src/zcl/zcl_poll_control_commands.c @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -75,7 +75,7 @@ zb_discover_cmd_list_t gs_poll_control_server_cmd_list = }; zb_ret_t check_value_poll_control_server(zb_uint16_t attr_id, zb_uint8_t endpoint, zb_uint8_t *value); -static void zb_zcl_poll_control_write_attr_hook_server(zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *new_value); +static void zb_zcl_poll_control_write_attr_hook_server(zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *new_value, zb_uint16_t manuf_code); zb_bool_t zb_zcl_process_poll_control_specific_commands_srv(zb_uint8_t param); @@ -1139,7 +1139,7 @@ void zb_zcl_poll_control_save_nvram(zb_uint8_t param) /** @brief Hook on Write attribute * send Check-in if change Check-in interval & Check-in remain time > new check-in interval */ -static void zb_zcl_poll_control_write_attr_hook_server(zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *new_value) +static void zb_zcl_poll_control_write_attr_hook_server(zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *new_value, zb_uint16_t manuf_code) { zb_uint32_t new_val = 0; /* 07/08/2019 EE CR:MAJOR LE/BE conversion? Is there a problem of local/remote attr write? */ @@ -1148,6 +1148,7 @@ static void zb_zcl_poll_control_write_attr_hook_server(zb_uint8_t endpoint, zb_u (void)endpoint; (void)attr_id; (void)new_value; + (void)manuf_code; TRACE_MSG(TRACE_ZCL1, "> zb_zcl_poll_control_write_attr_hook endpoint %hx attr_id %d", (FMT__H_D, endpoint, attr_id)); diff --git a/zboss/production/src/zcl/zcl_power_config_commands.c b/zboss/production/src/zcl/zcl_power_config_commands.c index c2c959f7e8..fa14962db5 100644 --- a/zboss/production/src/zcl/zcl_power_config_commands.c +++ b/zboss/production/src/zcl/zcl_power_config_commands.c @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -58,7 +58,7 @@ */ zb_ret_t check_value_power_config_server(zb_uint16_t attr_id, zb_uint8_t endpoint, zb_uint8_t *value); -void zb_zcl_power_config_write_attr_hook_server(zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *new_value); +void zb_zcl_power_config_write_attr_hook_server(zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *new_value, zb_uint16_t manuf_code); void zb_zcl_power_config_init_server() { @@ -510,10 +510,12 @@ void zcl_pwr_cfg_check_battery_voltage_or_percentage_value(zb_uint8_t ep, zb_uin TRACE_MSG(TRACE_ZCL1, "< zcl_pwr_cfg_check_val_value ret %hd", (FMT__H, ret)); } -void zb_zcl_power_config_write_attr_hook_server(zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *new_value) +void zb_zcl_power_config_write_attr_hook_server(zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *new_value, zb_uint16_t manuf_code) { - TRACE_MSG(TRACE_ZCL1, "> zb_zcl_power_config_write_attr_hook endpoint %hx attr_id %d", - (FMT__H_D, endpoint, attr_id)); + TRACE_MSG(TRACE_ZCL1, "> zb_zcl_power_config_write_attr_hook endpoint %hx attr_id 0x%x, manuf_code 0x%x", + (FMT__H_D_D, endpoint, attr_id, manuf_code)); + + ZVUNUSED(manuf_code); if (attr_id == ZB_ZCL_ATTR_POWER_CONFIG_MAINS_VOLTAGE_ID) { diff --git a/zboss/production/src/zcl/zcl_pressure_measurement.c b/zboss/production/src/zcl/zcl_pressure_measurement.c index 9ae22c719f..b44b3707d8 100644 --- a/zboss/production/src/zcl/zcl_pressure_measurement.c +++ b/zboss/production/src/zcl/zcl_pressure_measurement.c @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2021 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -52,7 +52,7 @@ #include "zcl/zb_zcl_common.h" zb_ret_t check_value_pressure_measurement_server(zb_uint16_t attr_id, zb_uint8_t endpoint, zb_uint8_t *value); -void zb_zcl_pressure_measurement_write_attr_hook_server(zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *new_value); +void zb_zcl_pressure_measurement_write_attr_hook_server(zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *new_value, zb_uint16_t manuf_code); void zb_zcl_pressure_measurement_init_server() { @@ -141,13 +141,14 @@ zb_ret_t check_value_pressure_measurement_server(zb_uint16_t attr_id, zb_uint8_t } void zb_zcl_pressure_measurement_write_attr_hook_server( - zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *new_value) + zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *new_value, zb_uint16_t manuf_code) { ZVUNUSED(new_value); ZVUNUSED(endpoint); + ZVUNUSED(manuf_code); - TRACE_MSG(TRACE_ZCL1, ">> zb_zcl_pressure_measurement_write_attr_hook endpoint %hd, attr_id %d", - (FMT__H_D, endpoint, attr_id)); + TRACE_MSG(TRACE_ZCL1, ">> zb_zcl_pressure_measurement_write_attr_hook endpoint %hd, attr_id 0x%x, manuf_code 0x%x", + (FMT__H_D_D, endpoint, attr_id, manuf_code)); /* All attributes in this cluster are read-only. Do nothing */ diff --git a/zboss/production/src/zcl/zcl_reporting.c b/zboss/production/src/zcl/zcl_reporting.c index 661c3e7dc0..528d611748 100644 --- a/zboss/production/src/zcl/zcl_reporting.c +++ b/zboss/production/src/zcl/zcl_reporting.c @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -212,16 +212,17 @@ zb_ret_t zb_zcl_put_reporting_info(zb_zcl_reporting_info_t* rep_info_ptr, zb_boo } cluster_desc = get_cluster_desc(ep_desc, rep_info_ptr->cluster_id, rep_info_ptr->cluster_role); - attr_desc = zb_zcl_get_attr_desc(cluster_desc, rep_info_ptr->attr_id); + attr_desc = zb_zcl_get_attr_desc_manuf(cluster_desc, rep_info_ptr->attr_id, rep_info_ptr->manuf_code); if (attr_desc) { /* search for already registered configure reporting record */ - rep_info = zb_zcl_find_reporting_info( + rep_info = zb_zcl_find_reporting_info_manuf( rep_info_ptr->ep, rep_info_ptr->cluster_id, rep_info_ptr->cluster_role, - rep_info_ptr->attr_id); + rep_info_ptr->attr_id, + rep_info_ptr->manuf_code); /* New reporting configuration may overrule an existing reporting configuration (probably * configured by a peer). Check if overriding is allowed. */ @@ -296,7 +297,7 @@ zb_ret_t zb_zcl_put_reporting_info(zb_zcl_reporting_info_t* rep_info_ptr, zb_boo /* [AN] 3/3/2020 maybe we should report only in case, when maximum interval is non-zero*/ if (rep_info->u.send_info.max_interval) { - zb_zcl_mark_attr_for_reporting(rep_info->ep, rep_info->cluster_id, rep_info->cluster_role, rep_info->attr_id); + zb_zcl_mark_attr_for_reporting_manuf(rep_info->ep, rep_info->cluster_id, rep_info->cluster_role, rep_info->attr_id, rep_info->manuf_code); } } } @@ -360,10 +361,11 @@ void zb_zcl_put_default_reporting_info_for_cluster(zb_uint8_t endpoint, zb_uint1 { if (attr_desc->access & ZB_ZCL_ATTR_ACCESS_REPORTING) { - TRACE_MSG(TRACE_ZCL3, "Attribute with id: 0x%x supports reporting, configure...", - (FMT__D, attr_desc->id)); + TRACE_MSG(TRACE_ZCL3, "Attribute with id: 0x%x, manuf_code 0x%x, supports reporting, configure...", + (FMT__D_D, attr_desc->id, attr_desc->manuf_code)); rep_info.attr_id = attr_desc->id; + rep_info.manuf_code = attr_desc->manuf_code; if (zb_zcl_is_analog_data_type(attr_desc->type)) { @@ -406,11 +408,12 @@ zb_ret_t zb_zcl_put_reporting_info_from_req(zb_zcl_configure_reporting_req_t *co ZB_ASSERT(attr_addr_info); /* search for already registered configure reporting record */ - rep_info = zb_zcl_find_reporting_info( + rep_info = zb_zcl_find_reporting_info_manuf( attr_addr_info->src_ep, attr_addr_info->cluster_id, attr_addr_info->cluster_role, - config_rep_req->attr_id); + config_rep_req->attr_id, + attr_addr_info->manuf_code); if (!rep_info) { @@ -502,8 +505,8 @@ zb_ret_t zb_zcl_put_reporting_info_from_req(zb_zcl_configure_reporting_req_t *co /* [AN] 3/3/2020 maybe we should report only in case, when maximum interval is non-zero*/ if (rep_info->u.send_info.max_interval) { - zb_zcl_mark_attr_for_reporting(rep_info->ep, rep_info->cluster_id, rep_info->cluster_role, rep_info->attr_id); - } + zb_zcl_mark_attr_for_reporting_manuf(rep_info->ep, rep_info->cluster_id, rep_info->cluster_role, rep_info->attr_id, rep_info->manuf_code); + } } #ifdef ZB_USE_NVRAM /* If we fail, trace is given and assertion is triggered */ @@ -812,12 +815,27 @@ zb_zcl_reporting_info_t* zb_zcl_find_reporting_info( zb_uint8_t ep, zb_uint16_t cluster_id, zb_uint8_t cluster_role, zb_uint16_t attr_id) +{ + zb_zcl_reporting_info_t *rep_info; + TRACE_MSG(TRACE_ZCL1, ">> zb_zcl_find_reporting_info, ep %hd, cluster %d, attr_id 0x%x, cluster_role %hd", + (FMT__H_D_D_D, ep, cluster_id, attr_id, cluster_role)); + rep_info = zb_zcl_find_reporting_info_manuf(ep, cluster_id, cluster_role, attr_id, ZB_ZCL_NON_MANUFACTURER_SPECIFIC); + TRACE_MSG(TRACE_ZCL2, "<< zb_zcl_find_reporting_info %p", (FMT__P, rep_info)); + return rep_info; +} + + +zb_zcl_reporting_info_t* zb_zcl_find_reporting_info_manuf( zb_uint8_t ep, + zb_uint16_t cluster_id, + zb_uint8_t cluster_role, + zb_uint16_t attr_id, + zb_uint16_t manuf_code) { zb_zcl_reporting_info_t *rep_info = NULL; zb_uindex_t i, j; - TRACE_MSG(TRACE_ZCL1, ">> zb_zcl_find_reporting_info, ep %hd, cluster %d, attr_id %d", - (FMT__H_D_D, ep, cluster_id, attr_id)); + TRACE_MSG(TRACE_ZCL1, ">> zb_zcl_find_reporting_info_manuf, ep %hd, cluster %d, attr_id 0x%x, manuf_code 0x%x, cluster_role %hd", + (FMT__H_D_D_D_D, ep, cluster_id, attr_id, manuf_code, cluster_role)); if (ZCL_CTX().device_ctx) { for (j = 0; j < ZCL_CTX().device_ctx->ep_count; j++) @@ -830,8 +848,8 @@ zb_zcl_reporting_info_t* zb_zcl_find_reporting_info( zb_uint8_t ep, TRACE_MSG(TRACE_ZCL1, ">> rep_info = %p",(FMT__P, rep_info)); for (i = 0; i < ZCL_CTX().device_ctx->ep_desc_list[j]->rep_info_count; i++) { - TRACE_MSG(TRACE_ZCL1, ">> rep_info->ep = %d rep_info->cluster_id = %d rep_info->attr_id = %d rep_flags %i)", - (FMT__D_D_D_H, rep_info->ep,rep_info->cluster_id,rep_info->attr_id,rep_info->flags)); + TRACE_MSG(TRACE_ZCL1, ">> rep_info->ep %d, rep_info->cluster_id %d, rep_info->attr_id 0x%x, manuf_code 0x%x, cluster_role %d, rep_flags %d)", + (FMT__D_D_D_D_D_D, rep_info->ep,rep_info->cluster_id,rep_info->attr_id,rep_info->manuf_code,rep_info->cluster_role,rep_info->flags)); TRACE_MSG(TRACE_ZCL1, " max_interval %d min_interval %d",(FMT__D_D, rep_info->u.send_info.max_interval, rep_info->u.send_info.min_interval)); @@ -839,8 +857,10 @@ zb_zcl_reporting_info_t* zb_zcl_find_reporting_info( zb_uint8_t ep, (rep_info->cluster_id == cluster_id) && (rep_info->cluster_role == cluster_role) && (rep_info->attr_id == attr_id) && + (rep_info->manuf_code == manuf_code) && ZB_ZCL_GET_REPORTING_FLAG(rep_info,ZB_ZCL_REPORTING_SLOT_BUSY)) { + TRACE_MSG(TRACE_ZCL1, "an entry is found! i == %hd, max %hd", (FMT__H_H, i, ZCL_CTX().device_ctx->ep_desc_list[j]->rep_info_count)); break; } rep_info++; @@ -860,7 +880,7 @@ zb_zcl_reporting_info_t* zb_zcl_find_reporting_info( zb_uint8_t ep, } } - TRACE_MSG(TRACE_ZCL2, "<< zb_zcl_find_reporting_info %p", (FMT__P, rep_info)); + TRACE_MSG(TRACE_ZCL2, "<< zb_zcl_find_reporting_info_manuf %p", (FMT__P, rep_info)); return rep_info; } @@ -920,6 +940,7 @@ void zb_zcl_report_attr(zb_uint8_t param) for (i = 0; i < ZCL_CTX().device_ctx->ep_desc_list[j]->rep_info_count; i++) { TRACE_MSG(TRACE_ZCL1, "rep_info %p, flags %hx", (FMT__P_H, rep_info, rep_info->flags)); + TRACE_MSG(TRACE_ZCL1, "attr_id 0x%x, manuf_code 0x%x", (FMT__D_D, rep_info->attr_id, rep_info->manuf_code)); if (ZB_ZCL_GET_REPORTING_FLAG(rep_info, ZB_ZCL_REPORT_ATTR) && ZB_ZCL_GET_REPORTING_FLAG(rep_info, ZB_ZCL_REPORT_IS_ALLOWED) && @@ -1002,7 +1023,7 @@ zb_zcl_reporting_info_t* zb_zcl_get_next_reporting_info(zb_zcl_reporting_info_t { attr_desc = - zb_zcl_get_attr_desc_a(rep_info->ep, rep_info->cluster_id, rep_info->cluster_role, rep_info->attr_id); + zb_zcl_get_attr_desc_manuf_a(rep_info->ep, rep_info->cluster_id, rep_info->cluster_role, rep_info->attr_id, rep_info->manuf_code); attr_manuf_spec = !!ZB_ZCL_IS_ATTR_MANUF_SPEC(attr_desc); if (ZB_ZCL_GET_REPORTING_FLAG(rep_info, ZB_ZCL_REPORT_ATTR) && @@ -1020,7 +1041,7 @@ zb_zcl_reporting_info_t* zb_zcl_get_next_reporting_info(zb_zcl_reporting_info_t ZB_ZCL_CLR_REPORTING_FLAG(rep_info, ZB_ZCL_REPORT_IS_ALLOWED); ZB_ZCL_SET_REPORTING_FLAG(rep_info, ZB_ZCL_REPORT_IS_SENT); - break; + break; } } rep_info++; @@ -1080,17 +1101,32 @@ void zb_zcl_wait_reporting_timeout(zb_uint8_t param) @param attr_id - attribute ID */ void zb_zcl_report_received(zb_uint8_t ep, zb_uint16_t cluster_id, zb_uint8_t cluster_role, zb_uint16_t attr_id) +{ + TRACE_MSG(TRACE_ZCL1, ">>zb_zcl_report_received ep %hd, cluster_id 0x%x, cluster_role %d, attr_id 0x%x", + (FMT__H_D_D_D, ep, cluster_id, cluster_role, attr_id)); + zb_zcl_report_received_manuf(ep, cluster_id, cluster_role, attr_id, ZB_ZCL_NON_MANUFACTURER_SPECIFIC); + TRACE_MSG(TRACE_ZCL1, "<>zb_zcl_report_received_manuf ep %hd, cluster_id 0x%x, cluster_role %d, attr_id 0x%x, manuf_code 0x%x", + (FMT__H_D_D_D_D, ep, cluster_id, cluster_role, attr_id, manuf_code)); + rep_info = zb_zcl_find_reporting_info_manuf(ep, cluster_id, cluster_role, attr_id, manuf_code); if (rep_info) { TRACE_MSG(TRACE_ZCL3, "restart wait report timer", (FMT__0)); start_wait_reporting_timer(rep_info); } + TRACE_MSG(TRACE_ZCL1, "<> check_delta_value %p", (FMT__P, rep_info)); - attr_desc = zb_zcl_get_attr_desc_a(rep_info->ep, rep_info->cluster_id, rep_info->cluster_role, rep_info->attr_id); + attr_desc = zb_zcl_get_attr_desc_manuf_a(rep_info->ep, rep_info->cluster_id, rep_info->cluster_role, rep_info->attr_id, rep_info->manuf_code); if (attr_desc) { if (zb_zcl_is_analog_data_type(attr_desc->type)) @@ -1382,13 +1418,21 @@ static zb_bool_t check_delta_value(zb_zcl_reporting_info_t *rep_info) /* marks attribute for reporting, after its value was changed */ void zb_zcl_mark_attr_for_reporting(zb_uint8_t ep, zb_uint16_t cluster_id, zb_uint8_t cluster_role, zb_uint16_t attr_id) +{ + TRACE_MSG(TRACE_ZCL1, ">> zb_zcl_mark_attr_for_reporting, ep %hd, cluster_id 0x%x, attr_id 0x%x", + (FMT__H_D_D_D, ep, cluster_id, attr_id)); + zb_zcl_mark_attr_for_reporting_manuf(ep, cluster_id, cluster_role, attr_id, ZB_ZCL_NON_MANUFACTURER_SPECIFIC); + TRACE_MSG(TRACE_ZCL1, "<< zb_zcl_mark_attr_for_reporting", (FMT__0)); +} + +void zb_zcl_mark_attr_for_reporting_manuf(zb_uint8_t ep, zb_uint16_t cluster_id, zb_uint8_t cluster_role, zb_uint16_t attr_id, zb_uint16_t manuf_code) { zb_zcl_reporting_info_t *rep_info; - TRACE_MSG(TRACE_ZCL1, ">> zb_zcl_mark_attr_for_reporting, ep %hd, cluster_id %d, attr_id %d", - (FMT__H_D_D, ep, cluster_id, attr_id)); + TRACE_MSG(TRACE_ZCL1, ">> zb_zcl_mark_attr_for_reporting_manuf, ep %hd, cluster_id 0x%x, attr_id 0x%x, manuf_code 0x%x", + (FMT__H_D_D_D, ep, cluster_id, attr_id, manuf_code)); - rep_info = zb_zcl_find_reporting_info(ep, cluster_id, cluster_role, attr_id); + rep_info = zb_zcl_find_reporting_info_manuf(ep, cluster_id, cluster_role, attr_id, manuf_code); if (rep_info) { TRACE_MSG(TRACE_ZCL3, "min_inerval %hd, flags %hd", @@ -1430,19 +1474,30 @@ void zb_zcl_mark_attr_for_reporting(zb_uint8_t ep, zb_uint16_t cluster_id, zb_ui } } } - TRACE_MSG(TRACE_ZCL1, "<< zb_zcl_mark_attr_for_reporting", (FMT__0)); + TRACE_MSG(TRACE_ZCL1, "<< zb_zcl_mark_attr_for_reporting_manuf", (FMT__0)); } /* stop attribute for reporting */ zb_ret_t zb_zcl_stop_attr_reporting(zb_uint8_t ep, zb_uint16_t cluster_id, zb_uint8_t cluster_role, zb_uint16_t attr_id) +{ + zb_ret_t ret; + TRACE_MSG(TRACE_ZCL1, ">> zb_zcl_stop_attr_for_reporting, ep %hd, cluster_id %d, attr_id %d", + (FMT__H_D_D, ep, cluster_id, attr_id)); + ret = zb_zcl_stop_attr_reporting_manuf(ep, cluster_id, cluster_role, attr_id, ZB_ZCL_NON_MANUFACTURER_SPECIFIC); + TRACE_MSG(TRACE_ZCL1, "<< zb_zcl_stop_attr_for_reporting %d", (FMT__H, ret)); + return ret; +} + +/* stop attribute for reporting */ +zb_ret_t zb_zcl_stop_attr_reporting_manuf(zb_uint8_t ep, zb_uint16_t cluster_id, zb_uint8_t cluster_role, zb_uint16_t attr_id, zb_uint16_t manuf_code) { zb_ret_t ret = RET_OK; zb_zcl_reporting_info_t *rep_info; - TRACE_MSG(TRACE_ZCL1, ">> zb_zcl_stop_attr_for_reporting, ep %hd, cluster_id %d, attr_id %d", - (FMT__H_D_D, ep, cluster_id, attr_id)); + TRACE_MSG(TRACE_ZCL1, ">> zb_zcl_stop_attr_for_reporting_manuf, ep %hd, cluster_id 0x%x, attr_id 0x%x, manuf_code 0x%x", + (FMT__H_D_D_D, ep, cluster_id, attr_id, manuf_code)); - rep_info = zb_zcl_find_reporting_info(ep, cluster_id, cluster_role, attr_id); + rep_info = zb_zcl_find_reporting_info_manuf(ep, cluster_id, cluster_role, attr_id, manuf_code); if (rep_info) { ZB_ZCL_SET_REPORTING_FLAG(rep_info, ZB_ZCL_REPORTING_STOP); @@ -1457,14 +1512,25 @@ zb_ret_t zb_zcl_stop_attr_reporting(zb_uint8_t ep, zb_uint16_t cluster_id, zb_ui /* start attribute for reporting */ zb_ret_t zb_zcl_start_attr_reporting(zb_uint8_t ep, zb_uint16_t cluster_id, zb_uint8_t cluster_role, zb_uint16_t attr_id) +{ + zb_ret_t ret; + TRACE_MSG(TRACE_ZCL1, ">> zb_zcl_start_attr_for_reporting, ep %hd, cluster_id 0x%x, attr_id 0x%x", + (FMT__H_D_D, ep, cluster_id, attr_id)); + ret = zb_zcl_start_attr_reporting_manuf(ep, cluster_id, cluster_role, attr_id, ZB_ZCL_NON_MANUFACTURER_SPECIFIC); + TRACE_MSG(TRACE_ZCL1, "<< zb_zcl_start_attr_for_reporting %d", (FMT__H, ret)); + return ret; +} + +/* start attribute for reporting */ +zb_ret_t zb_zcl_start_attr_reporting_manuf(zb_uint8_t ep, zb_uint16_t cluster_id, zb_uint8_t cluster_role, zb_uint16_t attr_id, zb_uint16_t manuf_code) { zb_ret_t ret = RET_OK; zb_zcl_reporting_info_t *rep_info; - TRACE_MSG(TRACE_ZCL1, ">> zb_zcl_start_attr_for_reporting, ep %hd, cluster_id %d, attr_id %d", - (FMT__H_D_D, ep, cluster_id, attr_id)); + TRACE_MSG(TRACE_ZCL1, ">> zb_zcl_start_attr_for_reporting, ep %hd, cluster_id 0x%x, attr_id 0x%x, manuf_code 0x%x", + (FMT__H_D_D_D, ep, cluster_id, attr_id, manuf_code)); - rep_info = zb_zcl_find_reporting_info(ep, cluster_id, cluster_role, attr_id); + rep_info = zb_zcl_find_reporting_info_manuf(ep, cluster_id, cluster_role, attr_id, manuf_code); if (rep_info) { ZB_ZCL_CLR_REPORTING_FLAG(rep_info, ZB_ZCL_REPORTING_STOP); @@ -1521,16 +1587,26 @@ void zb_zcl_reporting_cb(zb_uint8_t param) zb_bool_t zcl_is_attr_reported( zb_uint8_t ep, zb_uint16_t cluster_id, zb_uint8_t cluster_role, zb_uint16_t attr_id) +{ + zb_bool_t ret; + TRACE_MSG(TRACE_ZCL1, ">> zcl_is_attr_reported", (FMT__0)); + ret = zcl_is_attr_reported_manuf(ep, cluster_id, cluster_role, attr_id, ZB_ZCL_NON_MANUFACTURER_SPECIFIC); + TRACE_MSG(TRACE_ZCL1, "<< zcl_is_attr_reported ret %hd", (FMT__H, ret)); + return ret; +} + +zb_bool_t zcl_is_attr_reported_manuf( + zb_uint8_t ep, zb_uint16_t cluster_id, zb_uint8_t cluster_role, zb_uint16_t attr_id, zb_uint16_t manuf_code) { zb_bool_t ret; zb_zcl_reporting_info_t *rep_info; - TRACE_MSG(TRACE_ZCL1, ">> zcl_is_attr_reported", (FMT__0)); + TRACE_MSG(TRACE_ZCL1, ">> zcl_is_attr_reported_manuf", (FMT__0)); - rep_info = zb_zcl_find_reporting_info(ep, cluster_id, cluster_role, attr_id); + rep_info = zb_zcl_find_reporting_info_manuf(ep, cluster_id, cluster_role, attr_id, manuf_code); ret = (zb_bool_t)!!rep_info; - TRACE_MSG(TRACE_ZCL1, "<< zcl_is_attr_reported ret %hd", (FMT__H, ret)); + TRACE_MSG(TRACE_ZCL1, "<< zcl_is_attr_reported_manuf ret %hd", (FMT__H, ret)); return ret; } @@ -1560,12 +1636,13 @@ void zb_zcl_report_attr_cmd_handler(zb_uint8_t param) (FMT__H_H, rep_attr_req->attr_id, rep_attr_req->attr_type)); /* inform ZCL that report is received to prevent timeout alarm */ - zb_zcl_report_received( + zb_zcl_report_received_manuf( ZB_ZCL_PARSED_HDR_SHORT_DATA(&cmd_info).src_endpoint, cmd_info.cluster_id, (cmd_info.cmd_direction == ZB_ZCL_FRAME_DIRECTION_TO_SRV) ? ZB_ZCL_CLUSTER_SERVER_ROLE : ZB_ZCL_CLUSTER_CLIENT_ROLE, - rep_attr_req->attr_id); + rep_attr_req->attr_id, + (cmd_info.is_manuf_specific) ? cmd_info.manuf_specific : ZB_ZCL_NON_MANUFACTURER_SPECIFIC); if (ZCL_CTX().report_attr_cb) { diff --git a/zboss/production/src/zcl/zcl_temp_measurement.c b/zboss/production/src/zcl/zcl_temp_measurement.c index 0b42fc6051..66f3558280 100644 --- a/zboss/production/src/zcl/zcl_temp_measurement.c +++ b/zboss/production/src/zcl/zcl_temp_measurement.c @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2020 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -52,7 +52,7 @@ #include "zcl/zb_zcl_common.h" zb_ret_t check_value_temp_measurement_server(zb_uint16_t attr_id, zb_uint8_t endpoint, zb_uint8_t *value); -void zb_zcl_temp_measurement_write_attr_hook_server(zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *new_value); +void zb_zcl_temp_measurement_write_attr_hook_server(zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *new_value, zb_uint16_t manuf_code); void zb_zcl_temp_measurement_init_server() { @@ -137,13 +137,14 @@ zb_ret_t check_value_temp_measurement_server(zb_uint16_t attr_id, zb_uint8_t end } void zb_zcl_temp_measurement_write_attr_hook_server( - zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *new_value) + zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *new_value, zb_uint16_t manuf_code) { - ZVUNUSED(new_value); + ZVUNUSED(new_value); ZVUNUSED(endpoint); + ZVUNUSED(manuf_code); - TRACE_MSG(TRACE_ZCL1, ">> zb_zcl_temp_measurement_write_attr_hook endpoint %hd, attr_id %d", - (FMT__H_D, endpoint, attr_id)); + TRACE_MSG(TRACE_ZCL1, ">> zb_zcl_temp_measurement_write_attr_hook endpoint %hd, attr_id 0x%x, manuf_code 0x%x", + (FMT__H_D_D, endpoint, attr_id, manuf_code)); if (attr_id == ZB_ZCL_ATTR_TEMP_MEASUREMENT_VALUE_ID) { diff --git a/zboss/production/src/zcl/zcl_time.c b/zboss/production/src/zcl/zcl_time.c index 1ed91c21a1..44e20dfb13 100644 --- a/zboss/production/src/zcl/zcl_time.c +++ b/zboss/production/src/zcl/zcl_time.c @@ -1,7 +1,7 @@ /* * ZBOSS Zigbee 3.0 * - * Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA. + * Copyright (c) 2012-2024 DSR Corporation, Denver CO, USA. * www.dsr-zboss.com * www.dsr-corporation.com * All rights reserved. @@ -53,7 +53,7 @@ #define ZB_ZCL_TIME_SERVER_SYNCHRONIZATION_TIMEOUT_SECONDS 100 zb_ret_t check_value_time_server(zb_uint16_t attr_id, zb_uint8_t endpoint, zb_uint8_t *value); -void zb_zcl_time_write_attr_hook_server(zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *new_value); +void zb_zcl_time_write_attr_hook_server(zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *new_value, zb_uint16_t manuf_code); #ifdef THAT_CB_IS_NEVER_USED_CAUSING_WARNING static zb_zcl_time_set_real_time_clock_t zb_zcl_set_real_time_clock_cb; @@ -396,7 +396,7 @@ static zb_int32_t zb_zcl_color_control_getS32(zb_uint8_t endpoint, zb_uint16_t a } /** @brief Hook on Write attribute */ -void zb_zcl_time_write_attr_hook_server(zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *new_value) +void zb_zcl_time_write_attr_hook_server(zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *new_value, zb_uint16_t manuf_code) { zb_zcl_attr_t* attr_desc; zb_uint32_t @@ -408,8 +408,10 @@ void zb_zcl_time_write_attr_hook_server(zb_uint8_t endpoint, zb_uint16_t attr_id zb_bool_t update_standard_time = ZB_FALSE; zb_bool_t update_local_time = ZB_FALSE; - TRACE_MSG(TRACE_ZCL1, "> zb_zcl_time_write_attr_hook_server endpoint %hx attr_id %d", - (FMT__H_D, endpoint, attr_id)); + TRACE_MSG(TRACE_ZCL1, "> zb_zcl_time_write_attr_hook_server endpoint %hx attr_id 0x%x, manuf_code 0x%x", + (FMT__H_D_D, endpoint, attr_id, manuf_code)); + + ZVUNUSED(manuf_code); switch (attr_id) { diff --git a/zboss/production/trace/lib/cortex-m33/hard-float/libgppb.a b/zboss/production/trace/lib/cortex-m33/hard-float/libgppb.a index 06d9eb1baf..48b3d38021 100644 Binary files a/zboss/production/trace/lib/cortex-m33/hard-float/libgppb.a and b/zboss/production/trace/lib/cortex-m33/hard-float/libgppb.a differ diff --git a/zboss/production/trace/lib/cortex-m33/hard-float/libncp-dev.a b/zboss/production/trace/lib/cortex-m33/hard-float/libncp-dev.a index d2286e33ac..4f82b29093 100644 Binary files a/zboss/production/trace/lib/cortex-m33/hard-float/libncp-dev.a and b/zboss/production/trace/lib/cortex-m33/hard-float/libncp-dev.a differ diff --git a/zboss/production/trace/lib/cortex-m33/hard-float/libncp-dev.ed.a b/zboss/production/trace/lib/cortex-m33/hard-float/libncp-dev.ed.a index f6d62cd13e..13920a1a9b 100644 Binary files a/zboss/production/trace/lib/cortex-m33/hard-float/libncp-dev.ed.a and b/zboss/production/trace/lib/cortex-m33/hard-float/libncp-dev.ed.a differ diff --git a/zboss/production/trace/lib/cortex-m33/hard-float/libzboss.a b/zboss/production/trace/lib/cortex-m33/hard-float/libzboss.a index 6cbfbcac0f..d51c1c1e58 100644 Binary files a/zboss/production/trace/lib/cortex-m33/hard-float/libzboss.a and b/zboss/production/trace/lib/cortex-m33/hard-float/libzboss.a differ diff --git a/zboss/production/trace/lib/cortex-m33/hard-float/libzboss.ed.a b/zboss/production/trace/lib/cortex-m33/hard-float/libzboss.ed.a index f65fb83c5c..399c672d37 100644 Binary files a/zboss/production/trace/lib/cortex-m33/hard-float/libzboss.ed.a and b/zboss/production/trace/lib/cortex-m33/hard-float/libzboss.ed.a differ diff --git a/zboss/production/trace/lib/cortex-m4/hard-float/libgppb.a b/zboss/production/trace/lib/cortex-m4/hard-float/libgppb.a index c3d08fd4ac..28d105d7f9 100644 Binary files a/zboss/production/trace/lib/cortex-m4/hard-float/libgppb.a and b/zboss/production/trace/lib/cortex-m4/hard-float/libgppb.a differ diff --git a/zboss/production/trace/lib/cortex-m4/hard-float/libncp-dev.a b/zboss/production/trace/lib/cortex-m4/hard-float/libncp-dev.a index aa72461c38..e7a87d5aaa 100644 Binary files a/zboss/production/trace/lib/cortex-m4/hard-float/libncp-dev.a and b/zboss/production/trace/lib/cortex-m4/hard-float/libncp-dev.a differ diff --git a/zboss/production/trace/lib/cortex-m4/hard-float/libncp-dev.ed.a b/zboss/production/trace/lib/cortex-m4/hard-float/libncp-dev.ed.a index 3e0b581143..1b622d280d 100644 Binary files a/zboss/production/trace/lib/cortex-m4/hard-float/libncp-dev.ed.a and b/zboss/production/trace/lib/cortex-m4/hard-float/libncp-dev.ed.a differ diff --git a/zboss/production/trace/lib/cortex-m4/hard-float/libzboss.a b/zboss/production/trace/lib/cortex-m4/hard-float/libzboss.a index 1cbdff53e8..9ebe7ffefd 100644 Binary files a/zboss/production/trace/lib/cortex-m4/hard-float/libzboss.a and b/zboss/production/trace/lib/cortex-m4/hard-float/libzboss.a differ diff --git a/zboss/production/trace/lib/cortex-m4/hard-float/libzboss.ed.a b/zboss/production/trace/lib/cortex-m4/hard-float/libzboss.ed.a index b541bc96da..017dcf4a02 100644 Binary files a/zboss/production/trace/lib/cortex-m4/hard-float/libzboss.ed.a and b/zboss/production/trace/lib/cortex-m4/hard-float/libzboss.ed.a differ