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

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

?? endpoint 1011.c

?? 此程式庫有許多的zigbee程式源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
#ifdef UART0_DEBUG    vDebug("Sy ");#endif    /* Set the coordinator source address before syncing to avoid PAN conflict       indication */    s_psMacPib->u16CoordShortAddr = DEMO_COORD_ADDR;    /* Create sync request on channel selected during scan */    sMlmeReqRsp.u8Type = MAC_MLME_REQ_SYNC;    sMlmeReqRsp.u8ParamLength = sizeof(MAC_MlmeReqSync_s);    sMlmeReqRsp.uParam.sReqSync.u8Channel = sDemoData.sSystem.u8Channel;    sMlmeReqRsp.uParam.sReqSync.u8TrackBeacon = TRUE;    /* Put in sync request. There is no deferred confirm for this, we just get       a SYNC-LOSS later if it didn't work */    vAppApiMlmeRequest(&sMlmeReqRsp, &sMlmeSyncCfm);}/**************************************************************************** * * NAME: vStartAssociate * * DESCRIPTION: * Sends an MLME request to the 802.15.4 to request an association with the * coordinator found during a previous scan. If the  returned confirmation is * not 'deferred', a fatal error is assumed. * * RETURNS: * void * ****************************************************************************/PRIVATE void vStartAssociate(void){    MAC_MlmeReqRsp_s  sMlmeReqRsp;    MAC_MlmeSyncCfm_s sMlmeSyncCfm;    sDemoData.sSystem.eState = E_STATE_ASSOCIATING;#ifdef UART0_DEBUG    vDebug("As ");#endif    /* Create associate request. We know short address and PAN ID of       coordinator as this is preset and we have checked that received       beacon matched this */    sMlmeReqRsp.u8Type = MAC_MLME_REQ_ASSOCIATE;    sMlmeReqRsp.u8ParamLength = sizeof(MAC_MlmeReqAssociate_s);    sMlmeReqRsp.uParam.sReqAssociate.u8LogicalChan = sDemoData.sSystem.u8Channel;    sMlmeReqRsp.uParam.sReqAssociate.u8Capability = 0x80; /* We want short address, other features off */    sMlmeReqRsp.uParam.sReqAssociate.u8SecurityEnable = FALSE;    sMlmeReqRsp.uParam.sReqAssociate.sCoord.u8AddrMode = 2;    sMlmeReqRsp.uParam.sReqAssociate.sCoord.u16PanId = DEMO_PAN_ID;    sMlmeReqRsp.uParam.sReqAssociate.sCoord.uAddr.u16Short = DEMO_COORD_ADDR;    /* Put in associate request and check immediate confirm. Should be       deferred, in which case response is handled by event handler */    vAppApiMlmeRequest(&sMlmeReqRsp, &sMlmeSyncCfm);    if (sMlmeSyncCfm.u8Status != MAC_MLME_CFM_DEFERRED)    {        /* Unexpected result */        vDisplayError("Associate request returned error",                      ((uint32)sMlmeSyncCfm.u8Status) << 8                      | (uint32)sMlmeSyncCfm.uParam.sCfmAssociate.u8Status);    }}/**************************************************************************** * * NAME: vProcessInterrupts * * DESCRIPTION: * Loops around checking for upward events from the Application Queue API. * To save power, the CPU is set to doze at the start of the loop. If an event * is generated, the CPU is woken up and processes it, then the code here is * allowed to continue. * * For each type of event, the queue is checked and, if there is something to * process, the appropriate handler is called. The buffer is then returned to * the Application Queue API. This continues until all events have been * processed. If the hardware event handler detects that a 'reset' button * press sequence has happened, the loop is exited. * * Note that the buttons are configured to generate interrupts when they are * pressed. * * RETURNS: * void when a 'reset' button press sequence is detected. * ****************************************************************************/PRIVATE void vProcessInterrupts(void){    MAC_MlmeDcfmInd_s *psMlmeInd;    MAC_McpsDcfmInd_s *psMcpsInd;    AppQApiHwInd_s    *psAHI_Ind;    bool_t             bDone;    /* Wait for events */    bDone = FALSE;    do    {        /* Doze CPU: it will wake when interrupt occurs, then process           interrupts, then this code will be able to process queue */        vAHI_CpuDoze();        /* Check for anything on the MCPS upward queue */        do        {            psMcpsInd = psAppQApiReadMcpsInd();            if (psMcpsInd != NULL)            {               #ifdef UART0_DEBUG                        //    vDebug("vProcessIncomingMcps ");#endif                vProcessIncomingMcps(psMcpsInd);                vAppQApiReturnMcpsIndBuffer(psMcpsInd);            }        } while (psMcpsInd != NULL);        /* Check for anything on the MLME upward queue */        do        {            psMlmeInd = psAppQApiReadMlmeInd();            if (psMlmeInd != NULL)            {               #ifdef UART0_DEBUG                       //     vDebug("vProcessIncomingMlme ");#endif                vProcessIncomingMlme(psMlmeInd);                vAppQApiReturnMlmeIndBuffer(psMlmeInd);            }        } while (psMlmeInd != NULL);        /* Check for anything on the AHI upward queue */        do        {            psAHI_Ind = psAppQApiReadHwInd();            if (psAHI_Ind != NULL)            {                /* We don't bother to pass the queue data as we are only                   expecting key press interrupts and, if we get anything else,                   reading the keys won't have any unfortunate side effects */                if (bProcessKeyPress() == TRUE)                {                   #ifdef UART0_DEBUG                            vDebug("bProcessKeyPress ");#endif                    bDone = TRUE;                }				   #ifdef UART0_DEBUG                            vDebug("vAppQApiReturnHwIndBuffer ");#endif                vAppQApiReturnHwIndBuffer(psAHI_Ind);            }        } while (psAHI_Ind != NULL);    } while (bDone == FALSE);}/**************************************************************************** * * NAME: vProcessIncomingMcps * * DESCRIPTION: * Deals with any incoming MCPS data events. Only deferred confirmations of * frame transmission requests are specifically handled, to move the state * machine forward. * * PARAMETERS: Name        RW  Usage *             psMcpsInd   R   Pointer to structure containing MCPS event * * RETURNS: * void * ****************************************************************************/PRIVATE void vProcessIncomingMcps(MAC_McpsDcfmInd_s *psMcpsInd){    /* Process MCPS indication by checking if it is a confirmation of our           outgoing frame */              #ifdef UART0_DEBUG                           // vDebug("vProcessIncomingMcps ");#endif    if ((psMcpsInd->u8Type == MAC_MCPS_DCFM_DATA)        && (sDemoData.sSystem.eState == E_STATE_TX_DATA))    {        if (psMcpsInd->uParam.sDcfmData.u8Handle == sDemoData.sTransceiver.u8CurrentTxHandle)        {            /* Increment handle for next time. Increment failures */            sDemoData.sTransceiver.u8CurrentTxHandle++;            /* Start to read sensors. This takes a while but rather than               wait for an interrupt we just poll and, once finished, move back               to the running state to wait for the next beacon. Not a power               saving solution! */            sDemoData.sSystem.eState = E_STATE_READ_SENSORS;			   #ifdef UART0_DEBUG                            //vDebug("vProcessRead ");#endif            vProcessRead();            sDemoData.sSystem.eState = E_STATE_RUNNING;        }    }}/**************************************************************************** * * NAME: vProcessIncomingMlme * * DESCRIPTION: * Deals with any incoming MCPS events. There are 4 events that are handled: * * 1. Scan deferred confirmation *    If the scan saw a beacon from the expected coordinator, the stack is *    asked to start synchronisation. Otherwise, it tries to scan again. * * 2. Associate deferred confirmation *    If the association was successful, the short address is stored and the *    device enters the 'running' state, in which it will respond to beacons *    by sending back a frame of sensor information. If the association was *    not successful, it is attempted again. * * 3. Becon notify indication *    If synchronising, this is used to indicate that synchronisation is *    complete and association is atempted. If in 'running' state, it is *    used to trigger the sending of a frame containing sensor information *    to the coordinator. * * 4. Sync loss indication *    Device starts another scan. * * PARAMETERS: Name        RW  Usage *             psMlmeInd   R   Pointer to structure containing MLME event * * RETURNS: * void * ****************************************************************************/PRIVATE void vProcessIncomingMlme(MAC_MlmeDcfmInd_s *psMlmeInd){    MAC_PanDescr_s *psPanDesc;    int i;    /* We respond to several MLME indications and confirmations, depending       on mode */    switch (psMlmeInd->u8Type)    {    case MAC_MLME_DCFM_SCAN:#ifdef UART0_DEBUG        vDebug("MSc ");#endif        /* Only respond to this if scanning */        if (sDemoData.sSystem.eState == E_STATE_SCANNING)        {#ifdef UART0_DEBUG            vDebug("MScSt ");#endif            /* Make sure it is what we're after */            switch (psMlmeInd->uParam.sDcfmScan.u8Status)            {            case MAC_ENUM_SUCCESS:                if (psMlmeInd->uParam.sDcfmScan.u8ScanType == MAC_MLME_SCAN_TYPE_ACTIVE)                {#ifdef UART0_DEBUG                    vDebug("MScOk ");#endif                    /* Determine which, if any, network contains demo coordinator.                       Algorithm for determining which network to connect to is                       beyond the scope of 802.15.4, and we use a simple approach                       of matching the required PAN ID and short address, both of                       which we already know */                    i = 0;                    while (i < psMlmeInd->uParam.sDcfmScan.u8ResultListSize)                    {                        psPanDesc = &psMlmeInd->uParam.sDcfmScan.uList.asPanDescr[i];#ifdef UART0_DEBUG                        vDisplayHex(psPanDesc->u8LogicalChan, 2);                        vDebug(":");                        vDisplayHex(psPanDesc->sCoord.u16PanId, 4);                        vDebug(":");                        vDisplayHex(psPanDesc->sCoord.uAddr.u16Short, 4);                        vDebug(" ");#endif                        if ((psPanDesc->sCoord.u16PanId == DEMO_PAN_ID)                            && (psPanDesc->sCoord.u8AddrMode == 2)                            && (psPanDesc->sCoord.uAddr.u16Short == DEMO_COORD_ADDR))                        {#ifdef UART0_DEBUG                            vDebug("MScUs ");#endif                            /* Matched so start to synchronise and associate */                            sDemoData.sSystem.u8Channel = psPanDesc->u8LogicalChan;                            vStartSync();                            return;                        }                        i++;                    }                    /* Failed to find coordinator: keep trying */                    vStartScan();                }                break;            case MAC_ENUM_NO_BEACON:                /* Failed to find coordinator: keep trying */                vStartScan();                break;            default:                break;            }        }        break;    case MAC_MLME_DCFM_ASSOCIATE:        /* Only respond if in associating mode */        switch (sDemoData.sSystem.eState)        {        case E_STATE_ASSOCIATING:            if (psMlmeInd->uParam.sDcfmAssociate.u8Status == MAC_ENUM_SUCCESS)            {                /* Store short address */                sDemoData.sSystem.u16ShortAddr = psMlmeInd->uParam.sDcfmAssociate.u16AssocShortAddr;                /* Node is a value between 0 and the number of endpoints - 1.                   It is determined by the short address */                sDemoData.sSystem.u8ThisNode = sDemoData.sSystem.u16ShortAddr - DEMO_ENDPOINT_ADDR_BASE;                /* We are now in the running state */                sDemoData.sSystem.eState = E_STATE_RUNNING;            }            else            {                /* Try, try again */                vStartAssociate();            }            break;        case E_STATE_ASSOC_TO_SCAN:            vStartScan();            break;        default:            break;        }        break;    case MAC_MLME_IND_BEACON_NOTIFY:        /* Beacon has arrived. If in sync'ing mode, should only see this           once synchronisation has been achieved. If running, use this           to time reading of sensors. In other states, ignore it */        switch (sDemoData.sSystem.eState)        {        case E_STATE_SYNCING:            /* Can now associate */            vStartAssociate();            break;        case E_STATE_RUNNING:            /* Process received data in beacon payload */            vProcessRxBeacon(psMlmeInd);            break;        default:            break;        }        break;    case MAC_MLME_IND_SYNC_LOSS:        /* Lost sync with coordinator so try to find coordinator again */        if (sDemoData.sSystem.eState != E_STATE_ASSOCIATING)        {            vStartScan();        }        else        {            sDemoData.sSystem.eState = E_STATE_ASSOC_TO_SCAN;        }        break;    default:        break;    }}/**************************************************************************** * * NAME: bProcessKeyPress * * DESCRIPTION: * Porcesses buttons, to turn on or off the remote switch or to detect a * reset request. * * RETURNS: * TRUE if reset combination detected. * ****************************************************************************/PRIVATE bool_t bProcessKeyPress(void)    /*肚癳data 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人高清在线视频| 日韩一区二区三区在线观看 | 亚洲人成人一区二区在线观看| 看片的网站亚洲| 欧美另类变人与禽xxxxx| 性久久久久久久| 欧美一区二区三区婷婷月色| 亚洲高清免费在线| 欧美浪妇xxxx高跟鞋交| 中文字幕在线播放不卡一区| 91视频一区二区三区| 国产精品久久久久毛片软件| 成人激情小说乱人伦| 国产亚洲精品免费| 99精品视频在线播放观看| 中文字幕在线不卡一区二区三区| 国产精品99久久久久久宅男| 91精品国产乱码| 久久99蜜桃精品| 久久日韩精品一区二区五区| 国产激情一区二区三区桃花岛亚洲| 国产精品网站在线| www.亚洲在线| 一区二区三区小说| 欧美高清视频一二三区 | 国产·精品毛片| 亚洲激情校园春色| 欧美中文字幕一区| 日韩成人午夜精品| 777精品伊人久久久久大香线蕉| 精品无码三级在线观看视频| 久久久亚洲精华液精华液精华液 | 中文字幕综合网| 4hu四虎永久在线影院成人| 免费在线看成人av| 久久久一区二区| 91香蕉国产在线观看软件| 一区二区三区四区在线| 欧美喷水一区二区| 成人av在线看| 午夜国产精品影院在线观看| 欧美变态tickling挠脚心| 国产激情视频一区二区三区欧美 | 91成人免费在线| 日韩和欧美一区二区三区| 久久综合色婷婷| 一本一本大道香蕉久在线精品| 久久国产精品99精品国产| 国产精品国产三级国产aⅴ无密码| 色天天综合色天天久久| 青青草伊人久久| 国产精品家庭影院| 69久久99精品久久久久婷婷| 丁香婷婷深情五月亚洲| 亚洲国产精品一区二区久久| 在线观看91av| 欧美网站大全在线观看| 九色综合狠狠综合久久| 中文字幕精品三区| 777色狠狠一区二区三区| 国产99久久精品| 久久99久久99| 亚洲一线二线三线视频| 久久免费美女视频| 欧美精品乱码久久久久久| 91美女片黄在线观看91美女| 久久精品国产亚洲高清剧情介绍 | 日本午夜一区二区| 中文字幕一区二区三区av| 久久九九久久九九| 91精品在线一区二区| av电影天堂一区二区在线观看| 国产一区二区福利| 精品一区二区三区在线播放视频| 亚洲美女免费视频| 国产精品成人在线观看| 久久丝袜美腿综合| 欧美日韩另类一区| 9191国产精品| 欧美日本高清视频在线观看| 99re8在线精品视频免费播放| 成人性生交大合| 国产精品一区二区视频| 国产在线不卡一区| 另类小说图片综合网| 精品一区二区三区日韩| 六月婷婷色综合| 日本欧美肥老太交大片| 五月婷婷欧美视频| 久久精品国产精品亚洲综合| 蜜桃一区二区三区在线| 丝袜美腿亚洲综合| 午夜成人免费电影| 日韩有码一区二区三区| 日韩福利视频导航| 青青国产91久久久久久| 久久精品免费观看| 五月天一区二区| 亚洲超碰精品一区二区| 蜜桃av噜噜一区二区三区小说| 男女性色大片免费观看一区二区| 亚洲va天堂va国产va久| 视频在线观看国产精品| 日本大胆欧美人术艺术动态| 夜夜揉揉日日人人青青一国产精品| 亚洲欧美日韩在线播放| 亚洲国产精品久久一线不卡| 一区二区成人在线| 婷婷夜色潮精品综合在线| 亚洲在线观看免费| 捆绑调教一区二区三区| 国产一区欧美二区| youjizz国产精品| 欧美三日本三级三级在线播放| 欧美人妇做爰xxxⅹ性高电影| 91精品久久久久久久91蜜桃| 日韩三级免费观看| 久久精品亚洲麻豆av一区二区 | 国内精品不卡在线| 美女视频一区在线观看| 成人黄色av电影| 欧美午夜视频网站| 日韩一区二区三区免费看| 3atv一区二区三区| 久久久久久免费| ...中文天堂在线一区| 亚洲欧洲中文日韩久久av乱码| 亚洲国产美国国产综合一区二区| 制服丝袜成人动漫| 久久99在线观看| 国产毛片精品国产一区二区三区| 成人18视频日本| 欧美色成人综合| 国产精品女人毛片| 免费视频最近日韩| 色狠狠一区二区| 国产精品素人视频| 亚洲柠檬福利资源导航| 国产在线精品一区二区夜色| 在线观看91精品国产入口| 国产婷婷一区二区| 美腿丝袜亚洲综合| 欧美日韩国产小视频在线观看| 国产精品乱码久久久久久| 精品影视av免费| 制服丝袜亚洲色图| 亚洲国产欧美另类丝袜| 成人小视频在线观看| 精品欧美乱码久久久久久1区2区| 亚洲精品少妇30p| 成人av电影免费观看| 久久日一线二线三线suv| 日韩影院免费视频| 欧美网站一区二区| 亚洲综合清纯丝袜自拍| 色狠狠一区二区三区香蕉| 亚洲乱码国产乱码精品精98午夜| 成人污污视频在线观看| 久久噜噜亚洲综合| 国产精品18久久久久久vr| 欧美一区二区三区在线看| 丝袜亚洲另类丝袜在线| 欧美日韩午夜在线视频| 亚洲一区二区av在线| 欧美性色综合网| 五月婷婷综合网| 欧美日韩国产免费一区二区| 亚洲黄色小说网站| 色婷婷av一区二区三区之一色屋| 亚洲色图在线播放| 日本伦理一区二区| 亚洲自拍偷拍九九九| 欧美剧在线免费观看网站| 首页亚洲欧美制服丝腿| 欧美一区二区人人喊爽| 天天av天天翘天天综合网色鬼国产| 欧美日韩久久久一区| 青青草国产精品97视觉盛宴| 欧美成人精品3d动漫h| 国产一区在线精品| 中文字幕一区二区三区四区不卡| 9i在线看片成人免费| 一区二区三区四区精品在线视频 | 国产午夜精品一区二区| 国产1区2区3区精品美女| 亚洲手机成人高清视频| 在线日韩av片| 免费在线看成人av| 国产午夜一区二区三区| 91蜜桃婷婷狠狠久久综合9色| 亚洲午夜免费福利视频| 精品日韩一区二区| 成人h精品动漫一区二区三区| 亚洲精品中文字幕在线观看| 欧美日本高清视频在线观看| 国产麻豆欧美日韩一区| 亚洲区小说区图片区qvod| 日韩一区二区精品| 成人教育av在线| 日韩 欧美一区二区三区|