Non-Cluster Related Callbacks

void emberAfAddToCurrentAppTasksCallback ( EmberAfApplicationTask tasks)
Add To Current App Tasks.
EmberAfAttributeWritePermission emberAfAllowNetworkWriteAttributeCallback (int8u endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, int8u mask, int16u manufacturerCode, int8u *value, int8u type)
Allow Network Write Attribute.
boolean emberAfAttributeReadAccessCallback (int8u endpoint, EmberAfClusterId clusterId, int16u manufacturerCode, int16u attributeId)
Attribute Read Access.
boolean emberAfAttributeWriteAccessCallback (int8u endpoint, EmberAfClusterId clusterId, int16u manufacturerCode, int16u attributeId)
Attribute Write Access.
EmberStatus emberAfClearReportTableCallback (void)
Clear Report Table.
void emberAfClusterInitCallback (int8u endpoint, EmberAfClusterId clusterId)
Cluster Init.
boolean emberAfClusterSecurityCustomCallback ( EmberAfProfileId profileId, EmberAfClusterId clusterId, boolean incoming, int8u commandId)
Cluster Security Custom.
boolean emberAfConfigureReportingCommandCallback (const EmberAfClusterCommand *cmd)
Configure Reporting Command.
boolean emberAfConfigureReportingResponseCallback ( EmberAfClusterId clusterId, int8u *buffer, int16u bufLen)
Configure Reporting Response.
boolean emberAfDefaultResponseCallback ( EmberAfClusterId clusterId, int8u commandId, EmberAfStatus status)
Default Response.
boolean emberAfDiscoverAttributesResponseCallback ( EmberAfClusterId clusterId, boolean discoveryComplete, int8u *buffer, int16u bufLen, boolean extended)
Discover Attributes Response.
boolean emberAfDiscoverCommandsGeneratedResponseCallback ( EmberAfClusterId clusterId, int16u manufacturerCode, boolean discoveryComplete, int8u *commandIds, int16u commandIdCount)
Discover Commands Generated Response.
boolean emberAfDiscoverCommandsReceivedResponseCallback ( EmberAfClusterId clusterId, int16u manufacturerCode, boolean discoveryComplete, int8u *commandIds, int16u commandIdCount)
Discover Commands Received Response.
void emberAfEepromInitCallback (void)
Eeprom Init.
void emberAfEepromNoteInitializedStateCallback (boolean state)
Eeprom Note Initialized State.
void emberAfEepromShutdownCallback (void)
Eeprom Shutdown.
void emberAfEnergyScanResultCallback (int8u channel, int8s rssi)
Energy Scan Result.
EmberAfStatus emberAfExternalAttributeReadCallback (int8u endpoint, EmberAfClusterId clusterId, EmberAfAttributeMetadata *attributeMetadata, int16u manufacturerCode, int8u *buffer, int16u maxReadLength)
External Attribute Read.
EmberAfStatus emberAfExternalAttributeWriteCallback (int8u endpoint, EmberAfClusterId clusterId, EmberAfAttributeMetadata *attributeMetadata, int16u manufacturerCode, int8u *buffer)
External Attribute Write.
EmberStatus emberAfFindUnusedPanIdAndFormCallback (void)
Find Unused Pan Id And Form.
EmberAfApplicationTask emberAfGetCurrentAppTasksCallback (void)
Get Current App Tasks.
EmberAfEventPollControl emberAfGetCurrentPollControlCallback (void)
Get Current Poll Control.
int32u emberAfGetCurrentPollIntervalMsCallback (void)
Get Current Poll Interval Ms.
int32u emberAfGetCurrentPollIntervalQsCallback (void)
Get Current Poll Interval Qs.
EmberAfEventSleepControl emberAfGetCurrentSleepControlCallback (void)
Get Current Sleep Control.
int32u emberAfGetCurrentTimeCallback (void)
Get Current Time.
EmberAfEventPollControl emberAfGetDefaultPollControlCallback (void)
Get Default Poll Control.
EmberAfEventSleepControl emberAfGetDefaultSleepControlCallback (void)
Get Default Sleep Control.
boolean emberAfGetEndpointByIndexCallback (int8u index, int8u *endpointReturn)
Get Endpoint By Index.
boolean emberAfGetEndpointDescriptionCallback (int8u endpoint, EmberEndpointDescription *result)
Get Endpoint Description.
boolean emberAfGetEndpointInfoCallback (int8u endpoint, int8u *returnNetworkIndex, EmberAfEndpointInfoStruct *returnEndpointInfo)
Get Endpoint Info.
void emberAfGetFormAndJoinExtendedPanIdCallback (int8u *resultLocation)
Get Form And Join Extended Pan Id.
int32u emberAfGetLongPollIntervalMsCallback (void)
Get Long Poll Interval Ms.
int32u emberAfGetLongPollIntervalQsCallback (void)
Get Long Poll Interval Qs.
int16u emberAfGetShortPollIntervalMsCallback (void)
Get Short Poll Interval Ms.
int16u emberAfGetShortPollIntervalQsCallback (void)
Get Short Poll Interval Qs.
int8u emberAfGetSourceRouteOverheadCallback (EmberNodeId destination)
Get Source Route Overhead.
EmberAfApplicationTask emberAfGetWakeTimeoutBitmaskCallback (void)
Get Wake Timeout Bitmask.
int16u emberAfGetWakeTimeoutMsCallback (void)
Get Wake Timeout Ms.
int16u emberAfGetWakeTimeoutQsCallback (void)
Get Wake Timeout Qs.
void emberAfHalButtonIsrCallback (int8u button, int8u state)
Hal Button Isr.
EmberPacketAction emberAfIncomingPacketFilterCallback ( EmberZigbeePacketType packetType, int8u *packetData, int8u *size_p, void *data)
Incoming Packet Filter.
EmberStatus emberAfInitiateInterPanKeyEstablishmentCallback (EmberPanId panId, const EmberEUI64 eui64)
Initiate Inter Pan Key Establishment.
EmberStatus emberAfInitiateKeyEstablishmentCallback (EmberNodeId nodeId, int8u endpoint)
Initiate Key Establishment.
EmberStatus emberAfInitiatePartnerLinkKeyExchangeCallback (EmberNodeId target, int8u endpoint, EmberAfPartnerLinkKeyExchangeCallback *callback)
Initiate Partner Link Key Exchange.
boolean emberAfInterPanKeyEstablishmentCallback ( EmberAfKeyEstablishmentNotifyMessage status, boolean amInitiator, EmberPanId panId, const EmberEUI64 eui64, int8u delayInSeconds)
Inter Pan Key Establishment.
EmberStatus emberAfInterpanSendMessageCallback ( EmberAfInterpanHeader *header, int16u messageLength, int8u *message)
Interpan Send Message.
boolean emberAfKeyEstablishmentCallback ( EmberAfKeyEstablishmentNotifyMessage status, boolean amInitiator, EmberNodeId partnerShortId, int8u delayInSeconds)
Key Establishment.
void emberAfMainInitCallback (void)
Main Init.
boolean emberAfMainStartCallback (int *returnCode, int argc, char **argv)
Main Start.
void emberAfMainTickCallback (void)
Main Tick.
void emberAfMarkBuffersCallback (void)
Mark Buffers.
boolean emberAfMessageSentCallback ( EmberOutgoingMessageType type, int16u indexOrDestination, EmberApsFrame *apsFrame, int16u msgLen, int8u *message, EmberStatus status)
Message Sent.
void emberAfNcpInitCallback (boolean memoryAllocation)
Ncp Init.
void emberAfNcpIsAwakeIsrCallback (void)
Ncp Is Awake Isr.
void emberAfNetworkFoundCallback ( EmberZigbeeNetwork *networkFound, int8u lqi, int8s rssi)
Network Found.
void emberAfNetworkKeyUpdateCompleteCallback ( EmberStatus status)
Network Key Update Complete.
int8u emberAfOtaBootloadCallback (const EmberAfOtaImageId *id, int16u ncpUpgradeTagId)
Ota Bootload.
void emberAfOtaClientBootloadCallback (const EmberAfOtaImageId *id)
Ota Client Bootload.
EmberAfImageVerifyStatus emberAfOtaClientCustomVerifyCallback (boolean newVerification, const EmberAfOtaImageId *id)
Ota Client Custom Verify.
boolean emberAfOtaClientDownloadCompleteCallback ( EmberAfOtaDownloadResult success, const EmberAfOtaImageId *id)
Ota Client Download Complete.
boolean emberAfOtaClientIncomingMessageRawCallback ( EmberAfClusterCommand *message)
Ota Client Incoming Message Raw.
void emberAfOtaClientStartCallback (void)
Ota Client Start.
void emberAfOtaClientVersionInfoCallback ( EmberAfOtaImageId *currentImageInfo, int16u *hardwareVersion)
Ota Client Version Info.
int8u emberAfOtaPageRequestServerPolicyCallback (void)
Ota Page Request Server Policy.
int8u emberAfOtaServerBlockSizeCallback (EmberNodeId clientNodeId)
Ota Server Block Size.
boolean emberAfOtaServerIncomingMessageRawCallback ( EmberAfClusterCommand *message)
Ota Server Incoming Message Raw.
int8u emberAfOtaServerQueryCallback (const EmberAfOtaImageId *currentImageId, int16u *hardwareVersion, EmberAfOtaImageId *nextUpgradeImageId)
Ota Server Query.
boolean emberAfOtaServerSendImageNotifyCallback (EmberNodeId dest, int8u endpoint, int8u payloadType, int8u queryJitter, const EmberAfOtaImageId *id)
Ota Server Send Image Notify.
boolean emberAfOtaServerUpgradeEndRequestCallback (EmberNodeId source, int8u status, int32u *returnValue, const EmberAfOtaImageId *imageId)
Ota Server Upgrade End Request.
EmberAfOtaStorageStatus emberAfOtaStorageCheckTempDataCallback (int32u *currentOffset, int32u *totalImageSize, EmberAfOtaImageId *newFileInfo)
Ota Storage Check Temp Data.
EmberAfOtaStorageStatus emberAfOtaStorageClearTempDataCallback (void)
Ota Storage Clear Temp Data.
void emberAfOtaStorageCloseCallback (void)
Ota Storage Close.
void emberAfOtaStorageDriverDownloadFinishCallback (int32u offset)
Ota Storage Driver Download Finish.
boolean emberAfOtaStorageDriverInitCallback (void)
Ota Storage Driver Init.
EmberAfOtaStorageStatus emberAfOtaStorageDriverInvalidateImageCallback (void)
Ota Storage Driver Invalidate Image.
EmberAfOtaStorageStatus emberAfOtaStorageDriverPrepareToResumeDownloadCallback (void)
Ota Storage Driver Prepare To Resume Download.
boolean emberAfOtaStorageDriverReadCallback (int32u offset, int32u length, int8u *returnData)
Ota Storage Driver Read.
int32u emberAfOtaStorageDriverRetrieveLastStoredOffsetCallback (void)
Ota Storage Driver Retrieve Last Stored Offset.
boolean emberAfOtaStorageDriverWriteCallback (const int8u *dataToWrite, int32u offset, int32u length)
Ota Storage Driver Write.
EmberAfOtaStorageStatus emberAfOtaStorageFinishDownloadCallback (int32u offset)
Ota Storage Finish Download.
int8u emberAfOtaStorageGetCountCallback (void)
Ota Storage Get Count.
EmberAfOtaStorageStatus emberAfOtaStorageGetFullHeaderCallback (const EmberAfOtaImageId *id, EmberAfOtaHeader *returnData)
Ota Storage Get Full Header.
int32u emberAfOtaStorageGetTotalImageSizeCallback (const EmberAfOtaImageId *id)
Ota Storage Get Total Image Size.
EmberAfOtaStorageStatus emberAfOtaStorageInitCallback (void)
Ota Storage Init.
EmberAfOtaImageId emberAfOtaStorageIteratorFirstCallback (void)
Ota Storage Iterator First.
EmberAfOtaImageId emberAfOtaStorageIteratorNextCallback (void)
Ota Storage Iterator Next.
EmberAfOtaStorageStatus emberAfOtaStorageReadImageDataCallback (const EmberAfOtaImageId *id, int32u offset, int32u length, int8u *returnData, int32u *returnedLength)
Ota Storage Read Image Data.
EmberAfOtaImageId emberAfOtaStorageSearchCallback (int16u manufacturerId, int16u imageTypeId, const int16u *hardwareVersion)
Ota Storage Search.
EmberAfOtaStorageStatus emberAfOtaStorageWriteTempDataCallback (int32u offset, int32u length, const int8u *data)
Ota Storage Write Temp Data.
EmberPacketAction emberAfOutgoingPacketFilterCallback ( EmberZigbeePacketType packetType, int8u *packetData, int8u *size_p, void *data)
Outgoing Packet Filter.
EmberZdoStatus emberAfPartnerLinkKeyExchangeRequestCallback (EmberEUI64 partner)
Partner Link Key Exchange Request.
void emberAfPartnerLinkKeyExchangeResponseCallback (EmberNodeId sender, EmberZdoStatus status)
Partner Link Key Exchange Response.
boolean emberAfPerformingKeyEstablishmentCallback (void)
Performing Key Establishment.
void emberAfPostAttributeChangeCallback (int8u endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, int8u mask, int16u manufacturerCode, int8u type, int8u size, int8u *value)
Post Attribute Change.
void emberAfPostEm4ResetCallback (void)
Post Em4 Reset.
EmberAfStatus emberAfPreAttributeChangeCallback (int8u endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, int8u mask, int16u manufacturerCode, int8u type, int8u size, int8u *value)
Pre Attribute Change.
boolean emberAfPreCliSendCallback ( EmberApsFrame *apsFrame, EmberNodeId source, EmberNodeId destination, int8u *message, int16u messageLength)
Pre Cli Send.
boolean emberAfPreCommandReceivedCallback ( EmberAfClusterCommand *cmd)
Pre Command Received.
boolean emberAfPreMessageReceivedCallback ( EmberAfIncomingMessage *incomingMessage)
Pre Message Received.
boolean emberAfPreMessageSendCallback ( EmberAfMessageStruct *messageStruct, EmberStatus *status)
Pre Message Send.
void emberAfPreNcpResetCallback (void)
Pre Ncp Reset.
boolean emberAfPreZDOMessageReceivedCallback (EmberNodeId emberNodeId, EmberApsFrame *apsFrame, int8u *message, int16u length)
Pre ZDO Message Received.
boolean emberAfReadAttributesResponseCallback ( EmberAfClusterId clusterId, int8u *buffer, int16u bufLen)
Read Attributes Response.
boolean emberAfReadReportingConfigurationCommandCallback (const EmberAfClusterCommand *cmd)
Read Reporting Configuration Command.
boolean emberAfReadReportingConfigurationResponseCallback ( EmberAfClusterId clusterId, int8u *buffer, int16u bufLen)
Read Reporting Configuration Response.
void emberAfRegistrationAbortCallback (void)
Registration Abort.
void emberAfRegistrationCallback (boolean success)
Registration.
EmberStatus emberAfRegistrationStartCallback (void)
Registration Start.
EmberStatus emberAfRemoteDeleteBindingPermissionCallback (int8u index)
Remote Delete Binding Permission.
EmberStatus emberAfRemoteSetBindingPermissionCallback (const EmberBindingTableEntry *entry)
Remote Set Binding Permission.
void emberAfRemoveFromCurrentAppTasksCallback ( EmberAfApplicationTask tasks)
Remove From Current App Tasks.
boolean emberAfReportAttributesCallback ( EmberAfClusterId clusterId, int8u *buffer, int16u bufLen)
Report Attributes.
void emberAfReportingAttributeChangeCallback (int8u endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, int8u mask, int16u manufacturerCode, EmberAfAttributeType type, int8u *data)
Reporting Attribute Change.
void emberAfScanCompleteCallback (int8u channel, EmberStatus status)
Scan Complete.
void emberAfScanErrorCallback ( EmberStatus status)
Scan Error.
void emberAfSecurityInitCallback ( EmberInitialSecurityState *state, EmberExtendedSecurityBitmask *extended, boolean trustCenter)
Security Init.
void emberAfSetDefaultPollControlCallback ( EmberAfEventPollControl control)
Set Default Poll Control.
void emberAfSetDefaultSleepControlCallback ( EmberAfEventSleepControl control)
Set Default Sleep Control.
void emberAfSetFormAndJoinExtendedPanIdCallback (const int8u *extendedPanId)
Set Form And Join Extended Pan Id.
void emberAfSetLongPollIntervalMsCallback (int32u longPollIntervalMs)
Set Long Poll Interval Ms.
void emberAfSetLongPollIntervalQsCallback (int32u longPollIntervalQs)
Set Long Poll Interval Qs.
void emberAfSetShortPollIntervalMsCallback (int16u shortPollIntervalMs)
Set Short Poll Interval Ms.
void emberAfSetShortPollIntervalQsCallback (int16u shortPollIntervalQs)
Set Short Poll Interval Qs.
void emberAfSetSourceRouteOverheadCallback (EmberNodeId destination, int8u overhead)
Set Source Route Overhead.
void emberAfSetTimeCallback (int32u utcTime)
Set Time.
void emberAfSetWakeTimeoutBitmaskCallback ( EmberAfApplicationTask tasks)
Set Wake Timeout Bitmask.
void emberAfSetWakeTimeoutMsCallback (int16u wakeTimeoutMs)
Set Wake Timeout Ms.
void emberAfSetWakeTimeoutQsCallback (int16u wakeTimeoutQs)
Set Wake Timeout Qs.
boolean emberAfStackStatusCallback ( EmberStatus status)
Stack Status.
boolean emberAfStartMoveCallback (void)
Start Move.
EmberStatus emberAfStartSearchForJoinableNetworkCallback (void)
Start Search For Joinable Network.
void emberAfStopMoveCallback (void)
Stop Move.
void emberAfTrustCenterJoinCallback (EmberNodeId newNodeId, EmberEUI64 newNodeEui64, EmberNodeId parentOfNewNode, EmberDeviceUpdate status, EmberJoinDecision decision)
Trust Center Join.
void emberAfTrustCenterKeepaliveAbortCallback (void)
Trust Center Keepalive Abort.
void emberAfTrustCenterKeepaliveUpdateCallback (boolean registrationComplete)
Trust Center Keepalive Update.
void emberAfUnusedPanIdFoundCallback (EmberPanId panId, int8u channel)
Unused Pan Id Found.
boolean emberAfWriteAttributesResponseCallback ( EmberAfClusterId clusterId, int8u *buffer, int16u bufLen)
Write Attributes Response.
void emberAfZigbeeKeyEstablishmentCallback (EmberEUI64 partner, EmberKeyStatus status)
Zigbee Key Establishment.

