Ember ZigBee Light Link (ZLL) APIs and Handlers#

See zll-api.h for source code.

Enumerations#

enum
@0 {
PRIORITIZE_BEACONS_BASED_ON_PARENT_CLASSIFICATION = 0x0001
PRIORITIZE_BEACONS_BASED_ON_TC_CONNECTVITY = 0x0002
TC_CONNECTIVITY = 0x0010
LONG_UPTIME = 0x0020
BAD_PARENT_CONNECTIVITY = 0x0040
EMBER_OUTGOING_MESSAGES = 0x0001
EMBER_INCOMING_MESSAGES = 0x0002
EMBER_RADIO_IS_ON = 0x0004
EMBER_TRANSPORT_ACTIVE = 0x0008
EMBER_APS_LAYER_ACTIVE = 0x0010
EMBER_ASSOCIATING = 0x0020
EMBER_ZLL_TOUCH_LINKING = 0x0040
EMBER_NETWORK_TIMEOUT_REQUEST = 0x0200
EMBER_SEND_ORPHAN_NOTIFICATION = 0x0400
EMBER_MAC_DATA_POLL_SUPER_RETRY = 0x0800
INITIAL = 0x0000
SCAN_FOR_TOUCH_LINK = 0x0001
SCAN_FOR_DEVICE_INFORMATION = 0x0002
SCAN_FOR_IDENTIFY = 0x0004
SCAN_FOR_RESET = 0x0008
TARGET_NETWORK_FOUND = 0x0010
ABORTING_TOUCH_LINK = 0x0020
SCAN_COMPLETE = 0x0040
TOUCH_LINK_TARGET = 0x0080
FORMING_NETWORK = 0x0100
RESETTING_TO_FACTORY_NEW = 0x0200
ADC_REF_INT = 42U
TOKEN_COUNT
COMM_SERIAL = 0x01
COMM_RADIO = 0x02
}
enum
@1 {
EMBER_POLL_TIMEOUT_10_SECONDS = 0
EMBER_POLL_TIMEOUT_2_MINUTES = 1
EMBER_POLL_TIMEOUT_4_MINUTES = 2
EMBER_POLL_TIMEOUT_8_MINUTES = 3
EMBER_POLL_TIMEOUT_16_MINUTES = 4
EMBER_POLL_TIMEOUT_32_MINUTES = 5
EMBER_POLL_TIMEOUT_64_MINUTES = 6
EMBER_POLL_TIMEOUT_128_MINUTES = 7
EMBER_POLL_TIMEOUT_256_MINUTES = 8
EMBER_POLL_TIMEOUT_512_MINUTES = 9
EMBER_POLL_TIMEOUT_1024_MINUTES = 10
EMBER_POLL_TIMEOUT_2048_MINUTES = 11
EMBER_POLL_TIMEOUT_4096_MINUTES = 12
EMBER_POLL_TIMEOUT_8192_MINUTES = 13
EMBER_POLL_TIMEOUT_16384_MINUTES = 14
EMBER_RADIO_POWER_MODE_RX_ON
EMBER_RADIO_POWER_MODE_OFF
ADC_SAMPLE_CLOCKS_32 = 0x0
ADC_SAMPLE_CLOCKS_64 = 0x1
ADC_SAMPLE_CLOCKS_128 = 0x2
ADC_SAMPLE_CLOCKS_256 = 0x3
ADC_SAMPLE_CLOCKS_512 = 0x4
ADC_SAMPLE_CLOCKS_1024 = 0x5
ADC_SAMPLE_CLOCKS_2048 = 0x6
ADC_SAMPLE_CLOCKS_4096 = 0x7
}

Functions#

emberZllFormNetwork(EmberZllNetwork *networkInfo, int8_t radioTxPower)

This will set the device type as a router or end device (depending on the passed nodeType) and setup a distributed commissioning network with the passed parameters. If panId is 0xFFFF, a random PAN ID will be generated. If extendedPanId is set to all F's, then a random extended PAN ID will be generated. If channel is 0xFF, then channel 11 will be used. If all F values are passed for PAN ID or Extended PAN ID, then the randomly generated values will be returned in the passed structure.

emberZllJoinTarget(const EmberZllNetwork *targetNetworkInfo)

Causes the device to send a NWK start or join to the target device, which causes the remote AND local device to start operating on a network together. If the local device is a factory new end device, then it will send a touchlink NWK start to the target requesting that the target generate new network parameters. If the local device is a router, then it will form a new touchlink network itself. If the device is not factory new, the local device will send a NWK join request using the current network parameters.

emberZllSetSecurityStateWithoutKey(const EmberZllInitialSecurityState *securityState)

Updates the touchlink security token information. Unlike emberZllSetInitialSecurityState, this can be called while a network is already established.

emberZllSetInitialSecurityState(const EmberKeyData *networkKey, const EmberZllInitialSecurityState *securityState)

Causes the device to setup the security information used in its network. Must be called prior to forming, starting, or joining a network.

