blob: 5cbd929c6e078d23dcd8a762ce6b8d5bd2ab9269 [file] [log] [blame]
/*
*
* 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.h.zapt
#pragma once
#include <app/data-model/DecodableList.h>
#include <app/data-model/List.h>
#include <app/data-model/Nullable.h>
#include <app/util/basic-types.h>
#include <lib/core/Optional.h>
#include <lib/core/TLV.h>
#include <lib/support/BitMask.h>
#include <clusters/shared/Structs.h>
#include <cstdint>
namespace chip {
namespace app {
namespace Clusters {
namespace DeviceEnergyManagement {
namespace Structs {
namespace CostStruct {
enum class Fields : uint8_t
{
kCostType = 0,
kValue = 1,
kDecimalPoints = 2,
kCurrency = 3,
};
struct Type
{
public:
CostTypeEnum costType = static_cast<CostTypeEnum>(0);
int32_t value = static_cast<int32_t>(0);
uint8_t decimalPoints = static_cast<uint8_t>(0);
Optional<uint16_t> currency;
CHIP_ERROR Decode(TLV::TLVReader & reader);
static constexpr bool kIsFabricScoped = false;
CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
};
using DecodableType = Type;
} // namespace CostStruct
namespace PowerAdjustStruct {
enum class Fields : uint8_t
{
kMinPower = 0,
kMaxPower = 1,
kMinDuration = 2,
kMaxDuration = 3,
};
struct Type
{
public:
int64_t minPower = static_cast<int64_t>(0);
int64_t maxPower = static_cast<int64_t>(0);
uint32_t minDuration = static_cast<uint32_t>(0);
uint32_t maxDuration = static_cast<uint32_t>(0);
CHIP_ERROR Decode(TLV::TLVReader & reader);
static constexpr bool kIsFabricScoped = false;
CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
};
using DecodableType = Type;
} // namespace PowerAdjustStruct
namespace PowerAdjustCapabilityStruct {
enum class Fields : uint8_t
{
kPowerAdjustCapability = 0,
kCause = 1,
};
struct Type
{
public:
DataModel::Nullable<DataModel::List<const Structs::PowerAdjustStruct::Type>> powerAdjustCapability;
PowerAdjustReasonEnum cause = static_cast<PowerAdjustReasonEnum>(0);
static constexpr bool kIsFabricScoped = false;
CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
};
struct DecodableType
{
public:
DataModel::Nullable<DataModel::DecodableList<Structs::PowerAdjustStruct::DecodableType>> powerAdjustCapability;
PowerAdjustReasonEnum cause = static_cast<PowerAdjustReasonEnum>(0);
CHIP_ERROR Decode(TLV::TLVReader & reader);
static constexpr bool kIsFabricScoped = false;
};
} // namespace PowerAdjustCapabilityStruct
namespace SlotStruct {
enum class Fields : uint8_t
{
kMinDuration = 0,
kMaxDuration = 1,
kDefaultDuration = 2,
kElapsedSlotTime = 3,
kRemainingSlotTime = 4,
kSlotIsPausable = 5,
kMinPauseDuration = 6,
kMaxPauseDuration = 7,
kManufacturerESAState = 8,
kNominalPower = 9,
kMinPower = 10,
kMaxPower = 11,
kNominalEnergy = 12,
kCosts = 13,
kMinPowerAdjustment = 14,
kMaxPowerAdjustment = 15,
kMinDurationAdjustment = 16,
kMaxDurationAdjustment = 17,
};
struct Type
{
public:
uint32_t minDuration = static_cast<uint32_t>(0);
uint32_t maxDuration = static_cast<uint32_t>(0);
uint32_t defaultDuration = static_cast<uint32_t>(0);
uint32_t elapsedSlotTime = static_cast<uint32_t>(0);
uint32_t remainingSlotTime = static_cast<uint32_t>(0);
Optional<bool> slotIsPausable;
Optional<uint32_t> minPauseDuration;
Optional<uint32_t> maxPauseDuration;
Optional<uint16_t> manufacturerESAState;
Optional<int64_t> nominalPower;
Optional<int64_t> minPower;
Optional<int64_t> maxPower;
Optional<int64_t> nominalEnergy;
Optional<DataModel::List<const Structs::CostStruct::Type>> costs;
Optional<int64_t> minPowerAdjustment;
Optional<int64_t> maxPowerAdjustment;
Optional<uint32_t> minDurationAdjustment;
Optional<uint32_t> maxDurationAdjustment;
static constexpr bool kIsFabricScoped = false;
CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
};
struct DecodableType
{
public:
uint32_t minDuration = static_cast<uint32_t>(0);
uint32_t maxDuration = static_cast<uint32_t>(0);
uint32_t defaultDuration = static_cast<uint32_t>(0);
uint32_t elapsedSlotTime = static_cast<uint32_t>(0);
uint32_t remainingSlotTime = static_cast<uint32_t>(0);
Optional<bool> slotIsPausable;
Optional<uint32_t> minPauseDuration;
Optional<uint32_t> maxPauseDuration;
Optional<uint16_t> manufacturerESAState;
Optional<int64_t> nominalPower;
Optional<int64_t> minPower;
Optional<int64_t> maxPower;
Optional<int64_t> nominalEnergy;
Optional<DataModel::DecodableList<Structs::CostStruct::DecodableType>> costs;
Optional<int64_t> minPowerAdjustment;
Optional<int64_t> maxPowerAdjustment;
Optional<uint32_t> minDurationAdjustment;
Optional<uint32_t> maxDurationAdjustment;
CHIP_ERROR Decode(TLV::TLVReader & reader);
static constexpr bool kIsFabricScoped = false;
};
} // namespace SlotStruct
namespace ForecastStruct {
enum class Fields : uint8_t
{
kForecastID = 0,
kActiveSlotNumber = 1,
kStartTime = 2,
kEndTime = 3,
kEarliestStartTime = 4,
kLatestEndTime = 5,
kIsPausable = 6,
kSlots = 7,
kForecastUpdateReason = 8,
};
struct Type
{
public:
uint32_t forecastID = static_cast<uint32_t>(0);
DataModel::Nullable<uint16_t> activeSlotNumber;
uint32_t startTime = static_cast<uint32_t>(0);
uint32_t endTime = static_cast<uint32_t>(0);
Optional<DataModel::Nullable<uint32_t>> earliestStartTime;
Optional<uint32_t> latestEndTime;
bool isPausable = static_cast<bool>(0);
DataModel::List<const Structs::SlotStruct::Type> slots;
ForecastUpdateReasonEnum forecastUpdateReason = static_cast<ForecastUpdateReasonEnum>(0);
static constexpr bool kIsFabricScoped = false;
CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
};
struct DecodableType
{
public:
uint32_t forecastID = static_cast<uint32_t>(0);
DataModel::Nullable<uint16_t> activeSlotNumber;
uint32_t startTime = static_cast<uint32_t>(0);
uint32_t endTime = static_cast<uint32_t>(0);
Optional<DataModel::Nullable<uint32_t>> earliestStartTime;
Optional<uint32_t> latestEndTime;
bool isPausable = static_cast<bool>(0);
DataModel::DecodableList<Structs::SlotStruct::DecodableType> slots;
ForecastUpdateReasonEnum forecastUpdateReason = static_cast<ForecastUpdateReasonEnum>(0);
CHIP_ERROR Decode(TLV::TLVReader & reader);
static constexpr bool kIsFabricScoped = false;
};
} // namespace ForecastStruct
namespace ConstraintsStruct {
enum class Fields : uint8_t
{
kStartTime = 0,
kDuration = 1,
kNominalPower = 2,
kMaximumEnergy = 3,
kLoadControl = 4,
};
struct Type
{
public:
uint32_t startTime = static_cast<uint32_t>(0);
uint32_t duration = static_cast<uint32_t>(0);
Optional<int64_t> nominalPower;
Optional<int64_t> maximumEnergy;
Optional<int8_t> loadControl;
CHIP_ERROR Decode(TLV::TLVReader & reader);
static constexpr bool kIsFabricScoped = false;
CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
};
using DecodableType = Type;
} // namespace ConstraintsStruct
namespace SlotAdjustmentStruct {
enum class Fields : uint8_t
{
kSlotIndex = 0,
kNominalPower = 1,
kDuration = 2,
};
struct Type
{
public:
uint8_t slotIndex = static_cast<uint8_t>(0);
Optional<int64_t> nominalPower;
uint32_t duration = static_cast<uint32_t>(0);
CHIP_ERROR Decode(TLV::TLVReader & reader);
static constexpr bool kIsFabricScoped = false;
CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
};
using DecodableType = Type;
} // namespace SlotAdjustmentStruct
} // namespace Structs
} // namespace DeviceEnergyManagement
} // namespace Clusters
} // namespace app
} // namespace chip