Function Documentation

emberAfAddToCurrentAppTasksCallback()

void emberAfAddToCurrentAppTasksCallback ( EmberAfApplicationTask tasks )

Add To Current App Tasks.

This function is only useful to sleepy end devices. This function will note the passed item as part of a set of tasks the application has outstanding (e.g. message sent requiring APS acknwoledgement). This will affect how the application behaves with regard to sleeping and polling. Until the outstanding task is completed, the device may poll more frequently and sleep less often.

Parameters
tasks Ver.: always

emberAfAllowNetworkWriteAttributeCallback()

EmberAfAttributeWritePermission emberAfAllowNetworkWriteAttributeCallback ( int8u endpoint,
EmberAfClusterId clusterId,
EmberAfAttributeId attributeId,
int8u mask,
int16u manufacturerCode,
int8u * value,
int8u type
)

Allow Network Write Attribute.

This function is called by the application framework before it writes an attribute in response to a write attribute request from an external device. The value passed into this callback is the value to which the attribute is to be set by the framework. Example: In mirroring simple metering data on an Energy Services Interface (ESI) (formerly called Energy Service Portal (ESP) in SE 1.0).), a mirrored simple meter needs to write read-only attributes on its mirror. The-meter-mirror sample application, located in app/framework/sample-apps, uses this callback to allow the mirrored device to write simple metering attributes on the mirror regardless of the fact that most simple metering attributes are defined as read-only by the ZigBee specification. Note: The ZCL specification does not (as of this writing) specify any permission-level security for writing writeable attributes. As far as the ZCL specification is concerned, if an attribute is writeable, any device that has a link key for the device should be able to write that attribute. Furthermore if an attribute is read only, it should not be written over the air. Thus, if you implement permissions for writing attributes as a feature, you MAY be operating outside the specification. This is unlikely to be a problem for writing read-only attributes, but it may be a problem for attributes that are writeable according to the specification but restricted by the application implementing this callback.

Parameters
endpoint Ver.: always
clusterId Ver.: always
attributeId Ver.: always
mask Ver.: always
manufacturerCode Ver.: always
value Ver.: always
type Ver.: always

emberAfAttributeReadAccessCallback()

boolean emberAfAttributeReadAccessCallback ( int8u endpoint,
EmberAfClusterId clusterId,
int16u manufacturerCode,
int16u attributeId
)

Attribute Read Access.

This function is called whenever the Application Framework needs to check access permission for an attribute read.

Parameters
endpoint Ver.: always
clusterId Ver.: always
manufacturerCode Ver.: always
attributeId Ver.: always

emberAfAttributeWriteAccessCallback()

boolean emberAfAttributeWriteAccessCallback ( int8u endpoint,
EmberAfClusterId clusterId,
int16u manufacturerCode,
int16u attributeId
)

Attribute Write Access.

This function is called whenever the Application Framework needs to check access permission for an attribute write.

Parameters
endpoint Ver.: always
clusterId Ver.: always
manufacturerCode Ver.: always
attributeId Ver.: always

emberAfClearReportTableCallback()

EmberStatus emberAfClearReportTableCallback ( void )

Clear Report Table.

This function is called by the framework when the application should clear the report table.

emberAfClusterInitCallback()

