yap yee king / XBeeLib2

Fork of XBeeLib by Digi International Inc.

Files at this revision

API Documentation at this revision

Comitter:
hbujanda
Date:
Fri Jul 29 12:10:38 2016 +0200
Parent:
7:3ac2a461ce76
Child:
9:780db84ce891
Commit message:
Automatic upload

Changed in this revision

DigiLogger.lib Show annotated file Show diff for this revision Revisions of this file
XBee/XBee.h Show annotated file Show diff for this revision Revisions of this file
XBee802/XBee802.cpp Show annotated file Show diff for this revision Revisions of this file
XBee802/XBee802.h Show annotated file Show diff for this revision Revisions of this file
XBeeDM/XBeeDM.cpp Show annotated file Show diff for this revision Revisions of this file
XBeeDM/XBeeDM.h Show annotated file Show diff for this revision Revisions of this file
XBeeLib.h Show annotated file Show diff for this revision Revisions of this file
XBeeZB/XBeeZB.cpp Show annotated file Show diff for this revision Revisions of this file
XBeeZB/XBeeZB.h Show annotated file Show diff for this revision Revisions of this file
--- a/DigiLogger.lib	Thu Jul 28 15:36:36 2016 +0200
+++ b/DigiLogger.lib	Fri Jul 29 12:10:38 2016 +0200
@@ -1,1 +1,1 @@
-http://developer.mbed.org/teams/Digi-International-Inc/code/DigiLogger/#
+http://developer.mbed.org/teams/Digi-International-Inc/code/DigiLogger/#58c5158b5120
--- a/XBee/XBee.h	Thu Jul 28 15:36:36 2016 +0200
+++ b/XBee/XBee.h	Fri Jul 29 12:10:38 2016 +0200
@@ -326,6 +326,9 @@
 #define XBEEZB_ND_OPTION_APPEND_DD          (1 << 0)
 #define XBEEZB_ND_OPTION_SELF_RESPONSE      (1 << 1)
 #define XBEE802_ND_OPTION_SELF_RESPONSE     (1 << 0)
+#define XBEEDM_ND_OPTION_APPEND_DD          (1 << 0)
+#define XBEEDM_ND_OPTION_SELF_RESPONSE      (1 << 1)
+#define XBEEDM_ND_OPTION_INCLUDE_RSSI       (1 << 2)
 
         /** config_node_discovery - configures the node discovery operation
          *
@@ -335,6 +338,9 @@
          *              XBEE802_ND_OPTION_SELF_RESPONSE - to allow the module self responding (802.15.4 only)
          *              XBEEZB_ND_OPTION_SELF_RESPONSE - to allow the module self responding (ZigBee only)
          *              XBEEZB_ND_OPTION_APPEND_DD - to append the DD value to the response (ZigBee only)
+         *              XBEEDM_ND_OPTION_INCLUDE_RSSI - to include RSSI information in response (DigiMesh only)
+         *              XBEEDM_ND_OPTION_SELF_RESPONSE - to allow the module self responding (DigiMesh only)
+         *              XBEEDM_ND_OPTION_APPEND_DD - to append the DD value to the response (DigiMesh only)
          *  @returns
          *     Success if the operation was successful,
          *     Failure otherwise
--- a/XBee802/XBee802.cpp	Thu Jul 28 15:36:36 2016 +0200
+++ b/XBee802/XBee802.cpp	Fri Jul 29 12:10:38 2016 +0200
@@ -137,6 +137,17 @@
     return Success;
 }
 
+RadioStatus XBee802::set_tc_link_key(const uint8_t * const key, const uint16_t length)
+{
+    if (key == NULL || length == 0 || length > 16) {
+        return Failure;
+    }
+    AtCmdFrame::AtCmdResp cmdresp;
+
+    cmdresp = set_param("KY", key, length);
+    return cmdresp == AtCmdFrame::AtCmdRespOk ? Success : Failure;
+}
+
 RadioStatus XBee802::get_node_discovery_timeout(uint16_t * const timeout_ms)
 {
     AtCmdFrame::AtCmdResp cmdresp;
--- a/XBee802/XBee802.h	Thu Jul 28 15:36:36 2016 +0200
+++ b/XBee802/XBee802.h	Fri Jul 29 12:10:38 2016 +0200
@@ -141,6 +141,16 @@
          */
         RadioStatus set_network_address(uint16_t addr);
 
