Application Framework Types

Data Structures

union  EmberAfDefaultAttributeValue
 Type for default values.
 
struct  EmberAfAttributeMinMaxValue
 Type describing the attribute default, min and max values.
 
union  EmberAfDefaultOrMinMaxAttributeValue
 Union describing the attribute default/min/max values.
 
struct  EmberAfAttributeMetadata
 Each attribute has it's metadata stored in such struct.
 
struct  EmberAfCluster
 Struct describing cluster.
 
struct  EmberAfAttributeSearchRecord
 Struct used to find an attribute in storage. Together the elements in this search record constitute the "primary key" used to identify a unique attribute value in attribute storage.
 
struct  EmberAfManufacturerCodeEntry
 
struct  EmberAfIncomingMessage
 a struct containing the superset of values passed to both emberIncomingMessageHandler on the SOC and ezspIncomingMessageHandler on the host.
 
struct  EmberAfInterpanHeader
 Interpan header used for sending and receiving interpan messages.
 
struct  EmberAfAllowedInterPanMessage
 This structure is used define an interpan message that will be accepted by the interpan filters.
 
struct  EmberAfClusterCommand
 The EmberAFClusterCommand is a struct wrapper for all the data pertaining to a command which comes in over the air. This enables struct is used to encapsulate a command in a single place on the stack and pass a pointer to that location around during command processing.
 
struct  EmberAfEndpointType
 Endpoint type struct describes clusters that are on the endpoint.
 
struct  EmberAfSecurityProfileData
 
struct  EmberAfDefinedEndpoint
 Struct that maps actual endpoint type, onto a specific endpoint.
 
struct  EmberAfLoadControlEvent
 Struct that describes a load control event.
 
struct  EmberAfServiceDiscoveryResult
 A structure containing general information about the service discovery.
 
struct  EmberAfEndpointList
 A list of endpoints received during a service discovery attempt. This will be returned for a match descriptor request and a active endpoint request.
 
struct  EmberAfClusterList
 A list of clusters received during a service discovery attempt. This will be returned for a simple descriptor request.
 
struct  EmberAfEventContext
 a structure used to keep track of cluster related events and their sleep control values. The cluster code will not know at runtime all of the events that it has access to in the event table This structure is stored by the application framework in an event context table which along with helper functions allows the cluster code to schedule and deactivate its associated events.
 
struct  EmberAfSceneTableEntry
 A structure used to store scene table entries in RAM or in tokens, depending on a plugin setting. If endpoint field is EMBER_AF_SCENE_TABLE_UNUSED_ENDPOINT_ID, the entry is unused.
 
struct  EmberAfPluginMessagingClientMessage
 
struct  EmberAfPluginPriceClientPrice
 
struct  EmberAfPluginReportingEntry
 A structure used to store reporting configurations. If endpoint field is EMBER_AF_PLUGIN_REPORTING_UNUSED_ENDPOINT_ID, the entry is unused.
 
struct  EmberAfOtaImageId
 This is a unique identifier for referencing zigbee Over-the-air upgrade images. It is used by the OTA plugins when passing around information about an upgrade file.
 
struct  EmberAfImageBlockRequestCallbackStruct
 This is the data structure that is passed to the emberAfImageBlockRequestCallback() to let the application decide what to do.
 
struct  EmberAfOtaHeader
 This structure is an in-memory representation of the Over-the-air header data that resides on disk. It is not a byte-for-byte copy.
 
struct  EmberAfTagData
 This structure contains information about a tag that resides within an Over-the-air bootload file.
 
struct  EmberAfMessageStruct
 The EmberAfMessageStruct is a struct wrapper that contains all the data about a low-level message to be sent (it may be ZCL or may be some other protocol).
 
struct  EmberAfLinkKeyBackupData
 A data struct for a link key backup.
 
struct  EmberAfTrustCenterBackupData
 A data struct for all the trust center backup data.
 
struct  EmberAfStandaloneBootloaderQueryResponseData
 A data struct for the information retrieved during a response to an Ember Bootloader over-the-air query.
 
struct  EmberAfCommandMetadata
 A data struct used to keep track of incoming and outgoing commands for command discovery.
 
struct  EmberAfTimeStruct
 A data structure used to describe the time in a human understandable format (as opposed to 32-bit UTC)
 
struct  EmberAfDate
 A data structure used to describe the ZCL Date data type.
 
struct  EmberAfDeviceManagementTenancy
 
struct  EmberAfDeviceManagementSupplier
 
struct  EmberAfDeviceManagementSupply
 
struct  EmberAfDeviceManagementSiteId
 
struct  EmberAfDeviceManagementCIN
 
struct  EmberAfDeviceManagementSupplyStatusFlags
 
struct  EmberAfDeviceManagementUncontrolledFlowThreshold
 
struct  EmberAfDeviceManagementSupplyStatus
 
struct  EmberAfDeviceManagementPassword
 
struct  EmberAfDeviceManagementInfo
 
struct  EmberAfDeviceManagementAttributeRange
 
struct  EmberAfDeviceManagementAttributeTable
 
struct  EmberAfGbzMessageData
 
struct  EmberAfGpfMessage
 
struct  EmberAfRemoteClusterStruct
 Zigbee Internet Client/Server remote cluster struct.
 
struct  EmberAfRemoteBindingStruct
 Zigbee Internet Client/Server Remote Binding struct.
 
struct  EmberAfClusterInfo
 
struct  EmberAfEndpointInfoStruct
 A struct containing basic information about an endpoint.
 
struct  EmberAfDeviceInfo
 A struct containing endpoint information about a device.
 
struct  EmberAfDeviceDatabaseIterator
 
struct  EmberAfJoiningDevice

Macros

#define EMBER_AF_NULL_MANUFACTURER_CODE   0x0000
 A distinguished manufacturer code that is used to indicate the absence of a manufacturer-specific profile, cluster, command, or attribute.
 
#define EMBER_AF_INVALID_PROFILE_ID   0xFFFF
 An invalid profile ID This is a reserved profileId.
 
#define EMBER_AF_INTER_PAN_UNICAST   0x00
 
#define EMBER_AF_INTER_PAN_BROADCAST   0x08
 
#define EMBER_AF_INTER_PAN_MULTICAST   0x0C
 
#define INTER_PAN_UNICAST   EMBER_AF_INTER_PAN_UNICAST
 
#define INTER_PAN_BROADCAST   EMBER_AF_INTER_PAN_BROADCAST
 
#define INTER_PAN_MULTICAST   EMBER_AF_INTER_PAN_MULTICAST
 
#define EMBER_AF_INTERPAN_OPTION_NONE   0x0000
 
#define EMBER_AF_INTERPAN_OPTION_APS_ENCRYPT   0x0001
 
#define EMBER_AF_INTERPAN_OPTION_MAC_HAS_LONG_ADDRESS   0x0002
 
#define InterPanHeader   EmberAfInterpanHeader
 
#define EMBER_AF_INTERPAN_DIRECTION_CLIENT_TO_SERVER   0x01
 
#define EMBER_AF_INTERPAN_DIRECTION_SERVER_TO_CLIENT   0x02
 
#define EMBER_AF_INTERPAN_DIRECTION_BOTH   0x03
 
#define EMBER_AF_INTERPAN_GLOBAL_COMMAND   0x04
 
#define EMBER_AF_INTERPAN_MANUFACTURER_SPECIFIC   0x08
 
#define EMBER_AF_ALLOW_TC_KEY_REQUESTS   EMBER_ALLOW_TC_LINK_KEY_REQUEST_AND_SEND_CURRENT_KEY
 
#define EMBER_AF_DENY_TC_KEY_REQUESTS   EMBER_DENY_TC_LINK_KEY_REQUESTS
 
#define EMBER_AF_ALLOW_APP_KEY_REQUESTS   EMBER_ALLOW_APP_LINK_KEY_REQUEST
 
#define EMBER_AF_DENY_APP_KEY_REQUESTS   EMBER_DENY_APP_LINK_KEY_REQUESTS
 
