nRF Connect SDK API 3.3.99
Loading...
Searching...
No Matches
generic_switch.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2023 Nordic Semiconductor ASA
3 *
4 * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5 */
6
7#pragma once
8
10
12public:
13 GenericSwitchDevice(const char *uniqueID, const char *nodeLabel);
14
16 CHIP_ERROR HandleRead(chip::ClusterId clusterId, chip::AttributeId attributeId, uint8_t *buffer,
17 uint16_t maxReadLength) override;
18 CHIP_ERROR HandleAttributeChange(chip::ClusterId clusterId, chip::AttributeId attributeId, void *data,
19 size_t dataSize) override;
20 CHIP_ERROR HandleWrite(chip::ClusterId clusterId, chip::AttributeId attributeId, uint8_t *buffer,
21 size_t size) override
22 {
23 if (clusterId != chip::app::Clusters::BridgedDeviceBasicInformation::Id) {
24 return CHIP_ERROR_INVALID_ARGUMENT;
25 }
26
27 switch (attributeId) {
28 case chip::app::Clusters::BridgedDeviceBasicInformation::Attributes::NodeLabel::Id:
29 return HandleWriteDeviceBasicInformation(clusterId, attributeId, buffer, size);
30 default:
31 return CHIP_ERROR_INVALID_ARGUMENT;
32 }
33 return CHIP_NO_ERROR;
34 };
35
36private:
37 CHIP_ERROR HandleReadSwitch(chip::AttributeId attributeId, uint8_t *buffer, uint16_t maxReadLength);
38
39 static constexpr uint16_t GetSwitchClusterRevision() { return 2; }
40 /* According to the Matter 1.2 specification: Bit 1 -> MomentarySwitch in the Switch Cluster section. */
41 static constexpr uint32_t GetSwitchClusterFeatureMap() { return 2; }
42 static constexpr uint32_t GetSwitchClusterNumberOfPositions() { return 2; }
43
44 uint8_t mCurrentPosition{};
45};
uint16_t GetDeviceType() const override
Definition generic_switch.h:15
GenericSwitchDevice(const char *uniqueID, const char *nodeLabel)
CHIP_ERROR HandleRead(chip::ClusterId clusterId, chip::AttributeId attributeId, uint8_t *buffer, uint16_t maxReadLength) override
CHIP_ERROR HandleWrite(chip::ClusterId clusterId, chip::AttributeId attributeId, uint8_t *buffer, size_t size) override
Definition generic_switch.h:20
CHIP_ERROR HandleAttributeChange(chip::ClusterId clusterId, chip::AttributeId attributeId, void *data, size_t dataSize) override
Definition generic_switch.h:11
CHIP_ERROR HandleWriteDeviceBasicInformation(chip::ClusterId clusterId, chip::AttributeId attributeId, void *data, size_t dataSize)
@ GenericSwitch
Definition matter_bridged_device.h:93
Definition matter_bridged_device.h:85