亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? macs.c

?? 協調器的執行程序
?? C
字號:
#include "mac.h"
extern MAC_STATE_TYPE     mac_current_state;
extern MAC_PIB  mac_pib_data;
extern uint8_t                                         current_pending_num;
extern SHORT_ADDR  default_short_addr;

void mlmeScanConfirm(MLME_SCAN_CONFIRM  scan_result_info)
{
       //根據scan_result_info來修改對應的mac層和PHY層的pib信息
       //本來有個復雜的選擇算法,這里簡單處理第一個
     //printf("\n-------it is in scan confirm---------\n");
	if((scan_result_info.status==SUCCESS)&&(scan_result_info.scanType==ORPHAN_SCAN))
	{
	   //printf("\n----SUCCESSFULL ORPHAN SCAN----\n");
	     mac_current_state=MAC_STATE_IDLE;
	     return;	 
	}
       if((scan_result_info.status==SUCCESS)&&(scan_result_info.scanType==ACTIVE_PASSIVE_SCAN))
       {//printf("\n-------it is in scan confirm---------\n");
           mac_current_state=MAC_STATE_ACTIVE_PASSIVE_SCAN_FINISHED;
           //printf("\n-----the macbeacon is %02x\n",scan_result_info.pPANDescriptorList[0].superframeSpec.SF.bytes.LSB);
	    mac_pib_data.macBeaconOrder=((scan_result_info.pPANDescriptorList[0].superframeSpec.SF.bytes.LSB)&0x0f);
	    mac_pib_data.macSuperframeOrder=((scan_result_info.pPANDescriptorList[0].superframeSpec.SF.bytes.LSB)>>4);
	    mac_pib_data.macPANId.Val=scan_result_info.pPANDescriptorList[0].coordinator.panID.Val; 		
	    if(scan_result_info.pPANDescriptorList[0].coordinator.addrMode==0x02)	
	    	{
	           mac_pib_data.macCoordShortAddress.Val=scan_result_info.pPANDescriptorList[0].coordinator.shortAddr.Val;
	    	}
	    else if(scan_result_info.pPANDescriptorList[0].coordinator.addrMode==0x03)	
	    	{
	    	    mac_pib_data.macCoordExtendedAddress.longaddr=scan_result_info.pPANDescriptorList[0].coordinator.longAddr.longaddr;	
	    	}
	    ppib.phyCurrentChanel=scan_result_info.pPANDescriptorList[0].logicalChannel;
	    //PLME_SET_request(phyCurrentChanel_id, ppib.phyCurrentChanel);
	    //OS_post(synrequest_task);
       }
 	else
 	{
 	   if(!IS_COORDINATOR)
 	   	{
 	   mac_current_state=MAC_STATE_UNSTARTED;
	 //printf("\n--PASSIVE SCAN FAILURE-----\n");
 	   	}
	   else
	   	{
	   mac_current_state=MAC_STATE_ACTIVE_PASSIVE_SCAN_FINISHED;
	 //printf("\n---doesn't exist any 802.15.4 network ----\n");
	 //printf("---I will be the coordinator----");
	   	}
	   //OS_post(scan_task);	
 	} 
       
}

void mlmeStartConfirm(void)
{
	//通知高層發送完畢。
	//可以通過post高層任務來完成高層的函數任務
	//空函數,高層實現
}


void mlmeAssociateConfirm(SHORT_ADDR AssocShortAddress, BYTE status)
{
	//printf("\n------success associate------ %d\n",status);
	//printf("\nthe allocated short address is %04x\n",AssocShortAddress.Val);
	if(status==NO_ACK)
		{
		
		printf("\n----the association request frame is no acked-----\n");
		
		//mac_current_state=MAC
		}
	//兩種情況為NO_DATA
	if(status==NO_DATA)
		printf("\n---didn't received the association response frame---\n");
		
	if(status==SUCCESS)
	{
	mac_current_state=MAC_STATE_ASSOC_FINISHED;
	//mac_current_state=MAC_STATE_IDLE;
	//mac_current_state_saved=MAC_STATE_IDLE;
	phy_channel_state=PHY_IDLE;
	PLME_SET_TRX_STATE_request(RX_ON);
	mac_pib_data.macShortAddress=AssocShortAddress;
	cc2420_setshortaddress((uint16_t)mac_pib_data.macShortAddress.Val);
       cc2420_setpanid((uint16_t)mac_pib_data.macPANId.Val);		
	}
	else 
	{
	   //主要工作由網絡層決定
	   mac_current_state=MAC_STATE_ACTIVE_PASSIVE_SCAN_FINISHED;
	}
}