void emberAfClusterInitCallback ( int8u endpoint,
EmberAfClusterId clusterId
)

Cluster Init.

This function is called when a specific cluster is initialized. It gives the application an opportunity to take care of cluster initialization procedures. It is called exactly once for each endpoint where cluster is present.

Parameters
endpoint Ver.: always
clusterId Ver.: always

emberAfClusterSecurityCustomCallback()

boolean emberAfClusterSecurityCustomCallback ( EmberAfProfileId profileId,
EmberAfClusterId clusterId,
boolean incoming,
int8u commandId
)

Cluster Security Custom.

This callback is fired when determining if APS encryption is required for a cluster outside of the specification's required clusters. In other words, for the Smart Energy profile this would be a cluster beyond the list that normally requires APS encryption.

Parameters
profileId The profile ID Ver.: always
clusterId The cluster ID Ver.: always
incoming Whether this is an incoming or outgoing message. Ver.: always
commandId The ZCL command ID being sent/received. Ver.: always

emberAfConfigureReportingCommandCallback()

boolean emberAfConfigureReportingCommandCallback ( const EmberAfClusterCommand * cmd )

Configure Reporting Command.

This function is called by the application framework when a Configure Reporting command is received from an external device. The Configure Reporting command contains a series of attribute reporting configuration records. The application should return true if the message was processed or false if it was not.

Parameters
cmd Ver.: always

emberAfConfigureReportingResponseCallback()

boolean emberAfConfigureReportingResponseCallback ( EmberAfClusterId clusterId,
int8u * buffer,
int16u bufLen
)

Configure Reporting Response.

This function is called by the application framework when a Configure Reporting Response command is received from an external device. The application should return true if the message was processed or false if it was not.

Parameters
clusterId The cluster identifier of this response. Ver.: always
buffer Buffer containing the list of attribute status records. Ver.: always
bufLen The length in bytes of the list. Ver.: always

emberAfDefaultResponseCallback()

boolean emberAfDefaultResponseCallback ( EmberAfClusterId clusterId,
int8u commandId,
EmberAfStatus status
)

Default Response.

This function is called by the application framework when a Default Response command is received from an external device. The application should return true if the message was processed or false if it was not.

Parameters
clusterId The cluster identifier of this response. Ver.: always
commandId The command identifier to which this is a response. Ver.: always
status Specifies either SUCCESS or the nature of the error that was detected in the received command. Ver.: always

emberAfDiscoverAttributesResponseCallback()

boolean emberAfDiscoverAttributesResponseCallback ( EmberAfClusterId clusterId,
boolean discoveryComplete,
int8u * buffer,
int16u bufLen,
boolean extended
)

Discover Attributes Response.

This function is called by the application framework when a Discover Attributes Response or Discover Attributes Extended Response command is received from an external device. The Discover Attributes Response command contains a bool indicating if discovery is complete and a list of zero or more attribute identifier/type records. The final argument indicates whether the response is in the extended format or not. The application should return true if the message was processed or false if it was not.

Parameters
clusterId The cluster identifier of this response. Ver.: always
discoveryComplete Indicates whether there are more attributes to be discovered. true if there are no more attributes to be discovered. Ver.: always
buffer Buffer containing the list of attribute identifier/type records. Ver.: always
bufLen The length in bytes of the list. Ver.: always
extended Indicates whether the response is in the extended format or not. Ver.: always

emberAfDiscoverCommandsGeneratedResponseCallback()

boolean emberAfDiscoverCommandsGeneratedResponseCallback ( EmberAfClusterId clusterId,
int16u manufacturerCode,
boolean discoveryComplete,
int8u * commandIds,
int16u commandIdCount
)

Discover Commands Generated Response.

This function is called by the framework when Discover Commands Generated Response is received.

Parameters
clusterId The cluster identifier of this response. Ver.: always
manufacturerCode Manufacturer code Ver.: always
discoveryComplete Indicates whether there are more commands to be discovered. Ver.: always
commandIds Buffer containing the list of command identifiers. Ver.: always
commandIdCount The length of bytes of the list, whish is the same as the number of identifiers. Ver.: always

emberAfDiscoverCommandsReceivedResponseCallback()

boolean emberAfDiscoverCommandsReceivedResponseCallback ( EmberAfClusterId clusterId,
int16u manufacturerCode,
boolean discoveryComplete,
int8u * commandIds,
int16u commandIdCount
)

Discover Commands Received Response.

This function is called by the framework when Discover Commands Received Response is received.

Parameters
clusterId The cluster identifier of this response. Ver.: always
manufacturerCode Manufacturer code Ver.: always
discoveryComplete Indicates whether there are more commands to be discovered. Ver.: always
commandIds Buffer containing the list of command identifiers. Ver.: always
commandIdCount The length of bytes of the list, whish is the same as the number of identifiers. Ver.: always

emberAfEepromInitCallback()

void emberAfEepromInitCallback ( void )

Eeprom Init.

Tells the system to initialize the EEPROM if it is not already initialized.

emberAfEepromNoteInitializedStateCallback()

void emberAfEepromNoteInitializedStateCallback ( boolean state )

Eeprom Note Initialized State.

Records the state of the EEPROM so that an intelligent driver (like the EEPROM plugin) can re-initialize the driver prior to any calls to it.

Parameters
state The state of the EEPROM, false=re-initalization needed, true=no-re-init needed Ver.: always

emberAfEepromShutdownCallback()

void emberAfEepromShutdownCallback ( void )

Eeprom Shutdown.

Tells the system to shutdown the EEPROM if it is not already shutdown.

emberAfEnergyScanResultCallback()

void emberAfEnergyScanResultCallback ( int8u channel,
int8s rssi
)

Energy Scan Result.

This is called by the low-level stack code when an 802.15.4 energy scan completes.

Parameters
channel The channel where the energy scan took place. Ver.: always
rssi The receive signal strength indicator for the channel. Ver.: always

emberAfExternalAttributeReadCallback()

EmberAfStatus emberAfExternalAttributeReadCallback ( int8u endpoint,
EmberAfClusterId clusterId,
EmberAfAttributeMetadata * attributeMetadata,
int16u manufacturerCode,
int8u * buffer,
int16u maxReadLength
)

External Attribute Read.

Like emberAfExternalAttributeWriteCallback above, this function is called when the framework needs to read an attribute that is not stored within the Application Framework's data structures. All of the important information about the attribute itself is passed as a pointer to an EmberAfAttributeMetadata struct, which is stored within the application and used to manage the attribute. A complete description of the EmberAfAttributeMetadata struct is provided in app/framework/include/af-types.h This function assumes that the application is able to read the attribute, write it into the passed buffer, and return immediately. Any attributes that require a state machine for reading and writing are not really candidates for externalization at the present time. The Application Framework does not currently include a state machine for reading or writing attributes that must take place across a series of application ticks. Attributes that cannot be read in a timely manner should be stored within the Application Framework and updated occasionally by the application code from within the emberAfMainTickCallback. If the application was successfully able to read the attribute and write it into the passed buffer, it should return a value of EMBER_ZCL_STATUS_SUCCESS. Ensure that the size of the externally managed attribute value is smaller than what the buffer can hold. In the case of a buffer overflow throw an appropriate error such as EMBER_ZCL_STATUS_INSUFFICIENT_SPACE. Any other return value indicates the application was not able to read the attribute.

Parameters
endpoint Ver.: always
clusterId Ver.: always
attributeMetadata Ver.: always
manufacturerCode Ver.: always
buffer Ver.: always
maxReadLength Ver.: always

emberAfExternalAttributeWriteCallback()

EmberAfStatus emberAfExternalAttributeWriteCallback ( int8u endpoint,
EmberAfClusterId clusterId,
EmberAfAttributeMetadata * attributeMetadata,
int16u manufacturerCode,
int8u * buffer
)

External Attribute Write.

This function is called whenever the Application Framework needs to write an attribute which is not stored within the data structures of the Application Framework itself. One of the new features in Version 2 is the ability to store attributes outside the Framework. This is particularly useful for attributes that do not need to be stored because they can be read off the hardware when they are needed, or are stored in some central location used by many modules within the system. In this case, you can indicate that the attribute is stored externally. When the framework needs to write an external attribute, it makes a call to this callback. This callback is very useful for host micros which need to store attributes in persistent memory. Because each host micro (used with an Ember NCP) has its own type of persistent memory storage, the Application Framework does not include the ability to mark attributes as stored in flash the way that it does for Ember SoCs like the EM35x. On a host micro, any attributes that need to be stored in persistent memory should be marked as external and accessed through the external read and write callbacks. Any host code associated with the persistent storage should be implemented within this callback. All of the important information about the attribute itself is passed as a pointer to an EmberAfAttributeMetadata struct, which is stored within the application and used to manage the attribute. A complete description of the EmberAfAttributeMetadata struct is provided in app/framework/include/af-types.h . This function assumes that the application is able to write the attribute and return immediately. Any attributes that require a state machine for reading and writing are not candidates for externalization at the present time. The Application Framework does not currently include a state machine for reading or writing attributes that must take place across a series of application ticks. Attributes that cannot be written immediately should be stored within the Application Framework and updated occasionally by the application code from within the emberAfMainTickCallback. If the application was successfully able to write the attribute, it returns a value of EMBER_ZCL_STATUS_SUCCESS. Any other return value indicates the application was not able to write the attribute.

Parameters
endpoint Ver.: always
clusterId Ver.: always
attributeMetadata Ver.: always
manufacturerCode Ver.: always
buffer Ver.: always

emberAfFindUnusedPanIdAndFormCallback()

EmberStatus emberAfFindUnusedPanIdAndFormCallback ( void )

Find Unused Pan Id And Form.

This function is called by the framework to search for an unused PAN id and form a new network. The application should return EMBER_SUCCESS if the operation was initiated successfully.

emberAfGetCurrentAppTasksCallback()

EmberAfApplicationTask emberAfGetCurrentAppTasksCallback ( void )

Get Current App Tasks.

This function is only useful to sleepy end devices. This function will return the set of tasks the application has outstanding. These tasks affect how the application behaves with regard to sleeping and polling.

emberAfGetCurrentPollControlCallback()

EmberAfEventPollControl emberAfGetCurrentPollControlCallback ( void )

Get Current Poll Control.

This function will retrieve the current poll control that the system is using for the current network. This is determined by examining all the scheduled events and obtaining the most restrictive poll control context across all events. The most restrictive poll control is EMBER_AF_SHORT_POLL followed by EMBER_AF_LONG_POLL.

emberAfGetCurrentPollIntervalMsCallback()

int32u emberAfGetCurrentPollIntervalMsCallback ( void )

Get Current Poll Interval Ms.

This function is only useful to end devices. This function will return the current poll interval (in milliseconds) for the current network. This interval is the maximum amount of time a child is currently waiting between polls of its parent.

emberAfGetCurrentPollIntervalQsCallback()

int32u emberAfGetCurrentPollIntervalQsCallback ( void )

Get Current Poll Interval Qs.

