sensorcomm.c

来自「无线单片机cc2430简化协议的无线收发程序」· C语言 代码 · 共 64 行

C
64
字号


//功能:团长把数据上报给探头

#include "msstate_lrwpan.h"
#include "MAC.h"

#include "SensorComm.h"




BYTE NeedRepDatToSensor(BYTE hiId,BYTE lowId)
{
   int i;
   for(i=0;i<MAXREPRECNUM;i++)
	{
	    if((RepDatToSensorRec[i].SensorId[0]==lowId)&&(RepDatToSensorRec[i].SensorId[1]==hiId))		 
		  if (TickGetDiff(TickGet(), RepDatToSensorRec[i].lastRepTime) <CAPTAIN_SENDDATATOSENSORTIME/20)//每个滴答50ms左右
		      return 0;		  		
	}
   return 1;
}

void UpdateRepDatToSensorRec(BYTE hiId,BYTE lowId)
{
    int i;
    TICK maxTime=0;
	BYTE iTmp=0;
    for(i=0;i<MAXREPRECNUM;i++)
	{
	    if((RepDatToSensorRec[i].SensorId[0]==lowId)&&(RepDatToSensorRec[i].SensorId[1]==hiId))	
	    {
		    RepDatToSensorRec[i].lastRepTime=TickGet();			
		    return ;
		}
		
		if(RepDatToSensorRec[i].lastRepTime>maxTime)
			{
			    maxTime=RepDatToSensorRec[i].lastRepTime;
				iTmp=i;
			}
	}

	RepDatToSensorRec[iTmp].SensorId[0]=lowId;
	RepDatToSensorRec[iTmp].SensorId[1]=hiId;	
    RepDatToSensorRec[iTmp].lastRepTime=TickGet();
	
}
void ResetRepDatToSensorRec(void)
{
    int i;
	for(i=0;i<MAXREPRECNUM;i++)
	{
		RepDatToSensorRec[i].SensorId[0]=0xff;
		RepDatToSensorRec[i].SensorId[1]=0xff;
		RepDatToSensorRec[i].lastRepTime=0;
	}
}

///////////////////////////////////////////////////////////////////////////


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?