John Bailey / XBeeApi

Dependencies:   CircularBuffer FixedLengthList

Dependents:   XBeeApiTest XBeeApiSimpleATCmdsExample XBeeApiBroadcastExample XBeeApiBroadcastExampleRTOS ... more

Committer:
johnb
Date:
Fri Jan 31 09:29:28 2014 +0000
Revision:
10:0d084d0253a7
Parent:
6:3cb62daace78
Child:
16:8095c43a2a6e
Update getDataPtr() to support fragmented buffers

Who changed what in which revision?

UserRevisionLine numberNew contents of line
johnb 5:b40a6fd3a334 1 /**
johnb 5:b40a6fd3a334 2
johnb 5:b40a6fd3a334 3 Copyright 2013 John Bailey
johnb 5:b40a6fd3a334 4
johnb 5:b40a6fd3a334 5 Licensed under the Apache License, Version 2.0 (the "License");
johnb 5:b40a6fd3a334 6 you may not use this file except in compliance with the License.
johnb 5:b40a6fd3a334 7 You may obtain a copy of the License at
johnb 5:b40a6fd3a334 8
johnb 5:b40a6fd3a334 9 http://www.apache.org/licenses/LICENSE-2.0
johnb 5:b40a6fd3a334 10
johnb 5:b40a6fd3a334 11 Unless required by applicable law or agreed to in writing, software
johnb 5:b40a6fd3a334 12 distributed under the License is distributed on an "AS IS" BASIS,
johnb 5:b40a6fd3a334 13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
johnb 5:b40a6fd3a334 14 See the License for the specific language governing permissions and
johnb 5:b40a6fd3a334 15 limitations under the License.
johnb 5:b40a6fd3a334 16
johnb 5:b40a6fd3a334 17 */
johnb 5:b40a6fd3a334 18
johnb 5:b40a6fd3a334 19 #include "XBeeApiFrame.hpp"
johnb 5:b40a6fd3a334 20 #include "XBeeDevice.hpp"
johnb 5:b40a6fd3a334 21
johnb 5:b40a6fd3a334 22 #include <stdlib.h>
johnb 5:b40a6fd3a334 23
johnb 6:3cb62daace78 24 XBeeApiFrame::XBeeApiFrame( void ) : m_apiId ( XBEE_CMD_INVALID ), m_data( NULL ), m_dataLen( 0 )
johnb 5:b40a6fd3a334 25 {
johnb 5:b40a6fd3a334 26 }
johnb 5:b40a6fd3a334 27
johnb 5:b40a6fd3a334 28 uint16_t XBeeApiFrame::getCmdLen( void ) const
johnb 5:b40a6fd3a334 29 {
johnb 5:b40a6fd3a334 30 return m_dataLen + m_cmdHeaderLen;
johnb 5:b40a6fd3a334 31 }
johnb 5:b40a6fd3a334 32
johnb 5:b40a6fd3a334 33
johnb 5:b40a6fd3a334 34 XBeeApiIdentifier_e XBeeApiFrame::getApiId( void ) const
johnb 5:b40a6fd3a334 35 {
johnb 5:b40a6fd3a334 36 return m_apiId;
johnb 5:b40a6fd3a334 37 }
johnb 5:b40a6fd3a334 38
johnb 10:0d084d0253a7 39 void XBeeApiFrame::getDataPtr( const uint16_t p_start, const uint8_t** p_buff, uint16_t* const p_len ) const
johnb 5:b40a6fd3a334 40 {
johnb 10:0d084d0253a7 41 *p_len = m_dataLen;
johnb 10:0d084d0253a7 42 (*p_buff) = m_data;
johnb 5:b40a6fd3a334 43 }
johnb 5:b40a6fd3a334 44
johnb 5:b40a6fd3a334 45 XBeeApiFrameDecoder::XBeeApiFrameDecoder() : m_device( NULL )
johnb 5:b40a6fd3a334 46 {
johnb 5:b40a6fd3a334 47
johnb 5:b40a6fd3a334 48 }
johnb 5:b40a6fd3a334 49
johnb 5:b40a6fd3a334 50 XBeeApiFrameDecoder::~XBeeApiFrameDecoder()
johnb 5:b40a6fd3a334 51 {
johnb 5:b40a6fd3a334 52 if( m_device != NULL )
johnb 5:b40a6fd3a334 53 {
johnb 5:b40a6fd3a334 54 m_device->unregisterDecoder( this );
johnb 5:b40a6fd3a334 55 }
johnb 5:b40a6fd3a334 56 }
johnb 5:b40a6fd3a334 57
johnb 5:b40a6fd3a334 58 void XBeeApiFrameDecoder::registerCallback( XBeeDevice* const p_device )
johnb 5:b40a6fd3a334 59 {
johnb 5:b40a6fd3a334 60 m_device = p_device;
johnb 5:b40a6fd3a334 61 }
johnb 5:b40a6fd3a334 62
johnb 5:b40a6fd3a334 63 void XBeeApiFrameDecoder::unregisterCallback( void )
johnb 5:b40a6fd3a334 64 {
johnb 5:b40a6fd3a334 65 m_device = NULL;
johnb 5:b40a6fd3a334 66 }