/* * * Copyright (c) 2022 Project CHIP Authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ // THIS FILE IS GENERATED BY ZAP #include #include #include #include #include #include #include #include #include #include #include namespace chip { namespace app { // Cluster specific command parsing namespace Clusters { namespace AdministratorCommissioning { void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) { CHIP_ERROR TLVError = CHIP_NO_ERROR; bool wasHandled = false; { switch (aCommandPath.mCommandId) { case Commands::OpenCommissioningWindow::Id: { Commands::OpenCommissioningWindow::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfAdministratorCommissioningClusterOpenCommissioningWindowCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::OpenBasicCommissioningWindow::Id: { Commands::OpenBasicCommissioningWindow::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfAdministratorCommissioningClusterOpenBasicCommissioningWindowCallback( apCommandObj, aCommandPath, commandData); } break; } case Commands::RevokeCommissioning::Id: { Commands::RevokeCommissioning::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfAdministratorCommissioningClusterRevokeCommissioningCallback(apCommandObj, aCommandPath, commandData); } break; } default: { // Unrecognized command ID, error status will apply. apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); return; } } } if (CHIP_NO_ERROR != TLVError || !wasHandled) { apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); } } } // namespace AdministratorCommissioning namespace BooleanStateConfiguration { void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) { CHIP_ERROR TLVError = CHIP_NO_ERROR; bool wasHandled = false; { switch (aCommandPath.mCommandId) { case Commands::SuppressAlarm::Id: { Commands::SuppressAlarm::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfBooleanStateConfigurationClusterSuppressAlarmCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::EnableDisableAlarm::Id: { Commands::EnableDisableAlarm::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfBooleanStateConfigurationClusterEnableDisableAlarmCallback(apCommandObj, aCommandPath, commandData); } break; } default: { // Unrecognized command ID, error status will apply. apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); return; } } } if (CHIP_NO_ERROR != TLVError || !wasHandled) { apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); } } } // namespace BooleanStateConfiguration namespace ColorControl { void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) { CHIP_ERROR TLVError = CHIP_NO_ERROR; bool wasHandled = false; { switch (aCommandPath.mCommandId) { case Commands::MoveToHue::Id: { Commands::MoveToHue::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfColorControlClusterMoveToHueCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::MoveHue::Id: { Commands::MoveHue::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfColorControlClusterMoveHueCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::StepHue::Id: { Commands::StepHue::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfColorControlClusterStepHueCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::MoveToSaturation::Id: { Commands::MoveToSaturation::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfColorControlClusterMoveToSaturationCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::MoveSaturation::Id: { Commands::MoveSaturation::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfColorControlClusterMoveSaturationCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::StepSaturation::Id: { Commands::StepSaturation::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfColorControlClusterStepSaturationCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::MoveToHueAndSaturation::Id: { Commands::MoveToHueAndSaturation::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfColorControlClusterMoveToHueAndSaturationCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::MoveToColor::Id: { Commands::MoveToColor::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfColorControlClusterMoveToColorCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::MoveColor::Id: { Commands::MoveColor::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfColorControlClusterMoveColorCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::StepColor::Id: { Commands::StepColor::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfColorControlClusterStepColorCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::MoveToColorTemperature::Id: { Commands::MoveToColorTemperature::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfColorControlClusterMoveToColorTemperatureCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::EnhancedMoveToHue::Id: { Commands::EnhancedMoveToHue::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfColorControlClusterEnhancedMoveToHueCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::EnhancedMoveHue::Id: { Commands::EnhancedMoveHue::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfColorControlClusterEnhancedMoveHueCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::EnhancedStepHue::Id: { Commands::EnhancedStepHue::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfColorControlClusterEnhancedStepHueCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::EnhancedMoveToHueAndSaturation::Id: { Commands::EnhancedMoveToHueAndSaturation::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfColorControlClusterEnhancedMoveToHueAndSaturationCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::ColorLoopSet::Id: { Commands::ColorLoopSet::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfColorControlClusterColorLoopSetCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::StopMoveStep::Id: { Commands::StopMoveStep::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfColorControlClusterStopMoveStepCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::MoveColorTemperature::Id: { Commands::MoveColorTemperature::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfColorControlClusterMoveColorTemperatureCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::StepColorTemperature::Id: { Commands::StepColorTemperature::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfColorControlClusterStepColorTemperatureCallback(apCommandObj, aCommandPath, commandData); } break; } default: { // Unrecognized command ID, error status will apply. apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); return; } } } if (CHIP_NO_ERROR != TLVError || !wasHandled) { apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); } } } // namespace ColorControl namespace DiagnosticLogs { void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) { CHIP_ERROR TLVError = CHIP_NO_ERROR; bool wasHandled = false; { switch (aCommandPath.mCommandId) { case Commands::RetrieveLogsRequest::Id: { Commands::RetrieveLogsRequest::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfDiagnosticLogsClusterRetrieveLogsRequestCallback(apCommandObj, aCommandPath, commandData); } break; } default: { // Unrecognized command ID, error status will apply. apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); return; } } } if (CHIP_NO_ERROR != TLVError || !wasHandled) { apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); } } } // namespace DiagnosticLogs namespace DishwasherAlarm { void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) { CHIP_ERROR TLVError = CHIP_NO_ERROR; bool wasHandled = false; { switch (aCommandPath.mCommandId) { case Commands::Reset::Id: { Commands::Reset::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfDishwasherAlarmClusterResetCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::ModifyEnabledAlarms::Id: { Commands::ModifyEnabledAlarms::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfDishwasherAlarmClusterModifyEnabledAlarmsCallback(apCommandObj, aCommandPath, commandData); } break; } default: { // Unrecognized command ID, error status will apply. apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); return; } } } if (CHIP_NO_ERROR != TLVError || !wasHandled) { apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); } } } // namespace DishwasherAlarm namespace EthernetNetworkDiagnostics { void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) { CHIP_ERROR TLVError = CHIP_NO_ERROR; bool wasHandled = false; { switch (aCommandPath.mCommandId) { case Commands::ResetCounts::Id: { Commands::ResetCounts::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfEthernetNetworkDiagnosticsClusterResetCountsCallback(apCommandObj, aCommandPath, commandData); } break; } default: { // Unrecognized command ID, error status will apply. apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); return; } } } if (CHIP_NO_ERROR != TLVError || !wasHandled) { apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); } } } // namespace EthernetNetworkDiagnostics namespace FanControl { void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) { CHIP_ERROR TLVError = CHIP_NO_ERROR; bool wasHandled = false; { switch (aCommandPath.mCommandId) { case Commands::Step::Id: { Commands::Step::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfFanControlClusterStepCallback(apCommandObj, aCommandPath, commandData); } break; } default: { // Unrecognized command ID, error status will apply. apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); return; } } } if (CHIP_NO_ERROR != TLVError || !wasHandled) { apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); } } } // namespace FanControl namespace FaultInjection { void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) { CHIP_ERROR TLVError = CHIP_NO_ERROR; bool wasHandled = false; { switch (aCommandPath.mCommandId) { case Commands::FailAtFault::Id: { Commands::FailAtFault::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfFaultInjectionClusterFailAtFaultCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::FailRandomlyAtFault::Id: { Commands::FailRandomlyAtFault::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfFaultInjectionClusterFailRandomlyAtFaultCallback(apCommandObj, aCommandPath, commandData); } break; } default: { // Unrecognized command ID, error status will apply. apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); return; } } } if (CHIP_NO_ERROR != TLVError || !wasHandled) { apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); } } } // namespace FaultInjection namespace GeneralCommissioning { void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) { CHIP_ERROR TLVError = CHIP_NO_ERROR; bool wasHandled = false; { switch (aCommandPath.mCommandId) { case Commands::ArmFailSafe::Id: { Commands::ArmFailSafe::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfGeneralCommissioningClusterArmFailSafeCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::SetRegulatoryConfig::Id: { Commands::SetRegulatoryConfig::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfGeneralCommissioningClusterSetRegulatoryConfigCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::CommissioningComplete::Id: { Commands::CommissioningComplete::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfGeneralCommissioningClusterCommissioningCompleteCallback(apCommandObj, aCommandPath, commandData); } break; } default: { // Unrecognized command ID, error status will apply. apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); return; } } } if (CHIP_NO_ERROR != TLVError || !wasHandled) { apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); } } } // namespace GeneralCommissioning namespace GeneralDiagnostics { void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) { CHIP_ERROR TLVError = CHIP_NO_ERROR; bool wasHandled = false; { switch (aCommandPath.mCommandId) { case Commands::TestEventTrigger::Id: { Commands::TestEventTrigger::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfGeneralDiagnosticsClusterTestEventTriggerCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::TimeSnapshot::Id: { Commands::TimeSnapshot::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfGeneralDiagnosticsClusterTimeSnapshotCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::PayloadTestRequest::Id: { Commands::PayloadTestRequest::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfGeneralDiagnosticsClusterPayloadTestRequestCallback(apCommandObj, aCommandPath, commandData); } break; } default: { // Unrecognized command ID, error status will apply. apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); return; } } } if (CHIP_NO_ERROR != TLVError || !wasHandled) { apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); } } } // namespace GeneralDiagnostics namespace GroupKeyManagement { void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) { CHIP_ERROR TLVError = CHIP_NO_ERROR; bool wasHandled = false; { switch (aCommandPath.mCommandId) { case Commands::KeySetWrite::Id: { Commands::KeySetWrite::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfGroupKeyManagementClusterKeySetWriteCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::KeySetRead::Id: { Commands::KeySetRead::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfGroupKeyManagementClusterKeySetReadCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::KeySetRemove::Id: { Commands::KeySetRemove::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfGroupKeyManagementClusterKeySetRemoveCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::KeySetReadAllIndices::Id: { Commands::KeySetReadAllIndices::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfGroupKeyManagementClusterKeySetReadAllIndicesCallback(apCommandObj, aCommandPath, commandData); } break; } default: { // Unrecognized command ID, error status will apply. apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); return; } } } if (CHIP_NO_ERROR != TLVError || !wasHandled) { apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); } } } // namespace GroupKeyManagement namespace Groups { void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) { CHIP_ERROR TLVError = CHIP_NO_ERROR; bool wasHandled = false; { switch (aCommandPath.mCommandId) { case Commands::AddGroup::Id: { Commands::AddGroup::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfGroupsClusterAddGroupCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::ViewGroup::Id: { Commands::ViewGroup::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfGroupsClusterViewGroupCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::GetGroupMembership::Id: { Commands::GetGroupMembership::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfGroupsClusterGetGroupMembershipCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::RemoveGroup::Id: { Commands::RemoveGroup::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfGroupsClusterRemoveGroupCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::RemoveAllGroups::Id: { Commands::RemoveAllGroups::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfGroupsClusterRemoveAllGroupsCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::AddGroupIfIdentifying::Id: { Commands::AddGroupIfIdentifying::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfGroupsClusterAddGroupIfIdentifyingCallback(apCommandObj, aCommandPath, commandData); } break; } default: { // Unrecognized command ID, error status will apply. apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); return; } } } if (CHIP_NO_ERROR != TLVError || !wasHandled) { apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); } } } // namespace Groups namespace Identify { void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) { CHIP_ERROR TLVError = CHIP_NO_ERROR; bool wasHandled = false; { switch (aCommandPath.mCommandId) { case Commands::Identify::Id: { Commands::Identify::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfIdentifyClusterIdentifyCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::TriggerEffect::Id: { Commands::TriggerEffect::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfIdentifyClusterTriggerEffectCallback(apCommandObj, aCommandPath, commandData); } break; } default: { // Unrecognized command ID, error status will apply. apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); return; } } } if (CHIP_NO_ERROR != TLVError || !wasHandled) { apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); } } } // namespace Identify namespace LevelControl { void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) { CHIP_ERROR TLVError = CHIP_NO_ERROR; bool wasHandled = false; { switch (aCommandPath.mCommandId) { case Commands::MoveToLevel::Id: { Commands::MoveToLevel::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfLevelControlClusterMoveToLevelCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::Move::Id: { Commands::Move::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfLevelControlClusterMoveCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::Step::Id: { Commands::Step::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfLevelControlClusterStepCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::Stop::Id: { Commands::Stop::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfLevelControlClusterStopCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::MoveToLevelWithOnOff::Id: { Commands::MoveToLevelWithOnOff::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfLevelControlClusterMoveToLevelWithOnOffCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::MoveWithOnOff::Id: { Commands::MoveWithOnOff::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfLevelControlClusterMoveWithOnOffCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::StepWithOnOff::Id: { Commands::StepWithOnOff::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfLevelControlClusterStepWithOnOffCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::StopWithOnOff::Id: { Commands::StopWithOnOff::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfLevelControlClusterStopWithOnOffCallback(apCommandObj, aCommandPath, commandData); } break; } default: { // Unrecognized command ID, error status will apply. apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); return; } } } if (CHIP_NO_ERROR != TLVError || !wasHandled) { apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); } } } // namespace LevelControl namespace LowPower { void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) { CHIP_ERROR TLVError = CHIP_NO_ERROR; bool wasHandled = false; { switch (aCommandPath.mCommandId) { case Commands::Sleep::Id: { Commands::Sleep::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfLowPowerClusterSleepCallback(apCommandObj, aCommandPath, commandData); } break; } default: { // Unrecognized command ID, error status will apply. apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); return; } } } if (CHIP_NO_ERROR != TLVError || !wasHandled) { apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); } } } // namespace LowPower namespace ModeSelect { void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) { CHIP_ERROR TLVError = CHIP_NO_ERROR; bool wasHandled = false; { switch (aCommandPath.mCommandId) { case Commands::ChangeToMode::Id: { Commands::ChangeToMode::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfModeSelectClusterChangeToModeCallback(apCommandObj, aCommandPath, commandData); } break; } default: { // Unrecognized command ID, error status will apply. apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); return; } } } if (CHIP_NO_ERROR != TLVError || !wasHandled) { apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); } } } // namespace ModeSelect namespace OtaSoftwareUpdateRequestor { void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) { CHIP_ERROR TLVError = CHIP_NO_ERROR; bool wasHandled = false; { switch (aCommandPath.mCommandId) { case Commands::AnnounceOTAProvider::Id: { Commands::AnnounceOTAProvider::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfOtaSoftwareUpdateRequestorClusterAnnounceOTAProviderCallback(apCommandObj, aCommandPath, commandData); } break; } default: { // Unrecognized command ID, error status will apply. apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); return; } } } if (CHIP_NO_ERROR != TLVError || !wasHandled) { apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); } } } // namespace OtaSoftwareUpdateRequestor namespace OnOff { void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) { CHIP_ERROR TLVError = CHIP_NO_ERROR; bool wasHandled = false; { switch (aCommandPath.mCommandId) { case Commands::Off::Id: { Commands::Off::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfOnOffClusterOffCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::On::Id: { Commands::On::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfOnOffClusterOnCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::Toggle::Id: { Commands::Toggle::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfOnOffClusterToggleCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::OffWithEffect::Id: { Commands::OffWithEffect::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfOnOffClusterOffWithEffectCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::OnWithRecallGlobalScene::Id: { Commands::OnWithRecallGlobalScene::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfOnOffClusterOnWithRecallGlobalSceneCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::OnWithTimedOff::Id: { Commands::OnWithTimedOff::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfOnOffClusterOnWithTimedOffCallback(apCommandObj, aCommandPath, commandData); } break; } default: { // Unrecognized command ID, error status will apply. apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); return; } } } if (CHIP_NO_ERROR != TLVError || !wasHandled) { apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); } } } // namespace OnOff namespace OperationalCredentials { void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) { CHIP_ERROR TLVError = CHIP_NO_ERROR; bool wasHandled = false; { switch (aCommandPath.mCommandId) { case Commands::AttestationRequest::Id: { Commands::AttestationRequest::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfOperationalCredentialsClusterAttestationRequestCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::CertificateChainRequest::Id: { Commands::CertificateChainRequest::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfOperationalCredentialsClusterCertificateChainRequestCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::CSRRequest::Id: { Commands::CSRRequest::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfOperationalCredentialsClusterCSRRequestCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::AddNOC::Id: { Commands::AddNOC::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfOperationalCredentialsClusterAddNOCCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::UpdateNOC::Id: { Commands::UpdateNOC::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfOperationalCredentialsClusterUpdateNOCCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::UpdateFabricLabel::Id: { Commands::UpdateFabricLabel::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfOperationalCredentialsClusterUpdateFabricLabelCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::RemoveFabric::Id: { Commands::RemoveFabric::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfOperationalCredentialsClusterRemoveFabricCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::AddTrustedRootCertificate::Id: { Commands::AddTrustedRootCertificate::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfOperationalCredentialsClusterAddTrustedRootCertificateCallback(apCommandObj, aCommandPath, commandData); } break; } default: { // Unrecognized command ID, error status will apply. apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); return; } } } if (CHIP_NO_ERROR != TLVError || !wasHandled) { apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); } } } // namespace OperationalCredentials namespace SmokeCoAlarm { void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) { CHIP_ERROR TLVError = CHIP_NO_ERROR; bool wasHandled = false; { switch (aCommandPath.mCommandId) { case Commands::SelfTestRequest::Id: { Commands::SelfTestRequest::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfSmokeCoAlarmClusterSelfTestRequestCallback(apCommandObj, aCommandPath, commandData); } break; } default: { // Unrecognized command ID, error status will apply. apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); return; } } } if (CHIP_NO_ERROR != TLVError || !wasHandled) { apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); } } } // namespace SmokeCoAlarm namespace SoftwareDiagnostics { void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) { CHIP_ERROR TLVError = CHIP_NO_ERROR; bool wasHandled = false; { switch (aCommandPath.mCommandId) { case Commands::ResetWatermarks::Id: { Commands::ResetWatermarks::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfSoftwareDiagnosticsClusterResetWatermarksCallback(apCommandObj, aCommandPath, commandData); } break; } default: { // Unrecognized command ID, error status will apply. apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); return; } } } if (CHIP_NO_ERROR != TLVError || !wasHandled) { apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); } } } // namespace SoftwareDiagnostics namespace TemperatureControl { void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) { CHIP_ERROR TLVError = CHIP_NO_ERROR; bool wasHandled = false; { switch (aCommandPath.mCommandId) { case Commands::SetTemperature::Id: { Commands::SetTemperature::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfTemperatureControlClusterSetTemperatureCallback(apCommandObj, aCommandPath, commandData); } break; } default: { // Unrecognized command ID, error status will apply. apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); return; } } } if (CHIP_NO_ERROR != TLVError || !wasHandled) { apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); } } } // namespace TemperatureControl namespace Thermostat { void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) { CHIP_ERROR TLVError = CHIP_NO_ERROR; bool wasHandled = false; { switch (aCommandPath.mCommandId) { case Commands::SetpointRaiseLower::Id: { Commands::SetpointRaiseLower::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfThermostatClusterSetpointRaiseLowerCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::SetActiveScheduleRequest::Id: { Commands::SetActiveScheduleRequest::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfThermostatClusterSetActiveScheduleRequestCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::SetActivePresetRequest::Id: { Commands::SetActivePresetRequest::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfThermostatClusterSetActivePresetRequestCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::AtomicRequest::Id: { Commands::AtomicRequest::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfThermostatClusterAtomicRequestCallback(apCommandObj, aCommandPath, commandData); } break; } default: { // Unrecognized command ID, error status will apply. apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); return; } } } if (CHIP_NO_ERROR != TLVError || !wasHandled) { apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); } } } // namespace Thermostat namespace ThreadNetworkDiagnostics { void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) { CHIP_ERROR TLVError = CHIP_NO_ERROR; bool wasHandled = false; { switch (aCommandPath.mCommandId) { case Commands::ResetCounts::Id: { Commands::ResetCounts::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfThreadNetworkDiagnosticsClusterResetCountsCallback(apCommandObj, aCommandPath, commandData); } break; } default: { // Unrecognized command ID, error status will apply. apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); return; } } } if (CHIP_NO_ERROR != TLVError || !wasHandled) { apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); } } } // namespace ThreadNetworkDiagnostics namespace TimeSynchronization { void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) { CHIP_ERROR TLVError = CHIP_NO_ERROR; bool wasHandled = false; { switch (aCommandPath.mCommandId) { case Commands::SetUTCTime::Id: { Commands::SetUTCTime::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfTimeSynchronizationClusterSetUTCTimeCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::SetTrustedTimeSource::Id: { Commands::SetTrustedTimeSource::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfTimeSynchronizationClusterSetTrustedTimeSourceCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::SetTimeZone::Id: { Commands::SetTimeZone::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfTimeSynchronizationClusterSetTimeZoneCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::SetDSTOffset::Id: { Commands::SetDSTOffset::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfTimeSynchronizationClusterSetDSTOffsetCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::SetDefaultNTP::Id: { Commands::SetDefaultNTP::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfTimeSynchronizationClusterSetDefaultNTPCallback(apCommandObj, aCommandPath, commandData); } break; } default: { // Unrecognized command ID, error status will apply. apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); return; } } } if (CHIP_NO_ERROR != TLVError || !wasHandled) { apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); } } } // namespace TimeSynchronization namespace UnitTesting { void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) { CHIP_ERROR TLVError = CHIP_NO_ERROR; bool wasHandled = false; { switch (aCommandPath.mCommandId) { case Commands::Test::Id: { Commands::Test::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfUnitTestingClusterTestCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::TestNotHandled::Id: { Commands::TestNotHandled::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfUnitTestingClusterTestNotHandledCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::TestSpecific::Id: { Commands::TestSpecific::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfUnitTestingClusterTestSpecificCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::TestAddArguments::Id: { Commands::TestAddArguments::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfUnitTestingClusterTestAddArgumentsCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::TestStructArgumentRequest::Id: { Commands::TestStructArgumentRequest::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfUnitTestingClusterTestStructArgumentRequestCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::TestNestedStructArgumentRequest::Id: { Commands::TestNestedStructArgumentRequest::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfUnitTestingClusterTestNestedStructArgumentRequestCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::TestListStructArgumentRequest::Id: { Commands::TestListStructArgumentRequest::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfUnitTestingClusterTestListStructArgumentRequestCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::TestListInt8UArgumentRequest::Id: { Commands::TestListInt8UArgumentRequest::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfUnitTestingClusterTestListInt8UArgumentRequestCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::TestNestedStructListArgumentRequest::Id: { Commands::TestNestedStructListArgumentRequest::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfUnitTestingClusterTestNestedStructListArgumentRequestCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::TestListNestedStructListArgumentRequest::Id: { Commands::TestListNestedStructListArgumentRequest::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfUnitTestingClusterTestListNestedStructListArgumentRequestCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::TestListInt8UReverseRequest::Id: { Commands::TestListInt8UReverseRequest::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfUnitTestingClusterTestListInt8UReverseRequestCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::TestEnumsRequest::Id: { Commands::TestEnumsRequest::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfUnitTestingClusterTestEnumsRequestCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::TestNullableOptionalRequest::Id: { Commands::TestNullableOptionalRequest::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfUnitTestingClusterTestNullableOptionalRequestCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::SimpleStructEchoRequest::Id: { Commands::SimpleStructEchoRequest::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfUnitTestingClusterSimpleStructEchoRequestCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::TimedInvokeRequest::Id: { Commands::TimedInvokeRequest::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfUnitTestingClusterTimedInvokeRequestCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::TestSimpleOptionalArgumentRequest::Id: { Commands::TestSimpleOptionalArgumentRequest::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfUnitTestingClusterTestSimpleOptionalArgumentRequestCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::TestEmitTestEventRequest::Id: { Commands::TestEmitTestEventRequest::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfUnitTestingClusterTestEmitTestEventRequestCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::TestEmitTestFabricScopedEventRequest::Id: { Commands::TestEmitTestFabricScopedEventRequest::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfUnitTestingClusterTestEmitTestFabricScopedEventRequestCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::TestBatchHelperRequest::Id: { Commands::TestBatchHelperRequest::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfUnitTestingClusterTestBatchHelperRequestCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::TestSecondBatchHelperRequest::Id: { Commands::TestSecondBatchHelperRequest::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfUnitTestingClusterTestSecondBatchHelperRequestCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::TestDifferentVendorMeiRequest::Id: { Commands::TestDifferentVendorMeiRequest::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfUnitTestingClusterTestDifferentVendorMeiRequestCallback(apCommandObj, aCommandPath, commandData); } break; } default: { // Unrecognized command ID, error status will apply. apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); return; } } } if (CHIP_NO_ERROR != TLVError || !wasHandled) { apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); } } } // namespace UnitTesting namespace ValveConfigurationAndControl { void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) { CHIP_ERROR TLVError = CHIP_NO_ERROR; bool wasHandled = false; { switch (aCommandPath.mCommandId) { case Commands::Open::Id: { Commands::Open::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfValveConfigurationAndControlClusterOpenCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::Close::Id: { Commands::Close::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfValveConfigurationAndControlClusterCloseCallback(apCommandObj, aCommandPath, commandData); } break; } default: { // Unrecognized command ID, error status will apply. apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); return; } } } if (CHIP_NO_ERROR != TLVError || !wasHandled) { apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); } } } // namespace ValveConfigurationAndControl namespace WiFiNetworkDiagnostics { void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) { CHIP_ERROR TLVError = CHIP_NO_ERROR; bool wasHandled = false; { switch (aCommandPath.mCommandId) { case Commands::ResetCounts::Id: { Commands::ResetCounts::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfWiFiNetworkDiagnosticsClusterResetCountsCallback(apCommandObj, aCommandPath, commandData); } break; } default: { // Unrecognized command ID, error status will apply. apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); return; } } } if (CHIP_NO_ERROR != TLVError || !wasHandled) { apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); } } } // namespace WiFiNetworkDiagnostics namespace WindowCovering { void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) { CHIP_ERROR TLVError = CHIP_NO_ERROR; bool wasHandled = false; { switch (aCommandPath.mCommandId) { case Commands::UpOrOpen::Id: { Commands::UpOrOpen::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfWindowCoveringClusterUpOrOpenCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::DownOrClose::Id: { Commands::DownOrClose::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfWindowCoveringClusterDownOrCloseCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::StopMotion::Id: { Commands::StopMotion::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfWindowCoveringClusterStopMotionCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::GoToLiftValue::Id: { Commands::GoToLiftValue::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfWindowCoveringClusterGoToLiftValueCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::GoToLiftPercentage::Id: { Commands::GoToLiftPercentage::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfWindowCoveringClusterGoToLiftPercentageCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::GoToTiltValue::Id: { Commands::GoToTiltValue::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfWindowCoveringClusterGoToTiltValueCallback(apCommandObj, aCommandPath, commandData); } break; } case Commands::GoToTiltPercentage::Id: { Commands::GoToTiltPercentage::DecodableType commandData; TLVError = DataModel::Decode(aDataTlv, commandData); if (TLVError == CHIP_NO_ERROR) { wasHandled = emberAfWindowCoveringClusterGoToTiltPercentageCallback(apCommandObj, aCommandPath, commandData); } break; } default: { // Unrecognized command ID, error status will apply. apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); return; } } } if (CHIP_NO_ERROR != TLVError || !wasHandled) { apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); } } } // namespace WindowCovering } // namespace Clusters void DispatchSingleClusterCommand(const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aReader, CommandHandler * apCommandObj) { switch (aCommandPath.mClusterId) { case Clusters::AdministratorCommissioning::Id: Clusters::AdministratorCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader); break; case Clusters::BooleanStateConfiguration::Id: Clusters::BooleanStateConfiguration::DispatchServerCommand(apCommandObj, aCommandPath, aReader); break; case Clusters::ColorControl::Id: Clusters::ColorControl::DispatchServerCommand(apCommandObj, aCommandPath, aReader); break; case Clusters::DiagnosticLogs::Id: Clusters::DiagnosticLogs::DispatchServerCommand(apCommandObj, aCommandPath, aReader); break; case Clusters::DishwasherAlarm::Id: Clusters::DishwasherAlarm::DispatchServerCommand(apCommandObj, aCommandPath, aReader); break; case Clusters::EthernetNetworkDiagnostics::Id: Clusters::EthernetNetworkDiagnostics::DispatchServerCommand(apCommandObj, aCommandPath, aReader); break; case Clusters::FanControl::Id: Clusters::FanControl::DispatchServerCommand(apCommandObj, aCommandPath, aReader); break; case Clusters::FaultInjection::Id: Clusters::FaultInjection::DispatchServerCommand(apCommandObj, aCommandPath, aReader); break; case Clusters::GeneralCommissioning::Id: Clusters::GeneralCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader); break; case Clusters::GeneralDiagnostics::Id: Clusters::GeneralDiagnostics::DispatchServerCommand(apCommandObj, aCommandPath, aReader); break; case Clusters::GroupKeyManagement::Id: Clusters::GroupKeyManagement::DispatchServerCommand(apCommandObj, aCommandPath, aReader); break; case Clusters::Groups::Id: Clusters::Groups::DispatchServerCommand(apCommandObj, aCommandPath, aReader); break; case Clusters::Identify::Id: Clusters::Identify::DispatchServerCommand(apCommandObj, aCommandPath, aReader); break; case Clusters::LevelControl::Id: Clusters::LevelControl::DispatchServerCommand(apCommandObj, aCommandPath, aReader); break; case Clusters::LowPower::Id: Clusters::LowPower::DispatchServerCommand(apCommandObj, aCommandPath, aReader); break; case Clusters::ModeSelect::Id: Clusters::ModeSelect::DispatchServerCommand(apCommandObj, aCommandPath, aReader); break; case Clusters::OtaSoftwareUpdateRequestor::Id: Clusters::OtaSoftwareUpdateRequestor::DispatchServerCommand(apCommandObj, aCommandPath, aReader); break; case Clusters::OnOff::Id: Clusters::OnOff::DispatchServerCommand(apCommandObj, aCommandPath, aReader); break; case Clusters::OperationalCredentials::Id: Clusters::OperationalCredentials::DispatchServerCommand(apCommandObj, aCommandPath, aReader); break; case Clusters::SmokeCoAlarm::Id: Clusters::SmokeCoAlarm::DispatchServerCommand(apCommandObj, aCommandPath, aReader); break; case Clusters::SoftwareDiagnostics::Id: Clusters::SoftwareDiagnostics::DispatchServerCommand(apCommandObj, aCommandPath, aReader); break; case Clusters::TemperatureControl::Id: Clusters::TemperatureControl::DispatchServerCommand(apCommandObj, aCommandPath, aReader); break; case Clusters::Thermostat::Id: Clusters::Thermostat::DispatchServerCommand(apCommandObj, aCommandPath, aReader); break; case Clusters::ThreadNetworkDiagnostics::Id: Clusters::ThreadNetworkDiagnostics::DispatchServerCommand(apCommandObj, aCommandPath, aReader); break; case Clusters::TimeSynchronization::Id: Clusters::TimeSynchronization::DispatchServerCommand(apCommandObj, aCommandPath, aReader); break; case Clusters::UnitTesting::Id: Clusters::UnitTesting::DispatchServerCommand(apCommandObj, aCommandPath, aReader); break; case Clusters::ValveConfigurationAndControl::Id: Clusters::ValveConfigurationAndControl::DispatchServerCommand(apCommandObj, aCommandPath, aReader); break; case Clusters::WiFiNetworkDiagnostics::Id: Clusters::WiFiNetworkDiagnostics::DispatchServerCommand(apCommandObj, aCommandPath, aReader); break; case Clusters::WindowCovering::Id: Clusters::WindowCovering::DispatchServerCommand(apCommandObj, aCommandPath, aReader); break; default: ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mClusterId)); apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCluster); break; } } } // namespace app } // namespace chip