emberZllStartScan(uint32_t channelMask, int8_t radioPowerForScan, EmberNodeType nodeType)

Initiates a touchlink network scan on all the specified channels. Results will be returned in emberZllNetworkFoundHandler().

emberZllSetRxOnWhenIdle(uint32_t durationMs)

Changes the mode of the radio so that the receiver is on when the device is idle. This permits a touchlink target to receive incoming scan requests and an initiator to communicate with a target before the network is established. The idle mode will be set to 'Rx On' until either the duration expires or is set to zero, or unless emberZllCancelRxOnWhenIdle is called.

void

Cancels the special touchlink radio idle mode immediately, without reverting the Stack's radio idle mode to its original setting.

void
emberZllSetRadioIdleMode(EmberRadioPowerMode mode)

Sets the default radio power mode directly (This is the radio state when the device is not actively transmitting, and may be either EMBER_RADIO_POWER_MODE_RX_ON or EMBER_RADIO_POWER_MODE_RX_OFF.)

uint8_t

Get the default radio power mode.

void
emberZllNetworkFoundHandler(const EmberZllNetwork *networkInfo, const EmberZllDeviceInfoRecord *deviceInfo)

This call is fired when a touchlink network scan finds a touchlinkable device, which may be joined on either a centralized or a distributed network, or may not be joined at all. The network information will be returned to the application for processing.

void
emberZllScanCompleteHandler(EmberStatus status)

This call is fired when a touchlink network scan is complete.

void
emberZllAddressAssignmentHandler(const EmberZllAddressAssignment *addressInfo)

This call is fired when network and group addresses are assigned to a remote mode in a network start or network join request.

void
emberZllTouchLinkTargetHandler(const EmberZllNetwork *networkInfo)

This call is fired when the device is a target of a touch link.

void
emberZllGetTokenStackZllData(EmberTokTypeStackZllData *token)

Reads the touchlink stack data token.

void
emberZllGetTokenStackZllSecurity(EmberTokTypeStackZllSecurity *token)

Reads the touchlink stack security token.

void
emberZllGetTokensStackZll(EmberTokTypeStackZllData *data, EmberTokTypeStackZllSecurity *security)

Reads both the touchlink stack data and security tokens.

void
emberZllSetTokenStackZllData(EmberTokTypeStackZllData *token)

Sets the touchlink stack data token.

bool

Returns whether or not the network is a touchlink network, that is, a distributed network formed by touchlink commissioning, and supporting touchlink-compliant address and group id assignment.

void

Alters the touchlink data token to reflect the fact that the network is non-touchlink-compliant.

Gets the policy that enables or disables touchlink processing, and to enable or disable stealing a non-factory-new device.

emberZllSetPolicy(EmberZllPolicy policy)

Sets the policy to enable or disable touchlink processing, and to enable or disable stealing a non-factory-new device.

void
emberSetZllNodeType(EmberNodeType nodeType)

Sets the default node type for a factory new device.

void

Sets additional capability bits in the touchlink state.

bool

Indicates that a touchlink network operation is in progress, that is, a network start or a network join.

bool

This function is called to indicate whether the special touchlink radio idle mode is active, i.e. whether the radio receiver will remain on when the device is not transmitting, when the device is not on a network.

uint32_t

This call will get the primary touchlink channel mask.

uint32_t

This call will get the secondary touchlink channel mask.

void

This call will set the primary touchlink channel mask.

void

This call will set the secondary touchlink channel mask.

void

This call will clear the ZLL stack tokens.

void

This call will inform the API that all scanning is complete.

Initiates the touch link procedure.

Initiates a touch link to retrieve information about a target device.

Initiates a touch link to cause a target device to identify itself.

Initiates a touch link for the purpose of resetting a target device.

void

Aborts the touch link procedure.

Generates a random network key and initializes the security state of the device.

bool

Indicates whether a touch link procedure is currently in progress.

void

Resets the local device to a factory new state.

Disables touchlink processing.

Enables touchlink processing.

Scans for joinable networks.

Scans for an unused PAN ID.

No touchlink for non-factory new device.

No reset for non-factory new device.

Macros#

#define
#define
#define
#define
#define
#define
#define
#define
#define
emberAfPluginZllCommissioningInitialSecurityStateCallback emberAfPluginZllCommissioningCommonInitialSecurityStateCallback
#define
emberAfPluginZllCommissioningTouchLinkCompleteCallback emberAfPluginZllCommissioningCommonTouchLinkCompleteCallback
#define
emberAfPluginZllCommissioningResetToFactoryNewCallback emberAfPluginZllCommissioningCommonResetToFactoryNewCallback

Enumeration Documentation#

@0#

@0
Enumerator
PRIORITIZE_BEACONS_BASED_ON_PARENT_CLASSIFICATION
PRIORITIZE_BEACONS_BASED_ON_TC_CONNECTVITY
TC_CONNECTIVITY
LONG_UPTIME
BAD_PARENT_CONNECTIVITY
EMBER_OUTGOING_MESSAGES

There are messages waiting for transmission.