//**************************//
void mlmeAssociateIndication(MLME_ASSOCIATE_INDICATION   mlme_associate_indication_info)
{
	//協調者在收到associate request幀后通知高層
	//可以post高層任務
	BYTE status;
	SHORT_ADDR  shortaddr_alloc;
	//主要任務是調用mlmeassociateresponse原語
	//------------------------------------------------------
	//---------------待添加------------------------------
	//--------網絡層是否決定關聯-------------------
	//--------修改status,分配shortaddr--------------------
     //printf("\n------success received an association request frame--------\n");
	//for(uint8_t i=0;i<8;i++)
	//	printf("\nthe addr is v[%d]=%d\n",i,mlme_associate_indication_info.Deviceaddr.v[i]);
	//shortaddr_alloc.Val=RFD_SHORT_ADDRESS;
	shortaddr_alloc=short_address_allocate_req(mlme_associate_indication_info.Deviceaddr);
	printf("\n---allocated short addr is %04x---\n",shortaddr_alloc.Val);
	status=0x00;
	mlmeAssociateResponse(mlme_associate_indication_info.Deviceaddr, shortaddr_alloc,status, FALSE);
}
//**************************//
void mlmeAssociateResponse(LONG_ADDR deviceAddress, SHORT_ADDR assocShortAddress, BYTE status, bool securityEnable)
{
	//協調者的高層在收到associate indication原語后響應MAC層的原語
	//MAC層調用發送任務發送associate response幀
	FRAME_CONTROL framectl_field;
	NODE_INFO dst; 
	NODE_INFO src; 
	//下面不用做.
	dst.addrMode=0x03;
	src.addrMode=0x03;
	dst.panID=mac_pib_data.macPANId;
	src.panID=mac_pib_data.macPANId;
       src.longAddr=mac_pib_data.macExtAddress;	
	dst.longAddr=deviceAddress;
	framectl_field.v[0]=0x23;
	framectl_field.v[1]=0xcc;
	
	//
	if((IS_FFD!=0x00)&&(mac_current_state==MAC_STATE_IDLE)&&(current_pending_num<MAX_PENDING_LIST_SIZE))
		{
		    add_pending_queue(0, framectl_field, dst,src,0, NULL, status, TRUE, deviceAddress,assocShortAddress);
		}
	else if(current_pending_num>=MAX_PENDING_LIST_SIZE)	
		{
		   //printf("\npending full\n");
		     //向上層報告
		     //mlme_comm_status()
		}
	//--------------------------------------------------
       //In order to test the disassociation frame from the coordinator
       //LONG_ADDR  RFD_LONG_ADDR;

	//test the coordinator want the RFD leave the network
       //mlmeDisassociateRequest(deviceAddress,0x01, FALSE);

      //---------------------------------------------------
	
		
}

void mlmeDisassociateIndication(LONG_ADDR deviceAddress, BYTE disassociateReason, bool securityUse, BYTE aclEntry)
{
	//協調者或終端設備在收到對方發過來的disassociation notification幀后
	//通知高層。post高層任務
	//空函數,高層實現
	//------------------------------------------------------
	//---------------待添加------------------------------
	//--------網絡層刪除對應的associate記錄--------
	//-------------------------------------------------------
       if(!IS_COORDINATOR)
       {
	 //printf("\n--the RFD received the disassociation indiation----\n");
	   mac_current_state=MAC_STATE_IDLE;
       }  
	else
		{   
		   
	           printf("\n----the coordinator received the disassociation indication----\n");	
	         
		}
	
}



void mlmeDisassociateConfirm(MAC_ENUM status)
{
	//在MAC層發送完成(無論成功與失敗),將調用該原語通知高層
	//恢復系統的MAC層的狀態變量
  //可以post一個高層任務
  //空函數,高層實現
     if(status==SUCCESS)
     {
         if(!IS_COORDINATOR)
         	{
                   printf("\n---success disassociated from the network-----\n");
		     
         	}
         else
         	{   
         	   
                   printf("\n---success disassociated the object RFD from the network------\n");	
		     
         	}
     }		 
}


//*************************//
void mlmeOrphanIndication(LONG_ADDR orphanAddress, bool securityUse, BYTE aclEntry)
{               
	//協調者或簇頭節點在收到一個設備發送過來的orphan nitification幀時候通知高層的原語
	//完成高層任務,該任務主要是調用orphan response原語。
	SHORT_ADDR shortaddress;
	//查找對應orphanAddress的shortaddress.
	//-------------------------------------------
	//-------------------待添加--------------
	//--------------網絡層的代碼----------
	//shortaddress.Val=0xfc8b;
       //shortaddress.Val=RFD_SHORT_ADDRESS;
	printf("\nsuccess received a orphan notification frame\n");
	
	shortaddress=short_address_allocate_req(orphanAddress);
	mlmeOrphanResponse(orphanAddress, shortaddress, TRUE, FALSE);
}
//*************************//