This function is only useful to end devices. This function will return the current poll interval (in quarter seconds) for the current network. This interval is the maximum amount of time a child is currently waiting between polls of its parent.

emberAfGetCurrentSleepControlCallback()

EmberAfEventSleepControl emberAfGetCurrentSleepControlCallback ( void )

Get Current Sleep Control.

This function will retrieve the current sleep control that the system is using. This is determined by examining all the scheduled events and obtaining the most restrictive sleep control context across all events. The most restrictive sleep control is EMBER_AF_STAY_AWAKE followed by EMBER_AF_OK_TO_SLEEP.

emberAfGetCurrentTimeCallback()

int32u emberAfGetCurrentTimeCallback ( void )

Get Current Time.

This callback is called when device attempts to get current time from the hardware. If this device has means to retrieve exact time, then this method should implement it. If the callback can't provide the exact time it should return 0 to indicate failure. Default action is to return 0, which indicates that device does not have access to real time.

emberAfGetDefaultPollControlCallback()

EmberAfEventPollControl emberAfGetDefaultPollControlCallback ( void )

Get Default Poll Control.

This function will retrieve the default poll control for the current network as previously set by emberAfSetDefaultPollControlCallback() . The default poll control will limit whether the network can long poll.

emberAfGetDefaultSleepControlCallback()

EmberAfEventSleepControl emberAfGetDefaultSleepControlCallback ( void )

Get Default Sleep Control.

This function will retrieve the default sleep control the system is using as previously set by emberAfSetDefaultSleepControlCallback() . The default sleep control will limit whether the device can sleep.

emberAfGetEndpointByIndexCallback()

boolean emberAfGetEndpointByIndexCallback ( int8u index,
int8u * endpointReturn
)

Get Endpoint By Index.

Get the endpoint number based on the passed index. By default the framework handles this by managing endpoints based on the precompiled configuration defined in AppBuilder. This callback can override this behavior at runtime and provide additional endpoints or different data than the compiled values. If the index is overridden than the callback shall return true and set the endpointReturn parameter accordingly. A value of 0xFF means the endpoint doesn't exist at that index. Otherwise false must be returned by the callback and the default framework behavior will be executed. This is only applicable to the SOC devices.

Parameters
index The index of the endpoint. Ver.: always
endpointReturn The value of endpoint. Ver.: always

emberAfGetEndpointDescriptionCallback()

boolean emberAfGetEndpointDescriptionCallback ( int8u endpoint,
EmberEndpointDescription * result
)

Get Endpoint Description.

This callback is called by the framework whenever it receives a ZDO request to enumerate the details about an endpoint. By default the framework provides the information based on the precompiled endpoint information as defined in AppBuilder. This callback can override that behavior at runtime and return different information. If the endpoint information is being overridden then the callback must return true. Otherwise it should return false, which allows the framework to perform its default behavior. This is only applicable to SOC devices.

Parameters
endpoint The endpoint number that is being queried. Ver.: always
result This is a pointer to a data structure where the endpoint information is written if the callback is providing the information. Ver.: always

emberAfGetEndpointInfoCallback()

boolean emberAfGetEndpointInfoCallback ( int8u endpoint,
int8u * returnNetworkIndex,
EmberAfEndpointInfoStruct * returnEndpointInfo
)

Get Endpoint Info.

This function is a callback to an application implemented endpoint that operates outside the normal application framework. When the framework wishes to perform operations with that endpoint it uses this callback to retrieve the endpoint's information. If the endpoint exists and the application can provide data then true shall be returned. Otherwise the callback must return false.

Parameters
endpoint The endpoint to retrieve data for. Ver.: always
returnNetworkIndex The index corresponding to the ZigBee network the endpoint belongs to. If not using a multi-network device, 0 must be returned. Otherwise on a multi-network device the stack will switch to this network before sending the message. Ver.: always
returnEndpointInfo A pointer to a data struct that will be written with information about the endpoint. Ver.: always

emberAfGetFormAndJoinExtendedPanIdCallback()

void emberAfGetFormAndJoinExtendedPanIdCallback ( int8u * resultLocation )

Get Form And Join Extended Pan Id.

This callback is called by the framework to get the extended PAN ID used by the current network for forming and joining. The extended PAN ID used for forming and joining is not necessarily the same extended PAN ID actually in use on the network.

Parameters
resultLocation Ver.: always

Referenced by initNetworkParams() .

emberAfGetLongPollIntervalMsCallback()

int32u emberAfGetLongPollIntervalMsCallback ( void )

Get Long Poll Interval Ms.

This function is only useful to end devices. This function will return the long poll interval (in milliseconds) for the current network. This interval is the maximum amount of time a child will wait between polls of its parent when it is not expecting data.

emberAfGetLongPollIntervalQsCallback()

int32u emberAfGetLongPollIntervalQsCallback ( void )

Get Long Poll Interval Qs.

This function is only useful to end devices. This function will return the long poll interval (in quarter seconds) for the current network. This interval is the maximum amount of time a child will wait between polls of its parent when it is not expecting data.

emberAfGetShortPollIntervalMsCallback()

int16u emberAfGetShortPollIntervalMsCallback ( void )

Get Short Poll Interval Ms.

This function is only useful to sleepy end devices. This function will return the short poll interval (in milliseconds) for the current network. This interval is the maximum amount of time a child will wait between polls of its parent when it is expecting data.

emberAfGetShortPollIntervalQsCallback()

int16u emberAfGetShortPollIntervalQsCallback ( void )

Get Short Poll Interval Qs.

This function is only useful to sleepy end devices. This function will return the short poll interval (in quarter seconds) for the current network. This interval is the maximum amount of time a child will wait between polls of its parent when it is expecting data.

emberAfGetSourceRouteOverheadCallback()

int8u emberAfGetSourceRouteOverheadCallback ( EmberNodeId destination )

Get Source Route Overhead.

This function is called by the framework to determine the overhead required in the network frame for source routing to a particular destination.

Parameters
destination The node id of the destination Ver.: always

emberAfGetWakeTimeoutBitmaskCallback()

EmberAfApplicationTask emberAfGetWakeTimeoutBitmaskCallback ( void )

Get Wake Timeout Bitmask.

This function is only useful to sleepy end devices. This function will return the wake timeout bitmask for the current network. The bitmask determines which tasks will timeout automatically and which tasks require manual removal from the task list.

emberAfGetWakeTimeoutMsCallback()

int16u emberAfGetWakeTimeoutMsCallback ( void )

Get Wake Timeout Ms.

This function is only useful to sleepy end devices. This function will return the wake timeout (in milliseconds) for the current network. This timeout is the maximum amount of time a child will wait for a task in the wake bitmask to finish. While waiting, the device will short poll.

emberAfGetWakeTimeoutQsCallback()

int16u emberAfGetWakeTimeoutQsCallback ( void )

Get Wake Timeout Qs.

This function is only useful to sleepy end devices. This function will return the wake timeout (in quarter seconds) for the current network. This timeout is the maximum amount of time a child will wait for a task in the wake bitmask to finish. While waiting, the device will short poll.

emberAfHalButtonIsrCallback()

void emberAfHalButtonIsrCallback ( int8u button,
int8u state
)

Hal Button Isr.

This callback is called by the framework whenever a button is pressed on the device. This callback is called within ISR context.

Parameters
button The button which has changed state, either BUTTON0 or BUTTON1 as defined in the appropriate BOARD_HEADER. Ver.: always
state The new state of the button referenced by the button parameter, either ::BUTTON_PRESSED if the button has been pressed or ::BUTTON_RELEASED if the button has been released. Ver.: always

emberAfIncomingPacketFilterCallback()

EmberPacketAction emberAfIncomingPacketFilterCallback ( EmberZigbeePacketType packetType,
int8u * packetData,
int8u * size_p,
void * data
)

Incoming Packet Filter.

** REQUIRES INCLUDING THE PACKET-HANDOFF PLUGIN **

 This is called by

the Packet Handoff plugin when the stack receives a packet from one of the protocol layers specified in EmberZigbeePacketType .

 The packetType

argument is one of the values of the EmberZigbeePacketType enum. If the stack receives an 802.15.4 MAC beacon, it will call this function with the packetType argument set to EMBER_ZIGBEE_PACKET_TYPE_BEACON .

 The

implementation of this callback may alter the data contained in packetData, modify options and flags in the auxillary data, or consume the packet itself, either sending the message, or discarding it as it sees fit.

Parameters
packetType the type of packet and associated protocol layer Ver.: always
packetData flat buffer containing the packet data associated with the packet type Ver.: always
size_p a pointer containing the size value of the packet Ver.: always
data auxillary data included with the packet Ver.: always

emberAfInitiateInterPanKeyEstablishmentCallback()

EmberStatus emberAfInitiateInterPanKeyEstablishmentCallback ( EmberPanId panId,
const EmberEUI64 eui64
)

Initiate Inter Pan Key Establishment.

This function is called by the framework to initiate key establishment with a remote device on a different PAN. The application should return EMBER_SUCCESS if key establishment was initiated successfully. The application should call emberAfInterPanKeyEstablishmentCallback as events occur.

Parameters
panId The PAN id of the remote device. Ver.: always
eui64 The EUI64 of the remote device. Ver.: always

emberAfInitiateKeyEstablishmentCallback()

EmberStatus emberAfInitiateKeyEstablishmentCallback ( EmberNodeId nodeId,
int8u endpoint
)

Initiate Key Establishment.

This function is called by the framework to initiate key establishment with a remote device. The application should return EMBER_SUCCESS if key establishment was initiated successfully. The application should call emberAfKeyEstablishmentCallback as events occur.

Parameters
nodeId The node id of the remote device. Ver.: always
endpoint The endpoint on the remote device. Ver.: always

emberAfInitiatePartnerLinkKeyExchangeCallback()

EmberStatus emberAfInitiatePartnerLinkKeyExchangeCallback ( EmberNodeId target,
int8u endpoint,
EmberAfPartnerLinkKeyExchangeCallback * callback
)

Initiate Partner Link Key Exchange.

This function is called by the framework to initiate a partner link key exchange with a remote device. The application should return EMBER_SUCCESS if the partner link key exchange was initiated successfully. When the partner link key exchange completes, the application should call the given callback.

Parameters
target The node id of the remote device. Ver.: always
endpoint The key establishment endpoint of the remote device. Ver.: always
callback The callback that should be called when the partner link key exchange completse. Ver.: always

emberAfInterPanKeyEstablishmentCallback()

boolean emberAfInterPanKeyEstablishmentCallback ( EmberAfKeyEstablishmentNotifyMessage status,
boolean amInitiator,
EmberPanId panId,
const EmberEUI64 eui64,
int8u delayInSeconds
)

Inter Pan Key Establishment.

A callback by the key-establishment code to indicate an event has occurred. For error codes this is purely a notification. For non-error status codes (besides LINK_KEY_ESTABLISHED), it is the application's chance to allow or disallow the operation. If the application returns true then the key establishment is allowed to proceed. If it returns false, then key establishment is aborted. LINK_KEY_ESTABLISHED is a notification of success.