EMBER_INCOMING_MESSAGES

One or more incoming messages being processed.

EMBER_RADIO_IS_ON

The radio is currently powered on. On sleepy devices, the radio is turned off when not in use. On non-sleepy devices (EMBER_COORDINATOR, EMBER_ROUTER, or EMBER_END_DEVICE), the radio is always on.

EMBER_TRANSPORT_ACTIVE

The transport layer has messages awaiting an ACK.

EMBER_APS_LAYER_ACTIVE

The ZigBee APS layer has messages awaiting an ACK.

EMBER_ASSOCIATING

The node is currently trying to associate with a ZigBee PRO network.

EMBER_ZLL_TOUCH_LINKING

The node is currently touch linking.

EMBER_NETWORK_TIMEOUT_REQUEST

Network Timeout Request Event.

EMBER_SEND_ORPHAN_NOTIFICATION

Sending Orphan Notification Event.

EMBER_MAC_DATA_POLL_SUPER_RETRY

MAC Data Poll Super Retry Event .

INITIAL
SCAN_FOR_TOUCH_LINK
SCAN_FOR_DEVICE_INFORMATION
SCAN_FOR_IDENTIFY
SCAN_FOR_RESET
TARGET_NETWORK_FOUND
ABORTING_TOUCH_LINK
SCAN_COMPLETE
TOUCH_LINK_TARGET
FORMING_NETWORK
RESETTING_TO_FACTORY_NEW
ADC_REF_INT

Internal reference.

TOKEN_COUNT
COMM_SERIAL
COMM_RADIO

Definition at line 93 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-common/zll-commissioning-common.h

@1#

@1
Enumerator
EMBER_POLL_TIMEOUT_10_SECONDS
EMBER_POLL_TIMEOUT_2_MINUTES
EMBER_POLL_TIMEOUT_4_MINUTES
EMBER_POLL_TIMEOUT_8_MINUTES
EMBER_POLL_TIMEOUT_16_MINUTES
EMBER_POLL_TIMEOUT_32_MINUTES
EMBER_POLL_TIMEOUT_64_MINUTES
EMBER_POLL_TIMEOUT_128_MINUTES
EMBER_POLL_TIMEOUT_256_MINUTES
EMBER_POLL_TIMEOUT_512_MINUTES
EMBER_POLL_TIMEOUT_1024_MINUTES
EMBER_POLL_TIMEOUT_2048_MINUTES
EMBER_POLL_TIMEOUT_4096_MINUTES
EMBER_POLL_TIMEOUT_8192_MINUTES
EMBER_POLL_TIMEOUT_16384_MINUTES
EMBER_RADIO_POWER_MODE_RX_ON
EMBER_RADIO_POWER_MODE_OFF
ADC_SAMPLE_CLOCKS_32

Rate 32 cycles, 5 effective bits in ADC_DATA[15:11]

ADC_SAMPLE_CLOCKS_64

Rate 64 cycles, 6 effective bits in ADC_DATA[15:10]

ADC_SAMPLE_CLOCKS_128

Rate 128 cycles, 7 effective bits in ADC_DATA[15:9]

ADC_SAMPLE_CLOCKS_256

Rate 256 cycles, 8 effective bits in ADC_DATA[15:8]

ADC_SAMPLE_CLOCKS_512

Rate 512 cycles, 9 effective bits in ADC_DATA[15:7]

ADC_SAMPLE_CLOCKS_1024

Rate 1024 cycles, 10 effective bits in ADC_DATA[15:6]

ADC_SAMPLE_CLOCKS_2048

Rate 2048 cycles, 11 effective bits in ADC_DATA[15:5]

ADC_SAMPLE_CLOCKS_4096

Rate 4096 cycles, 12 effective bits in ADC_DATA[15:4]


Definition at line 139 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-common/zll-commissioning-common.h

Variable Documentation#

emAfZllNetwork#

EmberZllNetwork emAfZllNetwork

Definition at line 79 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-common/zll-commissioning-common.h

emAfZllFlags#

uint16_t emAfZllFlags

Definition at line 80 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-common/zll-commissioning-common.h

emAfInitiatorRejoinRetryCount#

uint8_t emAfInitiatorRejoinRetryCount

Definition at line 81 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-common/zll-commissioning-common.h

Function Documentation#

emberZllFormNetwork#

EmberStatus emberZllFormNetwork (EmberZllNetwork * networkInfo, int8_t radioTxPower)

This will set the device type as a router or end device (depending on the passed nodeType) and setup a distributed commissioning network with the passed parameters. If panId is 0xFFFF, a random PAN ID will be generated. If extendedPanId is set to all F's, then a random extended PAN ID will be generated. If channel is 0xFF, then channel 11 will be used. If all F values are passed for PAN ID or Extended PAN ID, then the randomly generated values will be returned in the passed structure.

Parameters
N/AnetworkInfo

A pointer to an EmberZllNetwork struct indicating the network parameters to use when forming the network. If random values are requested, the stack's randomly generated values will be returned in the structure.

