Atmel Software Framework

nwkDataReq.c File Reference

NWK_DataReq() implementation.

Copyright (C) 2014-2015 Atmel Corporation. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. The name of Atmel may not be used to endorse or promote products derived from this software without specific prior written permission.
  4. This software may only be redistributed and used in connection with an Atmel microcontroller product.

THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

#include <stdlib.h>
#include <stdint.h>
#include <stdbool.h>
#include <string.h>
#include "sysConfig.h"
#include "nwk.h"
#include "nwkTx.h"
#include "nwkFrame.h"
#include "nwkGroup.h"
#include "nwkDataReq.h"

Enumerations

enum  {
  NWK_DATA_REQ_STATE_INITIAL,
  NWK_DATA_REQ_STATE_WAIT_CONF,
  NWK_DATA_REQ_STATE_CONFIRM
}
 

Functions

void NWK_DataReq (NWK_DataReq_t *req)
 Adds request req to the queue of outgoing requests. More...
 
static void nwkDataReqConfirm (NWK_DataReq_t *req)
 Confirms request to the application and remove it from the queue. More...
 
void nwkDataReqInit (void)
 Initializes the Data Request module. More...
 
static void nwkDataReqSendFrame (NWK_DataReq_t *req)
 Prepares and send outgoing frame based on the request req parameters. More...
 
void nwkDataReqTaskHandler (void)
 Data Request module task handler. More...
 
static void nwkDataReqTxConf (NwkFrame_t *frame)
 Frame transmission confirmation handler. More...
 

Variables

static NWK_DataReq_tnwkDataReqQueue
 

anonymous enum
Enumerator
NWK_DATA_REQ_STATE_INITIAL 
NWK_DATA_REQ_STATE_WAIT_CONF 
NWK_DATA_REQ_STATE_CONFIRM 

void NWK_DataReq ( NWK_DataReq_t req)

Adds request req to the queue of outgoing requests.

Parameters
[in]reqPointer to the request parameters

References NWK_DataReq_t::frame, NwkIb_t::lock, NWK_DataReq_t::next, NWK_DATA_REQ_STATE_INITIAL, NWK_SUCCESS_STATUS, nwkDataReqQueue, nwkIb, NWK_DataReq_t::state, and NWK_DataReq_t::status.

Referenced by appCmdDataRequest(), appProcessDataReq(), appResponderDataInd(), appSendData(), and unitDataReq().

static void nwkDataReqConfirm ( NWK_DataReq_t req)
static

Confirms request to the application and remove it from the queue.

Parameters
[in]reqPointer to the request parameters

References NWK_DataReq_t::confirm, NwkIb_t::lock, NWK_DataReq_t::next, nwkDataReqQueue, and nwkIb.

Referenced by nwkDataReqTaskHandler().

void nwkDataReqInit ( void  )

Initializes the Data Request module.

Referenced by NWK_Init().

void nwkDataReqTaskHandler ( void  )
static void nwkDataReqTxConf ( NwkFrame_t frame)
static

Frame transmission confirmation handler.

Parameters
[in]framePointer to the sent frame

References NWK_DataReq_t::next, NWK_DATA_REQ_STATE_CONFIRM, nwkFrameFree(), and NwkFrame_t::tx.

Referenced by nwkDataReqSendFrame().

NWK_DataReq_t* nwkDataReqQueue
static

Referenced by NWK_DataReq(), and nwkDataReqConfirm().