色偷偷偷亚洲综合网另类,亚洲欧美另类在线观看,欧美午夜激情在线,久久久精品一区

當前位置: > 華清遠見教育科技集團 > 嵌入式學習 > 講師博文 > BitCloud協議解析之——網絡
BitCloud協議解析之——網絡
時間:2016-12-12作者:華清遠見

1.1 網絡建立與加入

(1)首先在Main函數中,會有這樣的語句:

for(;;)
        {
                SYS_RunTask();
        }

通過SYS_RunTask函數,系統會調用BitCloud協議棧中的用戶應用程序,即APL_TaskHandler()。

(2)
        void APL_TaskHandler(void)
        {
                if (appStatePosted)
                {
                        appStatePosted = false;
                        appTaskHandler();
                }
                if (appSubStatePosted)
                {
                        appSubStatePosted = false;
                        appSubtaskHandler();
                }
        }

(3)按照流程程序調用appTaskHandler();該函數中對各種狀態進行判斷執行相應操作。

static void appTaskHandler(void)
        {
                switch (appState)
                        {
                                case APP_INITIAL_STATE:
                                initHardware();
                                initNetwork();
                                break;
                                case APP_JOINING_STATE:
                                startNetwork();
                                break;
                                case APP_JOINED_STATE:
                                break;
                                case APP_LEAVE_STATE:
                                leaveNetwork();
                                break;
                        }
        }

(3.9)硬件初始化函數

static void initHardware(void)
        {
                #ifdef BOARD_SAM3S_PIRRD
                // Register interrupts
                HAL_InstallInterruptVector(SysTick_IRQn, SysTick_Handler);
                // Configure LEDS
                LED_Configure(APP_LED_0);
                // Configure SRAM
                BOARD_ConfigureSram();
                // Configure system tick timer
                TimeTick_Configure(BOARD_MCK);
                // Configure LCD
                appLCD_Init();
                #else
                // Configure LEDS
                BSP_OpenLeds();
                // Configure communication medium
                appMediumInit();
                #endif // BOARD_SAM3S_PIRRD
        }

(4)網絡初始化

static void initNetwork(void)
        {
                CS_WriteParameter(CS_DEVICE_TYPE_ID, &deviceType);//將設備在網絡中的角色配置為終端設備。
                if (DEV_TYPE_ENDDEVICE == deviceType)
                        {
                                bool rxOnWhenIdleFlag = false;
                                CS_WriteParameter(CS_RX_ON_WHEN_IDLE_ID, &rxOnWhenIdleFlag);
                        }
        }

// 命令請求參數的配置

apsCommandReq.dstAddrMode = APS_SHORT_ADDRESS;
        apsCommandReq.dstAddress.shortAddress = 0;
        apsCommandReq.profileId = APP_PROFILE_ID;
        apsCommandReq.dstEndpoint = APP_CONTROL_ENDPOINT;
        apsCommandReq.clusterId = APP_CLUSTER_ID;
        apsCommandReq.srcEndpoint = APP_CONTROL_ENDPOINT;
        apsCommandReq.asdu = (uint8_t *)&appCommandFrame.command;
        apsCommandReq.asduLength = 0;
        apsCommandReq.txOptions.acknowledgedTransmission = 1;
        apsCommandReq.radius = 0;
        apsCommandReq.APS_DataConf = apsCommandReqConf;

// 數據塊請求的配置


                  

然后調用startNerwork()啟動搜尋網絡。

static void startNetwork(void)
        {
                blinkTimer.interval = BLINK_TIMER_INTERVAL;
                blinkTimer.mode = TIMER_REPEAT_MODE;
                blinkTimer.callback = blinkTimerFired;
                HAL_StartAppTimer(&blinkTimer);
                startNetworkReq.ZDO_StartNetworkConf = ZDO_StartNetworkConf;
                ZDO_StartNetworkReq(&startNetworkReq);
        }

