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

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

?? mac.h

?? 協(xié)調器的執(zhí)行程序
?? H
?? 第 1 頁 / 共 3 頁
字號:
    WORD panId;
    UINT8 srcAddrMode;
    ADDRESS srcAddr;
    UINT8 dstAddrMode;
    ADDRESS dstAddr;
    MAC_ENUM status;
} MLME_COMM_STATUS_INDICATION;


typedef struct{
	LONG_ADDR  Deviceaddr;
	Node_Capability  cap_info;
	bool              security_use;
	uint8_t          aclentry;
}MLME_ASSOCIATE_INDICATION;

//做掃描時候容忍最多保存記錄多少個PAN 描述符和 信道ED值,與實現(xiàn)相關的參數(shù),可由自己確定
#define  MAC_MAX_PAN_DESCRIPTORS     5
#define  MAC_MAX_ED_MEASUREMENT      16

typedef struct {
    BYTE status;
    BYTE scanType;
    DWORD unscannedChannels;
    UINT8 resultListSize;
    union 
		{
    int8_t pEnergyDetectList[MAC_MAX_ED_MEASUREMENT];
    PAN_DESCRIPTOR pPANDescriptorList[MAC_MAX_PAN_DESCRIPTORS];
    };
} MLME_SCAN_CONFIRM;



//--------------------------------------------------//
//---------下面為Zigbee中MAC層原語的函數(shù)聲明--------//
//--------------------------------------------------//

//原語函數(shù)聲明
//對于某些比較簡單的只返回狀態(tài)成功與否的confirm原語,可以放在request原語的返回值里面返回。
//對于GTS,zigbee協(xié)議里面沒有使用,故本版本的協(xié)議實現(xiàn)沒有實現(xiàn)GTS相關的原語。
//----------------------------------------------------------------------------------------------------------
// MCPS and MLME prototypes (ordered alphabetically)
void mcpsDataRequest(NODE_INFO dst, NODE_INFO src,UINT8 msduLength, BYTE *pMsdu, BYTE msduHandle, BYTE txOptions);
void mcpsDataConfirm(MAC_ENUM status, BYTE msduHandle);

//參數(shù)作為一個全局的數(shù)據(jù)結構體來訪問
void mcpsDataIndication(MCPS_DATA_INDICATION  mcps_data_indication_info);

//沒有實現(xiàn)該原語
MAC_ENUM mcpsPurgeRequest(BYTE msduHandle);

void mlmeAssociateRequest(UINT8 logicalChannel, BYTE coordAddrMode, SHORT_ADDR coordPANId, ADDRESS pCoordAddress, Node_Capability capabilityInformation, bool securityEnable);

//void mlmeAssociateRequest(UINT8 logicalChannel, BYTE coordAddrMode, WORD coordPANId, ADDRESS *pCoordAddress, Node_Capability capabilityInformation, bool securityEnable);
void mlmeAssociateIndication(MLME_ASSOCIATE_INDICATION   mlme_associate_indication_info);
void mlmeAssociateResponse(LONG_ADDR deviceAddress, SHORT_ADDR assocShortAddress, BYTE status, bool securityEnable);
void mlmeAssociateConfirm(SHORT_ADDR AssocShortAddress, BYTE status);

//參數(shù)作為一個全局的數(shù)據(jù)結構體來訪問
void mlmeBeaconNotifyIndication(MLME_BEACON_NOTIFY_INDICATION  beacon_payload_info);

void mlmeCommStatusIndication(WORD panId, BYTE srcAddrMode, ADDRESS *pSrcAddr, BYTE dstAddrMode, ADDRESS *pDstAddr, BYTE status);

void mlmeDisassociateRequest(LONG_ADDR pDeviceAddress, BYTE disassociateReason, bool securityEnable);
void mlmeDisassociateIndication(LONG_ADDR deviceAddress, BYTE disassociateReason, bool securityUse, BYTE aclEntry);
void mlmeDisassociateConfirm(MAC_ENUM status);

MAC_ENUM mlmeGetRequest(MAC_PIB_ATTR pibAttribute, void *pPibAttributeValue);

void mlmeOrphanIndication(LONG_ADDR orphanAddress, bool securityUse, BYTE aclEntry);
void mlmeOrphanResponse(LONG_ADDR orphanAddress, SHORT_ADDR shortAddress, bool associatedMember, bool securityEnable);