#define EM_AF_DISCOVERY_RESPONSE_MASK   (0x05)
 
#define emberAfHaveDiscoveryResponseStatus(status)   ((status) & EM_AF_DISCOVERY_RESPONSE_MASK)
 A simple way to determine if the service discovery callback has a response.
 
#define EMBER_AF_SCENE_TABLE_NULL_INDEX   0xFF
 Indicates the absence of a Scene table entry.
 
#define EMBER_AF_SCENE_TABLE_UNUSED_ENDPOINT_ID   0x00
 Value used when setting or getting the endpoint in a Scene table entry. It indicates that the entry is not in use.
 
#define ZCL_SCENES_CLUSTER_MAXIMUM_NAME_LENGTH   16
 Maximum length of Scene names, not including the length byte.
 
#define ZCL_SCENES_GLOBAL_SCENE_GROUP_ID   0x0000
 The group identifier for the global scene.
 
#define ZCL_SCENES_GLOBAL_SCENE_SCENE_ID   0x00
 The scene identifier for the global scene.
 
#define EMBER_AF_PLUGIN_MESSAGING_CLIENT_MESSAGE_SIZE   0
 
#define ZCL_PRICE_CLUSTER_MAXIMUM_RATE_LABEL_LENGTH   11
 
#define EMBER_AF_PLUGIN_REPORTING_UNUSED_ENDPOINT_ID   0x00
 Value used when setting or getting the endpoint in a report table entry. It indicates that the entry is not in use.
 
#define EMBER_AF_OTA_MAX_HEADER_STRING_LENGTH   32
 The maximum size of the string that is present in the header of the zigbee Over-the-air file format.
 
#define UID_SIZE   32
 
#define APP_NOTIFY_ERROR_CODE_START   NO_LOCAL_RESOURCES
 
#define APP_NOTIFY_MESSAGE_TEXT
 
#define EMBER_AF_STANDALONE_BOOTLOADER_HARDWARE_TAG_LENGTH   16
 The length of the hardware tag in the Ember Bootloader Query Response.
 
#define EMBER_AF_PLUGIN_SIMPLE_METERING_SERVER_ELECTRIC_METER   0
 
#define EMBER_AF_PLUGIN_SIMPLE_METERING_SERVER_GAS_METER   1
 
#define EMBER_AF_METERING_FNF_NEW_OTA_FIRMWARE   0x00000001
 
#define EMBER_AF_METERING_FNF_CBKE_UPDATE_REQUEST   0x00000002
 
#define EMBER_AF_METERING_FNF_TIME_SYNC   0x00000004
 
#define EMBER_AF_METERING_FNF_STAY_AWAKE_REQUEST_HAN   0x00000010
 
#define EMBER_AF_METERING_FNF_STAY_AWAKE_REQUEST_WAN   0x00000020
 
#define EMBER_AF_METERING_FNF_PUSH_HISTORICAL_METERING_DATA_ATTRIBUTE_SET   0x000001C0
 
#define EMBER_AF_METERING_FNF_PUSH_HISTORICAL_PREPAYMENT_DATA_ATTRIBUTE_SET   0x00000E00
 
#define EMBER_AF_METERING_FNF_PUSH_ALL_STATIC_DATA_BASIC_CLUSTER   0x00001000
 
#define EMBER_AF_METERING_FNF_PUSH_ALL_STATIC_DATA_METERING_CLUSTER   0x00002000
 
#define EMBER_AF_METERING_FNF_PUSH_ALL_STATIC_DATA_PREPAYMENT_CLUSTER   0x00004000
 
#define EMBER_AF_METERING_FNF_NETWORK_KEY_ACTIVE   0x00008000
 
#define EMBER_AF_METERING_FNF_DISPLAY_MESSAGE   0x00010000
 
#define EMBER_AF_METERING_FNF_CANCEL_ALL_MESSAGES   0x00020000
 
#define EMBER_AF_METERING_FNF_CHANGE_SUPPLY   0x00040000
 
#define EMBER_AF_METERING_FNF_LOCAL_CHANGE_SUPPLY   0x00080000
 
#define EMBER_AF_METERING_FNF_SET_UNCONTROLLED_FLOW_THRESHOLD   0x00100000
 
#define EMBER_AF_METERING_FNF_TUNNEL_MESSAGE_PENDING   0x00200000
 
#define EMBER_AF_METERING_FNF_GET_SNAPSHOT   0x00400000
 
#define EMBER_AF_METERING_FNF_GET_SAMPLED_DATA   0x00800000
 
#define EMBER_AF_METERING_FNF_NEW_SUB_GHZ_CHANNEL_MASKS_AVAILABLE   0x01000000
 
#define EMBER_AF_METERING_FNF_ENERGY_SCAN_PENDING   0x02000000
 
#define EMBER_AF_METERING_FNF_CHANNEL_CHANGE_PENDING   0x04000000
 
#define EMBER_AF_METERING_NF2_PUBLISH_PRICE   0x00000001
 
#define EMBER_AF_METERING_NF2_PUBLISH_BLOCK_PERIOD   0x00000002
 
#define EMBER_AF_METERING_NF2_PUBLISH_TARIFF_INFORMATION   0x00000004
 
#define EMBER_AF_METERING_NF2_PUBLISH_CONVERSION_FACTOR   0x00000008
 
#define EMBER_AF_METERING_NF2_PUBLISH_CALORIFIC_VALUE   0x00000010
 
#define EMBER_AF_METERING_NF2_PUBLISH_CO2_VALUE   0x00000020
 
#define EMBER_AF_METERING_NF2_PUBLISH_BILLING_PERIOD   0x00000040
 
#define EMBER_AF_METERING_NF2_PUBLISH_CONSOLIDATED_BILL   0x00000080
 
#define EMBER_AF_METERING_NF2_PUBLISH_PRICE_MATRIX   0x00000100
 
#define EMBER_AF_METERING_NF2_PUBLISH_BLOCK_THRESHOLDS   0x00000200
 
#define EMBER_AF_METERING_NF2_PUBLISH_CURRENCY_CONVERSION   0x00000400
 
#define EMBER_AF_METERING_NF2_PUBLISH_CREDIT_PAYMENT_INFO   0x00001000
 
#define EMBER_AF_METERING_NF2_PUBLISH_CPP_EVENT   0x00002000
 
#define EMBER_AF_METERING_NF2_PUBLISH_TIER_LABELS   0x00004000
 
#define EMBER_AF_METERING_NF2_CANCEL_TARIFF   0x00008000
 
#define EMBER_AF_METERING_NF3_PUBLISH_CALENDAR   0x00000001
 
#define EMBER_AF_METERING_NF3_PUBLISH_SPECIAL_DAYS   0x00000002
 
#define EMBER_AF_METERING_NF3_PUBLISH_SEASONS   0x00000004
 
#define EMBER_AF_METERING_NF3_PUBLISH_WEEK   0x00000008
 
#define EMBER_AF_METERING_NF3_PUBLISH_DAY   0x00000010
 
#define EMBER_AF_METERING_NF3_CANCEL_CALENDAR   0x00000020
 
#define EMBER_AF_METERING_NF4_SELECT_AVAILABLE_EMERGENCY_CREDIT   0x00000001
 
#define EMBER_AF_METERING_NF4_CHANGE_DEBT   0x00000002
 
#define EMBER_AF_METERING_NF4_EMERGENCY_CREDIT_SETUP   0x00000004
 
#define EMBER_AF_METERING_NF4_CONSUMER_TOP_UP   0x00000008
 
#define EMBER_AF_METERING_NF4_CREDIT_ADJUSTMENT   0x00000010
 
#define EMBER_AF_METERING_NF4_CHANGE_PAYMENT_MODE   0x00000020
 
#define EMBER_AF_METERING_NF4_GET_PREPAY_SNAPSHOT   0x00000040
 
#define EMBER_AF_METERING_NF4_GET_TOP_UP_LOG   0x00000080
 
