Basic Server Cluster Plugin Callbacks

void emberAfPluginBasicResetToFactoryDefaultsCallback (uint8_t endpoint)
Reset To Factory Defaults.

Battery Monitor Plugin Callbacks

void emberAfPluginBatteryMonitorDataReadyCallback (uint16_t batteryVoltageMilliV)
Data Ready.

BLE Plugin Callbacks

void emberAfPluginBleGetConfigCallback (gecko_configuration_t *config)
This function is called at init time. The following fields will be overwritten by the framework:
void emberAfPluginBleEventCallback (struct gecko_cmd_packet *evt)
This function is called from the BLE stack to notify the application of a stack event.

Bulb PWM Driver Plugin Callbacks

uint16_t halBulbPwmDriverFrequencyCallback (void)
Configures the frequency of the PWM driver. Called by the bulb-pwm driver upon initialization to determine the frequency at which the PWM driver should be driven. It should return either the frequency, in Hz, or USE_DEFAULT_FREQUENCY to indicate that the plugin should use the default value. The default value is 1000 Hz, but can be overridden by a macro in the board header.
void halBulbPwmDriverInitCompleteCallback (void)
Indicates that the PWM driver has been initialized and the bulb should drive the initial LED PWM values at this time.
void halBulbPwmDriverBlinkOnCallback (void)
Generated during blinking behavior when it is time to turn the bulb on. While the plugin will determine when to blink the bulb on or off, it is up to this callback to determine how to turn the bulb on.
void halBulbPwmDriverBlinkOffCallback (void)
Generated during blinking behavior when it is time to turn the bulb off. While the plugin will determine when to blink the bulb on or off, it is up to this callback to determine how to turn the bulb off.
void halBulbPwmDriverBlinkStartCallback (void)
Generated when the application layer makes a call to initiate blinking behavior. It warns the application layer PWM code not to attempt to drive the LEDs directly and interfere with the blinking behavior.
void halBulbPwmDriverBlinkStopCallback (void)
Generated when the current blinking command finishes. The application layer PWM code must then determine what the bulb drive should be, based on the current application layer attributes (i.e., level, on/off, color XY, and so on.)

Bulb user interface Plugin Callbacks

void emberAfPluginBulbUiFinishedCallback ( EmberStatus status)
Finished.

Button Interface Plugin Callbacks

void emberAfPluginButtonInterfaceButton0PressedShortCallback (uint16_t timePressedMs)
Called when Button 0 is pressed short.
void emberAfPluginButtonInterfaceButton1PressedShortCallback (uint16_t timePressedMs)
Called when Button 1 is pressed short.
void emberAfPluginButtonInterfaceButton0PressedLongCallback (uint16_t timePressedMs, bool pressedAtReset)
Called when Button 0 is pressed long.
void emberAfPluginButtonInterfaceButton1PressedLongCallback (uint16_t timePressedMs, bool pressedAtReset)
Called when Button 1 is pressed long.
void emberAfPluginButtonInterfaceButton0PressingCallback (void)
Called while Button 0 is pressed.
void emberAfPluginButtonInterfaceButton1PressingCallback (void)
Called while Button 1 is pressed.
void emberAfPluginButtonInterfaceButton0LowCallback (void)
Called when Button 0 goes low.
void emberAfPluginButtonInterfaceButton0HighCallback (void)
Called when Button 0 goes high.
void emberAfPluginButtonInterfaceButton1LowCallback (void)
Called when Button 1 goes low.
void emberAfPluginButtonInterfaceButton1HighCallback (void)
Called when Button 1 goes high.

Button Form/Join Code Plugin Callbacks

void emberAfPluginButtonJoiningButtonEventCallback (uint8_t buttonNumber, uint32_t buttonPressDurationMs)
Button Event.

Calendar Server Plugin Callbacks

void emberAfPluginCalendarServerPublishInfoCallback (uint8_t publishCommandId, EmberNodeId clientNodeId, uint8_t clientEndpoint, uint8_t totalCommands)
Publish Info.

Radio Coexistence Plugin Callbacks

void coexCoulombCounterEventCallback (uint16_t ccState)
Reports a change in radio state.

Radio Coexistence Stub Plugin Callbacks

void emberAfPluginCoulombCounterEventCallback (uint32_t mask, uint32_t options)
Set the Radio states and energy modes.

Color Control Cluster (deprecated) Plugin Callbacks

bool emberAfPluginColorControlIsColorSupportedCallback (uint8_t hue, uint8_t saturation)
Is Color Supported.

Color Control Cluster Server Plugin Callbacks

void emberAfPluginColorControlServerComputePwmFromHsvCallback (uint8_t endpoint)
Compute Pwm from HSV.
void emberAfPluginColorControlServerComputePwmFromXyCallback (uint8_t endpoint)
Compute Pwm from HSV.
void emberAfPluginColorControlServerComputePwmFromTempCallback (uint8_t endpoint)
Compute Pwm from HSV.

Command Relay Plugin Callbacks

void emberAfPluginCommandRelayChangedCallback (void)
Changed.

Comms Hub Function (CHF) Plugin Callbacks

void emberAfPluginCommsHubFunctionSendCallback (uint8_t status, EmberEUI64 destinationDeviceId, uint16_t dataLen, uint8_t *data)
Send.
void emberAfPluginCommsHubFunctionReceivedCallback ( EmberEUI64 senderDeviceId, uint16_t dataLen, uint8_t *data)
Received.
void emberAfPluginCommsHubFunctionAlertWANCallback (uint16_t alertCode, uint8_t *gbzAlert, uint16_t gbzAlertLength)
Alert WAN.
void emberAfPluginCommsHubFunctionTunnelOpenedCallback ( EmberEUI64 remoteDeviceId)
Tunnel Opened.

Comms Hub Function (Sub-GHz) Plugin Callbacks

void emberAfPluginCommsHubFunctionSubGhzChannelChangeCallback (EmberAfPluginCommsHubFunctionSubGhzChannelChangeOutcome outcome, EmberAfStatus status)
Sub-GHz channel change request outcome callback.

Concentrator Support Plugin Callbacks

void emberAfPluginConcentratorBroadcastSentCallback (void)
Broadcast Sent.

Configuration server Plugin Callbacks

void emberAfPluginConfigurationServerFinishedCallback ( EmberStatus status)
Finished.

Connection Manager Plugin Callbacks

void emberAfPluginConnectionManagerFinishedCallback ( EmberStatus status)
Network join finished.
void emberAfPluginConnectionManagerStartNetworkSearchCallback (void)
Begin searching for network to join.
void emberAfPluginConnectionManagerLeaveNetworkCallback (void)
Leave the currently joined network.

Counters Plugin Callbacks

void emberAfPluginCountersRolloverCallback ( EmberCounterType type)
Rollover.

Delayed Join Plugin Callbacks

void emberAfPluginDelayedJoinCallback ( EmberNodeId newNodeId, EmberEUI64 newNodeEui64, EmberNodeId parentOfNewNode, EmberDeviceUpdate status, EmberJoinDecision decision)
Consumer App can implement this callback to be notified when there is a new join attempt that is waiting on the network key.

Device Database Plugin Callbacks

void emberAfPluginDeviceDatabaseDiscoveryCompleteCallback (const EmberAfDeviceInfo *device)
Discovery Complete.

Device Management Client Plugin Callbacks

void emberAfPluginDeviceManagementClientEnactChangeOfTenancyCallback (uint8_t endpoint, EmberAfDeviceManagementTenancy *tenancy)
Enact Change Of Tenancy.
void emberAfPluginDeviceManagementClientEnactChangeOfSupplierCallback (uint8_t endpoint, EmberAfDeviceManagementSupplier *supplier)
Enact Change Of Supplier.
EmberStatus emberAfPluginDeviceManagementClientEnactChangeSupplyCallback (uint8_t endpoint, EmberAfDeviceManagementSupply *supply)
Enact Change Supply.
void emberAfPluginDeviceManagementClientSetSupplyStatusCallback (uint8_t endpoint, EmberAfDeviceManagementSupplyStatusFlags *supplyStatus)
Set Supply Status.
void emberAfPluginDeviceManagementClientEnactUpdateUncontrolledFlowThresholdCallback (uint8_t endpoint, EmberAfDeviceManagementUncontrolledFlowThreshold *supplier)
Enact Update Uncontrolled Flow Threshold.

Device Management Server Plugin Callbacks

void emberAfPluginDeviceManagementServerGetPasswordCallback ( EmberNodeId senderNodeId, EmberAfDeviceManagementPasswordType passwordType, EmberAfDeviceManagementPassword passwordInfo)
Get Password.

Device Table Plugin Callbacks

void emberAfPluginDeviceTableStateChangeCallback ( EmberNodeId nodeId, uint8_t state)
StateChange.
void emberAfPluginDeviceTableClearedCallback (void)
Cleared.
void emberAfPluginDeviceTableNewDeviceCallback ( EmberEUI64 eui64)
NewDevice.
void emberAfPluginDeviceTableRejoinDeviceCallback ( EmberEUI64 newNodeEui64)
Rejoin device.
void emberAfPluginDeviceTableDeviceLeftCallback ( EmberEUI64 newNodeEui64)
StateChange.
void emberAfPluginDeviceTableInitialized (void)
StateChange.
void emberAfPluginDeviceTableIndexRemovedCallback (uint16_t currentIndex)
StateChange.
void emberAfPluginDeviceTableIndexAddedCallback (uint16_t index)
StateChange.

Door Lock Server Cluster Plugin Callbacks

bool emberAfPluginDoorLockServerActivateDoorLockCallback (bool activate)
Activate Door Lock.

Demand Response Load Control Cluster Client Plugin Callbacks

bool emberAfPluginDrlcEventActionCallback ( EmberAfLoadControlEvent *loadControlEvent, EmberAfAmiEventStatus eventStatus, uint8_t sequenceNumber)
Event Action.

EEPROM Plugin Callbacks

void emberAfPluginEepromStateChangeCallback (HalEepromState oldEepromState, HalEepromState newEepromState)
Called whenever the EEPROM changes state.

Em4 Plugin Callbacks

void emberPluginEM4BeforeEM4Callback (void)
called from idle-sleep plugin before going into em4 sleep mode This could be implemented by app to store restart sensitive app variables in RTCC RAM
void emberPluginEM4AfterEM4Callback (void)
called from idle-sleep plugin after coming back from em4 sleep mode This could be implemented by app to restore restart sensitive app variables from RTCC RAM

End Device Support Plugin Callbacks

void emberAfPluginEndDeviceSupportPollCompletedCallback ( EmberStatus status)
Poll Completed.
bool emberAfPluginEndDeviceSupportLostParentConnectivityCallback (void)
Lost Parent Connectivity.
bool emberAfPluginEndDeviceSupportPreNetworkMoveCallback (void)
Pre Network Move.

Events Server Plugin Callbacks

bool emberAfPluginEventsServerOkToClearLogCallback ( EmberAfEventLogId logId)
Ok To Clear Log.
void emberAfPluginEventsServerLogDataUpdatedCallback (const EmberAfClusterCommand *cmd)
Log Data Updated.

EZ-Mode Commissioning Plugin Callbacks

void emberAfPluginEzmodeCommissioningClientCompleteCallback (uint8_t bindingIndex)
Client Complete.

Find and Bind Initiator Plugin Callbacks

bool emberAfPluginFindAndBindInitiatorBindTargetCallback ( EmberNodeId nodeId, EmberBindingTableEntry *bindingEntry, uint8_t *groupName)
Bind Target.
void emberAfPluginFindAndBindInitiatorCompleteCallback ( EmberStatus status)
Complete.

Form and Join Library Plugin Callbacks

void emberAfPluginFormAndJoinNetworkFoundCallback ( EmberZigbeeNetwork *networkFound, uint8_t lqi, int8_t rssi)
Network Found.
void emberAfPluginFormAndJoinUnusedPanIdFoundCallback ( EmberPanId panId, uint8_t channel)
Unused Pan Id Found.

Gas Proxy Function (GPF) Plugin Callbacks

void emberAfPluginGasProxyFunctionNonTapOffMessageHandlerCompletedCallback (uint8_t *gbzCommandsResponse, uint16_t gbzCommandsResponseLength)
Non Tap Off Message Handler Completed.
void emberAfPluginGasProxyFunctionAlertWANCallback (uint16_t alertCode, uint8_t *gbzAlert, uint16_t gbzAlertLength)
Alert WAN.
void emberAfPluginGasProxyFunctionTapOffMessageFutureCommandIgnoredCallback (const EmberAfGpfMessage *gpfMessage, const EmberAfClusterCommand *zclClusterCommand)
Tap Off Message Future Command Ignored.
bool emberAfPluginGasProxyFunctionDataLogAccessRequestCallback (const EmberAfGpfMessage *gpfMessage, const EmberAfClusterCommand *zclClusterCommand)
Data Log Access Request.
EmberAfGpfZclCommandPermission emberAfPluginGasProxyFunctionValidateIncomingZclCommandCallback (const EmberAfClusterCommand *cmd, uint16_t messageCode)
Validate Incoming Zcl Command.
void emberAfPluginGasProxyFunctionUnknownSeasonWeekIdCallback (uint32_t issuerCalendarId, uint8_t *seasonEntries, uint8_t seasonEntriesLength, uint8_t unknownWeekIdSeasonsMask)
Unknown Season Week Id.
void emberAfPluginGasProxyFunctionUnknownSpecialDaysDayIdCallback (uint32_t issuerCalendarId, uint8_t *specialDayEntries, uint8_t specialDayEntriesLength, uint8_t unknownDayIdMask)
Unknown Special Days Day Id.

GBCS Device Log Plugin Callbacks

void emberAfPluginGbcsDeviceLogDeviceRemovedCallback ( EmberEUI64 deviceId)
Device Removed.

GBZ Message Controller Plugin Callbacks

void emberAfPluginGbzMessageControllerDecryptDataCallback ( EmberAfGbzMessageData *data)
Decrypt Data.
void emberAfPluginGbzMessageControllerEncryptDataCallback ( EmberAfGbzMessageData *data)
Encrypt Data.

GPIO Sensor Interface Plugin Callbacks

void emberAfPluginGpioSensorStateChangedCallback (uint8_t newSensorState)
Called whenever the GPIO sensor detects a change in state.