//本代碼不實現(xiàn)這兩個原語
void mlmePollRequest(BYTE coordAddrMode, WORD coordPANId, ADDRESS *coordAddress, bool securityEnable);
void mlmePollConfirm(MAC_ENUM status);

MAC_ENUM mlmeResetRequest(bool setDefaultPIB);


//本版本代碼不實現(xiàn)下面兩個原語
void mlmeRxEnableRequest(bool deferPermit, uint32_t  rxOnTime, uint32_t rxOnDuration);
void mlmeRxEnableConfirm(MAC_ENUM status);

MAC_ENUM mlmeScanRequest(BYTE scanType, DWORD scanChannels, UINT8 scanDuration);
//沒有必要定義mlmescanconfirm函數(shù),scan request得到的結果:
//狀態(tài)由scan request返回,其他的結果由全局結構MLME_SCAN_CONFIRM返回;
void mlmeScanConfirm(MLME_SCAN_CONFIRM  scan_result_info);

MAC_ENUM mlmeSetRequest(MAC_PIB_ATTR pibAttribute, void *pPibAttributeValue);

//void mlmeStartRequest(SHORT_ADDR  panId, UINT8 logicalChannel, UINT8 beaconOrder, UINT8 superframeOrder, bool panCoordinator, bool batteryLifeExtension, bool coordRealignment, bool securityEnable, QWORD StartTime);
void mlmeStartRequest(SHORT_ADDR panId, uint8_t  logicalChannel, uint8_t beaconOrder, uint8_t superframeOrder, bool panCoordinator, bool batteryLifeExtension, bool coordRealignment, bool securityEnable , WORD StartTime);

void mlmeStartConfirm(void);

void mlmeSyncRequest(UINT8 logicalChannel, bool trackBeacon);

void mlmeSyncLossIndication(MAC_ENUM lossReason);




//--------------------------------------------------//
//----下面為Zigbee中MAC層內部需要的一些數(shù)據(jù)結構-----//
//--------------------------------------------------//


//射頻發(fā)送buffer。已經打包好,準備向物理層發(fā)送的MAC幀,
//由于信標幀具有最高的發(fā)送優(yōu)先級,故本隊列里面不包括信標幀
//采用間接通信方式的幀由于在收到
typedef struct _TX_BUFFER
{
	//隊列中該結構元素是否可用,如果發(fā)送完一個不需要ack的幀
	//或者發(fā)送一個需要ack的幀,并且已經收到ack幀,則發(fā)送完成后可以置IsValid為無效。
	bool IsNeedAcked;
	//區(qū)分各個幀的句柄
  BYTE FrameHandle;
  //是否發(fā)送過,表明該幀在等待ack中
  bool IsTxed;
  //該幀序列號,在處理應答幀的時候有用。
  BYTE FrameSeq; 
  //該幀已經發(fā)送過的次數(shù),初始化為aMaxFrameRetries,每發(fā)送一次,減1。為0時候,不需要發(fā)送,直接向上層報告出錯。
  BYTE FrameRetriesCounter;
  //發(fā)送的MAC幀長度
  BYTE frameLength;
  //命令幀類型字段
  BYTE  cmd_type;
  //待發(fā)送的幀負載
  BYTE * payload;
  struct _TX_BUFFER   *next;
} TX_BUFFER;

//初始化發(fā)送隊列函數(shù)聲明,將IsValid置為無效,payload指針置為空.
void initial_tx_queue(void);

//射頻發(fā)送隊列的操作函數(shù)聲明,尋找發(fā)送buffer中的一個空位置,如果沒有,則返回發(fā)送忙,把須發(fā)送的包放到隊列中
TX_BUFFER * add_tx_queue(BYTE framelength, BYTE * payload, BYTE framehandle, bool is_ack, BYTE frameseq,BYTE cmd_type);

//射頻發(fā)送隊列的刪除一個元素函數(shù)聲明。對于需要應答的幀,在收到對應的ack后,即可從隊列中刪除,釋放payload域,置isvalid為無效。
//如果為一個不需要應答的幀,則發(fā)送完成收到正確的confirm后即可直接刪除掉
void remove_tx_queue(BYTE frameseq);

TX_BUFFER * get_frame_pointer(BYTE frameseq);