#define EMBER_AF_METERING_NF4_SET_LOW_CREDIT_WARNING_LEVEL   0x00000100
 
#define EMBER_AF_METERING_NF4_GET_DEBT_REPAYMENT_LOG   0x00000200
 
#define EMBER_AF_METERING_NF4_SET_MAXIMUM_CREDIT_LIMIT   0x00000400
 
#define EMBER_AF_METERING_NF4_SET_OVERALL_DEBT_CAP   0x00000800
 
#define EMBER_AF_METERING_NF5_PUBLISH_CHANGE_OF_TENANCY   0x00000001
 
#define EMBER_AF_METERING_NF5_PUBLISH_CHANGE_OF_SUPPLIER   0x00000002
 
#define EMBER_AF_METERING_NF5_REQUEST_NEW_PASSWORD_1_RESPONSE   0x00000004
 
#define EMBER_AF_METERING_NF5_REQUEST_NEW_PASSWORD_2_RESPONSE   0x00000008
 
#define EMBER_AF_METERING_NF5_REQUEST_NEW_PASSWORD_3_RESPONSE   0x00000010
 
#define EMBER_AF_METERING_NF5_REQUEST_NEW_PASSWORD_4_RESPONSE   0x00000020
 
#define EMBER_AF_METERING_NF5_UPDATE_SITE_ID   0x00000040
 
#define EMBER_AF_METERING_NF5_RESET_BATTERY_COUNTER   0x00000080
 
#define EMBER_AF_METERING_NF5_UPDATE_CIN   0x00000100
 
#define EMBER_AF_DEVICE_MANAGEMENT_MAXIMUM_PROPOSED_PROVIDER_NAME_LENGTH   (16)
 Device Management plugin types.
 
#define EMBER_AF_DEVICE_MANAGEMENT_MAXIMUM_PROPOSED_PROVIDER_CONTACT_DETAILS_LENGTH   (18)
 
#define EMBER_AF_DEVICE_MANAGEMENT_MAXIMUM_SITE_ID_LENGTH   (32)
 
#define EMBER_AF_DEVICE_MANAGEMENT_MAXIMUM_CIN_LENGTH   (24)
 
#define EMBER_AF_DEVICE_MANAGEMENT_MAXIMUM_PASSWORD_LENGTH   (10)
 
#define EMBER_AF_REMOTE_CLUSTER_TYPE_NONE   0x0000
 
#define EMBER_AF_REMOTE_CLUSTER_TYPE_SERVER   0x0001
 
#define EMBER_AF_REMOTE_CLUSTER_TYPE_CLIENT   0x0002
 
#define EMBER_AF_REMOTE_CLUSTER_TYPE_INVALID   0xFFFF
 
#define EMBER_AF_MAX_CLUSTERS_PER_ENDPOINT   3
 
#define EMBER_AF_MAX_ENDPOINTS_PER_DEVICE   1
 
#define EMBER_AF_INVALID_CLUSTER_ID   0xFFFF
 
#define EMBER_AF_INVALID_ENDPOINT   0xFF
 
#define EMBER_AF_INVALID_PAN_ID   0xFFFF
 
#define EMBER_AF_PERMIT_JOIN_FOREVER   0xFF
 Permit join times.
 
#define EMBER_AF_PERMIT_JOIN_MAX_TIMEOUT   0xFE
 
#define EMBER_AF_ZDO_RESPONSE_OVERHEAD   2
 The overhead of the ZDO response. 1 byte for the sequence and 1 byte for the status code.

Typedefs

typedef uint16_t EmberAfProfileId
 Type for referring to zigbee application profile id.
 
typedef uint16_t EmberAfAttributeId
 Type for referring to ZCL attribute id.
 
typedef uint16_t EmberAfClusterId
 Type for referring to ZCL cluster id.
 
typedef uint8_t EmberAfAttributeType
 Type for referring to ZCL attribute type.
 
typedef uint8_t EmberAfClusterMask
 Type for the cluster mask.
 
typedef uint8_t EmberAfAttributeMask
 Type for the attribute mask.
 
typedef void(* EmberAfGenericClusterFunction) (void)
 Generic function type, used for either of the cluster function.
 
typedef uint32_t EmberAfDifferenceType
 
typedef uint8_t EmberAfInterpanMessageType
 Interpan Message type: unicast, broadcast, or multicast.
 
typedef uint16_t EmberAfInterpanOptions
 The options for sending/receiving interpan messages.
 
typedef uint8_t EmberAfAllowedInterpanOptions
 The options for what interpan messages are allowed.
 
typedef EmberTcLinkKeyRequestPolicy EmberAfTcLinkKeyRequestPolicy
 
typedef EmberAppLinkKeyRequestPolicy EmberAfAppLinkKeyRequestPolicy
 
typedef uint8_t EmberAfPluginEsiManagementBitmask
 Bitmask data type for storing one bit of information for each ESI in the ESI table.
 
typedef void( EmberAfServiceDiscoveryCallback) (const EmberAfServiceDiscoveryResult *result)
 This defines a callback where a code element or cluster can be informed as to the result of a service discovery they have requested. For each match, the callback is fired with all the resulting matches from that source. If the discovery was unicast to a specific device, then the callback will only be fired once with either MATCH_FOUND or COMPLETE (no matches found). If the discovery is broadcast then multiple callbacks may be fired with ::EMBER_AF_SERVICE_DISCOVERY_RESPONSE_RECEIVED. After a couple seconds the callback will then be fired with ::EMBER_AF_SERVICE_DISCOVERY_COMPLETE as the result.
 
typedef void( EmberAfPartnerLinkKeyExchangeCallback) (bool success)
 This defines a callback where a code element or cluster can be informed as to the result of a request to initiate a partner link key exchange. The callback will be triggered with success equal to true if the exchange completed successfully.
 
typedef void(* EmberAfNetworkEventHandler) (void)
 Type for referring to the handler for network events.
 
typedef void(* EmberAfEndpointEventHandler) (uint8_t endpoint)
 Type for referring to the handler for endpoint events.
 
typedef uint8_t EmberAfImageBlockRequestOptions
 
typedef uint8_t EmberAfOtaDownloadResult
 
typedef void(* EmberAfTickFunction) (uint8_t endpoint)
 Type for referring to the tick callback for cluster.
 
typedef void(* EmberAfInitFunction) (uint8_t endpoint)
 Type for referring to the init callback for cluster.
 
typedef void(* EmberAfClusterAttributeChangedCallback) (uint8_t endpoint, EmberAfAttributeId attributeId)
 Type for referring to the attribute changed callback function.
 
typedef void(* EmberAfManufacturerSpecificClusterAttributeChangedCallback) (uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode)
 Type for referring to the manufacturer specific attribute changed callback function.
 
typedef EmberAfStatus(* EmberAfClusterPreAttributeChangedCallback) (uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t *value)
 Type for referring to the pre-attribute changed callback function.
 
typedef void(* EmberAfDefaultResponseFunction) (uint8_t endpoint, uint8_t commandId, EmberAfStatus status)
 Type for referring to the default response callback function.
 
typedef void(* EmberAfMessageSentFunction) (EmberOutgoingMessageType type, uint16_t indexOrDestination, EmberApsFrame *apsFrame, uint16_t msgLen, uint8_t *message, EmberStatus status)
 Type for referring to the message sent callback function.
 
typedef uint16_t EmberAfRemoteClusterType
 Zigbee Internet Client/Server Remote Cluster Types.

Enumerations

enum  EmberAfSecurityProfile {
  EMBER_AF_SECURITY_PROFILE_NONE = 0x00,
  EMBER_AF_SECURITY_PROFILE_HA = 0x01,
  EMBER_AF_SECURITY_PROFILE_HA12 = 0x02,
  EMBER_AF_SECURITY_PROFILE_SE_TEST = 0x03,
  EMBER_AF_SECURITY_PROFILE_SE_FULL = 0x04,
  EMBER_AF_SECURITY_PROFILE_Z3 = 0x05,
  EMBER_AF_SECURITY_PROFILE_CUSTOM = 0xFF
}
 