Green Power Server Plugin Callbacks

bool emberAfPluginGreenPowerServerGpdCommissioningCallback (EmberGpApplicationInfo *appInfo)
Gpd Commissioning.
bool emberAfPluginGreenPowerServerGpdSecurityFailureCallback (EmberGpAddress gpdAddr)
Gpd Commissioning.
bool emberAfGreenPowerClusterGpNotificationForwardCallback (EmberGpAddress *addr, uint8_t gpdCommandId, uint8_t *gpdCommandPayload)
Gpd Commissioning.
void emberAfGreenPowerClusterPassFrameWithoutTranslationCallback (EmberGpAddress *addr, uint8_t gpdCommandId, uint8_t *gpdCommandPayload)
Gpd Commissioning.
void emberAfGreenPowerServerPairingCompleteCallback (uint8_t numberOfEndpoints, uint8_t *endpoints)
Gpd Commissioning.
void emberAfGreenPowerServerCommissioningTimeoutCallback (uint8_t commissioningTimeoutType, uint8_t numberOfEndpoints, uint8_t *endpoints)
Gpd Commissioning.
bool emberAfGreenPowerServerUpdateInvolveTCCallback ( EmberStatus status)
Gpd Commissioning.

Groups Server Cluster Plugin Callbacks

void emberAfPluginGroupsServerGetGroupNameCallback (uint8_t endpoint, uint16_t groupId, uint8_t *groupName)
Get Group Name.
void emberAfPluginGroupsServerSetGroupNameCallback (uint8_t endpoint, uint16_t groupId, uint8_t *groupName)
Set Group Name.
bool emberAfPluginGroupsServerGroupNamesSupportedCallback (uint8_t endpoint)
Group Names Supported.

HAL Library Plugin Callbacks

void halRadioPowerUpHandler (void)
Called whenever the radio is powered on.
void halRadioPowerDownHandler (void)
Called whenever the radio is powered off.
void halSleepCallback (boolean enter, SleepModes sleepMode)
Called whenever the microcontroller enters/exits a idle/sleep mode.

Identify Cluster Plugin Callbacks

void emberAfPluginIdentifyStartFeedbackCallback (uint8_t endpoint, uint16_t identifyTime)
Start Feedback.
void emberAfPluginIdentifyStopFeedbackCallback (uint8_t endpoint)
Stop Feedback.

Idle/Sleep Plugin Callbacks

bool emberAfPluginIdleSleepOkToSleepCallback (uint32_t durationMs)
Ok To Sleep.
void emberAfPluginIdleSleepWakeUpCallback (uint32_t durationMs)
Wake Up.
bool emberAfPluginIdleSleepOkToIdleCallback (void)
Ok To Idle.
void emberAfPluginIdleSleepActiveCallback (void)
Active.
bool emberAfPluginIdleSleepRtosCallback (uint32_t *durationMs, bool sleepOk)
RTOS idle/sleep.
void emberPluginEM4AboutToGoInEM4Callback (uint32_t sleepDurationMs)
about to go to em4 sleep called from idle-sleep plugin, implemented in em4 plugin stores stack related variables in RTCC RAM
void emberPluginEM4ComingBackFromEM4Callback (void)
coming back from em4 sleep called from idle-sleep plugin, implemented in em4 plugin. Restores stack related variables from RTCC RAM
bool emberAfOKToGoToEM4Callback (void)
Ok To Sleep.
void emberAfCameBackFromEM4Callback (void)
Ok To Sleep.

Interpan Plugin Callbacks

bool emberAfPluginInterpanPreMessageReceivedCallback (const EmberAfInterpanHeader *header, uint8_t msgLen, uint8_t *message)
Pre Message Received.
void emberAfPluginInterpanMessageReceivedOverFragmentsCallback (const EmberAfInterpanHeader *header, uint8_t msgLen, uint8_t *message)
Message Received Over Fragments.
void emberAfPluginInterpanFragmentTransmissionFailedCallback (uint8_t interpanFragmentationStatus, uint8_t fragmentNum)
Fragment Transmission Failed.

Level Control Server Cluster Plugin Callbacks

void emberAfPluginLevelControlClusterServerPostInitCallback (uint8_t endpoint)
Level Control Cluster Server Post Init.
void emberAfPluginLevelControlCoupledColorTempChangeCallback (uint8_t endpoint)
Level Control Coupled Color Temp Change.

Low Voltage Shutdown Plugin Callbacks

bool emberAfPluginLowVoltageShutdownOkToShutdownCallback (uint16_t shutdownVoltage)
Ok To Shutdown.
void emberAfPluginLowVoltageShutdownPreShutdownCallback (uint16_t shutdownVoltage)
Pre Shutdown.

Messaging Client Cluster Plugin Callbacks

bool emberAfPluginMessagingClientPreDisplayMessageCallback (uint32_t messageId, uint8_t messageControl, uint32_t startTime, uint16_t durationInMinutes, uint8_t *message, uint8_t optionalExtendedMessageControl)
Pre Display Message.
void emberAfPluginMessagingClientDisplayMessageCallback ( EmberAfPluginMessagingClientMessage *message)
Display Message.
void emberAfPluginMessagingClientCancelMessageCallback ( EmberAfPluginMessagingClientMessage *message)
Cancel Message.

Meter Mirror Plugin Callbacks

void emberAfPluginMeterMirrorMirrorAddedCallback (const EmberEUI64 requestingDeviceIeeeAddress, uint8_t endpoint)
Mirror Added.
void emberAfPluginMeterMirrorMirrorRemovedCallback (const EmberEUI64 requestingDeviceIeeeAddress, uint8_t endpoint)
Mirror Removed.
void emberAfPluginMeterMirrorReportingCompleteCallback (uint8_t endpoint)
Reporting Complete.

Meter Snapshot Server Plugin Callbacks

void emberAfPluginMeterSnapshotServerScheduleSnapshotCallback (uint8_t srcEndpoint, uint8_t dstEndpoint, EmberNodeId dest, uint8_t *snapshotPayload, uint8_t *responsePayload)
Schedule Snapshot.
uint32_t emberAfPluginMeterSnapshotServerTakeSnapshotCallback (uint8_t endpoint, uint32_t snapshotCause, uint8_t *snapshotConfirmation)
Take Snapshot.
void emberAfPluginMeterSnapshotServerGetSnapshotCallback (uint8_t srcEndpoint, uint8_t dstEndpoint, EmberNodeId dest, uint8_t *snapshotCriteria)
Get Snapshot.

Metering Server Plugin Callbacks

void emberAfPluginMeteringServerProcessNotificationFlagsCallback (uint16_t attributeId, uint32_t attributeValue)
Server Process Notification.

Micrium RTOS Plugin Callbacks

void emberAfPluginMicriumRtosAppTask1InitCallback (void)
This function is called from the Micrium RTOS plugin before the Application (1) task is created.
void emberAfPluginMicriumRtosAppTask1MainLoopCallback (void *p_arg)
This function implements the Application (1) task main loop.
void emberAfPluginMicriumRtosAppTask2InitCallback (void)
This function is called from the Micrium RTOS plugin before the Application (2) task is created.
void emberAfPluginMicriumRtosAppTask2MainLoopCallback (void *p_arg)
This function implements the Application (2) task main loop.
void emberAfPluginMicriumRtosAppTask3InitCallback (void)
This function is called from the Micrium RTOS plugin before the Application (3) task is created.
void emberAfPluginMicriumRtosAppTask3MainLoopCallback (void *p_arg)
This function implements the Application (3) task main loop.

Network Creator Plugin Callbacks

void emberAfPluginNetworkCreatorCompleteCallback (const EmberNetworkParameters *network, bool usedSecondaryChannels)
Complete.
EmberPanId emberAfPluginNetworkCreatorGetPanIdCallback (void)
Get Pan Id.
int8_t emberAfPluginNetworkCreatorGetRadioPowerCallback (void)
Get Power For Radio Channel.

Network Find Plugin Callbacks

void emberAfPluginNetworkFindFinishedCallback ( EmberStatus status)
Finished.
int8_t emberAfPluginNetworkFindGetRadioPowerForChannelCallback (uint8_t pgChan)
Get Radio Power For Channel.
bool emberAfPluginNetworkFindJoinCallback ( EmberZigbeeNetwork *networkFound, uint8_t lqi, int8_t rssi)
Join.
int8_t emberAfPluginNetworkFindGetEnergyThresholdForChannelCallback (uint8_t pgChan)
Get Energy Threshold For Channel.
bool emberAfPluginNetworkFindGetEnableScanningAllChannelsCallback (void)
Get Enable Scanning All Channels.

Network Steering Plugin Callbacks

void emberAfPluginNetworkSteeringCompleteCallback ( EmberStatus status, uint8_t totalBeacons, uint8_t joinAttempts, uint8_t finalState)
Complete.
int8_t emberAfPluginNetworkSteeringGetPowerForRadioChannelCallback (uint8_t channel)
Get Power For Radio Channel.
bool emberAfPluginNetworkSteeringGetDistributedKeyCallback ( EmberKeyData *key)
Get Distributed Key.
EmberNodeType emberAfPluginNetworkSteeringGetNodeTypeCallback (EmberAfPluginNetworkSteeringJoiningState state)
Get Node Type.

Occupancy PYD-1698 Plugin Callbacks

void halOccupancyStateChangedCallback (HalOccupancyState occupancyState)
Occupancy state has changed.

Occupancy Sensor Server Cluster Plugin Callbacks

void emberAfPluginOccupancySensorServerOccupancyStateChangedCallback (HalOccupancyState occupancyState)
Occupancy state changed.

On/Off Server Cluster Plugin Callbacks

void emberAfPluginOnOffClusterServerPostInitCallback (uint8_t endpoint)
On/off Cluster Server Post Init.

OTA Bootload Cluster Client Plugin Callbacks

void emberAfPluginOtaClientPreBootloadCallback (uint8_t srcEndpoint, uint8_t serverEndpoint, EmberNodeId serverNodeId)
Pre-Bootload Callback.

OTA Bootload Cluster Server Plugin Callbacks

void emberAfPluginOtaServerUpdateStartedCallback (uint16_t manufacturerId, uint16_t imageTypeId, uint32_t firmwareVersion, uint8_t maxDataSize, uint32_t offset)
UpdateStarted.
void emberAfPluginOtaServerBlockSentCallback (uint8_t actualLength, uint16_t manufacturerId, uint16_t imageTypeId, uint32_t firmwareVersion)
OTA Server Block Sent Callback.
void emberAfPluginOtaServerUpdateCompleteCallback (uint16_t manufacturerId, uint16_t imageTypeId, uint32_t firmwareVersion, EmberNodeId source, uint8_t status)
OTA Server Update Complete Callback.
uint8_t emberAfOtaServerImageBlockRequestCallback ( EmberAfImageBlockRequestCallbackStruct *data)
Ota Server Image Block Request.

OTA Bootload Cluster Server Policy Plugin Callbacks

uint8_t emberAfPluginOtaServerPolicyGetClientDelayUnits ( EmberNodeId clientNodeId, EmberEUI64 clientEui64)
GetClientDelayUnits.

OTA Simple Storage EEPROM Driver Plugin Callbacks

void emberAfPluginOtaStorageSimpleEepromEraseCompleteCallback (bool success)
Erase Complete.

Poll Control Server Cluster Plugin Callbacks

void emberAfPluginPollControlServerCheckInTimeoutCallback (void)
CheckInTimeout.

Prepayment Server Plugin Callbacks

bool emberAfPluginPrepaymentServerConsumerTopUpCallback (uint8_t originatingDevice, uint8_t *topUpCode)
Consumer Top Up.

Price Client Plugin Callbacks

void emberAfPluginPriceClientPriceStartedCallback ( EmberAfPluginPriceClientPrice *price)
Price Started.
void emberAfPluginPriceClientPriceExpiredCallback ( EmberAfPluginPriceClientPrice *price)
Price Expired.
uint8_t emberAfPluginPriceClientPendingCppEventCallback (uint8_t cppAuth)
Pending Cpp Event.

Price Server Plugin Callbacks

void emberAfPluginPriceServerNewActivePriceMatrixCallback (const EmberAfPriceCommonInfo *priceCommonInfo, const EmberAfScheduledPriceMatrix *priceMatrix)
New Active Price Matrix.
void emberAfPluginPriceServerNewActiveTariffInformationCallback (const EmberAfPriceCommonInfo *priceCommonInfo, const EmberAfScheduledTariff *priceTariffInfo)
New Active Tariff Information.
void emberAfPluginPriceServerNewActiveBlockThresholdsInformationCallback (const EmberAfPriceCommonInfo *priceCommonInfo, const EmberAfScheduledBlockThresholds *priceBlockThresholds)
New Active Block Thresholds Information.
void emberAfPluginPriceServerNewActiveBlockPeriodInformationCallback (const EmberAfPriceCommonInfo *priceCommonInfo, const EmberAfPriceBlockPeriod *priceBlockPeriods)
New Active Block Period Information.

Reporting Plugin Callbacks

EmberAfStatus emberAfPluginReportingConfiguredCallback (const EmberAfPluginReportingEntry *entry)
Configured.
bool emberAfPluginReportingGetDefaultReportingConfigCallback ( EmberAfPluginReportingEntry *entry)
Configured.

SB1 Gesture Sensor Plugin Callbacks

void emberAfPluginSb1GestureSensorGestureReceivedCallback (uint8_t gestureReceived, uint8_t switchNumber)
Called whenever the SB1 receives a gesture.

Security Sensor Interface Plugin Callbacks

void emberAfPluginSecuritySensorStatusChangedCallback (uint16_t status)
Security sensor state changed.

Simple Metering Client Plugin Callbacks

uint16_t emberAfPluginSimpleMeteringClientRequestMirrorCallback ( EmberEUI64 requestingDeviceIeeeAddress)
Request Mirror.
uint16_t emberAfPluginSimpleMeteringClientRemoveMirrorCallback ( EmberEUI64 requestingDeviceIeeeAddress)
Remove Mirror.

Simple Metering Server Plugin Callbacks

void emberAfPluginSimpleMeteringServerProcessNotificationFlagsCallback (uint16_t attributeId, uint32_t attributeValue)
Process Notification Flags.

