Copyright (c) 2013-2018 Microchip Technology Inc.
and its subsidiaries.
#include <stdint.h>
#include <string.h>
#include <stdbool.h>
#include "pal.h"
#include "return_val.h"
#include "tal.h"
#include "ieee_const.h"
#include "tal_pib.h"
#include "tal_irq_handler.h"
#include "tal_constants.h"
#include "tal_tx.h"
#include "stack_config.h"
#include "bmm.h"
#include "qmm.h"
#include "tal_rx.h"
#include "tal_internal.h"
#include "at86rf232.h"
#include "tal_slotted_csma.h"
#include "mac_build_config.h"
Functions | |
void | handle_tx_end_irq (bool underrun_occured) |
Handles interrupts issued due to end of transmission. More... | |
void | send_frame (csma_mode_t csma_mode, bool tx_retries) |
Sends frame. More... | |
retval_t | tal_tx_frame (frame_info_t *tx_frame, csma_mode_t csma_mode, bool perform_frame_retry) |
Requests to TAL to transmit frame. More... | |
void | tx_done_handling (void) |
Implements the handling of the transmission end. More... | |
Variables | |
static trx_trac_status_t | trx_trac_status |
retval_t tal_tx_frame | ( | frame_info_t * | tx_frame, |
csma_mode_t | csma_mode, | ||
bool | perform_frame_retry | ||
) |
Requests to TAL to transmit frame.
This function is called by the MAC to deliver a frame to the TAL to be transmitted by the transceiver.
tx_frame | Pointer to the frame_info_t structure or to frame array to be transmitted |
csma_mode | Indicates mode of csma-ca to be performed for this frame |
perform_frame_retry | Indicates whether to retries are to be performed for this frame |
References aUnitBackoffPeriod, calculate_transaction_duration(), CSMA_SLOTTED, last_frame_length, MAC_CHANNEL_ACCESS_FAILURE, mac_frame_ptr, MAC_INVALID_PARAMETER, MAC_SUCCESS, frame_info_tag::mpdu, NO_CSMA_WITH_IFS, NON_BEACON_NWK, NULL, pal_get_current_time(), send_frame(), slotted_csma_start(), tal_add_time_symbols(), TAL_BUSY, TAL_CONVERT_US_TO_SYMBOLS, tal_frame_to_tx, TAL_GET_BEACON_INTERVAL_TIME, TAL_IDLE, tal_pib, tal_state, tal_sub_time_symbols(), and transaction_duration_periods.
|
static |
Referenced by handle_tx_end_irq(), and tx_done_handling().