Parameters
status Ver.: always
amInitiator Ver.: always
panId Ver.: always
eui64 Ver.: always
delayInSeconds Ver.: always

emberAfInterpanSendMessageCallback()

EmberStatus emberAfInterpanSendMessageCallback ( EmberAfInterpanHeader * header,
int16u messageLength,
int8u * message
)

Interpan Send Message.

This function will send a raw MAC message with interpan frame format using the passed parameters.

Parameters
header Interpan header info Ver.: always
messageLength The length of the message received or to send Ver.: always
message The message data received or to send. Ver.: always

Referenced by interpanCommand() , and interpanLongCommand() .

emberAfKeyEstablishmentCallback()

boolean emberAfKeyEstablishmentCallback ( EmberAfKeyEstablishmentNotifyMessage status,
boolean amInitiator,
EmberNodeId partnerShortId,
int8u delayInSeconds
)

Key Establishment.

A callback by the key-establishment code to indicate an event has occurred. For error codes this is purely a notification. For non-error status codes (besides LINK_KEY_ESTABLISHED), it is the application's chance to allow or disallow the operation. If the application returns true then the key establishment is allowed to proceed. If it returns false, then key establishment is aborted. LINK_KEY_ESTABLISHED is a notification of success.

Parameters
status Ver.: always
amInitiator Ver.: always
partnerShortId Ver.: always
delayInSeconds Ver.: always

emberAfMainInitCallback()

void emberAfMainInitCallback ( void )

Main Init.

This function is called from the application's main function. It gives the application a chance to do any initialization required at system startup. Any code that you would normally put into the top of the application's main() routine should be put into this function. This is called before the clusters, plugins, and the network are initialized so some functionality is not yet available. Note: No callback in the Application Framework is associated with resource cleanup. If you are implementing your application on a Unix host where resource cleanup is a consideration, we expect that you will use the standard Posix system calls, including the use of atexit() and handlers for signals such as SIGTERM, SIGINT, SIGCHLD, SIGPIPE and so on. If you use the signal() function to register your signal handler, please mind the returned value which may be an Application Framework function. If the return value is non-null, please make sure that you call the returned function from your handler to avoid negating the resource cleanup of the Application Framework itself.

Main Init.

This function is called when the application starts and can be used to perform any additional initialization required at system startup.

emberAfMainStartCallback()

boolean emberAfMainStartCallback ( int * returnCode,
int argc,
char ** argv
)

Main Start.

This function is called at the start of main after the HAL has been initialized. The standard main function arguments of argc and argv are passed in. However not all platforms have support for main() function arguments. Those that do not are passed NULL for argv, therefore argv should be checked for NULL before using it. If the callback determines that the program must exit, it should return true. The value returned by main() will be the value written to the returnCode pointer. Otherwise the callback should return false to let normal execution continue.

Parameters
returnCode Ver.: always
argc Ver.: always
argv Ver.: always

emberAfMainTickCallback()

void emberAfMainTickCallback ( void )

Main Tick.

Whenever main application tick is called, this callback will be called at the end of the main tick execution.

Main Tick.

This function is called in each iteration of the main application loop and can be used to perform periodic functions. The frequency with which this function is called depends on how quickly the main loop runs. If the application blocks at any time during the main loop, this function will not be called until execution resumes.

emberAfMarkBuffersCallback()

void emberAfMarkBuffersCallback ( void )

Mark Buffers.

This function is called when the garbage collector runs. Any buffers held by the application must be marked.

emberAfMessageSentCallback()

boolean emberAfMessageSentCallback ( EmberOutgoingMessageType type,
int16u indexOrDestination,
EmberApsFrame * apsFrame,
int16u msgLen,
int8u * message,
EmberStatus status
)

Message Sent.

This function is called by the application framework from the message sent handler, when it is informed by the stack regarding the message sent status. All of the values passed to the emberMessageSentHandler are passed on to this callback. This provides an opportunity for the application to verify that its message has been sent successfully and take the appropriate action. This callback should return a bool value of true or false. A value of true indicates that the message sent notification has been handled and should not be handled by the application framework.

Parameters
type Ver.: always
indexOrDestination Ver.: always
apsFrame Ver.: always
msgLen Ver.: always
message Ver.: always
status Ver.: always

emberAfNcpInitCallback()

void emberAfNcpInitCallback ( boolean memoryAllocation )

Ncp Init.

This function is called when the network coprocessor is being initialized, either at startup or upon reset. It provides applications on opportunity to perform additional configuration of the NCP. The function is always called twice when the NCP is initialized. In the first invocation, memoryAllocation will be true and the application should only issue EZSP commands that affect memory allocation on the NCP. For example, tables on the NCP can be resized in the first call. In the second invocation, memoryAllocation will be false and the application should only issue EZSP commands that do not affect memory allocation. For example, tables on the NCP can be populated in the second call. This callback is not called on SoCs.

Parameters
memoryAllocation Ver.: always

emberAfNcpIsAwakeIsrCallback()

void emberAfNcpIsAwakeIsrCallback ( void )

Ncp Is Awake Isr.

This function is called IN ISR CONTEXT. It notes that the NCP is awake after sleeping. Care should be taken to do minimal processing in this ISR handler function.

emberAfNetworkFoundCallback()

void emberAfNetworkFoundCallback ( EmberZigbeeNetwork * networkFound,
int8u lqi,
int8s rssi
)

Network Found.

This callback is generated when an active scan finds a 802.15.4 network.

Parameters
networkFound A struct containing information about the network found. Ver.: always
lqi The link quality indication of the network found. Ver.: always
rssi The received signal strength indication of the network found. Ver.: always

emberAfNetworkKeyUpdateCompleteCallback()

void emberAfNetworkKeyUpdateCompleteCallback ( EmberStatus status )

Network Key Update Complete.

This is called by the framework when a network key update operation started by the trust center is complete.

Parameters
status Ver.: always

emberAfOtaBootloadCallback()

int8u emberAfOtaBootloadCallback ( const EmberAfOtaImageId * id,
int16u ncpUpgradeTagId
)

Ota Bootload.

The platform specific routine to bootload the device from a ZigBee over-the-air upgrade file.

Parameters
id A pointer to the structure that contains the information about what OTA image to bootload. Ver.: always
ncpUpgradeTagId The tag ID of the upgrade data that will be used to bootload the device. Ver.: always

emberAfOtaClientBootloadCallback()

void emberAfOtaClientBootloadCallback ( const EmberAfOtaImageId * id )

Ota Client Bootload.

This callback is fired when the OTA Client recevies a command to bootload the newly downloaded OTA image. This callback will perform the platform specific to bootload their device.

Parameters
id This is the identifier relating to the image that has been downloaded and is ready for bootload. Ver.: always

emberAfOtaClientCustomVerifyCallback()

EmberAfImageVerifyStatus emberAfOtaClientCustomVerifyCallback ( boolean newVerification,
const EmberAfOtaImageId * id
)

Ota Client Custom Verify.

This callback is executed by the OTA client after the signature verification has successfully completed. It allows the device to do its own custom verification of the image (such as verifying that the EBL is intact).

Parameters
newVerification This indicates if a new verification should be started. Ver.: always
id This is ID of the image to be verified. Ver.: always

emberAfOtaClientDownloadCompleteCallback()

boolean emberAfOtaClientDownloadCompleteCallback ( EmberAfOtaDownloadResult success,
const EmberAfOtaImageId * id
)

Ota Client Download Complete.

This callback indicates that the OTA client has completed the download of a file. If the file has been completely downloaded and cryptographic checks have been turned on, then those will be performed prior to this callback and that outcome included in the 'success' result. On failure, this callback is merely informative, and the return type is ignored. On succesful download, this callback allows the client to perform any additional verification of the downloaded image and return that result to the OTA server.

Parameters
success This indicates the success or failure of the download and cryptographic verification process (if applicable). Ver.: always
id This is the image identifier information that corresponds to the download result. Ver.: always

emberAfOtaClientIncomingMessageRawCallback()

boolean emberAfOtaClientIncomingMessageRawCallback ( EmberAfClusterCommand * message )

Ota Client Incoming Message Raw.

This callback is for processing incoming messages for the Over-the-air bootload cluster client. ZCL will not process the message and instead hand the raw over the air data to the callback for its own processing.

Parameters
message A pointer to the structure containing the message buffer and other information about it. Ver.: always

emberAfOtaClientStartCallback()

void emberAfOtaClientStartCallback ( void )

Ota Client Start.

This callback should be called when the profile specific registration has completed successfully. It will start the client's state machine that will find the OTA server, query it for the next image, download the image, wait for the bootload message, and kick off the bootload.

emberAfOtaClientVersionInfoCallback()

void emberAfOtaClientVersionInfoCallback ( EmberAfOtaImageId * currentImageInfo,
int16u * hardwareVersion
)

Ota Client Version Info.

This function is called by the OTA client when a new query will occur to the server asking what the next version of firmware is. The client can inform the cluster software as to what information to use in the query (and subsequent download).

Parameters
currentImageInfo This is the information to use in the next query by the client cluster code. It contains the manufacturer ID, image type ID, and the firmware version to be specified in the query message sent to the server. Ver.: always
hardwareVersion This is a pointer to the hardware version to use in the query. If no hardware version should be used, then EMBER_AF_INVALID_HARDWARE_VERSION should be used. Ver.: always

emberAfOtaPageRequestServerPolicyCallback()

int8u emberAfOtaPageRequestServerPolicyCallback ( void )

Ota Page Request Server Policy.

This callback is called by the OTA server page request code when it wants to determine if it is allowed for an OTA client to make a page request. It is only called if page request support has been enabled on the server. It should return EMBER_ZCL_STATUS_SUCCESS if it allows the page request, and EMBER_ZCL_STATUS_UNSUP_CLUSTER_COMMAND if it does not want to allow it.

emberAfOtaServerBlockSizeCallback()

int8u emberAfOtaServerBlockSizeCallback ( EmberNodeId clientNodeId )

Ota Server Block Size.

This function provides a way for the server to adjust the block size of its response to an Image block request by a client.

Parameters
clientNodeId The node Id of OTA client making an image block request. Ver.: always

emberAfOtaServerIncomingMessageRawCallback()

boolean emberAfOtaServerIncomingMessageRawCallback ( EmberAfClusterCommand * message )

Ota Server Incoming Message Raw.

This callback is for processing incoming messages for the Over-the-air bootload cluster server. ZCL will not process the message and instead hand the raw over the air data to the callback for its own processing.

Parameters
message A pointer to the structure containing the message buffer and other information about it. Ver.: always

emberAfOtaServerQueryCallback()

int8u emberAfOtaServerQueryCallback ( const EmberAfOtaImageId * currentImageId,
int16u * hardwareVersion,
EmberAfOtaImageId * nextUpgradeImageId
)

Ota Server Query.

This callback is fired when the OTA server receives a query request by the client. The callback lets the server application indicate to the client what the 'next' version of software is for the device, or if there is not one available.

