/**
 *
 *    Copyright (c) 2020 Project CHIP Authors
 *
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 *    Unless required by applicable law or agreed to in writing, software
 *    distributed under the License is distributed on an "AS IS" BASIS,
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *    See the License for the specific language governing permissions and
 *    limitations under the License.
 */

/**
 *
 *    Copyright (c) 2020 Silicon Labs
 *
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 *    Unless required by applicable law or agreed to in writing, software
 *    distributed under the License is distributed on an "AS IS" BASIS,
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *    See the License for the specific language governing permissions and
 *    limitations under the License.
 */
// This file is generated by Simplicity Studio.  Please do not edit manually.
//
//

// This is the test header, that enables all printing
// Enclosing macro to prevent multiple inclusion

#pragma once

#define EMBER_AF_PRINT_ENABLE
#define EMBER_AF_PRINT_BASIC_CLUSTER 0x0001
#define EMBER_AF_PRINT_POWER_CONFIG_CLUSTER 0x0002
#define EMBER_AF_PRINT_DEVICE_TEMP_CLUSTER 0x0004
#define EMBER_AF_PRINT_IDENTIFY_CLUSTER 0x0008
#define EMBER_AF_PRINT_GROUPS_CLUSTER 0x0010
#define EMBER_AF_PRINT_SCENES_CLUSTER 0x0020
#define EMBER_AF_PRINT_ON_OFF_CLUSTER 0x0040
#define EMBER_AF_PRINT_ON_OFF_SWITCH_CONFIG_CLUSTER 0x0080
#define EMBER_AF_PRINT_LEVEL_CONTROL_CLUSTER 0x0101
#define EMBER_AF_PRINT_ALARM_CLUSTER 0x0102
#define EMBER_AF_PRINT_TIME_CLUSTER 0x0104
#define EMBER_AF_PRINT_RSSI_LOCATION_CLUSTER 0x0108
#define EMBER_AF_PRINT_BINARY_INPUT_BASIC_CLUSTER 0x0110
#define EMBER_AF_PRINT_COMMISSIONING_CLUSTER 0x0120
#define EMBER_AF_PRINT_PARTITION_CLUSTER 0x0140
#define EMBER_AF_PRINT_OTA_BOOTLOAD_CLUSTER 0x0180
#define EMBER_AF_PRINT_POWER_PROFILE_CLUSTER 0x0201
#define EMBER_AF_PRINT_APPLIANCE_CONTROL_CLUSTER 0x0202
#define EMBER_AF_PRINT_POLL_CONTROL_CLUSTER 0x0204
#define EMBER_AF_PRINT_GREEN_POWER_CLUSTER 0x0208
#define EMBER_AF_PRINT_KEEPALIVE_CLUSTER 0x0210
#define EMBER_AF_PRINT_SHADE_CONFIG_CLUSTER 0x0220
#define EMBER_AF_PRINT_DOOR_LOCK_CLUSTER 0x0240
#define EMBER_AF_PRINT_WINDOW_COVERING_CLUSTER 0x0280
#define EMBER_AF_PRINT_BARRIER_CONTROL_CLUSTER 0x0301
#define EMBER_AF_PRINT_PUMP_CONFIG_CONTROL_CLUSTER 0x0302
#define EMBER_AF_PRINT_THERMOSTAT_CLUSTER 0x0304
#define EMBER_AF_PRINT_FAN_CONTROL_CLUSTER 0x0308
#define EMBER_AF_PRINT_DEHUMID_CONTROL_CLUSTER 0x0310
#define EMBER_AF_PRINT_THERMOSTAT_UI_CONFIG_CLUSTER 0x0320
#define EMBER_AF_PRINT_COLOR_CONTROL_CLUSTER 0x0340
#define EMBER_AF_PRINT_BALLAST_CONFIGURATION_CLUSTER 0x0380
#define EMBER_AF_PRINT_ILLUM_MEASUREMENT_CLUSTER 0x0401
#define EMBER_AF_PRINT_ILLUM_LEVEL_SENSING_CLUSTER 0x0402
#define EMBER_AF_PRINT_TEMP_MEASUREMENT_CLUSTER 0x0404
#define EMBER_AF_PRINT_PRESSURE_MEASUREMENT_CLUSTER 0x0408
#define EMBER_AF_PRINT_FLOW_MEASUREMENT_CLUSTER 0x0410
#define EMBER_AF_PRINT_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER 0x0420
#define EMBER_AF_PRINT_OCCUPANCY_SENSING_CLUSTER 0x0440
#define EMBER_AF_PRINT_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER 0x0480
#define EMBER_AF_PRINT_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER 0x0501
#define EMBER_AF_PRINT_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER 0x0502
#define EMBER_AF_PRINT_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER 0x0504
#define EMBER_AF_PRINT_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER 0x0508
#define EMBER_AF_PRINT_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER 0x0510
#define EMBER_AF_PRINT_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER 0x0520
#define EMBER_AF_PRINT_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER 0x0540
#define EMBER_AF_PRINT_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER 0x0580
#define EMBER_AF_PRINT_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER 0x0601
#define EMBER_AF_PRINT_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER 0x0602
#define EMBER_AF_PRINT_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER 0x0604
#define EMBER_AF_PRINT_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER 0x0608
#define EMBER_AF_PRINT_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER 0x0610
#define EMBER_AF_PRINT_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER 0x0620
#define EMBER_AF_PRINT_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER 0x0640
#define EMBER_AF_PRINT_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER 0x0680
#define EMBER_AF_PRINT_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER 0x0701
#define EMBER_AF_PRINT_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER 0x0702
#define EMBER_AF_PRINT_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER 0x0704
#define EMBER_AF_PRINT_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER 0x0708
#define EMBER_AF_PRINT_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER 0x0710
#define EMBER_AF_PRINT_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER 0x0720
#define EMBER_AF_PRINT_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER 0x0740
#define EMBER_AF_PRINT_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER 0x0780
#define EMBER_AF_PRINT_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER 0x0801
#define EMBER_AF_PRINT_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER 0x0802
#define EMBER_AF_PRINT_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER 0x0804
#define EMBER_AF_PRINT_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER 0x0808
#define EMBER_AF_PRINT_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER 0x0810
#define EMBER_AF_PRINT_IAS_ZONE_CLUSTER 0x0820
#define EMBER_AF_PRINT_IAS_ACE_CLUSTER 0x0840
#define EMBER_AF_PRINT_IAS_WD_CLUSTER 0x0880
#define EMBER_AF_PRINT_GENERIC_TUNNEL_CLUSTER 0x0901
#define EMBER_AF_PRINT_BACNET_PROTOCOL_TUNNEL_CLUSTER 0x0902
#define EMBER_AF_PRINT_11073_PROTOCOL_TUNNEL_CLUSTER 0x0904
#define EMBER_AF_PRINT_ISO7816_PROTOCOL_TUNNEL_CLUSTER 0x0908
#define EMBER_AF_PRINT_PRICE_CLUSTER 0x0910
#define EMBER_AF_PRINT_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER 0x0920
#define EMBER_AF_PRINT_SIMPLE_METERING_CLUSTER 0x0940
#define EMBER_AF_PRINT_MESSAGING_CLUSTER 0x0980
#define EMBER_AF_PRINT_TUNNELING_CLUSTER 0x0A01
#define EMBER_AF_PRINT_PREPAYMENT_CLUSTER 0x0A02
#define EMBER_AF_PRINT_ENERGY_MANAGEMENT_CLUSTER 0x0A04
#define EMBER_AF_PRINT_CALENDAR_CLUSTER 0x0A08
#define EMBER_AF_PRINT_DEVICE_MANAGEMENT_CLUSTER 0x0A10
#define EMBER_AF_PRINT_EVENTS_CLUSTER 0x0A20
#define EMBER_AF_PRINT_MDU_PAIRING_CLUSTER 0x0A40
#define EMBER_AF_PRINT_SUB_GHZ_CLUSTER 0x0A80
#define EMBER_AF_PRINT_KEY_ESTABLISHMENT_CLUSTER 0x0B01
#define EMBER_AF_PRINT_INFORMATION_CLUSTER 0x0B02
#define EMBER_AF_PRINT_DATA_SHARING_CLUSTER 0x0B04
#define EMBER_AF_PRINT_GAMING_CLUSTER 0x0B08
#define EMBER_AF_PRINT_DATA_RATE_CONTROL_CLUSTER 0x0B10
#define EMBER_AF_PRINT_VOICE_OVER_ZIGBEE_CLUSTER 0x0B20
#define EMBER_AF_PRINT_CHATTING_CLUSTER 0x0B40
#define EMBER_AF_PRINT_PAYMENT_CLUSTER 0x0B80
#define EMBER_AF_PRINT_BILLING_CLUSTER 0x0C01
#define EMBER_AF_PRINT_APPLIANCE_IDENTIFICATION_CLUSTER 0x0C02
#define EMBER_AF_PRINT_METER_IDENTIFICATION_CLUSTER 0x0C04
#define EMBER_AF_PRINT_APPLIANCE_EVENTS_AND_ALERT_CLUSTER 0x0C08
#define EMBER_AF_PRINT_APPLIANCE_STATISTICS_CLUSTER 0x0C10
#define EMBER_AF_PRINT_ELECTRICAL_MEASUREMENT_CLUSTER 0x0C20
#define EMBER_AF_PRINT_DIAGNOSTICS_CLUSTER 0x0C40
#define EMBER_AF_PRINT_ZLL_COMMISSIONING_CLUSTER 0x0C80
#define EMBER_AF_PRINT_SAMPLE_MFG_SPECIFIC_CLUSTER 0x0D01
#define EMBER_AF_PRINT_SAMPLE_MFG_SPECIFIC_CLUSTER_2 0x0D02
#define EMBER_AF_PRINT_OTA_CONFIGURATION_CLUSTER 0x0D04
#define EMBER_AF_PRINT_MFGLIB_CLUSTER 0x0D08
#define EMBER_AF_PRINT_SL_WWAH_CLUSTER 0x0D10
#define EMBER_AF_PRINT_CORE 0x0D20
#define EMBER_AF_PRINT_DEBUG 0x0D40
#define EMBER_AF_PRINT_APP 0x0D80
#define EMBER_AF_PRINT_SECURITY 0x0E01
#define EMBER_AF_PRINT_ATTRIBUTES 0x0E02
#define EMBER_AF_PRINT_REGISTRATION 0x0E10
#define EMBER_AF_PRINT_ZDO 0x0E20
#define EMBER_AF_PRINT_CUSTOM1 0x0E40
#define EMBER_AF_PRINT_CUSTOM2 0x0E80
#define EMBER_AF_PRINT_CUSTOM3 0x0F01

