Digi XBee(R) ANSI C Host Library
Modules
Zigbee Networking

Modules

 Zigbee Data Object/Zigbee Device Profile
 
 Zigbee Cluster Library
 

Detailed Description

Zigbee Overview

Reminder: the code in this layer was intended for Zigbee-compliant networks and implements the various protocols required to interact on those networks. It is not certified with the Zigbee Alliance.

ZDO/ZDP (Zigbee Device Object/Profile) Command Processing
The ZDO endpoint handler (registered to endpoint 0) walks the endpoint table to respond to requests. It needs to know about all endpoints and their input clusters and output clusters. It walks the endpoint table but stops at the context elements. Therefore, all information required by the ZDO layer must exist outside of the context elements of the endpoint table.
ZCL (Zigbee Cluster Library) Command Processing
Consider a theoretical cluster with manufacturer-specific attributes and commands for more than one manufacturer ID. The handler registered to that cluster would check the frame type and manufacturer-specific bits and hand any GENERAL/PROFILE or MANUFACTURER-SPECIFIC commands off to the ZCL General Command Handler (zcl_general_command).
ZCL General Command Handler
This handler will see frames from the endpoint dispatcher for
  • Clusters that aren't in the cluster table for the endpoint (invalid clusters).
  • Clusters that don't have their own handler (no cluster commands).

It also receives frames from clusters with handlers for cluster-specific commands that are passing on a general or manufacturer-specific command frame.

The ZCL General Command handler finds the correct attribute list from the attribute tree (general vs. manufacturer-specific, server vs. client cluster), and then

Summary of ZCL handlers
  • ZCL General Command handler registered to the endpoint to process frames for invalid clusters or clusters without cluster-specific commands (i.e., clusters with a NULL command handler).
  • Cluster-specific, general command handler registered to each cluster.
  • Cluster-specific, manufacturer-specific command handler(s) listed in the attribute tree (stored in the cluster structure's context member) under the appropriate manufacturer ID.