Sending API packets without destination address

Morning, all. I’m contemplating switching to API mode for my ZB modules so that I can take better advantage of some of the features in the ZigBee spec (different endpoints, status of transmitted packets, etc.). It appears that a packet always contains a destination address, either broadcast, or to a specific node. If that’s the case, what effect does setting the DH and DL parameters on a node have when using the web interface on a ConnectPort X4? It seems that you’re configuring parameters which will never be used in API mode. Is that correct? One of the first steps taken when implementing a Dia device driver is to specify the address of the node that the driver is receiving data from, and setting the DH and DL params of the node to the address of the coordinator; if I’m forced to specify the DH and DL in the body of the packet, I’ll have to implement configuration routines in the device connected to the remote node.

Can someone verify my assumptions? If they’re wrong, can someone show me how to craft a packet that either excludes the destination address, or takes the destination address from the node’s configuration?

Thanks,
Brian

Blalor,

You are correct. When using API mode on am OEM module or in a stand along radio, the DL and DH parameters are not used.

However, on the gateway, all communications to the radio in it is done via API mode. You just don’t realize it as the firmware and Python library files on the gateway do a lot of the configuration and assembling of the packets for you. This is why you need to specify the MAC address of the node you are either controlling or requesting data from in the DIA.

Thanks for the confirmation. I’m more concerned about creating packets on the OEM module side, via uC, than in Dia; I’ve already got that part down pat. :slight_smile:

What happens, then, when the DH and DL params are set on an OEM module in API mode? Can the params be read from the module by the attached device (the uC), or are they silently discarded? Or does attempting to set these values from the coordinator result in an error?