N/AradioTxPower

The radio output power at which a node is to operate.

Returns

  • An EmberStatus value indicating whether the operation succeeded or why it failed.


Definition at line 45 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/stack/include/zll-api.h

emberZllJoinTarget#

EmberStatus emberZllJoinTarget (const EmberZllNetwork * targetNetworkInfo)

Causes the device to send a NWK start or join to the target device, which causes the remote AND local device to start operating on a network together. If the local device is a factory new end device, then it will send a touchlink NWK start to the target requesting that the target generate new network parameters. If the local device is a router, then it will form a new touchlink network itself. If the device is not factory new, the local device will send a NWK join request using the current network parameters.

Parameters
N/AtargetNetworkInfo

A pointer to an EmberZllNetwork structure that indicates the info about what device to send the NWK start/join request to. This information must have previously been returned from a touchlink scan.

Returns

  • An EmberStatus value indicating whether the operation succeeded or why it failed.


Definition at line 65 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/stack/include/zll-api.h

emberZllSetSecurityStateWithoutKey#

EmberStatus emberZllSetSecurityStateWithoutKey (const EmberZllInitialSecurityState * securityState)

Updates the touchlink security token information. Unlike emberZllSetInitialSecurityState, this can be called while a network is already established.

Parameters
N/AsecurityState

The security configuration to be set.

Returns

  • An EmberStatus value indicating whether the operation succeeded or why it failed.


Definition at line 76 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/stack/include/zll-api.h

emberZllSetInitialSecurityState#

EmberStatus emberZllSetInitialSecurityState (const EmberKeyData * networkKey, const EmberZllInitialSecurityState * securityState)

Causes the device to setup the security information used in its network. Must be called prior to forming, starting, or joining a network.

Parameters
N/AnetworkKey

A pointer to an EmberKeyData structure containing the value for the network key. If the value is set to all F's, then a random network key will be generated.

N/AsecurityState

The security configuration to be set.

Returns

  • An EmberStatus value indicating whether the operation succeeded or why it failed.


Definition at line 90 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/stack/include/zll-api.h

emberZllStartScan#

EmberStatus emberZllStartScan (uint32_t channelMask, int8_t radioPowerForScan, EmberNodeType nodeType)

Initiates a touchlink network scan on all the specified channels. Results will be returned in emberZllNetworkFoundHandler().

Parameters
N/AchannelMask

Indicates the range of channels to scan.

N/AradioPowerForScan

The radio output power used for the scan requests.

N/AnodeType

The node type of the local device.

Returns

  • An EmberStatus value indicating whether the operation succeeded or why it failed.


Definition at line 104 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/stack/include/zll-api.h

emberZllSetRxOnWhenIdle#

EmberStatus emberZllSetRxOnWhenIdle (uint32_t durationMs)

Changes the mode of the radio so that the receiver is on when the device is idle. This permits a touchlink target to receive incoming scan requests and an initiator to communicate with a target before the network is established. The idle mode will be set to 'Rx On' until either the duration expires or is set to zero, or unless emberZllCancelRxOnWhenIdle is called.

Parameters
N/AdurationMs

The duration in milliseconds for which to set the idle mode to 'Rx On'. A duration of 0xffffffff indicates an indefinite duration, so that the device will always be able to respond to touchlink requests when not joined. A duration of 0 will cancel the current touchlink radio idle mode.

Note that, if the device joins or attempts to join a network during this period, then the Stack will suspend the special touchlink radio idle mode, and the Stack's radio idle mode will revert to the joined default appropriate to the node type. If, however, the device leaves, or the join fails, then the touchlink radio idle mode will be resumed, provided that the duration timer has not expired.

Also please note that a subsequent call to emberZllSetRxOnWhenIdle may only extend the (currently outstanding) 'Rx On' duration. If a shorter duration is required, (or if an indefinite duration is currently set) then emberZllSetRxOnWhenIdle must be called first with a duration of 0, in order to cancel the current touchlink radio idle mode.

Returns

  • An EmberStatus value indicating whether the operation succeeded or why it failed. A return value of EMBER_INVALID_CALL indicates that the special touchlink radio idle mode is active, but has been suspended by the Stack, because the device has joined a network, or is in the process of joining, or that an attempt was made to reduce the 'Rx On' duration without cancelling the existing touchlink radio idle mode.


Definition at line 140 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/stack/include/zll-api.h

emberZllCancelRxOnWhenIdle#

void emberZllCancelRxOnWhenIdle (void )

Cancels the special touchlink radio idle mode immediately, without reverting the Stack's radio idle mode to its original setting.

Parameters
N/A

Definition at line 148 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/stack/include/zll-api.h

emberZllSetRadioIdleMode#

void emberZllSetRadioIdleMode (EmberRadioPowerMode mode)

Sets the default radio power mode directly (This is the radio state when the device is not actively transmitting, and may be either EMBER_RADIO_POWER_MODE_RX_ON or EMBER_RADIO_POWER_MODE_RX_OFF.)

