Use chip::app::ConcreteCommandPath for DispatchSingleClusterCommand, DispatchSingleClusterCommandResponse and ServerClusterCommandExists (#10226)
* Use chip::app::ConcreteCommandPath for DispatchSingleClusterCommand, DispatchSingleClusterCommandResponse and ServerClusterCommandExists
* Update generated content
diff --git a/examples/chip-tool/commands/clusters/ModelCommand.cpp b/examples/chip-tool/commands/clusters/ModelCommand.cpp
index c6a7c65..35946ec 100644
--- a/examples/chip-tool/commands/clusters/ModelCommand.cpp
+++ b/examples/chip-tool/commands/clusters/ModelCommand.cpp
@@ -23,17 +23,6 @@
using namespace ::chip;
-void DispatchSingleClusterCommand(chip::ClusterId aClusterId, chip::CommandId aCommandId, chip::EndpointId aEndPointId,
- chip::TLV::TLVReader & aReader, Command * apCommandObj)
-{
- ChipLogDetail(Controller,
- "Received Cluster Command: Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI " Endpoint=%" PRIx16,
- ChipLogValueMEI(aClusterId), ChipLogValueMEI(aCommandId), aEndPointId);
- ChipLogError(
- Controller,
- "Default DispatchSingleClusterCommand is called, this should be replaced by actual dispatched for cluster commands");
-}
-
CHIP_ERROR ModelCommand::Run()
{
CHIP_ERROR err = CHIP_NO_ERROR;
diff --git a/src/app/CommandHandler.cpp b/src/app/CommandHandler.cpp
index ed1c7c5..98a6d68 100644
--- a/src/app/CommandHandler.cpp
+++ b/src/app/CommandHandler.cpp
@@ -86,14 +86,18 @@
err = aCommandElement.GetCommandPath(&commandPath);
SuccessOrExit(err);
+
err = commandPath.GetClusterId(&clusterId);
SuccessOrExit(err);
+
err = commandPath.GetCommandId(&commandId);
SuccessOrExit(err);
+
err = commandPath.GetEndpointId(&endpointId);
SuccessOrExit(err);
- VerifyOrExit(ServerClusterCommandExists(clusterId, commandId, endpointId), err = CHIP_ERROR_INVALID_PROFILE_ID);
+ VerifyOrExit(ServerClusterCommandExists(ConcreteCommandPath(endpointId, clusterId, commandId)),
+ err = CHIP_ERROR_INVALID_PROFILE_ID);
err = aCommandElement.GetData(&commandDataReader);
if (CHIP_END_OF_TLV == err)
@@ -103,7 +107,7 @@
}
if (CHIP_NO_ERROR == err)
{
- DispatchSingleClusterCommand(clusterId, commandId, endpointId, commandDataReader, this);
+ DispatchSingleClusterCommand(ConcreteCommandPath(endpointId, clusterId, commandId), commandDataReader, this);
}
exit:
diff --git a/src/app/CommandSender.cpp b/src/app/CommandSender.cpp
index f7f549f..25e1b74 100644
--- a/src/app/CommandSender.cpp
+++ b/src/app/CommandSender.cpp
@@ -130,6 +130,7 @@
err = commandPath.GetClusterId(&clusterId);
SuccessOrExit(err);
+
err = commandPath.GetCommandId(&commandId);
SuccessOrExit(err);
@@ -153,7 +154,7 @@
err = aCommandElement.GetData(&commandDataReader);
SuccessOrExit(err);
// TODO(#4503): Should call callbacks of cluster that sends the command.
- DispatchSingleClusterResponseCommand(clusterId, commandId, endpointId, commandDataReader, this);
+ DispatchSingleClusterResponseCommand(ConcreteCommandPath(endpointId, clusterId, commandId), commandDataReader, this);
}
exit:
diff --git a/src/app/InteractionModelEngine.h b/src/app/InteractionModelEngine.h
index 3e0dd9e..30d5844 100644
--- a/src/app/InteractionModelEngine.h
+++ b/src/app/InteractionModelEngine.h
@@ -41,6 +41,7 @@
#include <app/Command.h>
#include <app/CommandHandler.h>
#include <app/CommandSender.h>
+#include <app/ConcreteCommandPath.h>
#include <app/InteractionModelDelegate.h>
#include <app/ReadClient.h>
#include <app/ReadHandler.h>
@@ -210,10 +211,10 @@
ClusterInfo * mpNextAvailableClusterInfo = nullptr;
};
-void DispatchSingleClusterCommand(chip::ClusterId aClusterId, chip::CommandId aCommandId, chip::EndpointId aEndPointId,
- chip::TLV::TLVReader & aReader, CommandHandler * apCommandObj);
-void DispatchSingleClusterResponseCommand(chip::ClusterId aClusterId, chip::CommandId aCommandId, chip::EndpointId aEndPointId,
- chip::TLV::TLVReader & aReader, CommandSender * apCommandObj);
+void DispatchSingleClusterCommand(const ConcreteCommandPath & aCommandPath, chip::TLV::TLVReader & aReader,
+ CommandHandler * apCommandObj);
+void DispatchSingleClusterResponseCommand(const ConcreteCommandPath & aCommandPath, chip::TLV::TLVReader & aReader,
+ CommandSender * apCommandObj);
/**
* Check whether the given cluster exists on the given endpoint and supports the given command.
@@ -225,7 +226,7 @@
* @retval True if the endpoint contains the server side of the given cluster and that cluster implements the given command, false
* otherwise.
*/
-bool ServerClusterCommandExists(chip::ClusterId aClusterId, chip::CommandId aCommandId, chip::EndpointId aEndPointId);
+bool ServerClusterCommandExists(const ConcreteCommandPath & aCommandPath);
/**
* Fetch attribute value and version info and write to the TLVWriter provided.
diff --git a/src/app/tests/TestCommandInteraction.cpp b/src/app/tests/TestCommandInteraction.cpp
index fff01f0..3b7f929 100644
--- a/src/app/tests/TestCommandInteraction.cpp
+++ b/src/app/tests/TestCommandInteraction.cpp
@@ -65,33 +65,33 @@
namespace app {
-void DispatchSingleClusterCommand(chip::ClusterId aClusterId, chip::CommandId aCommandId, chip::EndpointId aEndPointId,
- chip::TLV::TLVReader & aReader, CommandHandler * apCommandObj)
+void DispatchSingleClusterCommand(const ConcreteCommandPath & aCommandPath, chip::TLV::TLVReader & aReader,
+ CommandHandler * apCommandObj)
{
- chip::app::ConcreteCommandPath commandPath(aEndPointId, aClusterId, aCommandId);
-
ChipLogDetail(Controller,
- "Received Cluster Command: Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI " Endpoint=%" PRIx16,
- ChipLogValueMEI(aClusterId), ChipLogValueMEI(aCommandId), aEndPointId);
+ "Received Cluster Command: Endpoint=%" PRIx16 " Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI,
+ aCommandPath.mEndpointId, ChipLogValueMEI(aCommandPath.mClusterId), ChipLogValueMEI(aCommandPath.mCommandId));
- apCommandObj->AddStatusCode(commandPath, Protocols::SecureChannel::GeneralStatusCode::kSuccess, Protocols::SecureChannel::Id,
+ apCommandObj->AddStatusCode(aCommandPath, Protocols::SecureChannel::GeneralStatusCode::kSuccess, Protocols::SecureChannel::Id,
Protocols::InteractionModel::Status::Success);
chip::isCommandDispatched = true;
}
-void DispatchSingleClusterResponseCommand(chip::ClusterId aClusterId, chip::CommandId aCommandId, chip::EndpointId aEndPointId,
- chip::TLV::TLVReader & aReader, CommandSender * apCommandObj)
+void DispatchSingleClusterResponseCommand(const ConcreteCommandPath & aCommandPath, chip::TLV::TLVReader & aReader,
+ CommandSender * apCommandObj)
{
- ChipLogDetail(Controller, "Received Cluster Command: Cluster=%" PRIx32 " Command=%" PRIx32 " Endpoint=%" PRIx16, aClusterId,
- aCommandId, aEndPointId);
+ ChipLogDetail(Controller,
+ "Received Cluster Command: Endpoint=%" PRIx16 " Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI,
+ aCommandPath.mEndpointId, ChipLogValueMEI(aCommandPath.mClusterId), ChipLogValueMEI(aCommandPath.mCommandId));
// Nothing todo.
}
-bool ServerClusterCommandExists(chip::ClusterId aClusterId, chip::CommandId aCommandId, chip::EndpointId aEndPointId)
+bool ServerClusterCommandExists(const ConcreteCommandPath & aCommandPath)
{
// Mock cluster catalog, only support one command on one cluster on one endpoint.
- return (aEndPointId == kTestEndpointId && aClusterId == kTestClusterId && aCommandId == kTestCommandId);
+ return (aCommandPath.mEndpointId == kTestEndpointId && aCommandPath.mClusterId == kTestClusterId &&
+ aCommandPath.mCommandId == kTestCommandId);
}
class TestCommandInteraction
diff --git a/src/app/tests/integration/chip_im_initiator.cpp b/src/app/tests/integration/chip_im_initiator.cpp
index a4d6746..24cc32c 100644
--- a/src/app/tests/integration/chip_im_initiator.cpp
+++ b/src/app/tests/integration/chip_im_initiator.cpp
@@ -620,22 +620,23 @@
namespace chip {
namespace app {
-bool ServerClusterCommandExists(chip::ClusterId aClusterId, chip::CommandId aCommandId, chip::EndpointId aEndPointId)
+bool ServerClusterCommandExists(const ConcreteCommandPath & aCommandPath)
{
// Always return true in test.
return true;
}
-void DispatchSingleClusterCommand(chip::ClusterId aClusterId, chip::CommandId aCommandId, chip::EndpointId aEndPointId,
- chip::TLV::TLVReader & aReader, CommandHandler * apCommandObj)
+void DispatchSingleClusterCommand(const ConcreteCommandPath & aCommandPath, chip::TLV::TLVReader & aReader,
+ CommandHandler * apCommandObj)
{
// Nothing todo.
}
-void DispatchSingleClusterResponseCommand(chip::ClusterId aClusterId, chip::CommandId aCommandId, chip::EndpointId aEndPointId,
- chip::TLV::TLVReader & aReader, CommandSender * apCommandObj)
+void DispatchSingleClusterResponseCommand(const ConcreteCommandPath & aCommandPath, chip::TLV::TLVReader & aReader,
+ CommandSender * apCommandObj)
{
- if (aClusterId != kTestClusterId || aCommandId != kTestCommandId || aEndPointId != kTestEndpointId)
+ if (aCommandPath.mClusterId != kTestClusterId || aCommandPath.mCommandId != kTestCommandId ||
+ aCommandPath.mEndpointId != kTestEndpointId)
{
return;
}
diff --git a/src/app/tests/integration/chip_im_responder.cpp b/src/app/tests/integration/chip_im_responder.cpp
index 97d11f8..10f86ed 100644
--- a/src/app/tests/integration/chip_im_responder.cpp
+++ b/src/app/tests/integration/chip_im_responder.cpp
@@ -44,18 +44,19 @@
namespace chip {
namespace app {
-bool ServerClusterCommandExists(chip::ClusterId aClusterId, chip::CommandId aCommandId, chip::EndpointId aEndPointId)
+bool ServerClusterCommandExists(const ConcreteCommandPath & aCommandPath)
{
// The Mock cluster catalog -- only have one command on one cluster on one endpoint.
- return (aEndPointId == kTestEndpointId && aClusterId == kTestClusterId && aCommandId == kTestCommandId);
+ return (aCommandPath.mEndpointId == kTestEndpointId && aCommandPath.mClusterId == kTestClusterId &&
+ aCommandPath.mCommandId == kTestCommandId);
}
-void DispatchSingleClusterCommand(chip::ClusterId aClusterId, chip::CommandId aCommandId, chip::EndpointId aEndPointId,
- chip::TLV::TLVReader & aReader, CommandHandler * apCommandObj)
+void DispatchSingleClusterCommand(const ConcreteCommandPath & aCommandPath, chip::TLV::TLVReader & aReader,
+ CommandHandler * apCommandObj)
{
static bool statusCodeFlipper = false;
- if (aClusterId != kTestClusterId || aCommandId != kTestCommandId || aEndPointId != kTestEndpointId)
+ if (!ServerClusterCommandExists(aCommandPath))
{
return;
}
@@ -100,11 +101,12 @@
statusCodeFlipper = !statusCodeFlipper;
}
-void DispatchSingleClusterResponseCommand(chip::ClusterId aClusterId, chip::CommandId aCommandId, chip::EndpointId aEndPointId,
- chip::TLV::TLVReader & aReader, CommandSender * apCommandObj)
+void DispatchSingleClusterResponseCommand(const ConcreteCommandPath & aCommandPath, chip::TLV::TLVReader & aReader,
+ CommandSender * apCommandObj)
{
- ChipLogDetail(Controller, "Received Cluster Command: Cluster=%" PRIx32 " Command=%" PRIx32 " Endpoint=%" PRIx16, aClusterId,
- aCommandId, aEndPointId);
+ ChipLogDetail(Controller,
+ "Received Cluster Command: Endpoint=%" PRIx16 " Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI,
+ aCommandPath.mEndpointId, ChipLogValueMEI(aCommandPath.mClusterId), ChipLogValueMEI(aCommandPath.mCommandId));
// Nothing todo.
}
diff --git a/src/app/util/ember-compatibility-functions.cpp b/src/app/util/ember-compatibility-functions.cpp
index ef552f2..10df674 100644
--- a/src/app/util/ember-compatibility-functions.cpp
+++ b/src/app/util/ember-compatibility-functions.cpp
@@ -133,17 +133,17 @@
} // namespace
-void SetupEmberAfObjects(Command * command, ClusterId clusterId, CommandId commandId, EndpointId endpointId)
+void SetupEmberAfObjects(Command * command, const ConcreteCommandPath & commandPath)
{
Messaging::ExchangeContext * commandExchangeCtx = command->GetExchangeContext();
- imCompatibilityEmberApsFrame.clusterId = clusterId;
- imCompatibilityEmberApsFrame.destinationEndpoint = endpointId;
+ imCompatibilityEmberApsFrame.clusterId = commandPath.mClusterId;
+ imCompatibilityEmberApsFrame.destinationEndpoint = commandPath.mEndpointId;
imCompatibilityEmberApsFrame.sourceEndpoint = 1; // source endpoint is fixed to 1 for now.
imCompatibilityEmberApsFrame.sequence =
(commandExchangeCtx != nullptr ? static_cast<uint8_t>(commandExchangeCtx->GetExchangeId() & 0xFF) : 0);
- imCompatibilityEmberAfCluster.commandId = commandId;
+ imCompatibilityEmberAfCluster.commandId = commandPath.mCommandId;
imCompatibilityEmberAfCluster.apsFrame = &imCompatibilityEmberApsFrame;
imCompatibilityEmberAfCluster.interPanHeader = &imCompatibilityInterpanHeader;
imCompatibilityEmberAfCluster.source = commandExchangeCtx;
@@ -184,11 +184,11 @@
uint8_t attributeData[kAttributeReadBufferSize];
} // namespace
-bool ServerClusterCommandExists(chip::ClusterId aClusterId, chip::CommandId aCommandId, chip::EndpointId aEndPointId)
+bool ServerClusterCommandExists(const ConcreteCommandPath & aCommandPath)
{
// TODO: Currently, we are using cluster catalog from the ember library, this should be modified or replaced after several
// updates to Commands.
- return emberAfContainsServer(aEndPointId, aClusterId);
+ return emberAfContainsServer(aCommandPath.mEndpointId, aCommandPath.mClusterId);
}
CHIP_ERROR ReadSingleClusterData(ClusterInfo & aClusterInfo, TLV::TLVWriter * apWriter, bool * apDataExists)
diff --git a/src/app/util/ember-compatibility-functions.h b/src/app/util/ember-compatibility-functions.h
index 2bb91b4..12f2527 100644
--- a/src/app/util/ember-compatibility-functions.h
+++ b/src/app/util/ember-compatibility-functions.h
@@ -24,6 +24,7 @@
#pragma once
#include <app/Command.h>
+#include <app/ConcreteCommandPath.h>
#include <app/util/af-types.h>
#include <lib/core/CHIPCore.h>
@@ -31,7 +32,7 @@
namespace app {
namespace Compatibility {
-void SetupEmberAfObjects(Command * command, ClusterId clusterId, CommandId commandId, EndpointId endpointId);
+void SetupEmberAfObjects(Command * command, const ConcreteCommandPath & commandPath);
bool IMEmberAfSendDefaultResponseWithCallback(EmberAfStatus status);
void ResetEmberAfObjects();
diff --git a/src/app/zap-templates/templates/app/im-cluster-command-handler.zapt b/src/app/zap-templates/templates/app/im-cluster-command-handler.zapt
index ed27a13..31103b2 100644
--- a/src/app/zap-templates/templates/app/im-cluster-command-handler.zapt
+++ b/src/app/zap-templates/templates/app/im-cluster-command-handler.zapt
@@ -89,64 +89,70 @@
} // namespace Clusters
-void DispatchSingleClusterCommand(ClusterId aClusterId, CommandId aCommandId, EndpointId aEndPointId,
- TLV::TLVReader & aReader, CommandHandler * apCommandObj)
+void DispatchSingleClusterCommand(const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aReader, CommandHandler * apCommandObj)
{
- ChipLogDetail(Zcl, "Received Cluster Command: Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI " Endpoint=%" PRIx16, ChipLogValueMEI(aClusterId),
- ChipLogValueMEI(aCommandId), aEndPointId);
- Compatibility::SetupEmberAfObjects(apCommandObj, aClusterId, aCommandId, aEndPointId);
- ConcreteCommandPath commandPath(aEndPointId, aClusterId, aCommandId);
+ ChipLogDetail(Zcl, "Received Cluster Command: Endpoint=%" PRIx16 " Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI, aCommandPath.mEndpointId, ChipLogValueMEI(aCommandPath.mClusterId), ChipLogValueMEI(aCommandPath.mCommandId));
+
+ Compatibility::SetupEmberAfObjects(apCommandObj, aCommandPath);
+
TLV::TLVType dataTlvType;
SuccessOrExit(aReader.EnterContainer(dataTlvType));
- switch (aClusterId)
+ switch (aCommandPath.mClusterId)
{
{{#chip_server_clusters}}
{{#if (user_cluster_has_enabled_command name side)}}
case Clusters::{{asUpperCamelCase name}}::Id:
- Clusters::{{asUpperCamelCase name}}::Dispatch{{asUpperCamelCase side}}Command(apCommandObj, commandPath, aReader);
+ Clusters::{{asUpperCamelCase name}}::Dispatch{{asUpperCamelCase side}}Command(apCommandObj, aCommandPath, aReader);
break;
{{/if}}
{{/chip_server_clusters}}
default:
- // Unrecognized cluster ID, error status will apply.
- apCommandObj->AddStatusCode(commandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound, Protocols::SecureChannel::Id,
- Protocols::InteractionModel::Status::InvalidCommand);
- ChipLogError(Zcl, "Unknown cluster %" PRIx32, aClusterId);
+ ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mClusterId));
+ apCommandObj->AddStatusCode(
+ aCommandPath,
+ Protocols::SecureChannel::GeneralStatusCode::kNotFound,
+ Protocols::InteractionModel::Id,
+ Protocols::InteractionModel::Status::UnsupportedCluster
+ );
break;
}
+
exit:
- Compatibility::ResetEmberAfObjects();
aReader.ExitContainer(dataTlvType);
+ Compatibility::ResetEmberAfObjects();
}
-void DispatchSingleClusterResponseCommand(ClusterId aClusterId, CommandId aCommandId, EndpointId aEndPointId,
- TLV::TLVReader & aReader, CommandSender * apCommandObj)
+void DispatchSingleClusterResponseCommand(const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aReader, CommandSender * apCommandObj)
{
- ChipLogDetail(Zcl, "Received Cluster Command: Cluster=%" PRIx32 " Command=%" PRIx32 " Endpoint=%" PRIx16, aClusterId,
- aCommandId, aEndPointId);
- Compatibility::SetupEmberAfObjects(apCommandObj, aClusterId, aCommandId, aEndPointId);
- ConcreteCommandPath commandPath(aEndPointId, aClusterId, aCommandId);
+ ChipLogDetail(Zcl, "Received Cluster Command: Endpoint=%" PRIx16 " Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI, aCommandPath.mEndpointId, ChipLogValueMEI(aCommandPath.mClusterId), ChipLogValueMEI(aCommandPath.mCommandId));
+
+ Compatibility::SetupEmberAfObjects(apCommandObj, aCommandPath);
+
TLV::TLVType dataTlvType;
SuccessOrExit(aReader.EnterContainer(dataTlvType));
- switch (aClusterId)
+ switch (aCommandPath.mClusterId)
{
{{#chip_client_clusters}}
{{#if (user_cluster_has_enabled_command name side)}}
case Clusters::{{asUpperCamelCase name}}::Id:
- Clusters::{{asUpperCamelCase name}}::Dispatch{{asUpperCamelCase side}}Command(apCommandObj, commandPath, aReader);
+ Clusters::{{asUpperCamelCase name}}::Dispatch{{asUpperCamelCase side}}Command(apCommandObj, aCommandPath, aReader);
break;
{{/if}}
{{/chip_client_clusters}}
default:
- // Unrecognized cluster ID, error status will apply.
- apCommandObj->AddStatusCode(commandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound, Protocols::SecureChannel::Id,
- Protocols::InteractionModel::Status::InvalidCommand);
- ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aClusterId));
+ ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mClusterId));
+ apCommandObj->AddStatusCode(
+ aCommandPath,
+ Protocols::SecureChannel::GeneralStatusCode::kNotFound,
+ Protocols::InteractionModel::Id,
+ Protocols::InteractionModel::Status::UnsupportedCluster
+ );
break;
}
+
exit:
- Compatibility::ResetEmberAfObjects();
aReader.ExitContainer(dataTlvType);
+ Compatibility::ResetEmberAfObjects();
}
} // namespace app
diff --git a/zzz_generated/all-clusters-app/zap-generated/IMClusterCommandHandler.cpp b/zzz_generated/all-clusters-app/zap-generated/IMClusterCommandHandler.cpp
index df0788a..7ed441d 100644
--- a/zzz_generated/all-clusters-app/zap-generated/IMClusterCommandHandler.cpp
+++ b/zzz_generated/all-clusters-app/zap-generated/IMClusterCommandHandler.cpp
@@ -7376,122 +7376,123 @@
} // namespace Clusters
-void DispatchSingleClusterCommand(ClusterId aClusterId, CommandId aCommandId, EndpointId aEndPointId, TLV::TLVReader & aReader,
- CommandHandler * apCommandObj)
+void DispatchSingleClusterCommand(const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aReader, CommandHandler * apCommandObj)
{
- ChipLogDetail(Zcl, "Received Cluster Command: Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI " Endpoint=%" PRIx16,
- ChipLogValueMEI(aClusterId), ChipLogValueMEI(aCommandId), aEndPointId);
- Compatibility::SetupEmberAfObjects(apCommandObj, aClusterId, aCommandId, aEndPointId);
- ConcreteCommandPath commandPath(aEndPointId, aClusterId, aCommandId);
+ ChipLogDetail(Zcl, "Received Cluster Command: Endpoint=%" PRIx16 " Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI,
+ aCommandPath.mEndpointId, ChipLogValueMEI(aCommandPath.mClusterId), ChipLogValueMEI(aCommandPath.mCommandId));
+
+ Compatibility::SetupEmberAfObjects(apCommandObj, aCommandPath);
+
TLV::TLVType dataTlvType;
SuccessOrExit(aReader.EnterContainer(dataTlvType));
- switch (aClusterId)
+ switch (aCommandPath.mClusterId)
{
case Clusters::AdministratorCommissioning::Id:
- Clusters::AdministratorCommissioning::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::AdministratorCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::BarrierControl::Id:
- Clusters::BarrierControl::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::BarrierControl::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::Basic::Id:
- Clusters::Basic::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::Basic::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::Binding::Id:
- Clusters::Binding::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::Binding::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::ColorControl::Id:
- Clusters::ColorControl::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::ColorControl::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::DiagnosticLogs::Id:
- Clusters::DiagnosticLogs::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::DiagnosticLogs::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::DoorLock::Id:
- Clusters::DoorLock::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::DoorLock::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::EthernetNetworkDiagnostics::Id:
- Clusters::EthernetNetworkDiagnostics::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::EthernetNetworkDiagnostics::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::GeneralCommissioning::Id:
- Clusters::GeneralCommissioning::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::GeneralCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::Groups::Id:
- Clusters::Groups::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::Groups::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::IasZone::Id:
- Clusters::IasZone::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::IasZone::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::Identify::Id:
- Clusters::Identify::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::Identify::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::LevelControl::Id:
- Clusters::LevelControl::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::LevelControl::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::LowPower::Id:
- Clusters::LowPower::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::LowPower::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::NetworkCommissioning::Id:
- Clusters::NetworkCommissioning::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::NetworkCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::OtaSoftwareUpdateProvider::Id:
- Clusters::OtaSoftwareUpdateProvider::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::OtaSoftwareUpdateProvider::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::OnOff::Id:
- Clusters::OnOff::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::OnOff::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::OperationalCredentials::Id:
- Clusters::OperationalCredentials::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::OperationalCredentials::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::Scenes::Id:
- Clusters::Scenes::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::Scenes::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::SoftwareDiagnostics::Id:
- Clusters::SoftwareDiagnostics::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::SoftwareDiagnostics::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::TestCluster::Id:
- Clusters::TestCluster::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::TestCluster::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::ThreadNetworkDiagnostics::Id:
- Clusters::ThreadNetworkDiagnostics::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::ThreadNetworkDiagnostics::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::WiFiNetworkDiagnostics::Id:
- Clusters::WiFiNetworkDiagnostics::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::WiFiNetworkDiagnostics::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::WindowCovering::Id:
- Clusters::WindowCovering::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::WindowCovering::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
default:
- // Unrecognized cluster ID, error status will apply.
- apCommandObj->AddStatusCode(commandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
- Protocols::SecureChannel::Id, Protocols::InteractionModel::Status::InvalidCommand);
- ChipLogError(Zcl, "Unknown cluster %" PRIx32, aClusterId);
+ ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mClusterId));
+ apCommandObj->AddStatusCode(aCommandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
+ Protocols::InteractionModel::Id, Protocols::InteractionModel::Status::UnsupportedCluster);
break;
}
+
exit:
- Compatibility::ResetEmberAfObjects();
aReader.ExitContainer(dataTlvType);
+ Compatibility::ResetEmberAfObjects();
}
-void DispatchSingleClusterResponseCommand(ClusterId aClusterId, CommandId aCommandId, EndpointId aEndPointId,
- TLV::TLVReader & aReader, CommandSender * apCommandObj)
+void DispatchSingleClusterResponseCommand(const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aReader,
+ CommandSender * apCommandObj)
{
- ChipLogDetail(Zcl, "Received Cluster Command: Cluster=%" PRIx32 " Command=%" PRIx32 " Endpoint=%" PRIx16, aClusterId,
- aCommandId, aEndPointId);
- Compatibility::SetupEmberAfObjects(apCommandObj, aClusterId, aCommandId, aEndPointId);
- ConcreteCommandPath commandPath(aEndPointId, aClusterId, aCommandId);
+ ChipLogDetail(Zcl, "Received Cluster Command: Endpoint=%" PRIx16 " Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI,
+ aCommandPath.mEndpointId, ChipLogValueMEI(aCommandPath.mClusterId), ChipLogValueMEI(aCommandPath.mCommandId));
+
+ Compatibility::SetupEmberAfObjects(apCommandObj, aCommandPath);
+
TLV::TLVType dataTlvType;
SuccessOrExit(aReader.EnterContainer(dataTlvType));
- switch (aClusterId)
+ switch (aCommandPath.mClusterId)
{
default:
- // Unrecognized cluster ID, error status will apply.
- apCommandObj->AddStatusCode(commandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
- Protocols::SecureChannel::Id, Protocols::InteractionModel::Status::InvalidCommand);
- ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aClusterId));
+ ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mClusterId));
+ apCommandObj->AddStatusCode(aCommandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
+ Protocols::InteractionModel::Id, Protocols::InteractionModel::Status::UnsupportedCluster);
break;
}
+
exit:
- Compatibility::ResetEmberAfObjects();
aReader.ExitContainer(dataTlvType);
+ Compatibility::ResetEmberAfObjects();
}
} // namespace app
diff --git a/zzz_generated/bridge-app/zap-generated/IMClusterCommandHandler.cpp b/zzz_generated/bridge-app/zap-generated/IMClusterCommandHandler.cpp
index e3598d5..4395bab 100644
--- a/zzz_generated/bridge-app/zap-generated/IMClusterCommandHandler.cpp
+++ b/zzz_generated/bridge-app/zap-generated/IMClusterCommandHandler.cpp
@@ -2392,71 +2392,72 @@
} // namespace Clusters
-void DispatchSingleClusterCommand(ClusterId aClusterId, CommandId aCommandId, EndpointId aEndPointId, TLV::TLVReader & aReader,
- CommandHandler * apCommandObj)
+void DispatchSingleClusterCommand(const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aReader, CommandHandler * apCommandObj)
{
- ChipLogDetail(Zcl, "Received Cluster Command: Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI " Endpoint=%" PRIx16,
- ChipLogValueMEI(aClusterId), ChipLogValueMEI(aCommandId), aEndPointId);
- Compatibility::SetupEmberAfObjects(apCommandObj, aClusterId, aCommandId, aEndPointId);
- ConcreteCommandPath commandPath(aEndPointId, aClusterId, aCommandId);
+ ChipLogDetail(Zcl, "Received Cluster Command: Endpoint=%" PRIx16 " Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI,
+ aCommandPath.mEndpointId, ChipLogValueMEI(aCommandPath.mClusterId), ChipLogValueMEI(aCommandPath.mCommandId));
+
+ Compatibility::SetupEmberAfObjects(apCommandObj, aCommandPath);
+
TLV::TLVType dataTlvType;
SuccessOrExit(aReader.EnterContainer(dataTlvType));
- switch (aClusterId)
+ switch (aCommandPath.mClusterId)
{
case Clusters::AdministratorCommissioning::Id:
- Clusters::AdministratorCommissioning::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::AdministratorCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::DiagnosticLogs::Id:
- Clusters::DiagnosticLogs::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::DiagnosticLogs::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::GeneralCommissioning::Id:
- Clusters::GeneralCommissioning::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::GeneralCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::LevelControl::Id:
- Clusters::LevelControl::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::LevelControl::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::NetworkCommissioning::Id:
- Clusters::NetworkCommissioning::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::NetworkCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::OnOff::Id:
- Clusters::OnOff::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::OnOff::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::OperationalCredentials::Id:
- Clusters::OperationalCredentials::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::OperationalCredentials::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
default:
- // Unrecognized cluster ID, error status will apply.
- apCommandObj->AddStatusCode(commandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
- Protocols::SecureChannel::Id, Protocols::InteractionModel::Status::InvalidCommand);
- ChipLogError(Zcl, "Unknown cluster %" PRIx32, aClusterId);
+ ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mClusterId));
+ apCommandObj->AddStatusCode(aCommandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
+ Protocols::InteractionModel::Id, Protocols::InteractionModel::Status::UnsupportedCluster);
break;
}
+
exit:
- Compatibility::ResetEmberAfObjects();
aReader.ExitContainer(dataTlvType);
+ Compatibility::ResetEmberAfObjects();
}
-void DispatchSingleClusterResponseCommand(ClusterId aClusterId, CommandId aCommandId, EndpointId aEndPointId,
- TLV::TLVReader & aReader, CommandSender * apCommandObj)
+void DispatchSingleClusterResponseCommand(const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aReader,
+ CommandSender * apCommandObj)
{
- ChipLogDetail(Zcl, "Received Cluster Command: Cluster=%" PRIx32 " Command=%" PRIx32 " Endpoint=%" PRIx16, aClusterId,
- aCommandId, aEndPointId);
- Compatibility::SetupEmberAfObjects(apCommandObj, aClusterId, aCommandId, aEndPointId);
- ConcreteCommandPath commandPath(aEndPointId, aClusterId, aCommandId);
+ ChipLogDetail(Zcl, "Received Cluster Command: Endpoint=%" PRIx16 " Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI,
+ aCommandPath.mEndpointId, ChipLogValueMEI(aCommandPath.mClusterId), ChipLogValueMEI(aCommandPath.mCommandId));
+
+ Compatibility::SetupEmberAfObjects(apCommandObj, aCommandPath);
+
TLV::TLVType dataTlvType;
SuccessOrExit(aReader.EnterContainer(dataTlvType));
- switch (aClusterId)
+ switch (aCommandPath.mClusterId)
{
default:
- // Unrecognized cluster ID, error status will apply.
- apCommandObj->AddStatusCode(commandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
- Protocols::SecureChannel::Id, Protocols::InteractionModel::Status::InvalidCommand);
- ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aClusterId));
+ ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mClusterId));
+ apCommandObj->AddStatusCode(aCommandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
+ Protocols::InteractionModel::Id, Protocols::InteractionModel::Status::UnsupportedCluster);
break;
}
+
exit:
- Compatibility::ResetEmberAfObjects();
aReader.ExitContainer(dataTlvType);
+ Compatibility::ResetEmberAfObjects();
}
} // namespace app
diff --git a/zzz_generated/controller-clusters/zap-generated/IMClusterCommandHandler.cpp b/zzz_generated/controller-clusters/zap-generated/IMClusterCommandHandler.cpp
index d8c63a5..3896f19 100644
--- a/zzz_generated/controller-clusters/zap-generated/IMClusterCommandHandler.cpp
+++ b/zzz_generated/controller-clusters/zap-generated/IMClusterCommandHandler.cpp
@@ -5256,98 +5256,99 @@
} // namespace Clusters
-void DispatchSingleClusterCommand(ClusterId aClusterId, CommandId aCommandId, EndpointId aEndPointId, TLV::TLVReader & aReader,
- CommandHandler * apCommandObj)
+void DispatchSingleClusterCommand(const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aReader, CommandHandler * apCommandObj)
{
- ChipLogDetail(Zcl, "Received Cluster Command: Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI " Endpoint=%" PRIx16,
- ChipLogValueMEI(aClusterId), ChipLogValueMEI(aCommandId), aEndPointId);
- Compatibility::SetupEmberAfObjects(apCommandObj, aClusterId, aCommandId, aEndPointId);
- ConcreteCommandPath commandPath(aEndPointId, aClusterId, aCommandId);
+ ChipLogDetail(Zcl, "Received Cluster Command: Endpoint=%" PRIx16 " Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI,
+ aCommandPath.mEndpointId, ChipLogValueMEI(aCommandPath.mClusterId), ChipLogValueMEI(aCommandPath.mCommandId));
+
+ Compatibility::SetupEmberAfObjects(apCommandObj, aCommandPath);
+
TLV::TLVType dataTlvType;
SuccessOrExit(aReader.EnterContainer(dataTlvType));
- switch (aClusterId)
+ switch (aCommandPath.mClusterId)
{
default:
- // Unrecognized cluster ID, error status will apply.
- apCommandObj->AddStatusCode(commandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
- Protocols::SecureChannel::Id, Protocols::InteractionModel::Status::InvalidCommand);
- ChipLogError(Zcl, "Unknown cluster %" PRIx32, aClusterId);
+ ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mClusterId));
+ apCommandObj->AddStatusCode(aCommandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
+ Protocols::InteractionModel::Id, Protocols::InteractionModel::Status::UnsupportedCluster);
break;
}
+
exit:
- Compatibility::ResetEmberAfObjects();
aReader.ExitContainer(dataTlvType);
+ Compatibility::ResetEmberAfObjects();
}
-void DispatchSingleClusterResponseCommand(ClusterId aClusterId, CommandId aCommandId, EndpointId aEndPointId,
- TLV::TLVReader & aReader, CommandSender * apCommandObj)
+void DispatchSingleClusterResponseCommand(const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aReader,
+ CommandSender * apCommandObj)
{
- ChipLogDetail(Zcl, "Received Cluster Command: Cluster=%" PRIx32 " Command=%" PRIx32 " Endpoint=%" PRIx16, aClusterId,
- aCommandId, aEndPointId);
- Compatibility::SetupEmberAfObjects(apCommandObj, aClusterId, aCommandId, aEndPointId);
- ConcreteCommandPath commandPath(aEndPointId, aClusterId, aCommandId);
+ ChipLogDetail(Zcl, "Received Cluster Command: Endpoint=%" PRIx16 " Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI,
+ aCommandPath.mEndpointId, ChipLogValueMEI(aCommandPath.mClusterId), ChipLogValueMEI(aCommandPath.mCommandId));
+
+ Compatibility::SetupEmberAfObjects(apCommandObj, aCommandPath);
+
TLV::TLVType dataTlvType;
SuccessOrExit(aReader.EnterContainer(dataTlvType));
- switch (aClusterId)
+ switch (aCommandPath.mClusterId)
{
case Clusters::AccountLogin::Id:
- Clusters::AccountLogin::DispatchClientCommand(apCommandObj, commandPath, aReader);
+ Clusters::AccountLogin::DispatchClientCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::ApplicationLauncher::Id:
- Clusters::ApplicationLauncher::DispatchClientCommand(apCommandObj, commandPath, aReader);
+ Clusters::ApplicationLauncher::DispatchClientCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::ContentLauncher::Id:
- Clusters::ContentLauncher::DispatchClientCommand(apCommandObj, commandPath, aReader);
+ Clusters::ContentLauncher::DispatchClientCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::DoorLock::Id:
- Clusters::DoorLock::DispatchClientCommand(apCommandObj, commandPath, aReader);
+ Clusters::DoorLock::DispatchClientCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::GeneralCommissioning::Id:
- Clusters::GeneralCommissioning::DispatchClientCommand(apCommandObj, commandPath, aReader);
+ Clusters::GeneralCommissioning::DispatchClientCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::Groups::Id:
- Clusters::Groups::DispatchClientCommand(apCommandObj, commandPath, aReader);
+ Clusters::Groups::DispatchClientCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::Identify::Id:
- Clusters::Identify::DispatchClientCommand(apCommandObj, commandPath, aReader);
+ Clusters::Identify::DispatchClientCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::KeypadInput::Id:
- Clusters::KeypadInput::DispatchClientCommand(apCommandObj, commandPath, aReader);
+ Clusters::KeypadInput::DispatchClientCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::MediaPlayback::Id:
- Clusters::MediaPlayback::DispatchClientCommand(apCommandObj, commandPath, aReader);
+ Clusters::MediaPlayback::DispatchClientCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::NetworkCommissioning::Id:
- Clusters::NetworkCommissioning::DispatchClientCommand(apCommandObj, commandPath, aReader);
+ Clusters::NetworkCommissioning::DispatchClientCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::OtaSoftwareUpdateProvider::Id:
- Clusters::OtaSoftwareUpdateProvider::DispatchClientCommand(apCommandObj, commandPath, aReader);
+ Clusters::OtaSoftwareUpdateProvider::DispatchClientCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::OperationalCredentials::Id:
- Clusters::OperationalCredentials::DispatchClientCommand(apCommandObj, commandPath, aReader);
+ Clusters::OperationalCredentials::DispatchClientCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::Scenes::Id:
- Clusters::Scenes::DispatchClientCommand(apCommandObj, commandPath, aReader);
+ Clusters::Scenes::DispatchClientCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::TvChannel::Id:
- Clusters::TvChannel::DispatchClientCommand(apCommandObj, commandPath, aReader);
+ Clusters::TvChannel::DispatchClientCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::TargetNavigator::Id:
- Clusters::TargetNavigator::DispatchClientCommand(apCommandObj, commandPath, aReader);
+ Clusters::TargetNavigator::DispatchClientCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::TestCluster::Id:
- Clusters::TestCluster::DispatchClientCommand(apCommandObj, commandPath, aReader);
+ Clusters::TestCluster::DispatchClientCommand(apCommandObj, aCommandPath, aReader);
break;
default:
- // Unrecognized cluster ID, error status will apply.
- apCommandObj->AddStatusCode(commandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
- Protocols::SecureChannel::Id, Protocols::InteractionModel::Status::InvalidCommand);
- ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aClusterId));
+ ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mClusterId));
+ apCommandObj->AddStatusCode(aCommandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
+ Protocols::InteractionModel::Id, Protocols::InteractionModel::Status::UnsupportedCluster);
break;
}
+
exit:
- Compatibility::ResetEmberAfObjects();
aReader.ExitContainer(dataTlvType);
+ Compatibility::ResetEmberAfObjects();
}
} // namespace app
diff --git a/zzz_generated/lighting-app/zap-generated/IMClusterCommandHandler.cpp b/zzz_generated/lighting-app/zap-generated/IMClusterCommandHandler.cpp
index 8d1787b..1750261 100644
--- a/zzz_generated/lighting-app/zap-generated/IMClusterCommandHandler.cpp
+++ b/zzz_generated/lighting-app/zap-generated/IMClusterCommandHandler.cpp
@@ -4074,86 +4074,87 @@
} // namespace Clusters
-void DispatchSingleClusterCommand(ClusterId aClusterId, CommandId aCommandId, EndpointId aEndPointId, TLV::TLVReader & aReader,
- CommandHandler * apCommandObj)
+void DispatchSingleClusterCommand(const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aReader, CommandHandler * apCommandObj)
{
- ChipLogDetail(Zcl, "Received Cluster Command: Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI " Endpoint=%" PRIx16,
- ChipLogValueMEI(aClusterId), ChipLogValueMEI(aCommandId), aEndPointId);
- Compatibility::SetupEmberAfObjects(apCommandObj, aClusterId, aCommandId, aEndPointId);
- ConcreteCommandPath commandPath(aEndPointId, aClusterId, aCommandId);
+ ChipLogDetail(Zcl, "Received Cluster Command: Endpoint=%" PRIx16 " Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI,
+ aCommandPath.mEndpointId, ChipLogValueMEI(aCommandPath.mClusterId), ChipLogValueMEI(aCommandPath.mCommandId));
+
+ Compatibility::SetupEmberAfObjects(apCommandObj, aCommandPath);
+
TLV::TLVType dataTlvType;
SuccessOrExit(aReader.EnterContainer(dataTlvType));
- switch (aClusterId)
+ switch (aCommandPath.mClusterId)
{
case Clusters::AdministratorCommissioning::Id:
- Clusters::AdministratorCommissioning::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::AdministratorCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::ColorControl::Id:
- Clusters::ColorControl::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::ColorControl::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::DiagnosticLogs::Id:
- Clusters::DiagnosticLogs::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::DiagnosticLogs::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::EthernetNetworkDiagnostics::Id:
- Clusters::EthernetNetworkDiagnostics::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::EthernetNetworkDiagnostics::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::GeneralCommissioning::Id:
- Clusters::GeneralCommissioning::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::GeneralCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::LevelControl::Id:
- Clusters::LevelControl::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::LevelControl::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::NetworkCommissioning::Id:
- Clusters::NetworkCommissioning::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::NetworkCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::OnOff::Id:
- Clusters::OnOff::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::OnOff::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::OperationalCredentials::Id:
- Clusters::OperationalCredentials::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::OperationalCredentials::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::SoftwareDiagnostics::Id:
- Clusters::SoftwareDiagnostics::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::SoftwareDiagnostics::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::ThreadNetworkDiagnostics::Id:
- Clusters::ThreadNetworkDiagnostics::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::ThreadNetworkDiagnostics::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::WiFiNetworkDiagnostics::Id:
- Clusters::WiFiNetworkDiagnostics::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::WiFiNetworkDiagnostics::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
default:
- // Unrecognized cluster ID, error status will apply.
- apCommandObj->AddStatusCode(commandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
- Protocols::SecureChannel::Id, Protocols::InteractionModel::Status::InvalidCommand);
- ChipLogError(Zcl, "Unknown cluster %" PRIx32, aClusterId);
+ ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mClusterId));
+ apCommandObj->AddStatusCode(aCommandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
+ Protocols::InteractionModel::Id, Protocols::InteractionModel::Status::UnsupportedCluster);
break;
}
+
exit:
- Compatibility::ResetEmberAfObjects();
aReader.ExitContainer(dataTlvType);
+ Compatibility::ResetEmberAfObjects();
}
-void DispatchSingleClusterResponseCommand(ClusterId aClusterId, CommandId aCommandId, EndpointId aEndPointId,
- TLV::TLVReader & aReader, CommandSender * apCommandObj)
+void DispatchSingleClusterResponseCommand(const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aReader,
+ CommandSender * apCommandObj)
{
- ChipLogDetail(Zcl, "Received Cluster Command: Cluster=%" PRIx32 " Command=%" PRIx32 " Endpoint=%" PRIx16, aClusterId,
- aCommandId, aEndPointId);
- Compatibility::SetupEmberAfObjects(apCommandObj, aClusterId, aCommandId, aEndPointId);
- ConcreteCommandPath commandPath(aEndPointId, aClusterId, aCommandId);
+ ChipLogDetail(Zcl, "Received Cluster Command: Endpoint=%" PRIx16 " Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI,
+ aCommandPath.mEndpointId, ChipLogValueMEI(aCommandPath.mClusterId), ChipLogValueMEI(aCommandPath.mCommandId));
+
+ Compatibility::SetupEmberAfObjects(apCommandObj, aCommandPath);
+
TLV::TLVType dataTlvType;
SuccessOrExit(aReader.EnterContainer(dataTlvType));
- switch (aClusterId)
+ switch (aCommandPath.mClusterId)
{
default:
- // Unrecognized cluster ID, error status will apply.
- apCommandObj->AddStatusCode(commandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
- Protocols::SecureChannel::Id, Protocols::InteractionModel::Status::InvalidCommand);
- ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aClusterId));
+ ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mClusterId));
+ apCommandObj->AddStatusCode(aCommandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
+ Protocols::InteractionModel::Id, Protocols::InteractionModel::Status::UnsupportedCluster);
break;
}
+
exit:
- Compatibility::ResetEmberAfObjects();
aReader.ExitContainer(dataTlvType);
+ Compatibility::ResetEmberAfObjects();
}
} // namespace app
diff --git a/zzz_generated/lock-app/zap-generated/IMClusterCommandHandler.cpp b/zzz_generated/lock-app/zap-generated/IMClusterCommandHandler.cpp
index 63619f1..bb94b39 100644
--- a/zzz_generated/lock-app/zap-generated/IMClusterCommandHandler.cpp
+++ b/zzz_generated/lock-app/zap-generated/IMClusterCommandHandler.cpp
@@ -1861,68 +1861,69 @@
} // namespace Clusters
-void DispatchSingleClusterCommand(ClusterId aClusterId, CommandId aCommandId, EndpointId aEndPointId, TLV::TLVReader & aReader,
- CommandHandler * apCommandObj)
+void DispatchSingleClusterCommand(const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aReader, CommandHandler * apCommandObj)
{
- ChipLogDetail(Zcl, "Received Cluster Command: Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI " Endpoint=%" PRIx16,
- ChipLogValueMEI(aClusterId), ChipLogValueMEI(aCommandId), aEndPointId);
- Compatibility::SetupEmberAfObjects(apCommandObj, aClusterId, aCommandId, aEndPointId);
- ConcreteCommandPath commandPath(aEndPointId, aClusterId, aCommandId);
+ ChipLogDetail(Zcl, "Received Cluster Command: Endpoint=%" PRIx16 " Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI,
+ aCommandPath.mEndpointId, ChipLogValueMEI(aCommandPath.mClusterId), ChipLogValueMEI(aCommandPath.mCommandId));
+
+ Compatibility::SetupEmberAfObjects(apCommandObj, aCommandPath);
+
TLV::TLVType dataTlvType;
SuccessOrExit(aReader.EnterContainer(dataTlvType));
- switch (aClusterId)
+ switch (aCommandPath.mClusterId)
{
case Clusters::AdministratorCommissioning::Id:
- Clusters::AdministratorCommissioning::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::AdministratorCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::DiagnosticLogs::Id:
- Clusters::DiagnosticLogs::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::DiagnosticLogs::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::GeneralCommissioning::Id:
- Clusters::GeneralCommissioning::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::GeneralCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::NetworkCommissioning::Id:
- Clusters::NetworkCommissioning::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::NetworkCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::OnOff::Id:
- Clusters::OnOff::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::OnOff::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::OperationalCredentials::Id:
- Clusters::OperationalCredentials::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::OperationalCredentials::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
default:
- // Unrecognized cluster ID, error status will apply.
- apCommandObj->AddStatusCode(commandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
- Protocols::SecureChannel::Id, Protocols::InteractionModel::Status::InvalidCommand);
- ChipLogError(Zcl, "Unknown cluster %" PRIx32, aClusterId);
+ ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mClusterId));
+ apCommandObj->AddStatusCode(aCommandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
+ Protocols::InteractionModel::Id, Protocols::InteractionModel::Status::UnsupportedCluster);
break;
}
+
exit:
- Compatibility::ResetEmberAfObjects();
aReader.ExitContainer(dataTlvType);
+ Compatibility::ResetEmberAfObjects();
}
-void DispatchSingleClusterResponseCommand(ClusterId aClusterId, CommandId aCommandId, EndpointId aEndPointId,
- TLV::TLVReader & aReader, CommandSender * apCommandObj)
+void DispatchSingleClusterResponseCommand(const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aReader,
+ CommandSender * apCommandObj)
{
- ChipLogDetail(Zcl, "Received Cluster Command: Cluster=%" PRIx32 " Command=%" PRIx32 " Endpoint=%" PRIx16, aClusterId,
- aCommandId, aEndPointId);
- Compatibility::SetupEmberAfObjects(apCommandObj, aClusterId, aCommandId, aEndPointId);
- ConcreteCommandPath commandPath(aEndPointId, aClusterId, aCommandId);
+ ChipLogDetail(Zcl, "Received Cluster Command: Endpoint=%" PRIx16 " Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI,
+ aCommandPath.mEndpointId, ChipLogValueMEI(aCommandPath.mClusterId), ChipLogValueMEI(aCommandPath.mCommandId));
+
+ Compatibility::SetupEmberAfObjects(apCommandObj, aCommandPath);
+
TLV::TLVType dataTlvType;
SuccessOrExit(aReader.EnterContainer(dataTlvType));
- switch (aClusterId)
+ switch (aCommandPath.mClusterId)
{
default:
- // Unrecognized cluster ID, error status will apply.
- apCommandObj->AddStatusCode(commandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
- Protocols::SecureChannel::Id, Protocols::InteractionModel::Status::InvalidCommand);
- ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aClusterId));
+ ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mClusterId));
+ apCommandObj->AddStatusCode(aCommandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
+ Protocols::InteractionModel::Id, Protocols::InteractionModel::Status::UnsupportedCluster);
break;
}
+
exit:
- Compatibility::ResetEmberAfObjects();
aReader.ExitContainer(dataTlvType);
+ Compatibility::ResetEmberAfObjects();
}
} // namespace app
diff --git a/zzz_generated/ota-provider-app/zap-generated/IMClusterCommandHandler.cpp b/zzz_generated/ota-provider-app/zap-generated/IMClusterCommandHandler.cpp
index 121c1fb..db872ce 100644
--- a/zzz_generated/ota-provider-app/zap-generated/IMClusterCommandHandler.cpp
+++ b/zzz_generated/ota-provider-app/zap-generated/IMClusterCommandHandler.cpp
@@ -791,56 +791,57 @@
} // namespace Clusters
-void DispatchSingleClusterCommand(ClusterId aClusterId, CommandId aCommandId, EndpointId aEndPointId, TLV::TLVReader & aReader,
- CommandHandler * apCommandObj)
+void DispatchSingleClusterCommand(const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aReader, CommandHandler * apCommandObj)
{
- ChipLogDetail(Zcl, "Received Cluster Command: Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI " Endpoint=%" PRIx16,
- ChipLogValueMEI(aClusterId), ChipLogValueMEI(aCommandId), aEndPointId);
- Compatibility::SetupEmberAfObjects(apCommandObj, aClusterId, aCommandId, aEndPointId);
- ConcreteCommandPath commandPath(aEndPointId, aClusterId, aCommandId);
+ ChipLogDetail(Zcl, "Received Cluster Command: Endpoint=%" PRIx16 " Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI,
+ aCommandPath.mEndpointId, ChipLogValueMEI(aCommandPath.mClusterId), ChipLogValueMEI(aCommandPath.mCommandId));
+
+ Compatibility::SetupEmberAfObjects(apCommandObj, aCommandPath);
+
TLV::TLVType dataTlvType;
SuccessOrExit(aReader.EnterContainer(dataTlvType));
- switch (aClusterId)
+ switch (aCommandPath.mClusterId)
{
case Clusters::OtaSoftwareUpdateProvider::Id:
- Clusters::OtaSoftwareUpdateProvider::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::OtaSoftwareUpdateProvider::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::OperationalCredentials::Id:
- Clusters::OperationalCredentials::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::OperationalCredentials::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
default:
- // Unrecognized cluster ID, error status will apply.
- apCommandObj->AddStatusCode(commandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
- Protocols::SecureChannel::Id, Protocols::InteractionModel::Status::InvalidCommand);
- ChipLogError(Zcl, "Unknown cluster %" PRIx32, aClusterId);
+ ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mClusterId));
+ apCommandObj->AddStatusCode(aCommandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
+ Protocols::InteractionModel::Id, Protocols::InteractionModel::Status::UnsupportedCluster);
break;
}
+
exit:
- Compatibility::ResetEmberAfObjects();
aReader.ExitContainer(dataTlvType);
+ Compatibility::ResetEmberAfObjects();
}
-void DispatchSingleClusterResponseCommand(ClusterId aClusterId, CommandId aCommandId, EndpointId aEndPointId,
- TLV::TLVReader & aReader, CommandSender * apCommandObj)
+void DispatchSingleClusterResponseCommand(const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aReader,
+ CommandSender * apCommandObj)
{
- ChipLogDetail(Zcl, "Received Cluster Command: Cluster=%" PRIx32 " Command=%" PRIx32 " Endpoint=%" PRIx16, aClusterId,
- aCommandId, aEndPointId);
- Compatibility::SetupEmberAfObjects(apCommandObj, aClusterId, aCommandId, aEndPointId);
- ConcreteCommandPath commandPath(aEndPointId, aClusterId, aCommandId);
+ ChipLogDetail(Zcl, "Received Cluster Command: Endpoint=%" PRIx16 " Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI,
+ aCommandPath.mEndpointId, ChipLogValueMEI(aCommandPath.mClusterId), ChipLogValueMEI(aCommandPath.mCommandId));
+
+ Compatibility::SetupEmberAfObjects(apCommandObj, aCommandPath);
+
TLV::TLVType dataTlvType;
SuccessOrExit(aReader.EnterContainer(dataTlvType));
- switch (aClusterId)
+ switch (aCommandPath.mClusterId)
{
default:
- // Unrecognized cluster ID, error status will apply.
- apCommandObj->AddStatusCode(commandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
- Protocols::SecureChannel::Id, Protocols::InteractionModel::Status::InvalidCommand);
- ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aClusterId));
+ ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mClusterId));
+ apCommandObj->AddStatusCode(aCommandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
+ Protocols::InteractionModel::Id, Protocols::InteractionModel::Status::UnsupportedCluster);
break;
}
+
exit:
- Compatibility::ResetEmberAfObjects();
aReader.ExitContainer(dataTlvType);
+ Compatibility::ResetEmberAfObjects();
}
} // namespace app
diff --git a/zzz_generated/ota-requestor-app/zap-generated/IMClusterCommandHandler.cpp b/zzz_generated/ota-requestor-app/zap-generated/IMClusterCommandHandler.cpp
index 880eba3..39617b5 100644
--- a/zzz_generated/ota-requestor-app/zap-generated/IMClusterCommandHandler.cpp
+++ b/zzz_generated/ota-requestor-app/zap-generated/IMClusterCommandHandler.cpp
@@ -247,53 +247,54 @@
} // namespace Clusters
-void DispatchSingleClusterCommand(ClusterId aClusterId, CommandId aCommandId, EndpointId aEndPointId, TLV::TLVReader & aReader,
- CommandHandler * apCommandObj)
+void DispatchSingleClusterCommand(const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aReader, CommandHandler * apCommandObj)
{
- ChipLogDetail(Zcl, "Received Cluster Command: Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI " Endpoint=%" PRIx16,
- ChipLogValueMEI(aClusterId), ChipLogValueMEI(aCommandId), aEndPointId);
- Compatibility::SetupEmberAfObjects(apCommandObj, aClusterId, aCommandId, aEndPointId);
- ConcreteCommandPath commandPath(aEndPointId, aClusterId, aCommandId);
+ ChipLogDetail(Zcl, "Received Cluster Command: Endpoint=%" PRIx16 " Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI,
+ aCommandPath.mEndpointId, ChipLogValueMEI(aCommandPath.mClusterId), ChipLogValueMEI(aCommandPath.mCommandId));
+
+ Compatibility::SetupEmberAfObjects(apCommandObj, aCommandPath);
+
TLV::TLVType dataTlvType;
SuccessOrExit(aReader.EnterContainer(dataTlvType));
- switch (aClusterId)
+ switch (aCommandPath.mClusterId)
{
default:
- // Unrecognized cluster ID, error status will apply.
- apCommandObj->AddStatusCode(commandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
- Protocols::SecureChannel::Id, Protocols::InteractionModel::Status::InvalidCommand);
- ChipLogError(Zcl, "Unknown cluster %" PRIx32, aClusterId);
+ ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mClusterId));
+ apCommandObj->AddStatusCode(aCommandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
+ Protocols::InteractionModel::Id, Protocols::InteractionModel::Status::UnsupportedCluster);
break;
}
+
exit:
- Compatibility::ResetEmberAfObjects();
aReader.ExitContainer(dataTlvType);
+ Compatibility::ResetEmberAfObjects();
}
-void DispatchSingleClusterResponseCommand(ClusterId aClusterId, CommandId aCommandId, EndpointId aEndPointId,
- TLV::TLVReader & aReader, CommandSender * apCommandObj)
+void DispatchSingleClusterResponseCommand(const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aReader,
+ CommandSender * apCommandObj)
{
- ChipLogDetail(Zcl, "Received Cluster Command: Cluster=%" PRIx32 " Command=%" PRIx32 " Endpoint=%" PRIx16, aClusterId,
- aCommandId, aEndPointId);
- Compatibility::SetupEmberAfObjects(apCommandObj, aClusterId, aCommandId, aEndPointId);
- ConcreteCommandPath commandPath(aEndPointId, aClusterId, aCommandId);
+ ChipLogDetail(Zcl, "Received Cluster Command: Endpoint=%" PRIx16 " Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI,
+ aCommandPath.mEndpointId, ChipLogValueMEI(aCommandPath.mClusterId), ChipLogValueMEI(aCommandPath.mCommandId));
+
+ Compatibility::SetupEmberAfObjects(apCommandObj, aCommandPath);
+
TLV::TLVType dataTlvType;
SuccessOrExit(aReader.EnterContainer(dataTlvType));
- switch (aClusterId)
+ switch (aCommandPath.mClusterId)
{
case Clusters::OtaSoftwareUpdateProvider::Id:
- Clusters::OtaSoftwareUpdateProvider::DispatchClientCommand(apCommandObj, commandPath, aReader);
+ Clusters::OtaSoftwareUpdateProvider::DispatchClientCommand(apCommandObj, aCommandPath, aReader);
break;
default:
- // Unrecognized cluster ID, error status will apply.
- apCommandObj->AddStatusCode(commandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
- Protocols::SecureChannel::Id, Protocols::InteractionModel::Status::InvalidCommand);
- ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aClusterId));
+ ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mClusterId));
+ apCommandObj->AddStatusCode(aCommandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
+ Protocols::InteractionModel::Id, Protocols::InteractionModel::Status::UnsupportedCluster);
break;
}
+
exit:
- Compatibility::ResetEmberAfObjects();
aReader.ExitContainer(dataTlvType);
+ Compatibility::ResetEmberAfObjects();
}
} // namespace app
diff --git a/zzz_generated/pump-app/zap-generated/IMClusterCommandHandler.cpp b/zzz_generated/pump-app/zap-generated/IMClusterCommandHandler.cpp
index 60c3904..4e9b897 100644
--- a/zzz_generated/pump-app/zap-generated/IMClusterCommandHandler.cpp
+++ b/zzz_generated/pump-app/zap-generated/IMClusterCommandHandler.cpp
@@ -2341,74 +2341,75 @@
} // namespace Clusters
-void DispatchSingleClusterCommand(ClusterId aClusterId, CommandId aCommandId, EndpointId aEndPointId, TLV::TLVReader & aReader,
- CommandHandler * apCommandObj)
+void DispatchSingleClusterCommand(const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aReader, CommandHandler * apCommandObj)
{
- ChipLogDetail(Zcl, "Received Cluster Command: Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI " Endpoint=%" PRIx16,
- ChipLogValueMEI(aClusterId), ChipLogValueMEI(aCommandId), aEndPointId);
- Compatibility::SetupEmberAfObjects(apCommandObj, aClusterId, aCommandId, aEndPointId);
- ConcreteCommandPath commandPath(aEndPointId, aClusterId, aCommandId);
+ ChipLogDetail(Zcl, "Received Cluster Command: Endpoint=%" PRIx16 " Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI,
+ aCommandPath.mEndpointId, ChipLogValueMEI(aCommandPath.mClusterId), ChipLogValueMEI(aCommandPath.mCommandId));
+
+ Compatibility::SetupEmberAfObjects(apCommandObj, aCommandPath);
+
TLV::TLVType dataTlvType;
SuccessOrExit(aReader.EnterContainer(dataTlvType));
- switch (aClusterId)
+ switch (aCommandPath.mClusterId)
{
case Clusters::AdministratorCommissioning::Id:
- Clusters::AdministratorCommissioning::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::AdministratorCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::Basic::Id:
- Clusters::Basic::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::Basic::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::DiagnosticLogs::Id:
- Clusters::DiagnosticLogs::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::DiagnosticLogs::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::GeneralCommissioning::Id:
- Clusters::GeneralCommissioning::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::GeneralCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::LevelControl::Id:
- Clusters::LevelControl::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::LevelControl::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::NetworkCommissioning::Id:
- Clusters::NetworkCommissioning::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::NetworkCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::OnOff::Id:
- Clusters::OnOff::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::OnOff::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::OperationalCredentials::Id:
- Clusters::OperationalCredentials::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::OperationalCredentials::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
default:
- // Unrecognized cluster ID, error status will apply.
- apCommandObj->AddStatusCode(commandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
- Protocols::SecureChannel::Id, Protocols::InteractionModel::Status::InvalidCommand);
- ChipLogError(Zcl, "Unknown cluster %" PRIx32, aClusterId);
+ ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mClusterId));
+ apCommandObj->AddStatusCode(aCommandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
+ Protocols::InteractionModel::Id, Protocols::InteractionModel::Status::UnsupportedCluster);
break;
}
+
exit:
- Compatibility::ResetEmberAfObjects();
aReader.ExitContainer(dataTlvType);
+ Compatibility::ResetEmberAfObjects();
}
-void DispatchSingleClusterResponseCommand(ClusterId aClusterId, CommandId aCommandId, EndpointId aEndPointId,
- TLV::TLVReader & aReader, CommandSender * apCommandObj)
+void DispatchSingleClusterResponseCommand(const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aReader,
+ CommandSender * apCommandObj)
{
- ChipLogDetail(Zcl, "Received Cluster Command: Cluster=%" PRIx32 " Command=%" PRIx32 " Endpoint=%" PRIx16, aClusterId,
- aCommandId, aEndPointId);
- Compatibility::SetupEmberAfObjects(apCommandObj, aClusterId, aCommandId, aEndPointId);
- ConcreteCommandPath commandPath(aEndPointId, aClusterId, aCommandId);
+ ChipLogDetail(Zcl, "Received Cluster Command: Endpoint=%" PRIx16 " Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI,
+ aCommandPath.mEndpointId, ChipLogValueMEI(aCommandPath.mClusterId), ChipLogValueMEI(aCommandPath.mCommandId));
+
+ Compatibility::SetupEmberAfObjects(apCommandObj, aCommandPath);
+
TLV::TLVType dataTlvType;
SuccessOrExit(aReader.EnterContainer(dataTlvType));
- switch (aClusterId)
+ switch (aCommandPath.mClusterId)
{
default:
- // Unrecognized cluster ID, error status will apply.
- apCommandObj->AddStatusCode(commandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
- Protocols::SecureChannel::Id, Protocols::InteractionModel::Status::InvalidCommand);
- ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aClusterId));
+ ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mClusterId));
+ apCommandObj->AddStatusCode(aCommandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
+ Protocols::InteractionModel::Id, Protocols::InteractionModel::Status::UnsupportedCluster);
break;
}
+
exit:
- Compatibility::ResetEmberAfObjects();
aReader.ExitContainer(dataTlvType);
+ Compatibility::ResetEmberAfObjects();
}
} // namespace app
diff --git a/zzz_generated/pump-controller-app/zap-generated/IMClusterCommandHandler.cpp b/zzz_generated/pump-controller-app/zap-generated/IMClusterCommandHandler.cpp
index d895c4b..b730298 100644
--- a/zzz_generated/pump-controller-app/zap-generated/IMClusterCommandHandler.cpp
+++ b/zzz_generated/pump-controller-app/zap-generated/IMClusterCommandHandler.cpp
@@ -1810,68 +1810,69 @@
} // namespace Clusters
-void DispatchSingleClusterCommand(ClusterId aClusterId, CommandId aCommandId, EndpointId aEndPointId, TLV::TLVReader & aReader,
- CommandHandler * apCommandObj)
+void DispatchSingleClusterCommand(const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aReader, CommandHandler * apCommandObj)
{
- ChipLogDetail(Zcl, "Received Cluster Command: Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI " Endpoint=%" PRIx16,
- ChipLogValueMEI(aClusterId), ChipLogValueMEI(aCommandId), aEndPointId);
- Compatibility::SetupEmberAfObjects(apCommandObj, aClusterId, aCommandId, aEndPointId);
- ConcreteCommandPath commandPath(aEndPointId, aClusterId, aCommandId);
+ ChipLogDetail(Zcl, "Received Cluster Command: Endpoint=%" PRIx16 " Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI,
+ aCommandPath.mEndpointId, ChipLogValueMEI(aCommandPath.mClusterId), ChipLogValueMEI(aCommandPath.mCommandId));
+
+ Compatibility::SetupEmberAfObjects(apCommandObj, aCommandPath);
+
TLV::TLVType dataTlvType;
SuccessOrExit(aReader.EnterContainer(dataTlvType));
- switch (aClusterId)
+ switch (aCommandPath.mClusterId)
{
case Clusters::AdministratorCommissioning::Id:
- Clusters::AdministratorCommissioning::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::AdministratorCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::Basic::Id:
- Clusters::Basic::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::Basic::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::DiagnosticLogs::Id:
- Clusters::DiagnosticLogs::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::DiagnosticLogs::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::GeneralCommissioning::Id:
- Clusters::GeneralCommissioning::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::GeneralCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::NetworkCommissioning::Id:
- Clusters::NetworkCommissioning::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::NetworkCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::OperationalCredentials::Id:
- Clusters::OperationalCredentials::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::OperationalCredentials::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
default:
- // Unrecognized cluster ID, error status will apply.
- apCommandObj->AddStatusCode(commandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
- Protocols::SecureChannel::Id, Protocols::InteractionModel::Status::InvalidCommand);
- ChipLogError(Zcl, "Unknown cluster %" PRIx32, aClusterId);
+ ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mClusterId));
+ apCommandObj->AddStatusCode(aCommandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
+ Protocols::InteractionModel::Id, Protocols::InteractionModel::Status::UnsupportedCluster);
break;
}
+
exit:
- Compatibility::ResetEmberAfObjects();
aReader.ExitContainer(dataTlvType);
+ Compatibility::ResetEmberAfObjects();
}
-void DispatchSingleClusterResponseCommand(ClusterId aClusterId, CommandId aCommandId, EndpointId aEndPointId,
- TLV::TLVReader & aReader, CommandSender * apCommandObj)
+void DispatchSingleClusterResponseCommand(const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aReader,
+ CommandSender * apCommandObj)
{
- ChipLogDetail(Zcl, "Received Cluster Command: Cluster=%" PRIx32 " Command=%" PRIx32 " Endpoint=%" PRIx16, aClusterId,
- aCommandId, aEndPointId);
- Compatibility::SetupEmberAfObjects(apCommandObj, aClusterId, aCommandId, aEndPointId);
- ConcreteCommandPath commandPath(aEndPointId, aClusterId, aCommandId);
+ ChipLogDetail(Zcl, "Received Cluster Command: Endpoint=%" PRIx16 " Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI,
+ aCommandPath.mEndpointId, ChipLogValueMEI(aCommandPath.mClusterId), ChipLogValueMEI(aCommandPath.mCommandId));
+
+ Compatibility::SetupEmberAfObjects(apCommandObj, aCommandPath);
+
TLV::TLVType dataTlvType;
SuccessOrExit(aReader.EnterContainer(dataTlvType));
- switch (aClusterId)
+ switch (aCommandPath.mClusterId)
{
default:
- // Unrecognized cluster ID, error status will apply.
- apCommandObj->AddStatusCode(commandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
- Protocols::SecureChannel::Id, Protocols::InteractionModel::Status::InvalidCommand);
- ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aClusterId));
+ ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mClusterId));
+ apCommandObj->AddStatusCode(aCommandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
+ Protocols::InteractionModel::Id, Protocols::InteractionModel::Status::UnsupportedCluster);
break;
}
+
exit:
- Compatibility::ResetEmberAfObjects();
aReader.ExitContainer(dataTlvType);
+ Compatibility::ResetEmberAfObjects();
}
} // namespace app
diff --git a/zzz_generated/temperature-measurement-app/zap-generated/IMClusterCommandHandler.cpp b/zzz_generated/temperature-measurement-app/zap-generated/IMClusterCommandHandler.cpp
index 1729871..c0be9a7 100644
--- a/zzz_generated/temperature-measurement-app/zap-generated/IMClusterCommandHandler.cpp
+++ b/zzz_generated/temperature-measurement-app/zap-generated/IMClusterCommandHandler.cpp
@@ -1665,65 +1665,66 @@
} // namespace Clusters
-void DispatchSingleClusterCommand(ClusterId aClusterId, CommandId aCommandId, EndpointId aEndPointId, TLV::TLVReader & aReader,
- CommandHandler * apCommandObj)
+void DispatchSingleClusterCommand(const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aReader, CommandHandler * apCommandObj)
{
- ChipLogDetail(Zcl, "Received Cluster Command: Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI " Endpoint=%" PRIx16,
- ChipLogValueMEI(aClusterId), ChipLogValueMEI(aCommandId), aEndPointId);
- Compatibility::SetupEmberAfObjects(apCommandObj, aClusterId, aCommandId, aEndPointId);
- ConcreteCommandPath commandPath(aEndPointId, aClusterId, aCommandId);
+ ChipLogDetail(Zcl, "Received Cluster Command: Endpoint=%" PRIx16 " Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI,
+ aCommandPath.mEndpointId, ChipLogValueMEI(aCommandPath.mClusterId), ChipLogValueMEI(aCommandPath.mCommandId));
+
+ Compatibility::SetupEmberAfObjects(apCommandObj, aCommandPath);
+
TLV::TLVType dataTlvType;
SuccessOrExit(aReader.EnterContainer(dataTlvType));
- switch (aClusterId)
+ switch (aCommandPath.mClusterId)
{
case Clusters::AdministratorCommissioning::Id:
- Clusters::AdministratorCommissioning::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::AdministratorCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::DiagnosticLogs::Id:
- Clusters::DiagnosticLogs::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::DiagnosticLogs::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::GeneralCommissioning::Id:
- Clusters::GeneralCommissioning::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::GeneralCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::NetworkCommissioning::Id:
- Clusters::NetworkCommissioning::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::NetworkCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::OperationalCredentials::Id:
- Clusters::OperationalCredentials::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::OperationalCredentials::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
default:
- // Unrecognized cluster ID, error status will apply.
- apCommandObj->AddStatusCode(commandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
- Protocols::SecureChannel::Id, Protocols::InteractionModel::Status::InvalidCommand);
- ChipLogError(Zcl, "Unknown cluster %" PRIx32, aClusterId);
+ ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mClusterId));
+ apCommandObj->AddStatusCode(aCommandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
+ Protocols::InteractionModel::Id, Protocols::InteractionModel::Status::UnsupportedCluster);
break;
}
+
exit:
- Compatibility::ResetEmberAfObjects();
aReader.ExitContainer(dataTlvType);
+ Compatibility::ResetEmberAfObjects();
}
-void DispatchSingleClusterResponseCommand(ClusterId aClusterId, CommandId aCommandId, EndpointId aEndPointId,
- TLV::TLVReader & aReader, CommandSender * apCommandObj)
+void DispatchSingleClusterResponseCommand(const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aReader,
+ CommandSender * apCommandObj)
{
- ChipLogDetail(Zcl, "Received Cluster Command: Cluster=%" PRIx32 " Command=%" PRIx32 " Endpoint=%" PRIx16, aClusterId,
- aCommandId, aEndPointId);
- Compatibility::SetupEmberAfObjects(apCommandObj, aClusterId, aCommandId, aEndPointId);
- ConcreteCommandPath commandPath(aEndPointId, aClusterId, aCommandId);
+ ChipLogDetail(Zcl, "Received Cluster Command: Endpoint=%" PRIx16 " Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI,
+ aCommandPath.mEndpointId, ChipLogValueMEI(aCommandPath.mClusterId), ChipLogValueMEI(aCommandPath.mCommandId));
+
+ Compatibility::SetupEmberAfObjects(apCommandObj, aCommandPath);
+
TLV::TLVType dataTlvType;
SuccessOrExit(aReader.EnterContainer(dataTlvType));
- switch (aClusterId)
+ switch (aCommandPath.mClusterId)
{
default:
- // Unrecognized cluster ID, error status will apply.
- apCommandObj->AddStatusCode(commandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
- Protocols::SecureChannel::Id, Protocols::InteractionModel::Status::InvalidCommand);
- ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aClusterId));
+ ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mClusterId));
+ apCommandObj->AddStatusCode(aCommandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
+ Protocols::InteractionModel::Id, Protocols::InteractionModel::Status::UnsupportedCluster);
break;
}
+
exit:
- Compatibility::ResetEmberAfObjects();
aReader.ExitContainer(dataTlvType);
+ Compatibility::ResetEmberAfObjects();
}
} // namespace app
diff --git a/zzz_generated/thermostat/zap-generated/IMClusterCommandHandler.cpp b/zzz_generated/thermostat/zap-generated/IMClusterCommandHandler.cpp
index 11fd757..2fb62bf 100644
--- a/zzz_generated/thermostat/zap-generated/IMClusterCommandHandler.cpp
+++ b/zzz_generated/thermostat/zap-generated/IMClusterCommandHandler.cpp
@@ -6915,110 +6915,111 @@
} // namespace Clusters
-void DispatchSingleClusterCommand(ClusterId aClusterId, CommandId aCommandId, EndpointId aEndPointId, TLV::TLVReader & aReader,
- CommandHandler * apCommandObj)
+void DispatchSingleClusterCommand(const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aReader, CommandHandler * apCommandObj)
{
- ChipLogDetail(Zcl, "Received Cluster Command: Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI " Endpoint=%" PRIx16,
- ChipLogValueMEI(aClusterId), ChipLogValueMEI(aCommandId), aEndPointId);
- Compatibility::SetupEmberAfObjects(apCommandObj, aClusterId, aCommandId, aEndPointId);
- ConcreteCommandPath commandPath(aEndPointId, aClusterId, aCommandId);
+ ChipLogDetail(Zcl, "Received Cluster Command: Endpoint=%" PRIx16 " Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI,
+ aCommandPath.mEndpointId, ChipLogValueMEI(aCommandPath.mClusterId), ChipLogValueMEI(aCommandPath.mCommandId));
+
+ Compatibility::SetupEmberAfObjects(apCommandObj, aCommandPath);
+
TLV::TLVType dataTlvType;
SuccessOrExit(aReader.EnterContainer(dataTlvType));
- switch (aClusterId)
+ switch (aCommandPath.mClusterId)
{
case Clusters::AdministratorCommissioning::Id:
- Clusters::AdministratorCommissioning::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::AdministratorCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::BarrierControl::Id:
- Clusters::BarrierControl::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::BarrierControl::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::Basic::Id:
- Clusters::Basic::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::Basic::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::Binding::Id:
- Clusters::Binding::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::Binding::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::ColorControl::Id:
- Clusters::ColorControl::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::ColorControl::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::DiagnosticLogs::Id:
- Clusters::DiagnosticLogs::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::DiagnosticLogs::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::DoorLock::Id:
- Clusters::DoorLock::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::DoorLock::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::GeneralCommissioning::Id:
- Clusters::GeneralCommissioning::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::GeneralCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::Groups::Id:
- Clusters::Groups::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::Groups::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::IasZone::Id:
- Clusters::IasZone::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::IasZone::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::Identify::Id:
- Clusters::Identify::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::Identify::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::LevelControl::Id:
- Clusters::LevelControl::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::LevelControl::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::LowPower::Id:
- Clusters::LowPower::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::LowPower::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::NetworkCommissioning::Id:
- Clusters::NetworkCommissioning::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::NetworkCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::OtaSoftwareUpdateProvider::Id:
- Clusters::OtaSoftwareUpdateProvider::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::OtaSoftwareUpdateProvider::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::OnOff::Id:
- Clusters::OnOff::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::OnOff::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::OperationalCredentials::Id:
- Clusters::OperationalCredentials::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::OperationalCredentials::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::Scenes::Id:
- Clusters::Scenes::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::Scenes::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::TestCluster::Id:
- Clusters::TestCluster::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::TestCluster::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::Thermostat::Id:
- Clusters::Thermostat::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::Thermostat::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
default:
- // Unrecognized cluster ID, error status will apply.
- apCommandObj->AddStatusCode(commandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
- Protocols::SecureChannel::Id, Protocols::InteractionModel::Status::InvalidCommand);
- ChipLogError(Zcl, "Unknown cluster %" PRIx32, aClusterId);
+ ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mClusterId));
+ apCommandObj->AddStatusCode(aCommandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
+ Protocols::InteractionModel::Id, Protocols::InteractionModel::Status::UnsupportedCluster);
break;
}
+
exit:
- Compatibility::ResetEmberAfObjects();
aReader.ExitContainer(dataTlvType);
+ Compatibility::ResetEmberAfObjects();
}
-void DispatchSingleClusterResponseCommand(ClusterId aClusterId, CommandId aCommandId, EndpointId aEndPointId,
- TLV::TLVReader & aReader, CommandSender * apCommandObj)
+void DispatchSingleClusterResponseCommand(const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aReader,
+ CommandSender * apCommandObj)
{
- ChipLogDetail(Zcl, "Received Cluster Command: Cluster=%" PRIx32 " Command=%" PRIx32 " Endpoint=%" PRIx16, aClusterId,
- aCommandId, aEndPointId);
- Compatibility::SetupEmberAfObjects(apCommandObj, aClusterId, aCommandId, aEndPointId);
- ConcreteCommandPath commandPath(aEndPointId, aClusterId, aCommandId);
+ ChipLogDetail(Zcl, "Received Cluster Command: Endpoint=%" PRIx16 " Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI,
+ aCommandPath.mEndpointId, ChipLogValueMEI(aCommandPath.mClusterId), ChipLogValueMEI(aCommandPath.mCommandId));
+
+ Compatibility::SetupEmberAfObjects(apCommandObj, aCommandPath);
+
TLV::TLVType dataTlvType;
SuccessOrExit(aReader.EnterContainer(dataTlvType));
- switch (aClusterId)
+ switch (aCommandPath.mClusterId)
{
default:
- // Unrecognized cluster ID, error status will apply.
- apCommandObj->AddStatusCode(commandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
- Protocols::SecureChannel::Id, Protocols::InteractionModel::Status::InvalidCommand);
- ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aClusterId));
+ ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mClusterId));
+ apCommandObj->AddStatusCode(aCommandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
+ Protocols::InteractionModel::Id, Protocols::InteractionModel::Status::UnsupportedCluster);
break;
}
+
exit:
- Compatibility::ResetEmberAfObjects();
aReader.ExitContainer(dataTlvType);
+ Compatibility::ResetEmberAfObjects();
}
} // namespace app
diff --git a/zzz_generated/tv-app/zap-generated/IMClusterCommandHandler.cpp b/zzz_generated/tv-app/zap-generated/IMClusterCommandHandler.cpp
index f71c7b0..b6a2c5a 100644
--- a/zzz_generated/tv-app/zap-generated/IMClusterCommandHandler.cpp
+++ b/zzz_generated/tv-app/zap-generated/IMClusterCommandHandler.cpp
@@ -5610,122 +5610,123 @@
} // namespace Clusters
-void DispatchSingleClusterCommand(ClusterId aClusterId, CommandId aCommandId, EndpointId aEndPointId, TLV::TLVReader & aReader,
- CommandHandler * apCommandObj)
+void DispatchSingleClusterCommand(const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aReader, CommandHandler * apCommandObj)
{
- ChipLogDetail(Zcl, "Received Cluster Command: Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI " Endpoint=%" PRIx16,
- ChipLogValueMEI(aClusterId), ChipLogValueMEI(aCommandId), aEndPointId);
- Compatibility::SetupEmberAfObjects(apCommandObj, aClusterId, aCommandId, aEndPointId);
- ConcreteCommandPath commandPath(aEndPointId, aClusterId, aCommandId);
+ ChipLogDetail(Zcl, "Received Cluster Command: Endpoint=%" PRIx16 " Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI,
+ aCommandPath.mEndpointId, ChipLogValueMEI(aCommandPath.mClusterId), ChipLogValueMEI(aCommandPath.mCommandId));
+
+ Compatibility::SetupEmberAfObjects(apCommandObj, aCommandPath);
+
TLV::TLVType dataTlvType;
SuccessOrExit(aReader.EnterContainer(dataTlvType));
- switch (aClusterId)
+ switch (aCommandPath.mClusterId)
{
case Clusters::AccountLogin::Id:
- Clusters::AccountLogin::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::AccountLogin::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::AdministratorCommissioning::Id:
- Clusters::AdministratorCommissioning::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::AdministratorCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::ApplicationBasic::Id:
- Clusters::ApplicationBasic::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::ApplicationBasic::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::ApplicationLauncher::Id:
- Clusters::ApplicationLauncher::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::ApplicationLauncher::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::AudioOutput::Id:
- Clusters::AudioOutput::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::AudioOutput::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::Basic::Id:
- Clusters::Basic::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::Basic::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::Binding::Id:
- Clusters::Binding::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::Binding::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::ContentLauncher::Id:
- Clusters::ContentLauncher::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::ContentLauncher::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::DiagnosticLogs::Id:
- Clusters::DiagnosticLogs::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::DiagnosticLogs::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::GeneralCommissioning::Id:
- Clusters::GeneralCommissioning::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::GeneralCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::KeypadInput::Id:
- Clusters::KeypadInput::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::KeypadInput::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::LevelControl::Id:
- Clusters::LevelControl::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::LevelControl::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::LowPower::Id:
- Clusters::LowPower::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::LowPower::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::MediaInput::Id:
- Clusters::MediaInput::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::MediaInput::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::MediaPlayback::Id:
- Clusters::MediaPlayback::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::MediaPlayback::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::NetworkCommissioning::Id:
- Clusters::NetworkCommissioning::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::NetworkCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::OtaSoftwareUpdateProvider::Id:
- Clusters::OtaSoftwareUpdateProvider::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::OtaSoftwareUpdateProvider::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::OnOff::Id:
- Clusters::OnOff::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::OnOff::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::OperationalCredentials::Id:
- Clusters::OperationalCredentials::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::OperationalCredentials::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::TvChannel::Id:
- Clusters::TvChannel::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::TvChannel::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::TargetNavigator::Id:
- Clusters::TargetNavigator::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::TargetNavigator::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
default:
- // Unrecognized cluster ID, error status will apply.
- apCommandObj->AddStatusCode(commandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
- Protocols::SecureChannel::Id, Protocols::InteractionModel::Status::InvalidCommand);
- ChipLogError(Zcl, "Unknown cluster %" PRIx32, aClusterId);
+ ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mClusterId));
+ apCommandObj->AddStatusCode(aCommandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
+ Protocols::InteractionModel::Id, Protocols::InteractionModel::Status::UnsupportedCluster);
break;
}
+
exit:
- Compatibility::ResetEmberAfObjects();
aReader.ExitContainer(dataTlvType);
+ Compatibility::ResetEmberAfObjects();
}
-void DispatchSingleClusterResponseCommand(ClusterId aClusterId, CommandId aCommandId, EndpointId aEndPointId,
- TLV::TLVReader & aReader, CommandSender * apCommandObj)
+void DispatchSingleClusterResponseCommand(const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aReader,
+ CommandSender * apCommandObj)
{
- ChipLogDetail(Zcl, "Received Cluster Command: Cluster=%" PRIx32 " Command=%" PRIx32 " Endpoint=%" PRIx16, aClusterId,
- aCommandId, aEndPointId);
- Compatibility::SetupEmberAfObjects(apCommandObj, aClusterId, aCommandId, aEndPointId);
- ConcreteCommandPath commandPath(aEndPointId, aClusterId, aCommandId);
+ ChipLogDetail(Zcl, "Received Cluster Command: Endpoint=%" PRIx16 " Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI,
+ aCommandPath.mEndpointId, ChipLogValueMEI(aCommandPath.mClusterId), ChipLogValueMEI(aCommandPath.mCommandId));
+
+ Compatibility::SetupEmberAfObjects(apCommandObj, aCommandPath);
+
TLV::TLVType dataTlvType;
SuccessOrExit(aReader.EnterContainer(dataTlvType));
- switch (aClusterId)
+ switch (aCommandPath.mClusterId)
{
case Clusters::GeneralCommissioning::Id:
- Clusters::GeneralCommissioning::DispatchClientCommand(apCommandObj, commandPath, aReader);
+ Clusters::GeneralCommissioning::DispatchClientCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::NetworkCommissioning::Id:
- Clusters::NetworkCommissioning::DispatchClientCommand(apCommandObj, commandPath, aReader);
+ Clusters::NetworkCommissioning::DispatchClientCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::OperationalCredentials::Id:
- Clusters::OperationalCredentials::DispatchClientCommand(apCommandObj, commandPath, aReader);
+ Clusters::OperationalCredentials::DispatchClientCommand(apCommandObj, aCommandPath, aReader);
break;
default:
- // Unrecognized cluster ID, error status will apply.
- apCommandObj->AddStatusCode(commandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
- Protocols::SecureChannel::Id, Protocols::InteractionModel::Status::InvalidCommand);
- ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aClusterId));
+ ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mClusterId));
+ apCommandObj->AddStatusCode(aCommandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
+ Protocols::InteractionModel::Id, Protocols::InteractionModel::Status::UnsupportedCluster);
break;
}
+
exit:
- Compatibility::ResetEmberAfObjects();
aReader.ExitContainer(dataTlvType);
+ Compatibility::ResetEmberAfObjects();
}
} // namespace app
diff --git a/zzz_generated/tv-casting-app/zap-generated/IMClusterCommandHandler.cpp b/zzz_generated/tv-casting-app/zap-generated/IMClusterCommandHandler.cpp
index 8c3f9f6..9b12f1f 100644
--- a/zzz_generated/tv-casting-app/zap-generated/IMClusterCommandHandler.cpp
+++ b/zzz_generated/tv-casting-app/zap-generated/IMClusterCommandHandler.cpp
@@ -6616,104 +6616,105 @@
} // namespace Clusters
-void DispatchSingleClusterCommand(ClusterId aClusterId, CommandId aCommandId, EndpointId aEndPointId, TLV::TLVReader & aReader,
- CommandHandler * apCommandObj)
+void DispatchSingleClusterCommand(const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aReader, CommandHandler * apCommandObj)
{
- ChipLogDetail(Zcl, "Received Cluster Command: Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI " Endpoint=%" PRIx16,
- ChipLogValueMEI(aClusterId), ChipLogValueMEI(aCommandId), aEndPointId);
- Compatibility::SetupEmberAfObjects(apCommandObj, aClusterId, aCommandId, aEndPointId);
- ConcreteCommandPath commandPath(aEndPointId, aClusterId, aCommandId);
+ ChipLogDetail(Zcl, "Received Cluster Command: Endpoint=%" PRIx16 " Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI,
+ aCommandPath.mEndpointId, ChipLogValueMEI(aCommandPath.mClusterId), ChipLogValueMEI(aCommandPath.mCommandId));
+
+ Compatibility::SetupEmberAfObjects(apCommandObj, aCommandPath);
+
TLV::TLVType dataTlvType;
SuccessOrExit(aReader.EnterContainer(dataTlvType));
- switch (aClusterId)
+ switch (aCommandPath.mClusterId)
{
case Clusters::AdministratorCommissioning::Id:
- Clusters::AdministratorCommissioning::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::AdministratorCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::BarrierControl::Id:
- Clusters::BarrierControl::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::BarrierControl::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::Basic::Id:
- Clusters::Basic::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::Basic::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::Binding::Id:
- Clusters::Binding::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::Binding::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::ColorControl::Id:
- Clusters::ColorControl::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::ColorControl::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::DiagnosticLogs::Id:
- Clusters::DiagnosticLogs::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::DiagnosticLogs::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::DoorLock::Id:
- Clusters::DoorLock::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::DoorLock::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::GeneralCommissioning::Id:
- Clusters::GeneralCommissioning::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::GeneralCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::Groups::Id:
- Clusters::Groups::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::Groups::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::IasZone::Id:
- Clusters::IasZone::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::IasZone::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::Identify::Id:
- Clusters::Identify::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::Identify::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::LevelControl::Id:
- Clusters::LevelControl::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::LevelControl::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::NetworkCommissioning::Id:
- Clusters::NetworkCommissioning::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::NetworkCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::OtaSoftwareUpdateProvider::Id:
- Clusters::OtaSoftwareUpdateProvider::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::OtaSoftwareUpdateProvider::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::OnOff::Id:
- Clusters::OnOff::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::OnOff::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::OperationalCredentials::Id:
- Clusters::OperationalCredentials::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::OperationalCredentials::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::Scenes::Id:
- Clusters::Scenes::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::Scenes::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::TestCluster::Id:
- Clusters::TestCluster::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::TestCluster::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
default:
- // Unrecognized cluster ID, error status will apply.
- apCommandObj->AddStatusCode(commandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
- Protocols::SecureChannel::Id, Protocols::InteractionModel::Status::InvalidCommand);
- ChipLogError(Zcl, "Unknown cluster %" PRIx32, aClusterId);
+ ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mClusterId));
+ apCommandObj->AddStatusCode(aCommandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
+ Protocols::InteractionModel::Id, Protocols::InteractionModel::Status::UnsupportedCluster);
break;
}
+
exit:
- Compatibility::ResetEmberAfObjects();
aReader.ExitContainer(dataTlvType);
+ Compatibility::ResetEmberAfObjects();
}
-void DispatchSingleClusterResponseCommand(ClusterId aClusterId, CommandId aCommandId, EndpointId aEndPointId,
- TLV::TLVReader & aReader, CommandSender * apCommandObj)
+void DispatchSingleClusterResponseCommand(const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aReader,
+ CommandSender * apCommandObj)
{
- ChipLogDetail(Zcl, "Received Cluster Command: Cluster=%" PRIx32 " Command=%" PRIx32 " Endpoint=%" PRIx16, aClusterId,
- aCommandId, aEndPointId);
- Compatibility::SetupEmberAfObjects(apCommandObj, aClusterId, aCommandId, aEndPointId);
- ConcreteCommandPath commandPath(aEndPointId, aClusterId, aCommandId);
+ ChipLogDetail(Zcl, "Received Cluster Command: Endpoint=%" PRIx16 " Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI,
+ aCommandPath.mEndpointId, ChipLogValueMEI(aCommandPath.mClusterId), ChipLogValueMEI(aCommandPath.mCommandId));
+
+ Compatibility::SetupEmberAfObjects(apCommandObj, aCommandPath);
+
TLV::TLVType dataTlvType;
SuccessOrExit(aReader.EnterContainer(dataTlvType));
- switch (aClusterId)
+ switch (aCommandPath.mClusterId)
{
default:
- // Unrecognized cluster ID, error status will apply.
- apCommandObj->AddStatusCode(commandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
- Protocols::SecureChannel::Id, Protocols::InteractionModel::Status::InvalidCommand);
- ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aClusterId));
+ ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mClusterId));
+ apCommandObj->AddStatusCode(aCommandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
+ Protocols::InteractionModel::Id, Protocols::InteractionModel::Status::UnsupportedCluster);
break;
}
+
exit:
- Compatibility::ResetEmberAfObjects();
aReader.ExitContainer(dataTlvType);
+ Compatibility::ResetEmberAfObjects();
}
} // namespace app
diff --git a/zzz_generated/window-app/zap-generated/IMClusterCommandHandler.cpp b/zzz_generated/window-app/zap-generated/IMClusterCommandHandler.cpp
index 88348b2..4b11128 100644
--- a/zzz_generated/window-app/zap-generated/IMClusterCommandHandler.cpp
+++ b/zzz_generated/window-app/zap-generated/IMClusterCommandHandler.cpp
@@ -2001,65 +2001,66 @@
} // namespace Clusters
-void DispatchSingleClusterCommand(ClusterId aClusterId, CommandId aCommandId, EndpointId aEndPointId, TLV::TLVReader & aReader,
- CommandHandler * apCommandObj)
+void DispatchSingleClusterCommand(const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aReader, CommandHandler * apCommandObj)
{
- ChipLogDetail(Zcl, "Received Cluster Command: Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI " Endpoint=%" PRIx16,
- ChipLogValueMEI(aClusterId), ChipLogValueMEI(aCommandId), aEndPointId);
- Compatibility::SetupEmberAfObjects(apCommandObj, aClusterId, aCommandId, aEndPointId);
- ConcreteCommandPath commandPath(aEndPointId, aClusterId, aCommandId);
+ ChipLogDetail(Zcl, "Received Cluster Command: Endpoint=%" PRIx16 " Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI,
+ aCommandPath.mEndpointId, ChipLogValueMEI(aCommandPath.mClusterId), ChipLogValueMEI(aCommandPath.mCommandId));
+
+ Compatibility::SetupEmberAfObjects(apCommandObj, aCommandPath);
+
TLV::TLVType dataTlvType;
SuccessOrExit(aReader.EnterContainer(dataTlvType));
- switch (aClusterId)
+ switch (aCommandPath.mClusterId)
{
case Clusters::AdministratorCommissioning::Id:
- Clusters::AdministratorCommissioning::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::AdministratorCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::GeneralCommissioning::Id:
- Clusters::GeneralCommissioning::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::GeneralCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::NetworkCommissioning::Id:
- Clusters::NetworkCommissioning::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::NetworkCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::OperationalCredentials::Id:
- Clusters::OperationalCredentials::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::OperationalCredentials::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::WindowCovering::Id:
- Clusters::WindowCovering::DispatchServerCommand(apCommandObj, commandPath, aReader);
+ Clusters::WindowCovering::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
default:
- // Unrecognized cluster ID, error status will apply.
- apCommandObj->AddStatusCode(commandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
- Protocols::SecureChannel::Id, Protocols::InteractionModel::Status::InvalidCommand);
- ChipLogError(Zcl, "Unknown cluster %" PRIx32, aClusterId);
+ ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mClusterId));
+ apCommandObj->AddStatusCode(aCommandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
+ Protocols::InteractionModel::Id, Protocols::InteractionModel::Status::UnsupportedCluster);
break;
}
+
exit:
- Compatibility::ResetEmberAfObjects();
aReader.ExitContainer(dataTlvType);
+ Compatibility::ResetEmberAfObjects();
}
-void DispatchSingleClusterResponseCommand(ClusterId aClusterId, CommandId aCommandId, EndpointId aEndPointId,
- TLV::TLVReader & aReader, CommandSender * apCommandObj)
+void DispatchSingleClusterResponseCommand(const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aReader,
+ CommandSender * apCommandObj)
{
- ChipLogDetail(Zcl, "Received Cluster Command: Cluster=%" PRIx32 " Command=%" PRIx32 " Endpoint=%" PRIx16, aClusterId,
- aCommandId, aEndPointId);
- Compatibility::SetupEmberAfObjects(apCommandObj, aClusterId, aCommandId, aEndPointId);
- ConcreteCommandPath commandPath(aEndPointId, aClusterId, aCommandId);
+ ChipLogDetail(Zcl, "Received Cluster Command: Endpoint=%" PRIx16 " Cluster=" ChipLogFormatMEI " Command=" ChipLogFormatMEI,
+ aCommandPath.mEndpointId, ChipLogValueMEI(aCommandPath.mClusterId), ChipLogValueMEI(aCommandPath.mCommandId));
+
+ Compatibility::SetupEmberAfObjects(apCommandObj, aCommandPath);
+
TLV::TLVType dataTlvType;
SuccessOrExit(aReader.EnterContainer(dataTlvType));
- switch (aClusterId)
+ switch (aCommandPath.mClusterId)
{
default:
- // Unrecognized cluster ID, error status will apply.
- apCommandObj->AddStatusCode(commandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
- Protocols::SecureChannel::Id, Protocols::InteractionModel::Status::InvalidCommand);
- ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aClusterId));
+ ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mClusterId));
+ apCommandObj->AddStatusCode(aCommandPath, Protocols::SecureChannel::GeneralStatusCode::kNotFound,
+ Protocols::InteractionModel::Id, Protocols::InteractionModel::Status::UnsupportedCluster);
break;
}
+
exit:
- Compatibility::ResetEmberAfObjects();
aReader.ExitContainer(dataTlvType);
+ Compatibility::ResetEmberAfObjects();
}
} // namespace app