Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@

import("//build_overrides/build.gni")
import("//build_overrides/chip.gni")
import("${chip_root}/src/platform/device.gni")

source_set("root-node") {
sources = [
Expand All @@ -38,6 +39,10 @@ source_set("root-node") {
"${chip_root}/src/lib/support",
"${chip_root}/zzz_generated/app-common/devices/",
]

if (chip_enable_ota_requestor) {
public_deps += [ "${chip_root}/zzz_generated/app-common/clusters/OtaSoftwareUpdateProvider:ids" ]
}
}

source_set("wifi") {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,25 @@
#include <lib/support/CodeUtils.h>
#include <platform/CHIPDeviceLayer.h>

#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR
#include <clusters/OtaSoftwareUpdateProvider/ClusterId.h>
#endif // CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR

using namespace chip;
using namespace chip::app;
using namespace chip::app::Clusters;
using namespace chip::DeviceLayer;
namespace chip {
namespace app {

#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR
CHIP_ERROR RootNode::ClientClusters(ReadOnlyBufferBuilder<ClusterId> & out) const
{
static constexpr ClusterId kClientClusters[] = { OtaSoftwareUpdateProvider::Id };
return out.ReferenceExisting(Span<const ClusterId>(kClientClusters));
}
#endif // CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR

CHIP_ERROR RootNode::Register(EndpointId endpointId, CodeDrivenDataModelProvider & provider, EndpointComposition composition)
{
composition.pattern = DataModel::EndpointCompositionPattern::kFullFamily;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,22 +67,30 @@ class RootNode : public SingleEndpoint
#endif // CHIP_CONFIG_TERMS_AND_CONDITIONS_REQUIRED
};

RootNode(const Context & context) :
SingleEndpoint(Span<const DataModel::DeviceTypeEntry>(&Device::Type::kRootNode, 1)), mContext(context)
{}
RootNode(const Context & context) : SingleEndpoint(Span<const DataModel::DeviceTypeEntry>(kDeviceTypes)), mContext(context) {}
~RootNode() override = default;

CHIP_ERROR Register(EndpointId endpoint, CodeDrivenDataModelProvider & provider, EndpointComposition composition = {}) override;
void Unregister(CodeDrivenDataModelProvider & provider) override;

Clusters::BasicInformationCluster & BasicInformation() { return mBasicInformationCluster.Cluster(); }

#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR
CHIP_ERROR ClientClusters(ReadOnlyBufferBuilder<ClusterId> & out) const override;
#endif // CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR

protected:
Context mContext;

LazyRegisteredServerCluster<Clusters::GeneralCommissioningCluster> mGeneralCommissioningCluster;

private:
#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR
static constexpr DataModel::DeviceTypeEntry kDeviceTypes[] = { Device::Type::kRootNode, Device::Type::kOtaRequestor };
#else
static constexpr DataModel::DeviceTypeEntry kDeviceTypes[] = { Device::Type::kRootNode };
#endif // CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR

LazyRegisteredServerCluster<Clusters::BasicInformationCluster> mBasicInformationCluster;
LazyRegisteredServerCluster<Clusters::AdministratorCommissioningWithBasicCommissioningWindowCluster>
mAdministratorCommissioningCluster;
Expand Down
Loading