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 = 0x00,
EMBER_AF_IMAGE_BLOCK_REQUEST_MIN_BLOCK_REQUEST_SUPPORTED_BY_CLIENT = 0x01,
EMBER_AF_IMAGE_BLOCK_REQUEST_MIN_BLOCK_REQUEST_SUPPORTED_BY_SERVER = 0x02,
EMBER_AF_IMAGE_BLOCK_REQUEST_SIMULATED_FROM_PAGE_REQUEST = 0x04
}
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 Zigbee Application Framework.

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.

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 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.

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
EMBER_AF_IMAGE_BLOCK_REQUEST_SIMULATED_FROM_PAGE_REQUEST
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