Parameters
N/Amode

The power mode to set.


Definition at line 160 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/stack/include/zll-api.h

emberZllGetRadioIdleMode#

uint8_t emberZllGetRadioIdleMode (void )

Get the default radio power mode.

Parameters
N/A

Returns

  • The current default radio power mode


Definition at line 167 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/stack/include/zll-api.h

emberZllNetworkFoundHandler#

void emberZllNetworkFoundHandler (const EmberZllNetwork * networkInfo, const EmberZllDeviceInfoRecord * deviceInfo)

This call is fired when a touchlink network scan finds a touchlinkable device, which may be joined on either a centralized or a distributed network, or may not be joined at all. The network information will be returned to the application for processing.

Parameters
N/AnetworkInfo

A pointer to an EmberZllNetwork struct containing the Zigbee and touchlink specific information about the discovered network.

N/AdeviceInfo

A pointer to an EmberZllDeviceInfoRecord struct containing the device specific info. This pointer may be NULL, indicating the device has either 0 sub-devices or more than 1 sub-devices.


Definition at line 183 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/stack/include/zll-api.h

emberZllScanCompleteHandler#

void emberZllScanCompleteHandler (EmberStatus status)

This call is fired when a touchlink network scan is complete.

Parameters
N/Astatus

An EmberStatus value indicating whether the operation succeeded, or why it failed. If the status is not EMBER_SUCCESS, the application should not attempt to start or join a network returned via emberZllNetworkFoundHandler.


Definition at line 194 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/stack/include/zll-api.h

emberZllAddressAssignmentHandler#

void emberZllAddressAssignmentHandler (const EmberZllAddressAssignment * addressInfo)

This call is fired when network and group addresses are assigned to a remote mode in a network start or network join request.

Parameters
N/AaddressInfo

A pointer to an EmberZllAddressAssignment struct containing the address assignment information.


Definition at line 203 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/stack/include/zll-api.h

emberZllTouchLinkTargetHandler#

void emberZllTouchLinkTargetHandler (const EmberZllNetwork * networkInfo)

This call is fired when the device is a target of a touch link.

Parameters
N/AnetworkInfo

A pointer to an EmberZllNetwork struct containing the Zigbee and touchlink specific information about the initiator.


Definition at line 211 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/stack/include/zll-api.h

emberZllGetTokenStackZllData#

void emberZllGetTokenStackZllData (EmberTokTypeStackZllData * token)

Reads the touchlink stack data token.

Parameters
N/Atoken

Definition at line 216 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/stack/include/zll-api.h

emberZllGetTokenStackZllSecurity#

void emberZllGetTokenStackZllSecurity (EmberTokTypeStackZllSecurity * token)

Reads the touchlink stack security token.

Parameters
N/Atoken

Definition at line 221 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/stack/include/zll-api.h

emberZllGetTokensStackZll#

void emberZllGetTokensStackZll (EmberTokTypeStackZllData * data, EmberTokTypeStackZllSecurity * security)

Reads both the touchlink stack data and security tokens.

Parameters
N/Adata
N/Asecurity

Definition at line 226 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/stack/include/zll-api.h

emberZllSetTokenStackZllData#

void emberZllSetTokenStackZllData (EmberTokTypeStackZllData * token)

Sets the touchlink stack data token.

Parameters
N/Atoken

Definition at line 232 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/stack/include/zll-api.h

emberIsZllNetwork#

bool emberIsZllNetwork (void )

Returns whether or not the network is a touchlink network, that is, a distributed network formed by touchlink commissioning, and supporting touchlink-compliant address and group id assignment.

Parameters
N/A

Definition at line 239 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/stack/include/zll-api.h

emberZllSetNonZllNetwork#

void emberZllSetNonZllNetwork (void )

Alters the touchlink data token to reflect the fact that the network is non-touchlink-compliant.

Parameters
N/A

Definition at line 245 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/stack/include/zll-api.h

emberZllGetPolicy#

EmberZllPolicy emberZllGetPolicy (void )

Gets the policy that enables or disables touchlink processing, and to enable or disable stealing a non-factory-new device.

Parameters
N/A

Definition at line 251 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/stack/include/zll-api.h

emberZllSetPolicy#

EmberStatus emberZllSetPolicy (EmberZllPolicy policy)

Sets the policy to enable or disable touchlink processing, and to enable or disable stealing a non-factory-new device.

Parameters
N/Apolicy

Definition at line 257 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/stack/include/zll-api.h

emberSetZllNodeType#

void emberSetZllNodeType (EmberNodeType nodeType)

Sets the default node type for a factory new device.

Parameters
N/AnodeType

node type to be set.


Definition at line 264 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/stack/include/zll-api.h

emberSetZllAdditionalState#

void emberSetZllAdditionalState (uint16_t mask)

Sets additional capability bits in the touchlink state.

Parameters
N/Amask

mask with the bits to be set or cleared.


Definition at line 271 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/stack/include/zll-api.h

emberZllOperationInProgress#

bool emberZllOperationInProgress (void )

