blob: 37fdbd59fad8f00da28a63e58d368ca0416efcb0 [file] [log] [blame]
Boris Zbarsky4dd52302020-07-21 12:20:49 -04001/**
2 *
3 * Copyright (c) 2020 Project CHIP Authors
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18/**
19 *
20 * Copyright (c) 2020 Silicon Labs
21 *
22 * Licensed under the Apache License, Version 2.0 (the "License");
23 * you may not use this file except in compliance with the License.
24 * You may obtain a copy of the License at
25 *
26 * http://www.apache.org/licenses/LICENSE-2.0
27 *
28 * Unless required by applicable law or agreed to in writing, software
29 * distributed under the License is distributed on an "AS IS" BASIS,
30 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
31 * See the License for the specific language governing permissions and
32 * limitations under the License.
33 */
34/***************************************************************************/
35/**
36 * @file
37 * @brief This file contains the definitions for the
38 *attribute table, its sizes, count, and API.
39 *******************************************************************************
40 ******************************************************************************/
41
Vivien Nicolase3840942020-11-11 14:54:39 +010042#pragma once
Boris Zbarsky4dd52302020-07-21 12:20:49 -040043
Michael Spanga08f8262021-04-23 18:06:20 -040044#include <app/util/af.h>
Boris Zbarsky4dd52302020-07-21 12:20:49 -040045
46#define ZCL_NULL_ATTRIBUTE_TABLE_INDEX 0xFFFF
47
48// Remote devices writing attributes of local device
Vivien Nicolas8a621692020-11-17 00:08:48 +010049EmberAfStatus emberAfWriteAttributeExternal(chip::EndpointId endpoint, chip::ClusterId cluster, chip::AttributeId attributeID,
Boris Zbarsky4dd52302020-07-21 12:20:49 -040050 uint8_t mask, uint16_t manufacturerCode, uint8_t * dataPtr,
51 EmberAfAttributeType dataType);
52
Vivien Nicolas8a621692020-11-17 00:08:48 +010053void emberAfRetrieveAttributeAndCraftResponse(chip::EndpointId endpoint, chip::ClusterId clusterId, chip::AttributeId attrId,
Boris Zbarsky4f757f72020-11-05 21:06:08 -050054 uint8_t mask, uint16_t manufacturerCode, uint16_t readLength);
Vivien Nicolas8a621692020-11-17 00:08:48 +010055EmberAfStatus emberAfAppendAttributeReportFields(chip::EndpointId endpoint, chip::ClusterId clusterId,
56 chip::AttributeId attributeId, uint8_t mask, uint8_t * buffer, uint8_t bufLen,
Boris Zbarsky4f757f72020-11-05 21:06:08 -050057 uint8_t * bufIndex);
Boris Zbarsky4dd52302020-07-21 12:20:49 -040058void emberAfPrintAttributeTable(void);
59
Vivien Nicolas8a621692020-11-17 00:08:48 +010060bool emberAfReadSequentialAttributesAddToResponse(chip::EndpointId endpoint, chip::ClusterId clusterId,
61 chip::AttributeId startAttributeId, uint8_t mask, uint16_t manufacturerCode,
Boris Zbarsky4f757f72020-11-05 21:06:08 -050062 uint8_t maxAttributeIds, bool includeAccessControl);
Boris Zbarsky4dd52302020-07-21 12:20:49 -040063
Vivien Nicolas8a621692020-11-17 00:08:48 +010064EmberAfStatus emAfWriteAttribute(chip::EndpointId endpoint, chip::ClusterId cluster, chip::AttributeId attributeID, uint8_t mask,
Boris Zbarsky4dd52302020-07-21 12:20:49 -040065 uint16_t manufacturerCode, uint8_t * data, EmberAfAttributeType dataType,
66 bool overrideReadOnlyAndDataType, bool justTest);
67
Vivien Nicolas8a621692020-11-17 00:08:48 +010068EmberAfStatus emAfReadAttribute(chip::EndpointId endpoint, chip::ClusterId cluster, chip::AttributeId attributeID, uint8_t mask,
Boris Zbarsky4dd52302020-07-21 12:20:49 -040069 uint16_t manufacturerCode, uint8_t * dataPtr, uint16_t readLength, EmberAfAttributeType * dataType);