diff --git a/src/controller/data_model/gen/call-command-handler.cpp b/src/controller/data_model/gen/call-command-handler.cpp deleted file mode 100644 index 7df926241e470e..00000000000000 --- a/src/controller/data_model/gen/call-command-handler.cpp +++ /dev/null @@ -1,2039 +0,0 @@ -/* - * - * Copyright (c) 2021 Project CHIP Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// THIS FILE IS GENERATED BY ZAP - -#include - -#include "app/util/util.h" -#include "callback.h" -#include -#include -#include - -using namespace chip; - -EmberAfStatus emberAfAccountLoginClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfApplicationBasicClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfApplicationLauncherClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfAudioOutputClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfBarrierControlClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfBasicClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfBinaryInputBasicClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfBindingClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfBridgedDeviceBasicClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfColorControlClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfContentLauncherClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfDescriptorClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfDoorLockClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfEthernetNetworkDiagnosticsClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfFixedLabelClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfGeneralCommissioningClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfGeneralDiagnosticsClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfGroupKeyManagementClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfGroupsClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfIdentifyClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfKeypadInputClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfLevelControlClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfLowPowerClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfMediaInputClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfMediaPlaybackClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfNetworkCommissioningClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfOtaSoftwareUpdateProviderClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfOnOffClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfOperationalCredentialsClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfPumpConfigurationAndControlClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfRelativeHumidityMeasurementClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfScenesClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfSoftwareDiagnosticsClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfSwitchClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfTvChannelClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfTargetNavigatorClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfTemperatureMeasurementClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfTestClusterClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfThermostatClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfWakeOnLanClusterClientCommandParse(EmberAfClusterCommand * cmd); -EmberAfStatus emberAfWindowCoveringClusterClientCommandParse(EmberAfClusterCommand * cmd); - -static EmberAfStatus status(bool wasHandled, bool clusterExists, bool mfgSpecific) -{ - if (wasHandled) - { - return EMBER_ZCL_STATUS_SUCCESS; - } - else if (mfgSpecific) - { - return EMBER_ZCL_STATUS_UNSUP_MANUF_CLUSTER_COMMAND; - } - else if (clusterExists) - { - return EMBER_ZCL_STATUS_UNSUP_COMMAND; - } - else - { - return EMBER_ZCL_STATUS_UNSUPPORTED_CLUSTER; - } -} - -// Main command parsing controller. -EmberAfStatus emberAfClusterSpecificCommandParse(EmberAfClusterCommand * cmd) -{ - EmberAfStatus result = status(false, false, cmd->mfgSpecific); - if (cmd->direction == (uint8_t) ZCL_DIRECTION_SERVER_TO_CLIENT && - emberAfContainsClientWithMfgCode(cmd->apsFrame->destinationEndpoint, cmd->apsFrame->clusterId, cmd->mfgCode)) - { - switch (cmd->apsFrame->clusterId) - { - case ZCL_ACCOUNT_LOGIN_CLUSTER_ID: - result = emberAfAccountLoginClusterClientCommandParse(cmd); - break; - case ZCL_APPLICATION_BASIC_CLUSTER_ID: - // No commands are enabled for cluster Application Basic - result = status(false, true, cmd->mfgSpecific); - break; - case ZCL_APPLICATION_LAUNCHER_CLUSTER_ID: - result = emberAfApplicationLauncherClusterClientCommandParse(cmd); - break; - case ZCL_AUDIO_OUTPUT_CLUSTER_ID: - // No commands are enabled for cluster Audio Output - result = status(false, true, cmd->mfgSpecific); - break; - case ZCL_BARRIER_CONTROL_CLUSTER_ID: - // No commands are enabled for cluster Barrier Control - result = status(false, true, cmd->mfgSpecific); - break; - case ZCL_BASIC_CLUSTER_ID: - // No commands are enabled for cluster Basic - result = status(false, true, cmd->mfgSpecific); - break; - case ZCL_BINARY_INPUT_BASIC_CLUSTER_ID: - // No commands are enabled for cluster Binary Input (Basic) - result = status(false, true, cmd->mfgSpecific); - break; - case ZCL_BINDING_CLUSTER_ID: - // No commands are enabled for cluster Binding - result = status(false, true, cmd->mfgSpecific); - break; - case ZCL_BRIDGED_DEVICE_BASIC_CLUSTER_ID: - // No commands are enabled for cluster Bridged Device Basic - result = status(false, true, cmd->mfgSpecific); - break; - case ZCL_COLOR_CONTROL_CLUSTER_ID: - // No commands are enabled for cluster Color Control - result = status(false, true, cmd->mfgSpecific); - break; - case ZCL_CONTENT_LAUNCH_CLUSTER_ID: - result = emberAfContentLauncherClusterClientCommandParse(cmd); - break; - case ZCL_DESCRIPTOR_CLUSTER_ID: - // No commands are enabled for cluster Descriptor - result = status(false, true, cmd->mfgSpecific); - break; - case ZCL_DOOR_LOCK_CLUSTER_ID: - result = emberAfDoorLockClusterClientCommandParse(cmd); - break; - case ZCL_ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER_ID: - // No commands are enabled for cluster Ethernet Network Diagnostics - result = status(false, true, cmd->mfgSpecific); - break; - case ZCL_FIXED_LABEL_CLUSTER_ID: - // No commands are enabled for cluster Fixed Label - result = status(false, true, cmd->mfgSpecific); - break; - case ZCL_GENERAL_COMMISSIONING_CLUSTER_ID: - result = emberAfGeneralCommissioningClusterClientCommandParse(cmd); - break; - case ZCL_GENERAL_DIAGNOSTICS_CLUSTER_ID: - // No commands are enabled for cluster General Diagnostics - result = status(false, true, cmd->mfgSpecific); - break; - case ZCL_GROUP_KEY_MANAGEMENT_CLUSTER_ID: - // No commands are enabled for cluster Group Key Management - result = status(false, true, cmd->mfgSpecific); - break; - case ZCL_GROUPS_CLUSTER_ID: - result = emberAfGroupsClusterClientCommandParse(cmd); - break; - case ZCL_IDENTIFY_CLUSTER_ID: - result = emberAfIdentifyClusterClientCommandParse(cmd); - break; - case ZCL_KEYPAD_INPUT_CLUSTER_ID: - result = emberAfKeypadInputClusterClientCommandParse(cmd); - break; - case ZCL_LEVEL_CONTROL_CLUSTER_ID: - // No commands are enabled for cluster Level Control - result = status(false, true, cmd->mfgSpecific); - break; - case ZCL_LOW_POWER_CLUSTER_ID: - // No commands are enabled for cluster Low Power - result = status(false, true, cmd->mfgSpecific); - break; - case ZCL_MEDIA_INPUT_CLUSTER_ID: - // No commands are enabled for cluster Media Input - result = status(false, true, cmd->mfgSpecific); - break; - case ZCL_MEDIA_PLAYBACK_CLUSTER_ID: - result = emberAfMediaPlaybackClusterClientCommandParse(cmd); - break; - case ZCL_NETWORK_COMMISSIONING_CLUSTER_ID: - result = emberAfNetworkCommissioningClusterClientCommandParse(cmd); - break; - case ZCL_OTA_PROVIDER_CLUSTER_ID: - result = emberAfOtaSoftwareUpdateProviderClusterClientCommandParse(cmd); - break; - case ZCL_ON_OFF_CLUSTER_ID: - // No commands are enabled for cluster On/off - result = status(false, true, cmd->mfgSpecific); - break; - case ZCL_OPERATIONAL_CREDENTIALS_CLUSTER_ID: - result = emberAfOperationalCredentialsClusterClientCommandParse(cmd); - break; - case ZCL_PUMP_CONFIG_CONTROL_CLUSTER_ID: - // No commands are enabled for cluster Pump Configuration and Control - result = status(false, true, cmd->mfgSpecific); - break; - case ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_ID: - // No commands are enabled for cluster Relative Humidity Measurement - result = status(false, true, cmd->mfgSpecific); - break; - case ZCL_SCENES_CLUSTER_ID: - result = emberAfScenesClusterClientCommandParse(cmd); - break; - case ZCL_SOFTWARE_DIAGNOSTICS_CLUSTER_ID: - // No commands are enabled for cluster Software Diagnostics - result = status(false, true, cmd->mfgSpecific); - break; - case ZCL_SWITCH_CLUSTER_ID: - // No commands are enabled for cluster Switch - result = status(false, true, cmd->mfgSpecific); - break; - case ZCL_TV_CHANNEL_CLUSTER_ID: - result = emberAfTvChannelClusterClientCommandParse(cmd); - break; - case ZCL_TARGET_NAVIGATOR_CLUSTER_ID: - result = emberAfTargetNavigatorClusterClientCommandParse(cmd); - break; - case ZCL_TEMP_MEASUREMENT_CLUSTER_ID: - // No commands are enabled for cluster Temperature Measurement - result = status(false, true, cmd->mfgSpecific); - break; - case ZCL_TEST_CLUSTER_ID: - result = emberAfTestClusterClusterClientCommandParse(cmd); - break; - case ZCL_THERMOSTAT_CLUSTER_ID: - // No commands are enabled for cluster Thermostat - result = status(false, true, cmd->mfgSpecific); - break; - case ZCL_WAKE_ON_LAN_CLUSTER_ID: - // No commands are enabled for cluster Wake on LAN - result = status(false, true, cmd->mfgSpecific); - break; - case ZCL_WINDOW_COVERING_CLUSTER_ID: - // No commands are enabled for cluster Window Covering - result = status(false, true, cmd->mfgSpecific); - break; - default: - // Unrecognized cluster ID, error status will apply. - break; - } - } - else if (cmd->direction == (uint8_t) ZCL_DIRECTION_CLIENT_TO_SERVER && - emberAfContainsServerWithMfgCode(cmd->apsFrame->destinationEndpoint, cmd->apsFrame->clusterId, cmd->mfgCode)) - { - switch (cmd->apsFrame->clusterId) - { - default: - // Unrecognized cluster ID, error status will apply. - break; - } - } - return result; -} - -// Cluster specific command parsing - -EmberAfStatus emberAfAccountLoginClusterClientCommandParse(EmberAfClusterCommand * cmd) -{ - bool wasHandled = false; - - if (!cmd->mfgSpecific) - { - switch (cmd->commandId) - { - case ZCL_GET_SETUP_PIN_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t * setupPIN; - - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - setupPIN = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfAccountLoginClusterGetSetupPINResponseCallback(nullptr, setupPIN); - break; - } - default: { - // Unrecognized command ID, error status will apply. - break; - } - } - } - return status(wasHandled, true, cmd->mfgSpecific); -} -EmberAfStatus emberAfApplicationLauncherClusterClientCommandParse(EmberAfClusterCommand * cmd) -{ - bool wasHandled = false; - - if (!cmd->mfgSpecific) - { - switch (cmd->commandId) - { - case ZCL_LAUNCH_APP_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t status; - uint8_t * data; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - data = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfApplicationLauncherClusterLaunchAppResponseCallback(nullptr, status, data); - break; - } - default: { - // Unrecognized command ID, error status will apply. - break; - } - } - } - return status(wasHandled, true, cmd->mfgSpecific); -} -EmberAfStatus emberAfContentLauncherClusterClientCommandParse(EmberAfClusterCommand * cmd) -{ - bool wasHandled = false; - - if (!cmd->mfgSpecific) - { - switch (cmd->commandId) - { - case ZCL_LAUNCH_CONTENT_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t * data; - uint8_t contentLaunchStatus; - - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - data = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + emberAfStringLength(data) + 1u); - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - contentLaunchStatus = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfContentLauncherClusterLaunchContentResponseCallback(nullptr, data, contentLaunchStatus); - break; - } - case ZCL_LAUNCH_URL_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t * data; - uint8_t contentLaunchStatus; - - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - data = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + emberAfStringLength(data) + 1u); - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - contentLaunchStatus = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfContentLauncherClusterLaunchURLResponseCallback(nullptr, data, contentLaunchStatus); - break; - } - default: { - // Unrecognized command ID, error status will apply. - break; - } - } - } - return status(wasHandled, true, cmd->mfgSpecific); -} -EmberAfStatus emberAfDoorLockClusterClientCommandParse(EmberAfClusterCommand * cmd) -{ - bool wasHandled = false; - - if (!cmd->mfgSpecific) - { - switch (cmd->commandId) - { - case ZCL_CLEAR_ALL_PINS_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t status; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfDoorLockClusterClearAllPinsResponseCallback(nullptr, status); - break; - } - case ZCL_CLEAR_ALL_RFIDS_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t status; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfDoorLockClusterClearAllRfidsResponseCallback(nullptr, status); - break; - } - case ZCL_CLEAR_HOLIDAY_SCHEDULE_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t status; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfDoorLockClusterClearHolidayScheduleResponseCallback(nullptr, status); - break; - } - case ZCL_CLEAR_PIN_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t status; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfDoorLockClusterClearPinResponseCallback(nullptr, status); - break; - } - case ZCL_CLEAR_RFID_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t status; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfDoorLockClusterClearRfidResponseCallback(nullptr, status); - break; - } - case ZCL_CLEAR_WEEKDAY_SCHEDULE_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t status; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfDoorLockClusterClearWeekdayScheduleResponseCallback(nullptr, status); - break; - } - case ZCL_CLEAR_YEARDAY_SCHEDULE_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t status; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfDoorLockClusterClearYeardayScheduleResponseCallback(nullptr, status); - break; - } - case ZCL_GET_HOLIDAY_SCHEDULE_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t scheduleId; - uint8_t status; - uint32_t localStartTime; - uint32_t localEndTime; - uint8_t operatingModeDuringHoliday; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - scheduleId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 4) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - localStartTime = emberAfGetInt32u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 4); - if (cmd->bufLen < payloadOffset + 4) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - localEndTime = emberAfGetInt32u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 4); - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - operatingModeDuringHoliday = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfDoorLockClusterGetHolidayScheduleResponseCallback(nullptr, scheduleId, status, localStartTime, - localEndTime, operatingModeDuringHoliday); - break; - } - case ZCL_GET_LOG_RECORD_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint16_t logEntryId; - uint32_t timestamp; - uint8_t eventType; - uint8_t source; - uint8_t eventIdOrAlarmCode; - uint16_t userId; - uint8_t * pin; - - if (cmd->bufLen < payloadOffset + 2) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - logEntryId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 2); - if (cmd->bufLen < payloadOffset + 4) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - timestamp = emberAfGetInt32u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 4); - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - eventType = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - source = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - eventIdOrAlarmCode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 2) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - userId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 2); - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - pin = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfDoorLockClusterGetLogRecordResponseCallback(nullptr, logEntryId, timestamp, eventType, source, - eventIdOrAlarmCode, userId, pin); - break; - } - case ZCL_GET_PIN_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint16_t userId; - uint8_t userStatus; - uint8_t userType; - uint8_t * pin; - - if (cmd->bufLen < payloadOffset + 2) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - userId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 2); - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - userStatus = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - userType = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - pin = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfDoorLockClusterGetPinResponseCallback(nullptr, userId, userStatus, userType, pin); - break; - } - case ZCL_GET_RFID_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint16_t userId; - uint8_t userStatus; - uint8_t userType; - uint8_t * rfid; - - if (cmd->bufLen < payloadOffset + 2) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - userId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 2); - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - userStatus = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - userType = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - rfid = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfDoorLockClusterGetRfidResponseCallback(nullptr, userId, userStatus, userType, rfid); - break; - } - case ZCL_GET_USER_TYPE_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint16_t userId; - uint8_t userType; - - if (cmd->bufLen < payloadOffset + 2) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - userId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 2); - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - userType = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfDoorLockClusterGetUserTypeResponseCallback(nullptr, userId, userType); - break; - } - case ZCL_GET_WEEKDAY_SCHEDULE_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t scheduleId; - uint16_t userId; - uint8_t status; - uint8_t daysMask; - uint8_t startHour; - uint8_t startMinute; - uint8_t endHour; - uint8_t endMinute; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - scheduleId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 2) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - userId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 2); - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - daysMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - startHour = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - startMinute = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - endHour = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - endMinute = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfDoorLockClusterGetWeekdayScheduleResponseCallback(nullptr, scheduleId, userId, status, daysMask, - startHour, startMinute, endHour, endMinute); - break; - } - case ZCL_GET_YEARDAY_SCHEDULE_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t scheduleId; - uint16_t userId; - uint8_t status; - uint32_t localStartTime; - uint32_t localEndTime; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - scheduleId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 2) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - userId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 2); - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 4) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - localStartTime = emberAfGetInt32u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 4); - if (cmd->bufLen < payloadOffset + 4) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - localEndTime = emberAfGetInt32u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfDoorLockClusterGetYeardayScheduleResponseCallback(nullptr, scheduleId, userId, status, - localStartTime, localEndTime); - break; - } - case ZCL_LOCK_DOOR_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t status; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfDoorLockClusterLockDoorResponseCallback(nullptr, status); - break; - } - case ZCL_SET_HOLIDAY_SCHEDULE_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t status; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfDoorLockClusterSetHolidayScheduleResponseCallback(nullptr, status); - break; - } - case ZCL_SET_PIN_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t status; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfDoorLockClusterSetPinResponseCallback(nullptr, status); - break; - } - case ZCL_SET_RFID_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t status; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfDoorLockClusterSetRfidResponseCallback(nullptr, status); - break; - } - case ZCL_SET_USER_TYPE_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t status; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfDoorLockClusterSetUserTypeResponseCallback(nullptr, status); - break; - } - case ZCL_SET_WEEKDAY_SCHEDULE_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t status; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfDoorLockClusterSetWeekdayScheduleResponseCallback(nullptr, status); - break; - } - case ZCL_SET_YEARDAY_SCHEDULE_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t status; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfDoorLockClusterSetYeardayScheduleResponseCallback(nullptr, status); - break; - } - case ZCL_UNLOCK_DOOR_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t status; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfDoorLockClusterUnlockDoorResponseCallback(nullptr, status); - break; - } - case ZCL_UNLOCK_WITH_TIMEOUT_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t status; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfDoorLockClusterUnlockWithTimeoutResponseCallback(nullptr, status); - break; - } - default: { - // Unrecognized command ID, error status will apply. - break; - } - } - } - return status(wasHandled, true, cmd->mfgSpecific); -} -EmberAfStatus emberAfGeneralCommissioningClusterClientCommandParse(EmberAfClusterCommand * cmd) -{ - bool wasHandled = false; - - if (!cmd->mfgSpecific) - { - switch (cmd->commandId) - { - case ZCL_ARM_FAIL_SAFE_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t errorCode; - uint8_t * debugText; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - errorCode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - debugText = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfGeneralCommissioningClusterArmFailSafeResponseCallback(nullptr, errorCode, debugText); - break; - } - case ZCL_COMMISSIONING_COMPLETE_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t errorCode; - uint8_t * debugText; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - errorCode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - debugText = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfGeneralCommissioningClusterCommissioningCompleteResponseCallback(nullptr, errorCode, debugText); - break; - } - case ZCL_SET_REGULATORY_CONFIG_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t errorCode; - uint8_t * debugText; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - errorCode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - debugText = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfGeneralCommissioningClusterSetRegulatoryConfigResponseCallback(nullptr, errorCode, debugText); - break; - } - default: { - // Unrecognized command ID, error status will apply. - break; - } - } - } - return status(wasHandled, true, cmd->mfgSpecific); -} -EmberAfStatus emberAfGroupsClusterClientCommandParse(EmberAfClusterCommand * cmd) -{ - bool wasHandled = false; - - if (!cmd->mfgSpecific) - { - switch (cmd->commandId) - { - case ZCL_ADD_GROUP_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t status; - uint16_t groupId; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 2) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfGroupsClusterAddGroupResponseCallback(nullptr, status, groupId); - break; - } - case ZCL_GET_GROUP_MEMBERSHIP_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t capacity; - uint8_t groupCount; - /* TYPE WARNING: array array defaults to */ uint8_t * groupList; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - capacity = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - groupCount = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - groupList = cmd->buffer + payloadOffset; - - wasHandled = emberAfGroupsClusterGetGroupMembershipResponseCallback(nullptr, capacity, groupCount, groupList); - break; - } - case ZCL_REMOVE_GROUP_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t status; - uint16_t groupId; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 2) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfGroupsClusterRemoveGroupResponseCallback(nullptr, status, groupId); - break; - } - case ZCL_VIEW_GROUP_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t status; - uint16_t groupId; - uint8_t * groupName; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 2) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 2); - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - groupName = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfGroupsClusterViewGroupResponseCallback(nullptr, status, groupId, groupName); - break; - } - default: { - // Unrecognized command ID, error status will apply. - break; - } - } - } - return status(wasHandled, true, cmd->mfgSpecific); -} -EmberAfStatus emberAfIdentifyClusterClientCommandParse(EmberAfClusterCommand * cmd) -{ - bool wasHandled = false; - - if (!cmd->mfgSpecific) - { - switch (cmd->commandId) - { - case ZCL_IDENTIFY_QUERY_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint16_t timeout; - - if (cmd->bufLen < payloadOffset + 2) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - timeout = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfIdentifyClusterIdentifyQueryResponseCallback(nullptr, timeout); - break; - } - default: { - // Unrecognized command ID, error status will apply. - break; - } - } - } - return status(wasHandled, true, cmd->mfgSpecific); -} -EmberAfStatus emberAfKeypadInputClusterClientCommandParse(EmberAfClusterCommand * cmd) -{ - bool wasHandled = false; - - if (!cmd->mfgSpecific) - { - switch (cmd->commandId) - { - case ZCL_SEND_KEY_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t status; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfKeypadInputClusterSendKeyResponseCallback(nullptr, status); - break; - } - default: { - // Unrecognized command ID, error status will apply. - break; - } - } - } - return status(wasHandled, true, cmd->mfgSpecific); -} -EmberAfStatus emberAfMediaPlaybackClusterClientCommandParse(EmberAfClusterCommand * cmd) -{ - bool wasHandled = false; - - if (!cmd->mfgSpecific) - { - switch (cmd->commandId) - { - case ZCL_MEDIA_FAST_FORWARD_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t mediaPlaybackStatus; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - mediaPlaybackStatus = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfMediaPlaybackClusterMediaFastForwardResponseCallback(nullptr, mediaPlaybackStatus); - break; - } - case ZCL_MEDIA_NEXT_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t mediaPlaybackStatus; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - mediaPlaybackStatus = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfMediaPlaybackClusterMediaNextResponseCallback(nullptr, mediaPlaybackStatus); - break; - } - case ZCL_MEDIA_PAUSE_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t mediaPlaybackStatus; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - mediaPlaybackStatus = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfMediaPlaybackClusterMediaPauseResponseCallback(nullptr, mediaPlaybackStatus); - break; - } - case ZCL_MEDIA_PLAY_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t mediaPlaybackStatus; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - mediaPlaybackStatus = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfMediaPlaybackClusterMediaPlayResponseCallback(nullptr, mediaPlaybackStatus); - break; - } - case ZCL_MEDIA_PREVIOUS_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t mediaPlaybackStatus; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - mediaPlaybackStatus = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfMediaPlaybackClusterMediaPreviousResponseCallback(nullptr, mediaPlaybackStatus); - break; - } - case ZCL_MEDIA_REWIND_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t mediaPlaybackStatus; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - mediaPlaybackStatus = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfMediaPlaybackClusterMediaRewindResponseCallback(nullptr, mediaPlaybackStatus); - break; - } - case ZCL_MEDIA_SKIP_BACKWARD_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t mediaPlaybackStatus; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - mediaPlaybackStatus = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfMediaPlaybackClusterMediaSkipBackwardResponseCallback(nullptr, mediaPlaybackStatus); - break; - } - case ZCL_MEDIA_SKIP_FORWARD_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t mediaPlaybackStatus; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - mediaPlaybackStatus = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfMediaPlaybackClusterMediaSkipForwardResponseCallback(nullptr, mediaPlaybackStatus); - break; - } - case ZCL_MEDIA_SKIP_SEEK_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t mediaPlaybackStatus; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - mediaPlaybackStatus = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfMediaPlaybackClusterMediaSkipSeekResponseCallback(nullptr, mediaPlaybackStatus); - break; - } - case ZCL_MEDIA_START_OVER_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t mediaPlaybackStatus; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - mediaPlaybackStatus = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfMediaPlaybackClusterMediaStartOverResponseCallback(nullptr, mediaPlaybackStatus); - break; - } - case ZCL_MEDIA_STOP_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t mediaPlaybackStatus; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - mediaPlaybackStatus = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfMediaPlaybackClusterMediaStopResponseCallback(nullptr, mediaPlaybackStatus); - break; - } - default: { - // Unrecognized command ID, error status will apply. - break; - } - } - } - return status(wasHandled, true, cmd->mfgSpecific); -} -EmberAfStatus emberAfNetworkCommissioningClusterClientCommandParse(EmberAfClusterCommand * cmd) -{ - bool wasHandled = false; - - if (!cmd->mfgSpecific) - { - switch (cmd->commandId) - { - case ZCL_ADD_THREAD_NETWORK_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t errorCode; - uint8_t * debugText; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - errorCode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - debugText = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfNetworkCommissioningClusterAddThreadNetworkResponseCallback(nullptr, errorCode, debugText); - break; - } - case ZCL_ADD_WI_FI_NETWORK_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t errorCode; - uint8_t * debugText; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - errorCode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - debugText = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfNetworkCommissioningClusterAddWiFiNetworkResponseCallback(nullptr, errorCode, debugText); - break; - } - case ZCL_DISABLE_NETWORK_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t errorCode; - uint8_t * debugText; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - errorCode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - debugText = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfNetworkCommissioningClusterDisableNetworkResponseCallback(nullptr, errorCode, debugText); - break; - } - case ZCL_ENABLE_NETWORK_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t errorCode; - uint8_t * debugText; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - errorCode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - debugText = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfNetworkCommissioningClusterEnableNetworkResponseCallback(nullptr, errorCode, debugText); - break; - } - case ZCL_REMOVE_NETWORK_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t errorCode; - uint8_t * debugText; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - errorCode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - debugText = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfNetworkCommissioningClusterRemoveNetworkResponseCallback(nullptr, errorCode, debugText); - break; - } - case ZCL_SCAN_NETWORKS_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t errorCode; - uint8_t * debugText; - /* TYPE WARNING: array array defaults to */ uint8_t * wifiScanResults; - /* TYPE WARNING: array array defaults to */ uint8_t * threadScanResults; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - errorCode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - debugText = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + emberAfStringLength(debugText) + 1u); - wifiScanResults = cmd->buffer + payloadOffset; - threadScanResults = cmd->buffer + payloadOffset; - - wasHandled = emberAfNetworkCommissioningClusterScanNetworksResponseCallback(nullptr, errorCode, debugText, - wifiScanResults, threadScanResults); - break; - } - case ZCL_UPDATE_THREAD_NETWORK_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t errorCode; - uint8_t * debugText; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - errorCode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - debugText = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfNetworkCommissioningClusterUpdateThreadNetworkResponseCallback(nullptr, errorCode, debugText); - break; - } - case ZCL_UPDATE_WI_FI_NETWORK_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t errorCode; - uint8_t * debugText; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - errorCode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - debugText = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfNetworkCommissioningClusterUpdateWiFiNetworkResponseCallback(nullptr, errorCode, debugText); - break; - } - default: { - // Unrecognized command ID, error status will apply. - break; - } - } - } - return status(wasHandled, true, cmd->mfgSpecific); -} -EmberAfStatus emberAfOtaSoftwareUpdateProviderClusterClientCommandParse(EmberAfClusterCommand * cmd) -{ - bool wasHandled = false; - - if (!cmd->mfgSpecific) - { - switch (cmd->commandId) - { - case ZCL_APPLY_UPDATE_REQUEST_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t action; - uint32_t delayedActionTime; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - action = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 4) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - delayedActionTime = emberAfGetInt32u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = - emberAfOtaSoftwareUpdateProviderClusterApplyUpdateRequestResponseCallback(nullptr, action, delayedActionTime); - break; - } - case ZCL_QUERY_IMAGE_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t status; - uint32_t delayedActionTime; - uint8_t * imageURI; - uint32_t softwareVersion; - chip::ByteSpan updateToken; - uint8_t userConsentNeeded; - chip::ByteSpan metadataForRequestor; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 4) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - delayedActionTime = emberAfGetInt32u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 4); - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - imageURI = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + emberAfStringLength(imageURI) + 1u); - if (cmd->bufLen < payloadOffset + 4) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - softwareVersion = emberAfGetInt32u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 4); - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - { - uint8_t * rawData = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - updateToken = chip::ByteSpan(rawData + 1u, emberAfStringLength(rawData)); - } - payloadOffset = static_cast(payloadOffset + updateToken.size() + 1u); - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - userConsentNeeded = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - { - uint8_t * rawData = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - metadataForRequestor = chip::ByteSpan(rawData + 1u, emberAfStringLength(rawData)); - } - - wasHandled = emberAfOtaSoftwareUpdateProviderClusterQueryImageResponseCallback(nullptr, status, delayedActionTime, - imageURI, softwareVersion, updateToken, - userConsentNeeded, metadataForRequestor); - break; - } - default: { - // Unrecognized command ID, error status will apply. - break; - } - } - } - return status(wasHandled, true, cmd->mfgSpecific); -} -EmberAfStatus emberAfOperationalCredentialsClusterClientCommandParse(EmberAfClusterCommand * cmd) -{ - bool wasHandled = false; - - if (!cmd->mfgSpecific) - { - switch (cmd->commandId) - { - case ZCL_OP_CSR_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - chip::ByteSpan CSR; - chip::ByteSpan CSRNonce; - chip::ByteSpan VendorReserved1; - chip::ByteSpan VendorReserved2; - chip::ByteSpan VendorReserved3; - chip::ByteSpan Signature; - - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - { - uint8_t * rawData = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - CSR = chip::ByteSpan(rawData + 1u, emberAfStringLength(rawData)); - } - payloadOffset = static_cast(payloadOffset + CSR.size() + 1u); - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - { - uint8_t * rawData = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - CSRNonce = chip::ByteSpan(rawData + 1u, emberAfStringLength(rawData)); - } - payloadOffset = static_cast(payloadOffset + CSRNonce.size() + 1u); - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - { - uint8_t * rawData = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - VendorReserved1 = chip::ByteSpan(rawData + 1u, emberAfStringLength(rawData)); - } - payloadOffset = static_cast(payloadOffset + VendorReserved1.size() + 1u); - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - { - uint8_t * rawData = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - VendorReserved2 = chip::ByteSpan(rawData + 1u, emberAfStringLength(rawData)); - } - payloadOffset = static_cast(payloadOffset + VendorReserved2.size() + 1u); - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - { - uint8_t * rawData = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - VendorReserved3 = chip::ByteSpan(rawData + 1u, emberAfStringLength(rawData)); - } - payloadOffset = static_cast(payloadOffset + VendorReserved3.size() + 1u); - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - { - uint8_t * rawData = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - Signature = chip::ByteSpan(rawData + 1u, emberAfStringLength(rawData)); - } - - wasHandled = emberAfOperationalCredentialsClusterOpCSRResponseCallback(nullptr, CSR, CSRNonce, VendorReserved1, - VendorReserved2, VendorReserved3, Signature); - break; - } - case ZCL_OP_CERT_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t StatusCode; - uint64_t FabricIndex; - uint8_t * DebugText; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - StatusCode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 8) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - FabricIndex = emberAfGetInt64u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 8); - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - DebugText = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfOperationalCredentialsClusterOpCertResponseCallback(nullptr, StatusCode, FabricIndex, DebugText); - break; - } - case ZCL_SET_FABRIC_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - chip::FabricId FabricId; - - if (cmd->bufLen < payloadOffset + 8) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - FabricId = emberAfGetInt64u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfOperationalCredentialsClusterSetFabricResponseCallback(nullptr, FabricId); - break; - } - default: { - // Unrecognized command ID, error status will apply. - break; - } - } - } - return status(wasHandled, true, cmd->mfgSpecific); -} -EmberAfStatus emberAfScenesClusterClientCommandParse(EmberAfClusterCommand * cmd) -{ - bool wasHandled = false; - - if (!cmd->mfgSpecific) - { - switch (cmd->commandId) - { - case ZCL_ADD_SCENE_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t status; - uint16_t groupId; - uint8_t sceneId; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 2) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 2); - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - sceneId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfScenesClusterAddSceneResponseCallback(nullptr, status, groupId, sceneId); - break; - } - case ZCL_GET_SCENE_MEMBERSHIP_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t status; - uint8_t capacity; - uint16_t groupId; - uint8_t sceneCount; - /* TYPE WARNING: array array defaults to */ uint8_t * sceneList; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - capacity = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 2) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 2); - if (status == 0) - { - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - sceneCount = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - } - else - { - sceneCount = UINT8_MAX; - } - if (status == 0) - { - sceneList = cmd->buffer + payloadOffset; - } - else - { - sceneList = NULL; - } - - wasHandled = - emberAfScenesClusterGetSceneMembershipResponseCallback(nullptr, status, capacity, groupId, sceneCount, sceneList); - break; - } - case ZCL_REMOVE_ALL_SCENES_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t status; - uint16_t groupId; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 2) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfScenesClusterRemoveAllScenesResponseCallback(nullptr, status, groupId); - break; - } - case ZCL_REMOVE_SCENE_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t status; - uint16_t groupId; - uint8_t sceneId; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 2) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 2); - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - sceneId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfScenesClusterRemoveSceneResponseCallback(nullptr, status, groupId, sceneId); - break; - } - case ZCL_STORE_SCENE_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t status; - uint16_t groupId; - uint8_t sceneId; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 2) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 2); - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - sceneId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfScenesClusterStoreSceneResponseCallback(nullptr, status, groupId, sceneId); - break; - } - case ZCL_VIEW_SCENE_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t status; - uint16_t groupId; - uint8_t sceneId; - uint16_t transitionTime; - uint8_t * sceneName; - /* TYPE WARNING: array array defaults to */ uint8_t * extensionFieldSets; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 2) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 2); - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - sceneId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (status == 0) - { - if (cmd->bufLen < payloadOffset + 2) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - transitionTime = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 2); - } - else - { - transitionTime = UINT16_MAX; - } - if (status == 0) - { - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - sceneName = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + emberAfStringLength(sceneName) + 1u); - } - else - { - sceneName = NULL; - } - if (status == 0) - { - extensionFieldSets = cmd->buffer + payloadOffset; - } - else - { - extensionFieldSets = NULL; - } - - wasHandled = emberAfScenesClusterViewSceneResponseCallback(nullptr, status, groupId, sceneId, transitionTime, sceneName, - extensionFieldSets); - break; - } - default: { - // Unrecognized command ID, error status will apply. - break; - } - } - } - return status(wasHandled, true, cmd->mfgSpecific); -} -EmberAfStatus emberAfTvChannelClusterClientCommandParse(EmberAfClusterCommand * cmd) -{ - bool wasHandled = false; - - if (!cmd->mfgSpecific) - { - switch (cmd->commandId) - { - case ZCL_CHANGE_CHANNEL_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - /* TYPE WARNING: array array defaults to */ uint8_t * ChannelMatch; - uint8_t ErrorType; - - ChannelMatch = cmd->buffer + payloadOffset; - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - ErrorType = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfTvChannelClusterChangeChannelResponseCallback(nullptr, ChannelMatch, ErrorType); - break; - } - default: { - // Unrecognized command ID, error status will apply. - break; - } - } - } - return status(wasHandled, true, cmd->mfgSpecific); -} -EmberAfStatus emberAfTargetNavigatorClusterClientCommandParse(EmberAfClusterCommand * cmd) -{ - bool wasHandled = false; - - if (!cmd->mfgSpecific) - { - switch (cmd->commandId) - { - case ZCL_NAVIGATE_TARGET_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t status; - uint8_t * data; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset = static_cast(payloadOffset + 1); - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - data = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfTargetNavigatorClusterNavigateTargetResponseCallback(nullptr, status, data); - break; - } - default: { - // Unrecognized command ID, error status will apply. - break; - } - } - } - return status(wasHandled, true, cmd->mfgSpecific); -} -EmberAfStatus emberAfTestClusterClusterClientCommandParse(EmberAfClusterCommand * cmd) -{ - bool wasHandled = false; - - if (!cmd->mfgSpecific) - { - switch (cmd->commandId) - { - case ZCL_TEST_SPECIFIC_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t returnValue; - - if (cmd->bufLen < payloadOffset + 1) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - returnValue = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - - wasHandled = emberAfTestClusterClusterTestSpecificResponseCallback(nullptr, returnValue); - break; - } - default: { - // Unrecognized command ID, error status will apply. - break; - } - } - } - return status(wasHandled, true, cmd->mfgSpecific); -} diff --git a/src/darwin/Framework/CHIP.xcodeproj/project.pbxproj b/src/darwin/Framework/CHIP.xcodeproj/project.pbxproj index aecf3254135c84..36783d6d9cf999 100644 --- a/src/darwin/Framework/CHIP.xcodeproj/project.pbxproj +++ b/src/darwin/Framework/CHIP.xcodeproj/project.pbxproj @@ -9,7 +9,6 @@ /* Begin PBXBuildFile section */ 1E857306265519720050A4D9 /* CHIPClientCallbacks.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1E857305265519720050A4D9 /* CHIPClientCallbacks.cpp */; }; 1E85730C265519AE0050A4D9 /* callback-stub.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1E857307265519AE0050A4D9 /* callback-stub.cpp */; }; - 1E85730D265519AE0050A4D9 /* call-command-handler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1E857308265519AE0050A4D9 /* call-command-handler.cpp */; }; 1E85730E265519AE0050A4D9 /* CHIPClusters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1E857309265519AE0050A4D9 /* CHIPClusters.cpp */; }; 1E85730F265519AE0050A4D9 /* attribute-size.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1E85730A265519AE0050A4D9 /* attribute-size.cpp */; }; 1E857310265519AE0050A4D9 /* IMClusterCommandHandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1E85730B265519AE0050A4D9 /* IMClusterCommandHandler.cpp */; }; @@ -81,7 +80,6 @@ /* Begin PBXFileReference section */ 1E857305265519720050A4D9 /* CHIPClientCallbacks.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CHIPClientCallbacks.cpp; path = ../../../controller/data_model/gen/CHIPClientCallbacks.cpp; sourceTree = ""; }; 1E857307265519AE0050A4D9 /* callback-stub.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "callback-stub.cpp"; path = "../../../controller/data_model/gen/callback-stub.cpp"; sourceTree = ""; }; - 1E857308265519AE0050A4D9 /* call-command-handler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "call-command-handler.cpp"; path = "../../../controller/data_model/gen/call-command-handler.cpp"; sourceTree = ""; }; 1E857309265519AE0050A4D9 /* CHIPClusters.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CHIPClusters.cpp; path = ../../../controller/data_model/gen/CHIPClusters.cpp; sourceTree = ""; }; 1E85730A265519AE0050A4D9 /* attribute-size.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "attribute-size.cpp"; path = "../../../controller/data_model/gen/attribute-size.cpp"; sourceTree = ""; }; 1E85730B265519AE0050A4D9 /* IMClusterCommandHandler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = IMClusterCommandHandler.cpp; path = ../../../controller/data_model/gen/IMClusterCommandHandler.cpp; sourceTree = ""; }; @@ -195,7 +193,6 @@ children = ( 1E85733626551AAE0050A4D9 /* encoder.cpp */, 1E85730A265519AE0050A4D9 /* attribute-size.cpp */, - 1E857308265519AE0050A4D9 /* call-command-handler.cpp */, 1E857307265519AE0050A4D9 /* callback-stub.cpp */, 1E857309265519AE0050A4D9 /* CHIPClusters.cpp */, 1E85730B265519AE0050A4D9 /* IMClusterCommandHandler.cpp */, @@ -458,7 +455,6 @@ 1E85733526551A700050A4D9 /* reporting-default-configuration.cpp in Sources */, 1E85732926551A490050A4D9 /* af-event.cpp in Sources */, B2E0D7B9245B0B5C003C5B48 /* CHIPSetupPayload.mm in Sources */, - 1E85730D265519AE0050A4D9 /* call-command-handler.cpp in Sources */, B2E0D7B6245B0B5C003C5B48 /* CHIPManualSetupPayloadParser.mm in Sources */, 1E85732826551A490050A4D9 /* attribute-table.cpp in Sources */, 1E85732626551A490050A4D9 /* attribute-storage.cpp in Sources */,