John Bailey / XBeeApi

Dependencies:   CircularBuffer FixedLengthList

Dependents:   XBeeApiTest XBeeApiSimpleATCmdsExample XBeeApiBroadcastExample XBeeApiBroadcastExampleRTOS ... more

Revision:
55:610aa4a2ed3b
Parent:
53:7b65422d7a32
Child:
56:7fe74b03e6b1
diff -r 9f5b7652943e -r 610aa4a2ed3b Remote/XBeeDeviceRemoteAt.hpp
--- a/Remote/XBeeDeviceRemoteAt.hpp	Mon Jul 28 14:13:20 2014 +0000
+++ b/Remote/XBeeDeviceRemoteAt.hpp	Sat Aug 02 16:41:14 2014 +0000
@@ -68,10 +68,26 @@
             or not */
         bool     m_applyChanges;
 
+        /** Keep track of which type of addressing we're using for transmitted frames */
+        XBeeDevice::XBeeApiAddrType_t m_addressingType;
+
+        /** Set m_snLow/m_snHigh or m_sourceAddress depending on the parameters specified and
+            set up suplementary attributes such as the addressing type to be used
+            
+            \param p_addr16Bit 16-bit address of the remote XBee (or XBEE_BROADCAST_ADDR for broadcast or XBEE_USE_64BIT_ADDR to use 64-bit addressing (see p_addr64Bit)
+            \param p_addr64Bit 64-bit address of the remote XBee, only used in the case that the 16-bit address is XBEE_USE_64BIT_ADDR
+        */
+        void setAddress( const uint16_t& p_addr16Bit,
+                         const uint64_t& p_addr64Bit = 0 );
+
     public:
     
-        /* TODO: doc */
-        /** Constructor */
+        /** Constructor 
+        
+            \param p_device Pointer to the XBee device used to communicate with the remote XBee 
+            \param p_addr16Bit 16-bit address of the remote XBee (or XBEE_BROADCAST_ADDR for broadcast or XBEE_USE_64BIT_ADDR to use 64-bit addressing (see p_addr64Bit)
+            \param p_addr64Bit 64-bit address of the remote XBee, only used in the case that the 16-bit address is XBEE_USE_64BIT_ADDR
+            \param p_applyChanges Indicate whether or not changes should be applied with each message/method call.  Seed setApplyChanges() */
         XBeeDeviceRemoteAt( XBeeDevice* p_device,
                             const uint16_t& p_addr16Bit,
                             const uint64_t& p_addr64Bit = 0,
@@ -88,6 +104,26 @@
         
             \param Specified whether or not the settings should be applied when the command is sent to the remote device */
         void setApplyChanges( const bool p_apply );
+
+        /** Set the type of addressing used for transmitted frames to the remote XBee.  If specifying 16-bit addressing then the
+            remote node's 16-bit address must be known.  If specifying 64-bit addressing then the remote node's 64-bit address must
+            be known.  The addresses are learned either by specifying them to the constructor or by successful requests via 
+            requestSourceAddress (16-bit) or requestSerialNumber (64-bit), or by using reassociate()
+         
+            \param p_type The type of addressing to use for future transmitted frames
+            \returns true in the case that the address type was succesfully changed,
+                     false in the case that the address type could not be changed, either because p_type was not valid
+                           or because the appropriate address wasn't known */
+        bool setAddressingType( const XBeeDevice::XBeeApiAddrType_t p_type );
+        
+        /** Reassociated this object with a new remote XBee (or update the addressing used).  Calling this method will reset
+            any cached values held within the object associated with the remote XBee's settings.
+            
+            \param p_addr16Bit 16-bit address of the remote XBee (or XBEE_BROADCAST_ADDR for broadcast or XBEE_USE_64BIT_ADDR to use 64-bit addressing (see p_addr64Bit)
+            \param p_addr64Bit 64-bit address of the remote XBee, only used in the case that the 16-bit address is XBEE_USE_64BIT_ADDR
+        */
+        void reassociate( const uint16_t& p_addr16Bit,
+                          const uint64_t& p_addr64Bit = 0 );              
 };
 
 #endif
\ No newline at end of file