blob: 18d85d1746be5f8e82245fda4a03f1f7dc60be27 [file]
/*
*
* Copyright (c) 2022 Project CHIP Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// THIS FILE IS GENERATED BY ZAP
// This file is generated from clusters-Structs.ipp.zapt
#include <clusters/DeviceEnergyManagement/Structs.h>
#include <app/data-model/StructDecodeIterator.h>
#include <app/data-model/WrappedStructEncoder.h>
namespace chip {
namespace app {
namespace Clusters {
namespace DeviceEnergyManagement {
namespace Structs {
namespace CostStruct {
CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
{
DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
encoder.Encode(to_underlying(Fields::kCostType), costType);
encoder.Encode(to_underlying(Fields::kValue), value);
encoder.Encode(to_underlying(Fields::kDecimalPoints), decimalPoints);
encoder.Encode(to_underlying(Fields::kCurrency), currency);
return encoder.Finalize();
}
CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
{
detail::StructDecodeIterator __iterator(reader);
while (true)
{
uint8_t __context_tag = 0;
CHIP_ERROR err = __iterator.Next(__context_tag);
VerifyOrReturnError(err != CHIP_ERROR_END_OF_TLV, CHIP_NO_ERROR);
ReturnErrorOnFailure(err);
if (__context_tag == to_underlying(Fields::kCostType))
{
err = DataModel::Decode(reader, costType);
}
else if (__context_tag == to_underlying(Fields::kValue))
{
err = DataModel::Decode(reader, value);
}
else if (__context_tag == to_underlying(Fields::kDecimalPoints))
{
err = DataModel::Decode(reader, decimalPoints);
}
else if (__context_tag == to_underlying(Fields::kCurrency))
{
err = DataModel::Decode(reader, currency);
}
ReturnErrorOnFailure(err);
}
}
} // namespace CostStruct
namespace PowerAdjustStruct {
CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
{
DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
encoder.Encode(to_underlying(Fields::kMinPower), minPower);
encoder.Encode(to_underlying(Fields::kMaxPower), maxPower);
encoder.Encode(to_underlying(Fields::kMinDuration), minDuration);
encoder.Encode(to_underlying(Fields::kMaxDuration), maxDuration);
return encoder.Finalize();
}
CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
{
detail::StructDecodeIterator __iterator(reader);
while (true)
{
uint8_t __context_tag = 0;
CHIP_ERROR err = __iterator.Next(__context_tag);
VerifyOrReturnError(err != CHIP_ERROR_END_OF_TLV, CHIP_NO_ERROR);
ReturnErrorOnFailure(err);
if (__context_tag == to_underlying(Fields::kMinPower))
{
err = DataModel::Decode(reader, minPower);
}
else if (__context_tag == to_underlying(Fields::kMaxPower))
{
err = DataModel::Decode(reader, maxPower);
}
else if (__context_tag == to_underlying(Fields::kMinDuration))
{
err = DataModel::Decode(reader, minDuration);
}
else if (__context_tag == to_underlying(Fields::kMaxDuration))
{
err = DataModel::Decode(reader, maxDuration);
}
ReturnErrorOnFailure(err);
}
}
} // namespace PowerAdjustStruct
namespace PowerAdjustCapabilityStruct {
CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
{
DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
encoder.Encode(to_underlying(Fields::kPowerAdjustCapability), powerAdjustCapability);
encoder.Encode(to_underlying(Fields::kCause), cause);
return encoder.Finalize();
}
CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
{
detail::StructDecodeIterator __iterator(reader);
while (true)
{
uint8_t __context_tag = 0;
CHIP_ERROR err = __iterator.Next(__context_tag);
VerifyOrReturnError(err != CHIP_ERROR_END_OF_TLV, CHIP_NO_ERROR);
ReturnErrorOnFailure(err);
if (__context_tag == to_underlying(Fields::kPowerAdjustCapability))
{
err = DataModel::Decode(reader, powerAdjustCapability);
}
else if (__context_tag == to_underlying(Fields::kCause))
{
err = DataModel::Decode(reader, cause);
}
ReturnErrorOnFailure(err);
}
}
} // namespace PowerAdjustCapabilityStruct
namespace SlotStruct {
CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
{
DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
encoder.Encode(to_underlying(Fields::kMinDuration), minDuration);
encoder.Encode(to_underlying(Fields::kMaxDuration), maxDuration);
encoder.Encode(to_underlying(Fields::kDefaultDuration), defaultDuration);
encoder.Encode(to_underlying(Fields::kElapsedSlotTime), elapsedSlotTime);
encoder.Encode(to_underlying(Fields::kRemainingSlotTime), remainingSlotTime);
encoder.Encode(to_underlying(Fields::kSlotIsPausable), slotIsPausable);
encoder.Encode(to_underlying(Fields::kMinPauseDuration), minPauseDuration);
encoder.Encode(to_underlying(Fields::kMaxPauseDuration), maxPauseDuration);
encoder.Encode(to_underlying(Fields::kManufacturerESAState), manufacturerESAState);
encoder.Encode(to_underlying(Fields::kNominalPower), nominalPower);
encoder.Encode(to_underlying(Fields::kMinPower), minPower);
encoder.Encode(to_underlying(Fields::kMaxPower), maxPower);
encoder.Encode(to_underlying(Fields::kNominalEnergy), nominalEnergy);
encoder.Encode(to_underlying(Fields::kCosts), costs);
encoder.Encode(to_underlying(Fields::kMinPowerAdjustment), minPowerAdjustment);
encoder.Encode(to_underlying(Fields::kMaxPowerAdjustment), maxPowerAdjustment);
encoder.Encode(to_underlying(Fields::kMinDurationAdjustment), minDurationAdjustment);
encoder.Encode(to_underlying(Fields::kMaxDurationAdjustment), maxDurationAdjustment);
return encoder.Finalize();
}
CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
{
detail::StructDecodeIterator __iterator(reader);
while (true)
{
uint8_t __context_tag = 0;
CHIP_ERROR err = __iterator.Next(__context_tag);
VerifyOrReturnError(err != CHIP_ERROR_END_OF_TLV, CHIP_NO_ERROR);
ReturnErrorOnFailure(err);
if (__context_tag == to_underlying(Fields::kMinDuration))
{
err = DataModel::Decode(reader, minDuration);
}
else if (__context_tag == to_underlying(Fields::kMaxDuration))
{
err = DataModel::Decode(reader, maxDuration);
}
else if (__context_tag == to_underlying(Fields::kDefaultDuration))
{
err = DataModel::Decode(reader, defaultDuration);
}
else if (__context_tag == to_underlying(Fields::kElapsedSlotTime))
{
err = DataModel::Decode(reader, elapsedSlotTime);
}
else if (__context_tag == to_underlying(Fields::kRemainingSlotTime))
{
err = DataModel::Decode(reader, remainingSlotTime);
}
else if (__context_tag == to_underlying(Fields::kSlotIsPausable))
{
err = DataModel::Decode(reader, slotIsPausable);
}
else if (__context_tag == to_underlying(Fields::kMinPauseDuration))
{
err = DataModel::Decode(reader, minPauseDuration);
}
else if (__context_tag == to_underlying(Fields::kMaxPauseDuration))
{
err = DataModel::Decode(reader, maxPauseDuration);
}
else if (__context_tag == to_underlying(Fields::kManufacturerESAState))
{
err = DataModel::Decode(reader, manufacturerESAState);
}
else if (__context_tag == to_underlying(Fields::kNominalPower))
{
err = DataModel::Decode(reader, nominalPower);
}
else if (__context_tag == to_underlying(Fields::kMinPower))
{
err = DataModel::Decode(reader, minPower);
}
else if (__context_tag == to_underlying(Fields::kMaxPower))
{
err = DataModel::Decode(reader, maxPower);
}
else if (__context_tag == to_underlying(Fields::kNominalEnergy))
{
err = DataModel::Decode(reader, nominalEnergy);
}
else if (__context_tag == to_underlying(Fields::kCosts))
{
err = DataModel::Decode(reader, costs);
}
else if (__context_tag == to_underlying(Fields::kMinPowerAdjustment))
{
err = DataModel::Decode(reader, minPowerAdjustment);
}
else if (__context_tag == to_underlying(Fields::kMaxPowerAdjustment))
{
err = DataModel::Decode(reader, maxPowerAdjustment);
}
else if (__context_tag == to_underlying(Fields::kMinDurationAdjustment))
{
err = DataModel::Decode(reader, minDurationAdjustment);
}
else if (__context_tag == to_underlying(Fields::kMaxDurationAdjustment))
{
err = DataModel::Decode(reader, maxDurationAdjustment);
}
ReturnErrorOnFailure(err);
}
}
} // namespace SlotStruct
namespace ForecastStruct {
CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
{
DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
encoder.Encode(to_underlying(Fields::kForecastID), forecastID);
encoder.Encode(to_underlying(Fields::kActiveSlotNumber), activeSlotNumber);
encoder.Encode(to_underlying(Fields::kStartTime), startTime);
encoder.Encode(to_underlying(Fields::kEndTime), endTime);
encoder.Encode(to_underlying(Fields::kEarliestStartTime), earliestStartTime);
encoder.Encode(to_underlying(Fields::kLatestEndTime), latestEndTime);
encoder.Encode(to_underlying(Fields::kIsPausable), isPausable);
encoder.Encode(to_underlying(Fields::kSlots), slots);
encoder.Encode(to_underlying(Fields::kForecastUpdateReason), forecastUpdateReason);
return encoder.Finalize();
}
CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
{
detail::StructDecodeIterator __iterator(reader);
while (true)
{
uint8_t __context_tag = 0;
CHIP_ERROR err = __iterator.Next(__context_tag);
VerifyOrReturnError(err != CHIP_ERROR_END_OF_TLV, CHIP_NO_ERROR);
ReturnErrorOnFailure(err);
if (__context_tag == to_underlying(Fields::kForecastID))
{
err = DataModel::Decode(reader, forecastID);
}
else if (__context_tag == to_underlying(Fields::kActiveSlotNumber))
{
err = DataModel::Decode(reader, activeSlotNumber);
}
else if (__context_tag == to_underlying(Fields::kStartTime))
{
err = DataModel::Decode(reader, startTime);
}
else if (__context_tag == to_underlying(Fields::kEndTime))
{
err = DataModel::Decode(reader, endTime);
}
else if (__context_tag == to_underlying(Fields::kEarliestStartTime))
{
err = DataModel::Decode(reader, earliestStartTime);
}
else if (__context_tag == to_underlying(Fields::kLatestEndTime))
{
err = DataModel::Decode(reader, latestEndTime);
}
else if (__context_tag == to_underlying(Fields::kIsPausable))
{
err = DataModel::Decode(reader, isPausable);
}
else if (__context_tag == to_underlying(Fields::kSlots))
{
err = DataModel::Decode(reader, slots);
}
else if (__context_tag == to_underlying(Fields::kForecastUpdateReason))
{
err = DataModel::Decode(reader, forecastUpdateReason);
}
ReturnErrorOnFailure(err);
}
}
} // namespace ForecastStruct
namespace ConstraintsStruct {
CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
{
DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
encoder.Encode(to_underlying(Fields::kStartTime), startTime);
encoder.Encode(to_underlying(Fields::kDuration), duration);
encoder.Encode(to_underlying(Fields::kNominalPower), nominalPower);
encoder.Encode(to_underlying(Fields::kMaximumEnergy), maximumEnergy);
encoder.Encode(to_underlying(Fields::kLoadControl), loadControl);
return encoder.Finalize();
}
CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
{
detail::StructDecodeIterator __iterator(reader);
while (true)
{
uint8_t __context_tag = 0;
CHIP_ERROR err = __iterator.Next(__context_tag);
VerifyOrReturnError(err != CHIP_ERROR_END_OF_TLV, CHIP_NO_ERROR);
ReturnErrorOnFailure(err);
if (__context_tag == to_underlying(Fields::kStartTime))
{
err = DataModel::Decode(reader, startTime);
}
else if (__context_tag == to_underlying(Fields::kDuration))
{
err = DataModel::Decode(reader, duration);
}
else if (__context_tag == to_underlying(Fields::kNominalPower))
{
err = DataModel::Decode(reader, nominalPower);
}
else if (__context_tag == to_underlying(Fields::kMaximumEnergy))
{
err = DataModel::Decode(reader, maximumEnergy);
}
else if (__context_tag == to_underlying(Fields::kLoadControl))
{
err = DataModel::Decode(reader, loadControl);
}
ReturnErrorOnFailure(err);
}
}
} // namespace ConstraintsStruct
namespace PowerRangeAdjustStruct {
CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
{
DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
encoder.Encode(to_underlying(Fields::kMinPower), minPower);
encoder.Encode(to_underlying(Fields::kMaxPower), maxPower);
encoder.Encode(to_underlying(Fields::kCause), cause);
encoder.Encode(to_underlying(Fields::kEndTime), endTime);
return encoder.Finalize();
}
CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
{
detail::StructDecodeIterator __iterator(reader);
while (true)
{
uint8_t __context_tag = 0;
CHIP_ERROR err = __iterator.Next(__context_tag);
VerifyOrReturnError(err != CHIP_ERROR_END_OF_TLV, CHIP_NO_ERROR);
ReturnErrorOnFailure(err);
if (__context_tag == to_underlying(Fields::kMinPower))
{
err = DataModel::Decode(reader, minPower);
}
else if (__context_tag == to_underlying(Fields::kMaxPower))
{
err = DataModel::Decode(reader, maxPower);
}
else if (__context_tag == to_underlying(Fields::kCause))
{
err = DataModel::Decode(reader, cause);
}
else if (__context_tag == to_underlying(Fields::kEndTime))
{
err = DataModel::Decode(reader, endTime);
}
ReturnErrorOnFailure(err);
}
}
} // namespace PowerRangeAdjustStruct
namespace SlotAdjustmentStruct {
CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
{
DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
encoder.Encode(to_underlying(Fields::kSlotIndex), slotIndex);
encoder.Encode(to_underlying(Fields::kNominalPower), nominalPower);
encoder.Encode(to_underlying(Fields::kDuration), duration);
return encoder.Finalize();
}
CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
{
detail::StructDecodeIterator __iterator(reader);
while (true)
{
uint8_t __context_tag = 0;
CHIP_ERROR err = __iterator.Next(__context_tag);
VerifyOrReturnError(err != CHIP_ERROR_END_OF_TLV, CHIP_NO_ERROR);
ReturnErrorOnFailure(err);
if (__context_tag == to_underlying(Fields::kSlotIndex))
{
err = DataModel::Decode(reader, slotIndex);
}
else if (__context_tag == to_underlying(Fields::kNominalPower))
{
err = DataModel::Decode(reader, nominalPower);
}
else if (__context_tag == to_underlying(Fields::kDuration))
{
err = DataModel::Decode(reader, duration);
}
ReturnErrorOnFailure(err);
}
}
} // namespace SlotAdjustmentStruct
} // namespace Structs
} // namespace DeviceEnergyManagement
} // namespace Clusters
} // namespace app
} // namespace chip