//下面的結構用于發(fā)送任務的參數(shù)傳遞作用
#define   MAX_TX_BUFFER_SIZE    5
typedef struct _parameter_tx_task
{
     TX_BUFFER * parameter_tx_task[MAX_TX_BUFFER_SIZE];
     uint8_t top;
     uint8_t tail;
}parameter_tx_task;


/*
//
//標志用于存儲發(fā)送時候需要的信息,不用再到MAC幀里面去查找
typedef struct _MAC_FRAME_FLAG
{
	BYTE IsValid     :1;   //表示該幀是否處理完畢,那么該存儲空間可以重新放入一個新的待發(fā)送的幀
	BYTE IsAcked     :1;   //
} MAC_FRAME_FLAG;
*/
//pending transaction隊列,協(xié)調者用于存儲采用間接通信的數(shù)據(jù)或命令幀
//注意:pending隊列里面的幀,在發(fā)送時,還需要打包進入TX_BUFFERS隊列,然后才能發(fā)送。在pending隊列時候還沒有分配幀序列號
typedef struct _INDIRECDT_TX_PENDING_QUEUE
{
	//該元素是否有效,在將該元素添加到發(fā)送隊列中去以后,可以置該域為無效。同時置pending_payload指針為空
	bool IsValid;
	//可以表明該間接通信的幀已經經歷過多少個超幀,如果計數(shù)到零,則需要通過原語向上層報告超時。
	//對于數(shù)據(jù)幀或協(xié)調者發(fā)給設備的disassociation notification幀,可以采用相應的confirm原語向高層報告
	//對于association response幀,采用comu_status原語向高層報告
	//該值的更新在每次發(fā)送信標幀時候,遞減1,減到0時候,向上層報告,初始值設為macTransactionPersistenceTime
	uint16_t MacTranPersistCounter;
	//用于區(qū)分是哪個幀的句柄
	BYTE FrameHandle;
	//幀控制域,兩字節(jié)
	FRAME_CONTROL framectl_field;
	bool   associate_or_disassociate;
	SHORT_ADDR shortaddralloc;
	union{
	 BYTE associate_status;
	 BYTE disassociation_reason;
		};
	union{
	 LONG_ADDR associate_device_addr;
	 LONG_ADDR end_device_addr;
		};
	//目標地址和源地址信息,包括PANID
	NODE_INFO  dst;
	NODE_INFO  src;
	//pending幀的長度                
	BYTE frameLength;
	//該幀的負載域
	BYTE * high_level_payload;

	struct _INDIRECDT_TX_PENDING_QUEUE  *next;
	//?????需要擴展?         
} INDIRECT_TX_PENDING_QUEUE;

//操作函數(shù)聲明

//pending隊列的初始化函數(shù)
void initial_pending_queue(void);

//添加一個數(shù)據(jù)包到pending隊列中,如果隊列滿,需要采用對應的原語通知高層。
void add_pending_queue(BYTE framehandle, FRAME_CONTROL framectl, NODE_INFO dst, NODE_INFO src, BYTE framelength, BYTE *payload,BYTE associate_status_or_disassociate_reason,bool associate_or_disassociate,LONG_ADDR addr,SHORT_ADDR shortaddralloc);

//從pending隊列中刪除一個元素
void remove_pending_queue(INDIRECT_TX_PENDING_QUEUE  *current);
INDIRECT_TX_PENDING_QUEUE * get_pending_frame(NODE_INFO dst);

bool  Is_data_pending(NODE_INFO dst);





void transmit_with_csmaca(void);
uint32_t direct_transmit(uint8_t psdulength,uint8_t * psdu);






//MAC層在收到一個幀后如何處理該幀的函數(shù)(或任務)
void mac_frame_rcvd(void);




//定時器中斷服務程序post的一個任務
void mac_timer_task(void);

uint16_t mac_timer3queue_getnextinterval(void);


//物理信道狀態(tài)
//物理層將根據(jù)該狀態(tài)進行接收的幀的預過濾,減輕高層負擔


typedef enum  {

	PHY_IDLE=0,
       DOINGCSMA_CA,
       TRANSMITTING_FRAME,
       WAITING_FOR_ACK,
       WAITING_FOR_BEACON,
       INACTIVE_PERIOD
  
}PHY_CHANNEL_STATE ;
PHY_CHANNEL_STATE phy_channel_state;


