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

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

?? wuart_c.c

?? Zigbee無線網絡節點的串口控制LED燈
?? C
?? 第 1 頁 / 共 2 頁
字號:
/****************************************************************************
 *
 * MODULE:             wuart_c.c
 *
 * COMPONENT:          $RCSfile: wuart_c.c,v $
 *
 * VERSION:            $Name:  $
 *
 * REVISION:           $Revision: 1.1 $
 *
 * DATED:              $Date: 2008/01/30 09:52:07 $
 *
 * STATUS:             $State: Exp $
 *
 * AUTHOR:             Ian Morris
 *
 * DESCRIPTION
 *
 * CHANGE HISTORY:
 *
 * $Log: wuart_c.c,v $ * Revision 1.1  2008/01/30 09:52:07  lmitch * Updated to work with new SDK * * Revision 1.1  2006/07/24 14:40:12  rmm * First Release 1v0 (Based on Application Note JN-AN-1005-Wireless-UART Version 1.5). *
 *
 *
 * LAST MODIFIED BY:   $Author: lmitch $
 *                     $Modtime: $
 *
 *
 ****************************************************************************
 * * This software is owned by Jennic and/or its supplier and is protected * under applicable copyright laws. All rights are reserved. We grant You, * and any third parties, a license to use this software solely and * exclusively on Jennic products. You, and any third parties must reproduce * the copyright and warranty notice and any other legend of ownership on each * copy or partial copy of the software. * * THIS SOFTWARE IS PROVIDED "AS IS". JENNIC MAKES NO WARRANTIES, WHETHER * EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, * ACCURACY OR LACK OF NEGLIGENCE. JENNIC SHALL NOT, IN ANY CIRCUMSTANCES, * BE LIABLE FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO, SPECIAL, * INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON WHATSOEVER. * * Copyright Jennic Ltd 2005, 2006, 2007. All rights reserved * ****************************************************************************/
/****************************************************************************/
/***        Include files                                                 ***/
/****************************************************************************/
#include <jendefs.h>
#include <AppHardwareApi.h>
#include <AppQueueApi.h>
#include <mac_sap.h>
#include <mac_pib.h>
#include <string.h>
#include <AppApi.h>
#include <LcdDriver.h>
#include <LedControl.h>#include "config.h"
#include "serialq.h"
#include "uart.h"
#include "serial.h"
#include "gdb.h"
/****************************************************************************/
/***        Macro Definitions                                             ***/
/****************************************************************************/

/****************************************************************************/
/***        Type Definitions                                              ***/
/****************************************************************************/

/* System states with respect to screen display being shown */
typedef enum
{
    E_STATE_INIT,
    E_STATE_START_ENERGY_SCAN,
    E_STATE_ENERGY_SCANNING,
    E_STATE_START_COORDINATOR,
    E_STATE_RUNNING_UART_APP

} teState;

/* Used to track an association between extended address and short address */
typedef struct
{
    uint32 u32ExtAddrLo;
    uint32 u32ExtAddrHi;
    uint16 u16ShortAddr;
} tsAssocNodes;


/* All application data with scope within the entire file is kept here,
   including all stored node data, GUI settings and current state */
typedef struct
{
    struct
	{
	    tsAssocNodes asAssocNodes[MAX_UART_NODES];
	    uint8        u8AssociatedNodes;
	} sNode;

    struct
    {
        teState eState;
        uint8   u8Channel;
    } sSystem;
} tsCoordData;

/****************************************************************************/
/***        Local Function Prototypes                                     ***/
/****************************************************************************/

/****************************************************************************/
/***        Exported Variables                                            ***/
/****************************************************************************/

/****************************************************************************/
/***        Local Variables                                               ***/
/****************************************************************************/
PRIVATE tsCoordData sCoordData;
PRIVATE uint8 u8TxFrameHandle = 0;
PRIVATE uint8 u8RxFrameHandle = 0;
PRIVATE void *pvMac;
PRIVATE MAC_Pib_s *psPib;

/****************************************************************************/
/***        Exported Functions                                            ***/
/****************************************************************************/

/****************************************************************************/
/***        Local Functions                                               ***/
/****************************************************************************/
PRIVATE void vWUART_Init(void);
PRIVATE void vWUART_TxData(void);
PRIVATE void vProcessEventQueues(void);
PRIVATE void vStartCoordinator(void);
PRIVATE void vHandleNodeAssociation(MAC_MlmeDcfmInd_s *psMlmeInd);
PRIVATE void vProcessIncomingMlme(MAC_MlmeDcfmInd_s *psMlmeInd);
PRIVATE void vProcessIncomingData(MAC_McpsDcfmInd_s *psMcpsInd);
PRIVATE void vProcessIncomingHwEvent(AppQApiHwInd_s *psAHI_Ind);
PRIVATE void vTickTimerISR(uint32 u32Device, uint32 u32ItemBitmap);
PRIVATE void vStartEnergyScan(void);
PRIVATE void vHandleEnergyScanResponse(MAC_MlmeDcfmInd_s *psMlmeInd);

