blob: f4514470b3e6302799e224691b87ace888966afc [file] [log] [blame]
/*
*
* Copyright (c) 2022 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 "controller/InvokeInteraction.h"
#include "controller/ReadInteraction.h"
#include <app/clusters/bindings/bindings.h>
#if CONFIG_ENABLE_CHIP_SHELL
#include "lib/shell/Engine.h"
#include "lib/shell/commands/Help.h"
#endif // ENABLE_CHIP_SHELL
using namespace chip;
using namespace chip::app;
#if CONFIG_ENABLE_CHIP_SHELL
using Shell::Engine;
using Shell::shell_command_t;
using Shell::streamer_get;
using Shell::streamer_printf;
Engine sShellSwitchColorControlSubCommands;
Engine sShellSwitchColorControlReadSubCommands;
Engine sShellSwitchGroupsColorControlSubCommands;
#endif // defined(ENABLE_CHIP_SHELL)
void ProcessColorControlUnicastBindingRead(BindingCommandData * data, const EmberBindingTableEntry & binding,
OperationalDeviceProxy * peer_device)
{
auto onSuccess = [](const ConcreteDataAttributePath & attributePath, const auto & dataResponse) {
ChipLogProgress(NotSpecified, "Read ColorControl attribute succeeds");
};
auto onFailure = [](const ConcreteDataAttributePath * attributePath, CHIP_ERROR error) {
ChipLogError(NotSpecified, "Read ColorControl attribute failed: %" CHIP_ERROR_FORMAT, error.Format());
};
VerifyOrDie(peer_device != nullptr && peer_device->ConnectionReady());
switch (data->attributeId)
{
case Clusters::ColorControl::Attributes::AttributeList::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::AttributeList::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::CurrentHue::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::CurrentHue::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::CurrentSaturation::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::CurrentSaturation::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::RemainingTime::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::RemainingTime::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::CurrentX::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::CurrentX::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::CurrentY::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::CurrentY::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::DriftCompensation::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::DriftCompensation::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::CompensationText::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::CompensationText::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::ColorTemperatureMireds::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::ColorTemperatureMireds::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::ColorMode::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::ColorMode::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::Options::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::Options::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::NumberOfPrimaries::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::NumberOfPrimaries::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::Primary1X::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::Primary1X::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::Primary1Y::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::Primary1Y::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::Primary1Intensity::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::Primary1Intensity::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::Primary2X::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::Primary2X::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::Primary2Y::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::Primary2Y::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::Primary2Intensity::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::Primary2Intensity::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::Primary3X::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::Primary3X::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::Primary3Y::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::Primary3Y::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::Primary3Intensity::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::Primary3Intensity::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::Primary4X::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::Primary4X::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::Primary4Y::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::Primary4Y::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::Primary4Intensity::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::Primary4Intensity::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::Primary5X::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::Primary5X::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::Primary5Y::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::Primary5Y::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::Primary5Intensity::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::Primary5Intensity::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::Primary6X::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::Primary6X::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::Primary6Y::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::Primary6Y::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::Primary6Intensity::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::Primary6Intensity::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::WhitePointX::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::WhitePointX::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::WhitePointY::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::WhitePointY::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::ColorPointRX::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::ColorPointRX::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::ColorPointRY::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::ColorPointRY::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::ColorPointRIntensity::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::ColorPointRIntensity::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::ColorPointGX::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::ColorPointGX::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::ColorPointGY::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::ColorPointGY::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::ColorPointGIntensity::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::ColorPointGIntensity::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::ColorPointBX::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::ColorPointBX::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::ColorPointBY::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::ColorPointBY::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::ColorPointBIntensity::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::ColorPointBIntensity::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::EnhancedCurrentHue::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::EnhancedCurrentHue::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::EnhancedColorMode::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::EnhancedColorMode::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::ColorLoopActive::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::ColorLoopActive::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::ColorLoopDirection::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::ColorLoopDirection::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::ColorLoopTime::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::ColorLoopTime::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::ColorLoopStartEnhancedHue::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::ColorLoopStartEnhancedHue::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::ColorLoopStoredEnhancedHue::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::ColorLoopStoredEnhancedHue::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::ColorCapabilities::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::ColorCapabilities::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::ColorTempPhysicalMinMireds::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::ColorTempPhysicalMinMireds::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::ColorTempPhysicalMaxMireds::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::ColorTempPhysicalMaxMireds::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::CoupleColorTempToLevelMinMireds::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::CoupleColorTempToLevelMinMireds::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
case Clusters::ColorControl::Attributes::StartUpColorTemperatureMireds::Id:
Controller::ReadAttribute<Clusters::ColorControl::Attributes::StartUpColorTemperatureMireds::TypeInfo>(
peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote, onSuccess, onFailure);
break;
}
}
void ProcessColorControlUnicastBindingCommand(BindingCommandData * data, const EmberBindingTableEntry & binding,
OperationalDeviceProxy * peer_device)
{
auto onSuccess = [](const ConcreteCommandPath & commandPath, const StatusIB & status, const auto & dataResponse) {
ChipLogProgress(NotSpecified, "ColorControl command succeeds");
};
auto onFailure = [](CHIP_ERROR error) {
ChipLogError(NotSpecified, "ColorControl command failed: %" CHIP_ERROR_FORMAT, error.Format());
};
VerifyOrDie(peer_device != nullptr && peer_device->ConnectionReady());
Clusters::ColorControl::Commands::MoveToHue::Type moveToHueCommand;
Clusters::ColorControl::Commands::MoveHue::Type moveHueCommand;
Clusters::ColorControl::Commands::StepHue::Type stepHueCommand;
Clusters::ColorControl::Commands::MoveToSaturation::Type moveToSaturationCommand;
Clusters::ColorControl::Commands::MoveSaturation::Type moveSaturationCommand;
Clusters::ColorControl::Commands::StepSaturation::Type stepSaturationCommand;
Clusters::ColorControl::Commands::MoveToHueAndSaturation::Type moveToHueAndSaturationCommand;
Clusters::ColorControl::Commands::MoveToColor::Type moveToColorCommand;
Clusters::ColorControl::Commands::MoveColor::Type moveColorCommand;
Clusters::ColorControl::Commands::StepColor::Type stepColorCommand;
Clusters::ColorControl::Commands::MoveToColorTemperature::Type moveToColorTemperatureCommand;
Clusters::ColorControl::Commands::EnhancedMoveToHue::Type enhancedMoveToHueCommand;
Clusters::ColorControl::Commands::EnhancedMoveHue::Type enhancedMoveHueCommand;
Clusters::ColorControl::Commands::EnhancedStepHue::Type enhancedStepHueCommand;
Clusters::ColorControl::Commands::EnhancedMoveToHueAndSaturation::Type enhancedMoveToHueAndSaturationCommand;
Clusters::ColorControl::Commands::ColorLoopSet::Type colorLoopSetCommand;
Clusters::ColorControl::Commands::StopMoveStep::Type stopMoveStepCommand;
Clusters::ColorControl::Commands::MoveColorTemperature::Type moveColorTemperatureCommand;
Clusters::ColorControl::Commands::StepColorTemperature::Type stepColorTemperatureCommand;
switch (data->commandId)
{
case Clusters::ColorControl::Commands::MoveToHue::Id:
moveToHueCommand.hue = static_cast<uint8_t>(data->args[0]);
moveToHueCommand.direction = static_cast<EmberAfHueDirection>(data->args[1]);
moveToHueCommand.transitionTime = static_cast<uint16_t>(data->args[2]);
moveToHueCommand.optionsMask = static_cast<uint8_t>(data->args[3]);
moveToHueCommand.optionsOverride = static_cast<uint8_t>(data->args[4]);
Controller::InvokeCommandRequest(peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote,
moveToHueCommand, onSuccess, onFailure);
break;
case Clusters::ColorControl::Commands::MoveHue::Id:
moveHueCommand.moveMode = static_cast<EmberAfHueMoveMode>(data->args[0]);
moveHueCommand.rate = static_cast<uint8_t>(data->args[1]);
moveHueCommand.optionsMask = static_cast<uint8_t>(data->args[2]);
moveHueCommand.optionsOverride = static_cast<uint8_t>(data->args[3]);
Controller::InvokeCommandRequest(peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote,
moveHueCommand, onSuccess, onFailure);
break;
case Clusters::ColorControl::Commands::StepHue::Id:
stepHueCommand.stepMode = static_cast<EmberAfHueStepMode>(data->args[0]);
stepHueCommand.stepSize = static_cast<uint8_t>(data->args[1]);
stepHueCommand.transitionTime = static_cast<uint8_t>(data->args[2]);
stepHueCommand.optionsMask = static_cast<uint8_t>(data->args[3]);
stepHueCommand.optionsOverride = static_cast<uint8_t>(data->args[4]);
Controller::InvokeCommandRequest(peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote,
stepHueCommand, onSuccess, onFailure);
break;
case Clusters::ColorControl::Commands::MoveToSaturation::Id:
moveToSaturationCommand.saturation = static_cast<uint8_t>(data->args[0]);
moveToSaturationCommand.transitionTime = static_cast<uint16_t>(data->args[1]);
moveToSaturationCommand.optionsMask = static_cast<uint8_t>(data->args[2]);
moveToSaturationCommand.optionsOverride = static_cast<uint8_t>(data->args[3]);
Controller::InvokeCommandRequest(peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote,
moveToSaturationCommand, onSuccess, onFailure);
break;
case Clusters::ColorControl::Commands::MoveSaturation::Id:
moveSaturationCommand.moveMode = static_cast<EmberAfSaturationMoveMode>(data->args[0]);
moveSaturationCommand.rate = static_cast<uint8_t>(data->args[1]);
moveSaturationCommand.optionsMask = static_cast<uint8_t>(data->args[2]);
moveSaturationCommand.optionsOverride = static_cast<uint8_t>(data->args[3]);
Controller::InvokeCommandRequest(peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote,
moveSaturationCommand, onSuccess, onFailure);
break;
case Clusters::ColorControl::Commands::StepSaturation::Id:
stepSaturationCommand.stepMode = static_cast<EmberAfSaturationStepMode>(data->args[0]);
stepSaturationCommand.stepSize = static_cast<uint8_t>(data->args[1]);
stepSaturationCommand.transitionTime = static_cast<uint8_t>(data->args[2]);
stepSaturationCommand.optionsMask = static_cast<uint8_t>(data->args[3]);
stepSaturationCommand.optionsOverride = static_cast<uint8_t>(data->args[4]);
Controller::InvokeCommandRequest(peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote,
stepSaturationCommand, onSuccess, onFailure);
break;
case Clusters::ColorControl::Commands::MoveToHueAndSaturation::Id:
moveToHueAndSaturationCommand.hue = static_cast<uint8_t>(data->args[0]);
moveToHueAndSaturationCommand.saturation = static_cast<uint8_t>(data->args[1]);
moveToHueAndSaturationCommand.transitionTime = static_cast<uint16_t>(data->args[2]);
moveToHueAndSaturationCommand.optionsMask = static_cast<uint8_t>(data->args[3]);
moveToHueAndSaturationCommand.optionsOverride = static_cast<uint8_t>(data->args[4]);
Controller::InvokeCommandRequest(peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote,
moveToHueAndSaturationCommand, onSuccess, onFailure);
break;
case Clusters::ColorControl::Commands::MoveToColor::Id:
moveToColorCommand.colorX = static_cast<uint16_t>(data->args[0]);
moveToColorCommand.colorY = static_cast<uint16_t>(data->args[1]);
moveToColorCommand.transitionTime = static_cast<uint16_t>(data->args[2]);
moveToColorCommand.optionsMask = static_cast<uint8_t>(data->args[3]);
moveToColorCommand.optionsOverride = static_cast<uint8_t>(data->args[4]);
Controller::InvokeCommandRequest(peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote,
moveToColorCommand, onSuccess, onFailure);
break;
case Clusters::ColorControl::Commands::MoveColor::Id:
moveColorCommand.rateX = static_cast<uint16_t>(data->args[0]);
moveColorCommand.rateY = static_cast<uint16_t>(data->args[1]);
moveColorCommand.optionsMask = static_cast<uint8_t>(data->args[2]);
moveColorCommand.optionsOverride = static_cast<uint8_t>(data->args[3]);
Controller::InvokeCommandRequest(peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote,
moveColorCommand, onSuccess, onFailure);
break;
case Clusters::ColorControl::Commands::StepColor::Id:
stepColorCommand.stepX = static_cast<uint16_t>(data->args[0]);
stepColorCommand.stepY = static_cast<uint16_t>(data->args[1]);
stepColorCommand.transitionTime = static_cast<uint16_t>(data->args[2]);
stepColorCommand.optionsMask = static_cast<uint8_t>(data->args[3]);
stepColorCommand.optionsOverride = static_cast<uint8_t>(data->args[4]);
Controller::InvokeCommandRequest(peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote,
stepColorCommand, onSuccess, onFailure);
break;
case Clusters::ColorControl::Commands::MoveToColorTemperature::Id:
moveToColorTemperatureCommand.colorTemperature = static_cast<uint16_t>(data->args[0]);
moveToColorTemperatureCommand.transitionTime = static_cast<uint16_t>(data->args[1]);
moveToColorTemperatureCommand.optionsMask = static_cast<uint8_t>(data->args[2]);
moveToColorTemperatureCommand.optionsOverride = static_cast<uint8_t>(data->args[3]);
Controller::InvokeCommandRequest(peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote,
moveToColorTemperatureCommand, onSuccess, onFailure);
break;
case Clusters::ColorControl::Commands::EnhancedMoveToHue::Id:
enhancedMoveToHueCommand.enhancedHue = static_cast<uint16_t>(data->args[0]);
enhancedMoveToHueCommand.direction = static_cast<EmberAfHueDirection>(data->args[1]);
enhancedMoveToHueCommand.transitionTime = static_cast<uint16_t>(data->args[2]);
enhancedMoveToHueCommand.optionsMask = static_cast<uint8_t>(data->args[3]);
enhancedMoveToHueCommand.optionsOverride = static_cast<uint8_t>(data->args[4]);
Controller::InvokeCommandRequest(peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote,
enhancedMoveToHueCommand, onSuccess, onFailure);
break;
case Clusters::ColorControl::Commands::EnhancedMoveHue::Id:
enhancedMoveHueCommand.moveMode = static_cast<EmberAfHueMoveMode>(data->args[0]);
enhancedMoveHueCommand.rate = static_cast<uint16_t>(data->args[1]);
enhancedMoveHueCommand.optionsMask = static_cast<uint8_t>(data->args[2]);
enhancedMoveHueCommand.optionsOverride = static_cast<uint8_t>(data->args[3]);
Controller::InvokeCommandRequest(peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote,
enhancedMoveHueCommand, onSuccess, onFailure);
break;
case Clusters::ColorControl::Commands::EnhancedStepHue::Id:
enhancedStepHueCommand.stepMode = static_cast<EmberAfHueStepMode>(data->args[0]);
enhancedStepHueCommand.stepSize = static_cast<uint16_t>(data->args[1]);
enhancedStepHueCommand.transitionTime = static_cast<uint16_t>(data->args[2]);
enhancedStepHueCommand.optionsMask = static_cast<uint8_t>(data->args[3]);
enhancedStepHueCommand.optionsOverride = static_cast<uint8_t>(data->args[4]);
Controller::InvokeCommandRequest(peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote,
enhancedStepHueCommand, onSuccess, onFailure);
break;
case Clusters::ColorControl::Commands::EnhancedMoveToHueAndSaturation::Id:
enhancedMoveToHueAndSaturationCommand.enhancedHue = static_cast<uint16_t>(data->args[0]);
enhancedMoveToHueAndSaturationCommand.saturation = static_cast<uint8_t>(data->args[1]);
enhancedMoveToHueAndSaturationCommand.transitionTime = static_cast<uint16_t>(data->args[2]);
enhancedMoveToHueAndSaturationCommand.optionsMask = static_cast<uint8_t>(data->args[3]);
enhancedMoveToHueAndSaturationCommand.optionsOverride = static_cast<uint8_t>(data->args[4]);
Controller::InvokeCommandRequest(peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote,
enhancedMoveToHueAndSaturationCommand, onSuccess, onFailure);
break;
case Clusters::ColorControl::Commands::ColorLoopSet::Id:
colorLoopSetCommand.updateFlags =
static_cast<chip::BitMask<chip::app::Clusters::ColorControl::ColorLoopUpdateFlags>>(data->args[0]);
colorLoopSetCommand.action = static_cast<EmberAfColorLoopAction>(data->args[1]);
colorLoopSetCommand.direction = static_cast<EmberAfColorLoopDirection>(data->args[2]);
colorLoopSetCommand.time = static_cast<uint16_t>(data->args[3]);
colorLoopSetCommand.startHue = static_cast<uint16_t>(data->args[4]);
colorLoopSetCommand.optionsMask = static_cast<uint8_t>(data->args[5]);
colorLoopSetCommand.optionsOverride = static_cast<uint8_t>(data->args[6]);
Controller::InvokeCommandRequest(peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote,
colorLoopSetCommand, onSuccess, onFailure);
break;
case Clusters::ColorControl::Commands::StopMoveStep::Id:
stopMoveStepCommand.optionsMask = static_cast<uint8_t>(data->args[0]);
stopMoveStepCommand.optionsOverride = static_cast<uint8_t>(data->args[1]);
Controller::InvokeCommandRequest(peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote,
stopMoveStepCommand, onSuccess, onFailure);
break;
case Clusters::ColorControl::Commands::MoveColorTemperature::Id:
moveColorTemperatureCommand.moveMode = static_cast<EmberAfHueMoveMode>(data->args[0]);
moveColorTemperatureCommand.rate = static_cast<uint16_t>(data->args[1]);
moveColorTemperatureCommand.colorTemperatureMinimumMireds = static_cast<uint16_t>(data->args[2]);
moveColorTemperatureCommand.colorTemperatureMaximumMireds = static_cast<uint16_t>(data->args[3]);
moveColorTemperatureCommand.optionsMask = static_cast<uint8_t>(data->args[4]);
moveColorTemperatureCommand.optionsOverride = static_cast<uint8_t>(data->args[5]);
Controller::InvokeCommandRequest(peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote,
moveColorTemperatureCommand, onSuccess, onFailure);
break;
case Clusters::ColorControl::Commands::StepColorTemperature::Id:
stepColorTemperatureCommand.stepMode = static_cast<EmberAfHueStepMode>(data->args[0]);
stepColorTemperatureCommand.stepSize = static_cast<uint16_t>(data->args[1]);
stepColorTemperatureCommand.transitionTime = static_cast<uint16_t>(data->args[2]);
stepColorTemperatureCommand.colorTemperatureMinimumMireds = static_cast<uint16_t>(data->args[3]);
stepColorTemperatureCommand.colorTemperatureMaximumMireds = static_cast<uint16_t>(data->args[4]);
stepColorTemperatureCommand.optionsMask = static_cast<uint8_t>(data->args[5]);
stepColorTemperatureCommand.optionsOverride = static_cast<uint8_t>(data->args[6]);
Controller::InvokeCommandRequest(peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote,
stepColorTemperatureCommand, onSuccess, onFailure);
break;
}
}
void ProcessColorControlGroupBindingCommand(BindingCommandData * data, const EmberBindingTableEntry & binding)
{
Messaging::ExchangeManager & exchangeMgr = Server::GetInstance().GetExchangeManager();
Clusters::ColorControl::Commands::MoveToHue::Type moveToHueCommand;
Clusters::ColorControl::Commands::MoveHue::Type moveHueCommand;
Clusters::ColorControl::Commands::StepHue::Type stepHueCommand;
Clusters::ColorControl::Commands::MoveToSaturation::Type moveToSaturationCommand;
Clusters::ColorControl::Commands::MoveSaturation::Type moveSaturationCommand;
Clusters::ColorControl::Commands::StepSaturation::Type stepSaturationCommand;
Clusters::ColorControl::Commands::MoveToHueAndSaturation::Type moveToHueAndSaturationCommand;
Clusters::ColorControl::Commands::MoveToColor::Type moveToColorCommand;
Clusters::ColorControl::Commands::MoveColor::Type moveColorCommand;
Clusters::ColorControl::Commands::StepColor::Type stepColorCommand;
Clusters::ColorControl::Commands::MoveToColorTemperature::Type moveToColorTemperatureCommand;
Clusters::ColorControl::Commands::EnhancedMoveToHue::Type enhancedMoveToHueCommand;
Clusters::ColorControl::Commands::EnhancedMoveHue::Type enhancedMoveHueCommand;
Clusters::ColorControl::Commands::EnhancedStepHue::Type enhancedStepHueCommand;
Clusters::ColorControl::Commands::EnhancedMoveToHueAndSaturation::Type enhancedMoveToHueAndSaturationCommand;
Clusters::ColorControl::Commands::ColorLoopSet::Type colorLoopSetCommand;
Clusters::ColorControl::Commands::StopMoveStep::Type stopMoveStepCommand;
Clusters::ColorControl::Commands::MoveColorTemperature::Type moveColorTemperatureCommand;
Clusters::ColorControl::Commands::StepColorTemperature::Type stepColorTemperatureCommand;
switch (data->commandId)
{
case Clusters::ColorControl::Commands::MoveToHue::Id:
moveToHueCommand.hue = static_cast<uint8_t>(data->args[0]);
moveToHueCommand.direction = static_cast<EmberAfHueDirection>(data->args[1]);
moveToHueCommand.transitionTime = static_cast<uint16_t>(data->args[2]);
moveToHueCommand.optionsMask = static_cast<uint8_t>(data->args[3]);
moveToHueCommand.optionsOverride = static_cast<uint8_t>(data->args[4]);
Controller::InvokeGroupCommandRequest(&exchangeMgr, binding.fabricIndex, binding.groupId, moveToHueCommand);
break;
case Clusters::ColorControl::Commands::MoveHue::Id:
moveHueCommand.moveMode = static_cast<EmberAfHueMoveMode>(data->args[0]);
moveHueCommand.rate = static_cast<uint8_t>(data->args[1]);
moveHueCommand.optionsMask = static_cast<uint8_t>(data->args[2]);
moveHueCommand.optionsOverride = static_cast<uint8_t>(data->args[3]);
Controller::InvokeGroupCommandRequest(&exchangeMgr, binding.fabricIndex, binding.groupId, moveHueCommand);
break;
case Clusters::ColorControl::Commands::StepHue::Id:
stepHueCommand.stepMode = static_cast<EmberAfHueStepMode>(data->args[0]);
stepHueCommand.stepSize = static_cast<uint8_t>(data->args[1]);
stepHueCommand.transitionTime = static_cast<uint8_t>(data->args[2]);
stepHueCommand.optionsMask = static_cast<uint8_t>(data->args[3]);
stepHueCommand.optionsOverride = static_cast<uint8_t>(data->args[4]);
Controller::InvokeGroupCommandRequest(&exchangeMgr, binding.fabricIndex, binding.groupId, stepHueCommand);
break;
case Clusters::ColorControl::Commands::MoveToSaturation::Id:
moveToSaturationCommand.saturation = static_cast<uint8_t>(data->args[0]);
moveToSaturationCommand.transitionTime = static_cast<uint16_t>(data->args[1]);
moveToSaturationCommand.optionsMask = static_cast<uint8_t>(data->args[2]);
moveToSaturationCommand.optionsOverride = static_cast<uint8_t>(data->args[3]);
Controller::InvokeGroupCommandRequest(&exchangeMgr, binding.fabricIndex, binding.groupId, moveToSaturationCommand);
break;
case Clusters::ColorControl::Commands::MoveSaturation::Id:
moveSaturationCommand.moveMode = static_cast<EmberAfSaturationMoveMode>(data->args[0]);
moveSaturationCommand.rate = static_cast<uint8_t>(data->args[1]);
moveSaturationCommand.optionsMask = static_cast<uint8_t>(data->args[2]);
moveSaturationCommand.optionsOverride = static_cast<uint8_t>(data->args[3]);
Controller::InvokeGroupCommandRequest(&exchangeMgr, binding.fabricIndex, binding.groupId, moveSaturationCommand);
break;
case Clusters::ColorControl::Commands::StepSaturation::Id:
stepSaturationCommand.stepMode = static_cast<EmberAfSaturationStepMode>(data->args[0]);
stepSaturationCommand.stepSize = static_cast<uint8_t>(data->args[1]);
stepSaturationCommand.transitionTime = static_cast<uint8_t>(data->args[2]);
stepSaturationCommand.optionsMask = static_cast<uint8_t>(data->args[3]);
stepSaturationCommand.optionsOverride = static_cast<uint8_t>(data->args[4]);
Controller::InvokeGroupCommandRequest(&exchangeMgr, binding.fabricIndex, binding.groupId, stepSaturationCommand);
break;
case Clusters::ColorControl::Commands::MoveToHueAndSaturation::Id:
moveToHueAndSaturationCommand.hue = static_cast<uint8_t>(data->args[0]);
moveToHueAndSaturationCommand.saturation = static_cast<uint8_t>(data->args[1]);
moveToHueAndSaturationCommand.transitionTime = static_cast<uint16_t>(data->args[2]);
moveToHueAndSaturationCommand.optionsMask = static_cast<uint8_t>(data->args[3]);
moveToHueAndSaturationCommand.optionsOverride = static_cast<uint8_t>(data->args[4]);
Controller::InvokeGroupCommandRequest(&exchangeMgr, binding.fabricIndex, binding.groupId, moveToHueAndSaturationCommand);
break;
case Clusters::ColorControl::Commands::MoveToColor::Id:
moveToColorCommand.colorX = static_cast<uint16_t>(data->args[0]);
moveToColorCommand.colorY = static_cast<uint16_t>(data->args[1]);
moveToColorCommand.transitionTime = static_cast<uint16_t>(data->args[2]);
moveToColorCommand.optionsMask = static_cast<uint8_t>(data->args[3]);
moveToColorCommand.optionsOverride = static_cast<uint8_t>(data->args[4]);
Controller::InvokeGroupCommandRequest(&exchangeMgr, binding.fabricIndex, binding.groupId, moveToColorCommand);
break;
case Clusters::ColorControl::Commands::MoveColor::Id:
moveColorCommand.rateX = static_cast<uint16_t>(data->args[0]);
moveColorCommand.rateY = static_cast<uint16_t>(data->args[1]);
moveColorCommand.optionsMask = static_cast<uint8_t>(data->args[2]);
moveColorCommand.optionsOverride = static_cast<uint8_t>(data->args[3]);
Controller::InvokeGroupCommandRequest(&exchangeMgr, binding.fabricIndex, binding.groupId, moveColorCommand);
break;
case Clusters::ColorControl::Commands::StepColor::Id:
stepColorCommand.stepX = static_cast<uint16_t>(data->args[0]);
stepColorCommand.stepY = static_cast<uint16_t>(data->args[1]);
stepColorCommand.transitionTime = static_cast<uint16_t>(data->args[2]);
stepColorCommand.optionsMask = static_cast<uint8_t>(data->args[3]);
stepColorCommand.optionsOverride = static_cast<uint8_t>(data->args[4]);
Controller::InvokeGroupCommandRequest(&exchangeMgr, binding.fabricIndex, binding.groupId, stepColorCommand);
break;
case Clusters::ColorControl::Commands::MoveToColorTemperature::Id:
moveToColorTemperatureCommand.colorTemperature = static_cast<uint16_t>(data->args[0]);
moveToColorTemperatureCommand.transitionTime = static_cast<uint16_t>(data->args[1]);
moveToColorTemperatureCommand.optionsMask = static_cast<uint8_t>(data->args[2]);
moveToColorTemperatureCommand.optionsOverride = static_cast<uint8_t>(data->args[3]);
Controller::InvokeGroupCommandRequest(&exchangeMgr, binding.fabricIndex, binding.groupId, moveToColorTemperatureCommand);
break;
case Clusters::ColorControl::Commands::EnhancedMoveToHue::Id:
enhancedMoveToHueCommand.enhancedHue = static_cast<uint16_t>(data->args[0]);
enhancedMoveToHueCommand.direction = static_cast<EmberAfHueDirection>(data->args[1]);
enhancedMoveToHueCommand.transitionTime = static_cast<uint16_t>(data->args[2]);
enhancedMoveToHueCommand.optionsMask = static_cast<uint8_t>(data->args[3]);
enhancedMoveToHueCommand.optionsOverride = static_cast<uint8_t>(data->args[4]);
Controller::InvokeGroupCommandRequest(&exchangeMgr, binding.fabricIndex, binding.groupId, enhancedMoveToHueCommand);
break;
case Clusters::ColorControl::Commands::EnhancedMoveHue::Id:
enhancedMoveHueCommand.moveMode = static_cast<EmberAfHueMoveMode>(data->args[0]);
enhancedMoveHueCommand.rate = static_cast<uint16_t>(data->args[1]);
enhancedMoveHueCommand.optionsMask = static_cast<uint8_t>(data->args[2]);
enhancedMoveHueCommand.optionsOverride = static_cast<uint8_t>(data->args[3]);
Controller::InvokeGroupCommandRequest(&exchangeMgr, binding.fabricIndex, binding.groupId, enhancedMoveHueCommand);
break;
case Clusters::ColorControl::Commands::EnhancedStepHue::Id:
enhancedStepHueCommand.stepMode = static_cast<EmberAfHueStepMode>(data->args[0]);
enhancedStepHueCommand.stepSize = static_cast<uint16_t>(data->args[1]);
enhancedStepHueCommand.transitionTime = static_cast<uint16_t>(data->args[2]);
enhancedStepHueCommand.optionsMask = static_cast<uint8_t>(data->args[3]);
enhancedStepHueCommand.optionsOverride = static_cast<uint8_t>(data->args[4]);
Controller::InvokeGroupCommandRequest(&exchangeMgr, binding.fabricIndex, binding.groupId, enhancedStepHueCommand);
break;
case Clusters::ColorControl::Commands::EnhancedMoveToHueAndSaturation::Id:
enhancedMoveToHueAndSaturationCommand.enhancedHue = static_cast<uint16_t>(data->args[0]);
enhancedMoveToHueAndSaturationCommand.saturation = static_cast<uint8_t>(data->args[1]);
enhancedMoveToHueAndSaturationCommand.transitionTime = static_cast<uint16_t>(data->args[2]);
enhancedMoveToHueAndSaturationCommand.optionsMask = static_cast<uint8_t>(data->args[3]);
enhancedMoveToHueAndSaturationCommand.optionsOverride = static_cast<uint8_t>(data->args[4]);
Controller::InvokeGroupCommandRequest(&exchangeMgr, binding.fabricIndex, binding.groupId,
enhancedMoveToHueAndSaturationCommand);
break;
case Clusters::ColorControl::Commands::ColorLoopSet::Id:
colorLoopSetCommand.updateFlags =
static_cast<chip::BitMask<chip::app::Clusters::ColorControl::ColorLoopUpdateFlags>>(data->args[0]);
colorLoopSetCommand.action = static_cast<EmberAfColorLoopAction>(data->args[1]);
colorLoopSetCommand.direction = static_cast<EmberAfColorLoopDirection>(data->args[2]);
colorLoopSetCommand.time = static_cast<uint16_t>(data->args[3]);
colorLoopSetCommand.startHue = static_cast<uint16_t>(data->args[4]);
colorLoopSetCommand.optionsMask = static_cast<uint8_t>(data->args[5]);
colorLoopSetCommand.optionsOverride = static_cast<uint8_t>(data->args[6]);
Controller::InvokeGroupCommandRequest(&exchangeMgr, binding.fabricIndex, binding.groupId, colorLoopSetCommand);
break;
case Clusters::ColorControl::Commands::StopMoveStep::Id:
stopMoveStepCommand.optionsMask = static_cast<uint8_t>(data->args[0]);
stopMoveStepCommand.optionsOverride = static_cast<uint8_t>(data->args[1]);
Controller::InvokeGroupCommandRequest(&exchangeMgr, binding.fabricIndex, binding.groupId, stopMoveStepCommand);
break;
case Clusters::ColorControl::Commands::MoveColorTemperature::Id:
moveColorTemperatureCommand.moveMode = static_cast<EmberAfHueMoveMode>(data->args[0]);
moveColorTemperatureCommand.rate = static_cast<uint16_t>(data->args[1]);
moveColorTemperatureCommand.colorTemperatureMinimumMireds = static_cast<uint16_t>(data->args[2]);
moveColorTemperatureCommand.colorTemperatureMaximumMireds = static_cast<uint16_t>(data->args[3]);
moveColorTemperatureCommand.optionsMask = static_cast<uint8_t>(data->args[4]);
moveColorTemperatureCommand.optionsOverride = static_cast<uint8_t>(data->args[5]);
Controller::InvokeGroupCommandRequest(&exchangeMgr, binding.fabricIndex, binding.groupId, moveColorTemperatureCommand);
break;
case Clusters::ColorControl::Commands::StepColorTemperature::Id:
stepColorTemperatureCommand.stepMode = static_cast<EmberAfHueStepMode>(data->args[0]);
stepColorTemperatureCommand.stepSize = static_cast<uint16_t>(data->args[1]);
stepColorTemperatureCommand.transitionTime = static_cast<uint16_t>(data->args[2]);
stepColorTemperatureCommand.colorTemperatureMinimumMireds = static_cast<uint16_t>(data->args[3]);
stepColorTemperatureCommand.colorTemperatureMaximumMireds = static_cast<uint16_t>(data->args[4]);
stepColorTemperatureCommand.optionsMask = static_cast<uint8_t>(data->args[5]);
stepColorTemperatureCommand.optionsOverride = static_cast<uint8_t>(data->args[6]);
Controller::InvokeGroupCommandRequest(&exchangeMgr, binding.fabricIndex, binding.groupId, stepColorTemperatureCommand);
break;
}
}
#if CONFIG_ENABLE_CHIP_SHELL
/********************************************************
* ColorControl switch shell functions
*********************************************************/
CHIP_ERROR ColorControlHelpHandler(int argc, char ** argv)
{
sShellSwitchColorControlSubCommands.ForEachCommand(Shell::PrintCommandHelp, nullptr);
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlSwitchCommandHandler(int argc, char ** argv)
{
if (argc == 0)
{
return ColorControlHelpHandler(argc, argv);
}
return sShellSwitchColorControlSubCommands.ExecCommand(argc, argv);
}
CHIP_ERROR MoveToHueCommandHandler(int argc, char ** argv)
{
if (argc != 5)
{
return ColorControlHelpHandler(argc, argv);
}
BindingCommandData * data = Platform::New<BindingCommandData>();
data->commandId = Clusters::ColorControl::Commands::MoveToHue::Id;
data->clusterId = Clusters::ColorControl::Id;
data->args[0] = atoi(argv[0]);
data->args[1] = atoi(argv[1]);
data->args[2] = atoi(argv[2]);
data->args[3] = atoi(argv[3]);
data->args[4] = atoi(argv[4]);
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR MoveHueCommandHandler(int argc, char ** argv)
{
if (argc != 4)
{
return ColorControlHelpHandler(argc, argv);
}
BindingCommandData * data = Platform::New<BindingCommandData>();
data->commandId = Clusters::ColorControl::Commands::MoveHue::Id;
data->clusterId = Clusters::ColorControl::Id;
data->args[0] = atoi(argv[0]);
data->args[1] = atoi(argv[1]);
data->args[2] = atoi(argv[2]);
data->args[3] = atoi(argv[3]);
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR StepHueCommandHandler(int argc, char ** argv)
{
if (argc != 5)
{
return ColorControlHelpHandler(argc, argv);
}
BindingCommandData * data = Platform::New<BindingCommandData>();
data->commandId = Clusters::ColorControl::Commands::StepHue::Id;
data->clusterId = Clusters::ColorControl::Id;
data->args[0] = atoi(argv[0]);
data->args[1] = atoi(argv[1]);
data->args[2] = atoi(argv[2]);
data->args[3] = atoi(argv[3]);
data->args[4] = atoi(argv[4]);
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR MoveToSaturationCommandHandler(int argc, char ** argv)
{
if (argc != 4)
{
return ColorControlHelpHandler(argc, argv);
}
BindingCommandData * data = Platform::New<BindingCommandData>();
data->commandId = Clusters::ColorControl::Commands::MoveToSaturation::Id;
data->clusterId = Clusters::ColorControl::Id;
data->args[0] = atoi(argv[0]);
data->args[1] = atoi(argv[1]);
data->args[2] = atoi(argv[2]);
data->args[3] = atoi(argv[3]);
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR MoveSaturationCommandHandler(int argc, char ** argv)
{
if (argc != 4)
{
return ColorControlHelpHandler(argc, argv);
}
BindingCommandData * data = Platform::New<BindingCommandData>();
data->commandId = Clusters::ColorControl::Commands::MoveSaturation::Id;
data->clusterId = Clusters::ColorControl::Id;
data->args[0] = atoi(argv[0]);
data->args[1] = atoi(argv[1]);
data->args[2] = atoi(argv[2]);
data->args[3] = atoi(argv[3]);
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR StepSaturationCommandHandler(int argc, char ** argv)
{
if (argc != 5)
{
return ColorControlHelpHandler(argc, argv);
}
BindingCommandData * data = Platform::New<BindingCommandData>();
data->commandId = Clusters::ColorControl::Commands::StepSaturation::Id;
data->clusterId = Clusters::ColorControl::Id;
data->args[0] = atoi(argv[0]);
data->args[1] = atoi(argv[1]);
data->args[2] = atoi(argv[2]);
data->args[3] = atoi(argv[3]);
data->args[4] = atoi(argv[4]);
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR MoveToHueAndSaturationCommandHandler(int argc, char ** argv)
{
if (argc != 5)
{
return ColorControlHelpHandler(argc, argv);
}
BindingCommandData * data = Platform::New<BindingCommandData>();
data->commandId = Clusters::ColorControl::Commands::MoveToHueAndSaturation::Id;
data->clusterId = Clusters::ColorControl::Id;
data->args[0] = atoi(argv[0]);
data->args[1] = atoi(argv[1]);
data->args[2] = atoi(argv[2]);
data->args[3] = atoi(argv[3]);
data->args[4] = atoi(argv[4]);
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR MoveToColorCommandHandler(int argc, char ** argv)
{
if (argc != 5)
{
return ColorControlHelpHandler(argc, argv);
}
BindingCommandData * data = Platform::New<BindingCommandData>();
data->commandId = Clusters::ColorControl::Commands::MoveToColor::Id;
data->clusterId = Clusters::ColorControl::Id;
data->args[0] = atoi(argv[0]);
data->args[1] = atoi(argv[1]);
data->args[2] = atoi(argv[2]);
data->args[3] = atoi(argv[3]);
data->args[4] = atoi(argv[4]);
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR MoveColorCommandHandler(int argc, char ** argv)
{
if (argc != 4)
{
return ColorControlHelpHandler(argc, argv);
}
BindingCommandData * data = Platform::New<BindingCommandData>();
data->commandId = Clusters::ColorControl::Commands::MoveColor::Id;
data->clusterId = Clusters::ColorControl::Id;
data->args[0] = atoi(argv[0]);
data->args[1] = atoi(argv[1]);
data->args[2] = atoi(argv[2]);
data->args[3] = atoi(argv[3]);
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR StepColorCommandHandler(int argc, char ** argv)
{
if (argc != 5)
{
return ColorControlHelpHandler(argc, argv);
}
BindingCommandData * data = Platform::New<BindingCommandData>();
data->commandId = Clusters::ColorControl::Commands::StepColor::Id;
data->clusterId = Clusters::ColorControl::Id;
data->args[0] = atoi(argv[0]);
data->args[1] = atoi(argv[1]);
data->args[2] = atoi(argv[2]);
data->args[3] = atoi(argv[3]);
data->args[4] = atoi(argv[4]);
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR MoveToColorTemperatureCommandHandler(int argc, char ** argv)
{
if (argc != 4)
{
return ColorControlHelpHandler(argc, argv);
}
BindingCommandData * data = Platform::New<BindingCommandData>();
data->commandId = Clusters::ColorControl::Commands::MoveToColorTemperature::Id;
data->clusterId = Clusters::ColorControl::Id;
data->args[0] = atoi(argv[0]);
data->args[1] = atoi(argv[1]);
data->args[2] = atoi(argv[2]);
data->args[3] = atoi(argv[3]);
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR EnhancedMoveToHueCommandHandler(int argc, char ** argv)
{
if (argc != 5)
{
return ColorControlHelpHandler(argc, argv);
}
BindingCommandData * data = Platform::New<BindingCommandData>();
data->commandId = Clusters::ColorControl::Commands::EnhancedMoveToHue::Id;
data->clusterId = Clusters::ColorControl::Id;
data->args[0] = atoi(argv[0]);
data->args[1] = atoi(argv[1]);
data->args[2] = atoi(argv[2]);
data->args[3] = atoi(argv[3]);
data->args[4] = atoi(argv[4]);
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR EnhancedMoveHueCommandHandler(int argc, char ** argv)
{
if (argc != 4)
{
return ColorControlHelpHandler(argc, argv);
}
BindingCommandData * data = Platform::New<BindingCommandData>();
data->commandId = Clusters::ColorControl::Commands::EnhancedMoveHue::Id;
data->clusterId = Clusters::ColorControl::Id;
data->args[0] = atoi(argv[0]);
data->args[1] = atoi(argv[1]);
data->args[2] = atoi(argv[2]);
data->args[3] = atoi(argv[3]);
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR EnhancedStepHueCommandHandler(int argc, char ** argv)
{
if (argc != 5)
{
return ColorControlHelpHandler(argc, argv);
}
BindingCommandData * data = Platform::New<BindingCommandData>();
data->commandId = Clusters::ColorControl::Commands::EnhancedStepHue::Id;
data->clusterId = Clusters::ColorControl::Id;
data->args[0] = atoi(argv[0]);
data->args[1] = atoi(argv[1]);
data->args[2] = atoi(argv[2]);
data->args[3] = atoi(argv[3]);
data->args[4] = atoi(argv[4]);
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR EnhancedMoveToHueAndSaturationCommandHandler(int argc, char ** argv)
{
if (argc != 5)
{
return ColorControlHelpHandler(argc, argv);
}
BindingCommandData * data = Platform::New<BindingCommandData>();
data->commandId = Clusters::ColorControl::Commands::EnhancedMoveToHueAndSaturation::Id;
data->clusterId = Clusters::ColorControl::Id;
data->args[0] = atoi(argv[0]);
data->args[1] = atoi(argv[1]);
data->args[2] = atoi(argv[2]);
data->args[3] = atoi(argv[3]);
data->args[4] = atoi(argv[4]);
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorLoopSetCommandHandler(int argc, char ** argv)
{
if (argc != 7)
{
return ColorControlHelpHandler(argc, argv);
}
BindingCommandData * data = Platform::New<BindingCommandData>();
data->commandId = Clusters::ColorControl::Commands::ColorLoopSet::Id;
data->clusterId = Clusters::ColorControl::Id;
data->args[0] = atoi(argv[0]);
data->args[1] = atoi(argv[1]);
data->args[2] = atoi(argv[2]);
data->args[3] = atoi(argv[3]);
data->args[4] = atoi(argv[4]);
data->args[5] = atoi(argv[5]);
data->args[6] = atoi(argv[6]);
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR StopMoveStepCommandHandler(int argc, char ** argv)
{
if (argc != 2)
{
return ColorControlHelpHandler(argc, argv);
}
BindingCommandData * data = Platform::New<BindingCommandData>();
data->commandId = Clusters::ColorControl::Commands::StopMoveStep::Id;
data->clusterId = Clusters::ColorControl::Id;
data->args[0] = atoi(argv[0]);
data->args[1] = atoi(argv[1]);
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR MoveColorTemperatureCommandHandler(int argc, char ** argv)
{
if (argc != 6)
{
return ColorControlHelpHandler(argc, argv);
}
BindingCommandData * data = Platform::New<BindingCommandData>();
data->commandId = Clusters::ColorControl::Commands::MoveColorTemperature::Id;
data->clusterId = Clusters::ColorControl::Id;
data->args[0] = atoi(argv[0]);
data->args[1] = atoi(argv[1]);
data->args[2] = atoi(argv[2]);
data->args[3] = atoi(argv[3]);
data->args[4] = atoi(argv[4]);
data->args[5] = atoi(argv[5]);
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR StepColorTemperatureCommandHandler(int argc, char ** argv)
{
if (argc != 7)
{
return ColorControlHelpHandler(argc, argv);
}
BindingCommandData * data = Platform::New<BindingCommandData>();
data->commandId = Clusters::ColorControl::Commands::StepColorTemperature::Id;
data->clusterId = Clusters::ColorControl::Id;
data->args[0] = atoi(argv[0]);
data->args[1] = atoi(argv[1]);
data->args[2] = atoi(argv[2]);
data->args[3] = atoi(argv[3]);
data->args[4] = atoi(argv[4]);
data->args[5] = atoi(argv[5]);
data->args[6] = atoi(argv[6]);
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
/********************************************************
* ColorControl Read switch shell functions
*********************************************************/
CHIP_ERROR ColorControlReadHelpHandler(int argc, char ** argv)
{
sShellSwitchColorControlReadSubCommands.ForEachCommand(Shell::PrintCommandHelp, nullptr);
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlRead(int argc, char ** argv)
{
if (argc == 0)
{
return ColorControlReadHelpHandler(argc, argv);
}
return sShellSwitchColorControlReadSubCommands.ExecCommand(argc, argv);
}
CHIP_ERROR ColorControlReadAttributeList(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::AttributeList::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadCurrentHue(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::CurrentHue::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadCurrentSaturation(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::CurrentSaturation::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadRemainingTime(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::RemainingTime::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadCurrentX(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::CurrentX::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadCurrentY(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::CurrentY::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadDriftCompensation(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::DriftCompensation::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadCompensationText(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::CompensationText::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadColorTemperature(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::ColorTemperatureMireds::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadColorMode(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::ColorMode::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadOptions(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::Options::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadNumberOfPrimaries(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::NumberOfPrimaries::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadPrimary1X(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::Primary1X::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadPrimary1Y(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::Primary1Y::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadPrimary1Intensity(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::Primary1Intensity::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadPrimary2X(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::Primary2X::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadPrimary2Y(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::Primary2Y::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadPrimary2Intensity(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::Primary2Intensity::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadPrimary3X(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::Primary3X::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadPrimary3Y(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::Primary3Y::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadPrimary3Intensity(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::Primary3Intensity::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadPrimary4X(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::Primary4X::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadPrimary4Y(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::Primary4Y::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadPrimary4Intensity(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::Primary4Intensity::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadPrimary5X(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::Primary5X::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadPrimary5Y(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::Primary5Y::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadPrimary5Intensity(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::Primary5Intensity::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadPrimary6X(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::Primary6X::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadPrimary6Y(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::Primary6Y::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadPrimary6Intensity(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::Primary6Intensity::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadWhitePointX(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::WhitePointX::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadWhitePointY(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::WhitePointY::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadColorPointRX(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::ColorPointRX::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadColorPointRY(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::ColorPointRY::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadColorPointRIntensity(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::ColorPointRIntensity::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadColorPointGX(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::ColorPointGX::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadColorPointGY(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::ColorPointGY::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadColorPointGIntensity(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::ColorPointGIntensity::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadColorPointBX(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::ColorPointBX::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadColorPointBY(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::ColorPointBY::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadColorPointBIntensity(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::ColorPointBIntensity::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadEnhancedCurrentHue(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::EnhancedCurrentHue::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadEnhancedColorMode(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::EnhancedColorMode::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadColorLoopActive(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::ColorLoopActive::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadColorLoopDirection(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::ColorLoopDirection::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadColorLoopTime(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::ColorLoopTime::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadColorLoopStartEnhancedHue(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::ColorLoopStartEnhancedHue::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadColorLoopStoredEnhancedHue(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::ColorLoopStoredEnhancedHue::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadColorCapabilities(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::ColorCapabilities::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadColorTempPhysicalMinMireds(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::ColorTempPhysicalMinMireds::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadColorTempPhysicalMaxMireds(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::ColorTempPhysicalMaxMireds::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadCoupleColorTempToLevelMinMireds(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::CoupleColorTempToLevelMinMireds::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR ColorControlReadStartUpColorTemperatureMireds(int argc, char ** argv)
{
BindingCommandData * data = Platform::New<BindingCommandData>();
data->attributeId = Clusters::ColorControl::Attributes::StartUpColorTemperatureMireds::Id;
data->clusterId = Clusters::ColorControl::Id;
data->isReadAttribute = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
/********************************************************
* Groups ColorControl switch shell functions
*********************************************************/
CHIP_ERROR GroupsColorControlHelpHandler(int argc, char ** argv)
{
sShellSwitchGroupsColorControlSubCommands.ForEachCommand(Shell::PrintCommandHelp, nullptr);
return CHIP_NO_ERROR;
}
CHIP_ERROR GroupsColorControlSwitchCommandHandler(int argc, char ** argv)
{
if (argc == 0)
{
return GroupsColorControlHelpHandler(argc, argv);
}
return sShellSwitchGroupsColorControlSubCommands.ExecCommand(argc, argv);
}
CHIP_ERROR GroupsMoveToHueCommandHandler(int argc, char ** argv)
{
if (argc != 5)
{
return GroupsColorControlHelpHandler(argc, argv);
}
BindingCommandData * data = Platform::New<BindingCommandData>();
data->commandId = Clusters::ColorControl::Commands::MoveToHue::Id;
data->clusterId = Clusters::ColorControl::Id;
data->args[0] = atoi(argv[0]);
data->args[1] = atoi(argv[1]);
data->args[2] = atoi(argv[2]);
data->args[3] = atoi(argv[3]);
data->args[4] = atoi(argv[4]);
data->isGroup = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR GroupsMoveHueCommandHandler(int argc, char ** argv)
{
if (argc != 4)
{
return GroupsColorControlHelpHandler(argc, argv);
}
BindingCommandData * data = Platform::New<BindingCommandData>();
data->commandId = Clusters::ColorControl::Commands::MoveHue::Id;
data->clusterId = Clusters::ColorControl::Id;
data->args[0] = atoi(argv[0]);
data->args[1] = atoi(argv[1]);
data->args[2] = atoi(argv[2]);
data->args[3] = atoi(argv[3]);
data->isGroup = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR GroupsStepHueCommandHandler(int argc, char ** argv)
{
if (argc != 5)
{
return GroupsColorControlHelpHandler(argc, argv);
}
BindingCommandData * data = Platform::New<BindingCommandData>();
data->commandId = Clusters::ColorControl::Commands::StepHue::Id;
data->clusterId = Clusters::ColorControl::Id;
data->args[0] = atoi(argv[0]);
data->args[1] = atoi(argv[1]);
data->args[2] = atoi(argv[2]);
data->args[3] = atoi(argv[3]);
data->args[4] = atoi(argv[4]);
data->isGroup = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR GroupsMoveToSaturationCommandHandler(int argc, char ** argv)
{
if (argc != 4)
{
return GroupsColorControlHelpHandler(argc, argv);
}
BindingCommandData * data = Platform::New<BindingCommandData>();
data->commandId = Clusters::ColorControl::Commands::MoveToSaturation::Id;
data->clusterId = Clusters::ColorControl::Id;
data->args[0] = atoi(argv[0]);
data->args[1] = atoi(argv[1]);
data->args[2] = atoi(argv[2]);
data->args[3] = atoi(argv[3]);
data->isGroup = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR GroupsMoveSaturationCommandHandler(int argc, char ** argv)
{
if (argc != 4)
{
return GroupsColorControlHelpHandler(argc, argv);
}
BindingCommandData * data = Platform::New<BindingCommandData>();
data->commandId = Clusters::ColorControl::Commands::MoveSaturation::Id;
data->clusterId = Clusters::ColorControl::Id;
data->args[0] = atoi(argv[0]);
data->args[1] = atoi(argv[1]);
data->args[2] = atoi(argv[2]);
data->args[3] = atoi(argv[3]);
data->isGroup = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR GroupsStepSaturationCommandHandler(int argc, char ** argv)
{
if (argc != 5)
{
return GroupsColorControlHelpHandler(argc, argv);
}
BindingCommandData * data = Platform::New<BindingCommandData>();
data->commandId = Clusters::ColorControl::Commands::StepSaturation::Id;
data->clusterId = Clusters::ColorControl::Id;
data->args[0] = atoi(argv[0]);
data->args[1] = atoi(argv[1]);
data->args[2] = atoi(argv[2]);
data->args[3] = atoi(argv[3]);
data->args[4] = atoi(argv[4]);
data->isGroup = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR GroupsMoveToHueAndSaturationCommandHandler(int argc, char ** argv)
{
if (argc != 5)
{
return GroupsColorControlHelpHandler(argc, argv);
}
BindingCommandData * data = Platform::New<BindingCommandData>();
data->commandId = Clusters::ColorControl::Commands::MoveToHueAndSaturation::Id;
data->clusterId = Clusters::ColorControl::Id;
data->args[0] = atoi(argv[0]);
data->args[1] = atoi(argv[1]);
data->args[2] = atoi(argv[2]);
data->args[3] = atoi(argv[3]);
data->args[4] = atoi(argv[4]);
data->isGroup = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR GroupsMoveToColorCommandHandler(int argc, char ** argv)
{
if (argc != 5)
{
return GroupsColorControlHelpHandler(argc, argv);
}
BindingCommandData * data = Platform::New<BindingCommandData>();
data->commandId = Clusters::ColorControl::Commands::MoveToColor::Id;
data->clusterId = Clusters::ColorControl::Id;
data->args[0] = atoi(argv[0]);
data->args[1] = atoi(argv[1]);
data->args[2] = atoi(argv[2]);
data->args[3] = atoi(argv[3]);
data->args[4] = atoi(argv[4]);
data->isGroup = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR GroupsMoveColorCommandHandler(int argc, char ** argv)
{
if (argc != 4)
{
return GroupsColorControlHelpHandler(argc, argv);
}
BindingCommandData * data = Platform::New<BindingCommandData>();
data->commandId = Clusters::ColorControl::Commands::MoveColor::Id;
data->clusterId = Clusters::ColorControl::Id;
data->args[0] = atoi(argv[0]);
data->args[1] = atoi(argv[1]);
data->args[2] = atoi(argv[2]);
data->args[3] = atoi(argv[3]);
data->isGroup = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR GroupsStepColorCommandHandler(int argc, char ** argv)
{
if (argc != 5)
{
return GroupsColorControlHelpHandler(argc, argv);
}
BindingCommandData * data = Platform::New<BindingCommandData>();
data->commandId = Clusters::ColorControl::Commands::MoveColor::Id;
data->clusterId = Clusters::ColorControl::Id;
data->args[0] = atoi(argv[0]);
data->args[1] = atoi(argv[1]);
data->args[2] = atoi(argv[2]);
data->args[3] = atoi(argv[3]);
data->args[4] = atoi(argv[4]);
data->isGroup = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR GroupsMoveToColorTemperatureCommandHandler(int argc, char ** argv)
{
if (argc != 4)
{
return GroupsColorControlHelpHandler(argc, argv);
}
BindingCommandData * data = Platform::New<BindingCommandData>();
data->commandId = Clusters::ColorControl::Commands::MoveColor::Id;
data->clusterId = Clusters::ColorControl::Id;
data->args[0] = atoi(argv[0]);
data->args[1] = atoi(argv[1]);
data->args[2] = atoi(argv[2]);
data->args[3] = atoi(argv[3]);
data->isGroup = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR GroupsEnhancedMoveToHueCommandHandler(int argc, char ** argv)
{
if (argc != 5)
{
return GroupsColorControlHelpHandler(argc, argv);
}
BindingCommandData * data = Platform::New<BindingCommandData>();
data->commandId = Clusters::ColorControl::Commands::EnhancedMoveToHue::Id;
data->clusterId = Clusters::ColorControl::Id;
data->args[0] = atoi(argv[0]);
data->args[1] = atoi(argv[1]);
data->args[2] = atoi(argv[2]);
data->args[3] = atoi(argv[3]);
data->args[4] = atoi(argv[4]);
data->isGroup = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR GroupsEnhancedMoveHueCommandHandler(int argc, char ** argv)
{
if (argc != 4)
{
return GroupsColorControlHelpHandler(argc, argv);
}
BindingCommandData * data = Platform::New<BindingCommandData>();
data->commandId = Clusters::ColorControl::Commands::EnhancedMoveHue::Id;
data->clusterId = Clusters::ColorControl::Id;
data->args[0] = atoi(argv[0]);
data->args[1] = atoi(argv[1]);
data->args[2] = atoi(argv[2]);
data->args[3] = atoi(argv[3]);
data->isGroup = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR GroupsEnhancedStepHueCommandHandler(int argc, char ** argv)
{
if (argc != 5)
{
return GroupsColorControlHelpHandler(argc, argv);
}
BindingCommandData * data = Platform::New<BindingCommandData>();
data->commandId = Clusters::ColorControl::Commands::EnhancedStepHue::Id;
data->clusterId = Clusters::ColorControl::Id;
data->args[0] = atoi(argv[0]);
data->args[1] = atoi(argv[1]);
data->args[2] = atoi(argv[2]);
data->args[3] = atoi(argv[3]);
data->args[4] = atoi(argv[4]);
data->isGroup = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR GroupsEnhancedMoveToHueAndSaturationCommandHandler(int argc, char ** argv)
{
if (argc != 5)
{
return GroupsColorControlHelpHandler(argc, argv);
}
BindingCommandData * data = Platform::New<BindingCommandData>();
data->commandId = Clusters::ColorControl::Commands::EnhancedMoveToHueAndSaturation::Id;
data->clusterId = Clusters::ColorControl::Id;
data->args[0] = atoi(argv[0]);
data->args[1] = atoi(argv[1]);
data->args[2] = atoi(argv[2]);
data->args[3] = atoi(argv[3]);
data->args[4] = atoi(argv[4]);
data->isGroup = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR GroupsColorLoopSetCommandHandler(int argc, char ** argv)
{
if (argc != 7)
{
return GroupsColorControlHelpHandler(argc, argv);
}
BindingCommandData * data = Platform::New<BindingCommandData>();
data->commandId = Clusters::ColorControl::Commands::ColorLoopSet::Id;
data->clusterId = Clusters::ColorControl::Id;
data->args[0] = atoi(argv[0]);
data->args[1] = atoi(argv[1]);
data->args[2] = atoi(argv[2]);
data->args[3] = atoi(argv[3]);
data->args[4] = atoi(argv[4]);
data->args[5] = atoi(argv[5]);
data->args[6] = atoi(argv[6]);
data->isGroup = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR GroupsStopMoveStepCommandHandler(int argc, char ** argv)
{
if (argc != 2)
{
return GroupsColorControlHelpHandler(argc, argv);
}
BindingCommandData * data = Platform::New<BindingCommandData>();
data->commandId = Clusters::ColorControl::Commands::StopMoveStep::Id;
data->clusterId = Clusters::ColorControl::Id;
data->args[0] = atoi(argv[0]);
data->args[1] = atoi(argv[1]);
data->isGroup = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR GroupsMoveColorTemperatureCommandHandler(int argc, char ** argv)
{
if (argc != 6)
{
return GroupsColorControlHelpHandler(argc, argv);
}
BindingCommandData * data = Platform::New<BindingCommandData>();
data->commandId = Clusters::ColorControl::Commands::MoveColorTemperature::Id;
data->clusterId = Clusters::ColorControl::Id;
data->args[0] = atoi(argv[0]);
data->args[1] = atoi(argv[1]);
data->args[2] = atoi(argv[2]);
data->args[3] = atoi(argv[3]);
data->args[4] = atoi(argv[4]);
data->args[5] = atoi(argv[5]);
data->isGroup = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
CHIP_ERROR GroupsStepColorTemperatureCommandHandler(int argc, char ** argv)
{
if (argc != 7)
{
return GroupsColorControlHelpHandler(argc, argv);
}
BindingCommandData * data = Platform::New<BindingCommandData>();
data->commandId = Clusters::ColorControl::Commands::StepColorTemperature::Id;
data->clusterId = Clusters::ColorControl::Id;
data->args[0] = atoi(argv[0]);
data->args[1] = atoi(argv[1]);
data->args[2] = atoi(argv[2]);
data->args[3] = atoi(argv[3]);
data->args[4] = atoi(argv[4]);
data->args[5] = atoi(argv[5]);
data->args[6] = atoi(argv[6]);
data->isGroup = true;
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast<intptr_t>(data));
return CHIP_NO_ERROR;
}
#endif // CONFIG_ENABLE_CHIP_SHELL