定時器由static HAL_AppTimer_t blinkTimer;進行聲明,當時間到達時,blinkTimerFired函數中對LED燈的狀態進行改變。這樣就達到在搜尋網絡的過程中LED燈閃爍的效果,直到網絡加入成功。

下層關于加入網絡的回應通過ZDO_StartNetworkConf回調函數完成。

static void ZDO_StartNetworkConf(ZDO_StartNetworkConf_t* conf)
        {
                HAL_StopAppTimer(&blinkTimer); //首先關掉定時器
                if (ZDO_SUCCESS_STATUS == conf->status)//如果加入網絡成功
                        {
                                restartStateMachines(APP_JOINED_STATE);//設置網絡狀態為已加入
                                LED_Clear(APP_LED_0); //關閉LED網絡指示燈
  &nbsnbsp;                             //注冊終端節點
                                registerControlEndpointReq.simpleDescriptor = &controlEndpoint;
                                registerControlEndpointReq.APS_DataInd = APS_DataIndControl;
                                APS_RegisterEndpointReq(®isterControlEndpointReq);
                                registerDataEndpointReq.simpleDescriptor = &dataEndpoint;
                                registerDataEndpointReq.APS_DataInd = APS_DataIndData;
                                APS_RegisterEndpointReq(®isterDataEndpointReq);
                                HAL_StartAppTimer(&nwkInfoTimer);
                        }
                else
                setState(APP_JOINING_STATE);
        }

2.2 數據傳輸中網絡體現

2.2.1 網絡角色的設置

在所有ZigBee網絡中,共有三種網絡角色:協調器、路由設備、終端設備。

要想讓節點能夠加入到ZigBee網絡之中,在初始化網絡的時候需要給節點分配網絡角色。例如:

static void initNetwork(void)
        {
                DeviceType_t deviceType = DEVICE_TYPE_COORDINATOR;//設置為協調器
                // DeviceType_t deviceType = APP_SENDER_DEVICE_TYPE ;
                CS_WriteParameter(CS_DEVICE_TYPE_ID, &deviceType);
                ...
        }

需要注意的是,在整個ZigBee網絡之中,有且只能有一個協調器用于創建一個ZigBee網絡。然后通過CS_WriteParameter(CS_DEVICE_TYPE_ID, &deviceType);將參數寫入文件。

2.2.2 網絡參數的使用

在進行數據發送之前,首先要弄清楚的是被發送數據的目的網絡地址。在程序中通過 apsCommandReq.dstAddress.shortAddress = imageReceiving.currentRequest->address;進行設置。然后通信雙方通過相同的endpoint進行操作。

發表評論
評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
色偷偷偷亚洲综合网另类,亚洲欧美另类在线观看,欧美午夜激情在线,久久久精品一区
主站蜘蛛池模板: 一区二区三区 在线观看视| 97视频网站入口| 日韩在线激情视频| 一区国产精品视频| 在线播放国产精品| 日韩亚洲欧美成人| 欧美性jizz18性欧美| 91国产视频在线播放| 国产精品香蕉国产| 亚洲va码欧洲m码| 伊人久久久久久久久久| 欧美另类极品videosbest最新版本| 欧美性猛交xxxxx水多| 456国产精品| 亚洲尤物视频网| 永久555www成人免费| 欧美人与物videos| 欧美性视频在线| 亚洲精品动漫久久久久| 最近2019中文字幕大全第二页 | 粉嫩老牛aⅴ一区二区三区| 欧美精品videos| 国产精品一区二区三区免费视频| 亚洲国产黄色片| 欧美精品在线网站| 国产精品久久久久久久久久久久久| 亚洲成色999久久网站| 日韩中文字幕不卡视频| 欧美日韩一区二区三区| 国产精品爽爽ⅴa在线观看| 日韩中文娱乐网| 欧美专区在线视频| 亚洲欧美一区二区三区情侣bbw| 精品女厕一区二区三区| 国产一区二区在线免费| 久久久国产精品视频| 日本高清视频精品| 中文字幕亚洲色图| 国产精品96久久久久久| 色天天综合狠狠色| 国产高清在线不卡|