/****************************************************************************
 *
 * NAME: AppColdStart
 *
 * DESCRIPTION:
 *
 * PARAMETERS:      Name            RW  Usage
 * None.
 *
 * RETURNS:
 * None.
 *
 * NOTES:
 * Entry point for a power on reset or wake from sleep mode.
 ****************************************************************************/
PUBLIC void AppColdStart(void)
{
	/* Debug hooks: include these regardless of whether debugging or not */	HAL_GDB_INIT();    HAL_BREAKPOINT();    vWUART_Init();

    while(1)
    {
        vProcessEventQueues();

        switch (sCoordData.sSystem.eState)
        {
        case E_STATE_INIT:
            sCoordData.sSystem.u8Channel = CHANNEL_MIN;
            sCoordData.sSystem.eState = E_STATE_START_ENERGY_SCAN;
            break;

        case E_STATE_START_ENERGY_SCAN:
            vStartEnergyScan();
            sCoordData.sSystem.eState = E_STATE_ENERGY_SCANNING;
            break;

        case E_STATE_ENERGY_SCANNING:
            break;

        case E_STATE_START_COORDINATOR:
            vStartCoordinator();
            sCoordData.sSystem.eState = E_STATE_RUNNING_UART_APP;
            break;

        case E_STATE_RUNNING_UART_APP:
            break;
        }

    }
}

/****************************************************************************
 *
 * NAME: AppWarmStart
 *
 * DESCRIPTION:
 * Entry point for a wake from sleep mode with the memory contents held. We
 * are not using this mode and so should never get here.
 *
 * PARAMETERS:      Name            RW  Usage
 * None.
 *
 * RETURNS:
 * None.
 *
 * NOTES:
 * None.
 ****************************************************************************/
PUBLIC void AppWarmStart(void)
{
    AppColdStart();
}

/****************************************************************************
 *
 * NAME: vWUART_Init
 *
 * DESCRIPTION:
 * Initialises stack and hardware, sets non-default values in the 802.15.4
 * PIB.
 *
 * PARAMETERS:      Name            RW  Usage
 * None.
 *
 * RETURNS:
 * None.
 *
 * NOTES:
 * None.
 ****************************************************************************/
PRIVATE void vWUART_Init(void)
{
	/* Initialise the LED's and turn them all off */    vLedInitFfd();    vLedControl(0, FALSE);    vLedControl(1, FALSE);    vLedControl(2, FALSE);    vLedControl(3, FALSE);
    sCoordData.sNode.u8AssociatedNodes = 0;

    /* Initialise stack and hardware interfaces. We aren't using callbacks
       at all, just monitoring the upward queues in a loop */
    (void)u32AppQApiInit(NULL, NULL, NULL);
    (void)u32AHI_Init();

    vAHI_SysCtrlRegisterCallback(vAppQApiPostHwInt);
	vAHI_Uart0RegisterCallback(vAppQApiPostHwInt);
	vAHI_Timer1RegisterCallback(vAppQApiPostHwInt);

    pvMac = pvAppApiGetMacHandle();
    psPib = MAC_psPibGetHandle(pvMac);

    /* Set Pan ID and short address in PIB (also sets match registers in hardware) */
    MAC_vPibSetPanId(pvMac, PAN_ID);
    MAC_vPibSetShortAddr(pvMac, COORD_ADDR);

    /* Allow nodes to associate */
    psPib->bAssociationPermit = 1;

    /* Enable receiver to be on when idle */
    MAC_vPibSetRxOnWhenIdle(pvMac, 1, FALSE);

    /* rmm
    Initialise the Lcd Display
    */
    vLcdResetDefault(); // LCD Default settings
    vLcdClear();        // Clear Shadow memory
    vLcdRefreshAll();   // Copy Shadowe mem to Lcd

    /* Initialise the serial port and rx/tx queues */
    vSerial_Init();

    /* Initialise tick timer to give 10ms interrupt */
    vAHI_TickTimerConfigure(E_AHI_TICK_TIMER_DISABLE);
    vAHI_TickTimerWrite(0);
    vAHI_TickTimerInit(vTickTimerISR);
    vAHI_TickTimerInterval(TICK_PERIOD_COUNT);
    vAHI_TickTimerConfigure(E_AHI_TICK_TIMER_RESTART);
    vAHI_TickTimerIntEnable(TRUE);
}