Parameters
currentImageId This is the current software image that the client hase. Ver.: always
hardwareVersion If this value is non-NULL, it indicates the hardware version of the client device. If NULL, the client did not specify a hardware version. Ver.: always
nextUpgradeImageId This is a pointer to a data structure containing the 'next' software version for the client to download. Ver.: always

emberAfOtaServerSendImageNotifyCallback()

boolean emberAfOtaServerSendImageNotifyCallback ( EmberNodeId dest,
int8u endpoint,
int8u payloadType,
int8u queryJitter,
const EmberAfOtaImageId * id
)

Ota Server Send Image Notify.

This callback is an indication to the OTA server that it should send out notification about an OTA file that is available for download.

Parameters
dest The destination of the image notify message. May be a broadcast address. Ver.: always
endpoint The destination endpoint of the image notify message. May be a broadcast endpoint. Ver.: always
payloadType The type of data the image notify message will contain. 0 = no data. 1 = Manufacturer ID. 2 = Manufacturer ID and the image type ID. 3 = Manufacturer ID, image type ID, and firmware version. Ver.: always
queryJitter The percentage of nodes that should respond to this message, from 1-100. On receipt of this message, each recipient will randomly choose a percentage and only query the server if their percentage is below this value. Ver.: always
id The image information that will be put in the message. The data within this struct that will be appended to the message is determined by the previous 'payloadType' argument. Ver.: always

emberAfOtaServerUpgradeEndRequestCallback()

boolean emberAfOtaServerUpgradeEndRequestCallback ( EmberNodeId source,
int8u status,
int32u * returnValue,
const EmberAfOtaImageId * imageId
)

Ota Server Upgrade End Request.

This function is called when the OTA server receives a request an upgrade end request. If the request indicated a successful download by the client, the server must tell the client when and if to upgrade to the downloaded image.

Parameters
source The node ID of the device that sent the upgrade end request. Ver.: always
status This is the ZCL status sent by the client indicating the result of its attempt to download the new upgrade image. If the status is not EMBER_ZCL_STATUS_SUCCESS then this callback is merely informative and no response mesasge will be generated by the server. Ver.: always
returnValue If the server returns true indicating that the client should apply the upgrade, this time value indicates when in the future the client should apply the upgrade. Ver.: always
imageId This variable indicates the software version that the client successfully downloaded and is asking to upgrade to. Ver.: always

emberAfOtaStorageCheckTempDataCallback()

EmberAfOtaStorageStatus emberAfOtaStorageCheckTempDataCallback ( int32u * currentOffset,
int32u * totalImageSize,
EmberAfOtaImageId * newFileInfo
)

Ota Storage Check Temp Data.

This callback will validate temporary data in the storage device to determine whether it is a complete file, a partially downloaded file, or there is no file present. When a complete or partial file is found it will return EMBER_AF_OTA_STORAGE_SUCCESS or EMBER_AF_OTA_STORAGE_PARTIAL_FILE_FOUND, respectively. In that case, the currentOffset, totalImageSize, and newFileInfo will be populated with data. When EMBER_AF_OTA_STORAGE_ERROR is returned, no temporary data is present.

Parameters
currentOffset A pointer to a value that will be written with the offset within the total file size that has been successfully stored in the storage device. This will indicate how much data has been currently dowloaded. Ver.: always
totalImageSize A pointer to a value that will be written with the total image size of the OTA file when a download has completed. This does not indicate how much data has actually been downloaded currently. Ver.: always
newFileInfo This is the image id of the temporary file data stored in the storage device. Ver.: always

emberAfOtaStorageClearTempDataCallback()

EmberAfOtaStorageStatus emberAfOtaStorageClearTempDataCallback ( void )

Ota Storage Clear Temp Data.

This function clears any existing temp data that was downloaed. It is used immediately prior to downloading a raw image over the air.

emberAfOtaStorageCloseCallback()

void emberAfOtaStorageCloseCallback ( void )

Ota Storage Close.

This callback shuts down the ZigBee Over-the-air storage module.

emberAfOtaStorageDriverDownloadFinishCallback()

void emberAfOtaStorageDriverDownloadFinishCallback ( int32u offset )

Ota Storage Driver Download Finish.

This callback defines the low-level means by which a device records the final offset value of the download image.

Parameters
offset The value of the final offset of the image download. Ver.: always

emberAfOtaStorageDriverInitCallback()

boolean emberAfOtaStorageDriverInitCallback ( void )

Ota Storage Driver Init.

The initialization code for the OTA storage driver.

emberAfOtaStorageDriverInvalidateImageCallback()

EmberAfOtaStorageStatus emberAfOtaStorageDriverInvalidateImageCallback ( void )

Ota Storage Driver Invalidate Image.

This callback invalidates the image stored on disk so that it will not be bootloaded, and it will not be a valid image that is in the middle of downloading.

emberAfOtaStorageDriverPrepareToResumeDownloadCallback()

EmberAfOtaStorageStatus emberAfOtaStorageDriverPrepareToResumeDownloadCallback ( void )

Ota Storage Driver Prepare To Resume Download.

This callback allows the underlying storage driver to prepare to resume the OTA file download. For example, the driver may exceute a page erase to insure the next page is ready to be written to.

emberAfOtaStorageDriverReadCallback()

boolean emberAfOtaStorageDriverReadCallback ( int32u offset,
int32u length,
int8u * returnData
)

Ota Storage Driver Read.

This callback defines the low-level means by which a device reads from the OTA storage device.

Parameters
offset The address offset from the start of the storage device where data is to be read. Ver.: always
length The length of the data to be read from the storage device. Ver.: always
returnData A pointer where the data read from the device should be written to. Ver.: always

emberAfOtaStorageDriverRetrieveLastStoredOffsetCallback()

int32u emberAfOtaStorageDriverRetrieveLastStoredOffsetCallback ( void )

Ota Storage Driver Retrieve Last Stored Offset.

This callback defines the low-level means by which a device retrieves the last persistently recorded download offset. This may be different than last actual download offset.

emberAfOtaStorageDriverWriteCallback()

boolean emberAfOtaStorageDriverWriteCallback ( const int8u * dataToWrite,
int32u offset,
int32u length
)

Ota Storage Driver Write.

This callback defines the low-level means by which a device reads from the OTA storage device.

Parameters
dataToWrite A pointer to the data that will be written to the storage device. Ver.: always
offset The address offset from the start of the storage device where data will be written. Ver.: always
length The length of the data to be written to the storage device. Ver.: always

emberAfOtaStorageFinishDownloadCallback()

EmberAfOtaStorageStatus emberAfOtaStorageFinishDownloadCallback ( int32u offset )

Ota Storage Finish Download.

This function indicates to the storage module that the download has finished.

Parameters
offset The final offset of the downloaded file (i.e. the total size) Ver.: always

emberAfOtaStorageGetCountCallback()

int8u emberAfOtaStorageGetCountCallback ( void )

Ota Storage Get Count.

This callback returns the total number of ZigBee Over-the-air upgrade images stored in the storage module.

emberAfOtaStorageGetFullHeaderCallback()

EmberAfOtaStorageStatus emberAfOtaStorageGetFullHeaderCallback ( const EmberAfOtaImageId * id,
EmberAfOtaHeader * returnData
)

Ota Storage Get Full Header.

This callback populates the EmberAfOtaHeader structure pointed to by the returnData with data about the OTA file stored in the storage module.

Parameters
id This is a pointer to the image id for the OTA file to retrieve information about. Ver.: always
returnData This is a pointer to the location of the structure that will be populated with data. Ver.: always

emberAfOtaStorageGetTotalImageSizeCallback()

int32u emberAfOtaStorageGetTotalImageSizeCallback ( const EmberAfOtaImageId * id )

Ota Storage Get Total Image Size.

This function returns the total size of the ZigBee Over-the-air file with the passed parameters. If no file is found with those parameters, 0 is returned.

Parameters
id A pointer to the image identifier for the OTA file to retrieve information for. Ver.: always

emberAfOtaStorageInitCallback()

EmberAfOtaStorageStatus emberAfOtaStorageInitCallback ( void )

Ota Storage Init.

This callback initializes the ZigBee Over-the-air storage module.

emberAfOtaStorageIteratorFirstCallback()

EmberAfOtaImageId emberAfOtaStorageIteratorFirstCallback ( void )

Ota Storage Iterator First.

This callback lets you walk through the list of all OTA files by jumping to the first file in the list maintained by the storage module. If there is no file then emberAfOtaInvalidImageId is returned.

emberAfOtaStorageIteratorNextCallback()

EmberAfOtaImageId emberAfOtaStorageIteratorNextCallback ( void )

Ota Storage Iterator Next.

This callback lets you walk through the list of all OTA files by jumping to the next file in the list maintained by the storage module. If there is no next file then emberAfOtaInvalidImageId is returned.

emberAfOtaStorageReadImageDataCallback()

EmberAfOtaStorageStatus emberAfOtaStorageReadImageDataCallback ( const EmberAfOtaImageId * id,
int32u offset,
int32u length,
int8u * returnData,
int32u * returnedLength
)

Ota Storage Read Image Data.

This callback reads data from the specified OTA file and returns that data to the caller.

Parameters
id This is a pointer to the image id for the OTA file to retrieve data from. Ver.: always
offset This is the offset relative to the start of the image where the data should be read from. Ver.: always
length This is the length of data that will be read. Ver.: always
returnData This is a pointer to where the data read out of the file will be written to Ver.: always
returnedLength This is a pointer to a variable where the actual length of data read will be written to. A short read may occur if the end of file was reached. Ver.: always

emberAfOtaStorageSearchCallback()

EmberAfOtaImageId emberAfOtaStorageSearchCallback ( int16u manufacturerId,
int16u imageTypeId,
const int16u * hardwareVersion
)

Ota Storage Search.

This callback searches through the list of all images for one that matches the passed parameters. On success an image identifier is returned with a matching image. On failure emberAfInvalidImageId is returned.

Parameters
manufacturerId The ZigBee assigned identifier of the manufacturer contained in the OTA image being searched for. Ver.: always
imageTypeId The image type identifier contained in the OTA image being searched for. Ver.: always
hardwareVersion This is a pointer to the hardware version that will be used in the search. If the pointer is NULL, hardware version will not be considered when searching for matching images. If it points to a value, the search will only consider images where that value falls between the minimum and maxmimum hardware version specified in the OTA file. If no hardware version is present in an OTA file but the other parameters match, the file will be considered a match Ver.: always

emberAfOtaStorageWriteTempDataCallback()

EmberAfOtaStorageStatus emberAfOtaStorageWriteTempDataCallback ( int32u offset,
int32u length,
const int8u * data
)

Ota Storage Write Temp Data.

This function writes to the temporary data in the storage device at the specified offset. It is used when downloading a raw image over the air.

Parameters
offset The location within the download image file where to write the data. Ver.: always
length The length of data to write. Ver.: always
data A pointer to the temporary data that will be written to the storage device. Ver.: always

emberAfOutgoingPacketFilterCallback()

EmberPacketAction emberAfOutgoingPacketFilterCallback ( EmberZigbeePacketType packetType,
int8u * packetData,
int8u * size_p,
void * data
)