#define    MAX_RX_BUFFER_SIZE    3
typedef  struct _RX_BUFFER
{
     BYTE    framelength;
     BYTE    * payload;
     BYTE     lqi;
     uint32_t  timestamp;
     struct  _RX_BUFFER  *next;
}RX_BUFFER;

RX_BUFFER * add_to_rx_buffer(BYTE framelength, BYTE *payload,BYTE lqi,uint32_t timestamp);
void  remove_from_rx_buffer(RX_BUFFER  * framepointer);


//該任務負責是從物理層取一個幀并進行解析
void  mac_get_received_frame(void);


//void beacon_received(void);



void data_request_frame_send(void);

void pending_data_send(NODE_INFO dst);

void  data_frame_send(BYTE * nwkpayload, BYTE nwkpayloadlength, NODE_INFO dst,NODE_INFO src,BYTE frameHandle);

void  associate_request_frame_send(SHORT_ADDR panid,NODE_INFO dst, Node_Capability node_capinfo);



void disassociate_notification_frame_send(BYTE disassociation_reason,LONG_ADDR end_device_addr);

void panid_confilct_frame_send(void);

void orphan_notification_frame_send(void);


void beacon_request_frame_send(void);

//#ifdef I_AM_COORDINATOR
void coordinator_realignment_frame_send(bool Isunicast,  NODE_INFO  dst, SHORT_ADDR allocated_addr);

void associate_response_frame_send(SHORT_ADDR coor_short_addr, BYTE associate_status,LONG_ADDR associate_device_addr,SHORT_ADDR shortaddralloc);

void  beacon_frame_send(bool short_or_long);


void mac_frame_send(void);
void pending_frame_handle(void);
//endif
void beacon_frame_tx_timing(void);
void mlmesyn_finished(void);
void  synrequest_task(void);