void mlmeCommStatusIndication(WORD panId, BYTE srcAddrMode, ADDRESS *pSrcAddr, BYTE dstAddrMode, ADDRESS *pDstAddr, BYTE status)
{
	//通知高層顯示response幀的傳輸情況
	//空函數
}


void mlmeRxEnableRequest(bool deferPermit, uint32_t rxOnTime, uint32_t rxOnDuration)
{
	//空函數
}
void mlmeRxEnableConfirm(MAC_ENUM status)
{
	//空函數
}

void mlmeSyncLossIndication(MAC_ENUM lossReason)
{
	//三種原因導致MAC層發送該原語通知高層。
	//可通過post一個高層任務。高層對丟失同步可能要重新做出處理。
	//空函數,高層實現
	NODE_INFO dst;
	//printf("\n--- a PAN ID conlict ----\n");
	if(IS_COORDINATOR)
	{
	//可能需要重新設置一下mac層網絡參數
	coordinator_realignment_frame_send(0, dst, default_short_addr);
	mac_current_state=MAC_STATE_IDLE;
	}
	else
	{
	   if(lossReason==BEACON_LOSS)
	   	//網絡重啟動
	   	mac_current_state=MAC_STATE_UNSTARTED;
	      //或者
	      //mac_current_state=MAC_STATE_ENERGY_SCAN_FINISHED;
	}
}


void mcpsDataConfirm(MAC_ENUM status, BYTE msduHandle)
{
	//作為MAC層對mcpsdatarequest的一個響應,通知高層
	//空函數,高層實現
	printf("\n----sensor data is sent successfull-----\n");
	
	mac_current_state=MAC_STATE_START_TO_SLEEP;
	
}

