|
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