/****************************************************************************
 *
 * NAME: vProcessEventQueues
 *
 * DESCRIPTION:
 * Check each of the three event queues and process and items found.
 *
 * PARAMETERS:      Name            RW  Usage
 * None.
 *
 * RETURNS:
 * None.
 *
 * NOTES:
 * None.
 ****************************************************************************/
PRIVATE void vProcessEventQueues(void)
{
    MAC_MlmeDcfmInd_s *psMlmeInd;
	MAC_McpsDcfmInd_s *psMcpsInd;
    AppQApiHwInd_s    *psAHI_Ind;

    /* Check for anything on the MCPS upward queue */
    do
    {
        psMcpsInd = psAppQApiReadMcpsInd();
        if (psMcpsInd != NULL)
        {
            vProcessIncomingData(psMcpsInd);
            vAppQApiReturnMcpsIndBuffer(psMcpsInd);
        }
    } while (psMcpsInd != NULL);

    /* Check for anything on the MLME upward queue */
    do
    {
        psMlmeInd = psAppQApiReadMlmeInd();
        if (psMlmeInd != NULL)
        {
            vProcessIncomingMlme(psMlmeInd);
            vAppQApiReturnMlmeIndBuffer(psMlmeInd);
        }
    } while (psMlmeInd != NULL);

    /* Check for anything on the AHI upward queue */
    do
    {
        psAHI_Ind = psAppQApiReadHwInd();
        if (psAHI_Ind != NULL)
        {
            vProcessIncomingHwEvent(psAHI_Ind);
            vAppQApiReturnHwIndBuffer(psAHI_Ind);
        }
    } while (psAHI_Ind != NULL);
}

/****************************************************************************
 *
 * NAME: vProcessIncomingMlme
 *
 * DESCRIPTION:
 * Process any incoming managment events from the stack.
 *
 * PARAMETERS:      Name            RW  Usage
 *                  psMlmeInd
 *
 * RETURNS:
 * None.
 *
 * NOTES:
 * None.
 ****************************************************************************/
