smart-green-house/project_ZigBee/Components/stack/zcl/zcl_se.h

3977 lines
219 KiB
C
Raw Permalink Normal View History

2023-10-28 18:00:47 +08:00
/**************************************************************************************************
Filename: zcl_se.h
Revised: $Date: 2012-03-13 01:09:38 -0700 (Tue, 13 Mar 2012) $
Revision: $Revision: 29723 $
Description: This file contains the ZCL SE (Smart Energy) Profile definitions.
Copyright 2007-2012 Texas Instruments Incorporated. All rights reserved.
IMPORTANT: Your use of this Software is limited to those specific rights
granted under the terms of a software license agreement between the user
who downloaded the software, his/her employer (which must be your employer)
and Texas Instruments Incorporated (the "License"). You may not use this
Software unless you agree to abide by the terms of the License. The License
limits your use, and you acknowledge, that the Software may not be modified,
copied or distributed unless embedded on a Texas Instruments microcontroller
or used solely and exclusively in conjunction with a Texas Instruments radio
frequency transceiver, which is integrated into your product. Other than for
the foregoing purpose, you may not use, reproduce, copy, prepare derivative
works of, modify, distribute, perform, display or sell this Software and/or
its documentation for any purpose.
YOU FURTHER ACKNOWLEDGE AND AGREE THAT THE SOFTWARE AND DOCUMENTATION ARE
PROVIDED <EFBFBD>AS IS<EFBFBD> WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,
INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY, TITLE,
NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL
TEXAS INSTRUMENTS OR ITS LICENSORS BE LIABLE OR OBLIGATED UNDER CONTRACT,
NEGLIGENCE, STRICT LIABILITY, CONTRIBUTION, BREACH OF WARRANTY, OR OTHER
LEGAL EQUITABLE THEORY ANY DIRECT OR INDIRECT DAMAGES OR EXPENSES
INCLUDING BUT NOT LIMITED TO ANY INCIDENTAL, SPECIAL, INDIRECT, PUNITIVE
OR CONSEQUENTIAL DAMAGES, LOST PROFITS OR LOST DATA, COST OF PROCUREMENT
OF SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES
(INCLUDING BUT NOT LIMITED TO ANY DEFENSE THEREOF), OR OTHER SIMILAR COSTS.
Should you have any questions regarding your right to use this Software,
contact Texas Instruments Incorporated at www.TI.com.
**************************************************************************************************/
#ifndef ZCL_SE_H
#define ZCL_SE_H
#ifdef __cplusplus
extern "C"
{
#endif
/*********************************************************************
* INCLUDES
*/
#include "zcl.h"
/*********************************************************************
* CONSTANTS
*/
/********************************************/
/*** SE Profile Attributes List ************/
/********************************************/
// Simple Metering Cluster Attribute Sets
#define ATTRID_MASK_SE_READ_INFORMATION_SET 0x0000
#define ATTRID_MASK_SE_TOU_INFORMATION_SET 0x0100
#define ATTRID_MASK_SE_METER_STATUS 0x0200
#define ATTRID_MASK_SE_FORMATTING 0x0300
#define ATTRID_MASK_SE_HISTORICAL_CONSUMPTION 0x0400
#define ATTRID_MASK_SE_LOAD_PROFILE_CONFIGURATION 0x0500
#define ATTRID_MASK_SE_SUPPLY_LIMIT 0x0600
#define ATTRID_MASK_SE_BLOCK_INFORMATION 0x0700
#define ATTRID_MASK_SE_ALARMS 0x0800
#define ATTRID_MASK_SE_BLOCK_INFORMATION_RECEIVED 0x0900
#define ATTRID_MASK_SE_BILLING 0x0A00
// Simple Metering Cluster - Reading Information Set Attributes 0x00
#define ATTRID_SE_CURRENT_SUMMATION_DELIVERED ( 0x0000 | ATTRID_MASK_SE_READ_INFORMATION_SET )
#define ATTRID_SE_CURRENT_SUMMATION_RECEIVED ( 0x0001 | ATTRID_MASK_SE_READ_INFORMATION_SET )
#define ATTRID_SE_CURRENT_MAX_DEMAND_DELIVERED ( 0x0002 | ATTRID_MASK_SE_READ_INFORMATION_SET )
#define ATTRID_SE_CURRENT_MAX_DEMAND_RECEIVED ( 0x0003 | ATTRID_MASK_SE_READ_INFORMATION_SET )
#define ATTRID_SE_DFT_SUMMATION ( 0x0004 | ATTRID_MASK_SE_READ_INFORMATION_SET )
#define ATTRID_SE_DAILY_FREEZE_TIME ( 0x0005 | ATTRID_MASK_SE_READ_INFORMATION_SET )
#define ATTRID_SE_POWER_FACTOR ( 0x0006 | ATTRID_MASK_SE_READ_INFORMATION_SET )
#define ATTRID_SE_READING_SNAPSHOT_TIME ( 0x0007 | ATTRID_MASK_SE_READ_INFORMATION_SET )
#define ATTRID_SE_CURRENT_MAX_DEMAND_DELIVERD_TIME ( 0x0008 | ATTRID_MASK_SE_READ_INFORMATION_SET )
#define ATTRID_SE_CURRENT_MAX_DEMAND_RECEIVED_TIME ( 0x0009 | ATTRID_MASK_SE_READ_INFORMATION_SET )
#define ATTRID_SE_DEFAULT_UPDATE_PERIOD ( 0x000A | ATTRID_MASK_SE_READ_INFORMATION_SET )
#define ATTRID_SE_FAST_POLL_UPDATE_PERIOD ( 0x000B | ATTRID_MASK_SE_READ_INFORMATION_SET )
#define ATTRID_SE_CURRENT_BLOCK_PERIOD_CONSUMPTION_DELIVERED ( 0x000C | ATTRID_MASK_SE_READ_INFORMATION_SET )
#define ATTRID_SE_DAILY_CONSUMPTION_TARGET ( 0x000D | ATTRID_MASK_SE_READ_INFORMATION_SET )
#define ATTRID_SE_CURRENT_BLOCK ( 0x000E | ATTRID_MASK_SE_READ_INFORMATION_SET )
#define ATTRID_SE_PROFILE_INTERVAL_PERIOD ( 0x000F | ATTRID_MASK_SE_READ_INFORMATION_SET )
#define ATTRID_SE_INTERVAL_READ_REPORTING_PERIOD ( 0x0010 | ATTRID_MASK_SE_READ_INFORMATION_SET )
#define ATTRID_SE_PRESET_READING_TIME ( 0x0011 | ATTRID_MASK_SE_READ_INFORMATION_SET )
#define ATTRID_SE_VOLUME_PER_REPORT ( 0x0012 | ATTRID_MASK_SE_READ_INFORMATION_SET )
#define ATTRID_SE_FLOW_RESTRICTION ( 0x0013 | ATTRID_MASK_SE_READ_INFORMATION_SET )
#define ATTRID_SE_SUPPLY_STATUS ( 0x0014 | ATTRID_MASK_SE_READ_INFORMATION_SET )
#define ATTRID_SE_CURRENT_IN_ENERGY_CARRIER_SUMM ( 0x0015 | ATTRID_MASK_SE_READ_INFORMATION_SET )
#define ATTRID_SE_CURRENT_OUT_ENERGY_CARRIER_SUMM ( 0x0016 | ATTRID_MASK_SE_READ_INFORMATION_SET )
#define ATTRID_SE_INLET_TEMPREATURE ( 0x0017 | ATTRID_MASK_SE_READ_INFORMATION_SET )
#define ATTRID_SE_OUTLET_TEMPREATURE ( 0x0018 | ATTRID_MASK_SE_READ_INFORMATION_SET )
#define ATTRID_SE_CONTROL_TEMPREATURE ( 0x0019 | ATTRID_MASK_SE_READ_INFORMATION_SET )
#define ATTRID_SE_CURRENT_IN_ENERGY_CARRIER_DEMAND ( 0x001A | ATTRID_MASK_SE_READ_INFORMATION_SET )
#define ATTRID_SE_CURRENT_OUT_ENERGY_CARRIER_DEMAND ( 0x001B | ATTRID_MASK_SE_READ_INFORMATION_SET )
#define ATTRID_SE_CURRENT_BLOCK_PERIOD_CONSUMPTION_RECEIVED ( 0x001D | ATTRID_MASK_SE_READ_INFORMATION_SET )
#define ATTRID_SE_CURRENT_BLOCK_RECEIVED ( 0x001E | ATTRID_MASK_SE_READ_INFORMATION_SET )
// Simple Metering Cluster - TOU Information Set Attributes 0x01
#define ATTRID_SE_CURRENT_TIER1_SUMMATION_DELIVERED ( 0x0000 | ATTRID_MASK_SE_TOU_INFORMATION_SET )
#define ATTRID_SE_CURRENT_TIER1_SUMMATION_RECEIVED ( 0x0001 | ATTRID_MASK_SE_TOU_INFORMATION_SET )
#define ATTRID_SE_CURRENT_TIER2_SUMMATION_DELIVERED ( 0x0002 | ATTRID_MASK_SE_TOU_INFORMATION_SET )
#define ATTRID_SE_CURRENT_TIER2_SUMMATION_RECEIVED ( 0x0003 | ATTRID_MASK_SE_TOU_INFORMATION_SET )
#define ATTRID_SE_CURRENT_TIER3_SUMMATION_DELIVERED ( 0x0004 | ATTRID_MASK_SE_TOU_INFORMATION_SET )
#define ATTRID_SE_CURRENT_TIER3_SUMMATION_RECEIVED ( 0x0005 | ATTRID_MASK_SE_TOU_INFORMATION_SET )
#define ATTRID_SE_CURRENT_TIER4_SUMMATION_DELIVERED ( 0x0006 | ATTRID_MASK_SE_TOU_INFORMATION_SET )
#define ATTRID_SE_CURRENT_TIER4_SUMMATION_RECEIVED ( 0x0007 | ATTRID_MASK_SE_TOU_INFORMATION_SET )
#define ATTRID_SE_CURRENT_TIER5_SUMMATION_DELIVERED ( 0x0008 | ATTRID_MASK_SE_TOU_INFORMATION_SET )
#define ATTRID_SE_CURRENT_TIER5_SUMMATION_RECEIVED ( 0x0009 | ATTRID_MASK_SE_TOU_INFORMATION_SET )
#define ATTRID_SE_CURRENT_TIER6_SUMMATION_DELIVERED ( 0x000A | ATTRID_MASK_SE_TOU_INFORMATION_SET )
#define ATTRID_SE_CURRENT_TIER6_SUMMATION_RECEIVED ( 0x000B | ATTRID_MASK_SE_TOU_INFORMATION_SET )
#define ATTRID_SE_CURRENT_TIER7_SUMMATION_DELIVERED ( 0x000C | ATTRID_MASK_SE_TOU_INFORMATION_SET )
#define ATTRID_SE_CURRENT_TIER7_SUMMATION_RECEIVED ( 0x000D | ATTRID_MASK_SE_TOU_INFORMATION_SET )
#define ATTRID_SE_CURRENT_TIER8_SUMMATION_DELIVERED ( 0x000E | ATTRID_MASK_SE_TOU_INFORMATION_SET )
#define ATTRID_SE_CURRENT_TIER8_SUMMATION_RECEIVED ( 0x000F | ATTRID_MASK_SE_TOU_INFORMATION_SET )
#define ATTRID_SE_CURRENT_TIER9_SUMMATION_DELIVERED ( 0x0010 | ATTRID_MASK_SE_TOU_INFORMATION_SET )
#define ATTRID_SE_CURRENT_TIER9_SUMMATION_RECEIVED ( 0x0011 | ATTRID_MASK_SE_TOU_INFORMATION_SET )
#define ATTRID_SE_CURRENT_TIER10_SUMMATION_DELIVERED ( 0x0012 | ATTRID_MASK_SE_TOU_INFORMATION_SET )
#define ATTRID_SE_CURRENT_TIER10_SUMMATION_RECEIVED ( 0x0013 | ATTRID_MASK_SE_TOU_INFORMATION_SET )
#define ATTRID_SE_CURRENT_TIER11_SUMMATION_DELIVERED ( 0x0014 | ATTRID_MASK_SE_TOU_INFORMATION_SET )
#define ATTRID_SE_CURRENT_TIER11_SUMMATION_RECEIVED ( 0x0015 | ATTRID_MASK_SE_TOU_INFORMATION_SET )
#define ATTRID_SE_CURRENT_TIER12_SUMMATION_DELIVERED ( 0x0016 | ATTRID_MASK_SE_TOU_INFORMATION_SET )
#define ATTRID_SE_CURRENT_TIER12_SUMMATION_RECEIVED ( 0x0017 | ATTRID_MASK_SE_TOU_INFORMATION_SET )
#define ATTRID_SE_CURRENT_TIER13_SUMMATION_DELIVERED ( 0x0018 | ATTRID_MASK_SE_TOU_INFORMATION_SET )
#define ATTRID_SE_CURRENT_TIER13_SUMMATION_RECEIVED ( 0x0019 | ATTRID_MASK_SE_TOU_INFORMATION_SET )
#define ATTRID_SE_CURRENT_TIER14_SUMMATION_DELIVERED ( 0x001A | ATTRID_MASK_SE_TOU_INFORMATION_SET )
#define ATTRID_SE_CURRENT_TIER14_SUMMATION_RECEIVED ( 0x001B | ATTRID_MASK_SE_TOU_INFORMATION_SET )
#define ATTRID_SE_CURRENT_TIER15_SUMMATION_DELIVERED ( 0x001C | ATTRID_MASK_SE_TOU_INFORMATION_SET )
#define ATTRID_SE_CURRENT_TIER15_SUMMATION_RECEIVED ( 0x001D | ATTRID_MASK_SE_TOU_INFORMATION_SET )
// Simple Metering Cluster - Meter Status Attributes 0x02
#define ATTRID_SE_STATUS ( 0x0000 | ATTRID_MASK_SE_METER_STATUS )
#define ATTRID_SE_REMAINING_BATTERY_LIFE ( 0x0001 | ATTRID_MASK_SE_METER_STATUS )
#define ATTRID_SE_HOURS_IN_OPERATION ( 0x0002 | ATTRID_MASK_SE_METER_STATUS )
#define ATTRID_SE_HOURS_IN_FAULT ( 0x0003 | ATTRID_MASK_SE_METER_STATUS )
#define ATTRID_SE_EXTENDED_STATUS ( 0x0004 | ATTRID_MASK_SE_METER_STATUS )
// Simple Metering Cluster - Formatting Attributes 0x03
#define ATTRID_SE_UNIT_OF_MEASURE ( 0x0000 | ATTRID_MASK_SE_FORMATTING )
#define ATTRID_SE_MULTIPLIER ( 0x0001 | ATTRID_MASK_SE_FORMATTING )
#define ATTRID_SE_DIVISOR ( 0x0002 | ATTRID_MASK_SE_FORMATTING )
#define ATTRID_SE_SUMMATION_FORMATTING ( 0x0003 | ATTRID_MASK_SE_FORMATTING )
#define ATTRID_SE_DEMAND_FORMATTING ( 0x0004 | ATTRID_MASK_SE_FORMATTING )
#define ATTRID_SE_HISTORICAL_CONSUMPTION_FORMATTING ( 0x0005 | ATTRID_MASK_SE_FORMATTING )
#define ATTRID_SE_METERING_DEVICE_TYPE ( 0x0006 | ATTRID_MASK_SE_FORMATTING )
#define ATTRID_SE_SITE_ID ( 0x0007 | ATTRID_MASK_SE_FORMATTING )
#define ATTRID_SE_METER_SERIAL_NUMBER ( 0x0008 | ATTRID_MASK_SE_FORMATTING )
#define ATTRID_SE_ENERGY_CARRIER_UNIT_OF_MEASURE ( 0x0009 | ATTRID_MASK_SE_FORMATTING )
#define ATTRID_SE_ENERGY_CARRIER_SUMM_FORMATTING ( 0x000A | ATTRID_MASK_SE_FORMATTING )
#define ATTRID_SE_ENERGY_CARRIER_DEMAND_FORMATTING ( 0x000B | ATTRID_MASK_SE_FORMATTING )
#define ATTRID_SE_TEMPERATURE_UNIT_OF_MEASURE ( 0x000C | ATTRID_MASK_SE_FORMATTING )
#define ATTRID_SE_TEMPERATURE_FORMATTING ( 0x000D | ATTRID_MASK_SE_FORMATTING )
#define ATTRID_SE_MODULE_SERIAL_NUMBER ( 0x000E | ATTRID_MASK_SE_FORMATTING )
#define ATTRID_SE_OPERATING_TARIFF_LEVEL ( 0x000F | ATTRID_MASK_SE_FORMATTING )
// Simple Metering Server Cluster - Historical Comsumption Attributes 0x04
#define ATTRID_SE_INSTANTANEOUS_DEMAND ( 0x0000 | ATTRID_MASK_SE_HISTORICAL_CONSUMPTION )
#define ATTRID_SE_CURRENTDAY_CONSUMPTION_DELIVERED ( 0x0001 | ATTRID_MASK_SE_HISTORICAL_CONSUMPTION )
#define ATTRID_SE_CURRENTDAY_CONSUMPTION_RECEIVED ( 0x0002 | ATTRID_MASK_SE_HISTORICAL_CONSUMPTION )
#define ATTRID_SE_PREVIOUSDAY_CONSUMPTION_DELIVERED ( 0x0003 | ATTRID_MASK_SE_HISTORICAL_CONSUMPTION )
#define ATTRID_SE_PREVIOUSDAY_CONSUMPTION_RECEIVED ( 0x0004 | ATTRID_MASK_SE_HISTORICAL_CONSUMPTION )
#define ATTRID_SE_CUR_PART_PROFILE_INT_START_TIME_DELIVERED ( 0x0005 | ATTRID_MASK_SE_HISTORICAL_CONSUMPTION )
#define ATTRID_SE_CUR_PART_PROFILE_INT_START_TIME_RECEIVED ( 0x0006 | ATTRID_MASK_SE_HISTORICAL_CONSUMPTION )
#define ATTRID_SE_CUR_PART_PROFILE_INT_VALUE_DELIVERED ( 0x0007 | ATTRID_MASK_SE_HISTORICAL_CONSUMPTION )
#define ATTRID_SE_CUR_PART_PROFILE_INT_VALUE_RECEIVED ( 0x0008 | ATTRID_MASK_SE_HISTORICAL_CONSUMPTION )
#define ATTRID_SE_CURRENT_DAY_MAX_PRESSURE ( 0x0009 | ATTRID_MASK_SE_HISTORICAL_CONSUMPTION )
#define ATTRID_SE_CURRENT_DAY_MIN_PRESSURE ( 0x000A | ATTRID_MASK_SE_HISTORICAL_CONSUMPTION )
#define ATTRID_SE_PREVIOUS_DAY_MAX_PRESSURE ( 0x000B | ATTRID_MASK_SE_HISTORICAL_CONSUMPTION )
#define ATTRID_SE_PREVIOUS_DAY_MIN_PRESSURE ( 0x000C | ATTRID_MASK_SE_HISTORICAL_CONSUMPTION )
#define ATTRID_SE_CURRENT_DAY_MAX_DEMAND ( 0x000D | ATTRID_MASK_SE_HISTORICAL_CONSUMPTION )
#define ATTRID_SE_PREVIOUS_DAY_MAX_DEMAND ( 0x000E | ATTRID_MASK_SE_HISTORICAL_CONSUMPTION )
#define ATTRID_SE_CURRENT_MONTH_MAX_DEMAND ( 0x000F | ATTRID_MASK_SE_HISTORICAL_CONSUMPTION )
#define ATTRID_SE_CURRENT_YEAR_MAX_DEMAND ( 0x0010 | ATTRID_MASK_SE_HISTORICAL_CONSUMPTION )
#define ATTRID_SE_CURRENTDAY_MAX_ENERGY_CARR_DEMAND ( 0x0011 | ATTRID_MASK_SE_HISTORICAL_CONSUMPTION )
#define ATTRID_SE_PREVIOUSDAY_MAX_ENERGY_CARR_DEMAND ( 0x0012 | ATTRID_MASK_SE_HISTORICAL_CONSUMPTION )
#define ATTRID_SE_CUR_MONTH_MAX_ENERGY_CARR_DEMAND ( 0x0013 | ATTRID_MASK_SE_HISTORICAL_CONSUMPTION )
#define ATTRID_SE_CUR_MONTH_MIN_ENERGY_CARR_DEMAND ( 0x0014 | ATTRID_MASK_SE_HISTORICAL_CONSUMPTION )
#define ATTRID_SE_CUR_YEAR_MAX_ENERGY_CARR_DEMAND ( 0x0015 | ATTRID_MASK_SE_HISTORICAL_CONSUMPTION )
#define ATTRID_SE_CUR_YEAR_MIN_ENERGY_CARR_DEMAND ( 0x0016 | ATTRID_MASK_SE_HISTORICAL_CONSUMPTION )
// Simple Metering Server Cluster - Load Profile Configuration Attributes 0x05
#define ATTRID_SE_MAX_NUMBER_OF_PERIODS_DELIVERED ( 0x0000 | ATTRID_MASK_SE_LOAD_PROFILE_CONFIGURATION )
// Simple Metering Server Cluster - Supply Limit Attributes 0x06
#define ATTRID_SE_CURRENT_DEMAND_DELIVERED ( 0x0000 | ATTRID_MASK_SE_SUPPLY_LIMIT )
#define ATTRID_SE_DEMAND_LIMIT ( 0x0001 | ATTRID_MASK_SE_SUPPLY_LIMIT )
#define ATTRID_SE_DEMAND_INTEGRATION_PERIOD ( 0x0002 | ATTRID_MASK_SE_SUPPLY_LIMIT )
#define ATTRID_SE_NUMBER_OF_DEMAND_SUBINTERVALS ( 0x0003 | ATTRID_MASK_SE_SUPPLY_LIMIT )
#define ATTRID_SE_DEMAND_LIMIT_ARM_DURATION ( 0x0004 | ATTRID_MASK_SE_SUPPLY_LIMIT )
// Simple Metering Server Cluster - Block Information Attributes 0x07
#define ATTRID_SE_CURRENT_NO_TIER_BLOCK1_SUMMATION_DELIVERED ( 0x0000 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_NO_TIER_BLOCK2_SUMMATION_DELIVERED ( 0x0001 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_NO_TIER_BLOCK3_SUMMATION_DELIVERED ( 0x0002 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_NO_TIER_BLOCK4_SUMMATION_DELIVERED ( 0x0003 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_NO_TIER_BLOCK5_SUMMATION_DELIVERED ( 0x0004 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_NO_TIER_BLOCK6_SUMMATION_DELIVERED ( 0x0005 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_NO_TIER_BLOCK7_SUMMATION_DELIVERED ( 0x0006 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_NO_TIER_BLOCK8_SUMMATION_DELIVERED ( 0x0007 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_NO_TIER_BLOCK9_SUMMATION_DELIVERED ( 0x0008 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_NO_TIER_BLOCK10_SUMMATION_DELIVERED ( 0x0009 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_NO_TIER_BLOCK11_SUMMATION_DELIVERED ( 0x000A | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_NO_TIER_BLOCK12_SUMMATION_DELIVERED ( 0x000B | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_NO_TIER_BLOCK13_SUMMATION_DELIVERED ( 0x000C | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_NO_TIER_BLOCK14_SUMMATION_DELIVERED ( 0x000D | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_NO_TIER_BLOCK15_SUMMATION_DELIVERED ( 0x000E | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_NO_TIER_BLOCK16_SUMMATION_DELIVERED ( 0x000F | ATTRID_MASK_SE_BLOCK_INFORMATION )
// Tier 1
#define ATTRID_SE_CURRENT_TIER1_BLOCK1_SUMMATION_DELIVERED ( 0x0010 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER1_BLOCK2_SUMMATION_DELIVERED ( 0x0011 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER1_BLOCK3_SUMMATION_DELIVERED ( 0x0012 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER1_BLOCK4_SUMMATION_DELIVERED ( 0x0013 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER1_BLOCK5_SUMMATION_DELIVERED ( 0x0014 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER1_BLOCK6_SUMMATION_DELIVERED ( 0x0015 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER1_BLOCK7_SUMMATION_DELIVERED ( 0x0016 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER1_BLOCK8_SUMMATION_DELIVERED ( 0x0017 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER1_BLOCK9_SUMMATION_DELIVERED ( 0x0018 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER1_BLOCK10_SUMMATION_DELIVERED ( 0x0019 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER1_BLOCK11_SUMMATION_DELIVERED ( 0x001A | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER1_BLOCK12_SUMMATION_DELIVERED ( 0x001B | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER1_BLOCK13_SUMMATION_DELIVERED ( 0x001C | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER1_BLOCK14_SUMMATION_DELIVERED ( 0x001D | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER1_BLOCK15_SUMMATION_DELIVERED ( 0x001E | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER1_BLOCK16_SUMMATION_DELIVERED ( 0x001F | ATTRID_MASK_SE_BLOCK_INFORMATION )
// Tier 2
#define ATTRID_SE_CURRENT_TIER2_BLOCK1_SUMMATION_DELIVERED ( 0x0020 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER2_BLOCK2_SUMMATION_DELIVERED ( 0x0021 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER2_BLOCK3_SUMMATION_DELIVERED ( 0x0022 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER2_BLOCK4_SUMMATION_DELIVERED ( 0x0023 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER2_BLOCK5_SUMMATION_DELIVERED ( 0x0024 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER2_BLOCK6_SUMMATION_DELIVERED ( 0x0025 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER2_BLOCK7_SUMMATION_DELIVERED ( 0x0026 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER2_BLOCK8_SUMMATION_DELIVERED ( 0x0027 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER2_BLOCK9_SUMMATION_DELIVERED ( 0x0028 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER2_BLOCK10_SUMMATION_DELIVERED ( 0x0029 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER2_BLOCK11_SUMMATION_DELIVERED ( 0x002A | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER2_BLOCK12_SUMMATION_DELIVERED ( 0x002B | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER2_BLOCK13_SUMMATION_DELIVERED ( 0x002C | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER2_BLOCK14_SUMMATION_DELIVERED ( 0x002D | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER2_BLOCK15_SUMMATION_DELIVERED ( 0x002E | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER2_BLOCK16_SUMMATION_DELIVERED ( 0x002F | ATTRID_MASK_SE_BLOCK_INFORMATION )
// Tier 3
#define ATTRID_SE_CURRENT_TIER3_BLOCK1_SUMMATION_DELIVERED ( 0x0030 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER3_BLOCK2_SUMMATION_DELIVERED ( 0x0031 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER3_BLOCK3_SUMMATION_DELIVERED ( 0x0032 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER3_BLOCK4_SUMMATION_DELIVERED ( 0x0033 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER3_BLOCK5_SUMMATION_DELIVERED ( 0x0034 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER3_BLOCK6_SUMMATION_DELIVERED ( 0x0035 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER3_BLOCK7_SUMMATION_DELIVERED ( 0x0036 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER3_BLOCK8_SUMMATION_DELIVERED ( 0x0037 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER3_BLOCK9_SUMMATION_DELIVERED ( 0x0038 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER3_BLOCK10_SUMMATION_DELIVERED ( 0x0039 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER3_BLOCK11_SUMMATION_DELIVERED ( 0x003A | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER3_BLOCK12_SUMMATION_DELIVERED ( 0x003B | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER3_BLOCK13_SUMMATION_DELIVERED ( 0x003C | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER3_BLOCK14_SUMMATION_DELIVERED ( 0x003D | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER3_BLOCK15_SUMMATION_DELIVERED ( 0x003E | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER3_BLOCK16_SUMMATION_DELIVERED ( 0x003F | ATTRID_MASK_SE_BLOCK_INFORMATION )
// Tier 4
#define ATTRID_SE_CURRENT_TIER4_BLOCK1_SUMMATION_DELIVERED ( 0x0040 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER4_BLOCK2_SUMMATION_DELIVERED ( 0x0041 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER4_BLOCK3_SUMMATION_DELIVERED ( 0x0042 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER4_BLOCK4_SUMMATION_DELIVERED ( 0x0043 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER4_BLOCK5_SUMMATION_DELIVERED ( 0x0044 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER4_BLOCK6_SUMMATION_DELIVERED ( 0x0045 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER4_BLOCK7_SUMMATION_DELIVERED ( 0x0046 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER4_BLOCK8_SUMMATION_DELIVERED ( 0x0047 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER4_BLOCK9_SUMMATION_DELIVERED ( 0x0048 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER4_BLOCK10_SUMMATION_DELIVERED ( 0x0049 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER4_BLOCK11_SUMMATION_DELIVERED ( 0x004A | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER4_BLOCK12_SUMMATION_DELIVERED ( 0x004B | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER4_BLOCK13_SUMMATION_DELIVERED ( 0x004C | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER4_BLOCK14_SUMMATION_DELIVERED ( 0x004D | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER4_BLOCK15_SUMMATION_DELIVERED ( 0x004E | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER4_BLOCK16_SUMMATION_DELIVERED ( 0x004F | ATTRID_MASK_SE_BLOCK_INFORMATION )
// Tier 5
#define ATTRID_SE_CURRENT_TIER5_BLOCK1_SUMMATION_DELIVERED ( 0x0050 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER5_BLOCK2_SUMMATION_DELIVERED ( 0x0051 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER5_BLOCK3_SUMMATION_DELIVERED ( 0x0052 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER5_BLOCK4_SUMMATION_DELIVERED ( 0x0053 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER5_BLOCK5_SUMMATION_DELIVERED ( 0x0054 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER5_BLOCK6_SUMMATION_DELIVERED ( 0x0055 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER5_BLOCK7_SUMMATION_DELIVERED ( 0x0056 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER5_BLOCK8_SUMMATION_DELIVERED ( 0x0057 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER5_BLOCK9_SUMMATION_DELIVERED ( 0x0058 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER5_BLOCK10_SUMMATION_DELIVERED ( 0x0059 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER5_BLOCK11_SUMMATION_DELIVERED ( 0x005A | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER5_BLOCK12_SUMMATION_DELIVERED ( 0x005B | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER5_BLOCK13_SUMMATION_DELIVERED ( 0x005C | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER5_BLOCK14_SUMMATION_DELIVERED ( 0x005D | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER5_BLOCK15_SUMMATION_DELIVERED ( 0x005E | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER5_BLOCK16_SUMMATION_DELIVERED ( 0x005F | ATTRID_MASK_SE_BLOCK_INFORMATION )
// Tier 6
#define ATTRID_SE_CURRENT_TIER6_BLOCK1_SUMMATION_DELIVERED ( 0x0060 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER6_BLOCK2_SUMMATION_DELIVERED ( 0x0061 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER6_BLOCK3_SUMMATION_DELIVERED ( 0x0062 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER6_BLOCK4_SUMMATION_DELIVERED ( 0x0063 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER6_BLOCK5_SUMMATION_DELIVERED ( 0x0064 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER6_BLOCK6_SUMMATION_DELIVERED ( 0x0065 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER6_BLOCK7_SUMMATION_DELIVERED ( 0x0066 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER6_BLOCK8_SUMMATION_DELIVERED ( 0x0067 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER6_BLOCK9_SUMMATION_DELIVERED ( 0x0068 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER6_BLOCK10_SUMMATION_DELIVERED ( 0x0069 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER6_BLOCK11_SUMMATION_DELIVERED ( 0x006A | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER6_BLOCK12_SUMMATION_DELIVERED ( 0x006B | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER6_BLOCK13_SUMMATION_DELIVERED ( 0x006C | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER6_BLOCK14_SUMMATION_DELIVERED ( 0x006D | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER6_BLOCK15_SUMMATION_DELIVERED ( 0x006E | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER6_BLOCK16_SUMMATION_DELIVERED ( 0x006F | ATTRID_MASK_SE_BLOCK_INFORMATION )
// Tier 7
#define ATTRID_SE_CURRENT_TIER7_BLOCK1_SUMMATION_DELIVERED ( 0x0070 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER7_BLOCK2_SUMMATION_DELIVERED ( 0x0071 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER7_BLOCK3_SUMMATION_DELIVERED ( 0x0072 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER7_BLOCK4_SUMMATION_DELIVERED ( 0x0073 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER7_BLOCK5_SUMMATION_DELIVERED ( 0x0074 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER7_BLOCK6_SUMMATION_DELIVERED ( 0x0075 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER7_BLOCK7_SUMMATION_DELIVERED ( 0x0076 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER7_BLOCK8_SUMMATION_DELIVERED ( 0x0077 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER7_BLOCK9_SUMMATION_DELIVERED ( 0x0078 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER7_BLOCK10_SUMMATION_DELIVERED ( 0x0079 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER7_BLOCK11_SUMMATION_DELIVERED ( 0x007A | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER7_BLOCK12_SUMMATION_DELIVERED ( 0x007B | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER7_BLOCK13_SUMMATION_DELIVERED ( 0x007C | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER7_BLOCK14_SUMMATION_DELIVERED ( 0x007D | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER7_BLOCK15_SUMMATION_DELIVERED ( 0x007E | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER7_BLOCK16_SUMMATION_DELIVERED ( 0x007F | ATTRID_MASK_SE_BLOCK_INFORMATION )
// Tier 8
#define ATTRID_SE_CURRENT_TIER8_BLOCK1_SUMMATION_DELIVERED ( 0x0080 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER8_BLOCK2_SUMMATION_DELIVERED ( 0x0081 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER8_BLOCK3_SUMMATION_DELIVERED ( 0x0082 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER8_BLOCK4_SUMMATION_DELIVERED ( 0x0083 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER8_BLOCK5_SUMMATION_DELIVERED ( 0x0084 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER8_BLOCK6_SUMMATION_DELIVERED ( 0x0085 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER8_BLOCK7_SUMMATION_DELIVERED ( 0x0086 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER8_BLOCK8_SUMMATION_DELIVERED ( 0x0087 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER8_BLOCK9_SUMMATION_DELIVERED ( 0x0088 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER8_BLOCK10_SUMMATION_DELIVERED ( 0x0089 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER8_BLOCK11_SUMMATION_DELIVERED ( 0x008A | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER8_BLOCK12_SUMMATION_DELIVERED ( 0x008B | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER8_BLOCK13_SUMMATION_DELIVERED ( 0x008C | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER8_BLOCK14_SUMMATION_DELIVERED ( 0x008D | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER8_BLOCK15_SUMMATION_DELIVERED ( 0x008E | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER8_BLOCK16_SUMMATION_DELIVERED ( 0x008F | ATTRID_MASK_SE_BLOCK_INFORMATION )
// Tier 9
#define ATTRID_SE_CURRENT_TIER9_BLOCK1_SUMMATION_DELIVERED ( 0x0090 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER9_BLOCK2_SUMMATION_DELIVERED ( 0x0091 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER9_BLOCK3_SUMMATION_DELIVERED ( 0x0092 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER9_BLOCK4_SUMMATION_DELIVERED ( 0x0093 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER9_BLOCK5_SUMMATION_DELIVERED ( 0x0094 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER9_BLOCK6_SUMMATION_DELIVERED ( 0x0095 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER9_BLOCK7_SUMMATION_DELIVERED ( 0x0096 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER9_BLOCK8_SUMMATION_DELIVERED ( 0x0097 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER9_BLOCK9_SUMMATION_DELIVERED ( 0x0098 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER9_BLOCK10_SUMMATION_DELIVERED ( 0x0099 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER9_BLOCK11_SUMMATION_DELIVERED ( 0x009A | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER9_BLOCK12_SUMMATION_DELIVERED ( 0x009B | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER9_BLOCK13_SUMMATION_DELIVERED ( 0x009C | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER9_BLOCK14_SUMMATION_DELIVERED ( 0x009D | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER9_BLOCK15_SUMMATION_DELIVERED ( 0x009E | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER9_BLOCK16_SUMMATION_DELIVERED ( 0x009F | ATTRID_MASK_SE_BLOCK_INFORMATION )
// Tier 10
#define ATTRID_SE_CURRENT_TIER10_BLOCK1_SUMMATION_DELIVERED ( 0x00A0 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER10_BLOCK2_SUMMATION_DELIVERED ( 0x00A1 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER10_BLOCK3_SUMMATION_DELIVERED ( 0x00A2 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER10_BLOCK4_SUMMATION_DELIVERED ( 0x00A3 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER10_BLOCK5_SUMMATION_DELIVERED ( 0x00A4 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER10_BLOCK6_SUMMATION_DELIVERED ( 0x00A5 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER10_BLOCK7_SUMMATION_DELIVERED ( 0x00A6 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER10_BLOCK8_SUMMATION_DELIVERED ( 0x00A7 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER10_BLOCK9_SUMMATION_DELIVERED ( 0x00A8 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER10_BLOCK10_SUMMATION_DELIVERED ( 0x00A9 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER10_BLOCK11_SUMMATION_DELIVERED ( 0x00AA | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER10_BLOCK12_SUMMATION_DELIVERED ( 0x00AB | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER10_BLOCK13_SUMMATION_DELIVERED ( 0x00AC | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER10_BLOCK14_SUMMATION_DELIVERED ( 0x00AD | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER10_BLOCK15_SUMMATION_DELIVERED ( 0x00AE | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER10_BLOCK16_SUMMATION_DELIVERED ( 0x00AF | ATTRID_MASK_SE_BLOCK_INFORMATION )
// Tier 11
#define ATTRID_SE_CURRENT_TIER11_BLOCK1_SUMMATION_DELIVERED ( 0x00B0 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER11_BLOCK2_SUMMATION_DELIVERED ( 0x00B1 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER11_BLOCK3_SUMMATION_DELIVERED ( 0x00B2 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER11_BLOCK4_SUMMATION_DELIVERED ( 0x00B3 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER11_BLOCK5_SUMMATION_DELIVERED ( 0x00B4 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER11_BLOCK6_SUMMATION_DELIVERED ( 0x00B5 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER11_BLOCK7_SUMMATION_DELIVERED ( 0x00B6 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER11_BLOCK8_SUMMATION_DELIVERED ( 0x00B7 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER11_BLOCK9_SUMMATION_DELIVERED ( 0x00B8 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER11_BLOCK10_SUMMATION_DELIVERED ( 0x00B9 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER11_BLOCK11_SUMMATION_DELIVERED ( 0x00BA | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER11_BLOCK12_SUMMATION_DELIVERED ( 0x00BB | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER11_BLOCK13_SUMMATION_DELIVERED ( 0x00BC | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER11_BLOCK14_SUMMATION_DELIVERED ( 0x00BD | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER11_BLOCK15_SUMMATION_DELIVERED ( 0x00BE | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER11_BLOCK16_SUMMATION_DELIVERED ( 0x00BF | ATTRID_MASK_SE_BLOCK_INFORMATION )
// Tier 12
#define ATTRID_SE_CURRENT_TIER12_BLOCK1_SUMMATION_DELIVERED ( 0x00C0 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER12_BLOCK2_SUMMATION_DELIVERED ( 0x00C1 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER12_BLOCK3_SUMMATION_DELIVERED ( 0x00C2 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER12_BLOCK4_SUMMATION_DELIVERED ( 0x00C3 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER12_BLOCK5_SUMMATION_DELIVERED ( 0x00C4 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER12_BLOCK6_SUMMATION_DELIVERED ( 0x00C5 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER12_BLOCK7_SUMMATION_DELIVERED ( 0x00C6 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER12_BLOCK8_SUMMATION_DELIVERED ( 0x00C7 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER12_BLOCK9_SUMMATION_DELIVERED ( 0x00C8 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER12_BLOCK10_SUMMATION_DELIVERED ( 0x00C9 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER12_BLOCK11_SUMMATION_DELIVERED ( 0x00CA | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER12_BLOCK12_SUMMATION_DELIVERED ( 0x00CB | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER12_BLOCK13_SUMMATION_DELIVERED ( 0x00CC | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER12_BLOCK14_SUMMATION_DELIVERED ( 0x00CD | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER12_BLOCK15_SUMMATION_DELIVERED ( 0x00CE | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER12_BLOCK16_SUMMATION_DELIVERED ( 0x00CF | ATTRID_MASK_SE_BLOCK_INFORMATION )
// Tier 13
#define ATTRID_SE_CURRENT_TIER13_BLOCK1_SUMMATION_DELIVERED ( 0x00D0 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER13_BLOCK2_SUMMATION_DELIVERED ( 0x00D1 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER13_BLOCK3_SUMMATION_DELIVERED ( 0x00D2 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER13_BLOCK4_SUMMATION_DELIVERED ( 0x00D3 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER13_BLOCK5_SUMMATION_DELIVERED ( 0x00D4 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER13_BLOCK6_SUMMATION_DELIVERED ( 0x00D5 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER13_BLOCK7_SUMMATION_DELIVERED ( 0x00D6 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER13_BLOCK8_SUMMATION_DELIVERED ( 0x00D7 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER13_BLOCK9_SUMMATION_DELIVERED ( 0x00D8 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER13_BLOCK10_SUMMATION_DELIVERED ( 0x00D9 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER13_BLOCK11_SUMMATION_DELIVERED ( 0x00DA | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER13_BLOCK12_SUMMATION_DELIVERED ( 0x00DB | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER13_BLOCK13_SUMMATION_DELIVERED ( 0x00DC | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER13_BLOCK14_SUMMATION_DELIVERED ( 0x00DD | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER13_BLOCK15_SUMMATION_DELIVERED ( 0x00DE | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER13_BLOCK16_SUMMATION_DELIVERED ( 0x00DF | ATTRID_MASK_SE_BLOCK_INFORMATION )
// Tier 14
#define ATTRID_SE_CURRENT_TIER14_BLOCK1_SUMMATION_DELIVERED ( 0x00E0 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER14_BLOCK2_SUMMATION_DELIVERED ( 0x00E1 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER14_BLOCK3_SUMMATION_DELIVERED ( 0x00E2 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER14_BLOCK4_SUMMATION_DELIVERED ( 0x00E3 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER14_BLOCK5_SUMMATION_DELIVERED ( 0x00E4 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER14_BLOCK6_SUMMATION_DELIVERED ( 0x00E5 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER14_BLOCK7_SUMMATION_DELIVERED ( 0x00E6 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER14_BLOCK8_SUMMATION_DELIVERED ( 0x00E7 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER14_BLOCK9_SUMMATION_DELIVERED ( 0x00E8 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER14_BLOCK10_SUMMATION_DELIVERED ( 0x00E9 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER14_BLOCK11_SUMMATION_DELIVERED ( 0x00EA | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER14_BLOCK12_SUMMATION_DELIVERED ( 0x00EB | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER14_BLOCK13_SUMMATION_DELIVERED ( 0x00EC | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER14_BLOCK14_SUMMATION_DELIVERED ( 0x00ED | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER14_BLOCK15_SUMMATION_DELIVERED ( 0x00EE | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER14_BLOCK16_SUMMATION_DELIVERED ( 0x00EF | ATTRID_MASK_SE_BLOCK_INFORMATION )
// Tier 15
#define ATTRID_SE_CURRENT_TIER15_BLOCK1_SUMMATION_DELIVERED ( 0x00F0 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER15_BLOCK2_SUMMATION_DELIVERED ( 0x00F1 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER15_BLOCK3_SUMMATION_DELIVERED ( 0x00F2 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER15_BLOCK4_SUMMATION_DELIVERED ( 0x00F3 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER15_BLOCK5_SUMMATION_DELIVERED ( 0x00F4 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER15_BLOCK6_SUMMATION_DELIVERED ( 0x00F5 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER15_BLOCK7_SUMMATION_DELIVERED ( 0x00F6 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER15_BLOCK8_SUMMATION_DELIVERED ( 0x00F7 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER15_BLOCK9_SUMMATION_DELIVERED ( 0x00F8 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER15_BLOCK10_SUMMATION_DELIVERED ( 0x00F9 | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER15_BLOCK11_SUMMATION_DELIVERED ( 0x00FA | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER15_BLOCK12_SUMMATION_DELIVERED ( 0x00FB | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER15_BLOCK13_SUMMATION_DELIVERED ( 0x00FC | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER15_BLOCK14_SUMMATION_DELIVERED ( 0x00FD | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER15_BLOCK15_SUMMATION_DELIVERED ( 0x00FE | ATTRID_MASK_SE_BLOCK_INFORMATION )
#define ATTRID_SE_CURRENT_TIER15_BLOCK16_SUMMATION_DELIVERED ( 0x00FF | ATTRID_MASK_SE_BLOCK_INFORMATION )
// Simple Metering Server Cluster - Alarms Attributes 0x08
#define ATTRID_SE_GENERIC_ALARM_MASK ( 0x0000 | ATTRID_MASK_SE_ALARMS )
#define ATTRID_SE_ELECTRICITY_ALARM_MASK ( 0x0001 | ATTRID_MASK_SE_ALARMS )
#define ATTRID_SE_GEN_FLOW_PRESSURE_ALARM_MASK ( 0x0002 | ATTRID_MASK_SE_ALARMS )
#define ATTRID_SE_WATER_SPECIFIC_ALARM_MASK ( 0x0003 | ATTRID_MASK_SE_ALARMS )
#define ATTRID_SE_HEAT_COOL_SPECIFIC_ALARM_MASK ( 0x0004 | ATTRID_MASK_SE_ALARMS )
#define ATTRID_SE_GAS_SPECIFIC_ALARM_MASK ( 0x0005 | ATTRID_MASK_SE_ALARMS )
#define ATTRID_SE_MANUFACTURE_ALARM_MASK ( 0x0006 | ATTRID_MASK_SE_ALARMS )
// Simple Metering Server Cluster - Block Information Set (Received) Attributes 0x09
#define ATTRID_SE_CURRENT_TIER_X_BLOCK_Y_RECEIVED(X, Y) ( ((((X)&0xF)<<4) | (((Y)&0xF)-1)) | ATTRID_MASK_SE_BLOCK_INFORMATION_RECEIVED )
// Simple Metering Server Cluster - Billing Attributes 0x0A
#define ATTRID_SE_BILL_TO_DATE ( 0x0000 | ATTRID_MASK_SE_BILLING )
#define ATTRID_SE_BILL_TO_DATE_TIME_STAMP ( 0x0001 | ATTRID_MASK_SE_BILLING )
#define ATTRID_SE_PROJECTED_BILL ( 0x0002 | ATTRID_MASK_SE_BILLING )
#define ATTRID_SE_PROJECTED_BILL_TIME_STAMP ( 0x0003 | ATTRID_MASK_SE_BILLING )
// Simple Meter Client Cluster Attributes Sets
#define ATTRID_MASK_SE_NOTIFICATION_SET 0x0000
#define ATTRID_MASK_SE_MIRROR_CONFIGURATION_SET 0x0001
// Simple Metering Client Cluster - Notification Attributes 0x00
#define ATTRID_SE_NOTIFICATION_CONTROL_FLAGS ( 0x0000 | ATTRID_MASK_SE_NOTIFICATION_SET )
#define ATTRID_SE_NOTIFICATION_FLAGS ( 0x0001 | ATTRID_MASK_SE_NOTIFICATION_SET )
#define ATTRID_SE_PRICE_NOTIFICATION_FLAGS ( 0x0002 | ATTRID_MASK_SE_NOTIFICATION_SET )
#define ATTRID_SE_CALENDAR_NOTIFICATION_FLAGS ( 0x0003 | ATTRID_MASK_SE_NOTIFICATION_SET )
#define ATTRID_SE_PRE_PAY_NOTIFICATION_FLAGS ( 0x0004 | ATTRID_MASK_SE_NOTIFICATION_SET )
#define ATTRID_SE_DEVICE_MANAGEMENT_FLAGS ( 0x0005 | ATTRID_MASK_SE_NOTIFICATION_SET )
// Simple Metering Client Cluster - Mirror Configuration Attributes 0x01
#define ATTRID_SE_CHANGE_REPORTING_PROFILE ( 0x0000 | ATTRID_MASK_SE_MIRROR_CONFIGURATION_SET )
// Demand Response Client Cluster Attributes
#define ATTRID_SE_UTILITY_DEFINED_GROUP 0x0000
#define ATTRID_SE_START_RANDOMIZE_MINUTES 0x0001
#define ATTRID_SE_STOP_RANDOMIZE_MINUTES 0x0002
// Price Cluster Attribute Sets
#define ATTRID_MASK_SE_TIER_LABEL 0x0000
#define ATTRID_MASK_SE_BLOCK_THRESHOLD 0x0100
#define ATTRID_MASK_SE_BLOCK_PERIOD 0x0200
#define ATTRID_MASK_SE_COMMODITY 0x0300
#define ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION 0x0400
#define ATTRID_MASK_SE_EXT_PRICE_INFORMATION 0x0500
#define ATTRID_MASK_SE_TARIFF_INFORMATION 0x0600
#define ATTRID_MASK_SE_BILLING_INFORMATION 0x0700
#define ATTRID_MASK_SE_CREDIT_PAYMENT 0x0800
#define ATTRID_MASK_SE_TAX_CONTROL 0x0900
#define ATTRID_MASK_SE_EXPORT_TIER_LABEL 0x8000
#define ATTRID_MASK_SE_EXPORT_BLOCK_THRESHOLD 0x8100
#define ATTRID_MASK_SE_EXPORT_BLOCK_PERIOD 0x8200
#define ATTRID_MASK_SE_EXPORT_BLOCK_PRICE_INFO 0x8400
#define ATTRID_MASK_SE_EXPORT_EXT_PRICE_INFO 0x8500
#define ATTRID_MASK_SE_EXPORT_TARIFF_INFO 0x8600
#define ATTRID_MASK_SE_EXPORT_BILLING_INFO 0x8700
// Price Cluster - Tier Label Attributes 0x00
#define ATTRID_SE_TIER1_PRICE_LABEL ( 0x0000 | ATTRID_MASK_SE_TIER_LABEL )
#define ATTRID_SE_TIER2_PRICE_LABEL ( 0x0001 | ATTRID_MASK_SE_TIER_LABEL )
#define ATTRID_SE_TIER3_PRICE_LABEL ( 0x0002 | ATTRID_MASK_SE_TIER_LABEL )
#define ATTRID_SE_TIER4_PRICE_LABEL ( 0x0003 | ATTRID_MASK_SE_TIER_LABEL )
#define ATTRID_SE_TIER5_PRICE_LABEL ( 0x0004 | ATTRID_MASK_SE_TIER_LABEL )
#define ATTRID_SE_TIER6_PRICE_LABEL ( 0x0005 | ATTRID_MASK_SE_TIER_LABEL )
#define ATTRID_SE_TIER7_PRICE_LABEL ( 0x0006 | ATTRID_MASK_SE_TIER_LABEL )
#define ATTRID_SE_TIER8_PRICE_LABEL ( 0x0007 | ATTRID_MASK_SE_TIER_LABEL )
#define ATTRID_SE_TIER9_PRICE_LABEL ( 0x0008 | ATTRID_MASK_SE_TIER_LABEL )
#define ATTRID_SE_TIER10_PRICE_LABEL ( 0x0009 | ATTRID_MASK_SE_TIER_LABEL )
#define ATTRID_SE_TIER11_PRICE_LABEL ( 0x000A | ATTRID_MASK_SE_TIER_LABEL )
#define ATTRID_SE_TIER12_PRICE_LABEL ( 0x000B | ATTRID_MASK_SE_TIER_LABEL )
#define ATTRID_SE_TIER13_PRICE_LABEL ( 0x000C | ATTRID_MASK_SE_TIER_LABEL )
#define ATTRID_SE_TIER14_PRICE_LABEL ( 0x000D | ATTRID_MASK_SE_TIER_LABEL )
#define ATTRID_SE_TIER15_PRICE_LABEL ( 0x000E | ATTRID_MASK_SE_TIER_LABEL )
// Price Cluster - Block Threshold Attributes 0x01
#define ATTRID_SE_BLOCK1_THRESHOLD ( 0x0000 | ATTRID_MASK_SE_BLOCK_THRESHOLD )
#define ATTRID_SE_BLOCK2_THRESHOLD ( 0x0001 | ATTRID_MASK_SE_BLOCK_THRESHOLD )
#define ATTRID_SE_BLOCK3_THRESHOLD ( 0x0002 | ATTRID_MASK_SE_BLOCK_THRESHOLD )
#define ATTRID_SE_BLOCK4_THRESHOLD ( 0x0003 | ATTRID_MASK_SE_BLOCK_THRESHOLD )
#define ATTRID_SE_BLOCK5_THRESHOLD ( 0x0004 | ATTRID_MASK_SE_BLOCK_THRESHOLD )
#define ATTRID_SE_BLOCK6_THRESHOLD ( 0x0005 | ATTRID_MASK_SE_BLOCK_THRESHOLD )
#define ATTRID_SE_BLOCK7_THRESHOLD ( 0x0006 | ATTRID_MASK_SE_BLOCK_THRESHOLD )
#define ATTRID_SE_BLOCK8_THRESHOLD ( 0x0007 | ATTRID_MASK_SE_BLOCK_THRESHOLD )
#define ATTRID_SE_BLOCK9_THRESHOLD ( 0x0008 | ATTRID_MASK_SE_BLOCK_THRESHOLD )
#define ATTRID_SE_BLOCK10_THRESHOLD ( 0x0009 | ATTRID_MASK_SE_BLOCK_THRESHOLD )
#define ATTRID_SE_BLOCK11_THRESHOLD ( 0x000A | ATTRID_MASK_SE_BLOCK_THRESHOLD )
#define ATTRID_SE_BLOCK12_THRESHOLD ( 0x000B | ATTRID_MASK_SE_BLOCK_THRESHOLD )
#define ATTRID_SE_BLOCK13_THRESHOLD ( 0x000C | ATTRID_MASK_SE_BLOCK_THRESHOLD )
#define ATTRID_SE_BLOCK14_THRESHOLD ( 0x000D | ATTRID_MASK_SE_BLOCK_THRESHOLD )
#define ATTRID_SE_BLOCK15_THRESHOLD ( 0x000E | ATTRID_MASK_SE_BLOCK_THRESHOLD )
// Price Cluster - Block Period Attributes 0x02
#define ATTRID_SE_START_OF_BLOCK_PERIOD ( 0x0000 | ATTRID_MASK_SE_BLOCK_PERIOD )
#define ATTRID_SE_BLOCK_PERIOD_DURATION ( 0x0001 | ATTRID_MASK_SE_BLOCK_PERIOD )
#define ATTRID_SE_THRESHOLD_MULTIPLIER ( 0x0002 | ATTRID_MASK_SE_BLOCK_PERIOD )
#define ATTRID_SE_THRESHOLD_DIVISOR ( 0x0003 | ATTRID_MASK_SE_BLOCK_PERIOD )
// Price Cluster - Commodity Attributes 0x03
#define ATTRID_SE_COMMODITY_TYPE ( 0x0000 | ATTRID_MASK_SE_COMMODITY )
#define ATTRID_SE_STANDING_CHARGE ( 0x0001 | ATTRID_MASK_SE_COMMODITY )
// Price Cluster - Block Price Information Attributes 0x04
#define ATTRID_SE_NO_TIER_BLOCK1_PRICE ( 0x0000 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_NO_TIER_BLOCK2_PRICE ( 0x0001 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_NO_TIER_BLOCK3_PRICE ( 0x0002 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_NO_TIER_BLOCK4_PRICE ( 0x0003 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_NO_TIER_BLOCK5_PRICE ( 0x0004 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_NO_TIER_BLOCK6_PRICE ( 0x0005 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_NO_TIER_BLOCK7_PRICE ( 0x0006 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_NO_TIER_BLOCK8_PRICE ( 0x0007 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_NO_TIER_BLOCK9_PRICE ( 0x0008 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_NO_TIER_BLOCK10_PRICE ( 0x0009 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_NO_TIER_BLOCK11_PRICE ( 0x000A | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_NO_TIER_BLOCK12_PRICE ( 0x000B | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_NO_TIER_BLOCK13_PRICE ( 0x000C | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_NO_TIER_BLOCK14_PRICE ( 0x000D | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_NO_TIER_BLOCK15_PRICE ( 0x000E | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_NO_TIER_BLOCK16_PRICE ( 0x000F | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
// Tier 1
#define ATTRID_SE_TIER1_BLOCK1_PRICE ( 0x0010 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER1_BLOCK2_PRICE ( 0x0011 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER1_BLOCK3_PRICE ( 0x0012 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER1_BLOCK4_PRICE ( 0x0013 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER1_BLOCK5_PRICE ( 0x0014 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER1_BLOCK6_PRICE ( 0x0015 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER1_BLOCK7_PRICE ( 0x0016 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER1_BLOCK8_PRICE ( 0x0017 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER1_BLOCK9_PRICE ( 0x0018 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER1_BLOCK10_PRICE ( 0x0019 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER1_BLOCK11_PRICE ( 0x001A | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER1_BLOCK12_PRICE ( 0x001B | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER1_BLOCK13_PRICE ( 0x001C | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER1_BLOCK14_PRICE ( 0x001D | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER1_BLOCK15_PRICE ( 0x001E | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER1_BLOCK16_PRICE ( 0x001F | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
// Tier 2
#define ATTRID_SE_TIER2_BLOCK1_PRICE ( 0x0020 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER2_BLOCK2_PRICE ( 0x0021 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER2_BLOCK3_PRICE ( 0x0022 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER2_BLOCK4_PRICE ( 0x0023 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER2_BLOCK5_PRICE ( 0x0024 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER2_BLOCK6_PRICE ( 0x0025 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER2_BLOCK7_PRICE ( 0x0026 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER2_BLOCK8_PRICE ( 0x0027 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER2_BLOCK9_PRICE ( 0x0028 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER2_BLOCK10_PRICE ( 0x0029 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER2_BLOCK11_PRICE ( 0x002A | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER2_BLOCK12_PRICE ( 0x002B | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER2_BLOCK13_PRICE ( 0x002C | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER2_BLOCK14_PRICE ( 0x002D | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER2_BLOCK15_PRICE ( 0x002E | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER2_BLOCK16_PRICE ( 0x002F | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
// Tier 3
#define ATTRID_SE_TIER3_BLOCK1_PRICE ( 0x0030 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER3_BLOCK2_PRICE ( 0x0031 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER3_BLOCK3_PRICE ( 0x0032 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER3_BLOCK4_PRICE ( 0x0033 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER3_BLOCK5_PRICE ( 0x0034 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER3_BLOCK6_PRICE ( 0x0035 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER3_BLOCK7_PRICE ( 0x0036 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER3_BLOCK8_PRICE ( 0x0037 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER3_BLOCK9_PRICE ( 0x0038 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER3_BLOCK10_PRICE ( 0x0039 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER3_BLOCK11_PRICE ( 0x003A | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER3_BLOCK12_PRICE ( 0x003B | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER3_BLOCK13_PRICE ( 0x003C | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER3_BLOCK14_PRICE ( 0x003D | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER3_BLOCK15_PRICE ( 0x003E | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER3_BLOCK16_PRICE ( 0x003F | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
// Tier 4
#define ATTRID_SE_TIER4_BLOCK1_PRICE ( 0x0040 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER4_BLOCK2_PRICE ( 0x0041 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER4_BLOCK3_PRICE ( 0x0042 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER4_BLOCK4_PRICE ( 0x0043 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER4_BLOCK5_PRICE ( 0x0044 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER4_BLOCK6_PRICE ( 0x0045 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER4_BLOCK7_PRICE ( 0x0046 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER4_BLOCK8_PRICE ( 0x0047 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER4_BLOCK9_PRICE ( 0x0048 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER4_BLOCK10_PRICE ( 0x0049 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER4_BLOCK11_PRICE ( 0x004A | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER4_BLOCK12_PRICE ( 0x004B | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER4_BLOCK13_PRICE ( 0x004C | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER4_BLOCK14_PRICE ( 0x004D | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER4_BLOCK15_PRICE ( 0x004E | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER4_BLOCK16_PRICE ( 0x004F | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
// Tier 5
#define ATTRID_SE_TIER5_BLOCK1_PRICE ( 0x0050 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER5_BLOCK2_PRICE ( 0x0051 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER5_BLOCK3_PRICE ( 0x0052 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER5_BLOCK4_PRICE ( 0x0053 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER5_BLOCK5_PRICE ( 0x0054 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER5_BLOCK6_PRICE ( 0x0055 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER5_BLOCK7_PRICE ( 0x0056 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER5_BLOCK8_PRICE ( 0x0057 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER5_BLOCK9_PRICE ( 0x0058 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER5_BLOCK10_PRICE ( 0x0059 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER5_BLOCK11_PRICE ( 0x005A | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER5_BLOCK12_PRICE ( 0x005B | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER5_BLOCK13_PRICE ( 0x005C | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER5_BLOCK14_PRICE ( 0x005D | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER5_BLOCK15_PRICE ( 0x005E | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER5_BLOCK16_PRICE ( 0x005F | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
// Tier 6
#define ATTRID_SE_TIER6_BLOCK1_PRICE ( 0x0060 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER6_BLOCK2_PRICE ( 0x0061 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER6_BLOCK3_PRICE ( 0x0062 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER6_BLOCK4_PRICE ( 0x0063 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER6_BLOCK5_PRICE ( 0x0064 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER6_BLOCK6_PRICE ( 0x0065 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER6_BLOCK7_PRICE ( 0x0066 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER6_BLOCK8_PRICE ( 0x0067 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER6_BLOCK9_PRICE ( 0x0068 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER6_BLOCK10_PRICE ( 0x0069 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER6_BLOCK11_PRICE ( 0x006A | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER6_BLOCK12_PRICE ( 0x006B | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER6_BLOCK13_PRICE ( 0x006C | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER6_BLOCK14_PRICE ( 0x006D | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER6_BLOCK15_PRICE ( 0x006E | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER6_BLOCK16_PRICE ( 0x006F | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
// Tier 7
#define ATTRID_SE_TIER7_BLOCK1_PRICE ( 0x0070 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER7_BLOCK2_PRICE ( 0x0071 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER7_BLOCK3_PRICE ( 0x0072 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER7_BLOCK4_PRICE ( 0x0073 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER7_BLOCK5_PRICE ( 0x0074 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER7_BLOCK6_PRICE ( 0x0075 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER7_BLOCK7_PRICE ( 0x0076 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER7_BLOCK8_PRICE ( 0x0077 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER7_BLOCK9_PRICE ( 0x0078 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER7_BLOCK10_PRICE ( 0x0079 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER7_BLOCK11_PRICE ( 0x007A | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER7_BLOCK12_PRICE ( 0x007B | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER7_BLOCK13_PRICE ( 0x007C | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER7_BLOCK14_PRICE ( 0x007D | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER7_BLOCK15_PRICE ( 0x007E | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER7_BLOCK16_PRICE ( 0x007F | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
// Tier 8
#define ATTRID_SE_TIER8_BLOCK1_PRICE ( 0x0080 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER8_BLOCK2_PRICE ( 0x0081 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER8_BLOCK3_PRICE ( 0x0082 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER8_BLOCK4_PRICE ( 0x0083 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER8_BLOCK5_PRICE ( 0x0084 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER8_BLOCK6_PRICE ( 0x0085 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER8_BLOCK7_PRICE ( 0x0086 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER8_BLOCK8_PRICE ( 0x0087 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER8_BLOCK9_PRICE ( 0x0088 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER8_BLOCK10_PRICE ( 0x0089 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER8_BLOCK11_PRICE ( 0x008A | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER8_BLOCK12_PRICE ( 0x008B | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER8_BLOCK13_PRICE ( 0x008C | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER8_BLOCK14_PRICE ( 0x008D | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER8_BLOCK15_PRICE ( 0x008E | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER8_BLOCK16_PRICE ( 0x008F | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
// Tier 9
#define ATTRID_SE_TIER9_BLOCK1_PRICE ( 0x0090 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER9_BLOCK2_PRICE ( 0x0091 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER9_BLOCK3_PRICE ( 0x0092 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER9_BLOCK4_PRICE ( 0x0093 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER9_BLOCK5_PRICE ( 0x0094 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER9_BLOCK6_PRICE ( 0x0095 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER9_BLOCK7_PRICE ( 0x0096 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER9_BLOCK8_PRICE ( 0x0097 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER9_BLOCK9_PRICE ( 0x0098 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER9_BLOCK10_PRICE ( 0x0099 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER9_BLOCK11_PRICE ( 0x009A | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER9_BLOCK12_PRICE ( 0x009B | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER9_BLOCK13_PRICE ( 0x009C | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER9_BLOCK14_PRICE ( 0x009D | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER9_BLOCK15_PRICE ( 0x009E | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER9_BLOCK16_PRICE ( 0x009F | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
// Tier 10
#define ATTRID_SE_TIER10_BLOCK1_PRICE ( 0x00A0 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER10_BLOCK2_PRICE ( 0x00A1 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER10_BLOCK3_PRICE ( 0x00A2 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER10_BLOCK4_PRICE ( 0x00A3 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER10_BLOCK5_PRICE ( 0x00A4 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER10_BLOCK6_PRICE ( 0x00A5 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER10_BLOCK7_PRICE ( 0x00A6 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER10_BLOCK8_PRICE ( 0x00A7 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER10_BLOCK9_PRICE ( 0x00A8 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER10_BLOCK10_PRICE ( 0x00A9 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER10_BLOCK11_PRICE ( 0x00AA | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER10_BLOCK12_PRICE ( 0x00AB | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER10_BLOCK13_PRICE ( 0x00AC | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER10_BLOCK14_PRICE ( 0x00AD | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER10_BLOCK15_PRICE ( 0x00AE | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER10_BLOCK16_PRICE ( 0x00AF | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
// Tier 11
#define ATTRID_SE_TIER11_BLOCK1_PRICE ( 0x00B0 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER11_BLOCK2_PRICE ( 0x00B1 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER11_BLOCK3_PRICE ( 0x00B2 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER11_BLOCK4_PRICE ( 0x00B3 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER11_BLOCK5_PRICE ( 0x00B4 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER11_BLOCK6_PRICE ( 0x00B5 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER11_BLOCK7_PRICE ( 0x00B6 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER11_BLOCK8_PRICE ( 0x00B7 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER11_BLOCK9_PRICE ( 0x00B8 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER11_BLOCK10_PRICE ( 0x00B9 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER11_BLOCK11_PRICE ( 0x00BA | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER11_BLOCK12_PRICE ( 0x00BB | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER11_BLOCK13_PRICE ( 0x00BC | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER11_BLOCK14_PRICE ( 0x00BD | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER11_BLOCK15_PRICE ( 0x00BE | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER11_BLOCK16_PRICE ( 0x00BF | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
// Tier 12
#define ATTRID_SE_TIER12_BLOCK1_PRICE ( 0x00C0 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER12_BLOCK2_PRICE ( 0x00C1 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER12_BLOCK3_PRICE ( 0x00C2 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER12_BLOCK4_PRICE ( 0x00C3 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER12_BLOCK5_PRICE ( 0x00C4 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER12_BLOCK6_PRICE ( 0x00C5 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER12_BLOCK7_PRICE ( 0x00C6 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER12_BLOCK8_PRICE ( 0x00C7 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER12_BLOCK9_PRICE ( 0x00C8 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER12_BLOCK10_PRICE ( 0x00C9 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER12_BLOCK11_PRICE ( 0x00CA | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER12_BLOCK12_PRICE ( 0x00CB | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER12_BLOCK13_PRICE ( 0x00CC | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER12_BLOCK14_PRICE ( 0x00CD | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER12_BLOCK15_PRICE ( 0x00CE | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER12_BLOCK16_PRICE ( 0x00CF | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
// Tier 13
#define ATTRID_SE_TIER13_BLOCK1_PRICE ( 0x00D0 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER13_BLOCK2_PRICE ( 0x00D1 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER13_BLOCK3_PRICE ( 0x00D2 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER13_BLOCK4_PRICE ( 0x00D3 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER13_BLOCK5_PRICE ( 0x00D4 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER13_BLOCK6_PRICE ( 0x00D5 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER13_BLOCK7_PRICE ( 0x00D6 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER13_BLOCK8_PRICE ( 0x00D7 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER13_BLOCK9_PRICE ( 0x00D8 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER13_BLOCK10_PRICE ( 0x00D9 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER13_BLOCK11_PRICE ( 0x00DA | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER13_BLOCK12_PRICE ( 0x00DB | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER13_BLOCK13_PRICE ( 0x00DC | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER13_BLOCK14_PRICE ( 0x00DD | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER13_BLOCK15_PRICE ( 0x00DE | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER13_BLOCK16_PRICE ( 0x00DF | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
// Tier 14
#define ATTRID_SE_TIER14_BLOCK1_PRICE ( 0x00E0 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER14_BLOCK2_PRICE ( 0x00E1 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER14_BLOCK3_PRICE ( 0x00E2 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER14_BLOCK4_PRICE ( 0x00E3 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER14_BLOCK5_PRICE ( 0x00E4 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER14_BLOCK6_PRICE ( 0x00E5 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER14_BLOCK7_PRICE ( 0x00E6 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER14_BLOCK8_PRICE ( 0x00E7 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER14_BLOCK9_PRICE ( 0x00E8 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER14_BLOCK10_PRICE ( 0x00E9 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER14_BLOCK11_PRICE ( 0x00EA | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER14_BLOCK12_PRICE ( 0x00EB | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER14_BLOCK13_PRICE ( 0x00EC | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER14_BLOCK14_PRICE ( 0x00ED | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER14_BLOCK15_PRICE ( 0x00EE | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER14_BLOCK16_PRICE ( 0x00EF | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
// Tier 15
#define ATTRID_SE_TIER15_BLOCK1_PRICE ( 0x00F0 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER15_BLOCK2_PRICE ( 0x00F1 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER15_BLOCK3_PRICE ( 0x00F2 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER15_BLOCK4_PRICE ( 0x00F3 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER15_BLOCK5_PRICE ( 0x00F4 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER15_BLOCK6_PRICE ( 0x00F5 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER15_BLOCK7_PRICE ( 0x00F6 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER15_BLOCK8_PRICE ( 0x00F7 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER15_BLOCK9_PRICE ( 0x00F8 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER15_BLOCK10_PRICE ( 0x00F9 | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER15_BLOCK11_PRICE ( 0x00FA | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER15_BLOCK12_PRICE ( 0x00FB | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER15_BLOCK13_PRICE ( 0x00FC | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER15_BLOCK14_PRICE ( 0x00FD | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER15_BLOCK15_PRICE ( 0x00FE | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
#define ATTRID_SE_TIER15_BLOCK16_PRICE ( 0x00FF | ATTRID_MASK_SE_BLOCK_PRICE_INFORMATION )
// Price Cluster - Extended Price Information Attributes 0x05
#define ATTRID_SE_PRICE_TIER_16 ( 0x000F | ATTRID_MASK_SE_EXT_PRICE_INFORMATION )
#define ATTRID_SE_PRICE_TIER_17 ( 0x0010 | ATTRID_MASK_SE_EXT_PRICE_INFORMATION )
#define ATTRID_SE_PRICE_TIER_18 ( 0x0011 | ATTRID_MASK_SE_EXT_PRICE_INFORMATION )
#define ATTRID_SE_PRICE_TIER_19 ( 0x0012 | ATTRID_MASK_SE_EXT_PRICE_INFORMATION )
#define ATTRID_SE_PRICE_TIER_20 ( 0x0013 | ATTRID_MASK_SE_EXT_PRICE_INFORMATION )
#define ATTRID_SE_PRICE_TIER_21 ( 0x0014 | ATTRID_MASK_SE_EXT_PRICE_INFORMATION )
#define ATTRID_SE_PRICE_TIER_22 ( 0x0015 | ATTRID_MASK_SE_EXT_PRICE_INFORMATION )
#define ATTRID_SE_PRICE_TIER_23 ( 0x0016 | ATTRID_MASK_SE_EXT_PRICE_INFORMATION )
#define ATTRID_SE_PRICE_TIER_24 ( 0x0017 | ATTRID_MASK_SE_EXT_PRICE_INFORMATION )
#define ATTRID_SE_PRICE_TIER_25 ( 0x0018 | ATTRID_MASK_SE_EXT_PRICE_INFORMATION )
#define ATTRID_SE_PRICE_TIER_26 ( 0x0019 | ATTRID_MASK_SE_EXT_PRICE_INFORMATION )
#define ATTRID_SE_PRICE_TIER_27 ( 0x001A | ATTRID_MASK_SE_EXT_PRICE_INFORMATION )
#define ATTRID_SE_PRICE_TIER_28 ( 0x001B | ATTRID_MASK_SE_EXT_PRICE_INFORMATION )
#define ATTRID_SE_PRICE_TIER_29 ( 0x001C | ATTRID_MASK_SE_EXT_PRICE_INFORMATION )
#define ATTRID_SE_PRICE_TIER_30 ( 0x001D | ATTRID_MASK_SE_EXT_PRICE_INFORMATION )
#define ATTRID_SE_PRICE_TIER_31 ( 0x001E | ATTRID_MASK_SE_EXT_PRICE_INFORMATION )
#define ATTRID_SE_PRICE_TIER_32 ( 0x001F | ATTRID_MASK_SE_EXT_PRICE_INFORMATION )
#define ATTRID_SE_PRICE_TIER_33 ( 0x0020 | ATTRID_MASK_SE_EXT_PRICE_INFORMATION )
#define ATTRID_SE_PRICE_TIER_34 ( 0x0021 | ATTRID_MASK_SE_EXT_PRICE_INFORMATION )
#define ATTRID_SE_PRICE_TIER_35 ( 0x0022 | ATTRID_MASK_SE_EXT_PRICE_INFORMATION )
#define ATTRID_SE_PRICE_TIER_36 ( 0x0023 | ATTRID_MASK_SE_EXT_PRICE_INFORMATION )
#define ATTRID_SE_PRICE_TIER_37 ( 0x0024 | ATTRID_MASK_SE_EXT_PRICE_INFORMATION )
#define ATTRID_SE_PRICE_TIER_38 ( 0x0025 | ATTRID_MASK_SE_EXT_PRICE_INFORMATION )
#define ATTRID_SE_PRICE_TIER_39 ( 0x0026 | ATTRID_MASK_SE_EXT_PRICE_INFORMATION )
#define ATTRID_SE_PRICE_TIER_40 ( 0x0027 | ATTRID_MASK_SE_EXT_PRICE_INFORMATION )
#define ATTRID_SE_PRICE_TIER_41 ( 0x0028 | ATTRID_MASK_SE_EXT_PRICE_INFORMATION )
#define ATTRID_SE_PRICE_TIER_42 ( 0x0029 | ATTRID_MASK_SE_EXT_PRICE_INFORMATION )
#define ATTRID_SE_PRICE_TIER_43 ( 0x002A | ATTRID_MASK_SE_EXT_PRICE_INFORMATION )
#define ATTRID_SE_PRICE_TIER_44 ( 0x002B | ATTRID_MASK_SE_EXT_PRICE_INFORMATION )
#define ATTRID_SE_PRICE_TIER_45 ( 0x002C | ATTRID_MASK_SE_EXT_PRICE_INFORMATION )
#define ATTRID_SE_PRICE_TIER_46 ( 0x002D | ATTRID_MASK_SE_EXT_PRICE_INFORMATION )
#define ATTRID_SE_PRICE_TIER_47 ( 0x002E | ATTRID_MASK_SE_EXT_PRICE_INFORMATION )
#define ATTRID_SE_PRICE_TIER_48 ( 0x002F | ATTRID_MASK_SE_EXT_PRICE_INFORMATION )
// Price Cluster - Tariff Information Attributes 0x06
#define ATTRID_SE_TARIFF_LABEL ( 0x0010 | ATTRID_MASK_SE_TARIFF_INFORMATION )
#define ATTRID_SE_NUM_PRICE_TIERS_IN_USE ( 0x0011 | ATTRID_MASK_SE_TARIFF_INFORMATION )
#define ATTRID_SE_NUM_BLOCK_THRESHOLDS_IN_USE ( 0x0012 | ATTRID_MASK_SE_TARIFF_INFORMATION )
#define ATTRID_SE_TIER_BLOCK_MODE ( 0x0013 | ATTRID_MASK_SE_TARIFF_INFORMATION )
#define ATTRID_SE_BLOCK_THRESHOLD_MASK ( 0x0014 | ATTRID_MASK_SE_TARIFF_INFORMATION )
#define ATTRID_SE_PC_UNIT_OF_MEASURE ( 0x0015 | ATTRID_MASK_SE_TARIFF_INFORMATION )
#define ATTRID_SE_CURRENCY ( 0x0016 | ATTRID_MASK_SE_TARIFF_INFORMATION )
#define ATTRID_SE_PRICE_TRAILING_DIGIT ( 0x0017 | ATTRID_MASK_SE_TARIFF_INFORMATION )
#define ATTRID_SE_STANDARD_CHARGE ( 0x0018 | ATTRID_MASK_SE_TARIFF_INFORMATION )
#define ATTRID_SE_CONSERVATION_FACTOR ( 0x0020 | ATTRID_MASK_SE_TARIFF_INFORMATION )
#define ATTRID_SE_CONSERVATION_FACTOR_TRAILING_DIGIT ( 0x0021 | ATTRID_MASK_SE_TARIFF_INFORMATION )
#define ATTRID_SE_CALORIFIC_VALUE ( 0x0022 | ATTRID_MASK_SE_TARIFF_INFORMATION )
#define ATTRID_SE_CALORIFIC_VALUE_UNIT ( 0x0023 | ATTRID_MASK_SE_TARIFF_INFORMATION )
#define ATTRID_SE_CALORIFIC_VALUE_TRAILING_DIGIT ( 0x0024 | ATTRID_MASK_SE_TARIFF_INFORMATION )
#define ATTRID_SE_CO2 ( 0x0025 | ATTRID_MASK_SE_TARIFF_INFORMATION )
#define ATTRID_SE_CO2_UNIT ( 0x0026 | ATTRID_MASK_SE_TARIFF_INFORMATION )
#define ATTRID_SE_CO2_TRAILING_DIGIT ( 0x0027 | ATTRID_MASK_SE_TARIFF_INFORMATION )
// Price Cluster - Billing Information Attributes 0x07
#define ATTRID_SE_CURRENT_BILLING_PERIOD_START ( 0x0000 | ATTRID_MASK_SE_BILLING_INFORMATION )
#define ATTRID_SE_CURRENT_BILLING_PERIOD_DURATION ( 0x0001 | ATTRID_MASK_SE_BILLING_INFORMATION )
#define ATTRID_SE_LAST_BILLING_PERIOD_START ( 0x0002 | ATTRID_MASK_SE_BILLING_INFORMATION )
#define ATTRID_SE_LAST_BILLING_PERIOD_DURATION ( 0x0003 | ATTRID_MASK_SE_BILLING_INFORMATION )
#define ATTRID_SE_LAST_BILLING_PERIOD_CONSOLIDATED ( 0x0004 | ATTRID_MASK_SE_BILLING_INFORMATION )
// Price Cluster - Credit Payment Attributes 0x08
#define ATTRID_SE_CREDIT_PAYMENT_DUE_DATE ( 0x0000 | ATTRID_MASK_SE_CREDIT_PAYMENT )
#define ATTRID_SE_CREDIT_PAYMENT_STATUS ( 0x0001 | ATTRID_MASK_SE_CREDIT_PAYMENT )
#define ATTRID_SE_CREDIT_PAYMENT_OVERDUE_AMOUNT ( 0x0002 | ATTRID_MASK_SE_CREDIT_PAYMENT )
#define ATTRID_SE_PAYMENT_DISCOUNT ( 0x000A | ATTRID_MASK_SE_CREDIT_PAYMENT )
#define ATTRID_SE_PAYMENT_DISCOUNT_PERIOD ( 0x000B | ATTRID_MASK_SE_CREDIT_PAYMENT )
#define ATTRID_SE_CREDIT_PAYMENT_1 ( 0x0010 | ATTRID_MASK_SE_CREDIT_PAYMENT )
#define ATTRID_SE_CREDIT_PAYMENT_DATE_1 ( 0x0011 | ATTRID_MASK_SE_CREDIT_PAYMENT )
#define ATTRID_SE_CREDIT_PAYMENT_REF_1 ( 0x0012 | ATTRID_MASK_SE_CREDIT_PAYMENT )
#define ATTRID_SE_CREDIT_PAYMENT_2 ( 0x0020 | ATTRID_MASK_SE_CREDIT_PAYMENT )
#define ATTRID_SE_CREDIT_PAYMENT_DATE_2 ( 0x0021 | ATTRID_MASK_SE_CREDIT_PAYMENT )
#define ATTRID_SE_CREDIT_PAYMENT_REF_2 ( 0x0022 | ATTRID_MASK_SE_CREDIT_PAYMENT )
#define ATTRID_SE_CREDIT_PAYMENT_3 ( 0x0030 | ATTRID_MASK_SE_CREDIT_PAYMENT )
#define ATTRID_SE_CREDIT_PAYMENT_DATE_3 ( 0x0031 | ATTRID_MASK_SE_CREDIT_PAYMENT )
#define ATTRID_SE_CREDIT_PAYMENT_REF_3 ( 0x0032 | ATTRID_MASK_SE_CREDIT_PAYMENT )
#define ATTRID_SE_CREDIT_PAYMENT_4 ( 0x0040 | ATTRID_MASK_SE_CREDIT_PAYMENT )
#define ATTRID_SE_CREDIT_PAYMENT_DATE_4 ( 0x0041 | ATTRID_MASK_SE_CREDIT_PAYMENT )
#define ATTRID_SE_CREDIT_PAYMENT_REF_4 ( 0x0042 | ATTRID_MASK_SE_CREDIT_PAYMENT )
#define ATTRID_SE_CREDIT_PAYMENT_5 ( 0x0050 | ATTRID_MASK_SE_CREDIT_PAYMENT )
#define ATTRID_SE_CREDIT_PAYMENT_DATE_5 ( 0x0051 | ATTRID_MASK_SE_CREDIT_PAYMENT )
#define ATTRID_SE_CREDIT_PAYMENT_REF_5 ( 0x0052 | ATTRID_MASK_SE_CREDIT_PAYMENT )
// Price Cluster - Tax Control Attributes 0x09
#define ATTRID_SE_DOMESTIC_PERCENTAGE ( 0x0000 | ATTRID_MASK_SE_TAX_CONTROL )
#define ATTRID_SE_DOMESTIC_FUEL_TAX_RATE ( 0x0001 | ATTRID_MASK_SE_TAX_CONTROL )
#define ATTRID_SE_DOMESTIC_FUEL_TAX_RATE_TRAILING_DIGIT ( 0x0002 | ATTRID_MASK_SE_TAX_CONTROL )
// Price Cluster - Export Tier Label Attributes 0x80
#define ATTRID_SE_EX_TIER1_PRICE_LABEL ( 0x0000 | ATTRID_MASK_SE_EXPORT_TIER_LABEL )
#define ATTRID_SE_EX_TIER2_PRICE_LABEL ( 0x0001 | ATTRID_MASK_SE_EXPORT_TIER_LABEL )
#define ATTRID_SE_EX_TIER3_PRICE_LABEL ( 0x0002 | ATTRID_MASK_SE_EXPORT_TIER_LABEL )
#define ATTRID_SE_EX_TIER4_PRICE_LABEL ( 0x0003 | ATTRID_MASK_SE_EXPORT_TIER_LABEL )
#define ATTRID_SE_EX_TIER5_PRICE_LABEL ( 0x0004 | ATTRID_MASK_SE_EXPORT_TIER_LABEL )
#define ATTRID_SE_EX_TIER6_PRICE_LABEL ( 0x0005 | ATTRID_MASK_SE_EXPORT_TIER_LABEL )
#define ATTRID_SE_EX_TIER7_PRICE_LABEL ( 0x0006 | ATTRID_MASK_SE_EXPORT_TIER_LABEL )
#define ATTRID_SE_EX_TIER8_PRICE_LABEL ( 0x0007 | ATTRID_MASK_SE_EXPORT_TIER_LABEL )
#define ATTRID_SE_EX_TIER9_PRICE_LABEL ( 0x0008 | ATTRID_MASK_SE_EXPORT_TIER_LABEL )
#define ATTRID_SE_EX_TIER10_PRICE_LABEL ( 0x0009 | ATTRID_MASK_SE_EXPORT_TIER_LABEL )
#define ATTRID_SE_EX_TIER11_PRICE_LABEL ( 0x000A | ATTRID_MASK_SE_EXPORT_TIER_LABEL )
#define ATTRID_SE_EX_TIER12_PRICE_LABEL ( 0x000B | ATTRID_MASK_SE_EXPORT_TIER_LABEL )
#define ATTRID_SE_EX_TIER13_PRICE_LABEL ( 0x000C | ATTRID_MASK_SE_EXPORT_TIER_LABEL )
#define ATTRID_SE_EX_TIER14_PRICE_LABEL ( 0x000D | ATTRID_MASK_SE_EXPORT_TIER_LABEL )
#define ATTRID_SE_EX_TIER15_PRICE_LABEL ( 0x000E | ATTRID_MASK_SE_EXPORT_TIER_LABEL )
// Price Cluster - Export Block Threshold Attributes 0x81
#define ATTRID_SE_EX_BLOCK1_THRESHOLD ( 0x0000 | ATTRID_MASK_SE_EXPORT_BLOCK_THRESHOLD )
#define ATTRID_SE_EX_BLOCK2_THRESHOLD ( 0x0001 | ATTRID_MASK_SE_EXPORT_BLOCK_THRESHOLD )
#define ATTRID_SE_EX_BLOCK3_THRESHOLD ( 0x0002 | ATTRID_MASK_SE_EXPORT_BLOCK_THRESHOLD )
#define ATTRID_SE_EX_BLOCK4_THRESHOLD ( 0x0003 | ATTRID_MASK_SE_EXPORT_BLOCK_THRESHOLD )
#define ATTRID_SE_EX_BLOCK5_THRESHOLD ( 0x0004 | ATTRID_MASK_SE_EXPORT_BLOCK_THRESHOLD )
#define ATTRID_SE_EX_BLOCK6_THRESHOLD ( 0x0005 | ATTRID_MASK_SE_EXPORT_BLOCK_THRESHOLD )
#define ATTRID_SE_EX_BLOCK7_THRESHOLD ( 0x0006 | ATTRID_MASK_SE_EXPORT_BLOCK_THRESHOLD )
#define ATTRID_SE_EX_BLOCK8_THRESHOLD ( 0x0007 | ATTRID_MASK_SE_EXPORT_BLOCK_THRESHOLD )
#define ATTRID_SE_EX_BLOCK9_THRESHOLD ( 0x0008 | ATTRID_MASK_SE_EXPORT_BLOCK_THRESHOLD )
#define ATTRID_SE_EX_BLOCK10_THRESHOLD ( 0x0009 | ATTRID_MASK_SE_EXPORT_BLOCK_THRESHOLD )
#define ATTRID_SE_EX_BLOCK11_THRESHOLD ( 0x000A | ATTRID_MASK_SE_EXPORT_BLOCK_THRESHOLD )
#define ATTRID_SE_EX_BLOCK12_THRESHOLD ( 0x000B | ATTRID_MASK_SE_EXPORT_BLOCK_THRESHOLD )
#define ATTRID_SE_EX_BLOCK13_THRESHOLD ( 0x000C | ATTRID_MASK_SE_EXPORT_BLOCK_THRESHOLD )
#define ATTRID_SE_EX_BLOCK14_THRESHOLD ( 0x000D | ATTRID_MASK_SE_EXPORT_BLOCK_THRESHOLD )
#define ATTRID_SE_EX_BLOCK15_THRESHOLD ( 0x000E | ATTRID_MASK_SE_EXPORT_BLOCK_THRESHOLD )
// Price Cluster - Export Block Period Attributes 0x82
#define ATTRID_SE_EX_START_OF_BLOCK_PERIOD ( 0x0000 | ATTRID_MASK_SE_EXPORT_BLOCK_PERIOD )
#define ATTRID_SE_EX_BLOCK_PERIOD_DURATION ( 0x0001 | ATTRID_MASK_SE_EXPORT_BLOCK_PERIOD )
#define ATTRID_SE_EX_THRESHOLD_MULTIPLIER ( 0x0002 | ATTRID_MASK_SE_EXPORT_BLOCK_PERIOD )
#define ATTRID_SE_EX_THRESHOLD_DIVISOR ( 0x0003 | ATTRID_MASK_SE_EXPORT_BLOCK_PERIOD )
// Price Cluster - Export Block Price Information Attributes 0x84
#define ATTRID_SE_EX_TIER_X_BLOCK_Y_PRICE(X,Y) (( ((X&0xF)<<4) | ((Y-1)&0xF)) | ATTRID_MASK_SE_EXPORT_BLOCK_PRICE_INFO )
// Price Cluster - Export Extended Price Information Attributes 0x85
#define ATTRID_SE_EX_PRICE_TIER_16 ( 0x000F | ATTRID_MASK_SE_EXPORT_EXT_PRICE_INFO )
#define ATTRID_SE_EX_PRICE_TIER_17 ( 0x0010 | ATTRID_MASK_SE_EXPORT_EXT_PRICE_INFO )
#define ATTRID_SE_EX_PRICE_TIER_18 ( 0x0011 | ATTRID_MASK_SE_EXPORT_EXT_PRICE_INFO )
#define ATTRID_SE_EX_PRICE_TIER_19 ( 0x0012 | ATTRID_MASK_SE_EXPORT_EXT_PRICE_INFO )
#define ATTRID_SE_EX_PRICE_TIER_20 ( 0x0013 | ATTRID_MASK_SE_EXPORT_EXT_PRICE_INFO )
#define ATTRID_SE_EX_PRICE_TIER_21 ( 0x0014 | ATTRID_MASK_SE_EXPORT_EXT_PRICE_INFO )
#define ATTRID_SE_EX_PRICE_TIER_22 ( 0x0015 | ATTRID_MASK_SE_EXPORT_EXT_PRICE_INFO )
#define ATTRID_SE_EX_PRICE_TIER_23 ( 0x0016 | ATTRID_MASK_SE_EXPORT_EXT_PRICE_INFO )
#define ATTRID_SE_EX_PRICE_TIER_24 ( 0x0017 | ATTRID_MASK_SE_EXPORT_EXT_PRICE_INFO )
#define ATTRID_SE_EX_PRICE_TIER_25 ( 0x0018 | ATTRID_MASK_SE_EXPORT_EXT_PRICE_INFO )
#define ATTRID_SE_EX_PRICE_TIER_26 ( 0x0019 | ATTRID_MASK_SE_EXPORT_EXT_PRICE_INFO )
#define ATTRID_SE_EX_PRICE_TIER_27 ( 0x001A | ATTRID_MASK_SE_EXPORT_EXT_PRICE_INFO )
#define ATTRID_SE_EX_PRICE_TIER_28 ( 0x001B | ATTRID_MASK_SE_EXPORT_EXT_PRICE_INFO )
#define ATTRID_SE_EX_PRICE_TIER_29 ( 0x001C | ATTRID_MASK_SE_EXPORT_EXT_PRICE_INFO )
#define ATTRID_SE_EX_PRICE_TIER_30 ( 0x001D | ATTRID_MASK_SE_EXPORT_EXT_PRICE_INFO )
#define ATTRID_SE_EX_PRICE_TIER_31 ( 0x001E | ATTRID_MASK_SE_EXPORT_EXT_PRICE_INFO )
#define ATTRID_SE_EX_PRICE_TIER_32 ( 0x001F | ATTRID_MASK_SE_EXPORT_EXT_PRICE_INFO )
#define ATTRID_SE_EX_PRICE_TIER_33 ( 0x0020 | ATTRID_MASK_SE_EXPORT_EXT_PRICE_INFO )
#define ATTRID_SE_EX_PRICE_TIER_34 ( 0x0021 | ATTRID_MASK_SE_EXPORT_EXT_PRICE_INFO )
#define ATTRID_SE_EX_PRICE_TIER_35 ( 0x0022 | ATTRID_MASK_SE_EXPORT_EXT_PRICE_INFO )
#define ATTRID_SE_EX_PRICE_TIER_36 ( 0x0023 | ATTRID_MASK_SE_EXPORT_EXT_PRICE_INFO )
#define ATTRID_SE_EX_PRICE_TIER_37 ( 0x0024 | ATTRID_MASK_SE_EXPORT_EXT_PRICE_INFO )
#define ATTRID_SE_EX_PRICE_TIER_38 ( 0x0025 | ATTRID_MASK_SE_EXPORT_EXT_PRICE_INFO )
#define ATTRID_SE_EX_PRICE_TIER_39 ( 0x0026 | ATTRID_MASK_SE_EXPORT_EXT_PRICE_INFO )
#define ATTRID_SE_EX_PRICE_TIER_40 ( 0x0027 | ATTRID_MASK_SE_EXPORT_EXT_PRICE_INFO )
#define ATTRID_SE_EX_PRICE_TIER_41 ( 0x0028 | ATTRID_MASK_SE_EXPORT_EXT_PRICE_INFO )
#define ATTRID_SE_EX_PRICE_TIER_42 ( 0x0029 | ATTRID_MASK_SE_EXPORT_EXT_PRICE_INFO )
#define ATTRID_SE_EX_PRICE_TIER_43 ( 0x002A | ATTRID_MASK_SE_EXPORT_EXT_PRICE_INFO )
#define ATTRID_SE_EX_PRICE_TIER_44 ( 0x002B | ATTRID_MASK_SE_EXPORT_EXT_PRICE_INFO )
#define ATTRID_SE_EX_PRICE_TIER_45 ( 0x002C | ATTRID_MASK_SE_EXPORT_EXT_PRICE_INFO )
#define ATTRID_SE_EX_PRICE_TIER_46 ( 0x002D | ATTRID_MASK_SE_EXPORT_EXT_PRICE_INFO )
#define ATTRID_SE_EX_PRICE_TIER_47 ( 0x002E | ATTRID_MASK_SE_EXPORT_EXT_PRICE_INFO )
#define ATTRID_SE_EX_PRICE_TIER_48 ( 0x002F | ATTRID_MASK_SE_EXPORT_EXT_PRICE_INFO )
// Price Cluster - Export Tariff Information Attributes 0x86
#define ATTRID_SE_EX_TARIFF_LABEL ( 0x0010 | ATTRID_MASK_SE_EXPORT_TARIFF_INFO )
#define ATTRID_SE_EX_NUM_PRICE_TIERS_IN_USE ( 0x0011 | ATTRID_MASK_SE_EXPORT_TARIFF_INFO )
#define ATTRID_SE_EX_NUM_BLOCK_THRESHOLDS_IN_USE ( 0x0012 | ATTRID_MASK_SE_EXPORT_TARIFF_INFO )
#define ATTRID_SE_EX_TIER_BLOCK_MODE ( 0x0013 | ATTRID_MASK_SE_EXPORT_TARIFF_INFO )
#define ATTRID_SE_EX_BLOCK_THRESHOLD_MASK ( 0x0014 | ATTRID_MASK_SE_EXPORT_TARIFF_INFO )
#define ATTRID_SE_EX_CO2 ( 0x0025 | ATTRID_MASK_SE_EXPORT_TARIFF_INFO )
#define ATTRID_SE_EX_CO2_UNIT ( 0x0026 | ATTRID_MASK_SE_EXPORT_TARIFF_INFO )
#define ATTRID_SE_EX_CO2_TRAILING_DIGIT ( 0x0027 | ATTRID_MASK_SE_EXPORT_TARIFF_INFO )
// Price Cluster - Export Billing Information Attributes 0x87
#define ATTRID_SE_EX_CURRENT_BILLING_PERIOD_START ( 0x0000 | ATTRID_MASK_SE_EXPORT_BILLING_INFO )
#define ATTRID_SE_EX_CURRENT_BILLING_PERIOD_DURATION ( 0x0001 | ATTRID_MASK_SE_EXPORT_BILLING_INFO )
#define ATTRID_SE_EX_LAST_BILLING_PERIOD_START ( 0x0002 | ATTRID_MASK_SE_EXPORT_BILLING_INFO )
#define ATTRID_SE_EX_LAST_BILLING_PERIOD_DURATION ( 0x0003 | ATTRID_MASK_SE_EXPORT_BILLING_INFO )
#define ATTRID_SE_EX_LAST_BILLING_PERIOD_CONSOLIDATED ( 0x0004 | ATTRID_MASK_SE_EXPORT_BILLING_INFO )
// Prepayment Cluster Attribute Sets
#define ATTRID_MASK_SE_PREPAYMENT_INFO_SET ( 0x0000 )
#define ATTRID_MASK_SE_TOPUP_ATTRIBUTE_SET ( 0x0100 )
#define ATTRID_MASK_SE_DEBT_ATTRIBUTE_SET ( 0x0200 )
#ifndef SE_UK_EXT // SE 1.1
#define ATTRID_MASK_SE_SUPPLY_CONTROL_SET ( 0x0300 )
#else
#define ATTRID_MASK_SE_ALARMS_SET ( 0x0300 )
#endif // SE_UK_EXT
// Prepayment Cluster - Prepayment Information Set Attributes 0x00
#define ATTRID_SE_PAYMENT_CONTROL ( 0x0000 | ATTRID_MASK_SE_PREPAYMENT_INFO_SET )
#define ATTRID_SE_CREDIT_REMAINING ( 0x0001 | ATTRID_MASK_SE_PREPAYMENT_INFO_SET )
#define ATTRID_SE_EMERGENCY_CREDIT_REMAINING ( 0x0002 | ATTRID_MASK_SE_PREPAYMENT_INFO_SET )
#define ATTRID_SE_CREDIT_STATUS ( 0x0003 | ATTRID_MASK_SE_PREPAYMENT_INFO_SET )
#define ATTRID_SE_EMERGENCY_CREDIT_LIMIT ( 0x0010 | ATTRID_MASK_SE_PREPAYMENT_INFO_SET )
#define ATTRID_SE_EMERGENCY_CREDIT_THRESHOLD ( 0x0011 | ATTRID_MASK_SE_PREPAYMENT_INFO_SET )
#define ATTRID_SE_TOTAL_CREDIT_ADDED ( 0x0020 | ATTRID_MASK_SE_PREPAYMENT_INFO_SET )
#define ATTRID_SE_MAX_CREDIT_LIMIT ( 0x0021 | ATTRID_MASK_SE_PREPAYMENT_INFO_SET )
#define ATTRID_SE_FRIENDLY_CREDIT_WARNING ( 0x0030 | ATTRID_MASK_SE_PREPAYMENT_INFO_SET )
#define ATTRID_SE_CUT_OFF_VALUE ( 0x0040 | ATTRID_MASK_SE_PREPAYMENT_INFO_SET )
#define ATTRID_SE_PAYMENT_CARD_ID ( 0x0080 | ATTRID_MASK_SE_PREPAYMENT_INFO_SET )
// Prepayment Cluster - Top-up Attribute Set Attributes 0x01
#define ATTRID_SE_TOPUP_DATE_TIME_1 ( 0x0000 | ATTRID_MASK_SE_TOPUP_ATTRIBUTE_SET )
#define ATTRID_SE_TOPUP_AMOUNT_1 ( 0x0001 | ATTRID_MASK_SE_TOPUP_ATTRIBUTE_SET )
#define ATTRID_SE_ORIGINATING_DEVICE_1 ( 0x0002 | ATTRID_MASK_SE_TOPUP_ATTRIBUTE_SET )
#define ATTRID_SE_TOPUP_CODE_1 ( 0x0003 | ATTRID_MASK_SE_TOPUP_ATTRIBUTE_SET )
#define ATTRID_SE_TOPUP_DATE_TIME_2 ( 0x0010 | ATTRID_MASK_SE_TOPUP_ATTRIBUTE_SET )
#define ATTRID_SE_TOPUP_AMOUNT_2 ( 0x0011 | ATTRID_MASK_SE_TOPUP_ATTRIBUTE_SET )
#define ATTRID_SE_ORIGINATING_DEVICE_2 ( 0x0012 | ATTRID_MASK_SE_TOPUP_ATTRIBUTE_SET )
#define ATTRID_SE_TOPUP_CODE_2 ( 0x0013 | ATTRID_MASK_SE_TOPUP_ATTRIBUTE_SET )
#define ATTRID_SE_TOPUP_DATE_TIME_3 ( 0x0020 | ATTRID_MASK_SE_TOPUP_ATTRIBUTE_SET )
#define ATTRID_SE_TOPUP_AMOUNT_3 ( 0x0021 | ATTRID_MASK_SE_TOPUP_ATTRIBUTE_SET )
#define ATTRID_SE_ORIGINATING_DEVICE_3 ( 0x0022 | ATTRID_MASK_SE_TOPUP_ATTRIBUTE_SET )
#define ATTRID_SE_TOPUP_CODE_3 ( 0x0023 | ATTRID_MASK_SE_TOPUP_ATTRIBUTE_SET )
#define ATTRID_SE_TOPUP_DATE_TIME_4 ( 0x0030 | ATTRID_MASK_SE_TOPUP_ATTRIBUTE_SET )
#define ATTRID_SE_TOPUP_AMOUNT_4 ( 0x0031 | ATTRID_MASK_SE_TOPUP_ATTRIBUTE_SET )
#define ATTRID_SE_ORIGINATING_DEVICE_4 ( 0x0032 | ATTRID_MASK_SE_TOPUP_ATTRIBUTE_SET )
#define ATTRID_SE_TOPUP_CODE_4 ( 0x0033 | ATTRID_MASK_SE_TOPUP_ATTRIBUTE_SET )
#define ATTRID_SE_TOPUP_DATE_TIME_5 ( 0x0040 | ATTRID_MASK_SE_TOPUP_ATTRIBUTE_SET )
#define ATTRID_SE_TOPUP_AMOUNT_5 ( 0x0041 | ATTRID_MASK_SE_TOPUP_ATTRIBUTE_SET )
#define ATTRID_SE_ORIGINATING_DEVICE_5 ( 0x0042 | ATTRID_MASK_SE_TOPUP_ATTRIBUTE_SET )
#define ATTRID_SE_TOPUP_CODE_5 ( 0x0043 | ATTRID_MASK_SE_TOPUP_ATTRIBUTE_SET )
// Prepayment Cluster - Debt Attribute Set Attributes 0x02
#define ATTRID_SE_FUEL_DEBT_REMAINING ( 0x0000 | ATTRID_MASK_SE_DEBT_ATTRIBUTE_SET )
#define ATTRID_SE_FUEL_DEBT_RECOVERY_RATE ( 0x0001 | ATTRID_MASK_SE_DEBT_ATTRIBUTE_SET )
#define ATTRID_SE_FUEL_DEBT_RECOVERY_PERIOD ( 0x0002 | ATTRID_MASK_SE_DEBT_ATTRIBUTE_SET )
#define ATTRID_SE_NON_FUEL_DEBT_REMAINING ( 0x0003 | ATTRID_MASK_SE_DEBT_ATTRIBUTE_SET )
#define ATTRID_SE_NON_FUEL_DEBT_RECOVERY_RATE ( 0x0004 | ATTRID_MASK_SE_DEBT_ATTRIBUTE_SET )
#define ATTRID_SE_NON_FUEL_DEBT_RECOVERY_PERIOD ( 0x0005 | ATTRID_MASK_SE_DEBT_ATTRIBUTE_SET )
#ifndef SE_UK_EXT // SE 1.1
// Prepayment Cluster - Supply Control Set Attributes 0x03
#define ATTRID_SE_PROPOSED_CHANGE_PROVIDER_ID ( 0x0000 | ATTRID_MASK_SE_SUPPLY_CONTROL_SET )
#define ATTRID_SE_PROPOSED_CHANGE_IMPLEMENTATION_TIME ( 0x0001 | ATTRID_MASK_SE_SUPPLY_CONTROL_SET )
#define ATTRID_SE_PROPOSED_CHANGE_SUPPLY_STATUS ( 0x0002 | ATTRID_MASK_SE_SUPPLY_CONTROL_SET )
#define ATTRID_SE_DELAYED_SUPPLY_INTERRUPT_VALUE_REMAINING ( 0x0003 | ATTRID_MASK_SE_SUPPLY_CONTROL_SET )
#define ATTRID_SE_DELAYED_SUPPLY_INTERRUPT_VALUE_TYPE ( 0x0004 | ATTRID_MASK_SE_SUPPLY_CONTROL_SET )
#else
// Prepayment Cluster - Alarm Set Attributes 0x03
#define ATTRID_SE_PREPAYMENT_ALARM_STATUS ( 0x0000 | ATTRID_MASK_SE_ALARMS_SET )
#define ATTRID_SE_PREPAY_GENERIC_ALARM_MASK ( 0x0001 | ATTRID_MASK_SE_ALARMS_SET )
#define ATTRID_SE_PREPAY_SWITCH_ALARM_MASK ( 0x0002 | ATTRID_MASK_SE_ALARMS_SET )
#define ATTRID_SE_PREPAY_EVENT_ALARM_MASK ( 0x0003 | ATTRID_MASK_SE_ALARMS_SET )
#endif
// Tunneling Server Cluster Attributes
#define ATTRID_SE_CLOSE_TUNNEL_TIMEOUT 0x0000
#ifdef SE_UK_EXT
// Device Management Server Cluster Attribute Sets
#define ATTRID_MASK_SE_SUPPLY_CONTROL_SET 0x0000
#define ATTRID_MASK_SE_SUPPLIER_CONTROL_SET 0x0100
#define ATTRID_MASK_SE_TENANCY_CONTROL_SET 0x0200
// Device Management Server Cluster - Supply Control Set Attributes 0x00
#define ATTRID_SE_PROPOSED_CHANGE_SUPPLY_IMPLEM_TIME ( 0x0000 | ATTRID_MASK_SE_SUPPLY_CONTROL_SET )
#define ATTRID_SE_PROPOSED_CHANGE_SUPPLY_STATUS ( 0x0001 | ATTRID_MASK_SE_SUPPLY_CONTROL_SET )
// Device Management Server Cluster - Supplier Control Set Attributes 0x01
#define ATTRID_SE_SERVER_SUPPLIER_ID ( 0x0000 | ATTRID_MASK_SE_SUPPLIER_CONTROL_SET )
#define ATTRID_SE_SUPPLIER_NAME ( 0x0001 | ATTRID_MASK_SE_SUPPLIER_CONTROL_SET )
#define ATTRID_SE_PROPOSED_SUPPLIER_ID ( 0x0010 | ATTRID_MASK_SE_SUPPLIER_CONTROL_SET )
#define ATTRID_SE_PROPOSED_SUPPLIER_NAME ( 0x0011 | ATTRID_MASK_SE_SUPPLIER_CONTROL_SET )
#define ATTRID_SE_PROPOSED_SUPPLIER_CHANGE_DATE_TIME ( 0x0012 | ATTRID_MASK_SE_SUPPLIER_CONTROL_SET )
#define ATTRID_SE_PROPOSED_SUPPLIER_CHANGE_CONTROL ( 0x0013 | ATTRID_MASK_SE_SUPPLIER_CONTROL_SET )
#define ATTRID_SE_SERVER_EX_SUPPLIER_ID ( 0x0020 | ATTRID_MASK_SE_SUPPLIER_CONTROL_SET )
#define ATTRID_SE_EX_SUPPLIER_NAME ( 0x0021 | ATTRID_MASK_SE_SUPPLIER_CONTROL_SET )
#define ATTRID_SE_EX_PROPOSED_SUPPLIER_ID ( 0x0030 | ATTRID_MASK_SE_SUPPLIER_CONTROL_SET )
#define ATTRID_SE_EX_PROPOSED_SUPPLIER_NAME ( 0x0031 | ATTRID_MASK_SE_SUPPLIER_CONTROL_SET )
#define ATTRID_SE_EX_PROPOSED_SUPPLIER_CHANGE_DATE_TIME ( 0x0032 | ATTRID_MASK_SE_SUPPLIER_CONTROL_SET )
#define ATTRID_SE_EX_PROPOSED_SUPPLIER_CHANGE_CONTROL ( 0x0033 | ATTRID_MASK_SE_SUPPLIER_CONTROL_SET )
// Device Management Server Cluster - Tenancy Control Set Attributes 0x02
#define ATTRID_SE_CHANGE_TENANCY_UPDATE_DATE_TIME ( 0x0000 | ATTRID_MASK_SE_TENANCY_CONTROL_SET )
#define ATTRID_SE_PROPOSED_TENANCY_CHANGE_CONTROL ( 0x0001 | ATTRID_MASK_SE_TENANCY_CONTROL_SET )
// Device Management Client Cluster Attribute Sets
#define ATTRID_MASK_SE_SUPPLIER_SET 0x0000
#define ATTRID_MASK_SE_EVENT_CONFIGURATION 0x0100
// Device Management Client Cluster - Supplier Set Attributes 0x00
#define ATTRID_SE_CLIENT_SUPPLIER_ID ( 0x0000 | ATTRID_MASK_SE_SUPPLIER_SET )
#define ATTRID_SE_CLIENT_EX_SUPPLIER_ID ( 0x0010 | ATTRID_MASK_SE_SUPPLIER_SET )
// Device Management Client Cluster - Event Configuration Set Attributes 0x01
#define ATTRID_SE_METER_COVER_REMOVED ( 0x0000 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_METER_COVER_CLOSED ( 0x0001 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_STRONG_MAGNETIC_FIELD ( 0x0002 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_NO_STRONG_MAGNETIC_FIELD ( 0x0003 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_BATTERY_FAILURE ( 0x0004 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_LOW_BATTERY ( 0x0005 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_PROGRAM_MEMORY_ERROR ( 0x0006 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_RAM_ERROR ( 0x0007 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_NV_MEMORY_ERROR ( 0x0008 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_MEASUREMENT_SYSTEM_ERROR ( 0x0009 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_WATCHDOG_ERROR ( 0x000A | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_SUPPLY_DISCONNECT_FAILURE ( 0x000B | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_SUPPLY_CONNECT_FAILURE ( 0x000C | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_MEASUREMENT_SOFTWARE_CHANGE ( 0x000D | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_DST_ENABLED ( 0x000E | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_DST_DISABLED ( 0x000F | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_CLOCK_ADJ_BACKWARD ( 0x0010 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_CLOCK_ADJ_FORWARD ( 0x0011 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_CLOCK_INVALID ( 0x0012 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_COMM_ERROR_HAN ( 0x0013 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_COMM_OK_HAN ( 0x0014 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_FRAUD_ATTEMPT ( 0x0015 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_POWER_LOSS ( 0x0016 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_INCORRECT_PROTOCOLS ( 0x0017 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_UNUSUAL_HAN_TRAFFIC ( 0x0018 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_UNEXPECTED_CLOCK_CHANGE ( 0x0019 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_COMMS_USING_UNAUTH_COMPONENT ( 0x001A | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_ERROR_REG_CLEAR ( 0x001B | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_ALARM_REG_CLEAR ( 0x001C | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_UNEXPECTED_HW_RESET ( 0x001D | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_UNEXPECTED_PROGRAM_EXECUTION ( 0x001E | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_EVENT_LOG_CLEAR ( 0x001F | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_MANUAL_DISCONNECT ( 0x0020 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_MANUAL_CONNECT ( 0x0021 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_REMOTE_DISCONNECTION ( 0x0022 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_LOCAL_DISCONNECTION ( 0x0023 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_LIMIT_THRESHOLD_EXCEEDED ( 0x0024 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_LIMIT_THRESHOLD_OK ( 0x0025 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_LIMIT_THRESHOLD_CHANGED ( 0x0026 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_MAXIMUM_DEMAND_EXCEEDED ( 0x0027 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_PROFILE_CLEARED ( 0x0028 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_FW_READY_FOR_ACTIVATION ( 0x0029 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_FW_ACTIVATED ( 0x002A | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_PATCH_FAILURE ( 0x002B | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_TOU_TARIFF_ACTIVATION ( 0x002C | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_8X8_TARIFF_ACTIVATED ( 0x002D | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_SINGLE_TARIFF_RATE_ACTIVATED ( 0x002E | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_ASYNC_BILLING_OCURRED ( 0x002F | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_SYNC_BILLING_OCURRED ( 0x0030 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_INCORRECT_POLARITY ( 0x0080 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_CURRENT_NO_VOLTAGE ( 0x0081 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_UNDER_VOLTAGE ( 0x0082 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_OVER_VOLTAGE ( 0x0083 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_NORMAL_VOLTAGE ( 0x0084 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_PF_BELOW_THRESHOLD ( 0x0085 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_PF_ABOVE_THRESHOLD ( 0x0086 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_TERMINAL_COVER_REMOVED ( 0x0087 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_TERMINAL_COVER_CLOSED ( 0x0088 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_REVERSE_FLOW ( 0x00A0 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_TILT_TAMPER ( 0x00A1 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_BATTERY_COVER_REMOVED ( 0x00A2 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_BATTERY_COVER_CLOSED ( 0x00A3 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_EXCESS_FLOW ( 0x00A4 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_CREDIT_OK ( 0x00C0 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_LOW_CREDIT ( 0x00C1 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_EMERGENCY_CREDIT_IN_USE ( 0x00C2 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_EMERGENCY_CREDIT_EXHAUSTED ( 0x00C3 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_ZERO_CREDIT_EC_NOT_SELECTED ( 0x00C4 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_SUPPLY_ON ( 0x00C5 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_SUPPLY_OFF_ARMED ( 0x00C6 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_SUPPLY_OFF ( 0x00C7 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_DISCOUNT_APPLIED ( 0x00C8 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_MANUFACTURER_SPECIFIC_A ( 0x00E0 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_MANUFACTURER_SPECIFIC_B ( 0x00E1 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_MANUFACTURER_SPECIFIC_C ( 0x00E2 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_MANUFACTURER_SPECIFIC_D ( 0x00E3 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_MANUFACTURER_SPECIFIC_E ( 0x00E4 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_MANUFACTURER_SPECIFIC_F ( 0x00E5 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_MANUFACTURER_SPECIFIC_G ( 0x00E6 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_MANUFACTURER_SPECIFIC_H ( 0x00E7 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#define ATTRID_SE_MANUFACTURER_SPECIFIC_I ( 0x00E8 | ATTRID_MASK_SE_EVENT_CONFIGURATION )
#endif // SE_UK_EXT
/************************************************************/
/*** SE Profile Command ID ***/
/************************************************************/
// Simple Metering Cluster
#define COMMAND_SE_GET_PROFILE_CMD 0x0000
#define COMMAND_SE_GET_PROFILE_RSP 0x0000
#define COMMAND_SE_REQ_MIRROR_CMD 0x0001
#define COMMAND_SE_REQ_MIRROR_RSP 0x0001
#define COMMAND_SE_MIRROR_REM_CMD 0x0002
#define COMMAND_SE_MIRROR_REM_RSP 0x0002
#define COMMAND_SE_REQ_FAST_POLL_MODE_CMD 0x0003
#define COMMAND_SE_REQ_FAST_POLL_MODE_RSP 0x0003
#define COMMAND_SE_GET_SNAPSHOT_CMD 0x0004
#define COMMAND_SE_GET_SNAPSHOT_RSP 0x0004
#define COMMAND_SE_TAKE_SNAPSHOT_CMD 0x0005
#define COMMAND_SE_MIRROR_REPORT_ATTR_RSP 0x0006
// Pricing Cluster
#define COMMAND_SE_GET_CURRENT_PRICE 0x0000
#define COMMAND_SE_GET_SCHEDULED_PRICE 0x0001
#define COMMAND_SE_PRICE_ACKNOWLEDGEMENT 0x0002
#define COMMAND_SE_GET_BLOCK_PERIOD 0x0003
#define COMMAND_SE_GET_TARIFF_INFO 0x0010
#define COMMAND_SE_GET_PRICE_MATRIX 0x0011
#define COMMAND_SE_GET_BLOCK_THRESHOLD 0x0012
#define COMMAND_SE_GET_CONVERSION_FACTOR 0x0013
#define COMMAND_SE_GET_CALORIFIC_VALUE 0x0014
#define COMMAND_SE_GET_CO2_VALUE 0x0015
#define COMMAND_SE_GET_BILLING_PERIOD 0x0020
#define COMMAND_SE_GET_CONSOLIDATED_BILL 0x0021
#define COMMAND_SE_CPP_EVENT_RESPONSE 0x0030
#define COMMAND_SE_PUBLISH_PRICE 0x0000
#define COMMAND_SE_PUBLISH_BLOCK_PERIOD 0x0001
#define COMMAND_SE_PUBLISH_TARIFF_INFO 0x0010
#define COMMAND_SE_PUBLISH_PRICE_MATRIX 0x0011
#define COMMAND_SE_PUBLISH_BLOCK_THRESHOLD 0x0012
#define COMMAND_SE_PUBLISH_CONVERSION_FACTOR 0x0013
#define COMMAND_SE_PUBLISH_CALORIFIC_VALUE 0x0014
#define COMMAND_SE_PUBLISH_CO2_VALUE 0x0015
#define COMMAND_SE_PUBLISH_CPP_EVENT 0x0016
#define COMMAND_SE_PUBLISH_BILLING_PERIOD 0x0020
#define COMMAND_SE_PUBLISH_CONSOLIDATED_BILL 0x0021
#define COMMAND_SE_PUBLISH_CREDIT_PAYMENT_INFO 0x0022
// Messaging Cluster
#define COMMAND_SE_DISPLAY_MESSAGE 0x0000
#define COMMAND_SE_CANCEL_MESSAGE 0x0001
#define COMMAND_SE_GET_LAST_MESSAGE 0x0000
#define COMMAND_SE_MESSAGE_CONFIRMATION 0x0001
// Demand Response and Load Control Cluster
#define COMMAND_SE_LOAD_CONTROL_EVENT 0x0000
#define COMMAND_SE_CANCEL_LOAD_CONTROL_EVENT 0x0001
#define COMMAND_SE_CANCEL_ALL_LOAD_CONTROL_EVENT 0x0002
#define COMMAND_SE_REPORT_EVENT_STATUS 0x0000
#define COMMAND_SE_GET_SCHEDULED_EVENT 0x0001
// Prepayment Cluster
#define COMMAND_SE_SEL_AVAIL_EMERGENCY_CREDIT 0x0000
#ifndef SE_UK_EXT // this is SE 1.1 command definition
#define COMMAND_SE_CHANGE_SUPPLY 0x0001
#define COMMAND_SE_SUPPLY_STATUS_RESPONSE 0x0000
#else
#define COMMAND_SE_CHANGE_DEBT 0x0001
#define COMMAND_SE_EMERGENCY_CREDIT_SETUP 0x0002
#define COMMAND_SE_CONSUMER_TOPUP 0x0003
#define COMMAND_SE_CREDIT_ADJUSTMENT 0x0004
#define COMMAND_SE_CHANGE_PAYMENT_MODE 0x0005
#define COMMAND_SE_GET_PREPAY_SNAPSHOT 0x0006
#define COMMAND_SE_GET_TOPUP_LOG 0x0007
#define COMMAND_SE_SET_LOW_CREDIT_WARNING_LEVEL 0x0008
#define COMMAND_SE_GET_DEBT_REPAYMENT_LOG 0x0009
#define COMMAND_SE_GET_PREPAY_SNAPSHOT_RESPONSE 0x0000
#define COMMAND_SE_CHANGE_PAYMENT_MODE_RESPONSE 0x0001
#define COMMAND_SE_CONSUMER_TOPUP_RESPONSE 0x0002
#define COMMAND_SE_GET_COMMANDS 0x0003
#define COMMAND_SE_PUBLISH_TOPUP_LOG 0x0004
#define COMMAND_SE_PUBLISH_DEBT_LOG 0x0005
#endif // SE_UK_EXT
// Tunneling cluster commands received by the server
#define COMMAND_SE_REQUEST_TUNNEL 0x0000
#define COMMAND_SE_CLOSE_TUNNEL 0x0001
#define COMMAND_SE_DATA_CLIENT_SERVER_DIR 0x0002
#define COMMAND_SE_DATA_ERROR_CLIENT_SERVER_DIR 0x0003
#define COMMAND_SE_ACK_CLIENT_SERVER_DIR 0x0004
#define COMMAND_SE_READY_DATA_CLIENT_SERVER_DIR 0x0005
#define COMMAND_SE_GET_SUPP_TUNNEL_PROTOCOLS 0x0006
// Tunneling cluster commands sent by the server
#define COMMAND_SE_REQUEST_TUNNEL_RESPONSE 0x0000
#define COMMAND_SE_DATA_SERVER_CLIENT_DIR 0x0001
#define COMMAND_SE_DATA_ERROR_SERVER_CLIENT_DIR 0x0002
#define COMMAND_SE_ACK_SERVER_CLIENT_DIR 0x0003
#define COMMAND_SE_READY_DATA_SERVER_CLIENT_DIR 0x0004
#define COMMAND_SE_SUPP_TUNNEL_PROTOCOLS_RSP 0x0005
#define COMMAND_SE_TUNNEL_CLOSURE_NOTIFICATION 0x0006
#ifdef SE_UK_EXT // this is SE 1.1 command definition
// TOU Calendar Cluster
#define COMMAND_SE_GET_CALENDAR 0x0000
#define COMMAND_SE_GET_DAY_PROFILES 0x0001
#define COMMAND_SE_GET_WEEK_PROFILES 0x0002
#define COMMAND_SE_GET_SEASONS 0x0003
#define COMMAND_SE_GET_SPECIAL_DAYS 0x0004
#define COMMAND_SE_PUBLISH_CALENDAR 0x0000
#define COMMAND_SE_PUBLISH_DAY_PROFILE 0x0001
#define COMMAND_SE_PUBLISH_WEEK_PROFILE 0x0002
#define COMMAND_SE_PUBLISH_SEASONS 0x0003
#define COMMAND_SE_PUBLISH_SPECIAL_DAYS 0x0004
// Device Management Cluster
#define COMMAND_SE_GET_CHANGE_OF_TENANCY 0x0000
#define COMMAND_SE_GET_CHANGE_OF_SUPPLIER 0x0001
#define COMMAND_SE_GET_CHANGE_SUPPLY 0x0002
#define COMMAND_SE_SUPPLY_STATUS_RESPONSE 0x0003
#define COMMAND_SE_GET_PASSWORD 0x0004
#define COMMAND_SE_PUBLISH_CHANGE_OF_TENANCY 0x0000
#define COMMAND_SE_PUBLISH_CHANGE_OF_SUPPLIER 0x0001
#define COMMAND_SE_CHANGE_SUPPLY 0x0002
#define COMMAND_SE_CHANGE_PASSWORD 0x0003
#define COMMAND_SE_LOCAL_CHANGE_SUPPLY 0x0004
#endif // SE_UK_EXT
/******************************************************************/
/*** Other Constants ***/
/******************************************************************/
// Current Block
#define CURRENT_BLOCK_NO_BLOCKS_IN_USE 0x00
#define CURRENT_BLOCK_BLOCK1 0x01
#define CURRENT_BLOCK_BLOCK2 0x02
#define CURRENT_BLOCK_BLOCK3 0x03
#define CURRENT_BLOCK_BLOCK4 0x04
#define CURRENT_BLOCK_BLOCK5 0x05
#define CURRENT_BLOCK_BLOCK6 0x06
#define CURRENT_BLOCK_BLOCK7 0x07
#define CURRENT_BLOCK_BLOCK8 0x08
#define CURRENT_BLOCK_BLOCK9 0x09
#define CURRENT_BLOCK_BLOCK10 0x0A
#define CURRENT_BLOCK_BLOCK11 0x0B
#define CURRENT_BLOCK_BLOCK12 0x0C
#define CURRENT_BLOCK_BLOCK13 0x0D
#define CURRENT_BLOCK_BLOCK14 0x0E
#define CURRENT_BLOCK_BLOCK15 0x0F
#define CURRENT_BLOCK_BLOCK16 0x10
// Profile Interval Period Timeframes
#define PROFILE_INTERVAL_PERIOD_DAILY 0
#define PROFILE_INTERVAL_PERIOD_60MIN 1
#define PROFILE_INTERVAL_PERIOD_30MIN 2
#define PROFILE_INTERVAL_PERIOD_15MIN 3
#define PROFILE_INTERVAL_PERIOD_10MIN 4
#define PROFILE_INTERVAL_PERIOD_7_5MIN 5
#define PROFILE_INTERVAL_PERIOD_5MIN 6
#define PROFILE_INTERVAL_PERIOD_2_5MIN 7
// Profile Interval Status
#define PROFILE_INTERVAL_STAT_SUCCESS 0x00
#define PROFILE_INTERVAL_STAT_UNDEFINED_CHANNEL 0x01
#define PROFILE_INTERVAL_STAT_CHANNEL_NOT_SUPPORT 0x02
#define PROFILE_INTERVAL_STAT_INVALID_END_TIME 0x03
#define PROFILE_INTERVAL_STAT_TOO_MANY_PERIOD 0x04
#define PROFILE_INTERVAL_STAT_NO_INTERVALS 0x05
// Meter Status Attribute Bit Mask - Electricity, Gas, Water, Heat and Cooling
#define STATUS_BITMASK_CHECK_METER 0x01 // All
#define STATUS_BITMASK_LOW_BATTERY 0x02 // All
#define STATUS_BITMASK_TAMPER_DETECT 0x04 // All
#define STATUS_BITMASK_POWER_FAILURE 0x08 // Electricity
#define STATUS_BITMASK_PIPE_EMPTY 0x08 // Water
#define STATUS_BITMASK_TEMPERATURE_SENSOR 0x08 // Heat and Cooling
#define STATUS_BITMASK_POWER_QUALITY 0x10 // Electricity
#define STATUS_BITMASK_LOW_PRESSURE 0x10 // Gas, Water
#define STATUS_BITMASK_BURST_DETECT 0x10 // Heat and Cooling
#define STATUS_BITMASK_LEAK_DETECT 0x20 // All
#define STATUS_BITMASK_SERVICE_DISCONNECT 0x40 // All
#define STATUS_BITMASK_REVERSE_FLOW 0x80 // Gas, Water
#define STATUS_BITMASK_FLOW_SENSOR 0x80 // Heat and Cooling
// Command Packet Length in SE 1.0, for backwards compatibility
#define PACKET_LEN_SE_PUBLISH_PRICE_SE_1_0 34
// Command Packet Length
#define PACKET_LEN_SE_PUBLISH_PRICE 42
#define PACKET_LEN_SE_PRICE_ACKNOWLEDGEMENT 13
#ifdef SE_UK_EXT
#define PACKET_LEN_SE_PUBLISH_BLOCK_PERIOD 18
#else
#define PACKET_LEN_SE_PUBLISH_BLOCK_PERIOD 17
#endif
#define PACKET_LEN_SE_LOAD_CONTROL_EVENT 23
#define PACKET_LEN_SE_GET_SCHEDULED_EVENT 5
#define PACKET_LEN_SE_CANCEL_LOAD_CONTROL_EVENT 12
#define PACKET_LEN_SE_REPORT_EVENT_STATUS_ONLY 18
#define PACKET_LEN_SE_REPORT_EVENT_STATUS (PACKET_LEN_SE_REPORT_EVENT_STATUS_ONLY + SE_PROFILE_SIGNATURE_LENGTH)
#define PACKET_LEN_SE_METERING_FAST_POLLING_REQ 2
#define PACKET_LEN_SE_METERING_FAST_POLLING_RSP 5
#define PACKET_LEN_SE_SEL_AVAIL_EMERGENCY_CREDIT 7
#ifndef SE_UK_EXT // SE 1.1
#define PACKET_LEN_SE_CHANGE_SUPPLY 16
#define PACKET_LEN_SE_SUPPLY_STATUS_RESPONSE 9
#endif
#define PACKET_LEN_SE_GET_SNAPSHOT_CMD 7
#define PACKET_LEN_SE_GET_SNAPSHOT_RSP 12
#define PACKET_LEN_SE_MIRROR_REPORT_ATTR_RSP 7
#define PACKET_LEN_SE_MIN_PUBLISH_TARIFF_INFORMATION 33
#define PACKET_LEN_SE_MIN_PUBLISH_PRICE_MATRIX 5
#define PACKET_LEN_SE_MIN_PUBLISH_BLOCK_THRESHOLD 5
#define PACKET_LEN_SE_PUBLISH_CONVERSION_FACTOR 13
#define PACKET_LEN_SE_PUBLISH_CALORIFIC_VALUE 14
#define PACKET_LEN_SE_PUBLISH_CO2_VALUE 15
#define PACKET_LEN_SE_PUBLISH_CPP_EVENT 13
#define PACKET_LEN_SE_PUBLISH_BILLING_PERIOD 12
#define PACKET_LEN_SE_PUBLISH_CONSOLIDATED_BILL 19
#define PACKET_LEN_SE_MIN_PUBLISH_CREDIT_PAYMENT_INFO 22
#define PACKET_LEN_SE_GET_TARIFF_INFO 6
#define PACKET_LEN_SE_GET_PRICE_MATRIX 4
#define PACKET_LEN_SE_GET_BLOCK_THRESHOLD 4
#define PACKET_LEN_SE_GET_CONVERSION_FACTOR 5
#define PACKET_LEN_SE_GET_CALORIFIC_VALUE 5
#define PACKET_LEN_SE_GET_CO2_VALUE 6
#define PACKET_LEN_SE_GET_BILLING_PERIOD 6
#define PACKET_LEN_SE_GET_CONSOLIDATED_BILL 6
#define PACKET_LEN_SE_CPP_EVENT_RESPONSE 5
#define PACKET_LEN_SE_TUNNELING_REQUEST 6
#define PACKET_LEN_SE_TUNNELING_RESPONSE 5
#define PACKET_LEN_SE_TUNNELING_CLOSE 2
#define PACKET_LEN_SE_TUNNELING_TRANSFER_DATA 2
#define PACKET_LEN_SE_TUNNELING_DATA_ERROR 3
#define PACKET_LEN_SE_TUNNELING_DATA_ACK 4
#define PACKET_LEN_SE_TUNNELING_READY_DATA 4
#define PACKET_LEN_SE_TUNNELING_GET_SUPP_PROT 1
#define PACKET_LEN_SE_TUNNELING_SUPP_PROT_RSP 2
#define PACKET_LEN_SE_TUNNELING_PROTOCOL_PAYLOAD 3
#define PACKET_LEN_SE_TUNNELING_TUNNEL_CLOSURE 2
#define PACKET_LEN_SE_MIN_CHANGE_DEBT 29
#define PACKET_LEN_SE_EMERGENCY_CREDIT_SETUP 12
#define PACKET_LEN_SE_MIN_CONSUMER_TOPUP 2
#define PACKET_LEN_SE_MIN_CREDIT_ADJUSTMENT 12
#define PACKET_LEN_SE_MIN_CHANGE_PAYMENT_MODE 18
#define PACKET_LEN_SE_GET_PREPAY_SNAPSHOT 7
#define PACKET_LEN_SE_GET_TOPUP_LOG 1
#define PACKET_LEN_SE_SET_LOW_CREDIT_WARNING_LEVEL 1
#define PACKET_LEN_SE_GET_DEBT_REPAYMENT_LOG 2
#define PACKET_LEN_SE_GET_PREPAY_SNAPSHOT_RESPONSE 32
#define PACKET_LEN_SE_CHANGE_PAYMENT_MODE_RESPONSE 13
#define PACKET_LEN_SE_SE_CONSUMER_TOPUP_RESPONSE 10
#define PACKET_LEN_SE_GET_COMMANDS 1
#define PACKET_LEN_SE_MIN_PUBLISH_TOPUP_LOG 2
#define PACKET_LEN_SE_MIN_PUBLISH_DEBT_LOG 2
#ifdef SE_UK_EXT
#define PACKET_LEN_SE_PUBLISH_CALENDAR 14
#define PACKET_LEN_SE_PUBLISH_DAY_PROFILE 7
#define PACKET_LEN_SE_PUBLISH_WEEK_PROFILE 12
#define PACKET_LEN_SE_PUBLISH_SEASONS 5
#define PACKET_LEN_SE_PUBLISH_SPECIAL_DAYS 11
#define PACKET_LEN_SE_GET_CALENDAR 6
#define PACKET_LEN_SE_GET_DAY_PROFILE 4
#define PACKET_LEN_SE_GET_WEEK_PROFILE 4
#define PACKET_LEN_SE_GET_SEASONS 4
#define PACKET_LEN_SE_GET_SPECIAL_DAYS 6
#define PACKET_LEN_SE_SUPPLY_STATUS_RESPONSE 13
#define PACKET_LEN_SE_GET_PASSWORD 1
#define PACKET_LEN_SE_PUBLISH_CHANGE_OF_TENANCY 18
#define PACKET_LEN_SE_PUBLISH_CHANGE_OF_SUPPLIER 23
#define PACKET_LEN_SE_CHANGE_SUPPLY 19
#define PACKET_LEN_SE_CHANGE_PASSWORD 2
#define PACKET_LEN_SE_LOCAL_CHANGE_SUPPLY 1
#endif // SE_UK_EXT
// Maximum value for Command Fields Range Checking
#define MAX_DURATION_IN_MINUTES_SE_LOAD_CONTROL 1440 // One day
#define MAX_CRITICAL_LEVEL_SE_LOAD_CONTROL 0x0F
#define MAX_TEMPERATURE_SETPOINT_SE_LOAD_CONTROL 0x7FFF
#define MIN_AVERAGE_LOAD_ADJUSTMENT_PERCENTAGE_SE -100
#define MAX_AVERAGE_LOAD_ADJUSTMENT_PERCENTAGE_SE 100
#define MAX_DUTY_CYCLE_SE_LOAD_CONTROL 100
#define MAX_INTERVAL_CHANNEL_SE_SIMPLE_METERING 1
#define MAX_PROFILE_INTERVAL_PERIOD_SE_SIMPLE_METERING 7
#define MAX_DURATION_IN_MINUTES_FAST_POLL_MODE 15
#define MIN_NUM_PRICE_TIERS 0x00
#define MAX_NUM_PRICE_TIERS 0x0F
#define MIN_NUM_BLOCK_THRESHOLDS_AVAILABLE 0x00
#define MAX_NUM_BLOCK_THRESHOLDS_AVAILABLE 0x0F
// Maximum length of fields defined as octet string
#define SE_RATE_LABEL_LEN 13
#define SE_SITE_ID_LEN 33
#define SE_METER_SERIAL_NUM_LEN 17
#define SE_DEBT_LABEL_LEN 12
#define SE_TOPUP_CODE_LEN 25
#define SE_CREDIT_PAYMENT_REF_LEN 20
#define SE_TARIFF_LABEL_LEN 20
#define SE_CALENDAR_NAME_LEN 12
#define SE_SUPPLIER_ID_NAME_LEN 17
#define SE_PASSWORD_LEN 13
// TBD: The spec indicates the signature is a placeholder.
// The max length is not provided. Use 48 for now.
#define SE_SIGNATURE_LEN 48
// Device Class Field Bit mask
#define SE_DEVICE_CLASS_HVAC_COMPRESSOR_FURNACE 0x0001
#define SE_DEVICE_CLASS_STRIP_HEATER 0x0002
#define SE_DEVICE_CLASS_WATER_HEATER 0x0004
#define SE_DEVICE_CLASS_POOL_PUMP 0x0008
#define SE_DEVICE_CLASS_SMART_APPLIANCES 0x0010
#define SE_DEVICE_CLASS_IRRIGATION_PUMP 0x0020
#define SE_DEVICE_CLASS_MANAGED_CI_LOADS 0x0040
#define SE_DEVICE_CLASS_SIMPLE_MISC_LOADS 0x0080
#define SE_DEVICE_CLASS_EXTERIOR_LIGHTING 0x0100
#define SE_DEVICE_CLASS_INTERIOR_LIGHTING 0x0200
#define SE_DEVICE_CLASS_ELECTRIC_VEHICLE 0x0400
#define SE_DEVICE_CLASS_GENERATION_SYSTEMS 0x0800
// Criticality Levels
#define SE_CRITICALITY_LEVELS_GREEN 0x01
#define SE_CRITICALITY_LEVELS_1 0x02
#define SE_CRITICALITY_LEVELS_2 0x03
#define SE_CRITICALITY_LEVELS_3 0x04
#define SE_CRITICALITY_LEVELS_4 0x05
#define SE_CRITICALITY_LEVELS_5 0x06
#define SE_CRITICALITY_LEVELS_EMERGENCY 0x07
#define SE_CRITICALITY_LEVELS_PLANNED_OUTAGE 0x08
#define SE_CRITICALITY_LEVELS_SERVICE_DISCONNECT 0x09
// Event Control Field Bit mask
#define SE_EVENT_CONTROL_FIELD_START_TIME 0x01
#define SE_EVENT_CONTROL_FIELD_END_TIME 0x02
// Optional Fields Value
#define SE_OPTIONAL_FIELD_UINT8 0xFF
#define SE_OPTIONAL_FIELD_UINT16 0xFFFF
#define SE_OPTIONAL_FIELD_UINT32 0xFFFFFFFF
#define SE_OPTIONAL_FIELD_TEMPERATURE_SET_POINT 0x8000
#define SE_OPTIONAL_FIELD_INT8 -128
// Event Status Field Values
#define EVENT_STATUS_LOAD_CONTROL_EVENT_RECEIVED 0x01
#define EVENT_STATUS_LOAD_CONTROL_EVENT_STARTED 0x02
#define EVENT_STATUS_LOAD_CONTROL_EVENT_COMPLETED 0x03
#define EVENT_STATUS_LOAD_CONTROL_USER_OPT_OUT 0x04
#define EVENT_STATUS_LOAD_CONTROL_USER_OPT_IN 0x05
#define EVENT_STATUS_LOAD_CONTROL_EVENT_CANCELLED 0x06
#define EVENT_STATUS_LOAD_CONTROL_EVENT_SUPERSEDED 0x07
#define EVENT_STATUS_LOAD_CONTROL_REJECTED_DUPLICATEID 0xFA
#define EVENT_STATUS_LOAD_CONTROL_REJECTED_EVT_EXPIRED 0xFB
#define EVENT_STATUS_LOAD_CONTROL_REJECTED_EVT_COMPLETED 0xFC
#define EVENT_STATUS_LOAD_CONTROL_REJECTED_UNDEFINED_EVT 0xFD
#define EVENT_STATUS_LOAD_CONTROL_EVENT_REJECTED 0xFE
// Signature type
#define SE_PROFILE_SIGNATURE_TYPE_ECDSA 0x01
// Other constants
#define SE_PROFILE_SIGNATURE_LENGTH 42
#define SE_PROFILE_MESSAGE_RESPONSE_LENGTH 20
// SE Messaging
#define SE_PROFILE_MSGCTRL_IMPORTANCE 2
#define SE_PROFILE_MSGCTRL_PINREQUIRED 4
#define SE_PROFILE_MSGCTRL_ACCEPTREQUIRED 5
#define SE_PROFILE_MSGCTRL_CONFREQUIRED 7
// Price Control Field Bit mask
#define SE_PROFILE_PRICE_CONTROL_NOT_USED 0x00
#define SE_PROFILE_PRICEACK_REQUIRED_MASK 0x01
// Payment Control Attribute Bit mask
#define SE_PAYMENT_CTRL_DISC_ENABLED 0x01
#define SE_PAYMENT_CTRL_RESERVED1 0x02
#define SE_PAYMENT_CTRL_CREDIT_MGMNT_ENABLED 0x04
#define SE_PAYMENT_CTRL_RESERVED2 0x08
#define SE_PAYMENT_CTRL_CREDIT_DISP_ENABLED 0x10
#define SE_PAYMENT_CTRL_RESERVED3 0x20
#define SE_PAYMENT_CTRL_ACCOUNT_BASE 0x40
#define SE_PAYMENT_CTRL_CONTRACTOR_FITTED 0x80
// Credit Status Attribute Bit mask
#define SE_CREDIT_STATUS_CREDIT_OK 0x01
#define SE_CREDIT_STATUS_LOW_CREDIT 0x02
#define SE_CREDIT_STATUS_EMER_CREDIT_ENABLED 0x04
#define SE_CREDIT_STATUS_EMER_CREDIT_AVAILABLE 0x08
#define SE_CREDIT_STATUS_EMER_CREDIT_SELECTED 0x10
#define SE_CREDIT_STATUS_EMER_CREDIT_IN_USE 0x20
#define SE_CREDIT_STATUS_EMER_CREDIT_EXHAUSTED 0x40
// Originating Device Field
#define SE_ORIG_DEV_ENERGY_SERVICE_INTERFACE ( 0x00FF & ZCL_SE_DEVICEID_ESP )
#define SE_ORIG_DEV_INPREMISES_DISPLAY_DEV ( 0x00FF & ZCL_SE_DEVICEID_IN_PREMISE_DISPLAY )
// Supply Control Bit mask
#define SE_SUPPLY_CTRL_ACK_REQUIRED 0x01
// Recovery Period Field
#define SE_RECOVERY_PERIOD_PER_HOUR 0x00
#define SE_RECOVERY_PERIOD_PER_DAY 0x01
#define SE_RECOVERY_PERIOD_PER_WEEK 0x02
#define SE_RECOVERY_PERIOD_PER_MONTH 0x03
#define SE_RECOVERY_PERIOD_PER_QUARTER 0x04
// Supply Status Field
#define SE_SUPPLY_OFF 0x00
#define SE_SUPPLY_OFF_ARMED 0x01
#define SE_SUPPLY_ON 0x02
// Meter Snapshot Payload Types
#define SE_SNAPSHOT_TYPE_CSD_AND_RCV_REGISTER 1
#define SE_SNAPSHOT_TYPE_TOU_INFO_RECEIVED 2
#define SE_SNAPSHOT_TYPE_TOU_INFO_DELIVERED 3
#define SE_SNAPSHOT_TYPE_BLOCK_INFO_RECEIVED 4
#define SE_SNAPSHOT_TYPE_BLOCK_INFO_DELIVERED 5
// Meter Snapshot Payload length
#define SE_SNAPSHOT_CSD_AND_RCV_REGISTER_PAYLOAD_LEN 12
// Meter Snapshot Causes
#define SE_SNAPSHOT_CAUSE_GENERAL 0
#define SE_SNAPSHOT_CAUSE_END_BILL_PERIOD 1
#define SE_SNAPSHOT_CAUSE_END_BLOCK_PERIOD 2
#define SE_SNAPSHOT_CAUSE_CHANGE_TARRIF_INFO 3
#define SE_SNAPSHOT_CAUSE_CHANGE_OF_CV 6
#define SE_SNAPSHOT_CAUSE_CHANGE_OF_CF 7
#define SE_SNAPSHOT_CAUSE_CHANGE_OF_TOU_CALENDAR 8
#define SE_SNAPSHOT_CAUSE_CRITICAL_PEAK_PRICING 9
#define SE_SNAPSHOT_CAUSE_MANUAL_TRIGGER 10
// Meter Notification Set Parameters
#define SE_NOTIFICATION_REPORT_ATTR_RSP_BIT 1
// Prepayment snapshot payload types
#define SE_SNAPSHOT_TYPE_DEBIT_CREDIT_ADDITION 0
// Protocol ID Field
#define SE_PROTOCOL_ID_DLMS_COSEM 0
#define SE_PROTOCOL_ID_IEC_61107 1
#define SE_PROTOCOL_ID_ANSI_C12 2
#define SE_PROTOCOL_ID_M_BUS 3
#define SE_PROTOCOL_ID_SML 4
#define SE_PROTOCOL_ID_CLIMATE_TALK 5
#define SE_PROTOCOL_ID_RESERVED 255
// Transfer Data Status Field
#define SE_TRANSFER_DATA_STATUS_NO_SUCH_TUNNEL 0x00
#define SE_TRANSFER_DATA_STATUS_WRONG_DEVICE 0x01
#define SE_TRANSFER_DATA_STATUS_DATA_OVERFLOW 0x02
// Tunnel Status Field
#define SE_TUNNEL_STATUS_SUCCESS 0x00
#define SE_TUNNEL_STATUS_BUSY 0x01
#define SE_TUNNEL_STATUS_NO_MORE_TUNNEL_IDS 0x02
#define SE_TUNNEL_STATUS_PROTOCOL_NOT_SUPPORTED 0x03
#define SE_TUNNEL_STATUS_FLOW_CONTROL_NOT_SUPPORTED 0x04
// Calendar Type Field
#define SE_CALENDAR_TYPE_IMPORT_CALENDAR 0x00
#define SE_CALENDAR_TYPE_EXPORT_CALENDAR 0x01
#define SE_CALENDAR_TYPE_IMPORT_EXPORT_CALENDAR 0x02
#define SE_CALENDAR_TYPE_FRIENDLY_CREDIT_CALENDAR 0x03
// Calendar Time Reference Field
#define SE_CALENDAR_TIME_REF_STANDARD_TIME 0x00
#define SE_CALENDAR_TIME_REF_LOCAL_TIME 0x01
// Length of TOU Calendar Entries
#define SE_DAY_SCHEDULE_ENTRY_LEN 3
#define SE_SEASON_ENTRY_LEN 5
#define SE_SPECIAL_DAY_ENTRY_LEN 5
// Password Level Field
#define SE_PSWD_LEVEL_PASSWORD_1 0x01
#define SE_PSWD_LEVEL_PASSWORD_2 0x02
#define SE_PSWD_LEVEL_PASSWORD_3 0x03
#define SE_PSWD_LEVEL_PASSWORD_4 0x04
// Password Level Field
#define SE_PROPOSED_SUPLY_STATUS_SUPPLY_OFF_ARMED 0x01
#define SE_PROPOSED_SUPLY_STATUS_SUPPLY_ON 0x02
// Event Configuration Attribute
#define SE_EVENT_CONFIGURATION_DO_NOT_LOG 0x00
#define SE_EVENT_CONFIGURATION_LOG_TEMPER 0x01
#define SE_EVENT_CONFIGURATION_LOG_FAULT 0x02
#define SE_EVENT_CONFIGURATION_LOG_GENERAL_EVENT 0x03
#define SE_EVENT_CONFIGURATION_LOG_LOG_4 0x04
#define SE_EVENT_CONFIGURATION_LOG_LOG_5 0x05
#define SE_EVENT_CONFIGURATION_LOG_LOG_6 0x06
// Device Management Cluster - Proposed Supplier Change Control Bit Mask
#define SE_CHANGE_CTRL_PRE_SNAPSHOTS 0x0001
#define SE_CHANGE_CTRL_POST_SNAPSHOTS 0x0002
#define SE_CHANGE_CTRL_RESET_CREDIT_REGISTER 0x0004
#define SE_CHANGE_CTRL_RESET_DEBT_REGISTER 0x0008
#define SE_CHANGE_CTRL_RESET_BILLING_PERIOD 0x0010
#define SE_CHANGE_CTRL_CLEAR_TARIF_PLAN 0x0020
#define SE_CHANGE_CTRL_CLEAR_STANDING_CHARGE 0x0040
#define SE_CHANGE_CTRL_BLOCK_HIST_LOAD_PROF_INFO 0x0080
#define SE_CHANGE_CTRL_CLEAR_HIST_LOAD_PROF_INFO 0x0100
#define SE_CHANGE_CTRL_CLEAR_IPD_DATA_CONSUMER 0x0200
#define SE_CHANGE_CTRL_CLEAR_IPD_DATA_SUPPLIER 0x0400
#define SE_CHANGE_CTRL_METER_CONN_STATE_ON_OFF_ARM 0x1800
#define SE_CHANGE_CTRL_CLEAR_TRANSACTION_LOG 0x2000
/********************************************************************
* MACROS
*/
/*********************************************************************
* TYPEDEFS
*/
/*** Structures used for callback functions ***/
typedef struct
{
uint8 channel;
uint32 endTime;
uint8 numOfPeriods;
} zclCCGetProfileCmd_t;
typedef struct
{
uint32 endTime;
uint8 status;
uint8 profileIntervalPeriod;
uint8 numOfPeriodDelivered;
uint24 *intervals;
} zclCCGetProfileRsp_t;
typedef struct
{
uint16 endpointId ;
} zclCCReqMirrorRsp_t ;
typedef struct
{
uint16 endpointId ;
} zclCCMirrorRemRsp_t ;
// Fast poll mode req command
typedef struct
{
uint8 fastPollUpdatePeriod; // Desired fast poll period
uint8 duration; // Desired duration for the server to remain in fast poll
} zclCCReqFastPollModeCmd_t;
// Fast poll mode rsp command
typedef struct
{
uint8 appliedUpdatePeriod; // The period at which metering data shall be updated
uint32 fastPollModeEndTime; // Fast poll mode end time in UTC
} zclCCReqFastPollModeRsp_t;
// Get snapshot command
typedef struct
{
uint32 StartTime;
uint8 NumberOfSnapshots;
uint16 SnapshotCause;
} zclCCReqGetSnapshotCmd_t;
typedef struct
{
uint32 IssuerEventID;
uint32 SnapshotTime;
uint8 CommandIndex;
uint16 SnapshotCause;
uint8 SnapshotPayloadType;
uint8 *pSnapshotPayload;
} zclCCReqGetSnapshotRsp_t;
typedef struct
{
uint8 NotificationFlags;
uint16 PriceNotificationFlags;
uint8 CalendarNotificationFlags;
uint16 PrePayNotificationFlags;
uint8 DeviceMgmtNotificationFlags;
} zclCCReqMirrorReportAttrRsp_t;
typedef struct
{
uint8 option;
} zclCCGetCurrentPrice_t;
typedef struct
{
uint32 startTime;
uint8 numEvents;
} zclCCGetScheduledPrice_t;
typedef struct
{
uint32 providerId;
UTF8String_t rateLabel;
uint32 issuerEventId;
uint32 currentTime;
uint8 unitOfMeasure;
uint16 currency;
uint8 priceTrailingDigit;
uint8 numberOfPriceTiers;
uint32 startTime;
uint16 durationInMinutes;
uint32 price;
uint8 priceRatio;
uint32 generationPrice;
uint8 generationPriceRatio;
uint32 alternateCostDelivered; // Alternative measure of the cost of the energy consumed
uint8 alternateCostUnit; // 8-bit enum identifying the unit for Alternate Cost Delivered field
uint8 alternateCostTrailingDigit; // Location of decimal point in alternatecost field
uint8 numberOfBlockThresholds; // Number of block thresholds available
uint8 priceControl; // Additional control options for the price event
} zclCCPublishPrice_t;
typedef struct
{
uint32 providerId; // Unique identifier for the commodity provider
uint32 issuerEventId; // Unique identifier generated by the commodity provider
uint32 priceAckTime; // Time price acknowledgement generated
uint8 control; // Price Control or Block Period Control options for the event
} zclCCPriceAcknowledgement_t;
typedef struct
{
uint32 startTime; // UTC start time
uint8 numEvents; // Maximum number of Publish Block Period commands to be sent
} zclCCGetBlockPeriod_t;
typedef struct
{
uint32 providerId; // Unique identifier for the commodity provider
uint32 issuerEventId; // Unique identifier generated by the commodity provider
uint32 blockPeriodStartTime; // UTC start time
uint24 blockPeriodDurInMins; // Block tariff period duration in minutes
uint8 numPriceTiersAndBlock; // Bitmap for price tiers and block thresholds available
uint8 tariffType; // Tariff type: This field is only used when SE_UK_EXT is enabled
uint8 blockPeriodControl; // Additional control options for the block period event
} zclCCPublishBlockPeriod_t;
typedef struct
{
uint32 supplierId; // Unique identifier for the commodity Supplier
uint32 issuerTariffId; // Unique tariff identifier generated by the commodity Supplier
uint32 startTime; // UTC Time field denoting the time the price signal becomes valid
uint8 tariffType; // Type of tariff published
UTF8String_t tarifLabel; // Label of tariff published
uint8 numPriceTiersInUse; // Number of Price Tiers in Use
uint8 numBlockThresholdsInUse; // Number of Block Thresholds in Use
uint8 unitOfMeasure; // Unit of Measure
uint16 currency; // Currency Used
uint8 priceTrailingDigit; // Price Trailing Digit
uint32 standingCharge; // (optional) Standing Charge (0xFFFFFFFF indicates field not used)
uint8 tierBlockMode; // (optional) Tier Block Mode (0xFF indicates field not used)
uint16 blockThresholdMask; // (optional) Block Threshold Mask (0x0000 indicates field not used)
uint32 BlockThresholdMultiplier; // 24-bit Value to be multiplied against Threshold parameter
uint32 BlockThresholdDivisor; // 24-bit Value to be divided against Threshold parameter
} zclCCPublishTariffInformation_t;
typedef struct
{
uint32 issuerTariffId; // Unique tariff identifier generated by the commodity Supplier
uint8 commandIndex; // Used to count the payload fragments when payload does not fit one message.
uint8 numElements; // Number of elements (N) in the Block Price Information
uint32 *pTierBlockPrice; // Contains N elements of the Block Price Information
} zclCCPublishPriceMatrix_t;
typedef uint8 zclBlockThreshold_t[6];
typedef struct
{
uint32 issuerTariffId; // Unique tariff identifier generated by the commodity Supplier
uint8 commandIndex; // Used to count the payload fragments when payload does not fit one message.
uint8 numElements; // Number of elements (N) in the Block Threshold Information
zclBlockThreshold_t *pTierBlockThreshold; // Contains N elements of the Block Threshold Information
} zclCCPublishBlockThresholds_t;
typedef struct
{
uint32 issuerEventId; // Unique Event identifier generated by the commodity Supplier
uint32 startTime; // UTC Time field denoting the time the factor becomes valid
uint32 conversionFactor;
uint8 trailingDigit;
} zclCCPublishConversionFactor_t;
typedef struct
{
uint32 issuerEventId; // Unique Event identifier generated by the commodity Supplier
uint32 startTime; // UTC Time field denoting the time the value becomes valid
uint32 calorificValue;
uint8 calorificValueUnit;
uint8 trailingDigit;
} zclCCPublishCalorificValue_t;
typedef struct
{
uint32 issuerEventId; // Unique Event identifier generated by the commodity Supplier
uint32 startTime; // UTC Time field denoting the time the value becomes valid
uint8 tariffType;
uint32 CO2Value;
uint8 CO2ValueUnit;
uint8 trailingDigit;
} zclCCPublishCO2Value_t;
typedef struct
{
uint32 issuerEventId; // Unique Event identifier generated by the commodity Supplier
uint32 startTime; // UTC Time field denoting the time the value becomes valid
uint16 durationInMinutes; // Duration of the CPP event in minutes
uint8 tariffType;
uint8 CPPPriceTier;
uint8 CPPAuth;
} zclCCPublishCPPEvent_t;
typedef struct
{
uint32 issuerEventId; // Unique Event identifier generated by the commodity Supplier
uint32 startTime; // UTC Time field denoting the time the value becomes valid
uint32 duration; // 24-bit duration of the billing period (bits 1-21: duration
// bits 22,23: duration units: 00 - minutes, 01 - days, 10 - weeks, 11 - months
uint8 tariffType;
} zclCCPublishBillingPeriod_t;
typedef struct
{
uint32 issuerEventId; // Unique Event identifier generated by the commodity Supplier
uint32 startTime; // UTC Time field denoting the time the value becomes valid
uint32 duration; // 24-bit duration of the billing period (bits 1-21: duration
// bits 22,23: duration units: 00 - minutes, 01 - days, 10 - weeks, 11 - months
uint8 tariffType;
uint32 consolidatedBill;
uint16 currency;
uint8 trailingDigit;
} zclCCPublishConsolidatedBill_t;
typedef struct
{
uint32 issuerEventId; // Unique Event identifier generated by the commodity Supplier
uint32 paymentDueDate; // UTC Time field denoting the payment due date
uint32 creditPaymentOverdueAmt;
uint8 creditPaymentStatus;
uint32 creditPayment;
uint32 creditPaymentDate;
UTF8String_t creditPaymentRef;
} zclCCPublishCreditPaymentInfo_t;
typedef struct
{
uint32 startTime; // UTC Time
uint8 numEvents;
uint8 tariffType; // (optional) Tariff type (0xFF when not in use)
} zclCCGetTariffInformation_t;
typedef struct
{
uint32 startTime; // UTC Time
uint8 numEvents;
} zclCCGetConversionFactor_t;
typedef struct
{
uint32 startTime; // UTC Time
uint8 numEvents;
} zclCCGetCalorificValue_t;
typedef struct
{
uint32 startTime; // UTC Time
uint8 numEvents;
uint8 tariffType; // (optional) Tariff type (0xFF when not in use)
} zclCCGetCO2Value_t;
typedef struct
{
uint32 startTime; // UTC Time
uint8 numEvents;
uint8 tariffType; // (optional) Tariff type (0xFF when not in use)
} zclCCGetBillingPeriod_t;
typedef struct
{
uint32 startTime; // UTC Time
uint8 numEvents;
uint8 tariffType; // (optional) Tariff type (0xFF when not in use)
} zclCCGetConsolidatedBill_t;
typedef struct
{
uint32 issuerEventId;
uint8 CPPAuth;
} zclCCCPPEventResponse_t;
typedef struct
{
uint8 transmissionMode; // valid value 0~2
uint8 importance; // 0~3
uint8 pinRequired; // 0~1 - applicable only to SE UK Extension
uint8 acceptanceRequired; // 0~1 - applicable only to SE UK Extension
uint8 confirmationRequired; // 0~1
} zclMessageCtrl_t;
typedef struct
{
uint32 messageId;
zclMessageCtrl_t messageCtrl;
uint32 startTime;
uint16 durationInMinutes;
UTF8String_t msgString;
} zclCCDisplayMessage_t;
typedef struct
{
uint32 messageId;
zclMessageCtrl_t messageCtrl;
} zclCCCancelMessage_t;
typedef struct
{
uint32 messageId;
uint32 confirmTime;
UTF8String_t msgString; // applicable only to SE UK Extension
} zclCCMessageConfirmation_t;
typedef struct
{
uint32 issuerEvent;
uint24 deviceGroupClass;
uint32 startTime;
uint16 durationInMinutes;
uint8 criticalityLevel;
uint8 coolingTemperatureOffset;
uint8 heatingTemperatureOffset;
uint16 coolingTemperatureSetPoint;
uint16 heatingTemperatureSetPoint;
int8 averageLoadAdjustmentPercentage;
uint8 dutyCycle;
uint8 eventControl;
} zclCCLoadControlEvent_t;
typedef struct
{
uint32 issuerEventID;
uint24 deviceGroupClass;
uint8 cancelControl;
uint32 effectiveTime;
} zclCCCancelLoadControlEvent_t;
typedef struct
{
uint8 cancelControl;
} zclCCCancelAllLoadControlEvents_t;
typedef struct
{
uint32 issuerEventID;
uint32 eventStartTime;
uint8 eventStatus;
uint8 criticalityLevelApplied;
uint16 coolingTemperatureSetPointApplied;
uint16 heatingTemperatureSetPointApplied;
int8 averageLoadAdjustment;
uint8 dutyCycleApplied;
uint8 eventControl;
uint8 signatureType;
uint8 signature[SE_PROFILE_SIGNATURE_LENGTH];
} zclCCReportEventStatus_t;
typedef struct
{
uint32 startTime;
uint8 numEvents;
} zclCCGetScheduledEvent_t;
typedef enum
{
zclSE_SimpleMeter_GetProfileRsp_Status_Success = 0,
zclSE_SimpleMeter_GetProfileRsp_Status_UndefinedInterval,
zclSE_SimpleMeter_GetProfileRsp_Status_IntervalNotSupport,
zclSE_SimpleMeter_GetProfileRsp_Status_InvalidEndTime,
zclSE_SimpleMeter_GetProfileRsp_Status_MorePeriodRequested,
zclSE_SimpleMeter_GetProfileRsp_Status_NotAvailable
} zclSE_SimpleMeter_GetProfileRsp_Status;
typedef struct
{
uint32 commandDateTime; // Date and time at which the selection command was issued
uint8 originatingDevice; // SE device issuing the selection command
UTF8String_t siteId; // Location of the metering device
UTF8String_t meterSerialNumber; // Unique identifier of the metering device
} zclCCSelAvailEmergencyCredit_t;
typedef struct
{
#ifndef SE_UK_EXT // SE 1.1
uint32 providerId; // Unique identifier for the commodity provider
UTF8String_t siteId; // Location of the metering device
UTF8String_t meterSerialNumber; // Unique identifier of the metering device
#else
uint32 supplierId;
uint32 eventId;
UTF8String_t signature;
#endif // SE_UK_EXT
uint32 requestDateTime; // Date and time at which the supply change was requested
uint32 implementationDateTime; // Date at which the supply change is to be applied
uint8 proposedSupplyStatus; // status of the energy supply
uint8 origIdSupplyControlBits; // type of SE device and ack setting
} zclCCChangeSupply_t;
typedef struct
{
#ifndef SE_UK_EXT // SE 1.1
uint32 providerId; // Unique identifier for the commodity provider
#else
uint32 supplierId;
uint32 issuerEventId;
#endif // SE_UK_EXT
uint32 implementationDateTime;
uint8 supplyStatus;
} zclCCSupplyStatusResponse_t;
typedef struct
{
uint32 cmdIssueTime;
UTF8String_t debtLabel;
uint32 debtAmount;
uint8 debtRecoveryMethod;
uint8 debtType;
uint32 recoveryStartTime;
uint16 debtRecoveryCollectionTime;
uint32 debtRecoveryFrequency;
uint32 debtRecoveryAmt;
uint16 debtRecoveryBalancePct;
uint8 debtRecoveryMaxMissed;
UTF8String_t signature;
} zclCCChangeDebt_t;
typedef struct
{
uint32 cmdIssueTime;
uint32 emergencyCreditLimit;
uint32 emergencyCreditThreshold;
} zclCCEmergencyCreditSetup_t;
typedef struct
{
uint8 originatingDevice;
UTF8String_t topupCode;
} zclCCConsumerTopup_t;
typedef struct
{
uint32 cmdIssueTime;
uint8 creditAdjustmentType;
uint8 creditAdjustmentValue[6];
UTF8String_t signature;
} zclCCCreditAdjustment_t;
typedef struct
{
uint32 supplierId;
uint32 modeEventId;
uint32 implementationDate;
uint8 proposedPaymentControl;
uint32 cutOffValue;
UTF8String_t signature;
} zclCCChangePaymentMode_t;
typedef struct
{
uint32 startTime;
uint8 numberOfSnapshots;
uint16 snapshotCause;
} zclCCGetPrepaySnapshot_t;
typedef struct
{
uint8 numberOfDebt;
uint8 debtType;
} zclCCGetDebtRepaymentLog_t;
typedef struct
{
uint32 type1DebtRemaining;
uint32 type2DebtRemaining;
uint32 type3DebtRemaining;
uint32 emergencyCreditRemaining;
uint32 creditRemaining;
} zclCCDebitCreditSnapshotPayload_t;
typedef struct
{
uint32 eventIssuerId;
uint32 snapshotTime;
uint8 commandIndex;
uint16 snapshotCause;
uint8 snapshotPayloadType;
zclCCDebitCreditSnapshotPayload_t payload; // Currently only one payload type is defined
// Switch to a void * or union as more payloads are added
} zclCCGetPrepaySnapshotResponse_t;
typedef struct
{
uint8 friendlyCredit;
uint32 friendlyCreditCalendar;
uint32 emergencyCreditLimit;
uint32 cmergencyCreditThreshold;
} zclCCChangePaymentModeResponse_t;
typedef struct
{
uint8 resultType;
uint32 topupValue;
uint8 sourceofTopup;
uint32 creditRemaining;
} zclCCConsumerTopupResponse_t;
typedef struct
{
uint8 cmdIndex; // Index of the command (n of totalCmds)
uint8 totalCmds; // Total number of commands needed to send log
uint8 numCodes;
UTF8String_t *pPayload; // Array of numCodes strings containing payloads
} zclCCPublishTopupLog_t;
typedef struct
{
uint32 collectionTime;
uint32 amountCollected;
uint8 debtType;
uint32 outstandingDebt;
} zclCCDebtPayload_t;
typedef struct
{
uint8 cmdIndex; // Index of the command (n of totalCmds)
uint8 totalCmds; // Total number of commands needed to send log
uint8 numDebts;
zclCCDebtPayload_t *pPayload; // Array of numCodes strings containing payloads
} zclCCPublishDebtLog_t;
typedef struct
{
uint8 protocolId; // Identifier of the metering communication protocol
uint16 manufacturerCode; // Manufacturer specific Code
bool flowControlSupport; // Boolean parameter to indicate flow control support
uint16 maxInTransferSize; // Maximum data packet size in the payload
} zclCCRequestTunnel_t;
typedef struct
{
uint16 tunnelId; // Unique identifier of the tunnel
uint8 tunnelStatus; // Internal server status after execution of RequestTunnel cmd
uint16 maxInTransferSize; // Maximum data packet size in the payload
} zclCCReqTunnelRsp_t;
typedef struct
{
uint16 tunnelId; // Unique identifier of the tunnel
} zclCCCloseTunnel_t;
typedef struct
{
uint16 tunnelId; // Unique identifier of the tunnel
uint8 *data; // Data to be transfered
} zclCCTransferData_t;
typedef struct
{
uint16 tunnelId; // Unique identifier of the tunnel
uint8 transferDataStatus; // Error indication after last Transfer Data
} zclCCTransferDataError_t;
typedef struct
{
uint16 tunnelId; // Unique identifier of the tunnel
uint16 numberOfBytesLeft; // The remaining size of buffer space
} zclCCAckTransferData_t;
typedef struct
{
uint16 tunnelId; // Unique identifier of the tunnel
uint16 numberOfOctetsLeft; // The remaining size of buffer space
} zclCCReadyData_t;
typedef struct
{
uint8 protocolOffset; // Offset of available protocols
} zclCCGetSuppTunnProt_t;
typedef struct
{
uint16 manufacturerCode; // Manufacturer specific Code
uint8 protocolId; // Identifier of the metering communication protocol
} zclCCProtocolPayload_t;
typedef struct
{
uint8 protocolListComp; // Boolean type to indicate if there are more supported protocols available
uint8 protocolCount; // Number of protocols in response
zclCCProtocolPayload_t protocol[]; // protocol list - this structure should
// be allocated with the appropriate number of protocols.
} zclCCSuppTunnProtRsp_t;
typedef struct
{
uint16 tunnelId; // Unique identifier of the tunnel
} zclCCTunnelClosureNotification_t;
typedef struct
{
uint32 issuerCalendarId;
uint32 startTime;
uint8 calendarType;
uint8 calendarTimeRef;
UTF8String_t calendarName;
uint8 numOfSeasons;
uint8 numOfWeekProfiles;
uint8 numOfDayProfiles;
} zclCCPublishCalendar_t;
typedef struct
{
uint16 startTime;
uint8 activePriceTier;
} zclCCRateEntry_t;
typedef struct
{
uint16 startTime;
uint8 friendCreditEnable;
} zclCCFriendlyCreditEntry_t;
typedef struct
{
uint32 issuerCalendarId;
uint8 dayId;
uint8 totalNumSchedEnt;
uint8 commandIndex;
uint8 numTransferEntries; // Entries transfered in this command, this field is not sent OTA
void *pScheduleEntries; // this could be zclCCRateEntry_t or zclCCFriendlyCreditEntry_t entry
} zclCCPublishDayProfile_t;
typedef struct
{
uint32 issuerCalendarId;
uint8 weekId;
uint8 dayIdRefMonday;
uint8 dayIdRefTuestday;
uint8 dayIdRefWednesday;
uint8 dayIdRefThursday;
uint8 dayIdRefFriday;
uint8 dayIdRefSaturday;
uint8 dayIdRefSunday;
} zclCCPublishWeekProfile_t;
typedef struct
{
uint32 seasonStartDate;
uint8 weekIdRef;
} zclCCSeasonEntry_t;
typedef struct
{
uint32 issuerCalendarId;
uint8 commandIndex;
uint8 numTransferEntries; // Entries transfered in this command, this field is not sent OTA
zclCCSeasonEntry_t *pSeasonEntry;
} zclCCPublishSeasons_t;
typedef struct
{
uint32 specialDayDate;
uint8 dayIdRef;
} zclCCSpecialDayEntry_t;
typedef struct
{
uint32 issuerEventId;
uint32 startTime;
uint8 calendarType;
uint8 totalNumSpecialDays;
uint8 commandIndex;
uint8 numTransferEntries; // Entries transfered in this command, this field is not sent OTA
zclCCSpecialDayEntry_t *pSpecialDayEntry;
} zclCCPublishSpecialDays_t;
typedef struct
{
uint32 startTime;
uint8 numOfCalendars;
uint8 calendarType;
} zclCCGetCalendar_t;
typedef struct
{
uint32 issuerCalendarId;
} zclCCGetDayProfiles_t;
typedef struct
{
uint32 issuerCalendarId;
} zclCCGetWeekProfiles_t;
typedef struct
{
uint32 issuerCalendarId;
} zclCCGetSeasons_t;
typedef struct
{
uint32 startTime;
uint8 numOfEvents;
uint8 calendarType;
} zclCCGetSpecialDays_t;
typedef struct
{
uint8 passwordLevel;
} zclCCGetPassword_t;
typedef struct
{
uint32 supplierId;
uint32 eventId;
uint8 tariffType;
uint32 implementationDateTime;
uint32 propTenencyChangeCtrl;
UTF8String_t signature;
} zclCCPublishChangeTenancy_t;
typedef struct
{
uint32 supplierId;
uint32 eventId;
uint8 tariffType;
uint32 propSupplierId;
uint32 suppIdImplemDateTime;
uint32 supplierChangeCtrl;
UTF8String_t supplierIdName;
UTF8String_t signature;
} zclCCPublishChangeSupplier_t;
typedef struct
{
uint8 passwordLevel;
UTF8String_t password;
} zclCCChangePassword_t;
typedef struct
{
uint8 propSupplyStatus;
} zclCCLocalChangeSupply_t;
// This callback is called to process an incoming Get Profile
// command. On receipt of this command, the device responds with
// Get Profile Response.
typedef void (*zclSE_SimpleMeter_GetProfileCmd_t)( zclCCGetProfileCmd_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Get Profile
// Response.
typedef void (*zclSE_SimpleMeter_GetProfileRsp_t)( zclCCGetProfileRsp_t *pRsp, afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Request Mirror
// command. In receipt of this command, the device finds a mirroring
// endpoint and responds with a Request Mirror Response
typedef void (*zclSE_SimpleMeter_ReqMirrorCmd_t)( afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Request Mirror Response
typedef void (*zclSE_SimpleMeter_ReqMirrorRsp_t)( zclCCReqMirrorRsp_t *pRsp, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Mirror Removed
// command. In receipt of this command, the device removes the
// mirrored data from the metering device and responds with a
// Mirror Removed response.
typedef void (*zclSE_SimpleMeter_MirrorRemCmd_t)( afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Mirror Remove Response
typedef void (*zclSE_SimpleMeter_MirrorRemRsp_t)( zclCCMirrorRemRsp_t *pRsp, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Request Fast Poll Mode Command
typedef void (*zclSE_SimpleMeter_ReqFastPollModeCmd_t)( zclCCReqFastPollModeCmd_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Request Fast Poll Mode Response
typedef void (*zclSE_SimpleMeter_ReqFastPollModeRsp_t)( zclCCReqFastPollModeRsp_t *pRsp, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Get Snapshot Command
typedef void (*zclSE_SimpleMeter_GetSnapshotCmd_t)( zclCCReqGetSnapshotCmd_t *pRsp, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Get Snapshot Response
typedef void (*zclSE_SimpleMeter_GetSnapshotRsp_t)( zclCCReqGetSnapshotRsp_t *pRsp, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Take Snapshot Command
typedef void (*zclSE_SimpleMeter_TakeSnapshotCmd_t)( afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Mirror Report Attribute Response
typedef void (*zclSE_SimpleMeter_MirrorReportAttrRsp_t)( zclCCReqMirrorReportAttrRsp_t *pRsp, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Get Current Price
// command. On receipt of this command, the device responds with
// Publish Price.
typedef void (*zclSE_Pricing_GetCurentPrice_t)( zclCCGetCurrentPrice_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Get Scheduled Price
// command. On receipt of this command, the device responds with
// Publish Price.
typedef void (*zclSE_Pricing_GetScheduledPrice_t)( zclCCGetScheduledPrice_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Publish Price
// command. On receipt of this command, the device responds with
// Price Acknowledgement.
typedef void (*zclSE_Pricing_PublishPrice_t)( zclCCPublishPrice_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Price Acknowledgement
// command.
typedef void (*zclSE_Pricing_PriceAcknowledgement_t)( zclCCPriceAcknowledgement_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Get Block Period
// command. On receipt of this command, the device responds with
// Publish Block Period.
typedef void (*zclSE_Pricing_GetBlockPeriod_t)( zclCCGetBlockPeriod_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Publish Block Period
// command.
typedef void (*zclSE_Pricing_PublishBlockPeriod_t)( zclCCPublishBlockPeriod_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Display Message
// command.
typedef void (*zclSE_Message_DisplayMessage_t)( zclCCDisplayMessage_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Cancel Message
// command.
typedef void (*zclSE_Message_CancelMessage_t)( zclCCCancelMessage_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Get Last Message
// command. On receipt of this command, the device responds with
// Display Message.
typedef void (*zclSE_Message_GetLastMessage_t)( afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Message Confirmation
// command.
typedef void (*zclSE_Message_MessageConfirmation_t)( zclCCMessageConfirmation_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Load Control Event Command
// command.
typedef void (*zclSE_LoadControl_LoadControlEvent_t)( zclCCLoadControlEvent_t *pCmd, afAddrType_t *srcAddr, uint8 status, uint8 seqNum );
// This callback is called to process an incoming Cancel Load Control Event Command
// command.
typedef void (*zclSE_LoadControl_CancelLoadControlEvent_t)( zclCCCancelLoadControlEvent_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum);
// This callback is called to process an incoming Cancel All Load Control Event Command
// command.
typedef void (*zclSE_LoadControl_CancelAllLoadControlEvents_t)( zclCCCancelAllLoadControlEvents_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Report Event Status Command
// command.
typedef void (*zclSE_LoadControl_ReportEventStatus_t)( zclCCReportEventStatus_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum);
// This callback is called to process an incoming Get Scheduled Event Command
// command.
typedef void (*zclSE_LoadControl_GetScheduledEvent_t)( zclCCGetScheduledEvent_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum);
// This callback is called to process an incoming Select Available Emergency Credit Command
typedef void (*zclSE_Prepayment_SelAvailEmergencyCredit_t)( zclCCSelAvailEmergencyCredit_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Change Supply Command
typedef void (*zclSE_Prepayment_ChangeSupply_t)( zclCCChangeSupply_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Supply Status Response Command
typedef void (*zclSE_Prepayment_SupplyStatusResponse_t)( zclCCSupplyStatusResponse_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Publish Tariff Info
typedef void (*zclSE_Pricing_PublishTariffInformation_t)( zclCCPublishTariffInformation_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Publish Price Matrix
typedef void (*zclSE_Pricing_PublishPriceMatrix_t)( zclCCPublishPriceMatrix_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Publish Block Thresholds
typedef void (*zclSE_Pricing_PublishBlockThresholds_t)( zclCCPublishBlockThresholds_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Publish Conversion Factor
typedef void (*zclSE_Pricing_PublishConversionFactor_t)( zclCCPublishConversionFactor_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Publish Calorific Value
typedef void (*zclSE_Pricing_PublishCalorificValue_t)( zclCCPublishCalorificValue_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Publish CO2 Value
typedef void (*zclSE_Pricing_PublishCO2Value_t)( zclCCPublishCO2Value_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Publish CPP Event
typedef void (*zclSE_Pricing_PublishCPPEvent_t)( zclCCPublishCPPEvent_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Publish Billing Period
typedef void (*zclSE_Pricing_PublishBillingPeriod_t)( zclCCPublishBillingPeriod_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Publish Consolidated Bill
typedef void (*zclSE_Pricing_PublishConsolidatedBill_t)( zclCCPublishConsolidatedBill_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Publish Credit Payment Info
typedef void (*zclSE_Pricing_PublishCreditPaymentInfo_t)( zclCCPublishCreditPaymentInfo_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Get Tariff Information
typedef void (*zclSE_Pricing_GetTariffInformation_t)( zclCCGetTariffInformation_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Get Price Matrix
typedef void (*zclSE_Pricing_GetPriceMatrix_t)( uint32 issuerTariffId, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Get Block Thresholds
typedef void (*zclSE_Pricing_GetBlockThresholds_t)( uint32 issuerTariffId, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Get Conversion Factor
typedef void (*zclSE_Pricing_GetConversionFactor_t)( zclCCGetConversionFactor_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Get Calorific Value
typedef void (*zclSE_Pricing_GetCalorificValue_t)( zclCCGetCalorificValue_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Get CO2 Value
typedef void (*zclSE_Pricing_GetCO2Value_t)( zclCCGetCO2Value_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Get Billing Period
typedef void (*zclSE_Pricing_GetBillingPeriod_t)( zclCCGetBillingPeriod_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Get Consolidated Bill
typedef void (*zclSE_Pricing_GetConsolidatedBill_t)( zclCCGetConsolidatedBill_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming CPP Event Response
typedef void (*zclSE_Pricing_CPPEventResponse_t)( zclCCCPPEventResponse_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Change Debt
typedef void (*zclSE_Prepayment_ChangeDebt_t)( zclCCChangeDebt_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Emergency Credit Setup
typedef void (*zclSE_Prepayment_EmergencyCreditSetup_t)( zclCCEmergencyCreditSetup_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Consumer Topup
typedef void (*zclSE_Prepayment_ConsumerTopup_t)( zclCCConsumerTopup_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Credit Adjustment
typedef void (*zclSE_Prepayment_CreditAdjustment_t)( zclCCCreditAdjustment_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Change Paymet Mode
typedef void (*zclSE_Prepayment_ChangePaymentMode_t)( zclCCChangePaymentMode_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Get Prepay Snapshot
typedef void (*zclSE_Prepayment_GetPrepaySnapshot_t)( zclCCGetPrepaySnapshot_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Get Topup Log
typedef void (*zclSE_Prepayment_GetTopupLog_t)( uint8 numEvents, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Set Low Credit Warning Level
typedef void (*zclSE_Prepayment_SetLowCreditWarningLevel_t)( uint8 numEvents, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Get Debt Repayment Log
typedef void (*zclSE_Prepayment_GetDebtRepaymentLog_t)( zclCCGetDebtRepaymentLog_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Get Prepay Snapshot Response
typedef void (*zclSE_Prepayment_GetPrepaySnapshotResponse_t)( zclCCGetPrepaySnapshotResponse_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Change Payment Mode Response
typedef void (*zclSE_Prepayment_ChangePaymentModeResponse_t)( zclCCChangePaymentModeResponse_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Consumer Topup Response
typedef void (*zclSE_Prepayment_ConsumerTopupResponse_t)( zclCCConsumerTopupResponse_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Get Commands
typedef void (*zclSE_Prepayment_GetCommands_t)( uint8 prepayNotificationFlags, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Publish Topup Log
typedef void (*zclSE_Prepayment_PublishTopupLog_t)( zclCCPublishTopupLog_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Publish Debt Log
typedef void (*zclSE_Prepayment_PublishDebtLog_t)( zclCCPublishDebtLog_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum ) ;
// This callback is called to process an incoming Request Tunnel Command
typedef void (*zclSE_Tunneling_RequestTunnel_t) ( zclCCRequestTunnel_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Request Tunnel Response Command
typedef void (*zclSE_Tunneling_ReqTunnelRsp_t)( zclCCReqTunnelRsp_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Close Tunnel Command
typedef void (*zclSE_Tunneling_CloseTunnel_t) ( zclCCCloseTunnel_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Transfer Data Command
typedef void (*zclSE_Tunneling_TransferData_t) ( zclCCTransferData_t *pCmd, afAddrType_t *srcAddr, uint8 cmdId, uint16 dataLen, uint8 seqNum );
// This callback is called to process an incoming Transfer Data Error Command
typedef void (*zclSE_Tunneling_TransferDataError_t) ( zclCCTransferDataError_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Ack Transfer Data Command
typedef void (*zclSE_Tunneling_AckTransferData_t) ( zclCCAckTransferData_t *pCmd, afAddrType_t *srcAddr, uint8 cmdId, uint8 seqNum );
// This callback is called to process an incoming Ready Data Command
typedef void (*zclSE_Tunneling_ReadyData_t) ( zclCCReadyData_t *pCmd, afAddrType_t *srcAddr, uint8 cmdId, uint8 seqNum );
// This callback is called to process an incoming Get Supported Tunnel Protocols Command
typedef void (*zclSE_Tunneling_GetSuppTunnelProt_t) ( zclCCGetSuppTunnProt_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Supported Tunnel Protocols Response Command
typedef void (*zclSE_Tunneling_SuppTunnelProtRsp_t) ( zclCCSuppTunnProtRsp_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Supported Tunnel Closure Notification Command
typedef void (*zclSE_Tunneling_TunnelClosureNotification_t) ( zclCCTunnelClosureNotification_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Publish Calendar Command
typedef void (*zclSE_TOU_PublishCalendar_t) ( zclCCPublishCalendar_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Publish Day Profile Command
typedef void (*zclSE_TOU_PublishDayProfile_t) ( zclCCPublishDayProfile_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Publish Week Profile Command
typedef void (*zclSE_TOU_PublishWeekProfile_t) ( zclCCPublishWeekProfile_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Publish Seasons Command
typedef void (*zclSE_TOU_PublishSeasons_t) ( zclCCPublishSeasons_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Publish Special Days Command
typedef void (*zclSE_TOU_PublishSpecialDays_t) ( zclCCPublishSpecialDays_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Get Calendar Command
typedef void (*zclSE_TOU_GetCalendar_t) ( zclCCGetCalendar_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Get Day Profiles Command
typedef void (*zclSE_TOU_GetDayProfile_t) ( zclCCGetDayProfiles_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Get Week Profile Command
typedef void (*zclSE_TOU_GetWeekProfiles_t) ( zclCCGetWeekProfiles_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Get Seasons Command
typedef void (*zclSE_TOU_GetSeasons_t) ( zclCCGetSeasons_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Get Special Days Command
typedef void (*zclSE_TOU_GetSpecialDays_t) ( zclCCGetSpecialDays_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Get Change of Tenancy Command
typedef void (*zclSE_DeviceMgmt_GetChangeTenancy_t) ( afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Get Change of Supplier Command
typedef void (*zclSE_DeviceMgmt_GetChangeSupplier_t) ( afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Get Change Supply Command
typedef void (*zclSE_DeviceMgmt_GetChangeSupply_t) ( afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Supply Status Response Command
typedef void (*zclSE_DeviceMgmt_SupplyStatusResponse_t) ( zclCCSupplyStatusResponse_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Get Password Command
typedef void (*zclSE_DeviceMgmt_GetPassword_t) ( zclCCGetPassword_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Publish Change of Tenancy Command
typedef void (*zclSE_DeviceMgmt_PublishChangeTenancy_t) ( zclCCPublishChangeTenancy_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Publish Change of Supplier Command
typedef void (*zclSE_DeviceMgmt_PublishChangeSupplier_t) ( zclCCPublishChangeSupplier_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Change Supply Command
typedef void (*zclSE_DeviceMgmt_ChangeSupply_t) ( zclCCChangeSupply_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Change Password Command
typedef void (*zclSE_DeviceMgmt_ChangePassword_t) ( zclCCChangePassword_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum );
// This callback is called to process an incoming Local Change Supply Command
typedef void (*zclSE_DeviceMgmt_LocalChangeSupply_t) ( zclCCLocalChangeSupply_t *pCmd, afAddrType_t *srcAddr, uint8 seqNum );
// Register Callbacks table entry - enter function pointers for callbacks that
// the application would like to receive
typedef struct
{
zclSE_Pricing_PublishPrice_t pfnPricing_PublishPrice;
zclSE_Pricing_PublishBlockPeriod_t pfnPricing_PublishBlockPeriod;
#ifdef SE_UK_EXT
zclSE_Pricing_PublishTariffInformation_t pfnPricing_PublishTariffInformation;
zclSE_Pricing_PublishPriceMatrix_t pfnPricing_PublishPriceMatrix;
zclSE_Pricing_PublishBlockThresholds_t pfnPricing_PublishBlockThresholds;
zclSE_Pricing_PublishConversionFactor_t pfnPricing_PublishConversionFactor;
zclSE_Pricing_PublishCalorificValue_t pfnPricing_PublishCalorificValue;
zclSE_Pricing_PublishCO2Value_t pfnPricing_PublishCO2Value;
zclSE_Pricing_PublishCPPEvent_t pfnPricing_PublishCPPEvent;
zclSE_Pricing_PublishBillingPeriod_t pfnPricing_PublishBillingPeriod;
zclSE_Pricing_PublishConsolidatedBill_t pfnPricing_PublishConsolidatedBill;
zclSE_Pricing_PublishCreditPaymentInfo_t pfnPricing_PublishCreditPaymentInfo;
#endif // SE_UK_EXT
zclSE_Pricing_GetCurentPrice_t pfnPricing_GetCurrentPrice;
zclSE_Pricing_GetScheduledPrice_t pfnPricing_GetScheduledPrice;
zclSE_Pricing_PriceAcknowledgement_t pfnPricing_PriceAcknowledgement;
zclSE_Pricing_GetBlockPeriod_t pfnPricing_GetBlockPeriod;
#ifdef SE_UK_EXT
zclSE_Pricing_GetTariffInformation_t pfnPricing_GetTariffInformation;
zclSE_Pricing_GetPriceMatrix_t pfnPricing_GetPriceMatrix;
zclSE_Pricing_GetBlockThresholds_t pfnPricing_GetBlockThresholds;
zclSE_Pricing_GetConversionFactor_t pfnPricing_GetConversionFactor;
zclSE_Pricing_GetCalorificValue_t pfnPricing_GetCalorificValue;
zclSE_Pricing_GetCO2Value_t pfnPricing_GetCO2Value;
zclSE_Pricing_GetBillingPeriod_t pfnPricing_GetBillingPeriod;
zclSE_Pricing_GetConsolidatedBill_t pfnPricing_GetConsolidatedBill;
zclSE_Pricing_CPPEventResponse_t pfnPricing_CPPEventResponse;
#endif // SE_UK_EXT
zclSE_LoadControl_LoadControlEvent_t pfnLoadControl_LoadControlEvent;
zclSE_LoadControl_CancelLoadControlEvent_t pfnLoadControl_CancelLoadControlEvent;
zclSE_LoadControl_CancelAllLoadControlEvents_t pfnLoadControl_CancelAllLoadControlEvents;
zclSE_LoadControl_ReportEventStatus_t pfnLoadControl_ReportEventStatus;
zclSE_LoadControl_GetScheduledEvent_t pfnLoadControl_GetScheduledEvents;
zclSE_SimpleMeter_GetProfileRsp_t pfnSimpleMeter_GetProfileRsp;
zclSE_SimpleMeter_ReqMirrorCmd_t pfnSimpleMeter_ReqMirrorCmd;
zclSE_SimpleMeter_MirrorRemCmd_t pfnSimpleMeter_MirrorRemCmd;
zclSE_SimpleMeter_ReqFastPollModeRsp_t pfnSimpleMeter_ReqFastPollModeRsp;
#ifdef SE_UK_EXT
zclSE_SimpleMeter_GetSnapshotRsp_t pfnSimpleMeter_GetSnapshotRsp;
#endif // SE_UK_EXT
zclSE_SimpleMeter_GetProfileCmd_t pfnSimpleMeter_GetProfileCmd;
zclSE_SimpleMeter_ReqMirrorRsp_t pfnSimpleMeter_ReqMirrorRsp;
zclSE_SimpleMeter_MirrorRemRsp_t pfnSimpleMeter_MirrorRemRsp;
zclSE_SimpleMeter_ReqFastPollModeCmd_t pfnSimpleMeter_ReqFastPollModeCmd;
#ifdef SE_UK_EXT
zclSE_SimpleMeter_GetSnapshotCmd_t pfnSimpleMeter_GetSnapshotCmd;
zclSE_SimpleMeter_TakeSnapshotCmd_t pfnSimpleMeter_TakeSnapshotCmd;
zclSE_SimpleMeter_MirrorReportAttrRsp_t pfnSimpleMeter_MirrorReportAttrRsp;
#endif // SE_UK_EXT
zclSE_Message_DisplayMessage_t pfnMessage_DisplayMessage;
zclSE_Message_CancelMessage_t pfnMessage_CancelMessage;
zclSE_Message_GetLastMessage_t pfnMessage_GetLastMessage;
zclSE_Message_MessageConfirmation_t pfnMessage_MessageConfirmation;
zclSE_Tunneling_ReqTunnelRsp_t pfnTunneling_ReqTunnelRsp;
zclSE_Tunneling_TransferData_t pfnTunneling_TransferData;
zclSE_Tunneling_TransferDataError_t pfnTunneling_TransferDataError;
zclSE_Tunneling_AckTransferData_t pfnTunneling_AckTransferData;
zclSE_Tunneling_ReadyData_t pfnTunneling_ReadyData;
#ifdef SE_UK_EXT
zclSE_Tunneling_SuppTunnelProtRsp_t pfnTunneling_SuppTunnelProtRsp;
zclSE_Tunneling_TunnelClosureNotification_t pfnTunneling_TunnelClosureNotification;
#endif // SE_UK_EXT
zclSE_Tunneling_RequestTunnel_t pfnTunneling_RequestTunnel;
zclSE_Tunneling_CloseTunnel_t pfnTunneling_CloseTunnel;
#ifdef SE_UK_EXT
zclSE_Tunneling_GetSuppTunnelProt_t pfnTunneling_GetSuppTunnelProt;
#endif // SE_UK_EXT
zclSE_Prepayment_SupplyStatusResponse_t pfnPrepayment_SupplyStatusResponse;
#ifdef SE_UK_EXT
zclSE_Prepayment_GetPrepaySnapshotResponse_t pfnPrepayment_GetPrepaySnapshotResponse;
zclSE_Prepayment_ChangePaymentModeResponse_t pfnPrepayment_ChangePaymentModeResponse;
zclSE_Prepayment_ConsumerTopupResponse_t pfnPrepayment_ConsumerTopupResponse;
zclSE_Prepayment_GetCommands_t pfnPrepayment_GetCommands;
zclSE_Prepayment_PublishTopupLog_t pfnPrepayment_PublishTopupLog;
zclSE_Prepayment_PublishDebtLog_t pfnPrepayment_PublishDebtLog;
#endif // SE_UK_EXT
zclSE_Prepayment_SelAvailEmergencyCredit_t pfnPrepayment_SelAvailEmergencyCredit;
zclSE_Prepayment_ChangeSupply_t pfnPrepayment_ChangeSupply;
#ifdef SE_UK_EXT
zclSE_Prepayment_ChangeDebt_t pfnPrepayment_ChangeDebt;
zclSE_Prepayment_EmergencyCreditSetup_t pfnPrepayment_EmergencyCreditSetup;
zclSE_Prepayment_ConsumerTopup_t pfnPrepayment_ConsumerTopup;
zclSE_Prepayment_CreditAdjustment_t pfnPrepayment_CreditAdjustment;
zclSE_Prepayment_ChangePaymentMode_t pfnPrepayment_ChangePaymentMode;
zclSE_Prepayment_GetPrepaySnapshot_t pfnPrepayment_GetPrepaySnapshot;
zclSE_Prepayment_GetTopupLog_t pfnPrepayment_GetTopupLog;
zclSE_Prepayment_SetLowCreditWarningLevel_t pfnPrepayment_SetLowCreditWarningLevel;
zclSE_Prepayment_GetDebtRepaymentLog_t pfnPrepayment_GetDebtRepaymentLog;
zclSE_TOU_PublishCalendar_t pfnTou_PublishCalendar;
zclSE_TOU_PublishDayProfile_t pfnTou_PublishDayProfile;
zclSE_TOU_PublishWeekProfile_t pfnTou_PublishWeekProfile;
zclSE_TOU_PublishSeasons_t pfnTou_PublishSeasons;
zclSE_TOU_PublishSpecialDays_t pfnTou_PublishSpecialDays;
zclSE_TOU_GetCalendar_t pfnTou_GetCalendar;
zclSE_TOU_GetDayProfile_t pfnTou_GetDayProfiles;
zclSE_TOU_GetWeekProfiles_t pfnTou_GetWeekProfiles;
zclSE_TOU_GetSeasons_t pfnTou_GetSeasons;
zclSE_TOU_GetSpecialDays_t pfnTou_GetSpecialDays;
zclSE_DeviceMgmt_PublishChangeTenancy_t pfnDeviceMgmt_PublishChangeTenancy;
zclSE_DeviceMgmt_PublishChangeSupplier_t pfnDeviceMgmt_PublishChangeSupplier;
zclSE_DeviceMgmt_ChangeSupply_t pfnDeviceMgmt_ChangeSupply;
zclSE_DeviceMgmt_ChangePassword_t pfnDeviceMgmt_ChangePassword;
zclSE_DeviceMgmt_LocalChangeSupply_t pfnDeviceMgmt_LocalChangeSupply;
zclSE_DeviceMgmt_GetChangeTenancy_t pfnDeviceMgmt_GetChangeTenancy;
zclSE_DeviceMgmt_GetChangeSupplier_t pfnDeviceMgmt_GetChangeSupplier;
zclSE_DeviceMgmt_GetChangeSupply_t pfnDeviceMgmt_GetChangeSupply;
zclSE_DeviceMgmt_SupplyStatusResponse_t pfnDeviceMgmt_SupplyStatusResponse;
zclSE_DeviceMgmt_GetPassword_t pfnDeviceMgmt_GetPassword;
#endif // SE_UK_EXT
} zclSE_AppCallbacks_t;
/*********************************************************************
* VARIABLES
*/
/*********************************************************************
* FUNCTIONS
*/
/*
* Register for callbacks from this cluster library
*/
extern ZStatus_t zclSE_RegisterCmdCallbacks( uint8 endpoint, zclSE_AppCallbacks_t *callbacks );
#ifdef ZCL_SIMPLE_METERING
/*
* Send Get Profile Command
*/
extern ZStatus_t zclSE_SimpleMetering_Send_GetProfileCmd( uint8 srcEP, afAddrType_t *dstAddr,
uint8 channel, uint32 endTime, uint8 numOfPeriods,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Get Profile Response
*/
extern ZStatus_t zclSE_SimpleMetering_Send_GetProfileRsp( uint8 srcEP, afAddrType_t *dstAddr,
uint32 endTime, uint8 rspStatus, uint8 profileIntervalPeriod,
uint8 numOfPeriodDelivered, uint24 *intervals,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Request Mirror Response
*/
extern ZStatus_t zclSE_SimpleMetering_Send_ReqMirrorRsp( uint8 srcEP, afAddrType_t *dstAddr,
uint16 endpointId,
uint8 disableDefaultRsp, uint8 seqNum ) ;
/*
* Send Remove Mirror Response
*/
extern ZStatus_t zclSE_SimpleMetering_Send_RemMirrorRsp( uint8 srcEP, afAddrType_t *dstAddr,
uint16 endpointId,
uint8 disableDefaultRsp, uint8 seqNum ) ;
/*
* Send Request Fast Poll Mode Command
*/
extern ZStatus_t zclSE_SimpleMetering_Send_ReqFastPollModeCmd( uint8 srcEP, afAddrType_t *dstAddr,
zclCCReqFastPollModeCmd_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum ) ;
/*
* Send Request Fast Poll Mode Response
*/
extern ZStatus_t zclSE_SimpleMetering_Send_ReqFastPollModeRsp( uint8 srcEP, afAddrType_t *dstAddr,
zclCCReqFastPollModeRsp_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum ) ;
#ifdef SE_UK_EXT
/*
* Send Get Snapshot Command
*/
extern ZStatus_t zclSE_SimpleMetering_Send_GetSnapshotCmd( uint8 srcEP, afAddrType_t *dstAddr,
zclCCReqGetSnapshotCmd_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Get Snapshot Response
*/
extern ZStatus_t zclSE_SimpleMetering_Send_GetSnapshotRsp( uint8 srcEP, afAddrType_t *dstAddr,
zclCCReqGetSnapshotRsp_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Take Snapshot Command
*/
extern ZStatus_t zclSE_SimpleMetering_Send_TakeSnapshot( uint8 srcEP, afAddrType_t *dstAddr,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Mirror Report Attribute Response
*/
extern ZStatus_t zclSE_SimpleMetering_Send_MirrorReportAttrRsp( uint8 srcEP, afAddrType_t *dstAddr,
zclCCReqMirrorReportAttrRsp_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
#endif // SE_UK_EXT
#endif // ZCL_SIMPLE_METERING
#ifdef ZCL_PRICING
/*
* Send Publish Price Command
*/
extern ZStatus_t zclSE_Pricing_Send_PublishPrice( uint8 srcEP, afAddrType_t *dstAddr,
zclCCPublishPrice_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
extern ZStatus_t zclSE_Pricing_Send_GetScheduledPrice( uint8 srcEP, afAddrType_t *dstAddr,
zclCCGetScheduledPrice_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Publish Acknowledgement Command
*/
extern ZStatus_t zclSE_Pricing_Send_PriceAcknowledgement( uint8 srcEP, afAddrType_t *dstAddr,
zclCCPriceAcknowledgement_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Get Block Period Command
*/
extern ZStatus_t zclSE_Pricing_Send_GetBlockPeriod( uint8 srcEP, afAddrType_t *dstAddr,
zclCCGetBlockPeriod_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Publish Block Period Command
*/
extern ZStatus_t zclSE_Pricing_Send_PublishBlockPeriod( uint8 srcEP, afAddrType_t *dstAddr,
zclCCPublishBlockPeriod_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
#ifdef SE_UK_EXT
/*
* Send Publish Tariff Information Command
*/
extern ZStatus_t zclSE_Pricing_Send_PublishTariffInformation( uint8 srcEP, afAddrType_t *dstAddr,
zclCCPublishTariffInformation_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Publish Price Matrix Command
*/
extern ZStatus_t zclSE_Pricing_Send_PublishPriceMatrix( uint8 srcEP, afAddrType_t *dstAddr,
zclCCPublishPriceMatrix_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Publish Block Thresholds Command
*/
extern ZStatus_t zclSE_Pricing_Send_PublishBlockThresholds( uint8 srcEP, afAddrType_t *dstAddr,
zclCCPublishBlockThresholds_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Publish Conversion Factor Command
*/
extern ZStatus_t zclSE_Pricing_Send_PublishConversionFactor( uint8 srcEP, afAddrType_t *dstAddr,
zclCCPublishConversionFactor_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Publish Calorific Value Command
*/
extern ZStatus_t zclSE_Pricing_Send_PublishCalorificValue( uint8 srcEP, afAddrType_t *dstAddr,
zclCCPublishCalorificValue_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Publish CO2 Value Command
*/
extern ZStatus_t zclSE_Pricing_Send_PublishCO2Value( uint8 srcEP, afAddrType_t *dstAddr,
zclCCPublishCO2Value_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Publish CPP Event Command
*/
extern ZStatus_t zclSE_Pricing_Send_PublishCPPEvent( uint8 srcEP, afAddrType_t *dstAddr,
zclCCPublishCPPEvent_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Publish Billing Period Command
*/
extern ZStatus_t zclSE_Pricing_Send_PublishBillingPeriod( uint8 srcEP, afAddrType_t *dstAddr,
zclCCPublishBillingPeriod_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Publish Consolidated Bill Command
*/
extern ZStatus_t zclSE_Pricing_Send_PublishConsolidatedBill( uint8 srcEP, afAddrType_t *dstAddr,
zclCCPublishConsolidatedBill_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Publish Credit Payment Info Command
*/
extern ZStatus_t zclSE_Pricing_Send_PublishCreditPaymentInfo( uint8 srcEP, afAddrType_t *dstAddr,
zclCCPublishCreditPaymentInfo_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Get Tariff Information Command
*/
extern ZStatus_t zclSE_Pricing_Send_GetTariffInformation( uint8 srcEP, afAddrType_t *dstAddr,
zclCCGetTariffInformation_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Get Price Matrix Command
*/
extern ZStatus_t zclSE_Pricing_Send_GetPriceMatrix( uint8 srcEP, afAddrType_t *dstAddr,
uint32 issuerId,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Get Block Thresholds Command
*/
extern ZStatus_t zclSE_Pricing_Send_GetBlockThresholds( uint8 srcEP, afAddrType_t *dstAddr,
uint32 issuerId,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Get Conversion Factor Command
*/
extern ZStatus_t zclSE_Pricing_Send_GetConversionFactor( uint8 srcEP, afAddrType_t *dstAddr,
zclCCGetConversionFactor_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Get Calorific Value Command
*/
extern ZStatus_t zclSE_Pricing_Send_GetCalorificValue( uint8 srcEP, afAddrType_t *dstAddr,
zclCCGetCalorificValue_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Get CO2 Value Command
*/
extern ZStatus_t zclSE_Pricing_Send_GetCO2Value( uint8 srcEP, afAddrType_t *dstAddr,
zclCCGetCO2Value_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Get Billing Period Command
*/
extern ZStatus_t zclSE_Pricing_Send_GetBillingPeriod( uint8 srcEP, afAddrType_t *dstAddr,
zclCCGetBillingPeriod_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Get Consolidated Bill Command
*/
extern ZStatus_t zclSE_Pricing_Send_GetConsolidatedBill( uint8 srcEP, afAddrType_t *dstAddr,
zclCCGetConsolidatedBill_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send CPP Event Response Command
*/
extern ZStatus_t zclSE_Pricing_Send_CPPEventResponse( uint8 srcEP, afAddrType_t *dstAddr,
zclCCCPPEventResponse_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
#endif // SE_UK_EXT
#endif // ZCL_PRICING
#ifdef ZCL_MESSAGE
/*
* Send Display Message Command
*/
extern ZStatus_t zclSE_Message_Send_DisplayMessage( uint8 srcEP, afAddrType_t *dstAddr,
zclCCDisplayMessage_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Cancel Message Command
*/
extern ZStatus_t zclSE_Message_Send_CancelMessage( uint8 srcEP, afAddrType_t *dstAddr,
zclCCCancelMessage_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Message Confirmation
*/
extern ZStatus_t zclSE_Message_Send_MessageConfirmation( uint8 srcEP, afAddrType_t *dstAddr,
zclCCMessageConfirmation_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
#endif // ZCL_MESSAGE
#ifdef ZCL_LOAD_CONTROL
/*
* Send Load Control Event
*/
extern ZStatus_t zclSE_LoadControl_Send_LoadControlEvent( uint8 srcEP, afAddrType_t *dstAddr,
zclCCLoadControlEvent_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Cancel Load Control Event
*/
extern ZStatus_t zclSE_LoadControl_Send_CancelLoadControlEvent( uint8 srcEP, afAddrType_t *dstAddr,
zclCCCancelLoadControlEvent_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Report Event Status
*/
extern ZStatus_t zclSE_LoadControl_Send_ReportEventStatus( uint8 srcEP, afAddrType_t *dstAddr,
zclCCReportEventStatus_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Get Scheduled Event
*/
extern ZStatus_t zclSE_LoadControl_Send_GetScheduledEvent( uint8 srcEP, afAddrType_t *dstAddr,
zclCCGetScheduledEvent_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
#endif // ZCL_LOAD_CONTROL
#ifdef ZCL_PREPAYMENT
/*
* Send Select Available Emergency Credit Command
*/
extern ZStatus_t zclSE_Prepayment_Send_SelAvailEmergencyCredit( uint8 srcEP, afAddrType_t *dstAddr,
zclCCSelAvailEmergencyCredit_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
#ifndef SE_UK_EXT
/*
* Send Change Supply Command
*/
extern ZStatus_t zclSE_Prepayment_Send_ChangeSupply( uint8 srcEP, afAddrType_t *dstAddr,
zclCCChangeSupply_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Supply Status Response Command
*/
extern ZStatus_t zclSE_Prepayment_Send_SupplyStatusResponse( uint8 srcEP, afAddrType_t *dstAddr,
zclCCSupplyStatusResponse_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
#else // SE_UK_EXT
/*
* Send Change Debt
*/
extern ZStatus_t zclSE_Prepayment_Send_ChangeDebt( uint8 srcEP, afAddrType_t *dstAddr,
zclCCChangeDebt_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Emergency Credit Setup
*/
extern ZStatus_t zclSE_Prepayment_Send_EmergencyCreditSetup( uint8 srcEP, afAddrType_t *dstAddr,
zclCCEmergencyCreditSetup_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Consumer Topup
*/
extern ZStatus_t zclSE_Prepayment_Send_ConsumerTopup( uint8 srcEP, afAddrType_t *dstAddr,
zclCCConsumerTopup_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Credit Adjustment
*/
extern ZStatus_t zclSE_Prepayment_Send_CreditAdjustment( uint8 srcEP, afAddrType_t *dstAddr,
zclCCCreditAdjustment_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Change Payment Mode
*/
extern ZStatus_t zclSE_Prepayment_Send_ChangePaymentMode( uint8 srcEP, afAddrType_t *dstAddr,
zclCCChangePaymentMode_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Prepay Snapshot
*/
extern ZStatus_t zclSE_Prepayment_Send_GetPrepaySnapshot( uint8 srcEP, afAddrType_t *dstAddr,
zclCCGetPrepaySnapshot_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Get Topup Log
*/
extern ZStatus_t zclSE_Prepayment_Send_GetTopupLog( uint8 srcEP, afAddrType_t *dstAddr,
uint8 numEvents, uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Set Low Credit Warning Level
*/
extern ZStatus_t zclSE_Prepayment_Send_SetLowCreditWarningLevel( uint8 srcEP, afAddrType_t *dstAddr,
uint8 warningLevel, uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Get Debt Repayment Log
*/
extern ZStatus_t zclSE_Prepayment_Send_GetDebtRepaymentLog( uint8 srcEP, afAddrType_t *dstAddr,
zclCCGetDebtRepaymentLog_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Get Prepay Snapshot Response
*/
extern ZStatus_t zclSE_Prepayment_Send_GetPrepaySnapshotResponse( uint8 srcEP, afAddrType_t *dstAddr,
zclCCGetPrepaySnapshotResponse_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Change Payment Mode Response
*/
extern ZStatus_t zclSE_Prepayment_Send_ChangePaymentModeResponse( uint8 srcEP, afAddrType_t *dstAddr,
zclCCChangePaymentModeResponse_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Consumer Topup Response
*/
extern ZStatus_t zclSE_Prepayment_Send_ConsumerTopupResponse( uint8 srcEP, afAddrType_t *dstAddr,
zclCCConsumerTopupResponse_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Get Commands
*/
extern ZStatus_t zclSE_Prepayment_Send_GetCommands( uint8 srcEP, afAddrType_t *dstAddr,
uint8 notificationFlags, uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Publish Topup Log
*/
extern ZStatus_t zclSE_Prepayment_Send_PublishTopupLog( uint8 srcEP, afAddrType_t *dstAddr,
zclCCPublishTopupLog_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Publish Debt Log
*/
extern ZStatus_t zclSE_Prepayment_Send_PublishDebtLog( uint8 srcEP, afAddrType_t *dstAddr,
zclCCPublishDebtLog_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
#endif // SE_UK_EXT
#endif // ZCL_PREPAYMENT
#ifdef ZCL_TUNNELING
/*
* Send Request Tunnel
*/
extern ZStatus_t zclSE_Tunneling_Send_RequestTunnel( uint8 srcEP, afAddrType_t *dstAddr,
zclCCRequestTunnel_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Tunnel Response
*/
extern ZStatus_t zclSE_Tunneling_Send_ReqTunnelRsp( uint8 srcEP, afAddrType_t *dstAddr,
zclCCReqTunnelRsp_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Close Tunnel event
*/
extern ZStatus_t zclSE_Tunneling_Send_CloseTunnel( uint8 srcEP, afAddrType_t *dstAddr,
zclCCCloseTunnel_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Transfer Data
*/
extern ZStatus_t zclSE_Tunneling_Send_TransferData( uint8 srcEP, afAddrType_t *dstAddr,
zclCCTransferData_t *pCmd, uint8 cmdId,
uint16 dataLen, uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Transfer Data Error
*/
extern ZStatus_t zclSE_Tunneling_Send_TransferDataError( uint8 srcEP, afAddrType_t *dstAddr,
zclCCTransferDataError_t *pCmd, uint8 cmdId,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Data Transfer Acknowledgment
*/
extern ZStatus_t zclSE_Tunneling_Send_AckTransferData( uint8 srcEP, afAddrType_t *dstAddr,
zclCCAckTransferData_t *pCmd, uint8 cmdId,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Ready Data Transfer
*/
extern ZStatus_t zclSE_Tunneling_Send_ReadyData( uint8 srcEP, afAddrType_t *dstAddr,
zclCCReadyData_t *pCmd, uint8 cmdId,
uint8 disableDefaultRsp, uint8 seqNum );
#ifdef SE_UK_EXT
/*
* Send Get Supported Tunnel Protocol
*/
extern ZStatus_t zclSE_Tunneling_Send_GetSuppTunnelProt( uint8 srcEP, afAddrType_t *dstAddr,
zclCCGetSuppTunnProt_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Supported Tunnel Protocol Response
*/
extern ZStatus_t zclSE_Tunneling_Send_SuppTunnelProtRsp( uint8 srcEP, afAddrType_t *dstAddr,
zclCCSuppTunnProtRsp_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Tunnel Closure Notification Command
*/
extern ZStatus_t zclSE_Tunneling_Send_TunnelClosureNotification( uint8 srcEP, afAddrType_t *dstAddr,
zclCCTunnelClosureNotification_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
#endif // SE_UK_EXT
#endif // ZCL_TUNNELING
#ifdef ZCL_TOU
#ifdef SE_UK_EXT
/*
* Send Publish Calendar Command
*/
extern ZStatus_t zclSE_Tou_Send_PublishCalendar( uint8 srcEP, afAddrType_t *dstAddr,
zclCCPublishCalendar_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Publish Day Profile Command
*/
extern ZStatus_t zclSE_Tou_Send_PublishDayProfile( uint8 srcEP, afAddrType_t *dstAddr,
zclCCPublishDayProfile_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Publish Week Profile Command
*/
extern ZStatus_t zclSE_Tou_Send_PublishWeekProfile( uint8 srcEP, afAddrType_t *dstAddr,
zclCCPublishWeekProfile_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Publish Seasons Command
*/
extern ZStatus_t zclSE_Tou_Send_PublishSeasons( uint8 srcEP, afAddrType_t *dstAddr,
zclCCPublishSeasons_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Publish Special Days Command
*/
extern ZStatus_t zclSE_Tou_Send_PublishSpecialDays( uint8 srcEP, afAddrType_t *dstAddr,
zclCCPublishSpecialDays_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Get Calendar Command
*/
extern ZStatus_t zclSE_Tou_Send_GetCalendar( uint8 srcEP, afAddrType_t *dstAddr,
zclCCGetCalendar_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Get Day Profiles Command
*/
extern ZStatus_t zclSE_Tou_Send_GetDayProfiles( uint8 srcEP, afAddrType_t *dstAddr,
zclCCGetDayProfiles_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Get Week Profile Command
*/
extern ZStatus_t zclSE_Tou_Send_GetWeekProfiles( uint8 srcEP, afAddrType_t *dstAddr,
zclCCGetWeekProfiles_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Get Seasons Command
*/
extern ZStatus_t zclSE_Tou_Send_GetSeasons( uint8 srcEP, afAddrType_t *dstAddr,
zclCCGetSeasons_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Get Special Days Command
*/
extern ZStatus_t zclSE_Tou_Send_GetSpecialDays( uint8 srcEP, afAddrType_t *dstAddr,
zclCCGetSpecialDays_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
#endif // SE_UK_EXT
#endif // ZCL_TOU
#ifdef ZCL_DEVICE_MGMT
#ifdef SE_UK_EXT
/*
* Send Get Change of Tenancy Command
*/
extern ZStatus_t zclSE_DeviceMgmt_Send_GetChangeTenancy( uint8 srcEP, afAddrType_t *dstAddr,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Get Change of Supplier Command
*/
extern ZStatus_t zclSE_DeviceMgmt_Send_GetChangeSupplier( uint8 srcEP, afAddrType_t *dstAddr,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Get Change Supply Command
*/
extern ZStatus_t zclSE_DeviceMgmt_Send_GetChangeSupply( uint8 srcEP, afAddrType_t *dstAddr,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Supply Status Response Command
*/
extern ZStatus_t zclSE_DeviceMgmt_Send_SupplyStatusResponse( uint8 srcEP, afAddrType_t *dstAddr,
zclCCSupplyStatusResponse_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Get Password Command
*/
extern ZStatus_t zclSE_DeviceMgmt_Send_GetPassword( uint8 srcEP, afAddrType_t *dstAddr,
zclCCGetPassword_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Publish Change of Tenancy Command
*/
extern ZStatus_t zclSE_DeviceMgmt_Send_PublishChangeTenancy( uint8 srcEP, afAddrType_t *dstAddr,
zclCCPublishChangeTenancy_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Publish Change of Supplier Command
*/
extern ZStatus_t zclSE_DeviceMgmt_Send_PublishChangeSupplier( uint8 srcEP, afAddrType_t *dstAddr,
zclCCPublishChangeSupplier_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Change Supply Command
*/
extern ZStatus_t zclSE_DeviceMgmt_Send_ChangeSupply( uint8 srcEP, afAddrType_t *dstAddr,
zclCCChangeSupply_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Change Password Command
*/
extern ZStatus_t zclSE_DeviceMgmt_Send_ChangePassword( uint8 srcEP, afAddrType_t *dstAddr,
zclCCChangePassword_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Local Change Supply Command
*/
extern ZStatus_t zclSE_DeviceMgmt_Send_LocalChangeSupply( uint8 srcEP, afAddrType_t *dstAddr,
zclCCLocalChangeSupply_t *pCmd,
uint8 disableDefaultRsp, uint8 seqNum );
#endif // SE_UK_EXT
#endif // ZCL_DEVICE_MGMT
#ifdef ZCL_PRICING
/*
* Parse received Publish Price Command
*/
extern ZStatus_t zclSE_ParseInCmd_PublishPrice( zclCCPublishPrice_t *pCmd, uint8 *buf, uint8 len );
/*
* Parse received Publish Block Period Command
*/
extern void zclSE_ParseInCmd_PublishBlockPeriod( zclCCPublishBlockPeriod_t *pCmd,
uint8 *buf, uint8 len );
#ifdef SE_UK_EXT
/*
* Parse received Publish Tariff Infomation
*/
extern void zclSE_ParseInCmd_PublishTariffInformation( zclCCPublishTariffInformation_t *pCmd,
uint8 *buf, uint8 len );
/*
* Parse received Publish Price Matrix
*/
extern ZStatus_t zclSE_ParseInCmd_PublishPriceMatrix( zclCCPublishPriceMatrix_t *pCmd,
uint8 *buf, uint8 len );
/*
* Parse received Publish Block Thresholds
*/
extern ZStatus_t zclSE_ParseInCmd_PublishBlockThresholds( zclCCPublishBlockThresholds_t *pCmd,
uint8 *buf, uint8 len );
/*
* Parse received Publish Conversion Factor
*/
extern void zclSE_ParseInCmd_PublishConversionFactor( zclCCPublishConversionFactor_t *pCmd,
uint8 *buf, uint8 len );
/*
* Parse received Publish Calorific Value
*/
extern void zclSE_ParseInCmd_PublishCalorificValue( zclCCPublishCalorificValue_t *pCmd,
uint8 *buf, uint8 len );
/*
* Parse received Publish CO2 Value
*/
extern void zclSE_ParseInCmd_PublishCO2Value( zclCCPublishCO2Value_t *pCmd,
uint8 *buf, uint8 len );
/*
* Parse received Publish CPP Event
*/
extern void zclSE_ParseInCmd_PublishCPPEvent( zclCCPublishCPPEvent_t *pCmd,
uint8 *buf, uint8 len );
/*
* Parse received Publish Billing Period
*/
extern void zclSE_ParseInCmd_PublishBillingPeriod( zclCCPublishBillingPeriod_t *pCmd,
uint8 *buf, uint8 len );
/*
* Parse received Publish Consolidated Bill
*/
extern void zclSE_ParseInCmd_PublishConsolidatedBill( zclCCPublishConsolidatedBill_t *pCmd,
uint8 *buf, uint8 len );
/*
* Parse received Publish Credit PaymentInfo
*/
extern void zclSE_ParseInCmd_PublishCreditPaymentInfo( zclCCPublishCreditPaymentInfo_t *pCmd,
uint8 *buf, uint8 len );
/*
* Parse received Get Tariff Information
*/
extern void zclSE_ParseInCmd_GetTariffInformation( zclCCGetTariffInformation_t *pCmd,
uint8 *buf, uint8 len );
/*
* Parse received Get Conversion Factor
*/
extern void zclSE_ParseInCmd_GetConversionFactor( zclCCGetConversionFactor_t *pCmd,
uint8 *buf, uint8 len );
/*
* Parse received Get Calorific Value
*/
extern void zclSE_ParseInCmd_GetCalorificValue( zclCCGetCalorificValue_t *pCmd,
uint8 *buf, uint8 len );
/*
* Parse received Get CO2 Value
*/
extern void zclSE_ParseInCmd_GetCO2Value( zclCCGetCO2Value_t *pCmd,
uint8 *buf, uint8 len );
/*
* Parse received Get Billing Period
*/
extern void zclSE_ParseInCmd_GetBillingPeriod( zclCCGetBillingPeriod_t *pCmd,
uint8 *buf, uint8 len );
/*
* Parse received Get Consolidated Bill
*/
extern void zclSE_ParseInCmd_GetConsolidatedBill( zclCCGetConsolidatedBill_t *pCmd,
uint8 *buf, uint8 len );
/*
* Parse received CPP Event Response
*/
extern void zclSE_ParseInCmd_CPPEventResponse( zclCCCPPEventResponse_t *pCmd,
uint8 *buf, uint8 len );
#endif // SE_UK_EXT
#endif // ZCL_PRICING
#ifdef ZCL_MESSAGE
/*
* Parse received Display Message Command
*/
extern ZStatus_t zclSE_ParseInCmd_DisplayMessage( zclCCDisplayMessage_t *pCmd,
uint8 *buf, uint8 len );
/*
* Parse received Cancel Message Command
*/
extern void zclSE_ParseInCmd_CancelMessage( zclCCCancelMessage_t *pCmd,
uint8 *buf, uint8 len );
/*
* Parse received Message Confirmation Command
*/
extern void zclSE_ParseInCmd_MessageConfirmation( zclCCMessageConfirmation_t *pCmd,
uint8 *buf, uint8 len );
#endif // ZCL_MESSAGE
#ifdef ZCL_LOAD_CONTROL
/*
* Parse received Load Control Event
*/
extern void zclSE_ParseInCmd_LoadControlEvent( zclCCLoadControlEvent_t *pCmd,
uint8 *buf, uint8 len );
/*
* Parse received Cancel Load Control Event
*/
extern void zclSE_ParseInCmd_CancelLoadControlEvent( zclCCCancelLoadControlEvent_t *pCmd,
uint8 *buf, uint8 len );
/*
* Parse received Report Event Status
*/
extern void zclSE_ParseInCmd_ReportEventStatus( zclCCReportEventStatus_t *pCmd,
uint8 *buf, uint8 len );
#endif // ZCL_LOAD_CONTROL
#ifdef ZCL_PREPAYMENT
/*
* Parse received Select Available Emergency Credit Command
*/
extern void zclSE_ParseInCmd_SelAvailEmergencyCredit( zclCCSelAvailEmergencyCredit_t *pCmd,
uint8 *buf, uint8 len );
#ifndef SE_UK_EXT // this is SE 1.1 command definition
/*
* Parse received Select Change Supply Command
*/
extern void zclSE_ParseInCmd_ChangeSupply( zclCCChangeSupply_t *pCmd,
uint8 *buf, uint8 len );
#else
/*
* Parse received Change Debt Command
*/
extern void zclSE_ParseInCmd_ChangeDebt( zclCCChangeDebt_t *pCmd,
uint8 *buf, uint8 len );
/*
* Parse received Emergency Credit Setup
*/
extern void zclSE_ParseInCmd_EmergencyCreditSetup( zclCCEmergencyCreditSetup_t *pCmd,
uint8 *buf, uint8 len );
/*
* Parse received Consumer Topup
*/
extern void zclSE_ParseInCmd_ConsumerTopup( zclCCConsumerTopup_t *pCmd,
uint8 *buf, uint8 len );
/*
* Parse received Credit Adjustment
*/
extern void zclSE_ParseInCmd_CreditAdjustment( zclCCCreditAdjustment_t *pCmd,
uint8 *buf, uint8 len );
/*
* Parse received Change Payment Mode
*/
extern void zclSE_ParseInCmd_ChangePaymentMode( zclCCChangePaymentMode_t *pCmd,
uint8 *buf, uint8 len );
/*
* Parse received Get Prepay Snapshot
*/
extern void zclSE_ParseInCmd_GetPrepaySnapshot( zclCCGetPrepaySnapshot_t *pCmd,
uint8 *buf, uint8 len );
/*
* Parse received Get Debt Repayment Log
*/
extern void zclSE_ParseInCmd_GetDebtRepaymentLog( zclCCGetDebtRepaymentLog_t *pCmd,
uint8 *buf, uint8 len );
/*
* Parse received Get Prepay Snapshot Response
*/
extern void zclSE_ParseInCmd_GetPrepaySnapshotResponse( zclCCGetPrepaySnapshotResponse_t *pCmd,
uint8 *buf, uint8 len );
/*
* Parse received Change Payment Mode Response
*/
extern void zclSE_ParseInCmd_ChangePaymentModeResponse( zclCCChangePaymentModeResponse_t *pCmd,
uint8 *buf, uint8 len );
/*
* Parse received Consumer Topup Response
*/
extern void zclSE_ParseInCmd_ConsumerTopupResponse( zclCCConsumerTopupResponse_t *pCmd,
uint8 *buf, uint8 len );
/*
* Parse received Publish Topup Log
*/
extern ZStatus_t zclSE_ParseInCmd_PublishTopupLog( zclCCPublishTopupLog_t *pCmd,
uint8 *buf, uint8 len );
/*
* Parse received Publish Debt Log
*/
extern ZStatus_t zclSE_ParseInCmd_PublishDebtLog( zclCCPublishDebtLog_t *pCmd,
uint8 *buf, uint8 len );
#endif // SE_UK_EXT
#endif // ZCL_PREPAYMENT
#ifdef ZCL_TUNNELING
/*
* Parse received Transfer Data Command
*/
extern void zclSE_ParseInCmd_TransferData( zclCCTransferData_t *pCmd,
uint8 *buf, uint8 len );
#endif // ZCL_TUNNELING
#ifdef ZCL_TOU
#ifdef SE_UK_EXT
/*
* Parse received Publish Calendar Command
*/
extern void zclSE_ParseInCmd_PublishCalendar( zclCCPublishCalendar_t *pCmd,
uint8 *buf, uint8 len );
/*
* Parse received Publish Day Profile Command
*/
extern ZStatus_t zclSE_ParseInCmd_PublishDayProfile( zclCCPublishDayProfile_t *pCmd,
uint8 *buf, uint8 len );
/*
* Parse received Publish Seasons Command
*/
extern ZStatus_t zclSE_ParseInCmd_PublishSeasons( zclCCPublishSeasons_t *pCmd,
uint8 *buf, uint8 len );
/*
* Parse received Publish Special Days Command
*/
extern ZStatus_t zclSE_ParseInCmd_PublishSpecialDays( zclCCPublishSpecialDays_t *pCmd,
uint8 *buf, uint8 len );
#endif // SE_UK_EXT
#endif // ZCL_TOU
#ifdef ZCL_DEVICE_MGMT
#ifdef SE_UK_EXT
/*
* Parse received Publish Change of Tenancy Command
*/
extern void zclSE_ParseInCmd_PublishChangeTenancy( zclCCPublishChangeTenancy_t *pCmd,
uint8 *buf, uint8 len );
/*
* Parse received Publish Change of Supplier Command
*/
extern void zclSE_ParseInCmd_PublishChangeSupplier( zclCCPublishChangeSupplier_t *pCmd,
uint8 *buf, uint8 len );
/*
* Parse received Change Supply Command
*/
extern void zclSE_ParseInCmd_ChangeSupply( zclCCChangeSupply_t *pCmd,
uint8 *buf, uint8 len );
/*
* Parse received Change Password Command
*/
extern void zclSE_ParseInCmd_ChangePassword( zclCCChangePassword_t *pCmd,
uint8 *buf, uint8 len );
#endif // SE_UK_EXT
#endif // ZCL_DEVICE_MGMT
/*********************************************************************
* FUNCTION MACROS
*/
#ifdef ZCL_PRICING
/*********************************************************************
* @fn zclSE_Pricing_Send_GetCurrentPrice
*
* @brief Call to send out a Get Current Price Command
*
* Use as
* ZStatus_t zclSE_Pricing_Send_GetCurrentPrice( uint8 srcEP, afAddrType_t *dstAddr,
* uint8 option,
* uint8 disableDefaultRsp, uint8 seqNum )
*
* @param srcEP - Sending application's endpoint
* @param dstAddr - where you want the message to go
* @param option - Command option field
* @param disableDefaultRsp - disable default response
* @param seqNum - ZCL sequence number
*
* @return ZStatus_t
*/
#define zclSE_Pricing_Send_GetCurrentPrice(a, b, c, d, e) \
zcl_SendCommand( (a), (b), ZCL_CLUSTER_ID_SE_PRICING, \
COMMAND_SE_GET_CURRENT_PRICE, TRUE, \
ZCL_FRAME_CLIENT_SERVER_DIR, (d), 0, (e), 1, &(c) );
#endif // ZCL_PRICING
#ifdef ZCL_SIMPLE_METERING
/*********************************************************************
* @fn zclSE_SimpleMetering_Send_ReqMirrorCmd
*
* @brief Call to send out a Request Mirror Command
*
* @param srcEP - Sending application's endpoint
* @param dstAddr - where you want the message to go
* @param disableDefaultRsp - disable default response
* @param seqNum - ZCL sequence number
*
* @return ZStatus_t
*/
#define zclSE_SimpleMetering_Send_ReqMirrorCmd(a, b, c, d) \
zcl_SendCommand( (a), (b), ZCL_CLUSTER_ID_SE_SIMPLE_METERING, \
COMMAND_SE_REQ_MIRROR_CMD, TRUE, \
ZCL_FRAME_SERVER_CLIENT_DIR, (c), 0, (d), 0, NULL );
/*********************************************************************
* @fn zclSE_SimpleMetering_Send_RemMirrorCmd
*
* @brief Call to send out a Remove Mirror Command
*
* @param srcEP - Sending application's endpoint
* @param dstAddr - where you want the message to go
* @param disableDefaultRsp - disable default response
* @param seqNum - ZCL sequence number
*
* @return ZStatus_t
*/
#define zclSE_SimpleMetering_Send_RemMirrorCmd(a, b, c, d) \
zcl_SendCommand( (a), (b), ZCL_CLUSTER_ID_SE_SIMPLE_METERING, \
COMMAND_SE_MIRROR_REM_CMD, TRUE, \
ZCL_FRAME_SERVER_CLIENT_DIR, (c), 0, (d), 0, NULL );
#endif // ZCL_SIMPLE_METERING
#ifdef ZCL_MESSAGE
/*********************************************************************
* @fn zclSE_Message_Send_GetLastMessage
*
* @brief Call to send out a Get Last Message
*
* Use as
* ZStatus_t zclSE_Message_Send_GetLastMessage( uint8 srcEP, afAddrType_t *dstAddr,
* uint8 disableDefaultRsp, uint8 seqNum )
*
* @param srcEP - Sending application's endpoint
* @param dstAddr - where you want the message to go
* @param disableDefaultRsp - disable default response
* @param seqNum - ZCL sequence number
*
* @return ZStatus_t
*/
#define zclSE_Message_Send_GetLastMessage(a, b, c, d) \
zcl_SendCommand( (a), (b), ZCL_CLUSTER_ID_SE_MESSAGE, \
COMMAND_SE_GET_LAST_MESSAGE, TRUE, \
ZCL_FRAME_CLIENT_SERVER_DIR, (c), 0, (d), 0, NULL );
#endif // ZCL_MESSAGE
#ifdef ZCL_LOAD_CONTROL
/*********************************************************************
* @fn zclSE_LoadControl_Send_CancelAllLoadControlEvent
*
* @brief Call to send out a Cancel All Load Control Event
*
* Use as
* ZStatus_t zclSE_LoadControl_Send_CancelAllLoadControlEvent( uint8 srcEP, afAddrType_t *dstAddr,
* uint8 cancelControl,
* uint8 disableDefaultRsp, uint8 seqNum )
*
* @param srcEP - Sending application's endpoint
* @param dstAddr - where you want the message to go
* @param cancelControl
* @param disableDefaultRsp - disable default response
* @param seqNum - ZCL sequence number
*
* @return ZStatus_t
*/
#define zclSE_LoadControl_Send_CancelAllLoadControlEvent(a, b, c, d, e) \
zcl_SendCommand( (a), (b), ZCL_CLUSTER_ID_SE_LOAD_CONTROL, \
COMMAND_SE_CANCEL_ALL_LOAD_CONTROL_EVENT, TRUE, \
ZCL_FRAME_SERVER_CLIENT_DIR, (d), 0, (e), 1, &(c) );
#endif // ZCL_LOAD_CONTROL
#ifdef __cplusplus
}
#endif
#endif /* ZCL_SE_H */