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

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

?? coordinatora.c

?? 此程式庫有許多的zigbee程式源碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
                    u8Node++;                }                /* Assume association succeeded */                u8AssocStatus = 0;                if (u16ShortAddress == 0xffff)                {                    if (sDemoData.sNode.u8AssociatedNodes < DEMO_ENDPOINTS)                    {                        /* Allocate short address as next in list */                        u16ShortAddress = DEMO_ENDPOINT_ADDR_BASE + sDemoData.sNode.u8AssociatedNodes;                        /* Store details for future use */                        sDemoData.sNode.asAssocNodes[sDemoData.sNode.u8AssociatedNodes].sExtAddr = psMlmeInd->uParam.sIndAssociate.sDeviceAddr;                        sDemoData.sNode.asAssocNodes[sDemoData.sNode.u8AssociatedNodes].u16ShortAddr = u16ShortAddress;                        sDemoData.sNode.u8AssociatedNodes++;                    }                    else                    {                        /* PAN access denied */                        u8AssocStatus = 2;                    }                }                /* Update display if necessary */                if (sDemoData.sSystem.eState == E_STATE_NETWORK)                {                    vBuildNetworkScreen(sDemoData.sGui.eCurrentSensor);                }            }            else            {                /* PAN access denied */                u8AssocStatus = 2;            }            /* Create association response */            sMlmeReqRsp.u8Type = MAC_MLME_RSP_ASSOCIATE;            sMlmeReqRsp.u8ParamLength = sizeof(MAC_MlmeRspAssociate_s);            sMlmeReqRsp.uParam.sRspAssociate.sDeviceAddr = psMlmeInd->uParam.sIndAssociate.sDeviceAddr;            sMlmeReqRsp.uParam.sRspAssociate.u16AssocShortAddr = u16ShortAddress;            sMlmeReqRsp.uParam.sRspAssociate.u8Status = u8AssocStatus;            sMlmeReqRsp.uParam.sRspAssociate.u8SecurityEnable = FALSE;            /* Send association response */            vAppApiMlmeRequest(&sMlmeReqRsp, &sMlmeSyncCfm);            /* There is no confirmation for an association response, hence no need to check */        }        break;    }}/**************************************************************************** * * NAME: bProcessForTimeout * * DESCRIPTION: * Processes any incoming hardware events to see if the event is wake-up * timer 0 firing, as this is the only hardware event responded to. * * PARAMETERS: Name          RW Usage *             psHardwareInd R  Pointer to structure containing hardware event * * RETURNS: * TRUE if event was wake-up timer 0 firing. * ****************************************************************************/PRIVATE bool_t bProcessForTimeout(AppQApiHwInd_s *psHardwareInd){    /* Check to see if hardware indication was for wake timer 0 */    if ((psHardwareInd->u32DeviceId == E_AHI_DEVICE_SYSCTRL)        && (psHardwareInd->u32ItemBitmap & (1 << E_AHI_SYSCTRL_WK0)))    {        return TRUE;    }    return FALSE;}/**************************************************************************** * * NAME: vProcessUpdateBlock * * DESCRIPTION: * Called once per second to update the scrolling graphs and, if showing a * screen with graphs on, updating the LCD. * * RETURNS: * void * ****************************************************************************/PRIVATE void vProcessUpdateBlock(void){    tsNodeData *psNodeData;    tsNodeElementData *psNodeElementData;    uint8 *pu8GraphData;    uint8 u8PrevPoint;    uint8 u8Node;    uint8 u8Sensor;    uint8 u8Value;    /* Update graphs */    for (u8Node = 0; u8Node < DEMO_ENDPOINTS; u8Node++)    {        psNodeData = &sDemoData.sNode.asNodeData[u8Node];        if (psNodeData->u8FramesMissed)        {            /* Missed data, so copy previous value forward */            u8PrevPoint = (sDemoData.sGui.u8GraphPos - 1) & (DEMO_HISTORY_LEN - 1);            for (u8Sensor = 0; u8Sensor < DEMO_SENSOR_LIST_LEN; u8Sensor++)            {                pu8GraphData = psNodeData->asNodeElementData[u8Sensor].au8GraphData;                pu8GraphData[sDemoData.sGui.u8GraphPos] = pu8GraphData[u8PrevPoint];            }        }        else        {            /* Data must be scaled for graph (0-13)               Temp range is 0-52               Humidity range is 0-104               Light range is 0-6            */            for (u8Sensor = 0; u8Sensor < DEMO_SENSOR_LIST_LEN; u8Sensor++)            {                psNodeElementData = &psNodeData->asNodeElementData[u8Sensor];                u8Value = psNodeElementData->u8NowValue;                switch (u8Sensor)                {                case E_SENSOR_TEMP:                    u8Value = u8Value >> 2;                    break;                case E_SENSOR_HTS:                    u8Value = u8Value >> 3;                    break;                case E_SENSOR_ALS:                    u8Value = u8Value * 2;                    break;                }                if (u8Value > 13)                {                    u8Value = 13;                }                psNodeElementData->au8GraphData[sDemoData.sGui.u8GraphPos] = u8Value;            }        }        /* For next time, assume failed until proven otherwise */        if (psNodeData->u8FramesMissed < FRAMES_MISSED_INDICATION)        {            psNodeData->u8FramesMissed++;        }    }    /* Increment graph position */    sDemoData.sGui.u8GraphPos = (sDemoData.sGui.u8GraphPos + 1) & (DEMO_HISTORY_LEN - 1);    /* Update display */    switch (sDemoData.sSystem.eState)    {    case E_STATE_NETWORK:        vUpdateNetworkScreen(sDemoData.sGui.eCurrentSensor);        break;    case E_STATE_NODE:        vUpdateNodeScreen(sDemoData.sGui.u8CurrentNode);        break;    default:        break;    }}/**************************************************************************** * * NAME: vProcessNetworkKeyPress * * DESCRIPTION: * Handles button presses on the Network screen. The buttons can move onto * the first Node screen (if there are any nodes) or select a particular * sensor. * * PARAMETERS:      Name        RW  Usage *                  u8KeyMap    R   Current buttons pressed bitmap * * RETURNS: * void * ****************************************************************************/PRIVATE void vProcessNetworkKeyPress(uint8 u8KeyMap){    switch (u8KeyMap)    {    case E_KEY_0:        /* Node button: go to node screen (if there are any nodes) */        if (sDemoData.sNode.u8AssociatedNodes > 0)        {            sDemoData.sSystem.eState = E_STATE_NODE;            sDemoData.sGui.u8CurrentNode = 0;            vBuildNodeScreen(sDemoData.sGui.u8CurrentNode);        }        break;    case E_KEY_1:        /* Temp button: change if not already there */        vUpdateNetworkSensor(E_SENSOR_TEMP);        break;    case E_KEY_2:        /* Humidity button: change if not already there */        vUpdateNetworkSensor(E_SENSOR_HTS);        break;    case E_KEY_3:        /* Temp button: change if not already there */        vUpdateNetworkSensor(E_SENSOR_ALS);        break;    }}/**************************************************************************** * * NAME: vUpdateNetworkSensor * * DESCRIPTION: * Simple function to save a little code. If the user presses a button on the * Network screen to select a sensor, this checks that the sensor is not the * same as the current sensor before updating the screen. * * PARAMETERS:      Name            RW  Usage *                  eSensor         R   New sensor to display * * RETURNS: * void * ****************************************************************************/PRIVATE void vUpdateNetworkSensor(teSensor eSensor){    if (sDemoData.sGui.eCurrentSensor != eSensor)    {        sDemoData.sGui.eCurrentSensor = eSensor;        vBuildNetworkScreen(eSensor);    }}/**************************************************************************** * * NAME: vProcessNodeKeyPress * * DESCRIPTION: * Handles button presses on the Node screens. The first button can move to * the next Node screen (if there are any more nodes) or back to the Network * screen. Another button selects the Node Control screen and the other two * toggle the state of the remote switch. * * PARAMETERS:      Name        RW  Usage *                  u8KeyMap    R   Current buttons pressed bitmap * * RETURNS: * void * ****************************************************************************/PRIVATE void vProcessNodeKeyPress(uint8 u8KeyMap){    switch (u8KeyMap)    {    case E_KEY_0:        /* Node button: go to next node or network screen */        sDemoData.sGui.u8CurrentNode++;        if (sDemoData.sGui.u8CurrentNode == sDemoData.sNode.u8AssociatedNodes)        {            sDemoData.sSystem.eState = E_STATE_NETWORK;            sDemoData.sGui.eCurrentSensor = E_SENSOR_TEMP;            vBuildNetworkScreen(E_SENSOR_TEMP);        }        else        {            vBuildNodeScreen(sDemoData.sGui.u8CurrentNode);        }        break;    case E_KEY_1:        /* Control screen button */        sDemoData.sSystem.eState = E_STATE_NODE_CONTROL;        sDemoData.sGui.u8ControlSelection = 0;        vBuildNodeControlScreen(sDemoData.sGui.u8CurrentNode);        break;    case E_KEY_2:        /* On button */        sDemoData.sNode.asNodeData[sDemoData.sGui.u8CurrentNode].boDeviceOn = TRUE;        break;    case E_KEY_3:        /* Off button */        sDemoData.sNode.asNodeData[sDemoData.sGui.u8CurrentNode].boDeviceOn = FALSE;        break;    }}/**************************************************************************** * * NAME: vProcessNodeControlKeyPress * * DESCRIPTION: * Handles button presses on the Node Control screen. The first button * selects which item to alter, the next two adjust the value up or down, and * the last button returns to the Node screen. * * PARAMETERS:      Name        RW  Usage *                  u8KeyMap    R   Current buttons pressed bitmap * * RETURNS: * void * ****************************************************************************/PRIVATE void vProcessNodeControlKeyPress(uint8 u8KeyMap){    tsNodeData *psNodeData = &sDemoData.sNode.asNodeData[sDemoData.sGui.u8CurrentNode];    bool_t bUpNotDown;    switch (u8KeyMap)    {    case E_KEY_0:        /* Select button: move to next item in list */        vAdjustAlarm(&sDemoData.sGui.u8ControlSelection, CONTROL_LIST_LEN - 1, 0, TRUE);        vUpdateNodeControlScreen(sDemoData.sGui.u8CurrentNode, sDemoData.sGui.u8ControlSelection, TRUE);        break;    case E_KEY_1:        /* Plus button: increment value */    case E_KEY_2:        /* Minus button: decrement value */        bUpNotDown = (u8KeyMap == E_KEY_1);        switch (sDemoData.sGui.u8ControlSelection)        {        case 0:            /* Temp high alarm */            vAdjustAlarm(&psNodeData->asNodeElementData[E_SENSOR_TEMP].u8HighAlarm,                         TEMP_HIGH_MAX, 0, bUpNotDown);            break;        case 1:            /* Temp low alarm */            vAdjustAlarm(&psNodeData->asNodeElementData[E_SENSOR_TEMP].u8LowAlarm,                            TEMP_HIGH_MAX, 255, bUpNotDown);            break;        case 2:            /* Light high alarm */            vAdjustAlarm(&psNodeData->asNodeElementData[E_SENSOR_ALS].u8HighAlarm,                            LIGHT_HIGH_MAX, 0, bUpNotDown);            break;        case 3:            /* Light low alarm */            vAdjustAlarm(&psNodeData->asNodeElementData[E_SENSOR_ALS].u8LowAlarm,                            LIGHT_HIGH_MAX, 255, bUpNotDown);            break;        }        vUpdateNodeControlScreen(sDemoData.sGui.u8CurrentNode, sDemoData.sGui.u8ControlSelection, TRUE);        break;    case E_KEY_3:        /* Done button: return to node screen */        sDemoData.sSystem.eState = E_STATE_NODE;        vBuildNodeScreen(sDemoData.sGui.u8CurrentNode);        break;    }}/**************************************************************************** * * NAME: vProcessSetupKeyPress * * DESCRIPTION: * Handles button presses on the Setup screen. The first button * selects which item to alter, the next two adjust the value up or down, and * the last button puts the device into running mode, starting the beacons * and moving to the Network screen. * * PARAMETERS:      Name        RW  Usage *                  u8KeyMap    R   Current buttons pressed bitmap * * RETURNS: * void * ****************************************************************************/PRIVATE void vProcessSetupKeyPress(uint8 u8KeyMap){    switch (u8KeyMap)    {    case E_KEY_0:        /* Select button: move to next item in list */        vAdjustAlarm(&sDemoData.sGui.u8SetupSelection, SETUP_LIST_LEN - 1, 0, TRUE);        vUpdateSetupScreen(sDemoData.sGui.u8SetupSelection, TRUE);        break;    case E_KEY_1:        /* Plus button: increment value */    case E_KEY_2:        /* Minus button: decrement value */        switch (sDemoData.sGui.u8SetupSelection)        {        case 0:            /* Local node */            vToggleOnOff(&sDemoData.sNode.bLocalNode);            break;        case 1:            /* Four node selection */            vToggleOnOff(&sDemoData.sGui.bShowFourNodes);            break;        }        vUpdateSetupScreen(sDemoData.sGui.u8SetupSelection, TRUE);        break;    case E_KEY_3:        /* Done button: start beaconing and go to network screen. If           local node is not being used, number of associated nodes is 0,           as none can have associated yet, otherwise it is 1 as set during           initialisation */        if (sDemoData.sNode.bLocalNode == FALSE)        {            sDemoData.sNode.u8AssociatedNodes = 0;        }        vStartBeacon();        sDemoData.sSystem.eState = E_STATE_NETWORK;        vBuildNetworkScreen(sDemoData.sGui.eCurrentSensor);        break;    }}/**************************************************************************** * * NAME: vBuildSetChannelScreen * * DESCRIPTION: * Creates the Set Channel screen, consisting of a bitmap of the Jennic logo * and labels for the soft buttons on the bottom row. Uses the related update * function to display the current channel and refresh the LCD. * * RETURNS: * void * ****************************************************************************/PRIVATE void vBuildSetChannelScreen(void){    vLcdClear();    vLcdWriteBitmap(&sJennicLogo, 0, 1);    vLcdWriteText("press any key please", 7, 7);//

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美最猛性xxxxx直播| 久久免费精品国产久精品久久久久| 粉嫩蜜臀av国产精品网站| 日韩精品乱码av一区二区| 亚欧色一区w666天堂| 亚洲综合丝袜美腿| 亚洲国产成人av网| 日韩理论在线观看| 日本一二三不卡| 亚洲天堂福利av| 国产精品成人免费| 精品国产91洋老外米糕| 欧美一区二区三区在| 欧美日韩美女一区二区| 777奇米四色成人影色区| 欧美午夜影院一区| 99re成人在线| 91免费观看在线| 色成人在线视频| 成人中文字幕合集| 国产精品一区专区| 成人免费高清视频| 成人av午夜电影| 在线观看91视频| 欧美日韩免费电影| 91麻豆精品91久久久久同性| 精品国内二区三区| 久久久久高清精品| 国产精品欧美一级免费| 免费成人美女在线观看| 三级在线观看一区二区| 夜夜亚洲天天久久| 美女视频免费一区| 国产一区视频在线看| 99天天综合性| 色狠狠色噜噜噜综合网| 欧美日本在线一区| 欧美一区二区免费| 久久久久久免费| 国产精品久99| 亚洲va欧美va人人爽午夜| 欧美a级一区二区| 麻豆传媒一区二区三区| 成人午夜伦理影院| 91福利在线看| 精品精品国产高清一毛片一天堂| 国产午夜精品久久久久久免费视| 亚洲精品乱码久久久久久久久 | 91小视频在线| 欧美日韩中字一区| 日韩欧美一二区| 日韩一区二区不卡| 国产欧美日韩中文久久| 亚洲精品少妇30p| 国产一区美女在线| 一本色道亚洲精品aⅴ| 欧美tickling挠脚心丨vk| 国产精品传媒入口麻豆| 午夜亚洲福利老司机| 国产91色综合久久免费分享| 色综合久久久久综合99| 久久久久久久久一| 亚洲免费伊人电影| 免费观看30秒视频久久| 色综合咪咪久久| 精品精品欲导航| 精品国产免费人成电影在线观看四季| 亚洲欧美日韩一区二区| 欧美a一区二区| 欧美自拍丝袜亚洲| 精品免费国产一区二区三区四区| 国产精品成人免费| 六月丁香婷婷色狠狠久久| jlzzjlzz国产精品久久| 日韩欧美在线1卡| 亚洲日本青草视频在线怡红院| 美国十次综合导航| 在线观看视频一区| 国产亚洲一区二区三区四区| 亚洲国产精品久久一线不卡| 成人性生交大片免费| 日韩欧美一区在线观看| 午夜精品久久一牛影视| 成年人网站91| 久久蜜臀精品av| 日产精品久久久久久久性色| 欧美体内she精视频| 欧美激情中文字幕一区二区| 美女视频一区在线观看| 欧美日韩日日骚| 亚洲欧美激情一区二区| 成人免费看的视频| 2021久久国产精品不只是精品| 亚洲男人都懂的| 成人av网站在线观看| 欧美电视剧免费全集观看| 日本亚洲视频在线| 欧美性受xxxx黑人xyx| 亚洲国产综合在线| 99精品在线观看视频| 国产精品久久看| 国产精品一品视频| 欧美一级欧美一级在线播放| 亚洲午夜免费视频| 色嗨嗨av一区二区三区| 中文字幕在线免费不卡| 夫妻av一区二区| 国产精品久久影院| 成人性生交大片免费| 亚洲精品一区在线观看| 久久精品国产亚洲a| 欧美一区二区三区小说| 卡一卡二国产精品 | 欧美在线小视频| 中文欧美字幕免费| 成人黄色av电影| 国产欧美精品一区二区色综合朱莉| 国产成人综合在线| 久久久久国产精品厨房| 黄色小说综合网站| 国产精品午夜免费| 国产a久久麻豆| 亚洲免费伊人电影| 日本韩国欧美在线| 日韩精品一二三四| 日韩午夜激情av| 男女激情视频一区| 国产欧美日韩另类视频免费观看| 国产一区二区三区电影在线观看 | 久久99国产精品免费网站| 国产亚洲综合在线| 国产成人午夜电影网| 亚洲精品免费电影| 欧美手机在线视频| 天天色天天爱天天射综合| 精品久久国产老人久久综合| 国产一区二区按摩在线观看| 亚洲欧洲成人精品av97| heyzo一本久久综合| 成人免费在线播放视频| 欧美日韩黄色影视| 麻豆精品在线观看| 国产欧美日本一区视频| 色综合久久久久| 丝袜美腿一区二区三区| 日韩精品在线看片z| 粉嫩aⅴ一区二区三区四区五区| 久久久久久**毛片大全| av色综合久久天堂av综合| 香蕉加勒比综合久久| 欧美电影免费观看高清完整版在线 | 国产精品一区二区三区四区| 亚洲欧美日韩久久| 欧美一区二区三区日韩| 狠狠狠色丁香婷婷综合久久五月| 国产精品久久久久影院亚瑟| 欧美在线观看禁18| 国产传媒日韩欧美成人| 一区二区三区小说| 久久免费电影网| 在线影院国内精品| 国产精品一区一区三区| 一区二区三区av电影| 在线成人小视频| 成人丝袜18视频在线观看| 亚洲自拍偷拍图区| 中文字幕免费不卡| 欧美日韩美少妇| 本田岬高潮一区二区三区| 午夜精品久久久久久久久久久 | 亚洲欧美激情小说另类| 欧美成人官网二区| 欧美日韩在线三级| 国产99一区视频免费| 九九国产精品视频| 亚洲一区在线观看免费观看电影高清 | 国产福利一区二区| 日本欧美韩国一区三区| 国产精品久久精品日日| 国产婷婷色一区二区三区四区| 欧美综合欧美视频| av电影天堂一区二区在线| 久久国产剧场电影| 国产精品久久久久aaaa樱花| 国产无人区一区二区三区| 欧美日韩精品一区二区三区| 色婷婷久久久亚洲一区二区三区 | 麻豆精品视频在线| 亚洲地区一二三色| 国产精品久久久久三级| 色屁屁一区二区| 成人av网站免费| 国产一区在线看| 黄色日韩网站视频| 视频一区二区三区在线| 一区av在线播放| 欧美精彩视频一区二区三区| 26uuu色噜噜精品一区| 91精品啪在线观看国产60岁| 一道本成人在线|