//===========================================================================
//文件名称：task_rf_recv.c
//功能概要：放置RF接收数据帧任务
//版权所有：苏州大学飞思卡尔嵌入式中心(sumcu.suda.edu.cn)
//版本更新：根据需要更新
//===========================================================================
#include "01_app_include.h"    //应用任务公共头文件
#include "adc.h"

//===========================================================================
//任务名称：task_rf_recv
//功能概要：判断RF接收事件位EVENT_RF_RECV，调用RF_ReceiveFrame()接收PC Node节点RF测试数据包，
//       解析成功后采样本节点芯片温度以及RF能量值并送入待发送数据的前三个字节中，设置RF发送轻量级事件位EVENT_RF_SEND，
//       启动RF发送任务task_rf_send()。
//参数说明：未使用
//===========================================================================
void task_rf_recv(uint32_t initial)
{	
	//1. 声明任务使用的变量
	uint_8 rfRecCount;
	uint_8 i;
	uint_16 temp;
	//2. 给有关变量赋初值

	//3. 进入任务循环体
	while(TRUE) 
	{
		//以下加入用户程序--------------------------------------------------------
		//1.等待RF接收事件位

		_lwevent_wait_for(&lwevent_group, EVENT_RF_RECV, FALSE, NULL);
		Delay_ms(10);   //
		rf_sentBuf[0] = (uint_8)'T';           //
		rf_sentBuf[1] = g_rfRecCount-3;         //
		rf_sentBuf[2] = (uint_8)HD_adr;           //
		for(i=3; i<=g_rfRecCount-2; i++)
			rf_sentBuf[i] = rf_recvBuf[i];
        //在帧尾前的两个字节可用于封装一个物理量，视情况可以按相同的方法封装多个物理量。
		temp = adc_read(26);
		rf_sentBuf[g_rfRecCount-3]  = temp>>8;
		rf_sentBuf[g_rfRecCount-2]  = temp;
		rf_sentBuf[g_rfRecCount-1]  = (uint_8)'D';  //帧尾

		rf_sentBufLength = g_rfRecCount;

		_lwevent_set(&lwevent_group, EVENT_RF_SEND);	     //置RF发送事件位，启动RF发送任务

		//3.清除RF接收事件位
		_lwevent_clear(&lwevent_group, EVENT_RF_RECV);

	}//任务循环体end_while
}