enum  EmberAfServiceDiscoveryStatus {
  EMBER_AF_BROADCAST_SERVICE_DISCOVERY_COMPLETE = 0x00,
  EMBER_AF_BROADCAST_SERVICE_DISCOVERY_RESPONSE_RECEIVED = 0x01,
  EMBER_AF_UNICAST_SERVICE_DISCOVERY_TIMEOUT = 0x02,
  EMBER_AF_UNICAST_SERVICE_DISCOVERY_COMPLETE_WITH_RESPONSE = 0x03,
  EMBER_AF_BROADCAST_SERVICE_DISCOVERY_COMPLETE_WITH_RESPONSE = 0x04
}
 This is an enum used to indicate the result of the service discovery. Unicast discoveries are completed as soon as a response is received. Broadcast discoveries wait a period of time for multiple responses to be received.
 
enum  EmberAfEventPollControl {
  EMBER_AF_LONG_POLL,
  EMBER_AF_SHORT_POLL
}
 This is an enum used to control how the device will poll for a given active cluster-related event. When the event is scheduled, the application can pass a poll control value which will be stored along with the event. The processor is only allowed to poll according to the most restrictive value for all active event. For instance, if two events are active, one with EMBER_AF_LONG_POLL and the other with EMBER_AF_SHORT_POLL, then the processor will short poll until the second event is deactivated.
 
enum  EmberAfEventSleepControl {
  EMBER_AF_OK_TO_SLEEP,
  EMBER_AF_OK_TO_HIBERNATE = EMBER_AF_OK_TO_SLEEP,
  EMBER_AF_OK_TO_NAP,
  EMBER_AF_STAY_AWAKE
}
 This is an enum used to control how the device will sleep for a given active cluster related event. When the event is scheduled, the scheduling code can pass a sleep control value which will be stored along with the event. The processor is only allowed to sleep according to the most restrictive sleep control value for any active event. For instance, if two events are active, one with EMBER_AF_OK_TO_HIBERNATE and the other with EMBER_AF_OK_TO_NAP, then the processor will only be allowed to nap until the second event is deactivated.
 
enum  EmberAfApplicationTask {
  EMBER_AF_WAITING_FOR_DATA_ACK = 0x00000001,
  EMBER_AF_LAST_POLL_GOT_DATA = 0x00000002,
  EMBER_AF_WAITING_FOR_SERVICE_DISCOVERY = 0x00000004,
  EMBER_AF_WAITING_FOR_ZDO_RESPONSE = 0x00000008,
  EMBER_AF_WAITING_FOR_ZCL_RESPONSE = 0x00000010,
  EMBER_AF_WAITING_FOR_REGISTRATION = 0x00000020,
  EMBER_AF_WAITING_FOR_PARTNER_LINK_KEY_EXCHANGE = 0x00000040,
  EMBER_AF_FORCE_SHORT_POLL = 0x00000080,
  EMBER_AF_FRAGMENTATION_IN_PROGRESS = 0x00000100,
  EMBER_AF_FORCE_SHORT_POLL_FOR_PARENT_CONNECTIVITY = 0x00000200
}
 An enum used to track the tasks that the Application framework cares about. These are intended to be tasks that should keep the device out of hibernation like an application level request / response. If the response does not come in as a data ack, then the application will need to stay out of hibernation to wait and poll for it.
 
enum  EmberAfPluginPriceCppAuth {
  EMBER_AF_PLUGIN_PRICE_CPP_AUTH_PENDING = 0,
  EMBER_AF_PLUGIN_PRICE_CPP_AUTH_ACCEPTED = 1,
  EMBER_AF_PLUGIN_PRICE_CPP_AUTH_REJECTED = 2,
  EMBER_AF_PLUGIN_PRICE_CPP_AUTH_FORCED = 3,
  EMBER_AF_PLUGIN_PRICE_CPP_AUTH_RESERVED = 4
}
 Specifies CPP Authorization values.
 
enum  EmberAfPluginTunnelingClientStatus {
  EMBER_AF_PLUGIN_TUNNELING_CLIENT_SUCCESS = 0x00,
  EMBER_AF_PLUGIN_TUNNELING_CLIENT_BUSY = 0x01,
  EMBER_AF_PLUGIN_TUNNELING_CLIENT_NO_MORE_TUNNEL_IDS = 0x02,
  EMBER_AF_PLUGIN_TUNNELING_CLIENT_PROTOCOL_NOT_SUPPORTED = 0x03,
  EMBER_AF_PLUGIN_TUNNELING_CLIENT_FLOW_CONTROL_NOT_SUPPORTED = 0x04,
  EMBER_AF_PLUGIN_TUNNELING_CLIENT_IEEE_ADDRESS_REQUEST_FAILED = 0xF9,
  EMBER_AF_PLUGIN_TUNNELING_CLIENT_IEEE_ADDRESS_NOT_FOUND = 0xFA,
  EMBER_AF_PLUGIN_TUNNELING_CLIENT_ADDRESS_TABLE_FULL = 0xFB,
  EMBER_AF_PLUGIN_TUNNELING_CLIENT_LINK_KEY_EXCHANGE_REQUEST_FAILED = 0xFC,
  EMBER_AF_PLUGIN_TUNNELING_CLIENT_LINK_KEY_EXCHANGE_FAILED = 0xFD,
  EMBER_AF_PLUGIN_TUNNELING_CLIENT_REQUEST_TUNNEL_FAILED = 0xFE,
  EMBER_AF_PLUGIN_TUNNELING_CLIENT_REQUEST_TUNNEL_TIMEOUT = 0xFF
}
 
enum  {
  EMBER_AF_IMAGE_BLOCK_REQUEST_OPTIONS_NONE = 0,
  EMBER_AF_IMAGE_BLOCK_REQUEST_MIN_BLOCK_REQUEST_SUPPORTED_BY_CLIENT = 1,
  EMBER_AF_IMAGE_BLOCK_REQUEST_MIN_BLOCK_REQUEST_SUPPORTED_BY_SERVER = 2
}
 The list of options possible for the image block request/response.
 
enum  EmberAfOtaStorageStatus {
  EMBER_AF_OTA_STORAGE_SUCCESS = 0,
  EMBER_AF_OTA_STORAGE_ERROR = 1,
  EMBER_AF_OTA_STORAGE_RETURN_DATA_TOO_LONG = 2,
  EMBER_AF_OTA_STORAGE_PARTIAL_FILE_FOUND = 3,
  EMBER_AF_OTA_STORAGE_OPERATION_IN_PROGRESS = 4
}
 This status contains the success or error code of an OTA storage device operation.
 
enum  {
  EMBER_AF_OTA_DOWNLOAD_AND_VERIFY_SUCCESS = 0,
  EMBER_AF_OTA_DOWNLOAD_TIME_OUT = 1,
  EMBER_AF_OTA_VERIFY_FAILED = 2,
  EMBER_AF_OTA_SERVER_ABORTED = 3,
  EMBER_AF_OTA_CLIENT_ABORTED = 4,
  EMBER_AF_OTA_ERASE_FAILED = 5
}
 This status contains the success or error code of an OTA download operation.
 
enum  EmberAfKeyEstablishmentNotifyMessage {
  NO_APP_MESSAGE = 0,
  RECEIVED_PARTNER_CERTIFICATE = 1,
  GENERATING_EPHEMERAL_KEYS = 2,
  GENERATING_SHARED_SECRET = 3,
  KEY_GENERATION_DONE = 4,
  GENERATE_SHARED_SECRET_DONE = 5,
  LINK_KEY_ESTABLISHED = 6,
  NO_LOCAL_RESOURCES = 7,
  PARTNER_NO_RESOURCES = 8,
  TIMEOUT_OCCURRED = 9,
  INVALID_APP_COMMAND = 10,
  MESSAGE_SEND_FAILURE = 11,
  PARTNER_SENT_TERMINATE = 12,
  INVALID_PARTNER_MESSAGE = 13,
  PARTNER_SENT_DEFAULT_RESPONSE_ERROR = 14,
  BAD_CERTIFICATE_ISSUER = 15,
  KEY_CONFIRM_FAILURE = 16,
  BAD_KEY_ESTABLISHMENT_SUITE = 17,
  KEY_TABLE_FULL = 18,
  NO_ESTABLISHMENT_ALLOWED = 19,
  INVALID_CERTIFICATE_KEY_USAGE = 20
}
 