PRIVATE void vProcessIncomingMlme(MAC_MlmeDcfmInd_s *psMlmeInd)
{
    switch(psMlmeInd->u8Type)
    {
    case MAC_MLME_IND_ASSOCIATE:

        /* Only allow nodes to associate if network has been started */
        if (sCoordData.sSystem.eState == E_STATE_RUNNING_UART_APP)
        {
            vHandleNodeAssociation(psMlmeInd);
        }
        break;

    case MAC_MLME_DCFM_SCAN:

        if (psMlmeInd->uParam.sDcfmScan.u8Status == MAC_ENUM_SUCCESS)
        {
            if (psMlmeInd->uParam.sDcfmScan.u8ScanType == MAC_MLME_SCAN_TYPE_ENERGY_DETECT)
            {
                if (sCoordData.sSystem.eState == E_STATE_ENERGY_SCANNING)
                {
                    vHandleEnergyScanResponse(psMlmeInd);
                    sCoordData.sSystem.eState = E_STATE_START_COORDINATOR;
                }
            }
        }
        break;
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合成人在线| 亚洲最色的网站| 日韩精品一区二区三区蜜臀| 91国产丝袜在线播放| 色婷婷av一区二区三区之一色屋| 成人动漫一区二区| 色综合一区二区三区| 91在线精品一区二区三区| 93久久精品日日躁夜夜躁欧美| 99热精品国产| 欧美在线观看18| 91精品国产综合久久精品| 欧美一区二区福利视频| 日韩一区二区三区三四区视频在线观看 | 亚洲一区二区三区小说| 亚洲成av人片| 国模无码大尺度一区二区三区| 国产不卡在线播放| 欧美午夜精品一区二区三区| 欧美精品乱码久久久久久| 日韩欧美www| 亚洲国产精品高清| 一个色综合av| 激情综合色播激情啊| 丁香激情综合五月| 欧美日韩国产免费一区二区 | 色综合色综合色综合色综合色综合 | 麻豆91在线看| 丁香天五香天堂综合| 在线观看网站黄不卡| 日韩欧美久久久| 亚洲三级免费观看| 青青青伊人色综合久久| 国产精品一区二区在线观看网站| 97se亚洲国产综合自在线| 日韩午夜精品电影| 亚洲日本一区二区三区| 久久99精品国产麻豆不卡| 91尤物视频在线观看| 日韩欧美123| 亚洲视频一区在线观看| 韩国精品久久久| 欧美精品1区2区| 国产精品盗摄一区二区三区| 五月激情综合婷婷| 色欧美日韩亚洲| 久久久精品免费观看| 天天做天天摸天天爽国产一区| 国产91高潮流白浆在线麻豆| 欧美一区二区三区日韩视频| 亚洲裸体在线观看| 成人小视频在线| 久久久青草青青国产亚洲免观| 亚洲成人av免费| 欧美在线一区二区| 亚洲日本欧美天堂| 懂色一区二区三区免费观看| 日韩无一区二区| 无码av免费一区二区三区试看| 99视频一区二区| 综合网在线视频| 99久久精品一区二区| 中文字幕av在线一区二区三区| 久久99精品久久久久久| 日韩亚洲欧美高清| 免费av网站大全久久| 91精品视频网| 久久精品99国产精品日本| 欧美日本在线看| 午夜久久久影院| 欧美精品色一区二区三区| 亚洲国产cao| 欧美精品在线一区二区三区| 一区二区视频免费在线观看| 99re成人在线| 亚洲另类春色国产| 欧美日韩一级黄| 日产国产高清一区二区三区| 欧美午夜精品免费| 欧美aaaaa成人免费观看视频| 宅男噜噜噜66一区二区66| 免费看欧美女人艹b| 欧美成人在线直播| 国产mv日韩mv欧美| 亚洲美女电影在线| 欧美精选午夜久久久乱码6080| 日韩国产欧美三级| 欧美成人国产一区二区| 国产高清久久久| 有坂深雪av一区二区精品| 欧美日韩色一区| 裸体一区二区三区| 国产蜜臀av在线一区二区三区| 成人小视频在线| 亚洲成人www| 精品欧美乱码久久久久久| 国产成人高清视频| 亚洲国产另类av| 久久综合色8888| 99久久er热在这里只有精品15 | 亚洲国产综合人成综合网站| 欧美精品第1页| 国产a精品视频| 亚洲午夜影视影院在线观看| 日韩一区二区三区在线| 丁香天五香天堂综合| 亚洲第一主播视频| 久久久不卡影院| 欧美三级电影一区| 成人免费视频网站在线观看| 亚洲综合色成人| 国产日韩欧美一区二区三区综合| 色综合久久99| 国产福利视频一区二区三区| 一区二区三区在线视频观看| 精品国产不卡一区二区三区| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 久久99国产精品久久99果冻传媒| 欧美国产成人在线| 欧美一区二区三区在线看| 99久久精品一区| 国产另类ts人妖一区二区| 亚洲精品伦理在线| 国产欧美精品一区| 欧美一区二区三区四区在线观看 | 国产三级久久久| 欧美精品在线观看播放| 色综合天天综合网天天看片| 国产中文一区二区三区| 性做久久久久久免费观看| 亚洲人成人一区二区在线观看 | 欧美国产一区二区在线观看| 欧美日韩在线播放一区| 成人app软件下载大全免费| 国内精品自线一区二区三区视频| 石原莉奈一区二区三区在线观看| 亚洲欧美日韩电影| 亚洲欧美综合色| 国产精品欧美一区喷水| 久久一日本道色综合| 精品久久久久一区二区国产| 欧美性猛交xxxx黑人交| 欧美自拍丝袜亚洲| 欧美偷拍一区二区| 在线观看亚洲精品| 欧美在线视频全部完| 在线亚洲一区二区| 91国产成人在线| 日本高清不卡在线观看| 在线观看亚洲专区| 日本在线不卡一区| 国产精品日韩成人| 久久婷婷国产综合国色天香| 精品国产伦理网| 精品国产乱码久久久久久免费| 在线观看欧美精品| 激情久久五月天| 国产99久久久国产精品潘金网站| 在线精品亚洲一区二区不卡| 欧美va亚洲va香蕉在线| 亚洲少妇屁股交4| 激情欧美日韩一区二区| 日本久久一区二区| 久久免费美女视频| 日韩精品乱码av一区二区| youjizz国产精品| 欧美电影免费提供在线观看| 国产精品久久一级| 国产一区二区三区最好精华液| 色婷婷综合中文久久一本| 久久久亚洲高清| 蜜臀av一区二区在线免费观看 | 欧美伊人久久大香线蕉综合69| 久久这里都是精品| 日韩精品电影在线观看| 91免费视频网址| 亚洲国产精品国自产拍av| 美女免费视频一区| 69堂成人精品免费视频| 亚洲精品精品亚洲| 99国内精品久久| 中文字幕精品—区二区四季| 激情综合色综合久久| 日韩欧美一区二区三区在线| 亚洲国产欧美日韩另类综合| 91视频免费播放| 国产精品国产三级国产普通话蜜臀| 麻豆视频一区二区| 日韩欧美一区二区在线视频| 丝袜美腿成人在线| 在线91免费看| 日韩av二区在线播放| 欧美日韩国产一级二级| 亚洲一区二区三区四区五区黄| 一本大道综合伊人精品热热| |精品福利一区二区三区| 99久久免费精品| 亚洲久草在线视频| 欧美性一区二区| 午夜激情一区二区三区|