Files
OldPeopleHome/zigbee/ZStack-CC2530-r200/Components/stack/zcl/zcl_se.h
LitterDryFish 0657e3a6a9 组网
2019-08-23 09:32:51 +08:00

1783 lines
112 KiB
C

/**************************************************************************************************
Filename: zcl_SE.h
Revised: $Date: 2011-07-13 11:41:07 -0700 (Wed, 13 Jul 2011) $
Revision: $Revision: 26769 $
Description: This file contains the ZCL SE (Smart Energy) Profile definitions.
Copyright 2007-2011 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 “AS IS” 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
// 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 )
// 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 Cluslter - 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 )
// 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 )
// Simple Metering 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 Cluster - Load Profile Configuration Attributes 0x05
#define ATTRID_SE_MAX_NUMBER_OF_PERIODS_DELIVERED ( 0x0000 | ATTRID_MASK_SE_LOAD_PROFILE_CONFIGURATION )
// Simple Metering 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 )
// Simple Metering 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 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 )
// 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
// 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 )
// Prepayment 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 )
#define ATTRID_MASK_SE_SUPPLY_CONTROL_SET ( 0x0300 )
// 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 )
// 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_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_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_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_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 )
// 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 )
// 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 )
/************************************************************/
/*** 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
// 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_PUBLISH_PRICE 0x0000
#define COMMAND_SE_PUBLISH_BLOCK_PERIOD 0x0001
// 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
#define COMMAND_SE_CHANGE_SUPPLY 0x0001
#define COMMAND_SE_SUPPLY_STATUS_RESPONSE 0x0000
/******************************************************************/
/*** 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
#define PACKET_LEN_SE_PUBLISH_BLOCK_PERIOD 17
#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
#define PACKET_LEN_SE_CHANGE_SUPPLY 16
#define PACKET_LEN_SE_SUPPLY_STATUS_RESPONSE 9
// 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
// 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_MSGCTRL_IMPORTANCE 2
#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
/********************************************************************
* 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;
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 blockPeriodControl; // Additional control options for the block period event
} zclCCPublishBlockPeriod_t;
typedef struct
{
uint8 transmissionMode; // valid value 0~2
uint8 importance; // 0~3
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;
} 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
{
uint32 providerId; // Unique identifier for the commodity provider
uint32 requestDateTime; // Date and time at which the supply change was requested
UTF8String_t siteId; // Location of the metering device
UTF8String_t meterSerialNumber; // Unique identifier of the metering device
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
{
uint32 providerId; // Unique identifier for the commodity provider
uint32 implementationDateTime; // Date at which the supply change is to be applied
uint8 supplyStatus; // Status of the energy supply
} zclCCSupplyStatusResponse_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 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 ) ;
// Register Callbacks table entry - enter function pointers for callbacks that
// the application would like to receive
typedef struct
{
zclSE_SimpleMeter_GetProfileCmd_t pfnSimpleMeter_GetProfileCmd;
zclSE_SimpleMeter_GetProfileRsp_t pfnSimpleMeter_GetProfileRsp;
zclSE_SimpleMeter_ReqMirrorCmd_t pfnSimpleMeter_ReqMirrorCmd;
zclSE_SimpleMeter_ReqMirrorRsp_t pfnSimpleMeter_ReqMirrorRsp;
zclSE_SimpleMeter_MirrorRemCmd_t pfnSimpleMeter_MirrorRemCmd;
zclSE_SimpleMeter_MirrorRemRsp_t pfnSimpleMeter_MirrorRemRsp;
zclSE_Pricing_GetCurentPrice_t pfnPricing_GetCurrentPrice;
zclSE_Pricing_GetScheduledPrice_t pfnPricing_GetScheduledPrice;
zclSE_Pricing_PublishPrice_t pfnPricing_PublishPrice;
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_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_ReqFastPollModeCmd_t pfnSimpleMeter_ReqFastPollModeCmd;
zclSE_SimpleMeter_ReqFastPollModeRsp_t pfnSimpleMeter_ReqFastPollModeRsp;
zclSE_Pricing_PriceAcknowledgement_t pfnPricing_PriceAcknowledgement;
zclSE_Pricing_GetBlockPeriod_t pfnPricing_GetBlockPeriod;
zclSE_Pricing_PublishBlockPeriod_t pfnPricing_PublishBlockPeriod;
zclSE_Prepayment_SelAvailEmergencyCredit_t pfnPrepayment_SelAvailEmergencyCredit;
zclSE_Prepayment_ChangeSupply_t pfnPrepayment_ChangeSupply;
zclSE_Prepayment_SupplyStatusResponse_t pfnPrepayment_SupplyStatusResponse;
} 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 *cmd,
uint8 disableDefaultRsp, uint8 seqNum ) ;
/*
* Send Request Fast Poll Mode Response
*/
extern ZStatus_t zclSE_SimpleMetering_Send_ReqFastPollModeRsp( uint8 srcEP, afAddrType_t *dstAddr,
zclCCReqFastPollModeRsp_t *cmd,
uint8 disableDefaultRsp, uint8 seqNum ) ;
#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 *cmd,
uint8 disableDefaultRsp, uint8 seqNum );
extern ZStatus_t zclSE_Pricing_Send_GetScheduledPrice( uint8 srcEP, afAddrType_t *dstAddr,
zclCCGetScheduledPrice_t *cmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Publish Acknowledgement Command
*/
extern ZStatus_t zclSE_Pricing_Send_PriceAcknowledgement( uint8 srcEP, afAddrType_t *dstAddr,
zclCCPriceAcknowledgement_t *cmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Get Block Period Command
*/
extern ZStatus_t zclSE_Pricing_Send_GetBlockPeriod( uint8 srcEP, afAddrType_t *dstAddr,
zclCCGetBlockPeriod_t *cmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Publish Block Period Command
*/
extern ZStatus_t zclSE_Pricing_Send_PublishBlockPeriod( uint8 srcEP, afAddrType_t *dstAddr,
zclCCPublishBlockPeriod_t *cmd,
uint8 disableDefaultRsp, uint8 seqNum );
#endif // ZCL_PRICING
#ifdef ZCL_MESSAGE
/*
* Send Display Message Command
*/
extern ZStatus_t zclSE_Message_Send_DisplayMessage( uint8 srcEP, afAddrType_t *dstAddr,
zclCCDisplayMessage_t *cmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Cancel Message Command
*/
extern ZStatus_t zclSE_Message_Send_CancelMessage( uint8 srcEP, afAddrType_t *dstAddr,
uint32 msgId, uint8 msgCtrl,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Message Confirmation
*/
extern ZStatus_t zclSE_Message_Send_MessageConfirmation( uint8 srcEP, afAddrType_t *dstAddr,
uint32 msgId, uint32 confirmTime,
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* cmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Cancel Load Control Event
*/
extern ZStatus_t zclSE_LoadControl_Send_CancelLoadControlEvent( uint8 srcEP, afAddrType_t *dstAddr,
zclCCCancelLoadControlEvent_t *cmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Report Event Status
*/
extern ZStatus_t zclSE_LoadControl_Send_ReportEventStatus( uint8 srcEP, afAddrType_t *dstAddr,
zclCCReportEventStatus_t* cmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Get Scheduled Event
*/
extern ZStatus_t zclSE_LoadControl_Send_GetScheduledEvent( uint8 srcEP, afAddrType_t *dstAddr,
zclCCGetScheduledEvent_t *cmd,
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 *cmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Change Supply Command
*/
extern ZStatus_t zclSE_Prepayment_Send_ChangeSupply( uint8 srcEP, afAddrType_t *dstAddr,
zclCCChangeSupply_t *cmd,
uint8 disableDefaultRsp, uint8 seqNum );
/*
* Send Supply Status Response Command
*/
extern ZStatus_t zclSE_Prepayment_Send_SupplyStatusResponse( uint8 srcEP, afAddrType_t *dstAddr,
zclCCSupplyStatusResponse_t *cmd,
uint8 disableDefaultRsp, uint8 seqNum );
#endif // ZCL_PREPAYMENT
#ifdef ZCL_PRICING
/*
* Parse received Publish Price Command
*/
extern ZStatus_t zclSE_ParseInCmd_PublishPrice( zclCCPublishPrice_t *cmd, uint8 *buf, uint8 len );
/*
* Parse received Publish Block Period Command
*/
extern ZStatus_t zclSE_ParseInCmd_PublishBlockPeriod( zclCCPublishBlockPeriod_t *cmd,
uint8 *buf, uint8 len );
#endif // ZCL_PRICING
#ifdef ZCL_MESSAGE
/*
* Parse received Display Message Command
*/
extern ZStatus_t zclSE_ParseInCmd_DisplayMessage( zclCCDisplayMessage_t *cmd, uint8 *buf, uint8 len );
#endif // ZCL_MESSAGE
#ifdef ZCL_LOAD_CONTROL
/*
* Parse received Load Control Event
*/
extern void zclSE_ParseInCmd_LoadControlEvent( zclCCLoadControlEvent_t *cmd, uint8 *buf, uint8 len );
/*
* Parse received Cancel Load Control Event
*/
extern void zclSE_ParseInCmd_CancelLoadControlEvent( zclCCCancelLoadControlEvent_t *cmd, uint8 *buf, uint8 len );
/*
* Parse received Report Event Status
*/
extern void zclSE_ParseInCmd_ReportEventStatus( zclCCReportEventStatus_t *cmd, uint8 *buf, uint8 len );
#endif // ZCL_LOAD_CONTROL
#ifdef ZCL_PREPAYMENT
/*
* Parse received Select Available Emergency Credit Command
*/
extern ZStatus_t zclSE_ParseInCmd_SelAvailEmergencyCredit( zclCCSelAvailEmergencyCredit_t *cmd,
uint8 *buf, uint8 len );
/*
* Parse received Select Change Supply Command
*/
extern ZStatus_t zclSE_ParseInCmd_ChangeSupply( zclCCChangeSupply_t *cmd, uint8 *buf, uint8 len );
#endif // ZCL_PREPAYMENT
/*********************************************************************
* FUNCTION MACROS
*/
#ifdef ZCL_PRICING
/*********************************************************************
* 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
/*********************************************************************
* 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
/*********************************************************************
* 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 */