updated example name”
This commit is contained in:
@@ -0,0 +1,144 @@
|
||||
//******************************************************************************
|
||||
//! \file npi_rxbuf.c
|
||||
//! \brief NPI RX Buffer and utilities
|
||||
//
|
||||
// Revised $Date: 2015-07-28 14:31:44 -0700 (Tue, 28 Jul 2015) $
|
||||
// Revision: $Revision: 44419 $
|
||||
//
|
||||
// Copyright 2015 Texas Instruments Incorporated. All rights reserved.
|
||||
//
|
||||
// IMPORTANT: Your use of this Software is limited to those specific rights
|
||||
// granted under the terms of a software license agreement between the user
|
||||
// who downloaded the software, his/her employer (which must be your employer)
|
||||
// and Texas Instruments Incorporated (the "License"). You may not use this
|
||||
// Software unless you agree to abide by the terms of the License. The License
|
||||
// limits your use, and you acknowledge, that the Software may not be modified,
|
||||
// copied or distributed unless used solely and exclusively in conjunction with
|
||||
// a Texas Instruments radio frequency device, which is integrated into
|
||||
// your product. Other than for the foregoing purpose, you may not use,
|
||||
// reproduce, copy, prepare derivative works of, modify, distribute, perform,
|
||||
// display or sell this Software and/or its documentation for any purpose.
|
||||
//
|
||||
// YOU FURTHER ACKNOWLEDGE AND AGREE THAT THE SOFTWARE AND DOCUMENTATION ARE
|
||||
// PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,l
|
||||
// INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY, TITLE,
|
||||
// NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL
|
||||
// TEXAS INSTRUMENTS OR ITS LICENSORS BE LIABLE OR OBLIGATED UNDER CONTRACT,
|
||||
// NEGLIGENCE, STRICT LIABILITY, CONTRIBUTION, BREACH OF WARRANTY, OR OTHER
|
||||
// LEGAL EQUITABLE THEORY ANY DIRECT OR INDIRECT DAMAGES OR EXPENSES
|
||||
// INCLUDING BUT NOT LIMITED TO ANY INCIDENTAL, SPECIAL, INDIRECT, PUNITIVE
|
||||
// OR CONSEQUENTIAL DAMAGES, LOST PROFITS OR LOST DATA, COST OF PROCUREMENT
|
||||
// OF SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES
|
||||
// (INCLUDING BUT NOT LIMITED TO ANY DEFENSE THEREOF), OR OTHER SIMILAR COSTS.
|
||||
//
|
||||
// Should you have any questions regarding your right to use this Software,
|
||||
// contact Texas Instruments Incorporated at www.TI.com.
|
||||
//******************************************************************************
|
||||
|
||||
// ****************************************************************************
|
||||
// includes
|
||||
// ****************************************************************************
|
||||
#include <string.h>
|
||||
#include <xdc/std.h>
|
||||
|
||||
#include "Board.h"
|
||||
#include "hal_types.h"
|
||||
#include "inc/npi_config.h"
|
||||
#include "inc/npi_tl.h"
|
||||
|
||||
// ****************************************************************************
|
||||
// defines
|
||||
// ****************************************************************************
|
||||
#define NPIRXBUF_RXHEAD_INC(x) RxBufHead += x; \
|
||||
RxBufHead %= NPI_TL_BUF_SIZE;
|
||||
|
||||
#define NPIRXBUF_RXTAIL_INC(x) RxBufTail += x; \
|
||||
RxBufTail %= NPI_TL_BUF_SIZE;
|
||||
|
||||
// ****************************************************************************
|
||||
// typedefs
|
||||
// ****************************************************************************
|
||||
|
||||
//*****************************************************************************
|
||||
// globals
|
||||
//*****************************************************************************
|
||||
|
||||
//Receive Buffer for all NPI messages
|
||||
static uint8 RxBuf[NPI_TL_BUF_SIZE];
|
||||
static uint16 RxBufHead = 0;
|
||||
static uint16 RxBufTail = 0;
|
||||
|
||||
//*****************************************************************************
|
||||
// function prototypes
|
||||
//*****************************************************************************
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief NPIRxBuf_Read
|
||||
//!
|
||||
//! \param[in] len - number of bytes to read out of circular buffer
|
||||
//!
|
||||
//! \return uint16 - number of bytes read
|
||||
// -----------------------------------------------------------------------------
|
||||
uint16 NPIRxBuf_Read(uint16 len)
|
||||
{
|
||||
uint16 partialLen = 0;
|
||||
|
||||
// Need to make two reads due to wrap around of circular buffer
|
||||
if ((len + RxBufTail) > NPI_TL_BUF_SIZE)
|
||||
{
|
||||
partialLen = NPI_TL_BUF_SIZE - RxBufTail;
|
||||
NPITL_readTL(&RxBuf[RxBufTail], partialLen);
|
||||
len -= partialLen;
|
||||
RxBufTail = 0;
|
||||
}
|
||||
|
||||
// Read remainder of data from Transport Layer
|
||||
NPITL_readTL(&RxBuf[RxBufTail], len);
|
||||
NPIRXBUF_RXTAIL_INC(len);
|
||||
|
||||
// Return len to original size
|
||||
len += partialLen;
|
||||
|
||||
return len;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief Returns number of bytes that are unparsed in RxBuf
|
||||
//!
|
||||
//! \return uint16 - number of bytes that are unparsed in RxBuf
|
||||
// -----------------------------------------------------------------------------
|
||||
uint16 NPIRxBuf_GetRxBufCount(void)
|
||||
{
|
||||
return ((RxBufTail - RxBufHead) + NPI_TL_BUF_SIZE) % NPI_TL_BUF_SIZE;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief Returns number of bytes that are available in RxBuf
|
||||
//!
|
||||
//! \return uint16 - number of bytes that are available in RxBuf
|
||||
// -----------------------------------------------------------------------------
|
||||
uint16 NPIRxBuf_GetRxBufAvail(void)
|
||||
{
|
||||
return (NPI_TL_BUF_SIZE - NPIRxBuf_GetRxBufCount());
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
//! \brief NPIRxBuf_ReadFromRxBuf
|
||||
//!
|
||||
//! \param[in] buf - pointer to byte array in which to copy bytes read
|
||||
//! \param[in] len - number of bytes to read out of circular buffer
|
||||
//!
|
||||
//! \return uint16 - numjer of bytes read
|
||||
// -----------------------------------------------------------------------------
|
||||
uint16 NPIRxBuf_ReadFromRxBuf(uint8_t *buf, uint16 len)
|
||||
{
|
||||
uint16_t idx;
|
||||
|
||||
for (idx = 0; idx < len; idx++)
|
||||
{
|
||||
*buf++ = RxBuf[RxBufHead];
|
||||
NPIRXBUF_RXHEAD_INC(1)
|
||||
}
|
||||
|
||||
return len;
|
||||
}
|
||||
Reference in New Issue
Block a user