uint8_t  random_generate(void);
//uint8_t wait_for_backoff_boundary(void);
uint8_t  do_backoff(void);
uint8_t  csma_initial(void);
void  failure_to_tx_with_csma(void);
void CSMA_CA_DOING(void);
void scan_task(void);
#endif



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女视频一区二区| 亚洲国产精品久久久久秋霞影院 | 国产午夜精品理论片a级大结局| 日韩av电影天堂| 欧美一区二区三区在线视频| 久久国内精品视频| 精品国产三级a在线观看| 大美女一区二区三区| 综合久久一区二区三区| 欧美三区在线观看| 日韩精品乱码av一区二区| 精品sm在线观看| 成人免费视频一区二区| 亚洲乱码精品一二三四区日韩在线 | 国产白丝精品91爽爽久久| 中文字幕av一区二区三区免费看| 99久久精品国产精品久久| 亚洲国产成人va在线观看天堂| 3d成人动漫网站| 国产精品一区二区三区乱码| ...xxx性欧美| 欧美一级日韩免费不卡| 国产成人免费在线观看| 亚洲主播在线播放| 久久先锋资源网| 在线免费不卡视频| 久久精品国产一区二区| 亚洲美女淫视频| 欧美一区二区三区人| 国产91丝袜在线观看| 亚洲一区二区视频| 久久久久国产精品麻豆| 欧美日韩极品在线观看一区| 国产一区二区三区精品欧美日韩一区二区三区 | 日韩毛片视频在线看| 9191久久久久久久久久久| 成人短视频下载 | 午夜精品久久久久久久久| 精品美女在线播放| 在线观看网站黄不卡| 国产一区二区h| 香蕉成人伊视频在线观看| 亚洲国产精品99久久久久久久久| 欧美福利一区二区| 99精品视频在线观看| 韩国精品在线观看| 洋洋成人永久网站入口| 国产视频一区在线观看| 欧美一区二区私人影院日本| 99久久婷婷国产精品综合| 久久国产精品免费| 午夜一区二区三区在线观看| 日韩美女精品在线| 国产午夜亚洲精品理论片色戒| 制服丝袜日韩国产| 在线一区二区视频| 成人精品gif动图一区| 国产美女视频91| 蜜乳av一区二区| 亚洲电影一级片| 艳妇臀荡乳欲伦亚洲一区| 国产精品第一页第二页第三页| 久久久久青草大香线综合精品| 日韩一区二区三区av| 欧美日韩卡一卡二| 色8久久精品久久久久久蜜| a级高清视频欧美日韩| 床上的激情91.| 高清不卡在线观看av| 国产乱对白刺激视频不卡| 国产一区二区三区四区五区美女 | 成人性色生活片| 国产乱人伦偷精品视频不卡| 久久精品国产网站| 六月丁香综合在线视频| 日韩不卡一区二区三区| 日本三级亚洲精品| 日韩黄色在线观看| 青青草原综合久久大伊人精品| 视频一区在线视频| 日韩和的一区二区| 日本欧美肥老太交大片| 日本一不卡视频| 理论片日本一区| 国产精品一级黄| 成人午夜视频在线| 99国产精品国产精品毛片| 91色乱码一区二区三区| 色婷婷av一区二区| 欧美日韩国产高清一区| 日韩一级精品视频在线观看| xfplay精品久久| 国产精品美女久久久久久久| 亚洲另类在线一区| 亚洲一区二区三区在线| 日本伊人午夜精品| 国产麻豆一精品一av一免费| 成人99免费视频| 欧美羞羞免费网站| 69久久99精品久久久久婷婷| 精品国产乱码久久久久久图片 | 一区二区三区欧美激情| 性感美女久久精品| 美女视频黄久久| 不卡视频一二三四| 91成人在线精品| 日韩一区二区三区四区五区六区| 久久久国际精品| 亚洲免费视频中文字幕| 肉色丝袜一区二区| 国产高清在线观看免费不卡| 色天使色偷偷av一区二区| 91麻豆精品国产91久久久久| 久久精品亚洲麻豆av一区二区 | 日韩限制级电影在线观看| 精品乱人伦小说| 日韩美女视频一区| 久久国产婷婷国产香蕉| 不卡在线观看av| 日韩欧美精品在线视频| 亚洲免费观看高清完整版在线观看熊| 日本在线不卡视频一二三区| 风间由美性色一区二区三区| 欧美精品1区2区| 国产精品久久久久影院亚瑟| 免费高清不卡av| 99精品视频一区二区三区| 51精品国自产在线| 国产精品剧情在线亚洲| 免费成人在线观看视频| 日本韩国精品在线| 久久精品视频免费| 日本成人在线一区| 91麻豆国产精品久久| 久久久五月婷婷| 日日欢夜夜爽一区| 日本韩国一区二区三区视频| 久久亚洲影视婷婷| 婷婷综合久久一区二区三区| 91伊人久久大香线蕉| 久久久久国产一区二区三区四区| 天堂在线亚洲视频| 一本色道久久加勒比精品 | 日韩欧美第一区| 一区二区成人在线视频| 岛国av在线一区| 国产视频一区二区在线| 麻豆精品国产传媒mv男同| 欧美三片在线视频观看 | 国产欧美精品一区| 久久国产精品一区二区| 91精品一区二区三区在线观看| 亚洲制服欧美中文字幕中文字幕| 国产成人夜色高潮福利影视| 精品久久人人做人人爰| 青青草国产成人av片免费| 欧美日韩精品欧美日韩精品一| 中文字幕亚洲欧美在线不卡| 丁香五精品蜜臀久久久久99网站 | 国产人成一区二区三区影院| 99久久99久久综合| 国产亚洲成aⅴ人片在线观看| 久久se精品一区二区| 日韩一二三区视频| 日韩精品1区2区3区| 5566中文字幕一区二区电影| 亚洲国产视频一区| 欧美日韩国产一二三| 午夜精品成人在线| 欧美一区二区不卡视频| 美日韩一区二区| 欧美成人精品福利| 精品无人码麻豆乱码1区2区| 欧美精品一区二区久久久| 理论片日本一区| 久久一日本道色综合| 成人免费黄色在线| 亚洲欧美日韩一区| 激情综合一区二区三区| 久久尤物电影视频在线观看| 国产一区二区女| 国产精品国产三级国产| 91丝袜美腿高跟国产极品老师| 亚洲女同女同女同女同女同69| 欧美三级乱人伦电影| 午夜婷婷国产麻豆精品| 日韩一区二区三区电影| 激情成人综合网| 国产欧美视频一区二区| aaa国产一区| 亚洲影院理伦片| 欧美一级午夜免费电影| 国模套图日韩精品一区二区| 国产欧美日韩久久| 99久久久久久| 天堂成人免费av电影一区| 精品国产免费一区二区三区香蕉| 大胆欧美人体老妇| 亚洲观看高清完整版在线观看| 欧美一级夜夜爽|