Indicates that a touchlink network operation is in progress, that is, a network start or a network join.

Parameters
N/A

Definition at line 277 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/stack/include/zll-api.h

emberZllRxOnWhenIdleGetActive#

bool emberZllRxOnWhenIdleGetActive (void )

This function is called to indicate whether the special touchlink radio idle mode is active, i.e. whether the radio receiver will remain on when the device is not transmitting, when the device is not on a network.

Parameters
N/A

Definition at line 284 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/stack/include/zll-api.h

emberGetZllPrimaryChannelMask#

uint32_t emberGetZllPrimaryChannelMask (void )

This call will get the primary touchlink channel mask.

Parameters
N/A

Returns

  • The touchlink primary channel mask.


Definition at line 291 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/stack/include/zll-api.h

emberGetZllSecondaryChannelMask#

uint32_t emberGetZllSecondaryChannelMask (void )

This call will get the secondary touchlink channel mask.

Parameters
N/A

Returns

  • The touchlink secondary channel mask.


Definition at line 298 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/stack/include/zll-api.h

emberSetZllPrimaryChannelMask#

void emberSetZllPrimaryChannelMask (uint32_t mask)

This call will set the primary touchlink channel mask.

Parameters
N/Amask

touchlink primary channel mask.


Definition at line 305 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/stack/include/zll-api.h

emberSetZllSecondaryChannelMask#

void emberSetZllSecondaryChannelMask (uint32_t mask)

This call will set the secondary touchlink channel mask.

Parameters
N/Amask

touchlink secondary channel mask.


Definition at line 312 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/stack/include/zll-api.h

emberZllClearTokens#

void emberZllClearTokens (void )

This call will clear the ZLL stack tokens.

Parameters
N/A

Definition at line 318 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/stack/include/zll-api.h

emberZllScanningComplete#

void emberZllScanningComplete (void )

This call will inform the API that all scanning is complete.

Parameters
N/A

Definition at line 324 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/stack/include/zll-api.h

emberAfZllInitiateTouchLink#

EmberStatus emberAfZllInitiateTouchLink (void )

Initiates the touch link procedure.

Parameters
N/A

This function causes the stack to broadcast a series of ScanRequest commands via inter-PAN messaging. The plugin selects the target that sent a ScanResponse command with the strongest RSSI and attempts to link with it. If touch linking completes successfully, the plugin will call emberAfPluginZllCommissioningTouchLinkCompleteCallback with information about the network and the target. If touch linking fails, the plugin will call emberAfPluginZllCommissioningTouchLinkFailedCallback.

Returns

  • An EmberStatus value that indicates the success or failure of the command.


Definition at line 43 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-client/zll-commissioning-client.h

emberAfZllDeviceInformationRequest#

EmberStatus emberAfZllDeviceInformationRequest (void )

Initiates a touch link to retrieve information about a target device.

Parameters
N/A

As with a traditional touch link, this function causes the stack to broadcast messages to discover a target device. When the target is selected (based on RSSI), the plugin will retrieve information about it by unicasting a series of DeviceInformationRequest commands via inter-PAN messaging. If the process completes successfully, the plugin will call emberAfPluginZllCommissioningTouchLinkCompleteCallback with information about the target. If touch linking fails, the plugin will call emberAfPluginZllCommissioningTouchLinkFailedCallback.

Returns

  • An EmberStatus value that indicates the success or failure of the command.


Definition at line 60 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-client/zll-commissioning-client.h

emberAfZllIdentifyRequest#

EmberStatus emberAfZllIdentifyRequest (void )

Initiates a touch link to cause a target device to identify itself.

Parameters
N/A

As with a traditional touch link, this function causes the stack to broadcast messages to discover a target device. When the target is selected (based on RSSI), the plugin will cause it to identify itself by unicasting an IdentifyRequest command via inter-PAN messaging. If the process completes successfully, the plugin will call emberAfPluginZllCommissioningTouchLinkCompleteCallback with information about the target. If touch linking fails, the plugin will call emberAfPluginZllCommissioningTouchLinkFailedCallback.

Returns

  • An EmberStatus value that indicates the success or failure of the command.


Definition at line 77 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-client/zll-commissioning-client.h

emberAfZllResetToFactoryNewRequest#

EmberStatus emberAfZllResetToFactoryNewRequest (void )

Initiates a touch link for the purpose of resetting a target device.

Parameters
N/A

As with a traditional touch link, this function causes the stack to broadcast messages to discover a target device. When the target is selected (based on RSSI), the plugin will reset it by unicasting a ResetToFactoryNewRequest command via inter-PAN messaging. If the process completes successfully, the plugin will call emberAfPluginZllCommissioningTouchLinkCompleteCallback with information about the target. If touch linking fails, the plugin will call emberAfPluginZllCommissioningTouchLinkFailedCallback.

Returns

  • An EmberStatus value that indicates the success or failure of the command.


Definition at line 93 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-client/zll-commissioning-client.h

emberAfZllAbortTouchLink#