+        /** set_tc_link_key - Sets key used for encryption and decryption (ZigBee trust center link key).
+         *  It is not recommended to set the key programmatically, because it could be read through the raw serial port bits.
+         *  @param key pointer to the 128-bit AES key
+         *  @param length size of the buffer pointed by 'key'
+         *  @returns
+         *     Success if the operation was successful,
+         *     Failure otherwise
+         */
+        RadioStatus set_tc_link_key(const uint8_t * const key, const uint16_t length);
+
         /** register_node_discovery_cb - registers the callback function that will be called
          * when the responses to the node discovery command arrive
          *
--- a/XBeeDM/XBeeDM.cpp	Thu Jul 28 15:36:36 2016 +0200
+++ b/XBeeDM/XBeeDM.cpp	Fri Jul 29 12:10:38 2016 +0200
@@ -102,6 +102,17 @@
     return Success;
 }
 
+RadioStatus XBeeDM::set_tc_link_key(const uint8_t * const key, const uint16_t length)
+{
+    if (key == NULL || length == 0 || length > 16) {
+        return Failure;
+    }
+    AtCmdFrame::AtCmdResp cmdresp;
+
+    cmdresp = set_param("KY", key, length);
+    return cmdresp == AtCmdFrame::AtCmdRespOk ? Success : Failure;
+}
+
 RadioStatus XBeeDM::get_node_discovery_timeout(uint16_t * const timeout_ms)
 {
     AtCmdFrame::AtCmdResp cmdresp;
@@ -125,25 +136,6 @@
     return status;
 }
 
-RadioStatus XBeeDM::set_network_security_key(const uint8_t * const key, const uint16_t length)
-{
-    if (key == NULL || length == 0 || length > 16) {
-        return Failure;
-    }
-    AtCmdFrame::AtCmdResp cmdresp;
-
-    cmdresp = set_param("NK", key, length);
-    return cmdresp == AtCmdFrame::AtCmdRespOk ? Success : Failure;
-}
-
-RadioStatus XBeeDM::set_encryption_options(const uint8_t options)
-{
-    AtCmdFrame::AtCmdResp cmdresp;
-
-    cmdresp = set_param("EO", options);
-    return cmdresp == AtCmdFrame::AtCmdRespOk ? Success : Failure;
-}
-
 void XBeeDM::radio_status_update(AtCmdFrame::ModemStatus modem_status)
 {
     /* Update the radio status variables */
@@ -223,11 +215,6 @@
     return RemoteXBeeDM(addr64);
 }
 
