Skip to content
Draft
Show file tree
Hide file tree
Changes from 5 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
26 changes: 26 additions & 0 deletions examples/rangehood-app/rangehood-app-common/BUILD.gn
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Copyright (c) 2025 Project CHIP Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import("//build_overrides/chip.gni")
import("${chip_root}/examples/common/pigweed/pigweed_rpcs.gni")
import("${chip_root}/src/app/chip_data_model.gni")

config("config") {
include_dirs = [ "common/include" ]
}

chip_data_model("rangehood-app-common") {
zap_file = "rangehood-app.zap"
is_server = true
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
/*
*
* Copyright (c) 2024 Project CHIP Authors
* Copyright (c) 2019 Google LLC.
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

#pragma once

#include <stdbool.h>
#include <stdint.h>

#include <app/clusters/fan-control-server/fan-control-delegate.h>
#include <app/clusters/fan-control-server/fan-control-server.h>
#include <lib/core/CHIPError.h>

using namespace chip;
using namespace chip::app;
using namespace chip::app::Clusters::FanControl;
using Protocols::InteractionModel::Status;

namespace chip {
namespace app {
namespace Clusters {
namespace ExtractorHood {

class FanDelegate : public FanControl::Delegate
{
public:
/**
* @brief
* This method handles the step command. This will happen as fast as possible.
*
* @param[in] aDirection the direction in which the speed should step
* @param[in] aWrap whether the speed should wrap or not
* @param[in] aLowestOff whether the device should consider the lowest setting as off
*
* @return Success On success.
* @return Other Value indicating it failed to execute the command.
*/
Status HandleStep(StepDirectionEnum aDirection, bool aWrap, bool aLowestOff) override;

FanDelegate(EndpointId aEndpoint)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ideally constructor should be before other functions

: FanControl::Delegate(aEndpoint), mEndpoint(aEndpoint) {}

protected:
EndpointId mEndpoint = 0;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

by default endpoint should be invalid endpoint

};
class ExtractorHoodEndpoint
{
public:
ExtractorHoodEndpoint(EndpointId endpointId) : mEndpointId(endpointId), mFanDelegate(mEndpointId) {}

/**
* @brief Initialize the ExtractorHood endpoint.
*/
CHIP_ERROR Init();

// Accessor for registering the fan control delegate
FanDelegate * GetFanDelegate() { return &mFanDelegate; }

private:
EndpointId mEndpointId = kInvalidEndpointId;
FanDelegate mFanDelegate;
};

} // namespace ExtractorHood
} // namespace Clusters
} // namespace app
} // namespace chip
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
/*
*
* Copyright (c) 2025 Project CHIP Authors
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

#pragma once

#include <app/clusters/on-off-server/on-off-server.h>
#include <lib/core/CHIPError.h>

namespace chip {
namespace app {
namespace Clusters {
namespace Light {

class LightEndpoint
{
public:
LightEndpoint(EndpointId endpointId) : mEndpointId(endpointId) {}

/**
* @brief Initialize the Light endpoint.
*/
CHIP_ERROR Init();

/**
* @brief Handle the "on/off" command for the Light.
*/
bool GetOnOffState();

/**
* @brief Set On/Off state for the Light.
*/
void SetOnOffState(bool state);

private:
EndpointId mEndpointId = kInvalidEndpointId;
};

} // namespace Light
} // namespace Clusters
} // namespace app
} // namespace chip
Loading
Loading