enum  EmberAfImageVerifyStatus {
  EMBER_AF_IMAGE_GOOD = 0,
  EMBER_AF_IMAGE_BAD = 1,
  EMBER_AF_IMAGE_VERIFY_IN_PROGRESS = 2
}
 This enumeration is used to indicate the state of an OTA bootload image undergoing verification. This is used both for cryptographic verification and manufacturer specific verification.
 
enum  EmberAfCbkeKeyEstablishmentSuite {
  EMBER_AF_INVALID_KEY_ESTABLISHMENT_SUITE = 0x0000,
  EMBER_AF_CBKE_KEY_ESTABLISHMENT_SUITE_163K1 = 0x0001,
  EMBER_AF_CBKE_KEY_ESTABLISHMENT_SUITE_283K1 = 0x0002
}
 CBKE Library types.
 
enum  EmberAfDeviceManagementPasswordType {
  UNUSED_PASSWORD = 0x00,
  SERVICE_PASSWORD = 0x01,
  CONSUMER_PASSWORD = 0x02
}
 
enum  EmberAfDeviceManagementChangePendingFlags {
  EMBER_AF_DEVICE_MANAGEMENT_CHANGE_OF_TENANCY_PENDING_MASK = 0x01,
  EMBER_AF_DEVICE_MANAGEMENT_CHANGE_OF_SUPPLIER_PENDING_MASK = 0x02,
  EMBER_AF_DEVICE_MANAGEMENT_UPDATE_SITE_ID_PENDING_MASK = 0x04,
  EMBER_AF_DEVICE_MANAGEMENT_UPDATE_CIN_PENDING_MASK = 0x08,
  EMBER_AF_DEVICE_MANAGEMENT_UPDATE_SERVICE_PASSWORD_PENDING_MASK = 0x10,
  EMBER_AF_DEVICE_MANAGEMENT_UPDATE_CONSUMER_PASSWORD_PENDING_MASK = 0x20
}
 
enum  EmberAfDeviceDiscoveryStatus {
  EMBER_AF_DEVICE_DISCOVERY_STATUS_NONE = 0x00,
  EMBER_AF_DEVICE_DISCOVERY_STATUS_NEW = 0x01,
  EMBER_AF_DEVICE_DISCOVERY_STATUS_FIND_ENDPOINTS = 0x02,
  EMBER_AF_DEVICE_DISCOVERY_STATUS_FIND_CLUSTERS = 0x04,
  EMBER_AF_DEVICE_DISCOVERY_STATUS_FIND_STACK_REVISION = 0x08,
  EMBER_AF_DEVICE_DISCOVERY_STATUS_DONE = 0x40,
  EMBER_AF_DEVICE_DISCOVERY_STATUS_FAILED = 0x80
}

Detailed Description

This documentation describes the types used by the Ember Application Framework V2.

Macro Definition Documentation

#define APP_NOTIFY_ERROR_CODE_START   NO_LOCAL_RESOURCES
#define APP_NOTIFY_MESSAGE_TEXT
Value:
{ \
"None", \
"Received Cert", \
"Generate keys", \
"Generate secret", \
"Key generate done", \
"Generate secret done", \
"Link key verified", \
\
/* Transient Error codes */ \
"No local resources", \
"Partner no resources", \
"Timeout", \
"Invalid app. command", \
"Message send failure", \
"Partner sent terminate", \
"Bad message", \
"Partner sent Default Rsp", \
\
/* Fatal errors */ \
"Bad cert issuer", \
"Key confirm failure", \
"Bad key est. suite", \
"Key table full", \
"Not allowed", \
"Invalid Key Usage", \
}
#define EM_AF_DISCOVERY_RESPONSE_MASK   (0x05)
#define EMBER_AF_ALLOW_APP_KEY_REQUESTS   EMBER_ALLOW_APP_LINK_KEY_REQUEST
#define EMBER_AF_ALLOW_TC_KEY_REQUESTS   EMBER_ALLOW_TC_LINK_KEY_REQUEST_AND_SEND_CURRENT_KEY
#define EMBER_AF_DENY_APP_KEY_REQUESTS   EMBER_DENY_APP_LINK_KEY_REQUESTS
#define EMBER_AF_DENY_TC_KEY_REQUESTS   EMBER_DENY_TC_LINK_KEY_REQUESTS
#define EMBER_AF_DEVICE_MANAGEMENT_MAXIMUM_CIN_LENGTH   (24)
#define EMBER_AF_DEVICE_MANAGEMENT_MAXIMUM_PASSWORD_LENGTH   (10)
#define EMBER_AF_DEVICE_MANAGEMENT_MAXIMUM_PROPOSED_PROVIDER_CONTACT_DETAILS_LENGTH   (18)
#define EMBER_AF_DEVICE_MANAGEMENT_MAXIMUM_PROPOSED_PROVIDER_NAME_LENGTH   (16)

Device Management plugin types.

#define EMBER_AF_DEVICE_MANAGEMENT_MAXIMUM_SITE_ID_LENGTH   (32)
#define EMBER_AF_INTER_PAN_BROADCAST   0x08
#define EMBER_AF_INTER_PAN_MULTICAST   0x0C
#define EMBER_AF_INTER_PAN_UNICAST   0x00
#define EMBER_AF_INTERPAN_DIRECTION_BOTH   0x03
#define EMBER_AF_INTERPAN_DIRECTION_CLIENT_TO_SERVER   0x01
#define EMBER_AF_INTERPAN_DIRECTION_SERVER_TO_CLIENT   0x02
#define EMBER_AF_INTERPAN_GLOBAL_COMMAND   0x04
#define EMBER_AF_INTERPAN_MANUFACTURER_SPECIFIC   0x08
#define EMBER_AF_INTERPAN_OPTION_APS_ENCRYPT   0x0001
#define EMBER_AF_INTERPAN_OPTION_MAC_HAS_LONG_ADDRESS   0x0002

Referenced by interpanLongCommand().

#define EMBER_AF_INTERPAN_OPTION_NONE   0x0000
#define EMBER_AF_INVALID_CLUSTER_ID   0xFFFF
#define EMBER_AF_INVALID_ENDPOINT   0xFF
#define EMBER_AF_INVALID_PAN_ID   0xFFFF
#define EMBER_AF_INVALID_PROFILE_ID   0xFFFF

An invalid profile ID This is a reserved profileId.