void emberAfZllAbortTouchLink (void )

Aborts the touch link procedure.

Parameters
N/A

This function can be called to cancel the touch link procedure. This can be useful, for example, if the touch link target is incorrect.


Definition at line 100 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-client/zll-commissioning-client.h

emberAfZllSetInitialSecurityState#

EmberStatus emberAfZllSetInitialSecurityState (void )

Generates a random network key and initializes the security state of the device.

Parameters
N/A

This function is a convenience wrapper for emberZllSetInitialSecurityState, which must be called before starting or joining a network. The plugin initializes the security state for the initiator during touch linking. The target must initialize its own security state prior to forming a network either by using this function or by calling emberZllSetInitialSecurityState directly.

Returns

  • An EmberStatus value that indicates the success or failure of the command.


Definition at line 44 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-common/zll-commissioning-common.h

emberAfZllTouchLinkInProgress#

bool emberAfZllTouchLinkInProgress (void )

Indicates whether a touch link procedure is currently in progress.

Parameters
N/A

Returns

  • True if a touch link is in progress or false otherwise.


Definition at line 50 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-common/zll-commissioning-common.h

emberAfZllResetToFactoryNew#

void emberAfZllResetToFactoryNew (void )

Resets the local device to a factory new state.

Parameters
N/A

This function causes the device to leave the network and clear its network parameters, resets its attributes to their default values, and clears the group and scene tables.


Definition at line 58 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-common/zll-commissioning-common.h

emberAfZllDisable#

EmberStatus emberAfZllDisable (void )

Disables touchlink processing.

Parameters
N/A

This function will cause the device to refuse network start/join requests if it receives them and will not allow touchlinking. Note that this will have the effect of overriding the emberAfZllNoTouchlinkForNFN function.


Definition at line 67 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-common/zll-commissioning-common.h

emberAfZllEnable#

EmberStatus emberAfZllEnable (void )

Enables touchlink processing.

Parameters
N/A

This function will cause the device to accept network start/join requests if it receives them and will not allow touchlinking. Note that this will have the effect of overriding the emberAfZllNoTouchlinkForNFN function.


Definition at line 76 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-common/zll-commissioning-common.h

emberAfZllScanForJoinableNetwork#

EmberStatus emberAfZllScanForJoinableNetwork (void )

Scans for joinable networks.

Parameters
N/A

This function will scan the primary channel set for joinable networks. If a joinable network is found, the plugin will attempt to join to it. If no joinable networks are found or if joining is not successful, the plugin will scan the secondary channel set for joinable networks. If a joinable network is found, the plugin will attempt to join to it. The plugin will only scan the secondary channel set if ::EMBER_AF_PLUGIN_ZLL_COMMISSIONING_COMMON_SCAN_SECONDARY_CHANNELS is defined. Otherwise, scanning stops after the initial scan of the primary channel set.

Routers and end devices should scan for joinable networks when directed by the application. Scanning for joinable networks enables classic Zigbee commissioning with non-ZLL devices.

Note, for Zigbee 3.0 compatability, an application should use ::emberAfPluginNetworkSteeringStart rather than this routine, which may be deprecated in a future release.

Returns

  • An EmberStatus value that indicates the success or failure of the command.


Definition at line 52 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-network/zll-commissioning-network.h

emberAfZllScanForUnusedPanId#

EmberStatus emberAfZllScanForUnusedPanId (void )

Scans for an unused PAN ID.

Parameters
N/A

This function scans the primary channel set for a channel with low average energy and then selects a PAN ID that is not in use on that channel. The plugin will then form a ZLL network on that channel with the chosen PAN ID.

Factory new routers may form a new ZLL network at startup, but this is not mandatory, since a network will be created during touch linking if required. Similarly, a router may chose to form a new ZLL network if classical ZigBee commissioning has failed, but this is not mandatory either. However, if a router choses not to form a network, then the application should call ::emberAfPluginZllCommissioningInitCallback to ensure the radio is switched on and is tuned to the default channel. Alternatively, the 'Rx always on' plugin option, ::EMBER_AF_PLUGIN_ZLL_COMMISSIONING_RX_ALWAYS_ON, may be set to true.

End devices should not use this API and should instead form ZLL networks via touch linking (or to be precise, join a ZLL network formed by a router target or a router initiator).

Note, for Zigbee 3.0 compatability, a router device should use ::emberAfPluginNetworkCreatorStart with centralizedNetwork=false to form a distributed network rather than this routine, which may be deprecated in a future release.

Returns

  • An EmberStatus value that indicates the success or failure of the command.


Definition at line 86 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-network/zll-commissioning-network.h

emberAfZllNoTouchlinkForNFN#

EmberStatus emberAfZllNoTouchlinkForNFN (void )

No touchlink for non-factory new device.

Parameters
N/A

This function will cause an NFN device to refuse network start/join/update requests and thus to forbid commissioning by touchlinking. This can be useful to restrict touchlink stealing.


Definition at line 36 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-server/zll-commissioning-server.h

emberAfZllNoResetForNFN#