Sleepy Message Queue Plugin Callbacks

void emberAfPluginSleepyMessageQueueMessageTimedOutCallback (uint8_t sleepyMsgId)
Message Timed Out.

Standalone Bootloader Client Plugin Callbacks

bool emberAfPluginStandaloneBootloaderClientAllowIncomingMessageCallback ( EmberEUI64 sourceEui64, uint8_t command)
Allow Incoming Message.
bool emberAfPluginStandaloneBootloaderClientAllowBootloadLaunchCallback ( EmberEUI64 sourceEui64)
Allow Bootload Launch.

Standalone Bootloader Common Plugin Callbacks

bool emberAfPluginStandaloneBootloaderCommonIncomingMessageCallback ( EmberEUI64 longId, uint8_t length, uint8_t *message)
Incoming Message.

Standalone Bootloader Server Plugin Callbacks

void emberAfPluginStandaloneBootloaderServerQueryResponseCallback (bool queryWasBroadcast, const EmberAfStandaloneBootloaderQueryResponseData *queryData)
Query Response.
void emberAfPluginStandaloneBootloaderServerFinishedCallback (bool success)
Finished.

Sub-GHz Client Plugin Callbacks

bool emberAfPluginSubGhzSuspendZclMessagesCallback (uint8_t period)
Sub-GHz Cluster Suspend ZCL Messages.

Sub-GHz Server Plugin Callbacks

boolean emberAfPluginSubGhzDutyCycleCallback (uint8_t channelPage, uint8_t channel, EmberDutyCycleState oldState, EmberDutyCycleState newState)
Duty cycle state change callback for the use with the Sub-GHz plugin.
void emberAfPluginSubGhzUnsolicitedEnhancedUpdateNotifyCallback (uint8_t channelPage, uint8_t channel, uint16_t macTxUcastTotal, uint16_t macTxUcastFailures, uint16_t macTxUcastRetries, uint8_t period)
Callback to let the application handle the incoming Mgmt_NWK_Unsolicited_Enhanced_Update_notify command.
bool emberAfPluginSubGhzGetSuspendZclMessagesStatusCallback (void)
Sub-GHz Cluster Get Suspend ZCL Messages Status.

Tamper Switch Interface Plugin Callbacks

void emberAfPluginTamperSwitchTamperActiveCallback (void)
Tamper is active.
void emberAfPluginTamperSwitchTamperAlarmCallback (void)
Tamper alarm.

Temperature Measurement Server Cluster Plugin Callbacks

void emberAfPluginTemperatureMeasurementServerOverTemperatureCallback (uint8_t previousState, uint8_t newState)
Over temperature state changed.

Gateway MQTT Transport Plugin Callbacks

void emberAfPluginTransportMqttStateChangedCallback (EmberAfPluginTransportMqttState state)
MQTT client state is changed.
bool emberAfPluginTransportMqttMessageArrivedCallback (const char *topic, const char *payload)
MQTT message arrived.

Trust Center Keepalive Plugin Callbacks

bool emberAfPluginTrustCenterKeepaliveTimeoutCallback (void)
Timeout.
void emberAfPluginTrustCenterKeepaliveConnectivityRestoredCallback (void)
ConnectivityRestored This function is called by the Trust Center Keepalive plugin when a read attribute response command from the trust center is received after trust center connectivity had previously been lost.

Tunneling Client Cluster Plugin Callbacks

void emberAfPluginTunnelingClientTunnelOpenedCallback (uint8_t tunnelIndex, EmberAfPluginTunnelingClientStatus tunnelStatus, uint16_t maximumIncomingTransferSize)
Tunnel Opened.
void emberAfPluginTunnelingClientDataReceivedCallback (uint8_t tunnelIndex, uint8_t *data, uint16_t dataLen)
Data Received.
void emberAfPluginTunnelingClientDataErrorCallback (uint8_t tunnelIndex, EmberAfTunnelingTransferDataStatus transferDataStatus)
Data Error.
void emberAfPluginTunnelingClientTunnelClosedCallback (uint8_t tunnelIndex)
Tunnel Closed.
void emberAfPluginTunnelingClientTransferDataFailureCallback (uint16_t indexOfDestination, EmberApsFrame *apsFrame, uint16_t msgLen, uint8_t *message, EmberStatus status)
Transfer Data Failure.

Tunneling Server Cluster Plugin Callbacks

bool emberAfPluginTunnelingServerIsProtocolSupportedCallback (uint8_t protocolId, uint16_t manufacturerCode)
Is Protocol Supported.
void emberAfPluginTunnelingServerTunnelOpenedCallback (uint16_t tunnelIndex, uint8_t protocolId, uint16_t manufacturerCode, bool flowControlSupport, uint16_t maximumIncomingTransferSize)
Tunnel Opened.
void emberAfPluginTunnelingServerDataReceivedCallback (uint16_t tunnelIndex, uint8_t *data, uint16_t dataLen)
Data Received.
void emberAfPluginTunnelingServerDataErrorCallback (uint16_t tunnelIndex, EmberAfTunnelingTransferDataStatus transferDataStatus)
Data Error.
void emberAfPluginTunnelingServerTunnelClosedCallback (uint16_t tunnelIndex, bool clientInitiated)
Tunnel Closed.

Update TC Link Key Plugin Callbacks

void emberAfPluginUpdateTcLinkKeyStatusCallback ( EmberKeyStatus keyStatus)
Status.

ZLL Commissioning Client Plugin Callbacks

void emberAfPluginZllCommissioningClientTouchLinkFailedCallback (EmberAfZllCommissioningStatus status)
Touch Link Failed.

ZLL Commissioning Common Plugin Callbacks

void emberAfPluginZllCommissioningCommonInitialSecurityStateCallback (EmberZllInitialSecurityState *securityState)
Initial Security State.
void emberAfPluginZllCommissioningCommonTouchLinkCompleteCallback (const EmberZllNetwork *networkInfo, uint8_t deviceInformationRecordCount, const EmberZllDeviceInfoRecord *deviceInformationRecordList)
Touch Link Complete.
void emberAfPluginZllCommissioningCommonResetToFactoryNewCallback (void)
Reset To Factory New.

ZLL Commissioning Network Plugin Callbacks

bool emberAfPluginZllCommissioningNetworkJoinCallback ( EmberZigbeeNetwork *networkFound, uint8_t lqi, int8_t rssi)
Join.

ZLL Commissioning Server Plugin Callbacks

uint8_t emberAfPluginZllCommissioningServerGroupIdentifierCountCallback (uint8_t endpoint)
Group Identifier Count.
bool emberAfPluginZllCommissioningServerGroupIdentifierCallback (uint8_t endpoint, uint8_t index, EmberAfPluginZllCommissioningGroupInformationRecord *record)
Group Identifier.
uint8_t emberAfPluginZllCommissioningServerEndpointInformationCountCallback (uint8_t endpoint)
Endpoint Information Count.
bool emberAfPluginZllCommissioningServerEndpointInformationCallback (uint8_t endpoint, uint8_t index, EmberAfPluginZllCommissioningEndpointInformationRecord *record)
Endpoint Information.
void emberAfPluginZllCommissioningServerIdentifyCallback (uint16_t durationS)
Identify.

ZLL On/Off Server Cluster Enhancements Plugin Callbacks

EmberAfStatus emberAfPluginZllOnOffServerOffWithEffectCallback (uint8_t endpoint, uint8_t effectId, uint8_t effectVariant)
Off With Effect.

Function Documentation

void coexCoulombCounterEventCallback ( uint16_t ccState )

Reports a change in radio state.

This function is called by the RAIL library to report changes in the radio states (Idle/Rx/Tx) according to PTA events.

Parameters
ccState bitmask of radio states
void emberAfCameBackFromEM4Callback ( void )

Ok To Sleep.

This function is called by the Idle/Sleep plugin before sleeping. It is called with interrupts disabled. The application should return true if the device may sleep or false otherwise.

Parameters
durationMs The maximum duration in milliseconds that the device will sleep. Ver.: always
bool emberAfGreenPowerClusterGpNotificationForwardCallback ( EmberGpAddress * addr,
uint8_t gpdCommandId,
uint8_t * gpdCommandPayload
)

Gpd Commissioning.

This function is called by the Green Power Sink Plugin to notify the application of a Green Power Gp Notification of an incomming gpd command. Return true to handle in application.

Parameters
appInfo Ver.: always
void emberAfGreenPowerClusterPassFrameWithoutTranslationCallback ( EmberGpAddress * addr,
uint8_t gpdCommandId,
uint8_t * gpdCommandPayload
)

Gpd Commissioning.

This function is called by the Green Power Sink Plugin to notify the application of a Green Power Gp Notification without translation(endpoint is 0xFC).

Parameters
appInfo Ver.: always
void emberAfGreenPowerServerCommissioningTimeoutCallback ( uint8_t commissioningTimeoutType,
uint8_t numberOfEndpoints,
uint8_t * endpoints
)

Gpd Commissioning.

This function is called by the Green Power Server upon expiry of either the switch commissioning or multisensor commissioning timer.

Parameters
appInfo Ver.: always
void emberAfGreenPowerServerPairingCompleteCallback ( uint8_t numberOfEndpoints,
uint8_t * endpoints
)

Gpd Commissioning.

This function is called by the Green Power Server upon the completion of the pairing and to indicate the closure of the pairing session.

Parameters
appInfo Ver.: always
bool emberAfGreenPowerServerUpdateInvolveTCCallback ( EmberStatus status )

Gpd Commissioning.

This function is called by the Green Power Server to proceed with updating the InvolveTC bit of the security level attribute.

Parameters
appInfo Ver.: always
bool emberAfOKToGoToEM4Callback ( void )

Ok To Sleep.

This function is called by the Idle/Sleep plugin before sleeping. It is called with interrupts disabled. The application should return true if the device may sleep or false otherwise.

Parameters
durationMs The maximum duration in milliseconds that the device will sleep. Ver.: always
uint8_t emberAfOtaServerImageBlockRequestCallback ( EmberAfImageBlockRequestCallbackStruct * data )

Ota Server Image Block Request.

This function is called when the server application receives an image block request by a client.

Parameters
data A struct containing the details of the image block response and values that can be returned by the application to effect the behavior of the server's response.
void emberAfPluginBasicResetToFactoryDefaultsCallback ( uint8_t endpoint )

Reset To Factory Defaults.

This function is called by the Basic server plugin when a request to reset to factory defaults is received. The plugin will reset attributes managed by the framework to their default values. The application should perform any other necessary reset-related operations in this callback, including resetting any externally-stored attributes.

Parameters
endpoint Ver.: always
void emberAfPluginBatteryMonitorDataReadyCallback ( uint16_t batteryVoltageMilliV )

Data Ready.

This function is called whenever the battery monitor has generated a new valid battery level.

Parameters
batteryVoltageMilliV The battery voltage, in milli Volts Ver.: always
void emberAfPluginBleEventCallback ( struct gecko_cmd_packet * evt )

This function is called from the BLE stack to notify the application of a stack event.

void emberAfPluginBleGetConfigCallback ( gecko_configuration_t * config )

This function is called at init time. The following fields will be overwritten by the framework:

  • max_connections
  • heap
  • heap_size
void emberAfPluginBulbUiFinishedCallback ( EmberStatus status )

Finished.

This callback is fired when the bulb-ui plugin is finished with the forming or joining process. The result of the operation will be returned in the status parameter.

Parameters
status Ver.: always
void emberAfPluginButtonInterfaceButton0HighCallback ( void )

Called when Button 0 goes high.

This function is called when the GPIO tied to button zero goes high

void emberAfPluginButtonInterfaceButton0LowCallback ( void )

Called when Button 0 goes low.

This function is called when the GPIO tied to button zero goes low

void emberAfPluginButtonInterfaceButton0PressedLongCallback ( uint16_t timePressedMs,
bool pressedAtReset
)

Called when Button 0 is pressed long.

Parameters
timePressedMs Amount of time button 0 was pressed.
pressedAtReset Was the button pressed at startup.
void emberAfPluginButtonInterfaceButton0PressedShortCallback ( uint16_t timePressedMs )

Called when Button 0 is pressed short.

Parameters
timePressedMs Time (in ms) button 0 was pressed short
void emberAfPluginButtonInterfaceButton0PressingCallback ( void )

Called while Button 0 is pressed.

This function is periodically called when button 0 is being pressed.

void emberAfPluginButtonInterfaceButton1HighCallback ( void )

Called when Button 1 goes high.

This function is called when the GPIO tied to button one goes high

void emberAfPluginButtonInterfaceButton1LowCallback ( void )

Called when Button 1 goes low.

This function is called when the GPIO tied to button one goes low

void emberAfPluginButtonInterfaceButton1PressedLongCallback ( uint16_t timePressedMs,
bool pressedAtReset
)

Called when Button 1 is pressed long.

Parameters
timePressedMs Amount of time button 1 was pressed.
pressedAtReset Was the button pressed at startup.
void emberAfPluginButtonInterfaceButton1PressedShortCallback ( uint16_t timePressedMs )

Called when Button 1 is pressed short.

Parameters
timePressedMs Time (in ms) button 1 was pressed short
void emberAfPluginButtonInterfaceButton1PressingCallback ( void )

Called while Button 1 is pressed.

This function is periodically called when button 1 is being pressed.

void emberAfPluginButtonJoiningButtonEventCallback ( uint8_t buttonNumber,
uint32_t buttonPressDurationMs
)

Button Event.

This allows another module to get notification when a button is pressed and released but the button joining plugin did not handle it. This callback is NOT called in ISR context so there are no restrictions on what code can execute.

Parameters
buttonNumber The button number that was pressed. Ver.: always
buttonPressDurationMs The length of time button was held down before it was released. Ver.: always
void emberAfPluginCalendarServerPublishInfoCallback ( uint8_t publishCommandId,
EmberNodeId clientNodeId,
uint8_t clientEndpoint,
uint8_t totalCommands
)

Publish Info.

This function is called by the calendar-server plugin after receiving any of the following commands and just before it starts publishing the response: GetCalendar, GetDayProfiles, GetSeasons, GetSpecialDays, and GetWeekProfiles.