#define EMBER_AF_MAX_CLUSTERS_PER_ENDPOINT   3
#define EMBER_AF_MAX_ENDPOINTS_PER_DEVICE   1
#define EMBER_AF_METERING_FNF_CANCEL_ALL_MESSAGES   0x00020000
#define EMBER_AF_METERING_FNF_CBKE_UPDATE_REQUEST   0x00000002
#define EMBER_AF_METERING_FNF_CHANGE_SUPPLY   0x00040000
#define EMBER_AF_METERING_FNF_CHANNEL_CHANGE_PENDING   0x04000000
#define EMBER_AF_METERING_FNF_DISPLAY_MESSAGE   0x00010000
#define EMBER_AF_METERING_FNF_ENERGY_SCAN_PENDING   0x02000000
#define EMBER_AF_METERING_FNF_GET_SAMPLED_DATA   0x00800000
#define EMBER_AF_METERING_FNF_GET_SNAPSHOT   0x00400000
#define EMBER_AF_METERING_FNF_LOCAL_CHANGE_SUPPLY   0x00080000
#define EMBER_AF_METERING_FNF_NETWORK_KEY_ACTIVE   0x00008000
#define EMBER_AF_METERING_FNF_NEW_OTA_FIRMWARE   0x00000001
#define EMBER_AF_METERING_FNF_NEW_SUB_GHZ_CHANNEL_MASKS_AVAILABLE   0x01000000
#define EMBER_AF_METERING_FNF_PUSH_ALL_STATIC_DATA_BASIC_CLUSTER   0x00001000
#define EMBER_AF_METERING_FNF_PUSH_ALL_STATIC_DATA_METERING_CLUSTER   0x00002000
#define EMBER_AF_METERING_FNF_PUSH_ALL_STATIC_DATA_PREPAYMENT_CLUSTER   0x00004000
#define EMBER_AF_METERING_FNF_PUSH_HISTORICAL_METERING_DATA_ATTRIBUTE_SET   0x000001C0
#define EMBER_AF_METERING_FNF_PUSH_HISTORICAL_PREPAYMENT_DATA_ATTRIBUTE_SET   0x00000E00
#define EMBER_AF_METERING_FNF_SET_UNCONTROLLED_FLOW_THRESHOLD   0x00100000
#define EMBER_AF_METERING_FNF_STAY_AWAKE_REQUEST_HAN   0x00000010
#define EMBER_AF_METERING_FNF_STAY_AWAKE_REQUEST_WAN   0x00000020
#define EMBER_AF_METERING_FNF_TIME_SYNC   0x00000004
#define EMBER_AF_METERING_FNF_TUNNEL_MESSAGE_PENDING   0x00200000
#define EMBER_AF_METERING_NF2_CANCEL_TARIFF   0x00008000
#define EMBER_AF_METERING_NF2_PUBLISH_BILLING_PERIOD   0x00000040
#define EMBER_AF_METERING_NF2_PUBLISH_BLOCK_PERIOD   0x00000002
#define EMBER_AF_METERING_NF2_PUBLISH_BLOCK_THRESHOLDS   0x00000200
#define EMBER_AF_METERING_NF2_PUBLISH_CALORIFIC_VALUE   0x00000010
#define EMBER_AF_METERING_NF2_PUBLISH_CO2_VALUE   0x00000020
#define EMBER_AF_METERING_NF2_PUBLISH_CONSOLIDATED_BILL   0x00000080
#define EMBER_AF_METERING_NF2_PUBLISH_CONVERSION_FACTOR   0x00000008
#define EMBER_AF_METERING_NF2_PUBLISH_CPP_EVENT   0x00002000
#define EMBER_AF_METERING_NF2_PUBLISH_CREDIT_PAYMENT_INFO   0x00001000
#define EMBER_AF_METERING_NF2_PUBLISH_CURRENCY_CONVERSION   0x00000400
#define EMBER_AF_METERING_NF2_PUBLISH_PRICE   0x00000001
#define EMBER_AF_METERING_NF2_PUBLISH_PRICE_MATRIX   0x00000100
#define EMBER_AF_METERING_NF2_PUBLISH_TARIFF_INFORMATION   0x00000004
#define EMBER_AF_METERING_NF2_PUBLISH_TIER_LABELS   0x00004000
#define EMBER_AF_METERING_NF3_CANCEL_CALENDAR   0x00000020
#define EMBER_AF_METERING_NF3_PUBLISH_CALENDAR   0x00000001
#define EMBER_AF_METERING_NF3_PUBLISH_DAY   0x00000010
#define EMBER_AF_METERING_NF3_PUBLISH_SEASONS   0x00000004
#define EMBER_AF_METERING_NF3_PUBLISH_SPECIAL_DAYS   0x00000002
#define EMBER_AF_METERING_NF3_PUBLISH_WEEK   0x00000008
#define EMBER_AF_METERING_NF4_CHANGE_DEBT   0x00000002
#define EMBER_AF_METERING_NF4_CHANGE_PAYMENT_MODE   0x00000020
#define EMBER_AF_METERING_NF4_CONSUMER_TOP_UP   0x00000008
#define EMBER_AF_METERING_NF4_CREDIT_ADJUSTMENT   0x00000010
#define EMBER_AF_METERING_NF4_EMERGENCY_CREDIT_SETUP   0x00000004
#define EMBER_AF_METERING_NF4_GET_DEBT_REPAYMENT_LOG   0x00000200
#define EMBER_AF_METERING_NF4_GET_PREPAY_SNAPSHOT   0x00000040
#define EMBER_AF_METERING_NF4_GET_TOP_UP_LOG   0x00000080
#define EMBER_AF_METERING_NF4_SELECT_AVAILABLE_EMERGENCY_CREDIT   0x00000001
#define EMBER_AF_METERING_NF4_SET_LOW_CREDIT_WARNING_LEVEL   0x00000100
#define EMBER_AF_METERING_NF4_SET_MAXIMUM_CREDIT_LIMIT   0x00000400
#define EMBER_AF_METERING_NF4_SET_OVERALL_DEBT_CAP   0x00000800
#define EMBER_AF_METERING_NF5_PUBLISH_CHANGE_OF_SUPPLIER   0x00000002
#define EMBER_AF_METERING_NF5_PUBLISH_CHANGE_OF_TENANCY   0x00000001
#define EMBER_AF_METERING_NF5_REQUEST_NEW_PASSWORD_1_RESPONSE   0x00000004
#define EMBER_AF_METERING_NF5_REQUEST_NEW_PASSWORD_2_RESPONSE   0x00000008
#define EMBER_AF_METERING_NF5_REQUEST_NEW_PASSWORD_3_RESPONSE   0x00000010
#define EMBER_AF_METERING_NF5_REQUEST_NEW_PASSWORD_4_RESPONSE   0x00000020
#define EMBER_AF_METERING_NF5_RESET_BATTERY_COUNTER   0x00000080
#define EMBER_AF_METERING_NF5_UPDATE_CIN   0x00000100
#define EMBER_AF_METERING_NF5_UPDATE_SITE_ID   0x00000040
#define EMBER_AF_NULL_MANUFACTURER_CODE   0x0000

A distinguished manufacturer code that is used to indicate the absence of a manufacturer-specific profile, cluster, command, or attribute.

Referenced by emAfCliSendCommand(), and zclBufferSetup().

#define EMBER_AF_OTA_MAX_HEADER_STRING_LENGTH   32

The maximum size of the string that is present in the header of the zigbee Over-the-air file format.

#define EMBER_AF_PERMIT_JOIN_FOREVER   0xFF

Permit join times.

#define EMBER_AF_PERMIT_JOIN_MAX_TIMEOUT   0xFE
#define EMBER_AF_PLUGIN_MESSAGING_CLIENT_MESSAGE_SIZE   0
#define EMBER_AF_PLUGIN_REPORTING_UNUSED_ENDPOINT_ID   0x00

Value used when setting or getting the endpoint in a report table entry. It indicates that the entry is not in use.

#define EMBER_AF_PLUGIN_SIMPLE_METERING_SERVER_ELECTRIC_METER   0
#define EMBER_AF_PLUGIN_SIMPLE_METERING_SERVER_GAS_METER   1
#define EMBER_AF_REMOTE_CLUSTER_TYPE_CLIENT   0x0002
#define EMBER_AF_REMOTE_CLUSTER_TYPE_INVALID   0xFFFF
#define EMBER_AF_REMOTE_CLUSTER_TYPE_NONE   0x0000
#define EMBER_AF_REMOTE_CLUSTER_TYPE_SERVER   0x0001
#define EMBER_AF_SCENE_TABLE_NULL_INDEX   0xFF

Indicates the absence of a Scene table entry.

#define EMBER_AF_SCENE_TABLE_UNUSED_ENDPOINT_ID   0x00

Value used when setting or getting the endpoint in a Scene table entry. It indicates that the entry is not in use.

#define EMBER_AF_STANDALONE_BOOTLOADER_HARDWARE_TAG_LENGTH   16

The length of the hardware tag in the Ember Bootloader Query Response.

#define EMBER_AF_ZDO_RESPONSE_OVERHEAD   2

