日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Zigbee 协议栈

發布時間:2024/8/1 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Zigbee 协议栈 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Zigbee 協議棧

  • 平臺
  • 協議棧對我們的作用
  • 怎么使用協議棧
  • 協議棧的安裝、編譯與下載
    • Components (部件)
    • Documents (文件)
    • Projects (項目例子)
    • Tools (工具)
      • App 應用層目錄
      • HAL :硬件層目錄
      • MAC:MAC層目錄
      • MT
      • NWK :網絡層目錄
      • APS層庫的函數接口。
      • OSAL :協議棧的操作系統。
      • Profile : Application framework
      • Security:安全層目錄
      • Services :地址處理函數目錄
      • Tools :工程配置目錄
      • ZDO : ZDO目錄
      • ZMac: MAC層目錄
      • ZMain:主函數目錄
      • Output :輸出文件目錄
  • 協議棧應用開發相關函數
      • OSAL(Operating System Abstraction Layer)
    • int main( void )
      • osal_init_system()
        • osalInitTasks()
      • osal_start_system()
        • osal_run_system();
      • SampleApp_ Init()
      • SampleApp_ ProcessEvent()
      • void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt )
      • void SampleApp_SendPeriodicMessage( void )
      • void SampleApp_SendFlashMessage( uint16 flashTime )
      • AF_DataRequest()

平臺

協議 TI ZStack-CC2530-2.5.1a

協議棧對我們的作用

協議棧是協議的實現,可以理解為代碼,函數庫, 供上層應用調用,協議較底下的層與應用是相互獨立的。商業化的協議棧就是給你寫好了底層的代碼, 符合協議標準,提供給你一個功能模塊給你調用。你需要關心的就是你的應用邏輯,數據從哪里到哪里,怎么存儲,處理;還有系統里的設備之間的通信順序什么的,當你的應用需要數據通信時, 調用組網函數給你組建你想要的網絡;當你想從一個設備發數據到另一個設備時, 調用無線數據發送函數;當然,接收端就調用接收函數;當你的設備沒事干的時候,你就調用睡眠函數;要干活的時候就調用喚醒函數。所以當你做具體應用時,不需要關心協議棧是怎么寫的,里面的每條代碼是什么意思。除非你要做協議研究。每個廠商的協議棧有區別,也就是函數名稱和參數可能有區別,這個要看具體的例子、說明文檔。

怎么使用協議棧

舉個例子,用戶實現-個簡單的無線數據通信時的一 般步驟:
1、組網:調用協議棧的組網函數、加入網絡函數,實現網絡的建立與節點的加入。
2、發送:發送節點調用協議棧的無線數據發送函數,實現無線數據發送。
3、接收:接收節點調用協議棧的無線數據接收函數,實現無線數據接收。
是不是看上去很簡單啊,其實協議棧很多都封裝好了,下面我們大概看看無線發送函數:

afStatus_ t AF_ DataRequest( afAddrType_ t *dstAddr,endPointDesc_ t *srcEP,uint16 cID,uint16 len,uint8 *buf,uint8 *transID,uint8 options,uint8radius )

用戶調用該函數即可實現數據的無線數據的發送,此函數中有8個參數,用戶需要將每個參數的含義理解以后,才能熟練使用該函數進行無線數據通信的目的。現在只講其中最重要的兩個參數,其它參數不需要死記硬背,以后用多了自然就記住了。

uint16 len,//發送數據的長度; uint8 *buf,//指向存放發送數據的緩沖區的指針。

至于調用該函數后,如何初始化硬件進行數據發送等工作,用戶不需要關心, ZigBee協議棧己經將所需要的工作做好了,我們只需要調用相應的API函數即可,而不必關心具體實現細節。看起來是不是很簡單呢,是不是有動手試試的沖動。先別急還要先安裝ZigBee協議棧才能進行開發調試呢,下面就動手安裝ZigBee協議棧吧。

協議棧的安裝、編譯與下載

去TI官網下載 ZStack-CC2530-2.5.1a.exe 進行安裝,路徑你可以選擇默認,同樣你也可以選擇你想要安裝的位置。也許有人就困惑了,裝完之后不是應該有個桌面圖標的么?其實所謂的安裝協議棧只是把一些文件解壓到你安裝的目錄下。

Components (部件)

顧名思義這個是放我們的庫的文件夾,里面放了一些我們用到的ZDO,driver , hal , zcl等庫的代碼

Documents (文件)

這個不用說大家都知道是放TI的開發文檔的,里面很多都是講述協議棧的API的有空時可以看看

Projects (項目例子)

這個文件夾放的是TI協議棧的例子程序,一個個例子程序都是以一個個project的形式給我們的,學好這些例子程序里面的一兩個,基本你能做事情了。

Tools (工具)

這個文件夾是放T|的例子程序的一些上位機之類的程序,作為工具使用。

用IAR打開 \ZStack-2.5.1a\Projects\zstack\Samples\SampleApp\CC2530DB\SampleApp.eww

App 應用層目錄

這是用戶創建各種不同工程的區域,在這個目錄中包含了應用層的內容和這個項目的主要內容。

HAL :硬件層目錄

包含有與硬件相
關的配置和驅動及操作函數。

MAC:MAC層目錄

包含了MAC層的參數配置文件及其MAC的LIB庫的函數接口文件。

MT

實現通過串口可控制各層并與各層進行直接交互

NWK :網絡層目錄

包含網絡層配置參數文件網絡層庫的函數接口文件及

APS層庫的函數接口。

OSAL :協議棧的操作系統。

Profile : Application framework

應用框架層目錄包含AF層處理函數文件。應用框架層是應用程序和APS層的無線數據接口。

Security:安全層目錄

包含安全層處理函數.比如加密函數等

Services :地址處理函數目錄

包括地址模式的定義及地址處理函數。

Tools :工程配置目錄

包括空間劃分及Z-Stack相關配置信息。

ZDO : ZDO目錄

ZMac: MAC層目錄

包括MAC層參數配置及MAC層LB庫函數回調處理函數.

ZMain:主函數目錄

包括入口函數及硬件配置文件。

Output :輸出文件目錄

由IAR IDE自動生成。

協議棧應用開發相關函數

OSAL(Operating System Abstraction Layer)

中文解釋操作系統抽象層。它可以看做是一種機制,一種任務分配資源的機制,從而形成 了一個簡單多任務的操作系統。

int main( void )

在ZMain.c