Parameters
publishCommandId ZCL command to be published Ver.: always
clientNodeId Destination nodeId Ver.: always
clientEndpoint Destination endpoint Ver.: always
totalCommands Total number of publish commands to be sent Ver.: always
bool emberAfPluginColorControlIsColorSupportedCallback ( uint8_t hue,
uint8_t saturation
)

Is Color Supported.

This function will be called to determine whether a color is supported by a device. The color will be specified by hue and saturation.

Parameters
hue Ver.: always
saturation Ver.: always
void emberAfPluginColorControlServerComputePwmFromHsvCallback ( uint8_t endpoint )

Compute Pwm from HSV.

This function is called from the color server when it is time for the PWMs to be driven with a new value from the HSV values.

Parameters
endpoint The identifying endpoint Ver.: always
void emberAfPluginColorControlServerComputePwmFromTempCallback ( uint8_t endpoint )

Compute Pwm from HSV.

This function is called from the color server when it is time for the PWMs to be driven with a new value from the color temperature.

Parameters
endpoint The identifying endpoint Ver.: always
void emberAfPluginColorControlServerComputePwmFromXyCallback ( uint8_t endpoint )

Compute Pwm from HSV.

This function is called from the color server when it is time for the PWMs to be driven with a new value from the color X and color Y values.

Parameters
endpoint The identifying endpoint Ver.: always
void emberAfPluginCommandRelayChangedCallback ( void )

Changed.

Called when relays rules are added or removed.

void emberAfPluginCommsHubFunctionAlertWANCallback ( uint16_t alertCode,
uint8_t * gbzAlert,
uint16_t gbzAlertLength
)

Alert WAN.

Notify the application of an Alert that should be sent to the WAN. The second argument is a pointer to the gbz alert buffer. The application is responsible for freeing this buffer.

Parameters
alertCode The 16 bit allert code as defined by GBCS Ver.: always
gbzAlert Buffer continaing the GBZ formatted Alert Ver.: always
gbzAlertLength The length in octets of the GBZ formatted Alert Ver.: always
void emberAfPluginCommsHubFunctionReceivedCallback ( EmberEUI64 senderDeviceId,
uint16_t dataLen,
uint8_t * data
)

Received.

This callback is called by the Comms Hub Function (CHF) plugin whenever a message is received.

Parameters
senderDeviceId The EUI64 of the sending device Ver.: always
dataLen The length in octets of the data Ver.: always
data Buffer containing the raw octets of the data Ver.: always
void emberAfPluginCommsHubFunctionSendCallback ( uint8_t status,
EmberEUI64 destinationDeviceId,
uint16_t dataLen,
uint8_t * data
)

Send.

This callback is called by the Comms Hub Function (CHF) plugin to report the status of a message that was previously sent.

Parameters
status The status of the message that was sent Ver.: always
destinationDeviceId The EUI64 of the destination device to which the data was sent Ver.: always
dataLen The length in octets of the data that was sent Ver.: always
data Buffer containing the raw octets of the data that was sent Ver.: always
void emberAfPluginCommsHubFunctionSubGhzChannelChangeCallback ( EmberAfPluginCommsHubFunctionSubGhzChannelChangeOutcome outcome,
EmberAfStatus status
)

Sub-GHz channel change request outcome callback.

This callback is called by the Comms Hub Function (Sub-GHz) plugin to report the outcome of the channel change request.

Parameters
outcome Channel change request outcome
status Ember status code if the outcome is negative
void emberAfPluginCommsHubFunctionTunnelOpenedCallback ( EmberEUI64 remoteDeviceId )

Tunnel Opened.

This function is called by the Comms Hub Function (CHF) plugin when a tunnel is opened.

Parameters
remoteDeviceId The EUI64 of the remote device for which a tunnel is opened Ver.: always
void emberAfPluginConcentratorBroadcastSentCallback ( void )

Broadcast Sent.

This function is called when a new MTORR broadcast has been successfully sent by the concentrator plugin.

void emberAfPluginConfigurationServerFinishedCallback ( EmberStatus status )

Finished.

This callback is fired when the bulb-ui plugin is finished with the forming or joining process. The result of the operation will be returned in the status parameter.

Parameters
status Ver.: always
void emberAfPluginConnectionManagerFinishedCallback ( EmberStatus status )

Network join finished.

This callback is fired when the Connection Manager plugin is finished with the network search process. The result of the operation will be returned as the status parameter.

Parameters
status Ver.: always
void emberAfPluginConnectionManagerLeaveNetworkCallback ( void )

Leave the currently joined network.

This function is called by the Connection Manager Plugin when the device is about to leave the network. It is normally used to trigger a UI event to notify the user of a network leave.

void emberAfPluginConnectionManagerStartNetworkSearchCallback ( void )

Begin searching for network to join.

This function is called by the Connection Manager Plugin when it starts to search for a new network. It is normally used to trigger a UI event to notify the user that the device is currently searching for a network.

void emberAfPluginCoulombCounterEventCallback ( uint32_t mask,
uint32_t options
)

Set the Radio states and energy modes.

This function is called by the RAIL library to set the radio states for the purpose of coulomb counter, to indicate Idle/Rx/Tx. Also the Zigbee stack will call into this function to set the various energy modes.

void emberAfPluginCountersRolloverCallback ( EmberCounterType type )

Rollover.

This function is called every time a counter exceeds its threshold.

Parameters
type The counter that rolled over Ver.: always
void emberAfPluginDelayedJoinCallback ( EmberNodeId newNodeId,
EmberEUI64 newNodeEui64,
EmberNodeId parentOfNewNode,
EmberDeviceUpdate status,
EmberJoinDecision decision
)

Consumer App can implement this callback to be notified when there is a new join attempt that is waiting on the network key.

Parameters
nodeId of the joining device
newNodeEui64 longId of the joing device
parentOfNewNode nodeId of the parent
status type of join attempt, if it is secure Join etc.
decision stacks decision on how to handle this join attempt
void emberAfPluginDeviceDatabaseDiscoveryCompleteCallback ( const EmberAfDeviceInfo * device )

Discovery Complete.

This function is called when a device in the database has been set to EMBER_AF_DEVICE_DISCOVERY_STATUS_DONE.

Parameters
device A pointer to the information struct about the device. Ver.: always
void emberAfPluginDeviceManagementClientEnactChangeOfSupplierCallback ( uint8_t endpoint,
EmberAfDeviceManagementSupplier * supplier
)

Enact Change Of Supplier.

This callback will be implemented by a meter to enact a change of supplier at the requested time of implementation.

Parameters
endpoint Ver.: always
supplier Ver.: always
void emberAfPluginDeviceManagementClientEnactChangeOfTenancyCallback ( uint8_t endpoint,
EmberAfDeviceManagementTenancy * tenancy
)

Enact Change Of Tenancy.

This callback will be implemented by a meter to enact a change of tenancy at the requested time of implementation.

Parameters
endpoint Ver.: always
tenancy Ver.: always
EmberStatus emberAfPluginDeviceManagementClientEnactChangeSupplyCallback ( uint8_t endpoint,
EmberAfDeviceManagementSupply * supply
)

Enact Change Supply.

This callback will be implemented by a meter to enact a supply change at the requested time of implementation.

Parameters
endpoint Ver.: always
supply Ver.: always
void emberAfPluginDeviceManagementClientEnactUpdateUncontrolledFlowThresholdCallback ( uint8_t endpoint,
EmberAfDeviceManagementUncontrolledFlowThreshold * supplier
)

Enact Update Uncontrolled Flow Threshold.

This callback will be implemented by a meter to enact an update to the uncontrolled flow threshold as specified.

Parameters
endpoint Ver.: always
supplier Ver.: always
void emberAfPluginDeviceManagementClientSetSupplyStatusCallback ( uint8_t endpoint,
EmberAfDeviceManagementSupplyStatusFlags * supplyStatus
)

Set Supply Status.

This callback will be implemented by a meter to appropriately set the supply status.

Parameters
endpoint Ver.: always
supplyStatus Ver.: always
void emberAfPluginDeviceManagementServerGetPasswordCallback ( EmberNodeId senderNodeId,
EmberAfDeviceManagementPasswordType passwordType,
EmberAfDeviceManagementPassword passwordInfo
)

Get Password.

This callback will be implemented by an esi to provide device specific password information.

Parameters
senderNodeId Ver.: always
passwordType Ver.: always
passwordInfo Ver.: always
void emberAfPluginDeviceTableClearedCallback ( void )

Cleared.

This callback is called when a device table has been cleared.

void emberAfPluginDeviceTableDeviceLeftCallback ( EmberEUI64 newNodeEui64 )

StateChange.

This callback is called when a device's state changes.

Parameters
nodeId Ver.: always
state Ver.: always
void emberAfPluginDeviceTableIndexAddedCallback ( uint16_t index )

StateChange.

This callback is called when a device's state changes.

Parameters
nodeId Ver.: always
state Ver.: always
void emberAfPluginDeviceTableIndexRemovedCallback ( uint16_t currentIndex )

StateChange.

This callback is called when a device's state changes.

Parameters
nodeId Ver.: always
state Ver.: always
void emberAfPluginDeviceTableInitialized ( void )

StateChange.

This callback is called when a device's state changes.

Parameters
nodeId Ver.: always
state Ver.: always
void emberAfPluginDeviceTableNewDeviceCallback ( EmberEUI64 eui64 )

NewDevice.

This callback is called when a new device joins the gateway.

Parameters
uui64 Ver.: always
void emberAfPluginDeviceTableRejoinDeviceCallback ( EmberEUI64 newNodeEui64 )

Rejoin device.

Called when a device rejoins.

Parameters
newNodeEui64 EUI64 of the rejoined device.
void emberAfPluginDeviceTableStateChangeCallback ( EmberNodeId nodeId,
uint8_t state
)

StateChange.

This callback is called when a device's state changes.

Parameters
nodeId Ver.: always
state Ver.: always
bool emberAfPluginDoorLockServerActivateDoorLockCallback ( bool activate )

Activate Door Lock.

This function is provided by the door lock server plugin. It is

Parameters
activate True if the lock should move to the locked position, false if it should move to the unlocked position Ver.: always
bool emberAfPluginDrlcEventActionCallback ( EmberAfLoadControlEvent * loadControlEvent,
EmberAfAmiEventStatus eventStatus,
uint8_t sequenceNumber
)

Event Action.

This function is called by the demand response and load control client plugin whenever an event status changes within the DRLC event table. The list of possible event status values is defined by the ZCL spec and is listed in the Application Framework's generated enums located in enums.h. For example, an event status may be: AMI_EVENT_STATUS_LOAD_CONTROL_EVENT_COMMAND_RX indicating that a properly formatted event was received; AMI_EVENT_STATUS_EVENT_STARTED indicating that an event has started; AMI_EVENT_STATUS_THE_EVENT_HAS_BEEN_CANCELED, indicating that the event was canceled. This callback is intended to give the device an opportunity to take action on the event in question. For instance if an event starts, the device should take the appropriate event action on the hardware. This callback returns a bool, if returned value is true, then a notification will be send over the air automatically to the originator of the event. If it is false, then nothing will be sent back to the originator of the event. Please note that in order for your application to be ZigBee compliant, a notification must be sent over the air to the originator of the event, so a value of false should only be returned if your application code takes care of sending this message or there is some other reason a message does not need to be sent by the framework.

Parameters
loadControlEvent Actual event Ver.: always
eventStatus Status of event Ver.: always
sequenceNumber Sequence number Ver.: always
void emberAfPluginEepromStateChangeCallback ( HalEepromState oldEepromState,
HalEepromState newEepromState
)

Called whenever the EEPROM changes state.

Parameters
oldEepromState The old state of the EEPROM
newEepromState The new state of the EEPROM
bool emberAfPluginEndDeviceSupportLostParentConnectivityCallback ( void )

Lost Parent Connectivity.

This function is called by the End Device Support plugin when the end device cannot connect to its parent. This callback is called under the following instances:

  • When the network state of the device is EMBER_JOINED_NETWORK_NO_PARENT.
  • If there are 3 or more data poll transaction failures for an end device.

If this callback returns false, the End Device Support plugin code will proceed with issuing a Trust Center rejoin. Otherwise, if this function returns true, the End Device Support plugin will not issue a Trust Center rejoin.

void emberAfPluginEndDeviceSupportPollCompletedCallback ( EmberStatus status )

Poll Completed.

This function is called by the End Device Support plugin after a poll is completed.

Parameters
status Return status of a completed poll operation Ver.: always
bool emberAfPluginEndDeviceSupportPreNetworkMoveCallback ( void )

Pre Network Move.

This function is called by the End Device Support plugin just before it issues a Network Move, or a sequence of a secure rejoin followed by several trust center rejoins. Various plugins issue a Network Move when certain conditions are met, such as when the network state is EMBER_JOINED_NO_PARENT.

Users can consume this callback and return true to prevent the End Device Support plugin from issuing rejoin requests. Consuming the callback also gives the application a chance to implement its own rejoin logic. If this callback returns false, the End Device Support plugin will issue network rejoins as usual.

void emberAfPluginEventsServerLogDataUpdatedCallback ( const EmberAfClusterCommand * cmd )

Log Data Updated.

This function is called by the Events server plugin when any modification to the plugin's event logs has been made. The argument will hint the ZCL command that might be used to triggered the data change. If null, it means the logging data have been updated through other means, e.g. CLI.

Parameters
cmd ZCL command Ver.: always
bool emberAfPluginEventsServerOkToClearLogCallback ( EmberAfEventLogId logId )

Ok To Clear Log.

This function is called by the Events server plugin whenever a Clear Event Log Request command is received. The application should return true if it is Ok to clear the given log and false otherwise. If the request is to clear all logs (i.e. logId == EMBER_ZCL_EVENT_LOG_ID_ALL_LOGS) and the application allows all logs to be cleared then the application should return true. If the application does not allow all logs to be cleared it should return false in which case the plugin will subsequently call this callback for each event log allowing the application to selectively choose which event logs are Ok to be cleared.

Parameters
logId The identifier of the log requested to be cleared. Ver.: always
void emberAfPluginEzmodeCommissioningClientCompleteCallback ( uint8_t bindingIndex )

Client Complete.

This function is called by the EZ-Mode Commissioning plugin when client commissioning completes.

Parameters
bindingIndex The binding index that was created or EMBER_NULL_BINDING if an error occurred. Ver.: always
bool emberAfPluginFindAndBindInitiatorBindTargetCallback ( EmberNodeId nodeId,
EmberBindingTableEntry * bindingEntry,
uint8_t * groupName
)

Bind Target.

This callback with enable the user to programmatically decide if they want to bind with a potential target. The plugin will try to bind with this target if and only if the function returns true. By default, the callback tells the plugin to try to bind with the target. If the binding type is changed to EMBER_MULTICAST_BINDING , a multicast binding will be created.

Parameters
nodeId short ID of the potential target Ver.: always
bindingEntry The binding entry for that target. Ver.: always
groupName The name of the group if a multicast binding is created. Ver.: always
void emberAfPluginFindAndBindInitiatorCompleteCallback ( EmberStatus status )

Complete.

This callback is fired by the initiator when the Find and Bind process is complete.

Parameters
status Status code describing the completion of the find and bind process Ver.: always
void emberAfPluginFormAndJoinNetworkFoundCallback ( EmberZigbeeNetwork * networkFound,
uint8_t lqi,
int8_t rssi
)

Network Found.

This is called by the form-and-join library to notify the application of the network found after a call to ::emberScanForJoinableNetwork() or ::emberScanForNextJoinableNetwork(). See form-and-join documentation for more information.

Parameters
networkFound Ver.: always
lqi Ver.: always
rssi Ver.: always
void emberAfPluginFormAndJoinUnusedPanIdFoundCallback ( EmberPanId panId,
uint8_t channel
)

Unused Pan Id Found.

This function is called when the form-and-join library finds an unused PAN ID that can be used to form a new network on.

Parameters
panId A randomly generated PAN ID without other devices on it. Ver.: always
channel The channel where the PAN ID can be used to form a new network. Ver.: always
void emberAfPluginGasProxyFunctionAlertWANCallback ( uint16_t alertCode,
uint8_t * gbzAlert,
uint16_t gbzAlertLength
)

Alert WAN.

Notify the application of an Alert that should be sent to the WAN. The second argument is a pointer to the gbz alert buffer. The application is responsible for freeing this buffer.

Parameters
alertCode The 16 bit allert code as defined by GBCS Ver.: always
gbzAlert Buffer continaing the GBZ formatted Alert Ver.: always
gbzAlertLength The length in octets of the GBZ formatted Alert Ver.: always
bool emberAfPluginGasProxyFunctionDataLogAccessRequestCallback ( const EmberAfGpfMessage * gpfMessage,
const EmberAfClusterCommand * zclClusterCommand
)

Data Log Access Request.

Query the application regarding the processing of the current GBCS specific command. Depending on the vendor specific information, such as the Tenancy attribute in the Device Management Cluster, the callback's return value determines whether the current command gets processed or not. With a return value of true, the plugin will process the message. Otherwise, the plugin will reject the message.

Parameters
gpfMessage Ver.: always
zclClusterCommand Ver.: always
void emberAfPluginGasProxyFunctionNonTapOffMessageHandlerCompletedCallback ( uint8_t * gbzCommandsResponse,
uint16_t gbzCommandsResponseLength
)

Non Tap Off Message Handler Completed.

Notify the application that the Non Tap Off Message (Non-TOM) have been handled by the mirror endpoint. This callback is invoked when the the Non Tap Off Message have been processed. The first argument is a pointer to the gbz commands response buffer. The application is responsible for freeing this buffer.

Parameters
gbzCommandsResponse Ver.: always
gbzCommandsResponseLength Ver.: always
void emberAfPluginGasProxyFunctionTapOffMessageFutureCommandIgnoredCallback ( const EmberAfGpfMessage * gpfMessage,
const EmberAfClusterCommand * zclClusterCommand
)

Tap Off Message Future Command Ignored.

Notify the application that an elemental ZCL command, embedded within the Tap Off Message (TOM), has been ignored by the GPF as it is a future dated command. The application can utilize the callback to store the discarded command for later retrieval. When the future dated command becomes active on the GSME, it will inform the CommsHub about the activation via an Alert message. The CommsHub should be able to correlate the matching messages and pass the previously stored ZCL commands to the TOM message handler for processing.

Parameters
gpfMessage Ver.: always
zclClusterCommand Ver.: always
void emberAfPluginGasProxyFunctionUnknownSeasonWeekIdCallback ( uint32_t issuerCalendarId,
uint8_t * seasonEntries,
uint8_t seasonEntriesLength,
uint8_t unknownWeekIdSeasonsMask
)

Unknown Season Week Id.

This callback is called when the GPF receives a PublishSeasons command with an unknown week ID in one of the seasons. The callback contains a mask, unknownWeekIdSeasonsMask, with bits set corresponding to season entries that were not published because of an unknown week ID reference.

Parameters
issuerCalendarId The calendar ID associated with these seasons. Ver.: always
seasonEntries The season entries for this publish command. Ver.: always
seasonEntriesLength The length of the season entries. Ver.: always
unknownWeekIdSeasonsMask A mask where bit N indicates that the Nth season entry contains an unknown week ID reference. Ver.: always
void emberAfPluginGasProxyFunctionUnknownSpecialDaysDayIdCallback ( uint32_t issuerCalendarId,
uint8_t * specialDayEntries,
uint8_t specialDayEntriesLength,
uint8_t unknownDayIdMask
)

Unknown Special Days Day Id.

This callback is called when the GPF receives a PublishSpecialDays command with an unknown day ID for one of the special days. The callback contains a mask, unknownDayIdMask, with bits set corresponding to special day entries that were not published because of an unknown day ID reference.

Parameters
issuerCalendarId The calendar ID associated with these special days. Ver.: always
specialDayEntries The special day entries for this publish command. Ver.: always
specialDayEntriesLength The length of the special day entries. Ver.: always
unknownDayIdMask A mask where bit N indicates that the Nth special day entry contains an unknown day ID reference. Ver.: always
EmberAfGpfZclCommandPermission emberAfPluginGasProxyFunctionValidateIncomingZclCommandCallback ( const EmberAfClusterCommand * cmd,
uint16_t messageCode
)

Validate Incoming Zcl Command.

Query the application to check if a specific ZCL command should be processed given the UseCase # and ZCL command payload information. This function should capture the behavior detailed by the GBCS Use Case documentation. Please refer to EmberAfGpfZclCommandPermission enum for specific return data types.

Parameters
cmd Ver.: always
messageCode Ver.: always
void emberAfPluginGbcsDeviceLogDeviceRemovedCallback ( EmberEUI64 deviceId )

Device Removed.

This callback is called by the plugin when a device is removed from the device log.

Parameters
deviceId Identifier of the device removed Ver.: always
void emberAfPluginGbzMessageControllerDecryptDataCallback ( EmberAfGbzMessageData * data )

Decrypt Data.

This function is called by the Gbz Message Controller plugin to decrypt a ZCL payload. If the decryption is successful, the application is responsible for allocating the memory for the new decrypted data and passing the pointer via the "plainPayload" field as well as the plainPayloadLength field for the length. The framework will be responsible for free-ing the allocated memory. If the decryption fails, the callback return false and should not modify any data.

Parameters
data Ver.: always
void emberAfPluginGbzMessageControllerEncryptDataCallback ( EmberAfGbzMessageData * data )

Encrypt Data.

This function is called by the Gbz Message Controller plugin to encrypt a ZCL payload. If the encryption is successful, the application is responsible for allocating the memory for the new encrypted data and passing the pointer via the "encryptedPayload" field as well as the encryptedPayloadLength field for the length. The framework will be responsible for free-ing the allocated memory. If the encryption fails, the callback return false and should not modify any data.

Parameters
data Ver.: always
void emberAfPluginGpioSensorStateChangedCallback ( uint8_t newSensorState )

Called whenever the GPIO sensor detects a change in state.

Parameters
newSensorState The new state of the sensor based alarm (EMBER_AF_PLUGIN_GPIO_SENSOR_ACTIVE or EMBER_AF_PLUGIN_GPIO_SENSOR_NOT_ACTIVE) Ver.: always
bool emberAfPluginGreenPowerServerGpdCommissioningCallback ( EmberGpApplicationInfo * appInfo )

Gpd Commissioning.

This function is called by the Green Power Sink Plugin to notify the application of a Green Power Device that has requested commissioning with this sink. Return true to accept, false to reject.

Parameters
appInfo Ver.: always
bool emberAfPluginGreenPowerServerGpdSecurityFailureCallback ( EmberGpAddress gpdAddr )

Gpd Commissioning.

This function is called by the Green Power Sink Plugin to notify the application of a Green Power Security Processing failed for a incomming. Return true to proceed with the process, false to drop the packet.

Parameters
appInfo Ver.: always
void emberAfPluginGroupsServerGetGroupNameCallback ( uint8_t endpoint,
uint16_t groupId,
uint8_t * groupName
)

Get Group Name.

This function returns the name of a group with the provided group ID, should it exist.

Parameters
endpoint Endpoint Ver.: always
groupId Group ID Ver.: always
groupName Group Name Ver.: always
bool emberAfPluginGroupsServerGroupNamesSupportedCallback ( uint8_t endpoint )

Group Names Supported.

This function returns whether or not group names are supported.

Parameters
endpoint Endpoint Ver.: always
void emberAfPluginGroupsServerSetGroupNameCallback ( uint8_t endpoint,
uint16_t groupId,
uint8_t * groupName
)

Set Group Name.

This function sets the name of a group with the provided group ID.

Parameters
endpoint Endpoint Ver.: always
groupId Group ID Ver.: always
groupName Group Name Ver.: always
void emberAfPluginIdentifyStartFeedbackCallback ( uint8_t endpoint,
uint16_t identifyTime
)

Start Feedback.

This function is called by the Identify plugin when identification begins. It informs the Identify Feedback plugin that it should begin providing its implemented feedback functionality (e.g. LED blinking, buzzer sounding, etc.) until the Identify plugin tells it to stop. The identify time is purely a matter of informational convenience; this plugin does not need to know how long it will identify (the Identify plugin will perform the necessary timekeeping.)

Parameters
endpoint The identifying endpoint Ver.: always
identifyTime The identify time Ver.: always
void emberAfPluginIdentifyStopFeedbackCallback ( uint8_t endpoint )

Stop Feedback.

This function is called by the Identify plugin when identification is finished. It tells the Identify Feedback plugin to stop providing its implemented feedback functionality.

Parameters
endpoint The identifying endpoint Ver.: always
void emberAfPluginIdleSleepActiveCallback ( void )

Active.

This function is called by the Idle/Sleep plugin after idling.

bool emberAfPluginIdleSleepOkToIdleCallback ( void )

Ok To Idle.

This function is called by the Idle/Sleep plugin before idling. It is called with interrupts disabled. The application should return true if the device may idle or false otherwise.

bool emberAfPluginIdleSleepOkToSleepCallback ( uint32_t durationMs )

Ok To Sleep.

This function is called by the Idle/Sleep plugin before sleeping. It is called with interrupts disabled. The application should return true if the device may sleep or false otherwise.

Parameters
durationMs The maximum duration in milliseconds that the device will sleep. Ver.: always
bool emberAfPluginIdleSleepRtosCallback ( uint32_t * durationMs,
bool sleepOk
)

RTOS idle/sleep.

This function is called by the Idle/Sleep plugin before idling or sleeping. If it returns true, the RTOS is handling the MCU idling/sleeping, if it returns false the idle/sleep shall manage the actual MCU idling/sleeping.

Parameters
durationMs A pointer to the allowed idle/sleep duration in milliseconds. Ver.: always
sleepOk A boolean indicating whether sleep is allowed.
void emberAfPluginIdleSleepWakeUpCallback ( uint32_t durationMs )

Wake Up.

This function is called by the Idle/Sleep plugin after sleeping.

Parameters
durationMs The duration in milliseconds that the device slept. Ver.: always
void emberAfPluginInterpanFragmentTransmissionFailedCallback ( uint8_t interpanFragmentationStatus,
uint8_t fragmentNum
)

Fragment Transmission Failed.

This function is called by the Interpan plugin when a fragmented transmission has failed.

Parameters
interpanFragmentationStatus The status describing why transmission failed Ver.: always
fragmentNum The fragment number that encountered the failure Ver.: always
void emberAfPluginInterpanMessageReceivedOverFragmentsCallback ( const EmberAfInterpanHeader * header,
uint8_t msgLen,
uint8_t * message
)

Message Received Over Fragments.

This function is called by the Interpan plugin when a fully reconstructed message has been received over inter-PAN fragments, or IPMFs.

Parameters
header The inter-PAN header Ver.: always
msgLen The message payload length Ver.: always
message The message payload Ver.: always
bool emberAfPluginInterpanPreMessageReceivedCallback ( const EmberAfInterpanHeader * header,
uint8_t msgLen,
uint8_t * message
)

Pre Message Received.

This function is called by the Interpan plugin when an interpan message is received but has not yet been handled by the plugin or the framework. The application should return true if the message was handled.

Parameters
header The inter-PAN header Ver.: always
msgLen The message payload length Ver.: always
message The message payload Ver.: always
void emberAfPluginLevelControlClusterServerPostInitCallback ( uint8_t endpoint )

Level Control Cluster Server Post Init.

Following resolution of the Current Level at startup for this endpoint, perform any additional initialization needed; e.g., synchronize hardware state.

Parameters
endpoint Endpoint that is being initialized Ver.: always
void emberAfPluginLevelControlCoupledColorTempChangeCallback ( uint8_t endpoint )

Level Control Coupled Color Temp Change.

Adjust Color Control cluster Color Temperature in response to a change in Level Control cluster CurrentLevel.

Parameters
endpoint Endpoint that is being initialized Ver.: always
bool emberAfPluginLowVoltageShutdownOkToShutdownCallback ( uint16_t shutdownVoltage )

Ok To Shutdown.

This function is called by the Low Voltage Shutdown plugin after the low voltage threshold has been detected but before shutting down the chip (until a full power-on reset is triggered). The application should return true if the device may shutdown or false otherwise. Note that this callback is not the proper place to put logic to be performed just prior to shutdown; that would be the Pre Shutdown Callback. If callback returns false, shutdown check will be performed again in EMBER_AF_PLUGIN_LOW_VOLTAGE_SHUTDOWN_POSTPONE_DURATION_MS milliseconds.

