John Bailey / XBeeApi

Dependencies:   CircularBuffer FixedLengthList

Dependents:   XBeeApiTest XBeeApiSimpleATCmdsExample XBeeApiBroadcastExample XBeeApiBroadcastExampleRTOS ... more

Committer:
johnb
Date:
Fri Aug 08 11:59:52 2014 +0000
Revision:
56:7fe74b03e6b1
Parent:
19:85e5bad7f5a9
Add support for setting up encrypted communications; Re-jig XBeeApiCmdAt virtual functions to make inheritance by XBeeDeviceRemoteAt cleaner.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
johnb 16:8095c43a2a6e 1 /**
johnb 16:8095c43a2a6e 2 @file
johnb 16:8095c43a2a6e 3 @brief Class inheriting from XBeeApiTxFrame with some useful but
johnb 16:8095c43a2a6e 4 non-essential function.
johnb 16:8095c43a2a6e 5
johnb 16:8095c43a2a6e 6 @author John Bailey
johnb 16:8095c43a2a6e 7
johnb 16:8095c43a2a6e 8 @copyright Copyright 2014 John Bailey
johnb 16:8095c43a2a6e 9
johnb 16:8095c43a2a6e 10 @section LICENSE
johnb 16:8095c43a2a6e 11
johnb 16:8095c43a2a6e 12 Licensed under the Apache License, Version 2.0 (the "License");
johnb 16:8095c43a2a6e 13 you may not use this file except in compliance with the License.
johnb 16:8095c43a2a6e 14 You may obtain a copy of the License at
johnb 16:8095c43a2a6e 15
johnb 16:8095c43a2a6e 16 http://www.apache.org/licenses/LICENSE-2.0
johnb 16:8095c43a2a6e 17
johnb 16:8095c43a2a6e 18 Unless required by applicable law or agreed to in writing, software
johnb 16:8095c43a2a6e 19 distributed under the License is distributed on an "AS IS" BASIS,
johnb 16:8095c43a2a6e 20 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
johnb 16:8095c43a2a6e 21 See the License for the specific language governing permissions and
johnb 16:8095c43a2a6e 22 limitations under the License.
johnb 16:8095c43a2a6e 23
johnb 16:8095c43a2a6e 24 */
johnb 16:8095c43a2a6e 25
johnb 16:8095c43a2a6e 26 #if !defined XBEEAPITXFRAMEEX_HPP
johnb 16:8095c43a2a6e 27 #define XBEEAPITXFRAMEEX_HPP
johnb 16:8095c43a2a6e 28
johnb 16:8095c43a2a6e 29 #include "XBeeApiTxFrame.hpp"
johnb 16:8095c43a2a6e 30
johnb 16:8095c43a2a6e 31 #include <stdint.h>
johnb 16:8095c43a2a6e 32
johnb 17:023e5355d4c5 33 /** Class which extends XBeeApiTxFrame with a number of additional useful
johnb 17:023e5355d4c5 34 features. These features are partitioned within this sub-class so
johnb 17:023e5355d4c5 35 that other classes can inherit from XBeeApiTxFrame without also aquiring
johnb 17:023e5355d4c5 36 this "baggage".
johnb 17:023e5355d4c5 37 */
johnb 16:8095c43a2a6e 38 class XBeeApiTxFrameEx : public XBeeApiTxFrame
johnb 16:8095c43a2a6e 39 {
johnb 16:8095c43a2a6e 40 protected:
johnb 17:023e5355d4c5 41 /** Keep stats on the various TX confirmations received from the XBee */
johnb 16:8095c43a2a6e 42 uint16_t m_statusCounters[ XBeeApiTxFrame::XBEE_API_TX_STATUS_LAST ];
johnb 16:8095c43a2a6e 43
johnb 19:85e5bad7f5a9 44 /** Status of the most recent TX confirmation */
johnb 19:85e5bad7f5a9 45 XBeeApiTxStatus_e m_recent;
johnb 19:85e5bad7f5a9 46
johnb 16:8095c43a2a6e 47 public:
johnb 17:023e5355d4c5 48 /** Constuctor - see XBeeApiTxFrame constructor */
johnb 16:8095c43a2a6e 49 XBeeApiTxFrameEx( XBeeDevice* p_device = NULL );
johnb 17:023e5355d4c5 50
johnb 17:023e5355d4c5 51 /** Destructor */
johnb 16:8095c43a2a6e 52 virtual ~XBeeApiTxFrameEx();
johnb 17:023e5355d4c5 53
johnb 17:023e5355d4c5 54 /** Callback which is invoked when a response to a TX frame is received.
johnb 17:023e5355d4c5 55 The implementation in this class simply updates m_statusCounters to
johnb 17:023e5355d4c5 56 keep stats on the result of the TX attempts
johnb 17:023e5355d4c5 57
johnb 17:023e5355d4c5 58 \param p_status The status of the TX attempt */
johnb 16:8095c43a2a6e 59 virtual void frameTxCallback( const XBeeApiTxStatus_e p_status );
johnb 17:023e5355d4c5 60
johnb 17:023e5355d4c5 61 /** Method to retrieve the number of TX attempts which have had the
johnb 17:023e5355d4c5 62 specified status result. Simply an accessor to m_statusCounters.
johnb 17:023e5355d4c5 63
johnb 17:023e5355d4c5 64 \param p_status Status to look-up
johnb 17:023e5355d4c5 65 */
johnb 16:8095c43a2a6e 66 uint16_t getStatusCount( const XBeeApiTxStatus_e p_status );
johnb 19:85e5bad7f5a9 67
johnb 19:85e5bad7f5a9 68 /** Return the most recent status, as informed to the object by a
johnb 19:85e5bad7f5a9 69 frameTxCallback invokation.
johnb 19:85e5bad7f5a9 70
johnb 19:85e5bad7f5a9 71 \returns Most recent TX status. Will return
johnb 19:85e5bad7f5a9 72 XBeeApiTxFrame::XBEE_API_TX_STATUS_LAST in the case that
johnb 19:85e5bad7f5a9 73 there have not been any callbacks yet. */
johnb 19:85e5bad7f5a9 74 XBeeApiTxFrame::XBeeApiTxStatus_e getMostRecentStatus( void ) const;
johnb 16:8095c43a2a6e 75 };
johnb 16:8095c43a2a6e 76
johnb 16:8095c43a2a6e 77 #endif