-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Refine the laundry-washer-control server implementation and add lau…
…ndry-washer-controls-delegate-impl (#28264) * * Refine the laundry-washer-control server implementation * Add laundry-washer-controls-delegate-impl Signed-off-by: Chin-Ran Lo <[email protected]> * Restyled by whitespace * Restyled by clang-format * Restyled by gn * Update src/app/clusters/laundry-washer-controls-server/laundry-washer-controls-delegate.h Co-authored-by: Boris Zbarsky <[email protected]> * Update examples/all-clusters-app/all-clusters-common/include/laundry-washer-controls-delegate-impl.h Co-authored-by: Boris Zbarsky <[email protected]> * * Remove the unused code and refine the comment Signed-off-by: Chin-Ran Lo <[email protected]> * Update examples/all-clusters-app/all-clusters-common/include/laundry-washer-controls-delegate-impl.h Co-authored-by: Arkadiusz Bokowy <[email protected]> * Restyled by clang-format --------- Signed-off-by: Chin-Ran Lo <[email protected]> Co-authored-by: Restyled.io <[email protected]> Co-authored-by: Boris Zbarsky <[email protected]> Co-authored-by: Arkadiusz Bokowy <[email protected]>
- Loading branch information
Showing
7 changed files
with
136 additions
and
50 deletions.
There are no files selected for viewing
55 changes: 55 additions & 0 deletions
55
...ples/all-clusters-app/all-clusters-common/include/laundry-washer-controls-delegate-impl.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
/* | ||
* | ||
* Copyright (c) 2023 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/laundry-washer-controls-server/laundry-washer-controls-delegate.h> | ||
#include <app/clusters/laundry-washer-controls-server/laundry-washer-controls-server.h> | ||
#include <app/util/af.h> | ||
#include <app/util/config.h> | ||
#include <cstring> | ||
|
||
namespace chip { | ||
namespace app { | ||
namespace Clusters { | ||
namespace LaundryWasherControls { | ||
|
||
/** | ||
* The application delegate to statically define the options. | ||
*/ | ||
|
||
class LaundryWasherControlDelegate : public Delegate | ||
{ | ||
static const CharSpan spinSpeedsNameOptions[]; | ||
static const NumberOfRinsesEnum supportRinsesOptions[]; | ||
static LaundryWasherControlDelegate instance; | ||
|
||
public: | ||
CHIP_ERROR GetSpinSpeedAtIndex(size_t index, MutableCharSpan & spinSpeed); | ||
CHIP_ERROR GetSupportedRinseAtIndex(size_t index, NumberOfRinsesEnum & supportedRinse); | ||
|
||
LaundryWasherControlDelegate() = default; | ||
~LaundryWasherControlDelegate() = default; | ||
|
||
static inline LaundryWasherControlDelegate & getLaundryWasherControlDelegate() { return instance; } | ||
}; | ||
|
||
} // namespace LaundryWasherControls | ||
} // namespace Clusters | ||
} // namespace app | ||
} // namespace chip |
56 changes: 56 additions & 0 deletions
56
examples/all-clusters-app/all-clusters-common/src/laundry-washer-controls-delegate-impl.cpp
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
/* | ||
* | ||
* Copyright (c) 2023 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. | ||
*/ | ||
#include <app/clusters/laundry-washer-controls-server/laundry-washer-controls-server.h> | ||
#include <app/util/config.h> | ||
#include <laundry-washer-controls-delegate-impl.h> | ||
|
||
using namespace chip; | ||
using namespace chip::app::Clusters::LaundryWasherControls; | ||
|
||
const CharSpan LaundryWasherControlDelegate::spinSpeedsNameOptions[] = { | ||
CharSpan::fromCharString("Off"), | ||
CharSpan::fromCharString("Low"), | ||
CharSpan::fromCharString("Medium"), | ||
CharSpan::fromCharString("High"), | ||
}; | ||
|
||
const NumberOfRinsesEnum LaundryWasherControlDelegate::supportRinsesOptions[] = { | ||
NumberOfRinsesEnum::kNormal, | ||
NumberOfRinsesEnum::kExtra, | ||
}; | ||
|
||
LaundryWasherControlDelegate LaundryWasherControlDelegate::instance; | ||
|
||
CHIP_ERROR LaundryWasherControlDelegate::GetSpinSpeedAtIndex(size_t index, MutableCharSpan & spinSpeed) | ||
{ | ||
if (index >= ArraySize(spinSpeedsNameOptions)) | ||
{ | ||
return CHIP_ERROR_PROVIDER_LIST_EXHAUSTED; | ||
} | ||
return chip::CopyCharSpanToMutableCharSpan(LaundryWasherControlDelegate::spinSpeedsNameOptions[index], spinSpeed); | ||
} | ||
|
||
CHIP_ERROR LaundryWasherControlDelegate::GetSupportedRinseAtIndex(size_t index, NumberOfRinsesEnum & supportedRinse) | ||
{ | ||
if (index >= ArraySize(supportRinsesOptions)) | ||
{ | ||
return CHIP_ERROR_PROVIDER_LIST_EXHAUSTED; | ||
} | ||
supportedRinse = LaundryWasherControlDelegate::supportRinsesOptions[index]; | ||
return CHIP_NO_ERROR; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters