Renaming Changes in Zigbee#

All Zigbee public APIs, enumerations, etc. with EMBER in their name are renamed to a new format as described below.

APIs#

  • Anything emberABC gets renamed to sl_zigbee_abc

  • Anything ezspABC gets consolidated to the sl_zigbee_abc format

Previously, APIs that would send an EZSP frame to the NCP would be named ezspABC. With the new API consolidation, the user application code can call sl_zigbee_abc and not care whether the underlying definition is a bare metal call, an IPC call that is used in RTOS applications, or the host API that sends an EZSP frame to the NCP.

In summary, the transform here is that emberAbc and ezspAbc become sl_zigbee_abc. There are a few exceptions, which are highlighted in an API consolidation table.

Enumerations, Macros, and #DEFINEs#

Enumerations, macros, and defines are largely renamed with the transform EMBER_ABC to SL_ZIGBEE_ABC. An example is SL_ZIGBEE_NULL_NODE_ID, which was once EMBER_NULL_NODE_ID.

Note that this applies to EZSP items as well. For example, EZSP command ID EMBER_EZSP_VALUE_VERSION_INFO is now SL_ZIGBEE_EZSP_VALUE_VERSION_INFO.

There are a few exceptions to this naming, which are listed here.

  • Anything EMBER_MFG_ABC becomes SL_LEGACY_ABC.

  • Anything EMBER_MAC_ABC becomes SL_802154_ABC.

  • Anything EMBER_SERIAL_ABC becomes SL_LEGACY_SERIAL_ABC.

EmberStatus is removed. All APIs now use the common sl_status_t enum. For example, EMBER_DELIVERY_FAILED that was in error-def.h is now SL_STATUS_ZIGBEE_DELIVERY_FAILED in sl_status.h.

Structures/typedefs#

Structures take the same EMBERSL_ZIGBEE renaming. For example, EmberBeaconData is now sl_zigbee_beacon_data_t. Note that every structure's type ends in a _t now to be consistent.

Filenames#

Ember in filenames is replaced by sl_zigbee. An example is that protocol/zigbee/stack/include/ember-types.h is now protocol/zigbee/stack/include/sl_zigbee_types.h. Note that dashes are replaced by underscores.