Outgoing Packet Filter.

** REQUIRES INCLUDING THE PACKET-HANDOFF PLUGIN **

 This is called by

the Packet Handoff plugin when the stack prepares to send a packet from one of the protocol layers specified in EmberZigbeePacketType .

 The

packetType argument is one of the values of the EmberZigbeePacketType enum. If the stack receives an 802.15.4 MAC beacon, it will call this function with the packetType argument set to EMBER_ZIGBEE_PACKET_TYPE_BEACON .

The implementation of this callback may alter the data contained in packetData, modify options and flags in the auxillary data, or consume the packet itself, either sending the message, or discarding it as it sees fit.

Parameters
packetType the type of packet and associated protocol layer Ver.: always
packetData flat buffer containing the packet data associated with the packet type Ver.: always
size_p a pointer containing the size value of the packet Ver.: always
data auxillary data included with the packet Ver.: always

emberAfPartnerLinkKeyExchangeRequestCallback()

EmberZdoStatus emberAfPartnerLinkKeyExchangeRequestCallback ( EmberEUI64 partner )

Partner Link Key Exchange Request.

This function is called by the framework on SOC platforms when a remote node requests a partner link key exchange. The application should return EMBER_SUCCESS to accept the request or any other status to reject it. On network coprocessor platforms, this function will not be called because the NCP handles partner link key exchange requests based on the binding policy.

Parameters
partner The EUI of the remote node. Ver.: always

emberAfPartnerLinkKeyExchangeResponseCallback()

void emberAfPartnerLinkKeyExchangeResponseCallback ( EmberNodeId sender,
EmberZdoStatus status
)

Partner Link Key Exchange Response.

This function is called by the framework when a remote node requests a partner link key exchange. The application should return true to accept the request or false to reject it. On network coprocessor platforms, this function will not be called because the NCP handles partner link key exchange requests based on the binding policy.

Parameters
sender The EUI of the remote node. Ver.: always
status The ZDO response status. Ver.: always

emberAfPerformingKeyEstablishmentCallback()

boolean emberAfPerformingKeyEstablishmentCallback ( void )

Performing Key Establishment.

This function is called by the framework to determine if the device is performing key establishment. The application should return true if key establishment is in progress.

emberAfPostAttributeChangeCallback()

void emberAfPostAttributeChangeCallback ( int8u endpoint,
EmberAfClusterId clusterId,
EmberAfAttributeId attributeId,
int8u mask,
int16u manufacturerCode,
int8u type,
int8u size,
int8u * value
)

Post Attribute Change.

This function is called by the application framework after it changes an attribute value. The value passed into this callback is the value to which the attribute was set by the framework.

Parameters
endpoint Ver.: always
clusterId Ver.: always
attributeId Ver.: always
mask Ver.: always
manufacturerCode Ver.: always
type Ver.: always
size Ver.: always
value Ver.: always

emberAfPostEm4ResetCallback()

void emberAfPostEm4ResetCallback ( void )

Post Em4 Reset.

A callback called by application framework, and implemented by em4 plugin

emberAfPreAttributeChangeCallback()

EmberAfStatus emberAfPreAttributeChangeCallback ( int8u endpoint,
EmberAfClusterId clusterId,
EmberAfAttributeId attributeId,
int8u mask,
int16u manufacturerCode,
int8u type,
int8u size,
int8u * value
)

Pre Attribute Change.

This function is called by the application framework before it changes an attribute value. The value passed into this callback is the value to which the attribute is to be set by the framework. The application should return EMBER_ZCL_STATUS_SUCCESS to permit the change or any other EmberAfStatus to reject it.

Parameters
endpoint Ver.: always
clusterId Ver.: always
attributeId Ver.: always
mask Ver.: always
manufacturerCode Ver.: always
type Ver.: always
size Ver.: always
value Ver.: always

emberAfPreCliSendCallback()

boolean emberAfPreCliSendCallback ( EmberApsFrame * apsFrame,
EmberNodeId source,
EmberNodeId destination,
int8u * message,
int16u messageLength
)

Pre Cli Send.

This function is called by the framework when it is about to pass a message constructed over CLI to the stack primitives for sending. If the function returns true it is assumed that the callback has consumed and processed the message. The framework will not do any further processing on the message.

If the function returns false then it is assumed that the callback has

not processed the message and the framework will continue to process accordingly.

Parameters
apsFrame The structure containing the APS frame Ver.: always
source Source Node Id Ver.: always
destination Destintion Node Id Ver.: always
message Pointer to the message payload Ver.: always
messageLength Length of the message payload Ver.: always

Referenced by emAfCliSendCommand() .

emberAfPreCommandReceivedCallback()

boolean emberAfPreCommandReceivedCallback ( EmberAfClusterCommand * cmd )

Pre Command Received.

This callback is the second in the Application Framework's message processing chain. At this point in the processing of incoming over-the-air messages, the application has determined that the incoming message is a ZCL command. It parses enough of the message to populate an EmberAfClusterCommand struct. The Application Framework defines this struct value in a local scope to the command processing but also makes it available through a global pointer called emberAfCurrentCommand, in app/framework/util/util.c. When command processing is complete, this pointer is cleared.

Parameters
cmd Ver.: always

emberAfPreMessageReceivedCallback()

boolean emberAfPreMessageReceivedCallback ( EmberAfIncomingMessage * incomingMessage )

Pre Message Received.

This callback is the first in the Application Framework's message processing chain. The Application Framework calls it when a message has been received over the air but has not yet been parsed by the ZCL command-handling code. If you wish to parse some messages that are completely outside the ZCL specification or are not handled by the Application Framework's command handling code, you should intercept them for parsing in this callback.

This callback returns a Boolean value indicating whether or not the message has been handled. If the callback returns a value of true, then the Application Framework assumes that the message has been handled and it does nothing else with it. If the callback returns a value of false, then the application framework continues to process the message as it would with any incoming message. Note: This callback receives a pointer to an incoming message struct. This struct allows the application framework to provide a unified interface between both Host devices, which receive their message through the ezspIncomingMessageHandler, and SoC devices, which receive their message through emberIncomingMessageHandler.

Parameters
incomingMessage Ver.: always

emberAfPreMessageSendCallback()

boolean emberAfPreMessageSendCallback ( EmberAfMessageStruct * messageStruct,
EmberStatus * status
)

Pre Message Send.

This function is called by the framework when it is about to pass a message to the stack primitives for sending. This message may or may not be ZCL, ZDO, or some other protocol. This is called prior to any ZigBee fragmentation that may be done. If the function returns true it is assumed the callback has consumed and processed the message. The callback must also set the EmberStatus status code to be passed back to the caller. The framework will do no further processing on the message. If the function returns false then it is assumed that the callback has not processed the mesasge and the framework will continue to process accordingly.

Parameters
messageStruct The structure containing the parameters of the APS message to be sent. Ver.: always
status A pointer to the status code value that will be returned to the caller. Ver.: always

emberAfPreNcpResetCallback()

void emberAfPreNcpResetCallback ( void )

Pre Ncp Reset.

This function will be called prior to the reset of the NCP by the host.

emberAfPreZDOMessageReceivedCallback()

boolean emberAfPreZDOMessageReceivedCallback ( EmberNodeId emberNodeId,
EmberApsFrame * apsFrame,
int8u * message,
int16u length
)

Pre ZDO Message Received.

This function passes the application an incoming ZDO message and gives the appictation the opportunity to handle it. By default, this callback returns false indicating that the incoming ZDO message has not been handled and should be handled by the Application Framework.

Parameters
emberNodeId Ver.: always
apsFrame Ver.: always
message Ver.: always
length Ver.: always

emberAfReadAttributesResponseCallback()

boolean emberAfReadAttributesResponseCallback ( EmberAfClusterId clusterId,
int8u * buffer,
int16u bufLen
)

Read Attributes Response.

This function is called by the application framework when a Read Attributes Response command is received from an external device. The application should return true if the message was processed or false if it was not.

Parameters
clusterId The cluster identifier of this response. Ver.: always
buffer Buffer containing the list of read attribute status records. Ver.: always
bufLen The length in bytes of the list. Ver.: always

emberAfReadReportingConfigurationCommandCallback()

boolean emberAfReadReportingConfigurationCommandCallback ( const EmberAfClusterCommand * cmd )

Read Reporting Configuration Command.

This function is called by the application framework when a Read Reporting Configuration command is received from an external device. The application should return true if the message was processed or false if it was not.

Parameters
cmd Ver.: always

emberAfReadReportingConfigurationResponseCallback()

boolean emberAfReadReportingConfigurationResponseCallback ( EmberAfClusterId clusterId,
int8u * buffer,
int16u bufLen
)

Read Reporting Configuration Response.

This function is called by the application framework when a Read Reporting Configuration Response command is received from an external device. The application should return true if the message was processed or false if it was not.

Parameters
clusterId The cluster identifier of this response. Ver.: always
buffer Buffer containing the list of attribute reporting configuration records. Ver.: always
bufLen The length in bytes of the list. Ver.: always

emberAfRegistrationAbortCallback()

void emberAfRegistrationAbortCallback ( void )

Registration Abort.

This callback is called when the device should abort the registration process.

emberAfRegistrationCallback()

void emberAfRegistrationCallback ( boolean success )

Registration.

This callback is called when the device joins a network and the process of registration is complete. This callback provides a success value of true if the registration process was successful and a value of false if registration failed.

Parameters
success true if registration succeeded, false otherwise. Ver.: always

emberAfRegistrationStartCallback()

EmberStatus emberAfRegistrationStartCallback ( void )

Registration Start.

This callback is called when the device joins a network and the registration process should begin. The application should return EMBER_SUCCESS if the registration process started successfully. When registration is complete, the application should call emberAfRegistrationCallback with an indication of success or failure.

Referenced by optionRegisterCommand() .

emberAfRemoteDeleteBindingPermissionCallback()

EmberStatus emberAfRemoteDeleteBindingPermissionCallback ( int8u index )

Remote Delete Binding Permission.

This function is called by the framework to request permission to service the remote delete binding request. Return EMBER_SUCCESS to allow request, anything else to disallow request.

Parameters
index index to an Ember binding table entry Ver.: always

emberAfRemoteSetBindingPermissionCallback()

EmberStatus emberAfRemoteSetBindingPermissionCallback ( const EmberBindingTableEntry * entry )

Remote Set Binding Permission.

This function is called by the framework to request permission to service the remote set binding request. Return EMBER_SUCCESS to allow request, anything else to disallow request.

Parameters
entry Ember Binding Tablet Entry Ver.: always

emberAfRemoveFromCurrentAppTasksCallback()

void emberAfRemoveFromCurrentAppTasksCallback ( EmberAfApplicationTask tasks )

Remove From Current App Tasks.

This function is only useful to sleepy end devices. This function will remove the passed item from the set of tasks the application has outstanding (e.g. message sent requiring APS acknwoledgement). This will affect how the application behaves with regard to sleeping and polling. Removing the item from the list of outstanding tasks may allow the device to sleep longer and poll less frequently. If there are other outstanding tasks the system may still have to stay away and poll more often.

