⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 phy.c

📁 该演示程序实现温度的采集与显示功能
💻 C
字号:

#include "compiler.h"
#include "lrwpan_config.h"         //user configurations
#include "lrwpan_common_types.h"   //types common acrosss most files
#include "ieee_lrwpan_defs.h"
#include "hal.h"
#include "halStack.h"
#include "console.h"
#include "phy.h"

#include "evboard.h"

PHY_PIB phy_pib;
PHY_SERVICE a_phy_service;
PHY_STATE_ENUM phyState;

BYTE tmpTxBuff[LRWPAN_MAX_FRAME_SIZE];

void phyInit(void ) {
  phyState = PHY_STATE_IDLE;
  phy_pib.flags.val = 0;
  phy_pib.flags.bits.txFinished=1;
}

void phyRxCallback(void)
{
}

void phyTxStartCallBack(void)
{
    phy_pib.txStartTime = halGetMACTimer();
}


void phyFSM(void) {

  switch (phyState)
  {
	  case PHY_STATE_IDLE:		
	    break;
		
	  case PHY_STATE_COMMAND_START:
	    switch(a_phy_service.cmd)
		{			
		      case LRWPAN_SVC_PHY_TX_DATA:
		        phy_pib.flags.bits.txFinished = 0;
				
		        a_phy_service.status =halSendPacket(phy_pib.currentTxFlen,tmpTxBuff);
		        if (a_phy_service.status == LRWPAN_STATUS_SUCCESS)
				{		
		          phyState = PHY_STATE_TX_WAIT;//TX started, wait for it to end.
		        }
				else
				{		
		          DEBUG_STRING(1,"PHY: TX did not start\n");
		          phyState = PHY_STATE_IDLE;
		        }
		       break;
			
		     default: break;		
	    }//end switch cmd
	    break;
		
	  case PHY_STATE_TX_WAIT:  //wait for TX out of radio to complete or timeout
	    if (phy_pib.flags.bits.txFinished)
		{
	        phyState = PHY_STATE_IDLE;
			phyReleaseTxLock();
	    }
	    else if  (halMACTimerNowDelta(phy_pib.txStartTime) > MAX_TX_TRANSMIT_TIME)
		{	
	      //DEBUG_STRING(1,"PHY: MAX_TX_TRANSMIT_TIME timeout\n");//should not happen, indicate an error to console
		  a_phy_service.status = LRWPAN_STATUS_PHY_TX_FINISH_FAILED;
	      phyState = PHY_STATE_IDLE;
		  phyReleaseTxLock();
	    }
	    break;
	  default: break;
  }//end switch phyState
}

⌨️ 快捷键说明

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