EmberStatus emberAfZllNoResetForNFN (void )

No reset for non-factory new device.

Parameters
N/A

This function will cause an NFN device on a centralized security network to a touchlink reset-to-factory-new request from a remote device.


Definition at line 42 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-server/zll-commissioning-server.h

Macro Definition Documentation#

touchLinkInProgress#

#define touchLinkInProgress
Value:
(emAfZllFlags \
& (SCAN_FOR_TOUCH_LINK \
| SCAN_FOR_DEVICE_INFORMATION \
| SCAN_FOR_IDENTIFY \
| SCAN_FOR_RESET \
| TOUCH_LINK_TARGET))

Definition at line 107 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-common/zll-commissioning-common.h

scanForTouchLink#

#define scanForTouchLink
Value:
()

Definition at line 113 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-common/zll-commissioning-common.h

scanForDeviceInformation#

#define scanForDeviceInformation
Value:
()

Definition at line 114 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-common/zll-commissioning-common.h

scanForIdentify#

#define scanForIdentify
Value:
()

Definition at line 115 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-common/zll-commissioning-common.h

scanForReset#

#define scanForReset
Value:
()

Definition at line 116 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-common/zll-commissioning-common.h

targetNetworkFound#

#define targetNetworkFound
Value:
()

Definition at line 117 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-common/zll-commissioning-common.h

abortingTouchLink#

#define abortingTouchLink
Value:
()

Definition at line 118 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-common/zll-commissioning-common.h

scanComplete#

#define scanComplete
Value:
()

Definition at line 119 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-common/zll-commissioning-common.h

touchLinkTarget#

#define touchLinkTarget
Value:
()

Definition at line 120 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-common/zll-commissioning-common.h

formingNetwork#

#define formingNetwork
Value:
()

Definition at line 121 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-common/zll-commissioning-common.h

resettingToFactoryNew#

#define resettingToFactoryNew
Value:
()

Definition at line 122 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-common/zll-commissioning-common.h

ZLL_FRAME_CONTROL_LEGACY#

#define ZLL_FRAME_CONTROL_LEGACY
Value:
0x00

Definition at line 128 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-common/zll-commissioning-common.h

ZLL_FRAME_CONTROL_CLIENT_TO_SERVER#

#define ZLL_FRAME_CONTROL_CLIENT_TO_SERVER
Value:
0x11

Definition at line 129 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-common/zll-commissioning-common.h

ZLL_FRAME_CONTROL_SERVER_TO_CLIENT#

#define ZLL_FRAME_CONTROL_SERVER_TO_CLIENT
Value:
0x19

Definition at line 130 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-common/zll-commissioning-common.h

ZLL_HEADER_FRAME_CONTROL_OFFSET#

#define ZLL_HEADER_FRAME_CONTROL_OFFSET
Value:
0

Definition at line 132 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-common/zll-commissioning-common.h

ZLL_HEADER_SEQUENCE_NUMBER_OFFSET#

#define ZLL_HEADER_SEQUENCE_NUMBER_OFFSET
Value:
1

Definition at line 133 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-common/zll-commissioning-common.h

ZLL_HEADER_COMMAND_ID_OFFSET#

#define ZLL_HEADER_COMMAND_ID_OFFSET
Value:
2

Definition at line 134 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-common/zll-commissioning-common.h

ZLL_HEADER_TRANSACTION_ID_OFFSET#

#define ZLL_HEADER_TRANSACTION_ID_OFFSET
Value:
3

Definition at line 135 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-common/zll-commissioning-common.h

ZLL_HEADER_OVERHEAD#

#define ZLL_HEADER_OVERHEAD
Value:
7

Definition at line 136 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-common/zll-commissioning-common.h

debugPrintln#

#define debugPrintln

Definition at line 151 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-common/zll-commissioning-common.h

debugPrint#

#define debugPrint

Definition at line 152 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-common/zll-commissioning-common.h

debugExec#

#define debugExec

Definition at line 153 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-common/zll-commissioning-common.h

emberAfPluginZllCommissioningInitialSecurityStateCallback#

#define emberAfPluginZllCommissioningInitialSecurityStateCallback
Value:
  emberAfPluginZllCommissioningCommonInitialSecurityStateCallback

Definition at line 157 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-common/zll-commissioning-common.h

emberAfPluginZllCommissioningTouchLinkCompleteCallback#

#define emberAfPluginZllCommissioningTouchLinkCompleteCallback
Value:
  emberAfPluginZllCommissioningCommonTouchLinkCompleteCallback

Definition at line 159 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-common/zll-commissioning-common.h

emberAfPluginZllCommissioningResetToFactoryNewCallback#

#define emberAfPluginZllCommissioningResetToFactoryNewCallback
Value:
  emberAfPluginZllCommissioningCommonResetToFactoryNewCallback

Definition at line 161 of file /Users/vihuszar/Git/EmbeddedSoftware/super/protocol/zigbee/app/framework/plugin/zll-commissioning-common/zll-commissioning-common.h