The overhead of the ZDO response. 1 byte for the sequence and 1 byte for the status code.

#define emberAfHaveDiscoveryResponseStatus (   status)    ((status) & EM_AF_DISCOVERY_RESPONSE_MASK)

A simple way to determine if the service discovery callback has a response.

Referenced by emAfCliServiceDiscoveryCallback().

#define INTER_PAN_BROADCAST   EMBER_AF_INTER_PAN_BROADCAST
#define INTER_PAN_MULTICAST   EMBER_AF_INTER_PAN_MULTICAST
#define INTER_PAN_UNICAST   EMBER_AF_INTER_PAN_UNICAST
#define InterPanHeader   EmberAfInterpanHeader
#define UID_SIZE   32
#define ZCL_PRICE_CLUSTER_MAXIMUM_RATE_LABEL_LENGTH   11
#define ZCL_SCENES_CLUSTER_MAXIMUM_NAME_LENGTH   16

Maximum length of Scene names, not including the length byte.

#define ZCL_SCENES_GLOBAL_SCENE_GROUP_ID   0x0000

The group identifier for the global scene.

#define ZCL_SCENES_GLOBAL_SCENE_SCENE_ID   0x00

The scene identifier for the global scene.

Typedef Documentation

The options for what interpan messages are allowed.

typedef uint16_t EmberAfAttributeId

Type for referring to ZCL attribute id.

typedef uint8_t EmberAfAttributeMask

Type for the attribute mask.

typedef uint8_t EmberAfAttributeType

Type for referring to ZCL attribute type.

typedef void(* EmberAfClusterAttributeChangedCallback) (uint8_t endpoint, EmberAfAttributeId attributeId)

Type for referring to the attribute changed callback function.

This function is called just after an attribute changes.

typedef uint16_t EmberAfClusterId

Type for referring to ZCL cluster id.

typedef uint8_t EmberAfClusterMask

Type for the cluster mask.

typedef EmberAfStatus(* EmberAfClusterPreAttributeChangedCallback) (uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t *value)

Type for referring to the pre-attribute changed callback function.

This function is called before an attribute changes.

typedef void(* EmberAfDefaultResponseFunction) (uint8_t endpoint, uint8_t commandId, EmberAfStatus status)

Type for referring to the default response callback function.

This function is called when default response is received, before the global callback. Global callback is called immediately afterwards.

typedef uint32_t EmberAfDifferenceType

This type is used to compare two ZCL attribute values. The size of this data type depends on the platform.

typedef void(* EmberAfEndpointEventHandler) (uint8_t endpoint)

Type for referring to the handler for endpoint events.

typedef void(* EmberAfGenericClusterFunction) (void)

Generic function type, used for either of the cluster function.

This type is used for the array of the cluster functions, and should always be cast into one of the specific functions before being called.

typedef void(* EmberAfInitFunction) (uint8_t endpoint)

Type for referring to the init callback for cluster.

Init function is called when the application starts up, once for each cluster/endpoint combination.

typedef uint8_t EmberAfInterpanMessageType

Interpan Message type: unicast, broadcast, or multicast.

typedef uint16_t EmberAfInterpanOptions

The options for sending/receiving interpan messages.

typedef void(* EmberAfManufacturerSpecificClusterAttributeChangedCallback) (uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode)

Type for referring to the manufacturer specific attribute changed callback function.

This function is called just after a manufacturer specific attribute changes.

typedef void(* EmberAfMessageSentFunction) (EmberOutgoingMessageType type, uint16_t indexOrDestination, EmberApsFrame *apsFrame, uint16_t msgLen, uint8_t *message, EmberStatus status)

Type for referring to the message sent callback function.

This function is called when a message is sent.

typedef void(* EmberAfNetworkEventHandler) (void)

Type for referring to the handler for network events.

typedef uint8_t EmberAfOtaDownloadResult
typedef void( EmberAfPartnerLinkKeyExchangeCallback) (bool success)

This defines a callback where a code element or cluster can be informed as to the result of a request to initiate a partner link key exchange. The callback will be triggered with success equal to true if the exchange completed successfully.

Bitmask data type for storing one bit of information for each ESI in the ESI table.

typedef uint16_t EmberAfProfileId

Type for referring to zigbee application profile id.

typedef uint16_t EmberAfRemoteClusterType

Zigbee Internet Client/Server Remote Cluster Types.

typedef void( EmberAfServiceDiscoveryCallback) (const EmberAfServiceDiscoveryResult *result)

This defines a callback where a code element or cluster can be informed as to the result of a service discovery they have requested. For each match, the callback is fired with all the resulting matches from that source. If the discovery was unicast to a specific device, then the callback will only be fired once with either MATCH_FOUND or COMPLETE (no matches found). If the discovery is broadcast then multiple callbacks may be fired with ::EMBER_AF_SERVICE_DISCOVERY_RESPONSE_RECEIVED. After a couple seconds the callback will then be fired with ::EMBER_AF_SERVICE_DISCOVERY_COMPLETE as the result.

typedef void(* EmberAfTickFunction) (uint8_t endpoint)

Type for referring to the tick callback for cluster.

Tick function will be called once for each tick for each endpoint in the cluster. The rate of tick is determined by the metadata of the cluster.

Enumeration Type Documentation

anonymous enum

The list of options possible for the image block request/response.

Enumerator
EMBER_AF_IMAGE_BLOCK_REQUEST_OPTIONS_NONE 
EMBER_AF_IMAGE_BLOCK_REQUEST_MIN_BLOCK_REQUEST_SUPPORTED_BY_CLIENT 
EMBER_AF_IMAGE_BLOCK_REQUEST_MIN_BLOCK_REQUEST_SUPPORTED_BY_SERVER 
anonymous enum

This status contains the success or error code of an OTA download operation.

Enumerator
EMBER_AF_OTA_DOWNLOAD_AND_VERIFY_SUCCESS 
EMBER_AF_OTA_DOWNLOAD_TIME_OUT 
EMBER_AF_OTA_VERIFY_FAILED 
EMBER_AF_OTA_SERVER_ABORTED 
EMBER_AF_OTA_CLIENT_ABORTED 
EMBER_AF_OTA_ERASE_FAILED 

An enum used to track the tasks that the Application framework cares about. These are intended to be tasks that should keep the device out of hibernation like an application level request / response. If the response does not come in as a data ack, then the application will need to stay out of hibernation to wait and poll for it.

Of course some tasks do not necessarily have a response. For instance, a ZDO request may or may not have a response. In this case, the application framework cannot rely on the fact that a response will come in to end the wake cycle, so the Application framework must timeout the wake cycle if no expected response is received or no other event can be relied upon to end the wake cycle.

Tasks of this type should be added to the wake timeout mask by calling emberAfSetWakeTimeoutBitmaskCallback so that they can be governed by a timeout instead of a request / response

the current tasks bitmask is an uint32_t bitmask used to track which tasks are active at any given time. The bottom 16 bits, values 0x01 - 0x8000 are reserved for Ember's use. The top 16 bits are reserved for the customer, values 0x10000 - 0x80000000

Enumerator
EMBER_AF_WAITING_FOR_DATA_ACK 
EMBER_AF_LAST_POLL_GOT_DATA 
EMBER_AF_WAITING_FOR_SERVICE_DISCOVERY 
EMBER_AF_WAITING_FOR_ZDO_RESPONSE 
EMBER_AF_WAITING_FOR_ZCL_RESPONSE 
EMBER_AF_WAITING_FOR_REGISTRATION 
EMBER_AF_WAITING_FOR_PARTNER_LINK_KEY_EXCHANGE 
EMBER_AF_FORCE_SHORT_POLL 
EMBER_AF_FRAGMENTATION_IN_PROGRESS 
EMBER_AF_FORCE_SHORT_POLL_FOR_PARENT_CONNECTIVITY 

CBKE Library types.

