John Bailey / XBeeApi

Dependencies:   CircularBuffer FixedLengthList

Dependents:   XBeeApiTest XBeeApiSimpleATCmdsExample XBeeApiBroadcastExample XBeeApiBroadcastExampleRTOS ... more

Committer:
johnb
Date:
Wed Feb 05 00:09:32 2014 +0000
Revision:
19:85e5bad7f5a9
Parent:
16:8095c43a2a6e
Add XBeeApiTxFrameEx::getMostRecentStatus() and supporting.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
johnb 16:8095c43a2a6e 1 /**
johnb 16:8095c43a2a6e 2
johnb 16:8095c43a2a6e 3 Copyright 2014 John Bailey
johnb 16:8095c43a2a6e 4
johnb 16:8095c43a2a6e 5 Licensed under the Apache License, Version 2.0 (the "License");
johnb 16:8095c43a2a6e 6 you may not use this file except in compliance with the License.
johnb 16:8095c43a2a6e 7 You may obtain a copy of the License at
johnb 16:8095c43a2a6e 8
johnb 16:8095c43a2a6e 9 http://www.apache.org/licenses/LICENSE-2.0
johnb 16:8095c43a2a6e 10
johnb 16:8095c43a2a6e 11 Unless required by applicable law or agreed to in writing, software
johnb 16:8095c43a2a6e 12 distributed under the License is distributed on an "AS IS" BASIS,
johnb 16:8095c43a2a6e 13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
johnb 16:8095c43a2a6e 14 See the License for the specific language governing permissions and
johnb 16:8095c43a2a6e 15 limitations under the License.
johnb 16:8095c43a2a6e 16
johnb 16:8095c43a2a6e 17 */
johnb 16:8095c43a2a6e 18
johnb 16:8095c43a2a6e 19 #include "XBeeApiTxFrameEx.hpp"
johnb 16:8095c43a2a6e 20
johnb 19:85e5bad7f5a9 21 XBeeApiTxFrameEx::XBeeApiTxFrameEx( XBeeDevice* p_device ) : XBeeApiTxFrame( p_device ),
johnb 19:85e5bad7f5a9 22 m_recent( XBeeApiTxFrame::XBEE_API_TX_STATUS_LAST )
johnb 16:8095c43a2a6e 23 {
johnb 16:8095c43a2a6e 24 uint16_t i;
johnb 16:8095c43a2a6e 25
johnb 16:8095c43a2a6e 26 for( i = 0; i < XBEE_API_TX_STATUS_LAST; ++i )
johnb 16:8095c43a2a6e 27 {
johnb 16:8095c43a2a6e 28 m_statusCounters[ i ] = 0;
johnb 16:8095c43a2a6e 29 }
johnb 16:8095c43a2a6e 30 }
johnb 16:8095c43a2a6e 31
johnb 16:8095c43a2a6e 32
johnb 16:8095c43a2a6e 33 XBeeApiTxFrameEx::~XBeeApiTxFrameEx()
johnb 16:8095c43a2a6e 34 {
johnb 16:8095c43a2a6e 35 }
johnb 16:8095c43a2a6e 36
johnb 19:85e5bad7f5a9 37 XBeeApiTxFrame::XBeeApiTxStatus_e XBeeApiTxFrameEx::getMostRecentStatus( void ) const
johnb 19:85e5bad7f5a9 38 {
johnb 19:85e5bad7f5a9 39 return m_recent;
johnb 19:85e5bad7f5a9 40 }
johnb 19:85e5bad7f5a9 41
johnb 16:8095c43a2a6e 42 void XBeeApiTxFrameEx::frameTxCallback( const XBeeApiTxStatus_e p_status )
johnb 16:8095c43a2a6e 43 {
johnb 16:8095c43a2a6e 44 XBeeApiTxFrame::frameTxCallback( p_status );
johnb 16:8095c43a2a6e 45
johnb 16:8095c43a2a6e 46 if( p_status < XBEE_API_TX_STATUS_LAST )
johnb 16:8095c43a2a6e 47 {
johnb 19:85e5bad7f5a9 48 m_recent = p_status;
johnb 16:8095c43a2a6e 49 m_statusCounters[ p_status ]++;
johnb 16:8095c43a2a6e 50 }
johnb 16:8095c43a2a6e 51 }
johnb 16:8095c43a2a6e 52
johnb 16:8095c43a2a6e 53 uint16_t XBeeApiTxFrameEx::getStatusCount( const XBeeApiTxStatus_e p_status )
johnb 16:8095c43a2a6e 54 {
johnb 16:8095c43a2a6e 55 uint16_t ret_val = 0;
johnb 16:8095c43a2a6e 56
johnb 16:8095c43a2a6e 57 if( p_status < XBEE_API_TX_STATUS_LAST )
johnb 16:8095c43a2a6e 58 {
johnb 16:8095c43a2a6e 59 ret_val = m_statusCounters[ p_status ];
johnb 16:8095c43a2a6e 60 }
johnb 16:8095c43a2a6e 61
johnb 16:8095c43a2a6e 62 return ret_val;
johnb 16:8095c43a2a6e 63 }