#define EMBER_AF_PRINT_OUTPUT 1

#define EMBER_AF_PRINT_NAMES                                                                                                       \
    {                                                                                                                              \
        "Basic", "Power Configuration", "Device Temperature Configuration", "Identify", "Groups", "Scenes", "On/off",              \
            "On/off Switch Configuration", "Level Control", "Alarms", "Time", "RSSI Location", "Binary Input (Basic)",             \
            "Commissioning", "Partition", "Over the Air Bootloading", "Power Profile", "Appliance Control", "Poll Control",        \
            "Green Power", "Keep-Alive", "Shade Configuration", "Door Lock", "Window Covering", "Barrier Control",                 \
            "Pump Configuration and Control", "Thermostat", "Fan Control", "Dehumidification Control",                             \
            "Thermostat User Interface Configuration", "Color Control", "Ballast Configuration", "Illuminance Measurement",        \
            "Illuminance Level Sensing", "Temperature Measurement", "Pressure Measurement", "Flow Measurement",                    \
            "Relative Humidity Measurement", "Occupancy Sensing", "Carbon Monoxide Concentration Measurement",                     \
            "Carbon Dioxide Concentration Measurement", "Ethylene Concentration Measurement",                                      \
            "Ethylene Oxide Concentration Measurement", "Hydrogen Concentration Measurement",                                      \
            "Hydrogen Sulphide Concentration Measurement", "Nitric Oxide Concentration Measurement",                               \
            "Nitrogen Dioxide Concentration Measurement", "Oxygen Concentration Measurement", "Ozone Concentration Measurement",   \
            "Sulfur Dioxide Concentration Measurement", "Dissolved Oxygen Concentration Measurement",                              \
            "Bromate Concentration Measurement", "Chloramines Concentration Measurement", "Chlorine Concentration Measurement",    \
            "Fecal coliform and E. Coli Concentration Measurement", "Fluoride Concentration Measurement",                          \
            "Haloacetic Acids Concentration Measurement", "Total Trihalomethanes Concentration Measurement",                       \
            "Total Coliform Bacteria Concentration Measurement", "Turbidity Concentration Measurement",                            \
            "Copper Concentration Measurement", "Lead Concentration Measurement", "Manganese Concentration Measurement",           \
            "Sulfate Concentration Measurement", "Bromodichloromethane Concentration Measurement",                                 \
            "Bromoform Concentration Measurement", "Chlorodibromomethane Concentration Measurement",                               \
            "Chloroform Concentration Measurement", "Sodium Concentration Measurement", "IAS Zone", "IAS ACE", "IAS WD",           \
            "Generic Tunnel", "BACnet Protocol Tunnel", "11073 Protocol Tunnel", "ISO 7816 Protocol Tunnel", "Price",              \
            "Demand Response and Load Control", "Simple Metering", "Messaging", "Tunneling", "Prepayment", "Energy Management",    \
            "Calendar", "Device Management", "Events", "MDU Pairing", "Sub-GHz", "Key Establishment", "Information",               \
            "Data Sharing", "Gaming", "Data Rate Control", "Voice over ZigBee", "Chatting", "Payment", "Billing",                  \
            "Appliance Identification", "Meter Identification", "Appliance Events and Alert", "Appliance Statistics",              \
            "Electrical Measurement", "Diagnostics", "ZLL Commissioning", "Sample Mfg Specific Cluster",                           \
            "Sample Mfg Specific Cluster 2", "Configuration Cluster", "MFGLIB Cluster", "SL Works With All Hubs", "Core", "Debug", \
            "Application", "Security", "Attributes", "Service discovery", "Registration", "ZDO (ZigBee Device Object)",            \
            "Custom messages (1)", "Custom messages (2)", "Custom messages (3)"                                                    \
    }

#define EMBER_AF_PRINT_NAME_NUMBER 121
#define EMBER_AF_PRINT_BITS                                                                                                        \
    {                                                                                                                              \
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF                             \
    }
