Descriptor structures
These structures are used to represent the following descriptors that contain information about the host node:
Node descriptor
Node Power descriptor
Simple descriptor
The structures are listed below.
ZPS_tsAplAfNodeDescriptor
The AF Node descriptor structure ZPS_tsAplAfNodeDescriptor
is shown below.
typedef struct {
uint32 : 8;/* padding */
uint32 eLogicalType : 3;
uint32 bComplexDescAvail : 1;
uint32 bUserDescAvail : 1;
uint32 eReserved : 3; /* reserved */
uint32 eFrequencyBand : 5;
uint32 eApsFlags : 3;
uint32 u8MacFlags : 8;
uint16 u16ManufacturerCode;
uint8 u8MaxBufferSize;
uint16 u16MaxRxSize;
uint16 u16ServerMask;
uint16 u16MaxTxSize;
uint8 u8DescriptorCapability;
} ZPS_tsAplAfNodeDescriptor;
where:
eLogicalType
contains 3 bits (bits 0-2) indicating the ZigBee device type of the node, as follows:000: Coordinator
001: Router
010: End Device
bComplexDescAvail
is set to 1 if there is a Complex descriptor available for node.bUserDescAvail
is set to 1 if there is a User descriptor available for node.eReserved
is reserved.eFrequencyBand
contains 5 bits detailing the frequency bands supported by the node, as follows (a bit is set to 1 if the corresponding band is supported):Bit 0: 868-868.6 MHz
Bit 2: 902-928 MHz
Bit 3: 2400-2483.5 MHz
Bits 1 and 4 are reserved
eApsFlags
is not currently supported and set to zero.eMacFlags
contains 8 bits (bits 0-7) indicating the node capabilities, as required by the IEEE 802.15.4 MAC sub-layer. These node capability flags are described in the table: Table.u16ManufacturerCode
contains 16 bits (bits 0-15) indicating the manufacturer code for the node, where this code is allocated to the manufacturer by the ZigBee Alliance.u8MaxBufferSize
is the maximum size, in bytes, of an NPDU (Network Protocol Data Unit).u16MaxRxSize
is the maximum size, in bytes, of an APDU (Application Protocol Data Unit). This value can be greater than the value ofu8MaxBufferSize
, due to the fragmentation of an APDU into NPDUs.u16ServerMask
contains 8 bits (bits 0-7) indicating the server status of the node. This server mask is detailed in the table: Table.u16MaxTxSize
is the maximum size, in bytes, of the ASDU (Application Sub-layer Data Unit) in which a message can be sent (the message may actually be transmitted in smaller fragments)u8DescriptorCapability
contains 8 bits (bits 0-7) indicating the properties of the node that can be used by other nodes in network discovery, as follows:
Bit description of u8DescriptorCapability
Bit |
Description |
---|---|
0 |
Set to 1 if Extended Active Endpoint List is available on the node, 0 otherwise. |
1 |
Set to 1 if Extended Simple Descriptor List is available on the node, 0 otherwise. |
2-7 |
Reserved |
Parent topic:Descriptor structures
ZPS_tsAplAfNodePowerDescriptor
The AF Node Power descriptor structure ZPS_tsAplAfNodePowerDescriptor
is shown below.
typedef struct {
uint32 eCurrentPowerMode : 4;
uint32 eAvailablePowerSources : 4;
uint32 eCurrentPowerSource : 4;
uint32 eCurrentPowerSourceLevel : 4;
} ZPS_tsAplAfNodePowerDescriptor;
where:
eCurrentPowerMode
contains 4 bits (bits 0-3) indicating the power mode currently used by the node, as follows:0000: Receiver configured according to “Receiver on when idle” MAC flag in the Node Descriptor (see Section 8.2.1.1)
0001: Receiver switched on periodically
0010: Receiver switched on when stimulated, for example, by pressing a button
All other values are reserved
eAvailablePowerSources
contains 4 bits (bits 0-3) indicating the available power sources for the node, as follows (a bit is set to 1 if the corresponding power source is available):Bit 0: Permanent mains supply
Bit 1: Rechargeable battery
Bit 2: Disposable battery
Bit 4: Reserved
eCurrentPowerSource
contains 4 bits (bits 0-3) indicating the current power source for the node, as detailed for the element above (the bit corresponding to the current power source is set to 1, all other bits are set to 0).eCurrentPowerSourceLevel
contains 4 bits (bit 0-3) indicating the current level of charge of the node’s power source (mainly useful for batteries), as follows:0000: Critically low
0100: Approximately 33%
1000: Approximately 66%
1100: Approximately 100% (near fully charged)
Parent topic:Descriptor structures
ZPS_tsAplAfSimpleDescriptor
The AF Simple descriptor structure ZPS_tsAplAfSimpleDescriptor
is shown below.
typedef struct {
uint16 u16ApplicationProfileId;
uint16 u16DeviceId;
uint8 u8DeviceVersion;
uint8 u8Endpoint;
uint8 u8InClusterCount;
uint8 u8OutClusterCount;
uint16 *pu16InClusterList;
uint16 *pu16OutClusterList;
} ZPS_tsAplAfSimpleDescriptor;
where:
u16ApplicationProfileId
is the 16-bit identifier of the ZigBee application profile supported by the endpoint. This must be an application profile identifier issued by the ZigBee Alliance (for Lighting and Occupancy devices, it is 0x0104).u16DeviceId
is the 16-bit identifier of the ZigBee device type supported by the endpoint. This must be a device type identifier issued by the ZigBee Alliance.u8DeviceVersion
contains 4 bits (bits 0-3) representing the version of the supported device description (default is 0000, unless set to another value according to the application profile used).u8Endpoint
is the number, in the range 1-240, of the endpoint to which the Simple descriptor corresponds.u8InClusterCount
is an 8-bit count of the number of input clusters, supported on the endpoint, that will appear in the list pointed to by thepu16InClusterList
element.u8OutClusterCount
is an 8-bit count of the number of output clusters, supported on the endpoint, that will appear in thepu16OutClusterList
element.*pu16InClusterList
is a pointer to the list of input clusters supported by the endpoint (for use during the service discovery and binding procedures). This is a sequence of 16-bit values, representing the cluster numbers (in the range 1-240), where the number of values is equal to countu8InClusterCount
. If this count is zero, the pointer can be set to NULL.*pu16OutClusterList
is a pointer to the list of output clusters supported by the endpoint (for use during the service discovery and binding procedures). This is a sequence of 16-bit values, representing the cluster numbers (in the range 1-240), where the number of values is equal to countu8OutClusterCount
. If this count is zero, the pointer can be set to NULL.
Parent topic:Descriptor structures
Parent topic:AF structures