#ifndef _NRF_PHY_H
#define _NRF_PHY_H

#include "bsp.h"

u8 NRF_CmpHandlId(const u8 src_addr,const u8 dst_addr,const u16 ID);
u8 NRF_SearchHandlTimeoutId(void);
u8 NRF_AppropriateChannelDetect(void);//检测拥挤程度最低的信道
u8 NRF_MallocIdleDataBufId(void);//得到一个空闲DATABUF
u8 NRF_SearchDataBuf(const u8 status);//查找状态为status的DataBuf
void NRF_Init(void);//初始化协议
void NRF_FreeDataBuf(u8 id);//释放被使用的DATABUF,仅改变为空闲状态
void NRF_WaitDistributionAddr(void);
void NRF_ClearNodeData(void);
void NRF_SetNodeAddrMac(const u8 node,const u8 *mac);
void NRF_StoreNrfParam(void);
void NRF_HandleBuf(void);//根据缓冲区状态处理缓冲区
void NRF_RecvData(void);//接收数据包
void NRF_Thread(void);//定时线程，执行协议
void NRF_SendData(const u8 dst_addr,const u8 type,const u8 *buf,const u8 *mac,HANDLECALLBACK fun);//发送数据接口
void NRF_SendCallBack(u8 src_addr,u8 dst_addr,u8 pack_type,u16 ID,u8 *buf,u8 status);//发送回调函数
void NRF_SetDefaultRecvHandler(HANDLECALLBACK pFun);//设置接收数据处理函数(回调函数)
void NRF_SetPipe5Mac(u8 *addr);
void GetMacAddr(u8 *mac,const char ch,const u8 addr);//获取mac地址
static void NRF_AutoLink(void);//用于NODE到ROUTER的自动连接
static void NRF_ReadNrfParam(void);
static void NRF_RelayPackage(LPayload pPayLoad);//转发数据包
static void NRF_HandleDataPack(LPayload pPayLoad,u8 pipe);//处理数据包
static void NRF_NrfSendData(void);//根据缓冲区状态发送数据,发送前先检测干扰

extern u8 tx_mac[MAC_LEN+1];
//extern u8 pipe5_mac[MAC_LEN+1];
extern NODESTATUS NodeStatus;

#endif