-XBeeDM::AssocStatus XBeeDM::get_assoc_status(void)
-{
-    return (AssocStatus)get_AI();
-}
-
 void XBeeDM::register_node_discovery_cb(node_discovery_dm_cb_t function)
 {
     if (_nd_handler == NULL) {
--- a/XBeeDM/XBeeDM.h	Thu Jul 28 15:36:36 2016 +0200
+++ b/XBeeDM/XBeeDM.h	Fri Jul 29 12:10:38 2016 +0200
@@ -45,25 +45,6 @@
             DIO12      = 12  /**< DIO12 pin */
         };
 
-        enum AssocStatus {
-            ErrorReading    = -1,       /**< Error occurred when reading parameter. */
-            Joined          = 0x00,     /**< Successfully formed or joined a network. (Coordinators form a network, routers and end devices join a network.) */
-            NoPANs          = 0x21,     /**< Scan found no PANs */
-            NoValidPAN      = 0x22,     /**< Scan found no valid PANs based on current SC and ID settings */
-            JoinNotAllowed  = 0x23,     /**< Valid Coordinator or Routers found, but they are not allowing joining (NJ expired). */
-            NoBeacons       = 0x24,     /**< No joinable beacons were found. */
-            Unexpected      = 0x25,     /**< Unexpected state, node should not be attempting to join at this time. */
-            JoinFailed      = 0x27,     /**< Node Joining attempt failed (typically due to incompatible security settings). */
-            CoordStartFail  = 0x2A,     /**< Coordinator start attempt failed */
-            CheckingCoord   = 0x2B,     /**< Checking for an existing coordinator. */
-            LeaveFail       = 0x2C,     /**< Attempt to leave the network failed. */
-            JoinNoResponse  = 0xAB,     /**< Attempted to join a device that did not respond. */
-            SecKeyUnsec     = 0xAC,     /**< Secure join error - network security key received unsecured. */
-            SecKeyNotRec    = 0xAD,     /**< Secure join error - network security key not received. */
-            SecBadKey       = 0xAF,     /**< Secure join error - joining device does not have the right preconfigured link key. */
-            Scanning        = 0xFF      /**< Scanning for a ZigBee network (routers and end devices). */
-        };
-
         /** Class constructor
          * @param tx the TX pin of the UART that will interface the XBee module
          * @param rx the RX pin of the UART that will interface the XBee module
@@ -123,7 +104,7 @@
          */
         RadioStatus get_network_id(uint16_t * const network_id);
 
-        /** set_network_security_key - (Coordinator only) Set the 128-bit AES network encryption key. If set to 0 (default), the module will select a random network key.
+        /** set_tc_link_key - Sets key used for encryption and decryption (ZigBee trust center link key).
          *  It is not recommended to set the key programmatically, because it could be read through the raw serial port bits.
          *  @param key pointer to the 128-bit AES key
          *  @param length size of the buffer pointed by 'key'
@@ -131,19 +112,7 @@
          *     Success if the operation was successful,
          *     Failure otherwise
          */
-        RadioStatus set_network_security_key(const uint8_t * const key, const uint16_t length);
-
-#define XBEE_DM_ENC_OPT_SEND_KEY_ON_JOIN    0x01
-#define XBEE_DM_ENC_OPT_USE_TRUST_CENTER    0x02
-        /** set_encryption_options - Configure options for encryption. Unused option bits should be set to 0. Options include:
-         *  - XBEE_DM_ENC_OPT_SEND_KEY_ON_JOIN - Send the security key unsecured over-the-air during joins
-         *  - XBEE_DM_ENC_OPT_USE_TRUST_CENTER - Use trust center (coordinator only)
-         *  @param options bit mask with the encryption options
-         *  @returns
-         *     Success if the operation was successful,
-         *     Failure otherwise
-         */
-        RadioStatus set_encryption_options(const uint8_t options);
+        RadioStatus set_tc_link_key(const uint8_t * const key, const uint16_t length);
 
         /** register_node_discovery_cb - registers the callback function that will be called
          * when the responses to the node discovery command arrive
@@ -219,12 +188,6 @@
          */
         TxStatus send_data_to_coordinator(const uint8_t *const data, uint16_t len, bool syncr = true);
 
-        /** get_assoc_status - returns current network association status. This wraps AI parameter, for more information refer to moudle's Reference Manual.
-         *
-         *  @returns an AssocStatus with current network association status.
-         */
-        AssocStatus get_assoc_status(void);
-
         /** get_remote_node_by_id - searches for a device in the network with the specified Node Identifier.
          *
          *  @param node_id node id of the device we are looking for
--- a/XBeeLib.h	Thu Jul 28 15:36:36 2016 +0200
+++ b/XBeeLib.h	Fri Jul 29 12:10:38 2016 +0200
@@ -16,7 +16,7 @@
 #ifndef __XBEE_H_
 #define __XBEE_H_
 
-#define XB_LIBRARY_VERSION          0x01010000U
+#define XB_LIBRARY_VERSION          0x01010100U
 #define XB_MAJOR_VERSION            ((XB_LIBRARY_VERSION >> 24) & 0xFFU)
 #define XB_MINOR_VERSION            ((XB_LIBRARY_VERSION >> 16) & 0xFFU)
 #define XB_PATCH_LEVEL              ((XB_LIBRARY_VERSION >> 8) & 0xFFU)
--- a/XBeeZB/XBeeZB.cpp	Thu Jul 28 15:36:36 2016 +0200
+++ b/XBeeZB/XBeeZB.cpp	Fri Jul 29 12:10:38 2016 +0200
@@ -261,6 +261,17 @@
     return cmdresp == AtCmdFrame::AtCmdRespOk ? Success : Failure;
 }
 
+RadioStatus XBeeZB::set_tc_link_key(const uint8_t * const key, const uint16_t length)
+{
+    if (key == NULL || length == 0 || length > 16) {
+        return Failure;
+    }
+    AtCmdFrame::AtCmdResp cmdresp;
+
+    cmdresp = set_param("KY", key, length);
+    return cmdresp == AtCmdFrame::AtCmdRespOk ? Success : Failure;
+}
+
 void XBeeZB::radio_status_update(AtCmdFrame::ModemStatus modem_status)
 {
     /* Update the radio status variables */
--- a/XBeeZB/XBeeZB.h	Thu Jul 28 15:36:36 2016 +0200
+++ b/XBeeZB/XBeeZB.h	Fri Jul 29 12:10:38 2016 +0200
@@ -211,6 +211,16 @@
          */
         RadioStatus set_encryption_options(const uint8_t options);
 
+        /** set_tc_link_key - Sets key used for encryption and decryption (ZigBee trust center link key).
+         *  It is not recommended to set the key programmatically, because it could be read through the raw serial port bits.
+         *  @param key pointer to the 128-bit AES key
+         *  @param length size of the buffer pointed by 'key'
+         *  @returns
+         *     Success if the operation was successful,
+         *     Failure otherwise
+         */
+        RadioStatus set_tc_link_key(const uint8_t * const key, const uint16_t length);
+
         /** register_node_discovery_cb - registers the callback function that will be called
          * when the responses to the node discovery command arrive
          *