Parameters
shutdownVoltage The voltage (in mV) read from VDD at shutdown time, which can be used to determine the risk in doing any further activities prior to shutdown. Ver.: always
void emberAfPluginLowVoltageShutdownPreShutdownCallback ( uint16_t shutdownVoltage )

Pre Shutdown.

This function is called by the Low Voltage Shutdown plugin just prior to shutting down, allowing the application to do any last-minute clean-up before the chip goes offline until next reset. (Can't prevent shutdown from this context; use Ok To Shutdown callback for that instead.)

Parameters
shutdownVoltage The voltage (in mV) read from VDD at shutdown time, which can be used to determine the risk in doing any further activities prior to shutdown. Ver.: always
void emberAfPluginMessagingClientCancelMessageCallback ( EmberAfPluginMessagingClientMessage * message )

Cancel Message.

This function is called by the Messaging client plugin whenever the application should stop displaying a message.

Parameters
message The message that should no longer be displayed. Ver.: always
void emberAfPluginMessagingClientDisplayMessageCallback ( EmberAfPluginMessagingClientMessage * message )

Display Message.

This function is called by the Messaging client plugin whenever the application should display a message.

Parameters
message The message that should be displayed. Ver.: always
bool emberAfPluginMessagingClientPreDisplayMessageCallback ( uint32_t messageId,
uint8_t messageControl,
uint32_t startTime,
uint16_t durationInMinutes,
uint8_t * message,
uint8_t optionalExtendedMessageControl
)

Pre Display Message.

This function is called by the Messaging client plugin when a DisplayMessage command is received. If callback returns true, the plugin assumes the message have been handled and will not do anything with the message. Otherwise, the plugin will go through with its own implementation.

Parameters
messageId Ver.: always
messageControl Ver.: always
startTime Ver.: always
durationInMinutes Ver.: always
message Ver.: always
optionalExtendedMessageControl Ver.: always
void emberAfPluginMeteringServerProcessNotificationFlagsCallback ( uint16_t attributeId,
uint32_t attributeValue
)

Server Process Notification.

This function is called by the metering server plugin when any of the Notification Attribute Set attributes are read or reported by the metering client.

Parameters
attributeId ID of the attribute being proccessed Ver.: always
attributeValue value of the attribute being proccessed Ver.: always
void emberAfPluginMeterMirrorMirrorAddedCallback ( const EmberEUI64 requestingDeviceIeeeAddress,
uint8_t endpoint
)

Mirror Added.

This function is called by the Meter Mirror plugin whenever a RequestMirror command is successfully processed.

Parameters
requestingDeviceIeeeAddress Ver.: always
endpoint Ver.: always
void emberAfPluginMeterMirrorMirrorRemovedCallback ( const EmberEUI64 requestingDeviceIeeeAddress,
uint8_t endpoint
)

Mirror Removed.

This function is called by the Meter Mirror plugin whenever a RemoveMirror command is successfully processed.

Parameters
requestingDeviceIeeeAddress Ver.: always
endpoint Ver.: always
void emberAfPluginMeterMirrorReportingCompleteCallback ( uint8_t endpoint )

Reporting Complete.

This function is called by the Meter Mirror plugin after processing an AttributeReportingStatus attribute set to ReportingComplete. If the application needs to do any post attribute reporting processing it can do it from within this callback.

Parameters
endpoint Ver.: always
void emberAfPluginMeterSnapshotServerGetSnapshotCallback ( uint8_t srcEndpoint,
uint8_t dstEndpoint,
EmberNodeId dest,
uint8_t * snapshotCriteria
)

Get Snapshot.

This function is called by the Meter Snapshot server plugin whenever a GetSnapshot command is received. A plugin implementing backhaul functionality for the snapshot mechanism should proceed to retrieve the snapshot and send a PublishSnapshot command to the requesting client.

Parameters
srcEndpoint Ver.: always
dstEndpoint Ver.: always
dest Ver.: always
snapshotCriteria Ver.: always
void emberAfPluginMeterSnapshotServerScheduleSnapshotCallback ( uint8_t srcEndpoint,
uint8_t dstEndpoint,
EmberNodeId dest,
uint8_t * snapshotPayload,
uint8_t * responsePayload
)

Schedule Snapshot.

This function is called by the Meter Snapshot server plugin whenever a ScheduleSnapshot command is received. A plugin implementing backhaul functionality for the snapshot mechanism should proceed to schedule the snapshot as required.

Parameters
srcEndpoint Ver.: always
dstEndpoint Ver.: always
dest Ver.: always
snapshotPayload Ver.: always
responsePayload Ver.: always
uint32_t emberAfPluginMeterSnapshotServerTakeSnapshotCallback ( uint8_t endpoint,
uint32_t snapshotCause,
uint8_t * snapshotConfirmation
)

Take Snapshot.

This function is called by the Meter Snapshot server plugin whenever a TakeSnapshot command is received. A plugin implementing backhaul functionality for the snapshot mechanism should proceed to manually take a snapshot as required. If for some reason the snapshot could not be taken, this should be reflected in the snapshotConfirmation argument.

Parameters
endpoint Ver.: always
snapshotCause Ver.: always
snapshotConfirmation Ver.: always
void emberAfPluginMicriumRtosAppTask1InitCallback ( void )

This function is called from the Micrium RTOS plugin before the Application (1) task is created.

void emberAfPluginMicriumRtosAppTask1MainLoopCallback ( void * p_arg )

This function implements the Application (1) task main loop.

Parameters
p_arg Ver.: always
void emberAfPluginMicriumRtosAppTask2InitCallback ( void )

This function is called from the Micrium RTOS plugin before the Application (2) task is created.

void emberAfPluginMicriumRtosAppTask2MainLoopCallback ( void * p_arg )

This function implements the Application (2) task main loop.

Parameters
p_arg Ver.: always
void emberAfPluginMicriumRtosAppTask3InitCallback ( void )

This function is called from the Micrium RTOS plugin before the Application (3) task is created.

void emberAfPluginMicriumRtosAppTask3MainLoopCallback ( void * p_arg )

This function implements the Application (3) task main loop.

Parameters
p_arg Ver.: always
void emberAfPluginNetworkCreatorCompleteCallback ( const EmberNetworkParameters * network,
bool usedSecondaryChannels
)

Complete.

This callback notifies the user that the network creation process has completed successfully.

Parameters
network The network that the network creator plugin successfully formed. Ver.: always
usedSecondaryChannels Whether or not the network creator wants to form a network on the secondary channels Ver.: always
EmberPanId emberAfPluginNetworkCreatorGetPanIdCallback ( void )

Get Pan Id.

This callback is called when the Network Creator plugin needs the PAN ID for the network it is about to create. By default, the callback will return a random 16-bit value.

int8_t emberAfPluginNetworkCreatorGetRadioPowerCallback ( void )

Get Power For Radio Channel.

This callback is called when the Network Creator plugin needs the radio power for the network it is about to create. By default, the callback will use the radio power specified in the relevant plugin option.

void emberAfPluginNetworkFindFinishedCallback ( EmberStatus status )

Finished.

This callback is fired when the network-find plugin is finished with the forming or joining process. The result of the operation will be returned in the status parameter.

Parameters
status Ver.: always
bool emberAfPluginNetworkFindGetEnableScanningAllChannelsCallback ( void )

Get Enable Scanning All Channels.

Returns true is the fallback on scanning all channels is enabled, false if not.

int8_t emberAfPluginNetworkFindGetEnergyThresholdForChannelCallback ( uint8_t pgChan )

Get Energy Threshold For Channel.

This callback is called during the energy scan when forming the network. Should the energy level exceed the value returned by this callback, the current channel will not be considered a suitable candidate for forming. Should none of the channels in the channel mask be considered suitable, the scan will fall back on all channels, including those not on the channel mask. The return value is RSSI, in dBm. This callback is called only when the fallback functionality is enabled.

Parameters
pgChan Ver.: always
int8_t emberAfPluginNetworkFindGetRadioPowerForChannelCallback ( uint8_t pgChan )

Get Radio Power For Channel.

This callback is called by the framework when it is setting the radio power during the discovery process. The framework will set the radio power depending on what is returned by this callback.

Parameters
pgChan Ver.: always
bool emberAfPluginNetworkFindJoinCallback ( EmberZigbeeNetwork * networkFound,
uint8_t lqi,
int8_t rssi
)

Join.

This callback is called by the plugin when a joinable network has been found. If the application returns true, the plugin will attempt to join the network. Otherwise, the plugin will ignore the network and continue searching. Applications can use this callback to implement a network blacklist.

Parameters
networkFound Ver.: always
lqi Ver.: always
rssi Ver.: always
void emberAfPluginNetworkSteeringCompleteCallback ( EmberStatus status,
uint8_t totalBeacons,
uint8_t joinAttempts,
uint8_t finalState
)

Complete.

This callback is fired when the Network Steering plugin is complete.

Parameters
status On success this will be set to EMBER_SUCCESS to indicate a network was joined successfully. On failure this will be the status code of the last join or scan attempt. Ver.: always
totalBeacons The total number of 802.15.4 beacons that were heard, including beacons from different devices with the same PAN ID. Ver.: always
joinAttempts The number of join attempts that were made to get onto an open Zigbee network. Ver.: always
finalState The finishing state of the network steering process. From this, one is able to tell on which channel mask and with which key the process was complete. Ver.: always
bool emberAfPluginNetworkSteeringGetDistributedKeyCallback ( EmberKeyData * key )

Get Distributed Key.

This callback is fired when the Network Steering plugin needs to set the distributed key. The application set the distributed key from Zigbee Alliance thru this callback or the network steering will use the default test key.

Parameters
pointer to the distributed key struct
Returns
true if the key is loaded successfully, otherwise false. level. Ver.: always
EmberNodeType emberAfPluginNetworkSteeringGetNodeTypeCallback ( EmberAfPluginNetworkSteeringJoiningState state )

Get Node Type.

This callback allows the application to set the node type that the network steering process will use in joining a network.

Parameters
state The current ::EmberAfPluginNetworkSteeringJoiningState.
Returns
An EmberNodeType value that the network steering process will try to join a network as.
int8_t emberAfPluginNetworkSteeringGetPowerForRadioChannelCallback ( uint8_t channel )

Get Power For Radio Channel.

This callback is fired when the Network Steering plugin needs to set the power level. The application has the ability to change the max power level used for this particular channel.

Parameters
channel The channel that the plugin is inquiring about the power level. Ver.: always
void emberAfPluginOccupancySensorServerOccupancyStateChangedCallback ( HalOccupancyState occupancyState )

Occupancy state changed.

This callback is generated when the occupancy measurement server receives a new occupancy status.

Parameters
occupancyState The bitmap used to determine occupancy state. At present, only bit 0 is used, and will be set to either HAL_OCCUPANCY_STATE_OCCUPIED or HAL_OCCUPANCY_STATE_UNOCCUPIED. Ver.: always
void emberAfPluginOnOffClusterServerPostInitCallback ( uint8_t endpoint )

On/off Cluster Server Post Init.

Following resolution of the On/Off state at startup for this endpoint, perform any additional initialization needed; e.g., synchronize hardware state.

Parameters
endpoint Endpoint that is being initialized Ver.: always
void emberAfPluginOtaClientPreBootloadCallback ( uint8_t srcEndpoint,
uint8_t serverEndpoint,
EmberNodeId serverNodeId
)

Pre-Bootload Callback.

Called shortly before installing the downloaded image.

Parameters
srcEndpoint Ver.: always
serverEndpoint Ver.: always
serverNodeId Ver.: always
void emberAfPluginOtaServerBlockSentCallback ( uint8_t actualLength,
uint16_t manufacturerId,
uint16_t imageTypeId,
uint32_t firmwareVersion
)

OTA Server Block Sent Callback.

This function will be called when a block is sent to a device.

Parameters
actualLength Ver.: always
manufacturerId Ver.: always
imageTypeId Ver.: always
firmwareVersion Ver.: always
uint8_t emberAfPluginOtaServerPolicyGetClientDelayUnits ( EmberNodeId clientNodeId,
EmberEUI64 clientEui64
)

GetClientDelayUnits.

Called when the server receives an Image Block Request from a client that supports rate limiting using the Minimum Block Period feature. This callback gives the server a chance to decide which units the client uses for the Minimum Block Period, seconds or milliseconds. The server can also return OTA_SERVER_DISCOVER_CLIENT_DELAY_UNITS, which causes the plugin code to test the client by sending it a preset delay value. The length of time the client delays determines which units it uses. For more information on this feature, please read the plugin option descriptions under the OTA Server plugin.

Parameters
clientNodeId Ver.: always
clientEui64 Ver.: always

For return values, see ota-server-policy.h. An unknown return value will result in the same behavior as if OTA_SERVER_CLIENT_USES_MILLISECONDS had been returned.

void emberAfPluginOtaServerUpdateCompleteCallback ( uint16_t manufacturerId,
uint16_t imageTypeId,
uint32_t firmwareVersion,
EmberNodeId source,
uint8_t status
)

OTA Server Update Complete Callback.

This function will be called when an OTA update has finished.

Parameters
manufacturerId ManufacturerId.
imageTypeId Image Type Id.
firmwareVersion Firmware Version.
source Source node id.
status Status of update.
void emberAfPluginOtaServerUpdateStartedCallback ( uint16_t manufacturerId,
uint16_t imageTypeId,
uint32_t firmwareVersion,
uint8_t maxDataSize,
uint32_t offset
)

UpdateStarted.

Called when an OTA upgrade starts.

Parameters
manufacturerId Ver.: always
imageTypeId Ver.: always
firmwareVersion Ver.: always
maxDataSize Ver.: always
offset Ver.: always
void emberAfPluginOtaStorageSimpleEepromEraseCompleteCallback ( bool success )

Erase Complete.

This is called when an EEPROM erase operation has completed.

Parameters
success The result of the erase operation. Ver.: always
void emberAfPluginPollControlServerCheckInTimeoutCallback ( void )

CheckInTimeout.

This function is called by the Poll Control Server plugin after a threshold value of poll control check in messages are sent to a trust center and no responses are received. The existence of this callback provides an opportunity for the application to implement its own rejoin algorithm or logic.

bool emberAfPluginPrepaymentServerConsumerTopUpCallback ( uint8_t originatingDevice,
uint8_t * topUpCode
)

Consumer Top Up.

This function is called when a Consumer Top Up command is received. This callback must evaluate the command data and determine if it is a valid Top Up command.

Parameters
originatingDevice Ver.: always
topUpCode Ver.: always
uint8_t emberAfPluginPriceClientPendingCppEventCallback ( uint8_t cppAuth )

Pending Cpp Event.

This function is called by the Price client plugin when a CPP event is received with pending status.

Parameters
cppAuth The CPP Auth status. Ver.: always
void emberAfPluginPriceClientPriceExpiredCallback ( EmberAfPluginPriceClientPrice * price )

Price Expired.

This function is called by the Price client plugin whenever a price expires.

Parameters
price The price that has expired. Ver.: always
void emberAfPluginPriceClientPriceStartedCallback ( EmberAfPluginPriceClientPrice * price )

Price Started.

This function is called by the Price client plugin whenever a price starts.

Parameters
price The price that has started. Ver.: always
void emberAfPluginPriceServerNewActiveBlockPeriodInformationCallback ( const EmberAfPriceCommonInfo * priceCommonInfo,
const EmberAfPriceBlockPeriod * priceBlockPeriods
)

New Active Block Period Information.

This callback is used to notify the application that a new Block Period Information has become active. The application is responsible for updating proper ZCL attributes to reflect the necessary vendor specific behaviors. Argument, priceCommonInfo, would contain common informations such as startTime and etc. Argument, priceBlockPeriod, would contain the BlockPeriod information itself.

Parameters
priceCommonInfo Ver.: always
priceBlockPeriods Ver.: always
void emberAfPluginPriceServerNewActiveBlockThresholdsInformationCallback ( const EmberAfPriceCommonInfo * priceCommonInfo,
const EmberAfScheduledBlockThresholds * priceBlockThresholds
)

New Active Block Thresholds Information.

This callback is used to notify the application that a new Block Thresholds Information has become active. The application is responsible for updating proper ZCL attributes to reflect the necessary vendor specific behaviors. Argument, priceCommonInfo, would contain common informations such as startTime and etc. Argument, priceTariffInfo, would contain the BlockThresholds information itself.

Parameters
priceCommonInfo Ver.: always
priceBlockThresholds Ver.: always
void emberAfPluginPriceServerNewActivePriceMatrixCallback ( const EmberAfPriceCommonInfo * priceCommonInfo,
const EmberAfScheduledPriceMatrix * priceMatrix
)

New Active Price Matrix.

This callback is used to notify the application that a new PriceMatrix has become active. The application is responsible for updating proper ZCL attributes to reflect the necessary vendor specific behaviors. Argument, priceCommonInfo, would contain common informations such as startTime and etc. Argument, priceMatrix, would contain the PriceMatrix information itself.

Parameters
priceCommonInfo Ver.: always
priceMatrix Ver.: always
void emberAfPluginPriceServerNewActiveTariffInformationCallback ( const EmberAfPriceCommonInfo * priceCommonInfo,
const EmberAfScheduledTariff * priceTariffInfo
)

New Active Tariff Information.

This callback is used to notify the application that a new Tariff Information has become active. The application is responsible for updating proper ZCL attributes to reflect the necessary vendor specific behaviors. Argument, priceCommonInfo, would contain common informations such as startTime and etc. Argument, priceTariffInfo, would contain the PriceMatrix information itself.

Parameters
priceCommonInfo Ver.: always
priceTariffInfo Ver.: always
EmberAfStatus emberAfPluginReportingConfiguredCallback ( const EmberAfPluginReportingEntry * entry )

Configured.

This callback is called by the Reporting plugin whenever a reporting entry is configured, including when entries are deleted or updated. The application can use this callback for scheduling readings or measurements based on the minimum and maximum reporting interval for the entry. The application should return EMBER_ZCL_STATUS_SUCCESS if it can support the configuration or an error status otherwise. Note: attribute reporting is required for many clusters and attributes, so rejecting a reporting configuration may violate ZigBee specifications.

Parameters
entry Ver.: always
bool emberAfPluginReportingGetDefaultReportingConfigCallback ( EmberAfPluginReportingEntry * entry )

Configured.

This callback is called by the Reporting plugin to get the default reporting configuration values from user if there is no default value available within af generated default reporting configuration tabel. The application need to write to the minInterval, maxInterval and reportable change in the passed IO pointer in the arguement while handleing this callback, then application shall return true if it has provided the default values or else false for reporting plugin to further handleing.

Parameters
entry Ver.: always
void emberAfPluginSb1GestureSensorGestureReceivedCallback ( uint8_t gestureReceived,
uint8_t switchNumber
)

Called whenever the SB1 receives a gesture.

Parameters
gestureReceived The (enumerated) gesture received.
switchNumber The switch that received the gesture.
void emberAfPluginSecuritySensorStatusChangedCallback ( uint16_t status )

Security sensor state changed.

This callback is generated when the status of security sensor is changed

Parameters
newStatus,16 bit new status

bit0: 1 - opened or alarmed, 0 - closed or not alarmed bit2: 1 - tampered, 0 - not tampered other bits: reserved.

Ver.: always

uint16_t emberAfPluginSimpleMeteringClientRemoveMirrorCallback ( EmberEUI64 requestingDeviceIeeeAddress )

Remove Mirror.

This function is called by the Simple Metering client plugin whenever a Remove Mirror command is received. The application should return the endpoint on which the mirror has been removed. If the mirror could not be removed, the application should return 0xFFFF.

Parameters
requestingDeviceIeeeAddress Ver.: always
uint16_t emberAfPluginSimpleMeteringClientRequestMirrorCallback ( EmberEUI64 requestingDeviceIeeeAddress )

Request Mirror.

This function is called by the Simple Metering client plugin whenever a Request Mirror command is received. The application should return the endpoint to which the mirror has been assigned. If no mirror could be assigned, the application should return 0xFFFF.

Parameters
requestingDeviceIeeeAddress Ver.: always
void emberAfPluginSimpleMeteringServerProcessNotificationFlagsCallback ( uint16_t attributeId,
uint32_t attributeValue
)

Process Notification Flags.

This function is called by the metering server plugin when any of the Notification Attribute Set attributes are read or reported by the metering client.

Parameters
attributeId Ver.: always
attributeValue Ver.: always
void emberAfPluginSleepyMessageQueueMessageTimedOutCallback ( uint8_t sleepyMsgId )

Message Timed Out.

This function is called by the sleepy message queue when a message times out. The plugin will invalidate the entry in the queue after giving the application a chance to perform any actions on the timed-out message.

Parameters
sleepyMsgId Ver.: always
bool emberAfPluginStandaloneBootloaderClientAllowBootloadLaunchCallback ( EmberEUI64 sourceEui64 )

Allow Bootload Launch.

This function is a callback when the client is being told to launch the standalone bootloader. This is done after authentication has completed successfully.

Parameters
sourceEui64 The EUI64 of the node requesting the bootload. Ver.: always
bool emberAfPluginStandaloneBootloaderClientAllowIncomingMessageCallback ( EmberEUI64 sourceEui64,
uint8_t command
)

Allow Incoming Message.

Allows the application to control whether the plugin can respond to incoming bootload messages.

Parameters
sourceEui64 The EUI64 of the sending node. Ver.: always
command The incoming command ID Ver.: always
bool emberAfPluginStandaloneBootloaderCommonIncomingMessageCallback ( EmberEUI64 longId,
uint8_t length,
uint8_t * message
)

Incoming Message.

Indicates an Ember Bootload message has been received by the Standalone Bootloader Common plugin.

Parameters
longId The sender's EUI64 address Ver.: always
length The length of the incoming message. Ver.: always
message The array of bytes for the message. Ver.: always
void emberAfPluginStandaloneBootloaderServerFinishedCallback ( bool success )

Finished.

Notifies the application when the standalone bootload has completed, successfully or otherwise.

Parameters
success Boolean indicating the success or failure of the bootload. Ver.: always
void emberAfPluginStandaloneBootloaderServerQueryResponseCallback ( bool queryWasBroadcast,
const EmberAfStandaloneBootloaderQueryResponseData * queryData
)

Query Response.

Allows the application to control whether the plugin can respond to incoming bootload messages.

Parameters
queryWasBroadcast Boolean indicating whether the query was broadcast or unicast Ver.: always
queryData A data structure providing the details about the local device's bootloader. Ver.: always
boolean emberAfPluginSubGhzDutyCycleCallback ( uint8_t channelPage,
uint8_t channel,
EmberDutyCycleState oldState,
EmberDutyCycleState newState
)

Duty cycle state change callback for the use with the Sub-GHz plugin.

The Sub-GHz plugin monitors the duty cycle and calls this callback every time the duty cycle state changes.

Parameters
channel the channel that registered a Duty Cycle state change
curMode current Duty Cycle mode
oldState the previous Duty Cycle state
newState the current Duty Cycle state
Returns
true to handle in the application, false for default behaviour

The default response is sending the 'Suspend ZCL Messages' command, either by unicast to the most offending client of a broadcast to all clients, depending on the old and new duty cycle state.

bool emberAfPluginSubGhzGetSuspendZclMessagesStatusCallback ( void )

Sub-GHz Cluster Get Suspend ZCL Messages Status.

'Get Suspend ZCL Messages Status' is a client command. The client can send it to the server to query the status instead of waiting for the 'Suspend ZCL Messages' command.

The server's default action is sending the 'Suspend ZCL Messages' command with the parameter indicating the remaining suspend time in minutes.

Returns
true to indicate the callback has been handled by the application, false to keep the default behaviour
bool emberAfPluginSubGhzSuspendZclMessagesCallback ( uint8_t period )

Sub-GHz Cluster Suspend ZCL Messages.

'Suspend ZCL Messages' is a server command, sent to request the client to temporarily suspend sending any ZCL messages to reduce the duty cycle.

The clients's default action is to suspend ZCL messages for the requested period.

Parameters
period suspend period in minutes
Returns
true to indicate the callback has been handled by the application, false to keep the default behaviour
void emberAfPluginSubGhzUnsolicitedEnhancedUpdateNotifyCallback ( uint8_t channelPage,
uint8_t channel,
uint16_t macTxUcastTotal,
uint16_t macTxUcastFailures,
uint16_t macTxUcastRetries,
uint8_t period
)

Callback to let the application handle the incoming Mgmt_NWK_Unsolicited_Enhanced_Update_notify command.

'Mgmt_NWK_Unsolicited_Enhanced_Update_notify' is a client command. The client sends it to notify the server about the poor link quality. The server should determine whether a channel change is necessary and change the channel if so. There is no default action performed by the application framework. If not handled by the application, no action is taken.

Parameters
channelPage ........ current channel page
channel ............ current channel
macTxUcastTotal .... total number of Mac Tx transaction attempts
macTxUcastFailures . total number of Mac Tx transaction failures
macTxUcastRetries .. total number of Mac Tx transaction retries
period ............. time in minutes over which macTxUcastXxx were measured
void emberAfPluginTamperSwitchTamperActiveCallback ( void )

Tamper is active.

This function is called whenever the tamper switch detects that it has entered the enclosure, thereby activating tamper monitoring.

void emberAfPluginTamperSwitchTamperAlarmCallback ( void )

Tamper alarm.

This function is called when the plugin detects that the enclosure has been opened.

void emberAfPluginTemperatureMeasurementServerOverTemperatureCallback ( uint8_t previousState,
uint8_t newState
)

Over temperature state changed.

This callback is generated when the temperature rises over the assert thresholds (warning and critical) or drops below the deassert thresholds (warning and critical)

Parameters
previousState,the state prior to the state change
newState,the new state of the state change

EMBER_TEMPERATURE_MEASUREMENT_SERVER_OVER_TEMPERATURE_NORMAL : normal state EMBER_TEMPERATURE_MEASUREMENT_SERVER_OVER_TEMPERATURE_WARNING : warning state EMBER_TEMPERATURE_MEASUREMENT_SERVER_OVER_TEMPERATURE_CRITICAL : critical state

Ver.: always

bool emberAfPluginTransportMqttMessageArrivedCallback ( const char * topic,
const char * payload
)

MQTT message arrived.

This function is called when the MQTT client for the gateway receives an incoming message on a topic. If the message is processed by the application, return true. If the message is not processed, return false. This function is called on a separate thread, so no stack calls should be made within the implementation of this function. Instead, use a global variable in that function to communicate the message arrival to a stack event or timer running from the main loop.

Parameters
topic A string containing the topic for the message that arrived. While the underlying MQTT libraries allow NULL characters in a topic, NULL characters are not supported in this implementation so the topic parameter can be assumed to be NULL terminated.
payload A string containing the payload for the message that arrived.
void emberAfPluginTransportMqttStateChangedCallback ( EmberAfPluginTransportMqttState state )

MQTT client state is changed.

This function is called when the state of the MQTT client changes.

Parameters
state Contains the new and current EmberAfPluginTransportMqttState state.
void emberAfPluginTrustCenterKeepaliveConnectivityRestoredCallback ( void )

ConnectivityRestored This function is called by the Trust Center Keepalive plugin when a read attribute response command from the trust center is received after trust center connectivity had previously been lost.

bool emberAfPluginTrustCenterKeepaliveTimeoutCallback ( void )

Timeout.

This function is called by the Trust Center Keepalive plugin when the Trust Center fails to acknowledge enough keepalive messages. Upon timing out, the Trust Center Keepalive plugin code will initiate a search for a new Trust Center, which falls in line with the Trust Center Swapout feature. Applications may consume this callback and have it return true in order to prevent the Trust Center Keepalive plugin code from issuing a Trust Center (insecure) rejoin. Doing so will also give the application a chance to implement its own rejoin algorithm or logic. If this callback returns false, the Trust Center Keepalive plugin code will proceed with issuing a Trust Center rejoin.

void emberAfPluginTunnelingClientDataErrorCallback ( uint8_t tunnelIndex,
EmberAfTunnelingTransferDataStatus transferDataStatus
)

Data Error.

This function is called by the Tunneling client plugin whenever a data error occurs on a tunnel. Errors occur if a device attempts to send data on tunnel that is no longer active or if the tunneling does not belong to the device.

Parameters
tunnelIndex The index of the tunnel on which this data error occurred. Ver.: always
transferDataStatus The error that occurred. Ver.: always
void emberAfPluginTunnelingClientDataReceivedCallback ( uint8_t tunnelIndex,
uint8_t * data,
uint16_t dataLen
)

Data Received.

This function is called by the Tunneling client plugin whenever data is received from a server through a tunnel.

Parameters
tunnelIndex The index of the tunnel through which the data was received. Ver.: always
data Buffer containing the raw octets of the data. Ver.: always
dataLen The length in octets of the data. Ver.: always
void emberAfPluginTunnelingClientTransferDataFailureCallback ( uint16_t indexOfDestination,
EmberApsFrame * apsFrame,
uint16_t msgLen,
uint8_t * message,
EmberStatus status
)

Transfer Data Failure.

This function is called when a TransferData command fails to be sent to the intended destination.

Parameters
indexOfDestination The index or destination address of the TransferData command. Ver.: always
apsFrame The EmberApsFrame of the command. Ver.: always
msgLen The length of the payload sent in the command. Ver.: always
message The payload that was sent in the command. Ver.: always
status The non-success status code from the transmission of the command. Ver.: always
void emberAfPluginTunnelingClientTunnelClosedCallback ( uint8_t tunnelIndex )

Tunnel Closed.

This function is called by the Tunneling client plugin whenever a server sends a notification that it preemptively closed an inactive tunnel. Servers are not required to notify clients of tunnel closures, so applications cannot rely on this callback being called for all tunnels.

Parameters
tunnelIndex The index of the tunnel that has been closed. Ver.: always
void emberAfPluginTunnelingClientTunnelOpenedCallback ( uint8_t tunnelIndex,
EmberAfPluginTunnelingClientStatus tunnelStatus,
uint16_t maximumIncomingTransferSize
)

Tunnel Opened.

This function is called by the Tunneling client plugin whenever a tunnel is opened. Clients may open tunnels by sending a Request Tunnel command.

Parameters
tunnelIndex The index of the tunnel that has been opened. Ver.: always
tunnelStatus The status of the request. Ver.: always
maximumIncomingTransferSize The maximum incoming transfer size of the server. Ver.: always
void emberAfPluginTunnelingServerDataErrorCallback ( uint16_t tunnelIndex,
EmberAfTunnelingTransferDataStatus transferDataStatus
)

Data Error.

This function is called by the Tunneling server plugin whenever a data error occurs on a tunnel. Errors occur if a device attempts to send data on tunnel that is no longer active or if the tunneling does not belong to the device.

Parameters
tunnelIndex The identifier of the tunnel on which this data error occurred. Ver.: always
transferDataStatus The error that occurred. Ver.: always
void emberAfPluginTunnelingServerDataReceivedCallback ( uint16_t tunnelIndex,
uint8_t * data,
uint16_t dataLen
)

Data Received.

This function is called by the Tunneling server plugin whenever data is received from a client through a tunnel.

Parameters
tunnelIndex The identifier of the tunnel through which the data was received. Ver.: always
data Buffer containing the raw octets of the data. Ver.: always
dataLen The length in octets of the data. Ver.: always
bool emberAfPluginTunnelingServerIsProtocolSupportedCallback ( uint8_t protocolId,
uint16_t manufacturerCode
)

Is Protocol Supported.

This function is called by the Tunneling server plugin whenever a Request Tunnel command is received. The application should return true if the protocol is supported and false otherwise.

Parameters
protocolId The identifier of the metering communication protocol for which the tunnel is requested. Ver.: always
manufacturerCode The manufacturer code for manufacturer-defined protocols or 0xFFFF in unused. Ver.: always
void emberAfPluginTunnelingServerTunnelClosedCallback ( uint16_t tunnelIndex,
bool clientInitiated
)

Tunnel Closed.

This function is called by the Tunneling server plugin whenever a tunnel is closed. Clients may close tunnels by sending a Close Tunnel command. The server can preemptively close inactive tunnels after a timeout.

Parameters
tunnelIndex The identifier of the tunnel that has been closed. Ver.: always
clientInitiated true if the client initiated the closing of the tunnel or false if the server closed the tunnel due to inactivity. Ver.: always
void emberAfPluginTunnelingServerTunnelOpenedCallback ( uint16_t tunnelIndex,
uint8_t protocolId,
uint16_t manufacturerCode,
bool flowControlSupport,
uint16_t maximumIncomingTransferSize
)

Tunnel Opened.

This function is called by the Tunneling server plugin whenever a tunnel is opened. Clients may open tunnels by sending a Request Tunnel command.

Parameters
tunnelIndex The index to the tunnel table entry that has been opened. Ver.: always
protocolId The identifier of the metering communication protocol for the tunnel. Ver.: always
manufacturerCode The manufacturer code for manufacturer-defined protocols or 0xFFFF in unused. Ver.: always
flowControlSupport true is flow control support is requested or false if it is not. Ver.: always
maximumIncomingTransferSize The maximum incoming transfer size of the client. Ver.: always
void emberAfPluginUpdateTcLinkKeyStatusCallback ( EmberKeyStatus keyStatus )

Status.

This callback is fired when the Update Link Key exchange process is updated with a status from the stack. Implementations will know that the Update TC Link Key plugin has completed its link key request when the keyStatus parameter is EMBER_VERIFY_LINK_KEY_SUCCESS.

Parameters
keyStatus An EmberKeyStatus value describing the success or failure of the key exchange process. Ver.: always
void emberAfPluginZllCommissioningClientTouchLinkFailedCallback ( EmberAfZllCommissioningStatus status )

Touch Link Failed.

This function is called by the ZLL Commissioning Client plugin if touch linking fails.

Parameters
status The reason the touch link failed. Ver.: always
void emberAfPluginZllCommissioningCommonInitialSecurityStateCallback ( EmberZllInitialSecurityState * securityState )

Initial Security State.

This function is called by the ZLL Commissioning Common plugin to determine the initial security state to be used by the device. The application must populate the ::EmberZllInitialSecurityState structure with a configuration appropriate for the network being formed, joined, or started. Once the device forms, joins, or starts a network, the same security configuration will remain in place until the device leaves the network.

Parameters
securityState The security configuration to be populated by the application and ultimately set in the stack. Ver.: always
void emberAfPluginZllCommissioningCommonResetToFactoryNewCallback ( void )

Reset To Factory New.

This function is called by the ZLL Commissioning Common plugin when a request to reset to factory new is received. The plugin will leave the network, reset attributes managed by the framework to their default values, and clear the group and scene tables. The application should perform any other necessary reset-related operations in this callback, including resetting any externally-stored attributes.

void emberAfPluginZllCommissioningCommonTouchLinkCompleteCallback ( const EmberZllNetwork * networkInfo,
uint8_t deviceInformationRecordCount,
const EmberZllDeviceInfoRecord * deviceInformationRecordList
)

Touch Link Complete.

This function is called by the ZLL Commissioning Common plugin when touch linking completes.

Parameters
networkInfo The ZigBee and ZLL-specific information about the network and target. Ver.: always
deviceInformationRecordCount The number of sub-device information records for the target. Ver.: always
deviceInformationRecordList The list of sub-device information records for the target. Ver.: always
bool emberAfPluginZllCommissioningNetworkJoinCallback ( EmberZigbeeNetwork * networkFound,
uint8_t lqi,
int8_t rssi
)

Join.

This callback is called by the ZLL Commissioning Network plugin when a joinable network has been found. If the application returns true, the plugin will attempt to join the network. Otherwise, the plugin will ignore the network and continue searching. Applications can use this callback to implement a network blacklist. Note that this callback is not called during touch linking.

Parameters
networkFound Ver.: always
lqi Ver.: always
rssi Ver.: always
bool emberAfPluginZllCommissioningServerEndpointInformationCallback ( uint8_t endpoint,
uint8_t index,
EmberAfPluginZllCommissioningEndpointInformationRecord * record
)

Endpoint Information.

This function is called by the ZLL Commissining Server plugin to obtain information about the remote endpoints controlled by a specific endpoint on the local device. The application should populate the record with information about the remote endpoint and return true. If no information is available for the given endpoint and index, the application should return false.

Parameters
endpoint The local endpoint for which the remote endpoint information is requested. Ver.: always
index The index of the remote endpoint information on the local endpoint. Ver.: always
record The endpoint information record. Ver.: always
uint8_t emberAfPluginZllCommissioningServerEndpointInformationCountCallback ( uint8_t endpoint )

Endpoint Information Count.

This function is called by the ZLL Commissining Server plugin to determine the number of remote endpoints controlled by a specific endpoint on the local device.

Parameters
endpoint The local endpoint for which the remote endpoint information count is requested. Ver.: always
bool emberAfPluginZllCommissioningServerGroupIdentifierCallback ( uint8_t endpoint,
uint8_t index,
EmberAfPluginZllCommissioningGroupInformationRecord * record
)

Group Identifier.

This function is called by the ZLL Commissining Server plugin to obtain information about the group identifiers in use by a specific endpoint on the device. The application should populate the record with information about the group identifier and return true. If no information is available for the given endpoint and index, the application should return false.

Parameters
endpoint The endpoint for which the group identifier is requested. Ver.: always
index The index of the group on the endpoint. Ver.: always
record The group information record. Ver.: always
uint8_t emberAfPluginZllCommissioningServerGroupIdentifierCountCallback ( uint8_t endpoint )

Group Identifier Count.

This function is called by the ZLL Commissining Server plugin to determine the number of group identifiers in use by a specific endpoint on the device. The total number of group identifiers on the device, which are shared by all endpoints, is defined by ::EMBER_ZLL_GROUP_ADDRESSES.

Parameters
endpoint The endpoint for which the group identifier count is requested. Ver.: always
void emberAfPluginZllCommissioningServerIdentifyCallback ( uint16_t durationS )

Identify.

This function is called by the ZLL Commissining Server plugin to notify the application that it should take an action to identify itself. This typically occurs when an Identify Request is received via inter-PAN messaging.

Parameters
durationS If the duration is zero, the device should exit identify mode. If the duration is 0xFFFF, the device should remain in identify mode for the default time. Otherwise, the duration specifies the length of time in seconds that the device should remain in identify mode. Ver.: always
EmberAfStatus emberAfPluginZllOnOffServerOffWithEffectCallback ( uint8_t endpoint,
uint8_t effectId,
uint8_t effectVariant
)

Off With Effect.

This callback is called by the ZLL On/Off Server plugin whenever an OffWithEffect command is received. The application should implement the effect and variant requested in the command and return EMBER_ZCL_STATUS_SUCCESS if successful or an appropriate error status otherwise.

Parameters
endpoint Ver.: always
effectId Ver.: always
effectVariant Ver.: always
void emberPluginEM4AboutToGoInEM4Callback ( uint32_t sleepDurationMs )

about to go to em4 sleep called from idle-sleep plugin, implemented in em4 plugin stores stack related variables in RTCC RAM

Parameters
sleepDurationMs A sleep duartion value in milliseconds to set up em4 wakeup timer. Ver.: always
void emberPluginEM4AfterEM4Callback ( void )

called from idle-sleep plugin after coming back from em4 sleep mode This could be implemented by app to restore restart sensitive app variables from RTCC RAM

void emberPluginEM4BeforeEM4Callback ( void )

called from idle-sleep plugin before going into em4 sleep mode This could be implemented by app to store restart sensitive app variables in RTCC RAM

void emberPluginEM4ComingBackFromEM4Callback ( void )

coming back from em4 sleep called from idle-sleep plugin, implemented in em4 plugin. Restores stack related variables from RTCC RAM

void halBulbPwmDriverBlinkOffCallback ( void )

Generated during blinking behavior when it is time to turn the bulb off. While the plugin will determine when to blink the bulb on or off, it is up to this callback to determine how to turn the bulb off.

Should be implemented by an application layer configuration plugin.

void halBulbPwmDriverBlinkOnCallback ( void )

Generated during blinking behavior when it is time to turn the bulb on. While the plugin will determine when to blink the bulb on or off, it is up to this callback to determine how to turn the bulb on.

Should be implemented by an application layer configuration plugin.

void halBulbPwmDriverBlinkStartCallback ( void )

Generated when the application layer makes a call to initiate blinking behavior. It warns the application layer PWM code not to attempt to drive the LEDs directly and interfere with the blinking behavior.

Should be implemented by an application layer configuration plugin.

void halBulbPwmDriverBlinkStopCallback ( void )

Generated when the current blinking command finishes. The application layer PWM code must then determine what the bulb drive should be, based on the current application layer attributes (i.e., level, on/off, color XY, and so on.)

Should be implemented by an application layer configuration plugin.

uint16_t halBulbPwmDriverFrequencyCallback ( void )

Configures the frequency of the PWM driver. Called by the bulb-pwm driver upon initialization to determine the frequency at which the PWM driver should be driven. It should return either the frequency, in Hz, or USE_DEFAULT_FREQUENCY to indicate that the plugin should use the default value. The default value is 1000 Hz, but can be overridden by a macro in the board header.

Should be implemented by an application layer configuration plugin.

void halBulbPwmDriverInitCompleteCallback ( void )

Indicates that the PWM driver has been initialized and the bulb should drive the initial LED PWM values at this time.

Should be implemented by an application layer configuration plugin.

void halOccupancyStateChangedCallback ( HalOccupancyState occupancyState )

Occupancy state has changed.

This callback is called when the occupancy sensor state changes.

Parameters
occupancyState The bitmap used to determine occupancy state. At present, only bit 0 is used and will be set to either HAL_OCCUPANCY_STATE_OCCUPIED or HAL_OCCUPANCY_STATE_UNOCCUPIED.
void halRadioPowerDownHandler ( void )

Called whenever the radio is powered off.

void halRadioPowerUpHandler ( void )

Called whenever the radio is powered on.

void halSleepCallback ( boolean enter,
SleepModes sleepMode
)

Called whenever the microcontroller enters/exits a idle/sleep mode.

Parameters
enter True if entering idle/sleep, False if exiting
sleepMode Idle/sleep mode