Parameters
tasks Ver.: always

emberAfReportAttributesCallback()

boolean emberAfReportAttributesCallback ( EmberAfClusterId clusterId,
int8u * buffer,
int16u bufLen
)

Report Attributes.

This function is called by the application framework when a Report Attributes command is received from an external device. The application should return true if the message was processed or false if it was not.

Parameters
clusterId The cluster identifier of this command. Ver.: always
buffer Buffer containing the list of attribute report records. Ver.: always
bufLen The length in bytes of the list. Ver.: always

emberAfReportingAttributeChangeCallback()

void emberAfReportingAttributeChangeCallback ( int8u endpoint,
EmberAfClusterId clusterId,
EmberAfAttributeId attributeId,
int8u mask,
int16u manufacturerCode,
EmberAfAttributeType type,
int8u * data
)

Reporting Attribute Change.

This function is called by the framework when an attribute managed by the framework changes. The application should call this function when an externally-managed attribute changes. The application should use the change notification to inform its reporting decisions.

Parameters
endpoint Ver.: always
clusterId Ver.: always
attributeId Ver.: always
mask Ver.: always
manufacturerCode Ver.: always
type Ver.: always
data Ver.: always

emberAfScanCompleteCallback()

void emberAfScanCompleteCallback ( int8u channel,
EmberStatus status
)

Scan Complete.

This is called by the low-level stack code when an 802.15.4 active scan completes.

Parameters
channel If the status indicates an error, the channel on which the error occurred. Otherwise it is undefined for EMBER_SUCCESS. Ver.: always
status The status of the scan. Ver.: always

emberAfScanErrorCallback()

void emberAfScanErrorCallback ( EmberStatus status )

Scan Error.

This is called by the framework on behalf of the form-and-join library to notify the application if an error occurs while scanning. See form-and-join documentation for more information.

Parameters
status The status of the scan. Ver.: always

emberAfSecurityInitCallback()

void emberAfSecurityInitCallback ( EmberInitialSecurityState * state,
EmberExtendedSecurityBitmask * extended,
boolean trustCenter
)

Security Init.

This callback is called by the framework to give the application a chance to modify the security settings of the node during network initialization. Depending on the context when this callback is called, the pointer to the initial security state may be NULL, which means the initial security state can no longer be modified as the node is already operating on the network.

Parameters
state Ver.: always
extended Ver.: always
trustCenter Ver.: always

emberAfSetDefaultPollControlCallback()

void emberAfSetDefaultPollControlCallback ( EmberAfEventPollControl control )

Set Default Poll Control.

This function will set the default poll control for the current network to control whether or not it can long poll.

Parameters
control Ver.: always

emberAfSetDefaultSleepControlCallback()

void emberAfSetDefaultSleepControlCallback ( EmberAfEventSleepControl control )

Set Default Sleep Control.

This function will set the default behavior of a sleeping device to control whether or not it must stay awake. A device that stays awake does not sleep at all. Otherwise, the device can sleep between events when appropriate.

Parameters
control Ver.: always

emberAfSetFormAndJoinExtendedPanIdCallback()

void emberAfSetFormAndJoinExtendedPanIdCallback ( const int8u * extendedPanId )

Set Form And Join Extended Pan Id.

This callback is called by the framework to set the extended PAN ID used by the current network for forming and joining. The extended PAN ID used for forming and joining is not necessarily the same extended PAN ID actually in use on the network.

Parameters
extendedPanId Ver.: always

Referenced by networkExtendedPanIdCommand() .

emberAfSetLongPollIntervalMsCallback()

void emberAfSetLongPollIntervalMsCallback ( int32u longPollIntervalMs )

Set Long Poll Interval Ms.

This function is only useful to end devices. This function will set the long poll interval (in milliseconds) for the current network. This interval is the maximum amount of time a child will wait between polls of its parent when it is not expecting data.

Parameters
longPollIntervalMs Ver.: always

emberAfSetLongPollIntervalQsCallback()

void emberAfSetLongPollIntervalQsCallback ( int32u longPollIntervalQs )

Set Long Poll Interval Qs.

This function is only useful to end devices. This function will set the long poll interval (in quarter seconds) for the current network. This interval is the maximum amount of time a child will wait between polls of its parent when it is not expecting data.

Parameters
longPollIntervalQs Ver.: always

emberAfSetShortPollIntervalMsCallback()

void emberAfSetShortPollIntervalMsCallback ( int16u shortPollIntervalMs )

Set Short Poll Interval Ms.

This function is only useful to sleepy end devices. This function will set the short poll interval (in milliseconds) for the current network. This interval is the maximum amount of time a child will wait between polls of its parent when it is expecting data.

Parameters
shortPollIntervalMs Ver.: always

emberAfSetShortPollIntervalQsCallback()

void emberAfSetShortPollIntervalQsCallback ( int16u shortPollIntervalQs )

Set Short Poll Interval Qs.

This function is only useful to sleepy end devices. This function will set the short poll interval (in quarter seconds) for the current network. This interval is the maximum amount of time a child will wait between polls of its parent when it is expecting data.

Parameters
shortPollIntervalQs Ver.: always

emberAfSetSourceRouteOverheadCallback()

void emberAfSetSourceRouteOverheadCallback ( EmberNodeId destination,
int8u overhead
)

Set Source Route Overhead.

This function is called by the framework when it has information about the source route overhead to a particular destination. The application may use this information to cache the source route overhead.

Parameters
destination The node id of the destination Ver.: always
overhead The overhead in bytes Ver.: always

emberAfSetTimeCallback()

void emberAfSetTimeCallback ( int32u utcTime )

Set Time.

This callback should be implemented, if the device has access to real time clock, and has an ability to update that clock. The application framework expects to be passed the utcTime which is the number of seconds since the year 2000. Default implementation does nothing. Note: This function used to take time in year, month, day, hour, min, sec. We have changed this to utcTime in order to conserve code space.

Parameters
utcTime Ver.: always

emberAfSetWakeTimeoutBitmaskCallback()

void emberAfSetWakeTimeoutBitmaskCallback ( EmberAfApplicationTask tasks )

Set Wake Timeout Bitmask.

This function is only useful to sleepy end devices. This function will set the wake timeout bitmask for the current network. The bitmask determines which tasks will timeout automatically and which tasks require manual removal from the task list.

Parameters
tasks Ver.: always

emberAfSetWakeTimeoutMsCallback()

void emberAfSetWakeTimeoutMsCallback ( int16u wakeTimeoutMs )

Set Wake Timeout Ms.

This function is only useful to sleepy end devices. This function will set the wake timeout (in milliseconds) for the current network. This timeout is the maximum amount of time a child will wait for a task in the wake bitmask to finish. While waiting, the device will short poll.

Parameters
wakeTimeoutMs Ver.: always

emberAfSetWakeTimeoutQsCallback()

void emberAfSetWakeTimeoutQsCallback ( int16u wakeTimeoutQs )

Set Wake Timeout Qs.

This function is only useful to sleepy end devices. This function will set the wake timeout (in quarter seconds) for the current network. This timeout is the maximum amount of time a child will wait for a task in the wake bitmask to finish. While waiting, the device will short poll.

Parameters
wakeTimeoutQs Ver.: always

emberAfStackStatusCallback()

boolean emberAfStackStatusCallback ( EmberStatus status )

Stack Status.

This function is called by the application framework from the stack status handler. This callbacks provides applications an opportunity to be notified of changes to the stack status and take appropriate action. The return code from this callback is ignored by the framework. The framework will always process the stack status after the callback returns.

Parameters
status Ver.: always

emberAfStartMoveCallback()

boolean emberAfStartMoveCallback ( void )

Start Move.

This function is called to initiate the process for a device to move (rejoin) to a new parent.

emberAfStartSearchForJoinableNetworkCallback()

EmberStatus emberAfStartSearchForJoinableNetworkCallback ( void )

Start Search For Joinable Network.

This function is called by the framework to search for joinable networks and join a network. The application should return EMBER_SUCCESS if the operation was initiated successfully.

emberAfStopMoveCallback()

void emberAfStopMoveCallback ( void )

Stop Move.

This function is called to cancel a previously scheduled move (rejoin) to a new parent.

emberAfTrustCenterJoinCallback()

void emberAfTrustCenterJoinCallback ( EmberNodeId newNodeId,
EmberEUI64 newNodeEui64,
EmberNodeId parentOfNewNode,
EmberDeviceUpdate status,
EmberJoinDecision decision
)

Trust Center Join.

This callback is called from within the application framework's implementation of emberTrustCenterJoinHandler or ezspTrustCenterJoinHandler. This callback provides the same arguments passed to the TrustCenterJoinHandler. For more information about the TrustCenterJoinHandler please see documentation included in stack/include/trust-center.h.

Parameters
newNodeId Ver.: always
newNodeEui64 Ver.: always
parentOfNewNode Ver.: always
status Ver.: always
decision Ver.: always

emberAfTrustCenterKeepaliveAbortCallback()

void emberAfTrustCenterKeepaliveAbortCallback ( void )

Trust Center Keepalive Abort.

This callback is called when the device should abort the trust center keepalive process.

emberAfTrustCenterKeepaliveUpdateCallback()

void emberAfTrustCenterKeepaliveUpdateCallback ( boolean registrationComplete )

Trust Center Keepalive Update.

This callback is called when the device finishes registration (successfully or otherwise) and the trust center keepalive process must be updated. If the keepalive process has not been started, then it is started. Otherwise if the keepalive is in the process of searching for the TC, it will process the result of that Trust Center search operation.

Parameters
registrationComplete Ver.: always

emberAfUnusedPanIdFoundCallback()

void emberAfUnusedPanIdFoundCallback ( EmberPanId panId,
int8u channel
)

Unused Pan Id Found.

This is called by the framework on behalf of the form-and-join library to notify the application of the PAN id and channel found following a call to ::emberScanForUnusedPanId(). See form-and-join documentation for more information.

Parameters
panId Ver.: always
channel Ver.: always

emberAfWriteAttributesResponseCallback()

boolean emberAfWriteAttributesResponseCallback ( EmberAfClusterId clusterId,
int8u * buffer,
int16u bufLen
)

Write Attributes Response.

This function is called by the application framework when a Write Attributes Response command is received from an external device. The application should return true if the message was processed or false if it was not.

Parameters
clusterId The cluster identifier of this response. Ver.: always
buffer Buffer containing the list of write attribute status records. Ver.: always
bufLen The length in bytes of the list. Ver.: always

emberAfZigbeeKeyEstablishmentCallback()

void emberAfZigbeeKeyEstablishmentCallback ( EmberEUI64 partner,
EmberKeyStatus status
)

Zigbee Key Establishment.

A callback to the application to notify it of the status of the request for a Link Key.

Parameters
partner partner The IEEE address of the partner device. Or all zeros if the Key establishment failed. Ver.: always
status The status of the key establishment. Ver.: always