Microchip® Advanced Software Framework

nwk.c File Reference

Network layer management functions implementation.

Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.

#include <stdlib.h>
#include <stdint.h>
#include <stdbool.h>
#include <string.h>
#include "phy.h"
#include "sysConfig.h"
#include "nwkRx.h"
#include "nwkTx.h"
#include "nwkGroup.h"
#include "nwkFrame.h"
#include "nwkRoute.h"
#include "nwkSecurity.h"
#include "nwkRouteDiscovery.h"

Functions

bool NWK_Busy (void)
 Checks if network layer is ready for sleep. More...
 
void NWK_Init (void)
 Initializes all network layer modules. More...
 
uint8_t NWK_LinearizeLqi (uint8_t lqi)
 Calculates linearized value for the given value of the LQI. More...
 
void NWK_Lock (void)
 Increases the lock counter and sets a busy state. More...
 
void NWK_OpenEndpoint (uint8_t id, bool(*handler)(NWK_DataInd_t *ind))
 Registers callback ind for the endpoint endpoint. More...
 
void NWK_SetAddr (uint16_t addr)
 Sets network address of the node. More...
 
void NWK_SetPanId (uint16_t panId)
 Sets network identifier (PAN) of the node. More...
 
void NWK_SleepReq (void)
 Puts network layer to a sleeping state. More...
 
void NWK_TaskHandler (void)
 Network layer task handler. More...
 
void NWK_Unlock (void)
 Decreases the lock counter and sets a free state if counter reaches 0. More...
 
void NWK_WakeupReq (void)
 Puts network layer to an active state. More...
 

Variables

NwkIb_t nwkIb
 

bool NWK_Busy ( void  )

Checks if network layer is ready for sleep.

Returns
true if network layer is ready for sleep or false otherwise

References NwkIb_t::lock.

Referenced by APP_TaskHandler().

void NWK_Init ( void  )
uint8_t NWK_LinearizeLqi ( uint8_t  lqi)

Calculates linearized value for the given value of the LQI.

Parameters
[in]lqiLQI value as provided by the transceiver
Returns
linearized value directly proportional to the probability of delivery
void NWK_Lock ( void  )

Increases the lock counter and sets a busy state.

References NwkIb_t::lock.

Referenced by appCmdHandle().

void NWK_OpenEndpoint ( uint8_t  id,
bool(*)(NWK_DataInd_t *ind)  handler 
)

Registers callback ind for the endpoint endpoint.

Parameters
[in]idEndpoint index (1-15)
[in]handlerPointer to the callback function

References NwkIb_t::endpoint.

Referenced by APP_CommandsInit(), appInit(), and nwkRxInit().

void NWK_SetAddr ( uint16_t  addr)

Sets network address of the node.

Parameters
[in]addrAdddress to set

References NwkIb_t::addr, addr, and PHY_SetShortAddr().

Referenced by appInit().

void NWK_SetPanId ( uint16_t  panId)

Sets network identifier (PAN) of the node.

Parameters
[in]panIdPAN ID to set

References NwkIb_t::panId, and PHY_SetPanId().

Referenced by appInit().

void NWK_SleepReq ( void  )

Puts network layer to a sleeping state.

References PHY_Sleep().

Referenced by APP_TaskHandler().

void NWK_TaskHandler ( void  )

Network layer task handler.

References nwkDataReqTaskHandler(), nwkRxTaskHandler(), and nwkTxTaskHandler().

Referenced by SYS_TaskHandler().

void NWK_Unlock ( void  )

Decreases the lock counter and sets a free state if counter reaches 0.

References NwkIb_t::lock.

Referenced by appCmdIdentifyDurationTimerHandler().

void NWK_WakeupReq ( void  )

Puts network layer to an active state.

References PHY_Wakeup().

Referenced by APP_TaskHandler().