Enumerator
EMBER_AF_INVALID_KEY_ESTABLISHMENT_SUITE 
EMBER_AF_CBKE_KEY_ESTABLISHMENT_SUITE_163K1 
EMBER_AF_CBKE_KEY_ESTABLISHMENT_SUITE_283K1 
Enumerator
EMBER_AF_DEVICE_DISCOVERY_STATUS_NONE 
EMBER_AF_DEVICE_DISCOVERY_STATUS_NEW 
EMBER_AF_DEVICE_DISCOVERY_STATUS_FIND_ENDPOINTS 
EMBER_AF_DEVICE_DISCOVERY_STATUS_FIND_CLUSTERS 
EMBER_AF_DEVICE_DISCOVERY_STATUS_FIND_STACK_REVISION 
EMBER_AF_DEVICE_DISCOVERY_STATUS_DONE 
EMBER_AF_DEVICE_DISCOVERY_STATUS_FAILED 
Enumerator
EMBER_AF_DEVICE_MANAGEMENT_CHANGE_OF_TENANCY_PENDING_MASK 
EMBER_AF_DEVICE_MANAGEMENT_CHANGE_OF_SUPPLIER_PENDING_MASK 
EMBER_AF_DEVICE_MANAGEMENT_UPDATE_SITE_ID_PENDING_MASK 
EMBER_AF_DEVICE_MANAGEMENT_UPDATE_CIN_PENDING_MASK 
EMBER_AF_DEVICE_MANAGEMENT_UPDATE_SERVICE_PASSWORD_PENDING_MASK 
EMBER_AF_DEVICE_MANAGEMENT_UPDATE_CONSUMER_PASSWORD_PENDING_MASK 
Enumerator
UNUSED_PASSWORD 
SERVICE_PASSWORD 
CONSUMER_PASSWORD 

This is an enum used to control how the device will poll for a given active cluster-related event. When the event is scheduled, the application can pass a poll control value which will be stored along with the event. The processor is only allowed to poll according to the most restrictive value for all active event. For instance, if two events are active, one with EMBER_AF_LONG_POLL and the other with EMBER_AF_SHORT_POLL, then the processor will short poll until the second event is deactivated.

Enumerator
EMBER_AF_LONG_POLL 
EMBER_AF_SHORT_POLL 

This is an enum used to control how the device will sleep for a given active cluster related event. When the event is scheduled, the scheduling code can pass a sleep control value which will be stored along with the event. The processor is only allowed to sleep according to the most restrictive sleep control value for any active event. For instance, if two events are active, one with EMBER_AF_OK_TO_HIBERNATE and the other with EMBER_AF_OK_TO_NAP, then the processor will only be allowed to nap until the second event is deactivated.

Enumerator
EMBER_AF_OK_TO_SLEEP 
EMBER_AF_OK_TO_HIBERNATE 
Deprecated:
.
EMBER_AF_OK_TO_NAP 
Deprecated:
.
EMBER_AF_STAY_AWAKE 

This enumeration is used to indicate the state of an OTA bootload image undergoing verification. This is used both for cryptographic verification and manufacturer specific verification.

Enumerator
EMBER_AF_IMAGE_GOOD 
EMBER_AF_IMAGE_BAD 
EMBER_AF_IMAGE_VERIFY_IN_PROGRESS 
Enumerator
NO_APP_MESSAGE 
RECEIVED_PARTNER_CERTIFICATE 
GENERATING_EPHEMERAL_KEYS 
GENERATING_SHARED_SECRET 
KEY_GENERATION_DONE 
GENERATE_SHARED_SECRET_DONE 
LINK_KEY_ESTABLISHED 

LINK_KEY_ESTABLISHED indicates Success, key establishment done.

NO_LOCAL_RESOURCES 

Error codes: Transient failures where Key Establishment could be retried

PARTNER_NO_RESOURCES 
TIMEOUT_OCCURRED 
INVALID_APP_COMMAND 
MESSAGE_SEND_FAILURE 
PARTNER_SENT_TERMINATE 
INVALID_PARTNER_MESSAGE 
PARTNER_SENT_DEFAULT_RESPONSE_ERROR 
BAD_CERTIFICATE_ISSUER 

Fatal Errors: These results are not worth retrying because the outcome will not change

KEY_CONFIRM_FAILURE 
BAD_KEY_ESTABLISHMENT_SUITE 
KEY_TABLE_FULL 
NO_ESTABLISHMENT_ALLOWED 

Neither initiator nor responder is an ESP/TC so the key establishment is not allowed per the spec.

INVALID_CERTIFICATE_KEY_USAGE 

This status contains the success or error code of an OTA storage device operation.

Enumerator
EMBER_AF_OTA_STORAGE_SUCCESS 
EMBER_AF_OTA_STORAGE_ERROR 
EMBER_AF_OTA_STORAGE_RETURN_DATA_TOO_LONG 
EMBER_AF_OTA_STORAGE_PARTIAL_FILE_FOUND 
EMBER_AF_OTA_STORAGE_OPERATION_IN_PROGRESS 

Specifies CPP Authorization values.

Enumerator
EMBER_AF_PLUGIN_PRICE_CPP_AUTH_PENDING 
EMBER_AF_PLUGIN_PRICE_CPP_AUTH_ACCEPTED 
EMBER_AF_PLUGIN_PRICE_CPP_AUTH_REJECTED 
EMBER_AF_PLUGIN_PRICE_CPP_AUTH_FORCED 
EMBER_AF_PLUGIN_PRICE_CPP_AUTH_RESERVED 
Enumerator
EMBER_AF_PLUGIN_TUNNELING_CLIENT_SUCCESS 
EMBER_AF_PLUGIN_TUNNELING_CLIENT_BUSY 
EMBER_AF_PLUGIN_TUNNELING_CLIENT_NO_MORE_TUNNEL_IDS 
EMBER_AF_PLUGIN_TUNNELING_CLIENT_PROTOCOL_NOT_SUPPORTED 
EMBER_AF_PLUGIN_TUNNELING_CLIENT_FLOW_CONTROL_NOT_SUPPORTED 
EMBER_AF_PLUGIN_TUNNELING_CLIENT_IEEE_ADDRESS_REQUEST_FAILED 
EMBER_AF_PLUGIN_TUNNELING_CLIENT_IEEE_ADDRESS_NOT_FOUND 
EMBER_AF_PLUGIN_TUNNELING_CLIENT_ADDRESS_TABLE_FULL 
EMBER_AF_PLUGIN_TUNNELING_CLIENT_LINK_KEY_EXCHANGE_REQUEST_FAILED 
EMBER_AF_PLUGIN_TUNNELING_CLIENT_LINK_KEY_EXCHANGE_FAILED 
EMBER_AF_PLUGIN_TUNNELING_CLIENT_REQUEST_TUNNEL_FAILED 
EMBER_AF_PLUGIN_TUNNELING_CLIENT_REQUEST_TUNNEL_TIMEOUT 
Enumerator
EMBER_AF_SECURITY_PROFILE_NONE 
EMBER_AF_SECURITY_PROFILE_HA 
EMBER_AF_SECURITY_PROFILE_HA12 
EMBER_AF_SECURITY_PROFILE_SE_TEST 
EMBER_AF_SECURITY_PROFILE_SE_FULL 
EMBER_AF_SECURITY_PROFILE_Z3 
EMBER_AF_SECURITY_PROFILE_CUSTOM 

This is an enum used to indicate the result of the service discovery. Unicast discoveries are completed as soon as a response is received. Broadcast discoveries wait a period of time for multiple responses to be received.

Enumerator
EMBER_AF_BROADCAST_SERVICE_DISCOVERY_COMPLETE 
EMBER_AF_BROADCAST_SERVICE_DISCOVERY_RESPONSE_RECEIVED 
EMBER_AF_UNICAST_SERVICE_DISCOVERY_TIMEOUT 
EMBER_AF_UNICAST_SERVICE_DISCOVERY_COMPLETE_WITH_RESPONSE 
EMBER_AF_BROADCAST_SERVICE_DISCOVERY_COMPLETE_WITH_RESPONSE