void mcpsDataIndication(MCPS_DATA_INDICATION mcps_data_indication_info)
{
	//MAC接收到一個數據幀后,通知高層,可post一個高層任務
	//空函數,高層實現
	printf("\n-----success received the sensor data-------\n");
	
	if(IS_COORDINATOR)
	sensor_data_tx_to_pc(mcps_data_indication_info);
}



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
97精品国产97久久久久久久久久久久 | 国产凹凸在线观看一区二区| 秋霞国产午夜精品免费视频| 精品制服美女丁香| 97aⅴ精品视频一二三区| 欧美日韩成人一区| 欧美精品一区二区久久久| 亚洲男人天堂一区| 精品一区二区三区久久| 色婷婷久久久久swag精品 | 久久机这里只有精品| 国产91丝袜在线播放九色| 色哟哟国产精品| 久久免费电影网| 亚洲成人av一区二区三区| 国产成人av电影在线| 欧美精品欧美精品系列| 成人欧美一区二区三区白人 | 欧美国产一区在线| 日韩avvvv在线播放| 99精品在线免费| 日韩精品资源二区在线| 悠悠色在线精品| 国产91精品在线观看| 日韩一区二区麻豆国产| 亚洲与欧洲av电影| av在线播放一区二区三区| 欧美精品一区二区三区很污很色的 | 日韩欧美国产小视频| 伊人婷婷欧美激情| 99久精品国产| 国产精品午夜久久| 国产一区二区三区日韩| 精品视频1区2区3区| 亚洲欧美国产高清| 一本到高清视频免费精品| 国产精品福利影院| 成人黄色国产精品网站大全在线免费观看 | 国产一区二区成人久久免费影院| 欧美色男人天堂| 国产精品美女一区二区在线观看| 狠狠色丁香婷婷综合| 欧美电影免费观看高清完整版| 五月天国产精品| 欧美精品少妇一区二区三区| 亚洲激情图片小说视频| 91丝袜高跟美女视频| 最新日韩在线视频| 99精品一区二区三区| 国产精品女主播av| 波多野洁衣一区| 国产精品全国免费观看高清| 波多野结衣中文字幕一区| **欧美大码日韩| 日本道精品一区二区三区| 亚洲欧美日本韩国| 欧美日韩精品欧美日韩精品一综合| 亚洲久草在线视频| 欧美色精品天天在线观看视频| 亚洲综合网站在线观看| 欧美伦理影视网| 免费在线观看一区二区三区| 日韩欧美精品在线视频| 国产福利一区在线| 国产精品女人毛片| 成人性生交大片免费| 中文字幕一区免费在线观看 | 麻豆中文一区二区| 日韩欧美国产麻豆| 国产成人精品1024| 亚洲视频电影在线| 精品视频123区在线观看| 精品一区在线看| 国产精品麻豆视频| 欧美日韩第一区日日骚| 成人亚洲一区二区一| 奇米888四色在线精品| 国产精品午夜在线观看| 日韩一区国产二区欧美三区| 91免费看`日韩一区二区| 麻豆国产一区二区| 亚洲成人动漫在线免费观看| 国产精品亲子乱子伦xxxx裸| 91精品国产综合久久香蕉麻豆 | 国产ts人妖一区二区| 天堂成人国产精品一区| 自拍偷拍国产精品| 国产日韩欧美一区二区三区综合| 欧美精品亚洲一区二区在线播放| 99精品视频在线播放观看| 久久精品99国产国产精| 日韩va欧美va亚洲va久久| 国产精品国产精品国产专区不蜜 | 538在线一区二区精品国产| 99re成人在线| 国产成a人无v码亚洲福利| 精品中文字幕一区二区| 日韩国产一二三区| 午夜精品久久久久久久久久| 亚洲黄色尤物视频| 自拍偷在线精品自拍偷无码专区| 欧美国产日韩一二三区| 国产日韩av一区二区| 久久免费视频色| 2023国产精华国产精品| 久久综合久久综合亚洲| 久久综合久久综合九色| 日韩欧美国产午夜精品| 日韩精品一区二| 久久亚洲影视婷婷| 久久久天堂av| 国产亚洲欧洲997久久综合| 精品国产精品网麻豆系列| 日韩欧美自拍偷拍| 精品va天堂亚洲国产| 久久综合国产精品| 欧美激情艳妇裸体舞| 亚洲国产成人在线| 日韩一区中文字幕| 亚洲综合在线电影| 亚洲va欧美va人人爽| 婷婷夜色潮精品综合在线| 日本强好片久久久久久aaa| 偷偷要91色婷婷| 黄一区二区三区| 国产91丝袜在线播放| 色综合中文字幕国产 | 亚洲欧美中日韩| 一区二区三区.www| 五月天婷婷综合| 国产一区二区在线观看视频| 高清日韩电视剧大全免费| 色综合天天视频在线观看| 欧美日韩在线一区二区| 日韩欧美国产精品| 欧美经典三级视频一区二区三区| 国产精品福利影院| 亚洲gay无套男同| 激情文学综合网| av不卡免费电影| 欧美日韩你懂得| 久久久精品蜜桃| 一区二区在线电影| 免费成人av资源网| 成人高清视频在线| 欧美日韩国产bt| 国产欧美综合在线| 亚洲第一综合色| 久久精品99久久久| 91在线观看下载| 欧美一级二级在线观看| 国产精品国产a| 美女一区二区三区| 不卡一区二区中文字幕| 在线播放欧美女士性生活| 中国色在线观看另类| 免费三级欧美电影| www.欧美.com| 日韩一区二区在线观看视频 | 91天堂素人约啪| 欧美一区二区网站| 亚洲天堂精品在线观看| 精品中文字幕一区二区| 欧美午夜精品久久久| 欧美国产97人人爽人人喊| 香港成人在线视频| 91一区二区三区在线播放| 日韩欧美国产三级电影视频| 亚洲一级在线观看| 成人av综合在线| 久久这里都是精品| 日本aⅴ免费视频一区二区三区 | 18欧美亚洲精品| 狠狠v欧美v日韩v亚洲ⅴ| 欧美人xxxx| 亚洲精品福利视频网站| 国产精品一区二区果冻传媒| 欧美一级免费观看| 亚洲高清视频在线| 91网站黄www| ●精品国产综合乱码久久久久| 国产最新精品精品你懂的| 7777精品伊人久久久大香线蕉的| 中文字幕国产一区| 丰满少妇在线播放bd日韩电影| 欧美va亚洲va香蕉在线| 日本一区中文字幕| 欧美精品日韩精品| 午夜久久久久久久久| 欧洲一区二区三区在线| 亚洲人吸女人奶水| 色激情天天射综合网| 亚洲乱码国产乱码精品精小说| 成人av资源在线| 中文字幕一区二区三区乱码在线| 国产不卡视频一区二区三区| 欧美激情在线一区二区| 成人免费高清在线| 亚洲女人小视频在线观看| 欧美性猛交xxxxxxxx|