/********************************************************************** @fn main* @brief First function called after startup.* @return don't care*/ int main( void ) {// Turn off interrupts //關閉所有中斷osal_int_disable( INTS_ALL );// Initialization for board related stuff such as LEDs //初始化系統時鐘HAL_BOARD_INIT();// Make sure supply voltage is high enough to run //檢查芯片電壓是否正常zmain_vdd_check();// Initialize board I/O //初始化IO , LED、Timer 等InitBoard( OB_COLD );// Initialze HAL drivers //初始化芯片各硬件模塊HalDriverInit();// Initialize NV System//初始化Flash存儲器osal_nv_init( NULL );// Initialize the MAC //初始化MAC層ZMacInit();// Determine the extended address //確定IEEE 64位地址zmain_ext_addr();#if defined ZCL_KEY_ESTABLISH// Initialize the Certicom certificate information.zmain_cert_init(); #endif// Initialize basic NV items//初始化非易失變量zgInit();#ifndef NONWK// Since the AF isn't a task, call it's initialization routineafInit(); #endif// Initialize the operating system//初始化操作系統osal_init_system();// Allow interrupts//使能全部中斷osal_int_enable( INTS_ALL );// Final board initialization//最終板載初始化InitBoard( OB_READY );// Display information about this device//顯示設備信息zmain_dev_info();/* Display the device info on the LCD */ #ifdef LCD_SUPPORTEDzmain_lcd_init(); //初始化LCD #endif#ifdef WDT_IN_PM1/* If WDT is used, this is a good place to enable it. */WatchDogEnable( WDTIMX ); #endifosal_start_system(); // No Return from here//執行操作系統return 0; // Shouldn't get here. } // main()

osal_init_system()

右鍵 go to definition of…

/********************************************************************** @fn osal_init_system** @brief** This function initializes the "task" system by creating the* tasks defined in the task table (OSAL_Tasks.h).** @param void** @return SUCCESS*/ uint8 osal_init_system( void ) {// Initialize the Memory Allocation Systemosal_mem_init();// Initialize the message queueosal_qHead = NULL;// Initialize the timersosalTimerInit();// Initialize the Power Management Systemosal_pwrmgr_init();// Initialize the system tasks.osalInitTasks();// Setup efficient search for the first free block of heap.osal_mem_kick();return ( SUCCESS ); }

osalInitTasks()

// The order in this table must be identical to the task initialization calls below in osalInitTask. const pTaskEventHandlerFn tasksArr[] = {macEventLoop,nwk_event_loop,Hal_ProcessEvent, #if defined( MT_TASK )MT_ProcessEvent, #endifAPS_event_loop, #if defined ( ZIGBEE_FRAGMENTATION )APSF_ProcessEvent, #endifZDApp_event_loop, #if defined ( ZIGBEE_FREQ_AGILITY ) || defined ( ZIGBEE_PANID_CONFLICT )ZDNwkMgr_event_loop, #endifSampleApp_ProcessEventa };const uint8 tasksCnt = sizeof( tasksArr ) / sizeof( tasksArr[0] ); uint16 *tasksEvents;/********************************************************************** FUNCTIONS*********************************************************************//********************************************************************** @fn osalInitTasks** @brief This function invokes the initialization function for each task.** @param void** @return none*/ void osalInitTasks( void ) //任務初始化函數在OSAL. SampleApp.c文件中{uint8 taskID = 0;// 分配內存,返回指向緩沖區的指針tasksEvents = (uint16 *)osal_mem_alloc( sizeof( uint16 ) * tasksCnt);// 設置所分配的內存空間單元值為0osal_memset( tasksEvents, 0, (sizeof( uint16 ) * tasksCnt));// 任務優先級由高向低依次排列,高優先級對應taskID 的值反而小macTaskInit( taskID++ ); //macTaskInit(0) ,用戶不需考慮nwk_init( taskID++ ); //nwk_init(1),用戶不需考慮Hal_Init( taskID++ ); //Hal_Init(2) ,用戶需考慮 #if defined( MT_TASK )MT_TaskInit( taskID++ ); #endifAPS_Init( taskID++ ); //APS_Init(3) ,用戶不需考慮 #if defined ( ZIGBEE_FRAGMENTATION )APSF_Init( taskID++ ); #endifZDApp_Init( taskID++ ); //ZDApp_Init(4) ,用戶需考慮 #if defined ( ZIGBEE_FREQ_AGILITY ) || defined ( ZIGBEE_PANID_CONFLICT )ZDNwkMgr_Init( taskID++ ); #endif///************************************關鍵函數//用戶創建的任務SampleApp_Init( taskID ); // SampleApp_Init _Init(5) ,用戶需考慮 ///************************************}

SampleApp_ Init()是我們應用協議棧例程的必要函數,用戶通常在這里初始化自己的
東西。

osal_start_system()

/********************************************************************** @fn osal_start_system** @brief** This function is the main loop function of the task system (if* ZBIT and UBIT are not defined). This Function doesn't return.** @param void** @return none*/ void osal_start_system( void ) { #if !defined ( ZBIT ) && !defined ( UBIT )for(;;) // Forever Loop #endif{osal_run_system();} }

osal_run_system();

/********************************************************************** @fn osal_run_system** @brief** This function will make one pass through the OSAL taskEvents table* and call the task_event_processor() function for the first task that* is found with at least one event pending. If there are no pending* events (all tasks), this function puts the processor into Sleep.** @param void** @return none*/ void osal_run_system( void ) {uint8 idx = 0;osalTimeUpdate(); //掃描哪個事件被觸發了,然后置相應的標志位Hal_ProcessPoll(); //輪詢TIMER與UART/*A do statement executes a statement one or more times, while its test-context expression has a **nonzero** value:dostatementwhile (test); *///得到待處理的最高優先級任務索引1號idxdo {if (tasksEvents[idx]) // Task is highest priority that is ready.{break;}} while (++idx < tasksCnt);if (idx < tasksCnt){uint16 events;halIntState_t intState;HAL_ENTER_CRITICAL_SECTION(intState);// 進入臨界區,保護events = tasksEvents[idx];//提取需要處理的任務中的事件tasksEvents[idx] = 0; // Clear the Events for this task.tasksEvents[idx] = 0; //清除本次任務的事件HAL_EXIT_CRITICAL_SECTION(intState);activeTaskID = idx;events = (tasksArr[idx])( idx, events );//通過指針調用任務處理函數,關鍵activeTaskID = TASK_NO_TASK;HAL_ENTER_CRITICAL_SECTION(intState);tasksEvents[idx] |= events; // Add back unprocessed events to the current task.//保存未處理的事件HAL_EXIT_CRITICAL_SECTION(intState);//退出臨界區} #if defined( POWER_SAVING )else // Complete pass through all task events with no activity?{osal_pwrmgr_powerconserve(); // Put the processor/system into sleep} #endif/* Yield in case cooperative scheduling is being used. */ #if defined (configUSE_PREEMPTION) && (configUSE_PREEMPTION == 0){osal_task_yield();} #endif }

SampleApp_ Init()

用戶應用任務初始化函數

/********************************************************************** @fn SampleApp_Init** @brief Initialization function for the Generic App Task.* This is called during initialization and should contain* any application specific initialization (ie. hardware* initialization/setup, table initialization, power up* notificaiton ... ).** @param task_id - the ID assigned by OSAL. This ID should be* used to send messages and set timers.** @return none*/ void SampleApp_Init( uint8 task_id ) { SampleApp_TaskID = task_id; //osal分配的任務ID隨著用戶添加任務的增多而改變SampleApp_NwkState = DEV_INIT;//設備狀態設定為ZDO層中定義的初始化狀態/*設備狀態設定為ZDO層中定義的初始化狀態初始化應用設備的網絡類型, 設備類型的改變都要產生一個事件一_ZDO_ STATE_ CHANGE ,從字面理解為ZDO狀態發生了改變。所以在設備初始化的時候一定要把它初始化為什么狀態都沒有。那么它就要去檢測整個環境,看是否能重新建立或者加入存在的網絡。但是有一種情況例外,就是當NV_ RESTORE被設置的候( NV_ RESTORE是把信息保存在非易失存儲器中),那么當設備斷電或者某種意外重啟時,由于網絡狀態存儲在非易失存儲器中,那么此時就只需要恢復其網絡狀態,而不需要重新建立或者加入網絡了.這里需要設置NV RESTORE宏定義。*/SampleApp_TransID = 0; //消息發送ID(多消息時有順序之分)// Device hardware initialization can be added here or in main() (Zmain.c).// If the hardware is application specific - add it here.// If the hardware is other parts of the device add it in main().#if defined ( BUILD_ALL_DEVICES )// The "Demo" target is setup to have BUILD_ALL_DEVICES and HOLD_AUTO_START// We are looking at a jumper (defined in SampleAppHw.c) to be jumpered// together - if they are - we will start up a coordinator. Otherwise,// the device will start as a router.if ( readCoordinatorJumper() )zgDeviceLogicalType = ZG_DEVICETYPE_COORDINATOR;elsezgDeviceLogicalType = ZG_DEVICETYPE_ROUTER; #endif // BUILD_ALL_DEVICES//該段的意思是,如果設置了HOLD_AUTO_START宏定義,將會在啟動芯片的時候會暫停啟動 //流程,只有外部觸發以后才會啟動芯片。其實就是需要一個按鈕觸發它的啟動流程。 #if defined ( HOLD_AUTO_START )// HOLD_AUTO_START is a compile option that will surpress ZDApp// from starting the device and wait for the application to// start the device.ZDOInitDevice(0); #endif// Setup for the periodic message's destination address 設置發送數據的方式和目的地址尋址模式// Broadcast to everyone 發送模式:廣播發送SampleApp_Periodic_DstAddr.addrMode = (afAddrMode_t)AddrBroadcast;//廣播SampleApp_Periodic_DstAddr.endPoint = SAMPLEAPP_ENDPOINT; //指定端點號SampleApp_Periodic_DstAddr.addr.shortAddr = 0xFFFF;//指定目的網絡地址為廣播地址// Setup for the flash command's destination address - Group 1 組播發送SampleApp_Flash_DstAddr.addrMode = (afAddrMode_t)afAddrGroup; //組尋址SampleApp_Flash_DstAddr.endPoint = SAMPLEAPP_ENDPOINT; //指定端點號SampleApp_Flash_DstAddr.addr.shortAddr = SAMPLEAPP_FLASH_GROUP;//組號0x0001// Fill out the endpoint description. 定義本設備用來通信的APS層端點描述符SampleApp_epDesc.endPoint = SAMPLEAPP_ENDPOINT; //指定端點號SampleApp_epDesc.task_id = &SampleApp_TaskID; //SampleApp 描述符的任務IDSampleApp_epDesc.simpleDesc= (SimpleDescriptionFormat_t *)&SampleApp_SimpleDesc;//SampleApp簡單描述符SampleApp_epDesc.latencyReq = noLatencyReqs; //延時策略 /*向AF層登記描述符,登記endpoint description 到AF,要對該應用進行初始化并在AF //進行登記,告訴應用層有這么一個EP已經開通可以使用,那么下層要是有關于該應用的信 //息或者應用要對下層做哪些操作,就自動得到下層的配合*/// Register the endpoint description with the AFafRegister( &SampleApp_epDesc ); //向AF層登記描述符// Register for all key events - This app will handle all key eventsRegisterForKeys( SampleApp_TaskID ); // 登記所有的按鍵事件// By default, all devices start out in Group 1SampleApp_Group.ID = 0x0001;//組號osal_memcpy( SampleApp_Group.name, "Group 1", 7 );//設定組名aps_AddGroup( SAMPLEAPP_ENDPOINT, &SampleApp_Group );//把該組登記添加到APS中#if defined ( LCD_SUPPORTED )HalLcdWriteString( "SampleApp", HAL_LCD_LINE_1 ); //如果支持LCD,顯示提示信息 #endif }

SampleApp_ ProcessEvent()

用戶應用任務的事件處理函數

/********************************************************************** @fn SampleApp_ProcessEvent** @brief Generic Application Task event processor. This function* is called to process all events for the task. Events* include timers, messages and any other user defined events.** @param task_id - The OSAL assigned task ID.* @param events - events to process. This is a bit map and can* contain more than one event.** @return none*/ //用戶應用任務的事件處理函數 uint16 SampleApp_ProcessEvent( uint8 task_id, uint16 events ) {afIncomingMSGPacket_t *MSGpkt;(void)task_id; // Intentionally unreferenced parameterif ( events & SYS_EVENT_MSG ) //接收系統消息再進行判斷{//接收屬于本應用任務SampleApp的消息,以SampleApp_TaskID標記MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SampleApp_TaskID );while ( MSGpkt ){switch ( MSGpkt->hdr.event ){// Received when a key is pressedcase KEY_CHANGE://按鍵事件SampleApp_HandleKeys( ((keyChange_t *)MSGpkt)->state, ((keyChange_t *)MSGpkt)->keys );break;// Received when a messages is received (OTA) for this endpointcase AF_INCOMING_MSG_CMD://接收數據事件,調用函數AF_DataRequest()接收數據SampleApp_MessageMSGCB( MSGpkt );//調用回調函數對收到的數據進行處理break;// Received whenever the device changes state in the networkcase ZDO_STATE_CHANGE://只要網絡狀態發生改變,就通過ZDO_STATE_CHANGE事件通知所有的任務。//同時完成對協調器,路由器,終端的設置SampleApp_NwkState = (devStates_t)(MSGpkt->hdr.status);//if ( (SampleApp_NwkState == DEV_ZB_COORD)//實驗中協調器只接收數據所以取消發送事件if ( (SampleApp_NwkState == DEV_ROUTER) || (SampleApp_NwkState == DEV_END_DEVICE) ){// Start sending the periodic message in a regular interval.//這個定時器只是為發送周期信息開啟的,設備啟動初始化后從這里開始//觸發第一個周期信息的發送,然后周而復始下去osal_start_timerEx( SampleApp_TaskID,SAMPLEAPP_SEND_PERIODIC_MSG_EVT,SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT );}else{// Device is no longer in the network}break;default:break;}// Release the memory 事件處理完了,釋放消息占用的內存osal_msg_deallocate( (uint8 *)MSGpkt );// Next - if one is available 指針指向下一個放在緩沖區的待處理的事件,//返回while ( MSGpkt )重新處理事件,直到緩沖區沒有等待處理事件為止MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SampleApp_TaskID );}// return unprocessed events 返回未處理的事件return (events ^ SYS_EVENT_MSG);} /********************************************************************** @fn SampleApp_ProcessEvent** @brief Generic Application Task event processor. This function* is called to process all events for the task. Events* include timers, messages and any other user defined events.** @param task_id - The OSAL assigned task ID.* @param events - events to process. This is a bit map and can* contain more than one event.** @return none*/ //用戶應用任務的事件處理函數 uint16 SampleApp_ProcessEvent( uint8 task_id, uint16 events ) {afIncomingMSGPacket_t *MSGpkt;(void)task_id; // Intentionally unreferenced parameterif ( events & SYS_EVENT_MSG ) //接收系統消息再進行判斷{//接收屬于本應用任務SampleApp的消息,以SampleApp_TaskID標記MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SampleApp_TaskID );while ( MSGpkt ){switch ( MSGpkt->hdr.event ){// Received when a key is pressedcase KEY_CHANGE://按鍵事件SampleApp_HandleKeys( ((keyChange_t *)MSGpkt)->state, ((keyChange_t *)MSGpkt)->keys );break;// Received when a messages is received (OTA) for this endpointcase AF_INCOMING_MSG_CMD://接收數據事件,調用函數AF_DataRequest()接收數據SampleApp_MessageMSGCB( MSGpkt );//調用回調函數對收到的數據進行處理break;// Received whenever the device changes state in the networkcase ZDO_STATE_CHANGE://只要網絡狀態發生改變,就通過ZDO_STATE_CHANGE事件通知所有的任務。//同時完成對協調器,路由器,終端的設置SampleApp_NwkState = (devStates_t)(MSGpkt->hdr.status);//if ( (SampleApp_NwkState == DEV_ZB_COORD)//實驗中協調器只接收數據所以取消發送事件if ( (SampleApp_NwkState == DEV_ROUTER) || (SampleApp_NwkState == DEV_END_DEVICE) ){// Start sending the periodic message in a regular interval.//這個定時器只是為發送周期信息開啟的,設備啟動初始化后從這里開始//觸發第一個周期信息的發送,然后周而復始下去osal_start_timerEx( SampleApp_TaskID,SAMPLEAPP_SEND_PERIODIC_MSG_EVT,SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT );}else{// Device is no longer in the network}break;default:break;}// Release the memory 事件處理完了,釋放消息占用的內存osal_msg_deallocate( (uint8 *)MSGpkt );// Next - if one is available 指針指向下一個放在緩沖區的待處理的事件,//返回while ( MSGpkt )重新處理事件,直到緩沖區沒有等待處理事件為止MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SampleApp_TaskID );}// return unprocessed events 返回未處理的事件return (events ^ SYS_EVENT_MSG);}

void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt )

/********************************************************************** LOCAL FUNCTIONS*//********************************************************************** @fn SampleApp_MessageMSGCB** @brief Data message processor callback. This function processes* any incoming data - probably from other devices. So, based* on cluster ID, perform the intended action.** @param none** @return none*/ //接收數據,參數為接收到的數據 void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt ) {uint16 flashTime;byte buf[3]; switch ( pkt->clusterId ) //判斷簇ID{case SAMPLEAPP_PERIODIC_CLUSTERID: //收到廣播數據osal_memset(buf, 0 , 3);osal_memcpy(buf, pkt->cmd.Data, 2); //復制數據到緩沖區中if(buf[0]=='D' && buf[1]=='1') //判斷收到的數據是否為"D1" {HalLedBlink(HAL_LED_1, 0, 50, 500);//如果是則Led1間隔500ms閃爍 #if defined(ZDO_COORDINATOR) //協調器收到"D1"后,返回"D1"給終端,讓終端Led1也閃爍SampleApp_SendPeriodicMessage(); #endif}else{HalLedSet(HAL_LED_1, HAL_LED_MODE_ON); }break;case SAMPLEAPP_FLASH_CLUSTERID: //收到組播數據flashTime = BUILD_UINT16(pkt->cmd.Data[1], pkt->cmd.Data[2] );HalLedBlink( HAL_LED_4, 4, 50, (flashTime / 4) );break;} }

void SampleApp_SendPeriodicMessage( void )

分析發送周期信息

void SampleApp_SendPeriodicMessage( void ) {byte SendData[3]="D1";// 調用AF_DataRequest將數據無線廣播出去if( AF_DataRequest( &SampleApp_Periodic_DstAddr,//發送目的地址+端點地址和傳送模式&SampleApp_epDesc,//源(答復或確認)終端的描述(比如操作系統中任務ID等)源EPSAMPLEAPP_PERIODIC_CLUSTERID, //被Profile指定的有效的集群號2, // 發送數據長度SendData,// 發送數據緩沖區&SampleApp_TransID, // 任務ID號AF_DISCV_ROUTE, // 有效位掩碼的發送選項AF_DEFAULT_RADIUS ) == afStatus_SUCCESS ) //傳送跳數,通常設置為AF_DEFAULT_RADIUS{}else{HalLedSet(HAL_LED_1, HAL_LED_MODE_ON);// Error occurred in request to send.} }

void SampleApp_SendFlashMessage( uint16 flashTime )

/********************************************************************** @fn SampleApp_SendFlashMessage** @brief Send the flash message to group 1.** @param flashTime - in milliseconds** @return none*/ void SampleApp_SendFlashMessage( uint16 flashTime ) //此實驗沒有用到,后面再分析 {uint8 buffer[3];buffer[0] = (uint8)(SampleAppFlashCounter++);buffer[1] = LO_UINT16( flashTime );buffer[2] = HI_UINT16( flashTime );if ( AF_DataRequest( &SampleApp_Flash_DstAddr, &SampleApp_epDesc,SAMPLEAPP_FLASH_CLUSTERID,3,buffer,&SampleApp_TransID,AF_DISCV_ROUTE,AF_DEFAULT_RADIUS ) == afStatus_SUCCESS ){}else{// Error occurred in request to send.} }

AF_DataRequest()

/********************************************************************** @fn AF_DataRequest** @brief Common functionality for invoking APSDE_DataReq() for both* SendMulti and MSG-Send.** input parameters** @param *dstAddr - Full ZB destination address: Nwk Addr + End Point.* @param *srcEP - Origination (i.e. respond to or ack to) End Point Descr.* @param cID - A valid cluster ID as specified by the Profile.* @param len - Number of bytes of data pointed to by next param.* @param *buf - A pointer to the data bytes to send.* @param *transID - A pointer to a byte which can be modified and which will* be used as the transaction sequence number of the msg.* @param options - Valid bit mask of Tx options.* @param radius - Normally set to AF_DEFAULT_RADIUS.** output parameters** @param *transID - Incremented by one if the return value is success.** @return afStatus_t - See previous definition of afStatus_... types.*/ uint8 AF_DataRequestDiscoverRoute = TRUE; afStatus_t AF_DataRequest( afAddrType_t *dstAddr, endPointDesc_t *srcEP,uint16 cID, uint16 len, uint8 *buf, uint8 *transID,uint8 options, uint8 radius )

東西很多,慢慢來吧

總結

以上是生活随笔為你收集整理的Zigbee 协议栈的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产精品一区二区白浆 | 精品国精品自拍自在线 | 丁香五月亚洲综合在线 | 亚洲在线不卡 | 中文乱幕日产无线码1区 | 亚洲永久精品视频 | 欧美日韩久久不卡 | 九九欧美视频 | 天天综合网天天综合色 | 色在线视频 | 国产免费一区二区三区最新 | 国内丰满少妇猛烈精品播 | 在线观看中文字幕一区二区 | 久久久久一区二区三区 | 日韩激情视频在线 | 亚洲激情p| 免费视频色 | 国产96在线 | 色婷婷六月天 | 日韩高清不卡一区二区三区 | 国产亚洲精品久久久久久移动网络 | 国内成人综合 | 精品福利av | 日韩中文字幕免费在线播放 | 99精品一区二区三区 | av免费在线播放 | 欧美激情综合色综合啪啪五月 | 欧洲精品亚洲精品 | 人人澡人人干 | 一区二区三区日韩在线观看 | 国产成人一区二区在线观看 | 中文字幕av专区 | 国产精品乱码一区二三区 | 午夜精品久久久久久久爽 | 狠狠操天天干 | 四虎影视成人永久免费观看视频 | 人人插人人插 | www.五月天婷婷.com | 国产精品久久久久久久久久新婚 | 黄色片亚洲 | 日韩电影一区二区在线观看 | 欧美日韩高清一区二区 国产亚洲免费看 | 九九热精品视频在线播放 | 欧美黑人性爽 | 亚洲精品国产第一综合99久久 | 免费能看的av | 中文字幕资源网在线观看 | 久久久久国产一区二区三区四区 | 成人免费在线观看av | 欧洲精品在线视频 | 日韩av成人在线观看 | 久久午夜羞羞影院 | 国产成人精品午夜在线播放 | 亚洲精品综合一二三区在线观看 | 精品亚洲va在线va天堂资源站 | 色婷婷午夜 | 在线免费观看视频 | 1区2区视频| 久久国精品 | 激情综合亚洲精品 | 国产一级片在线播放 | 久久99九九99精品 | av国产在线观看 | 一区二区三区四区五区在线 | 97超碰超碰久久福利超碰 | 超碰99人人 | www国产精品com | 久久久久免费网 | 久久精品成人 | 免费又黄又爽 | 999久久久久久久久 69av视频在线观看 | 午夜123| 亚洲精品乱码久久久久久久久久 | 久久理论影院 | 欧美国产亚洲精品久久久8v | 成人香蕉视频 | 亚洲免费观看在线视频 | 9999国产精品 | 亚洲综合五月 | 亚洲精品白浆高清久久久久久 | 久久免费播放视频 | 日韩国产高清在线 | 亚洲国产精品电影 | 久久免费视频这里只有精品 | 伊人狠狠干 | 日批视频 | 91精品黄色| 国产色网 | 欧美一区二区三区在线播放 | 国产久草在线 | 午夜久久成人 | 日韩va在线观看 | 看片网站黄色 | 日韩在线视频线视频免费网站 | 成人黄色短片 | 99热这里只有精品在线观看 | 最近免费在线观看 | 国产高清不卡av | 四虎影视成人永久免费观看亚洲欧美 | 毛片激情永久免费 | 视频一区在线免费观看 | 成人动漫一区二区 | 久久精品这里热有精品 | 亚洲精品91天天久久人人 | 久久天堂亚洲 | 狠狠激情中文字幕 | 亚洲黄色av | 精品国产电影 | 久久久久久久99 | 91精品国产福利 | 亚洲精品视频免费观看 | 九九激情视频 | 又黄又刺激 | 久久系列 | 色婷婷中文| 91成人精品| 亚洲欧美国产精品va在线观看 | av中文在线影视 | 久草在线观看 | 97视频久久久 | 国产色视频一区二区三区qq号 | 美女视频黄频大全免费 | 天堂av影院 | 99久久精品国产系列 | 免费看片网址 | 成人在线免费观看视视频 | 久久精品人 | 精品欧美一区二区三区久久久 | 日韩免| 天天碰天天操 | 激情视频免费在线 | 正在播放国产一区 | 国产精品久久亚洲 | 亚洲精品午夜一区人人爽 | 成人av免费在线 | 狠狠干夜夜操 | 国产码电影 | 国产99在线播放 | 中文在线√天堂 | 日日爱999| 91精品国产高清自在线观看 | 精品99在线视频 | 久久你懂得 | a级国产片| 91麻豆网 | 日韩电影一区二区三区 | 国产一区二区免费 | 亚洲日本韩国一区二区 | 波多野结衣久久精品 | 看毛片的网址 | 99精品热视频只有精品10 | a午夜在线 | 久久99深爱久久99精品 | 在线观看视频97 | 中文字幕国产一区 | 国产资源av | 日韩久久久久久久久久久久 | 国产精品wwwwww| 狠狠色伊人亚洲综合网站色 | 日本精品免费看 | 国产在线国偷精品产拍免费yy | 久久中文字幕在线视频 | 免费h在线观看 | 久久久蜜桃一区二区 | 黄色一级大片在线免费看国产一 | 久久久国产99久久国产一 | 国产一区二区三区视频在线 | 亚洲一区精品人人爽人人躁 | 在线欧美最极品的av | 麻花豆传媒一二三产区 | 中文字幕一区在线 | 深夜福利视频在线观看 | 五月天色婷婷丁香 | 揉bbb玩bbb少妇bbb | 天天操天天插 | 久99热| 波多野结衣视频一区 | 2021久久 | 在线免费观看涩涩 | 偷拍精品一区二区三区 | 97在线观看免费 | 免费亚洲成人 | 亚洲开心激情 | 在线免费高清一区二区三区 | 国内精品久久久久久久影视麻豆 | 成人黄色免费在线观看 | 狠狠gao | 91传媒在线播放 | 麻豆首页| 色视频在线观看 | 很黄很黄的网站免费的 | 狠狠色丁香婷婷综合久小说久 | 免费看十八岁美女 | 日韩黄色免费电影 | 黄色片视频免费 | 91av电影在线观看 | 最新精品视频在线 | 996久久国产精品线观看 | 国产精品美女久久久久久久 | 欧美极度另类性三渗透 | 久热色超碰| 久久不见久久见免费影院 | 在线视频1卡二卡三卡 | 少妇高潮冒白浆 | 91在线亚洲 | 九九免费在线观看 | 99精品视频精品精品视频 | 缴情综合网五月天 | 午夜精品久久久久久久99 | 亚洲精品日韩一区二区电影 | 国产三级午夜理伦三级 | 国内精品福利视频 | 国内视频在线 | 国产精品一区二 | 国产分类视频 | 国产一区二区三区视频在线 | 一区二区三区在线电影 | 麻豆影视在线播放 | 国产一区成人 | 精品99在线视频 | 成人毛片网 | 久久免费a | 四虎影视成人永久免费观看亚洲欧美 | 国产精品涩涩屋www在线观看 | 精品久久久久久久久久久久久 | 久久成年人 | 亚洲精品乱码久久久久久9色 | 九月婷婷人人澡人人添人人爽 | 天天干.com | 久久撸在线视频 | 欧美国产日韩在线视频 | 婷婷日 | 欧美日韩一区二区三区不卡 | 日韩在线播放欧美字幕 | 色网免费观看 | 波多野结衣在线观看一区 | 精品一区二区三区久久 | 国产成人精品日本亚洲999 | 久久精品国产免费看久久精品 | 久久综合九色99 | 精品v亚洲v欧美v高清v | 色噜噜日韩精品欧美一区二区 | 国产精品av久久久久久无 | 国产精品视频久久 | 免费视频 三区 | av中文字幕网 | 91 中文字幕 | 日韩视频专区 | 亚洲精品在线免费 | 中文字幕在线视频免费播放 | 久久久高清视频 | 久视频在线播放 | 色99中文字幕 | 在线观看黄色av | 色视频网址 | 久久久黄视频 | 欧美日韩久久久 | 能在线看的av | 九七视频在线观看 | 欧美日韩一区二区免费在线观看 | 欧美日韩精品影院 | 久久久久久久久久久久亚洲 | 亚洲无吗av | 狠狠搞,com| 国产精品久久久久久婷婷天堂 | 九九九九热精品免费视频点播观看 | 黄色电影小说 | 天天操天天草 | 亚洲国产日韩欧美 | 亚洲国产精彩中文乱码av | 国产 中文 日韩 欧美 | 免费三及片 | 免费日韩 | 啪啪动态视频 | 亚洲国产免费看 | 激情综合啪 | 一级片免费在线 | 天天操天天爱天天干 | 91成人精品观看 | 天天干人人干 | 91男人影院 | 91麻豆操| 激情综合色播五月 | 欧美 另类 交| 久久免费视频4 | 黄色看片 | 亚洲欧美乱综合图片区小说区 | 国产高清第一页 | 欧美大片大全 | 国产69久久久 | 国产小视频在线 | 超碰97网站 | 成人久久久精品国产乱码一区二区 | 天天天干夜夜夜操 | 九九热视频在线播放 | 天天爱天天色 | 日韩免费视频在线观看 | 青青草视频精品 | 精品视频免费 | 久久天天躁 | 久久一级片 | 欧美一级性生活视频 | 91精品小视频 | 国产97视频| 丁香六月久久综合狠狠色 | www.五月激情.com | 中文字幕精品一区久久久久 | 国产99久久| 深夜免费网站 | 亚洲一区二区三区毛片 | 久久伊人色综合 | 亚洲视频456 | 91手机视频 | 在线视频欧美亚洲 | 日韩av成人在线观看 | 成人午夜在线电影 | 激情视频网页 | 怡红院av久久久久久久 | 日韩在线看片 | 欧美精品三级在线观看 | 99久久999久久久精玫瑰 | 亚洲精品午夜久久久久久久 | 久久久久高清毛片一级 | 久草电影在线 | 狠狠地日| 怡红院久久 | 韩国av免费观看 | 色综合天天做天天爱 | 久草国产在线观看 | 成人黄大片视频在线观看 | 丁香花在线观看免费完整版视频 | 日躁夜躁狠狠躁2001 | 日韩中文字幕第一页 | 国产婷婷视频在线 | 久草视频在线免费播放 | 91自拍视频在线观看 | 亚洲精品综合在线观看 | 狠狠干成人 | 国产又粗又猛又色又黄视频 | 韩日精品视频 | 亚洲黄色精品 | 激情丁香综合五月 | 韩国视频一区二区三区 | 在线看日韩 | 国产女人40精品一区毛片视频 | 国产精品videossex国产高清 | 欧美一区二区三区特黄 | 伊人av综合 | 91cn国产在线 | 黄色的视频 | 亚洲精品中文字幕视频 | 欧美精品一区二区在线观看 | 欧美日韩精品免费观看 | 日本性生活一级片 | 欧美激情综合五月色丁香 | 国产高清99 | 国产色秀视频 | 91视频这里只有精品 | 日韩在线小视频 | 久久9999久久免费精品国产 | 国产品久精国精产拍 | 中文字幕一区二区三区乱码在线 | 九九在线高清精品视频 | 久草在线综合网 | 又爽又黄又刺激的视频 | 精品久久久99 | 91精品国产麻豆国产自产影视 | 久久久久久久影视 | a成人在线| www狠狠| 日韩精品短视频 | 国产成人久 | 国产精品久久久久av免费 | 国产精品99久久免费观看 | 免费看一级黄色大全 | 99精品久久久久久久久久综合 | 精品国产一区二区三区四区vr | 日韩免费区 | 亚洲一区日韩在线 | 免费高清在线观看成人 | 婷婷99| 亚洲精品456在线播放 | 国产91精品看黄网站在线观看动漫 | 日韩乱码在线 | 亚洲永久精品在线 | 色播五月激情综合网 | 国产 色| 亚洲欧洲国产精品 | 国产婷婷| 久久久久国产a免费观看rela | 99热这里| 日韩视频中文字幕 | 天天搞天天干 | 国产精品福利一区 | 2018好看的中文在线观看 | 亚洲高清视频在线 | 国产视频一区在线播放 | 国产精品v欧美精品v日韩 | 婷婷视频在线播放 | 一区二区电影在线观看 | 高清视频一区 | 国产精品一区二区果冻传媒 | 久久久 激情| 99精品国产亚洲 | 成人 国产 在线 | 国内小视频在线观看 | 91影视成人 | 国产一区在线精品 | 免费在线观看av网站 | 久久色在线播放 | 日本xxxx.com| 久久久久成人精品免费播放动漫 | 麻豆久久久久久久 | 91伊人久久大香线蕉蜜芽人口 | 亚洲精品免费在线观看 | 免费高清在线视频一区· | 99热在线观看 | 2000xxx影视| 国产精品久久99精品毛片三a | 9ⅰ精品久久久久久久久中文字幕 | 亚洲香蕉在线观看 | 深爱婷婷久久综合 | 91高清视频免费 | 在线一区av | 国产精品毛片一区二区 | 精品久久久久久综合 | 久久精品国产精品亚洲 | 国产精品18久久久久久不卡孕妇 | 国产专区在线 | 成年人免费观看在线视频 | 久久不卡日韩美女 | 国产午夜影院 | 五月激情视频 | 88av网站| 国产精品一区二区三区在线播放 | 成人一级黄色片 | 亚洲成人av一区二区 | 天堂久色 | av大全在线| 国产九九热视频 | 国产美女精彩久久 | 综合久久综合久久 | 天堂av高清 | 亚洲dvd | 一色屋精品视频在线观看 | 欧美在线视频一区二区三区 | 香蕉久久久久久av成人 | 中文字幕在线国产 | 日韩视频欧美视频 | 国产精品久久久久久久午夜片 | 91av在线不卡| 狠狠色丁香婷综合久久 | 日韩av免费一区 | 亚洲97在线 | 国产理论免费 | 国产福利91精品张津瑜 | 免费一级毛毛片 | 丝袜美腿在线视频 | 成人免费影院 | 日韩成人免费在线观看 | 久久久久免费精品国产 | 久99久在线 | 亚洲成a人片77777kkkk1在线观看 | 黄色软件在线观看 | 欧美男男tv网站 | 草在线视频 | 综合网色| 不卡的av在线 | 超碰成人网 | 香蕉网在线播放 | 天天曰天天干 | 久草久草在线 | 91最新在线视频 | 亚洲爱视频 | 免费97视频 | 久久99精品国产 | 麻豆影视在线免费观看 | 亚洲高清av | 91视频中文字幕 | 国产视频资源 | 97视频在线观看免费 | 中文字幕一区二区三区精华液 | 国产精品久久艹 | 免费看污片 | 这里只有精品视频在线观看 | 日日夜夜精品 | 九九热视频在线免费观看 | 伊人亚洲综合 | 国产一级免费播放 | 欧美国产高清 | 日日草天天干 | 久久精品综合网 | 国产精品白丝jk白祙 | 香蕉视频4aa | 国产免费嫩草影院 | 在线观看视频日韩 | 久久久久国产一区二区三区四区 | 久久久久久亚洲精品 | 亚洲小视频在线 | 国产日韩欧美中文 | 天天摸夜夜添 | 99在线国产| 久久人操| 91视频亚洲| 91日韩在线视频 | 黄色av一区 | 91成人精品一区在线播放 | 国产精品久久久久久影院 | 成年人在线免费看片 | 国模精品一区二区三区 | 中文在线亚洲 | 日日干视频 | 亚洲天堂网在线观看视频 | 久久精品国产99国产 | 一本一道波多野毛片中文在线 | 国内精品久久久久久久影视麻豆 | 99久久综合国产精品二区 | 成人中文字幕av | av成人免费在线看 | 99视频黄 | 婷婷中文字幕综合 | 久久综合九色综合欧美就去吻 | 91免费高清视频 | 高清视频一区二区三区 | 国产资源在线观看 | 午夜免费福利片 | 亚洲精品美女在线观看播放 | 国产一级视频在线免费观看 | 99精品免费视频 | 亚洲天堂精品视频 | 国产精品成人久久久久 | 五月天色丁香 | 91看片淫黄大片在线播放 | 亚洲aⅴ久久精品 | 国产最新在线 | 国产成人久久精品77777 | 91麻豆精品国产91久久久久 | 午夜精品久久久99热福利 | 日韩综合第一页 | 国产午夜亚洲精品 | 国产黄色在线网站 | av色图天堂网 | 国产在线精品一区二区三区 | 日本三级久久 | 日韩综合第一页 | 久久精品视频免费播放 | 99精品在线免费 | 日韩精品一区二区三区高清免费 | 狠狠色狠狠色综合系列 | 久久久免费精品 | 日韩亚洲在线 | 精品国产伦一区二区三区 | 色偷偷人人澡久久超碰69 | 探花视频免费观看 | 探花视频网站 | 人人爽人人澡 | 婷婷久操 | 久久久久久久久久久国产精品 | 国产人成一区二区三区影院 | 香蕉视频国产在线 | 日韩av影视在线观看 | 丝袜美女视频网站 | 日本婷婷色 | 国产精品福利无圣光在线一区 | 欧美亚洲国产一卡 | 一级黄色片网站 | 伊人影院在线观看 | 欧美日韩国产在线精品 | 免费观看丰满少妇做爰 | 久久国产视频网站 | 狠狠狠狠狠狠狠干 | 中文在线字幕免费观 | 成人a级免费视频 | 黄色视屏av| 一区二区三区日韩在线观看 | 香蕉成人在线视频 | 精品福利网站 | 99视频在线观看免费 | www国产亚洲精品久久麻豆 | 天天草天天插 | 波多野结衣在线观看一区二区三区 | 激情网五月 | 午夜在线国产 | 最近中文字幕 | 去看片 | 国产剧情一区在线 | 国产一区二区在线观看免费 | 狠狠干狠狠插 | 欧美成人性网 | 在线观看911视频 | 日韩精品一区不卡 | 日日夜日日干 | 国产 在线 日韩 | 免费a现在观看 | 久久福利综合 | 在线一区二区三区 | 韩国av一区 | 国产午夜视频在线观看 | 色吊丝av中文字幕 | 九九九热精品免费视频观看网站 | 国产在线第三页 | 综合婷婷丁香 | 91精品伦理| 久久网站最新地址 | 中文字幕在线观看一区 | 国内精品久久久久影院男同志 | 欧美精品v国产精品 | 狠狠狠操| 四虎成人免费观看 | 国产精品自产拍在线观看 | 中文字幕在线免费97 | 四虎影视欧美 | 欧美国产日韩激情 | 色视频网站在线 | 欧美成人精品欧美一级乱黄 | 国产精品毛片久久蜜 | 亚洲va欧美va人人爽春色影视 | 成人av电影免费在线观看 | 最近更新好看的中文字幕 | 成人wwwxxx视频 | 国产精品一区一区三区 | 欧美一区二区三区四区夜夜大片 | 国产亚洲成人网 | 亚洲日本在线视频观看 | 中文字幕色站 | 中文字幕第一页av | 91香蕉亚洲精品 | 欧美日韩中字 | 免费一级日韩欧美性大片 | 99热精品在线观看 | 久草在线91 | 综合网在线视频 | 欧美亚洲精品在线观看 | 国产一区福利在线 | 久久综合久久综合这里只有精品 | av电影一区 | 欧美精品一区二区在线观看 | 丁香婷婷久久久综合精品国产 | 中文字幕第一页在线播放 | 中文字幕在线观看资源 | 超碰.com| 99热这里是精品 | 在线观看完整版免费 | 高清一区二区 | 91人人视频在线观看 | 久久久久综合视频 | 国内精品久久久精品电影院 | 国产黑丝袜在线 | 国产精品一区二区久久精品爱微奶 | 在线看av的网址 | 日色在线视频 | 中文字幕观看视频 | 91亚洲网 | 亚洲午夜久久久综合37日本 | 色www精品视频在线观看 | 99热国产在线中文 | 91麻豆视频网站 | 亚洲午夜精品久久久 | 色婷婷在线视频 | 日韩在线一级 | 99热精品在线观看 | 久久久久久久久久影视 | 国产免码va在线观看免费 | 成人精品国产免费网站 | 色婷婷六月 | 玖玖视频免费在线 | 91精品久久久久久粉嫩 | 欧美色就是色 | 国产精品99久久久久久久久 | 激情欧美一区二区免费视频 | 99热国产在线观看 | 91免费视频黄 | av在线永久免费观看 | 91欧美国产 | 欧美性生活免费 | 97在线免费视频 | 91成人短视频在线观看 | 久久国产精品精品国产色婷婷 | 在线亚洲午夜片av大片 | 国产精品白浆视频 | 免费黄色a网站 | 99久久婷婷国产精品综合 | 亚洲视频在线观看网站 | 欧洲一区精品 | 久久大片 | 亚洲妇女av| 久久精品亚洲国产 | 2023年中文无字幕文字 | 国产亚洲欧美精品久久久久久 | 成人av片在线观看 | 四虎成人精品永久免费av | 美国av大片 | 亚洲干| 日韩中文字幕免费在线观看 | 久要激情网| 97人人模人人爽人人喊网 | 播五月婷婷 | 日韩精品免费一区二区三区 | 91大神在线看 | 日本中文字幕在线 | 深夜免费网站 | 久草在线视频资源 | 蜜臀精品久久久久久蜜臀 | 黄色av电影网 | 久久国产精品视频 | 91精品一区国产高清在线gif | 日本中文字幕在线观看 | 日日天天av | 久久视频免费在线观看 | av在线官网 | 97超碰超碰 | 亚洲免费观看在线视频 | 久久精品国产一区二区三区 | 91黄色免费网站 | 日韩免费观看一区二区 | 成年人免费在线观看网站 | 草免费视频 | 一区在线观看 | 一区二区三区四区五区在线 | 亚洲va欧美va | 丁香高清视频在线看看 | 性色va | 亚洲精品黄网站 | 激情五月色播五月 | 久久精品麻豆 | 久久久久久久久久国产精品 | 久久激情视频 久久 | 美女视频黄免费的久久 | 在线之家官网 | 久久久精品免费观看 | 丁香婷婷网| 亚洲波多野结衣 | 国产首页 | 精品视频专区 | 国产成人久久精品亚洲 | 在线观看视频一区二区三区 | 91麻豆看国产在线紧急地址 | 欧美日韩一区三区 | 国产va饥渴难耐女保洁员在线观看 | 天天天天天干 | 国产麻豆传媒 | 亚洲精品综合一区二区 | 麻豆一二三精选视频 | 国产精品一区在线 | 天天干天天拍天天操天天拍 | 久久久蜜桃 | 成人免费观看在线视频 | 天天操狠狠操网站 | 激情欧美一区二区三区免费看 | 国产精品wwwwww | 天天干天天射天天爽 | 超碰电影在线观看 | 一区二区三区在线播放 | 探花视频在线观看+在线播放 | 欧美十八| 热re99久久精品国产99热 | 免费在线观看av的网站 | 97超级碰碰碰视频在线观看 | 日韩免费观看一区二区 | 在线播放av网址 | 免费观看十分钟 | 在线不卡视频 | 天天操天天干天天爱 | 五月天av在线 | 日日碰狠狠添天天爽超碰97久久 | 久国产在线播放 | 午夜体验区 | 日韩xxx视频| 99久久99| 永久黄网站色视频免费观看w | 国产精品1区2区3区 久久免费视频7 | 日韩区在线观看 | www.天天综合 | www178ccom视频在线 | 黄色精品一区二区 | av成人免费在线看 | 国产高清av免费在线观看 | 免费h在线观看 | 99九九热只有国产精品 | 麻豆国产精品永久免费视频 | 亚洲精品乱码久久久一二三 | www.夜夜干.com| 中文字幕av电影下载 | 最近日本中文字幕a | 久久久久久久久久久影院 | 国产精品黄色 | 狠狠综合久久av | 日日夜夜天天干 | 国产一二三四在线视频 | 插婷婷 | 免费视频国产 | 美女黄网久久 | 91在线一区二区 | 午夜视频免费 | 深夜福利视频在线观看 | 综合久久久| 日本性视频 | 成人免费观看a | 欧美性网站 | 亚洲国产成人高清精品 | 日韩一级黄色av | 国产精品片| 天天色综合1 | 六月激情久久 | 日韩免费观看一区二区三区 | 久久久久久久久久久久久国产精品 | 久久久久久久久久久久久久免费看 | 亚洲综合在线五月天 | 久草在线国产 | 中文字幕在线一区观看 | 综合天堂av久久久久久久 | 成人av高清在线 | 99精品视频在线免费观看 | 天天操天天色综合 | 亚洲欧美日韩国产一区二区三区 | 国产手机免费视频 | 成片视频在线观看 | 久久刺激视频 | 免费手机黄色网址 | 亚洲精品美女久久久久 | 欧美日韩国产成人 | 国产精品久久久久久999 | 日韩在线观看三区 | 久久黄色片 | 91九色国产视频 | 99热9| 欧美三级在线播放 | 999超碰 | 91成人精品国产刺激国语对白 | 国产精品久久久久久久久久不蜜月 | 在线中文字幕网站 | 国产精品永久在线观看 | 国产一二三在线视频 | 天无日天天操天天干 | 狠狠干夜夜| 国产精品久久久久久久久久东京 | 久久国产综合视频 | 亚洲成人影音 | 欧美一区二区日韩一区二区 | 国产成人综合在线观看 | 亚洲国产精品日韩 | 1024手机在线看 | 激情久久网 | 超碰在线亚洲 | 96亚洲精品久久久蜜桃 | 国产精品毛片久久久久久 | 国产高清成人在线 | 国产精品18久久久久久首页狼 | 三上悠亚一区二区在线观看 | 九色porny真实丨国产18 | 天天天天天干 | 成人性生交大片免费观看网站 | 色天天综合久久久久综合片 | 国产精品自产拍在线观看蜜 | 色国产视频 | 成年人电影免费在线观看 | 国产欧美精品一区二区三区 | 亚洲狠狠干 | 日韩乱色精品一区二区 | 9在线观看免费高清完整版 玖玖爱免费视频 | 日日射av| 日韩av二区 | 在线观看视频亚洲 | 国产精品99久久久久久人免费 | 国产91影院 | 日日色综合| 久久久久草 | 青青草国产精品视频 | 在线日韩视频 | 久久久一本精品99久久精品66 | 亚洲激精日韩激精欧美精品 | 亚洲欧美国产视频 | 国产视频精品免费播放 | 久久久久久久久毛片精品 | 超碰人人99| 探花视频在线观看+在线播放 | 九九爱免费视频 | 在线看污网站 | 一级成人网 | 国产精品正在播放 | 2021国产在线视频 | 欧美美女激情18p | 香蕉蜜桃视频 | 国产原创91 | 97超碰超碰久久福利超碰 | a√天堂资源 | 久久久av免费 | 免费 在线 中文 日本 | 7777精品伊人久久久大香线蕉 | 国产精品精品久久久久久 | 免费av 在线| 日韩精品久久久久久久电影竹菊 | 欧美激情视频一二三区 | 91少妇精拍在线播放 | 久久黄色小说 | 久色小说 | 亚洲日本在线视频观看 | 国产香蕉视频在线观看 | 干av在线 | 精品毛片一区二区免费看 | 99精品视频一区 | 日日草天天干 | 国产尤物在线视频 | 国产福利在线 | 色www精品视频在线观看 | 就要干b| 91色偷偷| 波多野结衣精品视频 | 国产久草在线 | 国产精品9999久久久久仙踪林 | 在线观看成年人 | 成人网在线免费视频 | 黄色日本免费 | 久草在线视频精品 | 波多野结衣电影一区 | 亚洲激情六月 | 欧美在线视频一区二区三区 | 久草网站在线观看 | 欧美精品久久久久久久久久 | 美女视频久久久 | 人人要人人澡人人爽人人dvd | 69亚洲乱 | 激情网五月天 | 欧美日韩国产一区 | 天天色天天操综合网 | 欧美日韩免费一区二区三区 | 日韩视频图片 | 五月婷在线 | 在线视频欧美精品 | 成年人在线观看 | 亚洲精品动漫久久久久 | 中文字幕欲求不满 | 久久久久久久久久久黄色 | 久久精品久久精品久久 | 91最新视频| 伊人永久 | 久久免费精品 | 欧美日韩二区在线 | 国产精品综合久久久 | 日日夜夜天天久久 | av韩国在线 | 中文字幕视频一区二区 | 精油按摩av | 中文字幕一区二区三区视频 | 国产91在线观看 | 亚洲欧美日韩一区二区三区在线观看 | 国产一级免费在线 | 欧美精品久久久久久久久久丰满 | 免费裸体视频网 | 日韩欧美高清视频在线观看 | 五月婷婷激情六月 | 色成人亚洲网 | 欧美在线观看视频 | 亚洲国内精品 | 99视频精品在线 | 免费观看av网站 | 六月色| 日韩视频a | 在线免费视频你懂的 | 黄色软件在线看 | 黄色av免费在线 | 青草草在线视频 | 亚洲黄色一级电影 | 久久久久激情电影 | 成人在线观看你懂的 | 免费精品在线视频 | 91成人国产 | 国产亚洲精品久久网站 | 91九色蝌蚪视频网站 | 精品国内 | 日本黄色免费网站 | 久久久久久久久久久免费 | 丁香网五月天 | 免费av免费观看 | 又湿又紧又大又爽a视频国产 | 97视频在线看 | 国产精品久久久久三级 | 97在线观看免费观看高清 | 人人干天天干 | 毛片在线播放网址 | av电影免费在线播放 | 成年人天堂com | 四虎免费在线观看视频 | 在线看一级片 | 国产免费视频一区二区裸体 | 在线91av | 99re6热在线精品视频 | 黄色91在线观看 | 日本精品中文字幕 | 久草免费新视频 | 黄色午夜网站 | 亚洲国产精品500在线观看 | 国产91成人在在线播放 | 国产精成人品免费观看 | 国产男女免费完整视频 | 久久av中文字幕片 | 亚洲一二三久久 | 亚洲热视频 |