Microchip® Advanced Software Framework

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Network layer(NWK)

Network layer (NWK) provides core stack functionality and provides two routing algorithms,1.Native routing and 2.AODV routing.

#define NWK_MAX_PAYLOAD_SIZE
 
#define NWK_BROADCAST_PANID   0xffff
 
#define NWK_BROADCAST_ADDR   0xffff
 
#define NWK_ENDPOINTS_AMOUNT   16
 
enum  NWK_Status_t {
  NWK_SUCCESS_STATUS = 0x00,
  NWK_ERROR_STATUS = 0x01,
  NWK_OUT_OF_MEMORY_STATUS = 0x02,
  NWK_NO_ACK_STATUS = 0x10,
  NWK_NO_ROUTE_STATUS = 0x11,
  NWK_PHY_CHANNEL_ACCESS_FAILURE_STATUS = 0x20,
  NWK_PHY_NO_ACK_STATUS = 0x21
}
 
typedef struct NwkIb_t NwkIb_t
 
NwkIb_t nwkIb
 
void NWK_Init (void)
 Initializes all network layer modules. 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_OpenEndpoint (uint8_t id, bool(*handler)(NWK_DataInd_t *ind))
 Registers callback ind for the endpoint endpoint. More...
 
bool NWK_Busy (void)
 Checks if network layer is ready for sleep. More...
 
void NWK_Lock (void)
 Increases the lock counter and sets a busy state. More...
 
void NWK_Unlock (void)
 Decreases the lock counter and sets a free state if counter reaches 0. More...
 
void NWK_SleepReq (void)
 Puts network layer to a sleeping state. More...
 
void NWK_WakeupReq (void)
 Puts network layer to an active state. More...
 
void NWK_TaskHandler (void)
 Network layer task handler. More...
 
uint8_t NWK_LinearizeLqi (uint8_t lqi)
 Calculates linearized value for the given value of the LQI. More...
 

#define NWK_ENDPOINTS_AMOUNT   16

Referenced by NWK_Init().

#define NWK_MAX_PAYLOAD_SIZE
Value:
(127 - 16 /*NwkFrameHeader_t*/ - \
2 /*crc*/)

typedef struct NwkIb_t NwkIb_t

Enumerator
NWK_SUCCESS_STATUS 
NWK_ERROR_STATUS 
NWK_OUT_OF_MEMORY_STATUS 
NWK_NO_ACK_STATUS 
NWK_NO_ROUTE_STATUS 
NWK_PHY_CHANNEL_ACCESS_FAILURE_STATUS 
NWK_PHY_NO_ACK_STATUS 

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().

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, 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(), nwkSecurityTaskHandler(), 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().