| 
    Digi XBee(R) ANSI C Host Library
    
   | 
 
Cluster/Endpoint layer for WPAN networks (ZigBee and DigiMesh). More...
#include "wpan/types.h"Go to the source code of this file.
Data Structures | |
| struct | wpan_envelope_t | 
| The "envelope" is used to gather all necessary information about a given frame on the network.  More... | |
| struct | wpan_cluster_table_entry_t | 
| Information on each cluster associated with an endpoint.  More... | |
| struct | wpan_endpoint_table_entry_t | 
| Information on each endpoint on this device.  More... | |
| struct | wpan_dev_t | 
| Structure used by the WPAN/ZigBee layers.  More... | |
| struct | wpan_conversation_t | 
| Used to track conversations (outstanding requests) on an endpoint.  More... | |
| struct | wpan_ep_state_t | 
| Volatile part of an endpoint record used to track conversations (requests waiting for responses).  More... | |
Macros | |
| #define | WPAN_ENVELOPE_CLUSTER_FLAGS 0x00FF | 
| mask of WPAN_CLUST_FLAG_* flags for the cluster tied to this envelope  | |
| #define | WPAN_ENVELOPE_BROADCAST_ADDR 0x0100 | 
| frame was received on a broadcast address  | |
| #define | WPAN_ENVELOPE_BROADCAST_EP 0x0200 | 
| frame was received on the broadcast endpoint (0xFF)  | |
| #define | WPAN_ENVELOPE_RX_APS_ENCRYPT 0x0400 | 
| frame was received with APS encryption  | |
| #define | WPAN_CLUSTER_END_OF_LIST 0xFFFF | 
Cluster ID used to mark the end of cluster_table in wpan_endpoint_table_entry_t.  More... | |
| #define | WPAN_CLUST_ENTRY_LIST_END { WPAN_CLUSTER_END_OF_LIST } | 
| Macro for a wpan_cluster_table_entry_t that can be used to mark the end of the table.  More... | |
| #define | WPAN_FLAG_NONE 0x0000 | 
| #define | WPAN_FLAG_JOINED 0x0001 | 
| device has joined a network (but not necessarily authenticated)  | |
| #define | WPAN_FLAG_AUTHENTICATED 0x0002 | 
| device completed Key Establishment and can send APS encrypted frames  | |
| #define | WPAN_FLAG_AUTHENTICATION_ENABLED 0x0004 | 
| device has encryption enabled (EO non-zero)  | |
| #define | WPAN_DEV_IS_JOINED(dev) ((dev)->flags & WPAN_FLAG_JOINED) | 
| Macro to test whether a device has joined the network.  More... | |
| #define | WPAN_DEV_IS_AUTHENTICATED(dev) ((dev)->flags & WPAN_FLAG_AUTHENTICATED) | 
| Macro to test whether a device has authenticated with the trust center.  More... | |
| #define | WPAN_ENDPOINT_END_OF_LIST 0xFF | 
Endpoint ID used to mark the end of endpoint_table in wpan_dev_t.  | |
| #define | WPAN_ENDPOINT_TABLE_END { WPAN_ENDPOINT_END_OF_LIST } | 
| Macro for a wpan_endpoint_table_entry_t that can be used to mark the end of the table.  More... | |
| #define | WPAN_APS_PROFILE_ANY 0xFFFF | 
| #define | WPAN_CONVERSATION_END 1 | 
| end of conversation, no more responses expected  | |
| #define | WPAN_CONVERSATION_CONTINUE 2 | 
| leave conversation open, more responses are expected  | |
| #define | WPAN_MAX_CONVERSATIONS 3 | 
| Number of outstanding requests to track in a wpan_ep_state_t associated with an endpoint.  More... | |
| #define | WPAN_CONVERSATION_TIMEOUT 30 | 
| Default conversation recycle timeout (seconds)  | |
Typedefs | |
| typedef int(* | wpan_aps_handler_fn) (const wpan_envelope_t FAR *envelope, void FAR *context) | 
| General handler used in the cluster table.  More... | |
| typedef int(* | wpan_ep_handler_fn) (const wpan_envelope_t FAR *envelope, struct wpan_ep_state_t FAR *ep_state) | 
| General handler used in the endpoint table.  More... | |
| typedef int(* | wpan_endpoint_send_fn) (const wpan_envelope_t FAR *envelope, uint16_t flags) | 
| Function called by the WPAN APS layer to send a frame out on the network.  More... | |
| typedef int(* | _wpan_config_fn) (struct wpan_dev_t *dev,...) | 
| Function called by the WPAN APS layer to configure the underlying network device.  More... | |
| typedef int(* | wpan_tick_fn) (struct wpan_dev_t *dev) | 
| Function called by the WPAN APS layer to have the underlying device read and dispatch frames.  More... | |
| typedef const wpan_endpoint_table_entry_t *(* | wpan_endpoint_get_next_fn) (struct wpan_dev_t *dev, const wpan_endpoint_table_entry_t *ep) | 
| Custom function for walking the endpoint table.  More... | |
| typedef int(* | wpan_response_fn) (struct wpan_conversation_t FAR *conversation, const wpan_envelope_t FAR *envelope) | 
| Handler registered with wpan_conversation_register() to process responses to outstanding requests.  More... | |
Enumerations | |
| enum | wpan_clust_digi {  DIGI_CLUST_SLEEP_SYNC = 0x0009, DIGI_CLUST_SERIAL = 0x0011, DIGI_CLUST_LOOPBACK = 0x0012, DIGI_CLUST_ND_COMMAND = 0x0015, DIGI_CLUST_DN_COMMAND = 0x0016, DIGI_CLUST_REMOTE_COMMAND = 0x0021, DIGI_CLUST_NR_COMMAND = 0x0022, DIGI_CLUST_IODATA = 0x0092, DIGI_CLUST_WATCHPORT = 0x0094, DIGI_CLUST_NODEID_MESSAGE = 0x0095, DIGI_CLUST_DN_RESPONSE = 0x0096, DIGI_CLUST_REMOTE_RESPONSE = 0x00A1, DIGI_CLUST_NR_RESPONSE = 0x00A2, DIGI_CLUST_INDIRECT_ROUTE_ERR = 0x00B0, DIGI_CLUST_PROG_XBEE_OTA_UPD = 0x1000, DIGI_CLUST_NBRFWUPDATE = 0x71FE, DIGI_CLUST_REMFWUPDATE = 0x71FF, DIGI_CLUST_FWUPDATERESP = (int)0xF1FF }  | 
| Digi Data cluster IDs (endpoint WPAN_ENDPOINT_DIGI_DATA)  More... | |
Functions | |
| int | wpan_tick (wpan_dev_t *dev) | 
| Calls the underlying hardware tick function to process received frames, and times out expired conversations.  More... | |
| const wpan_cluster_table_entry_t * | wpan_cluster_match (uint16_t match, uint8_t mask, const wpan_cluster_table_entry_t *entry) | 
| Search a cluster table for a matching cluster ID.  More... | |
| const wpan_endpoint_table_entry_t * | wpan_endpoint_get_next (wpan_dev_t *dev, const wpan_endpoint_table_entry_t *ep) | 
| Function used to walk a device's endpoint table.  More... | |
| const wpan_endpoint_table_entry_t * | wpan_endpoint_match (wpan_dev_t *dev, uint8_t endpoint, uint16_t profile_id) | 
| Walk a device's endpoint table looking for a matching endpoint ID and profile ID.  More... | |
| const wpan_endpoint_table_entry_t * | wpan_endpoint_of_envelope (const wpan_envelope_t *env) | 
| Look up the endpoint table entry for the source endpoint of an envelope.  More... | |
| const wpan_endpoint_table_entry_t * | wpan_endpoint_of_cluster (wpan_dev_t *dev, uint16_t profile_id, uint16_t cluster_id, uint8_t mask) | 
| Walk a device's endpoint table looking for a matching profile ID and cluster ID.  More... | |
| void | wpan_envelope_create (wpan_envelope_t *envelope, wpan_dev_t *dev, const addr64 FAR *ieee, uint16_t network_addr) | 
| Starting with a blank envelope, fill in the device, 64-bit IEEE address and 16-bit network address of the destination.  More... | |
| int | wpan_envelope_reply (wpan_envelope_t FAR *reply, const wpan_envelope_t FAR *original) | 
| Create a reply envelope based on the envelope received from a remote node.  More... | |
| int | wpan_envelope_send (const wpan_envelope_t FAR *envelope) | 
| Send a message to an endpoint using address and payload information stored in a wpan_envelope_t structure.  More... | |
| void | wpan_envelope_dump (const wpan_envelope_t FAR *envelope) | 
| Debugging function to dump the contents of an envelope to stdout.  More... | |
| int | wpan_conversation_register (wpan_ep_state_t FAR *state, wpan_response_fn handler, const void FAR *context, uint16_t timeout) | 
| Add a conversation to the table of tracked conversations.  More... | |
| int | wpan_conversation_response (wpan_ep_state_t FAR *state, uint8_t transaction_id, const wpan_envelope_t FAR *envelope) | 
| Searches the endpoint's table of active conversations (outstanding requests waiting for responses) for a given transaction.  More... | |
| uint8_t | wpan_endpoint_next_trans (const wpan_endpoint_table_entry_t *ep) | 
| Increment and return the endpoint's transaction ID counter.  More... | |
| int | wpan_envelope_dispatch (wpan_envelope_t *envelope) | 
Find the matching endpoint for the provided envelope and have it process the frame.  More... | |
| void | wpan_conversation_delete (wpan_conversation_t FAR *conversation) | 
| Delete a conversation from an endpoint's conversation table.  More... | |
ZigBee Stack Profile IDs (WPAN_STACK_PROFILE_*) | |
| #define | WPAN_STACK_PROFILE_PROPRIETARY 0x0 | 
| Network Specific.  | |
| #define | WPAN_STACK_PROFILE_ZIGBEE 0x1 | 
| ZigBee (2006)  | |
| #define | WPAN_STACK_PROFILE_ZIGBEE_PRO 0x2 | 
| ZigBee PRO (2007)  | |
Profile IDs | |
| #define | WPAN_PROFILE_ZDO 0x0000 | 
| ZigBee Device Object (aka ZigBee Device Profile)  | |
| #define | WPAN_PROFILE_SMART_ENERGY 0x0109 | 
| Smart Energy Profile.  | |
| #define | WPAN_PROFILE_DIGI 0xC105 | 
| Digi International, mfg-specific.  | |
Manufacturer IDs (WPAN_MANUFACTURER_*) | |
Contact the ZigBee Alliance to have a Manufacturer ID assigned to your company. DO NOT use the Digi Manufacturer ID for your own manufacturer-specific profiles/clusters/attributes.  | |
| #define | WPAN_MANUFACTURER_DIGI 0x101E | 
| Digi International (MaxStream)  | |
| #define | WPAN_MANUFACTURER_DIGI2 0x1087 | 
| Digi International.  | |
| #define | WPAN_MANUFACTURER_TEST1 0xFFF1 | 
| Test Vendor #1.  | |
| #define | WPAN_MANUFACTURER_TEST2 0xFFF2 | 
| Test Vendor #2.  | |
| #define | WPAN_MANUFACTURER_TEST3 0xFFF3 | 
| Test Vendor #3.  | |
List of fixed endpoints (WPAN_ENDPOINT_*) | |
| #define | WPAN_ENDPOINT_ZDO 0x00 | 
| ZigBee Device Object/Profile.  | |
| #define | WPAN_ENDPOINT_DIGI_SE 0x5E | 
| Digi Smart Energy.  | |
| #define | WPAN_ENDPOINT_DDO 0xE6 | 
| Digi Device Objects.  | |
| #define | WPAN_ENDPOINT_DIGI_DEVICE WPAN_ENDPOINT_DDO | 
| #define | WPAN_ENDPOINT_DIGI_DATA 0xE8 | 
| Digi Data.  | |
| #define | WPAN_ENDPOINT_BROADCAST 0xFF | 
| Broadcast Endpoint.  | |
WPAN_CLUST_FLAG_* | |
Values for   | |
| #define | WPAN_CLUST_FLAG_NONE 0x00 | 
| no flags  | |
| #define | WPAN_CLUST_FLAG_INPUT 0x01 | 
| input/server cluster (typically receives requests)  | |
| #define | WPAN_CLUST_FLAG_OUTPUT 0x02 | 
| output/client cluster (typically receives responses)  | |
| #define | WPAN_CLUST_FLAG_INOUT 0x03 | 
| both client and server cluster  | |
| #define | WPAN_CLUST_FLAG_SERVER WPAN_CLUST_FLAG_INPUT | 
| alias name for input cluster (uses ZCL terminology)  | |
| #define | WPAN_CLUST_FLAG_CLIENT WPAN_CLUST_FLAG_OUTPUT | 
| alias name for output cluster (uses ZCL terminology)  | |
| #define | WPAN_CLUST_FLAG_ENCRYPT 0x10 | 
| Data sent or received by this cluster must be encrypted.  More... | |
| #define | WPAN_CLUST_FLAG_ENCRYPT_UNICAST 0x20 | 
| Unicast data sent or received by this cluster must be encrypted, but unencrypted broadcast frames are OK.  More... | |
| #define | WPAN_CLUST_FLAG_NOT_ZCL 0x80 | 
| this cluster is NOT using the ZigBee Cluster Library (ZCL)  | |
WPAN_SEND_FLAG_* | |
Bitfields for   | |
| #define | WPAN_SEND_FLAG_NONE 0x0000 | 
| no special behavior  | |
| #define | WPAN_SEND_FLAG_ENCRYPTED 0x0001 | 
| use APS layer encryption  | |
Cluster/Endpoint layer for WPAN networks (ZigBee and DigiMesh).
 1.8.11