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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? coordinatora.c

?? 此程式庫(kù)有許多的zigbee程式源碼
?? C
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
/**************************************************************************** * * MODULE:             Demo coordinator code * * COMPONENT:          $RCSfile: Coordinator.c,v $ * * VERSION:            $Name: zed003_cd $ * * REVISION:           $Revision: 1.12 $ * * DATED:              $Date: 2006/02/23 09:51:26 $ * * STATUS:             $State: Exp $ * * AUTHOR:             CJG * * DESCRIPTION: * Coordinator for demonstrator. Acts as time coordinator for up to four * sensor endpoints and manages LCD panel and keys on central coordinator. * * LAST MODIFIED BY:   $Author: cjg $ *                     $Modtime: $ * **************************************************************************** * *  (c) Copyright 2005 JENNIC Ltd * ****************************************************************************//****************************************************************************//***        Include files                                                 ***//****************************************************************************/#include "jendefs.h"#include "LcdDriver.h"#include "ALSdriver.h"#include "HTSdriver.h"#include "DemoConfig.h"#include <AppHardwareApi.h>#include "JennicLogo.h"#include <AppQueueApi.h>#include <mac_sap.h>#include <mac_pib.h>#include <string.h>#include "LedControl.h"#include "Button.h"#include "Utilities.h"#include "gdb.h"/****************************************************************************//***        Macro Definitions                                             ***//****************************************************************************//* Block (time slice) values */#define BLOCK_TIME_IN_32K_PERIODS 1600#define BLOCK_MIN_RX          2#define BLOCK_UPDATE          (BLOCK_MIN_RX + DEMO_ENDPOINTS)#define BLOCK_START_TEMP      13#define BLOCK_READ_TEMP       15#define BLOCK_START_HUMIDITY  16#define BLOCK_READ_HUMIDITY   18#define BLOCK_READ_LIGHT      19#define MAX_BLOCKS            20/* Control screen and alarm values */#define CONTROL_LIST_LEN      4#define TEMP_HIGH_MAX         100#define LIGHT_HIGH_MAX        6/* Setup screen values */#define SETUP_LIST_LEN        2#define FRAMES_MISSED_INDICATION 9/****************************************************************************//***        Type Definitions                                              ***//****************************************************************************//* Holds all stored data for a particular sensor for a node */typedef struct{    uint8 u8NowValue;    uint8 u8HighAlarm;    uint8 u8LowAlarm;    uint8 au8GraphData[DEMO_HISTORY_LEN];} tsNodeElementData;/* Holds all stored data for a node */typedef struct{    bool_t boDeviceOn;    tsNodeElementData asNodeElementData[DEMO_SENSOR_LIST_LEN];    uint8 u8PrevRxCount;    uint8 u8FramesMissed;    uint8 u8SwitchOn;    uint8 u8Rssi;} tsNodeData;/* Used to track an association between extended address and short address */typedef struct{    MAC_ExtAddr_s sExtAddr;    uint16 u16ShortAddr;} tsAssocNodes;/* System states with respect to screen display being shown */typedef enum{    E_STATE_NETWORK,    E_STATE_NODE,    E_STATE_NODE_CONTROL,    E_STATE_SET_CHANNEL,    E_STATE_SETUP_SCREEN,    E_STATE_SCANNING} teState;/* Button values */typedef enum{    E_KEY_0 = BUTTON_0_MASK,    E_KEY_1 = BUTTON_1_MASK,    E_KEY_2 = BUTTON_2_MASK,    E_KEY_3 = BUTTON_3_MASK,    E_KEYS_0_AND_3 = (BUTTON_0_MASK | BUTTON_3_MASK)} teKeyValues;/* 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    {        tsNodeData   asNodeData[DEMO_ENDPOINTS];        tsAssocNodes asAssocNodes[DEMO_ENDPOINTS];        bool_t       bLocalNode;        uint8        u8AssociatedNodes;    } sNode;    struct    {        teSensor eCurrentSensor;        uint8    u8CurrentNode;        uint8    u8GraphPos;        uint8    u8ControlSelection;        uint8    u8SetupSelection;        bool_t   bShowFourNodes;    } sGui;    struct    {        teState eState;        uint8   u8Channel;        uint32  u32AppApiVersion;        uint32  u32HwApiVersion;        uint32  u32CalibratedTimeout;    } sSystem;} tsDemoData;typedef struct{    uint8   food;    uint8   number;   }tsfood;/****************************************************************************//***        Local Function Prototypes                                     ***//****************************************************************************/PRIVATE void vInitSystem(void);PRIVATE void vInitCoord(void);PRIVATE void vSetTimer(void);PRIVATE void vProcessCurrentTimeBlock(uint8 u8TimeBlock);PRIVATE bool_t bProcessKeys(uint8 *pu8Keys);PRIVATE uint8 u8UpdateTimeBlock(uint8 u8TimeBlock);PRIVATE void vProcessInterrupts(void);PRIVATE void vProcessUpdateBlock(void);PRIVATE void vProcessIncomingData(MAC_McpsDcfmInd_s *psMcpsInd);PRIVATE void vProcessIncomingMlme(MAC_MlmeDcfmInd_s *psMlmeInd);PRIVATE bool_t bProcessForTimeout(AppQApiHwInd_s *psHardwareInd);PRIVATE void vProcessNetworkKeyPress(uint8 u8KeyMap);PRIVATE void vUpdateNetworkSensor(teSensor eSensor);PRIVATE void vProcessNodeKeyPress(uint8 u8KeyMap);PRIVATE void vProcessNodeControlKeyPress(uint8 u8KeyMap);PRIVATE void vProcessSetChannelKeyPress(uint8 u8KeyMap);PRIVATE void vProcessSetupKeyPress(uint8 u8KeyMap);PRIVATE void vBuildSetChannelScreen(void);PRIVATE void vUpdateSetChannelScreen(void);PRIVATE void vBuildSetupScreen(void);PRIVATE void vUpdateSetupScreen(uint8 u8Selection, bool_t boUpdate);PRIVATE void vBuildNetworkScreen(teSensor eSensor);PRIVATE void vUpdateNetworkScreen(teSensor eSensor);PRIVATE void vBuildNodeScreen(uint8 u8Node);PRIVATE void vUpdateNodeScreen(uint8 u8Node);PRIVATE void vBuildNodeControlScreen(uint8 u8Node);PRIVATE void vUpdateNodeControlScreen(uint8 u8Node, uint8 u8Selection, bool_t boUpdate);PRIVATE void vLcdUpdateElement(tsNodeData *psNodeData, teSensor eSensor,                               uint8 u8Row, uint8 u8Col, bool_t bShowRssi);PRIVATE void vDrawGraph(uint8 *pu8GraphData, uint8 u8StartCol,                        uint8 u8StartRow);PRIVATE void vStringCopy(char *pcFrom,char *pcTo);PRIVATE void vValToDec(char *pcOutString, uint8 u8Value, char *pcLabel);PRIVATE void vAdjustAlarm(uint8 *pu8Value, uint8 u8MaxValue, uint8 u8OffValue, bool_t bUpNotDown);PRIVATE void vStartBeacon(void);PRIVATE void vUpdateBeaconPayload(void);PRIVATE void vDisplayError(char *pcErrorMessage, uint32 u32Data);PRIVATE void vWriteOnOff(bool_t bOnOff, uint8 u8Row, uint8 u8Col);PRIVATE void vToggleOnOff(bool_t *pbItem);PRIVATE void vWriteRowLabel(uint8 u8Selection, char **ppcRowName, uint8 u8ListLen);PRIVATE void vProcessKeyPressSelet(uint8 u8KeyMap);/****************************************************************************//***        Exported Variables                                            ***//****************************************************************************//****************************************************************************//***        Local Variables                                               ***//****************************************************************************//* Handles from the MAC */PRIVATE void *s_pvMac;PRIVATE MAC_Pib_s *s_psMacPib;/* File scope data */PRIVATE tsDemoData sDemoData;PRIVATE tsfood sfootData;/* Row and column positions of info fields on LCD */static const uint8 au8NodeLcdRow[DEMO_ENDPOINTS] = {0,  0, 3,  3};static const uint8 au8NodeLcdCol[DEMO_ENDPOINTS] = {0, 64, 0, 64};static const char *apcNodeNameList[DEMO_ENDPOINTS] = {    "Hall", "Bedroom", "Lounge", "Bathroom"};static short LCD_RT;static short FOOD[20];static short Foodau1,Foodau2,Foodau3;/****************************************************************************//***        Exported Functions                                            ***//****************************************************************************//**************************************************************************** * * NAME: AppColdStart * * DESCRIPTION: * Entry point for application from boot loader. Initialises system and runs * main loop. * * RETURNS: * Never returns. * ****************************************************************************/PUBLIC void AppColdStart(void){    uint8 u8Keys;    uint8 u8TimeBlock;    bool_t bExitMainLoop;                //uint8 aaa=0;//**********        /* Debug hooks: include these regardless of whether debugging or not */    HAL_GDB_INIT();    HAL_BREAKPOINT();    /* General initialisation: reset hardware, set some values in PIB */    vInitSystem();    /* Main application loop. This loop is iterated whenever a soft reset is       performed */    while (1)    {        /* Initialise software elements */        vInitCoord();        /* Set simple scheduler to perform no activity */        u8TimeBlock = MAX_BLOCKS;        /* Build channel set screen */        vBuildSetChannelScreen();        /* Change to channel setting state */        sDemoData.sSystem.eState = E_STATE_SET_CHANNEL;        /* Get current key state. This is necessary after a soft reset as keys           will still be down when entering the main loop */        u8Keys = u8ButtonReadFfd();        /* Run main loop. The timer ensures that this runs 20 times per second,           which allows a simple scheduler to run to start reads from the           sensors, read results from the sensors and update the display. It           also allows for simple button debounce by only sampling the buttons           once during each interval. */        do        {            /* Set the timer for the next interval */            vSetTimer();            /* Perform scheduler action */            vProcessCurrentTimeBlock(u8TimeBlock);            /* Check keys. Returns TRUE if 'reset' combination has been pressed */            bExitMainLoop = bProcessKeys(&u8Keys);            /* Increment scheduler time block for next time */            u8TimeBlock = u8UpdateTimeBlock(u8TimeBlock);            /* Service upward indications and confirmations from MLME and               MCPS, and process interrupts from hardware. This function               will exit when timer fires */            vProcessInterrupts();        } while (bExitMainLoop == FALSE);    }}/**************************************************************************** * * NAME: AppWarmStart * * DESCRIPTION: * Entry point for application from boot loader. Simply jumps to AppColdStart * as, in this instance, application will never warm start. * * RETURNS: * Never returns. * ****************************************************************************/PUBLIC void AppWarmStart(void){    AppColdStart();}/****************************************************************************//***        Local Functions                                               ***//****************************************************************************//**************************************************************************** * * NAME: vInitSystem * * DESCRIPTION: * Initialises stack and hardware. Also sets non-default values in the * 802.15.4 PIB and starts the first read of the light sensor. Subsequent * reads of this sensor occur automatically. * * RETURNS: * void * ****************************************************************************/PRIVATE void vInitSystem(void){    /* Initialise stack and hardware interfaces, and register peripheral       interrupts with AppQueueApi handler. We aren't using callbacks       at all, just monitoring the upward queues in a loop */    sDemoData.sSystem.u32AppApiVersion = u32AppQApiInit(NULL, NULL, NULL);    sDemoData.sSystem.u32HwApiVersion = u32AHI_Init();    /* Set up the MAC handles. Must be called AFTER u32AppQApiInit() */    s_pvMac = pvAppApiGetMacHandle();    s_psMacPib = MAC_psPibGetHandle(s_pvMac);    /* Set up buttons and LEDs */    vLedControl(0, FALSE);    vLedControl(1, FALSE);    vLedControl(2, FALSE);    vLedControl(3, FALSE);    vLedInitFfd();    vButtonInitFfd();    /* Set up hardware and splash screen */    vLcdResetDefault();    vALSreset();    vHTSreset();    /* Start ambient light sensor now: it automatically keeps re-sampling after this */    vALSstartReadChannel(0);    /* Set Pan ID and short address in PIB (also sets match registers in hardware) */    MAC_vPibSetPanId(s_pvMac, DEMO_PAN_ID);    MAC_vPibSetShortAddr(s_pvMac, DEMO_COORD_ADDR);    /* Calibrate wake timer */    sDemoData.sSystem.u32CalibratedTimeout = BLOCK_TIME_IN_32K_PERIODS * 10000 / u32AHI_WakeTimerCalibrate();    /* Enable timer to use for sequencing */    vAHI_WakeTimerEnable(E_AHI_WAKE_TIMER_0, TRUE);}/**************************************************************************** * * NAME: vInitCoord * * DESCRIPTION: * Initialises software structures and variables. Endpoint data is reset and * the GUI is set to the default condition. * * RETURNS: * void * ****************************************************************************/PRIVATE void vInitCoord(void){    tsNodeData        *psNodeData;    tsNodeElementData *psNodeElementData;    uint8             *pu8GraphData;    int                i, j, k;    /* Initialise node data */    for (i = 0; i < DEMO_ENDPOINTS; i++)    {        psNodeData = &sDemoData.sNode.asNodeData[i];        psNodeData->boDeviceOn = FALSE;        /* Set label */        for (j = 0; j < DEMO_SENSOR_LIST_LEN; j++)        {            psNodeElementData = &psNodeData->asNodeElementData[j];            /* Clear alarms and values */            psNodeElementData->u8NowValue = 0;            psNodeElementData->u8HighAlarm = 0;            psNodeElementData->u8LowAlarm = 255;            /* Clear history list */            pu8GraphData = psNodeElementData->au8GraphData;            for (k = 0; k < DEMO_HISTORY_LEN; k++)            {                *pu8GraphData = 0;                pu8GraphData++;            }        }    }    sDemoData.sNode.bLocalNode = TRUE; /* Default to local node in use */    sDemoData.sNode.u8AssociatedNodes = 1; /* As local node is in use, 1 node is 'associated' */    /* Initialise GUI state */    sDemoData.sGui.eCurrentSensor = E_SENSOR_TEMP;    sDemoData.sGui.u8CurrentNode = 0;    sDemoData.sGui.u8GraphPos = 0;    sDemoData.sGui.u8ControlSelection = 0;    sDemoData.sGui.u8SetupSelection = 0;    sDemoData.sGui.bShowFourNodes = FALSE;    sDemoData.sSystem.u8Channel = CHANNEL_MID;}/**************************************************************************** * * NAME: vSetTimer * * DESCRIPTION: * Sets wake-up timer 0 for a 50ms time-out. Assumes that timer was * previously enabled. * * RETURNS: * void * ****************************************************************************/PRIVATE void vSetTimer(void){    /* Set timer for next block */    vAHI_WakeTimerStart(E_AHI_WAKE_TIMER_0, sDemoData.sSystem.u32CalibratedTimeout);

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品在线观看| 久久综合久久综合久久| 裸体健美xxxx欧美裸体表演| 欧美一区永久视频免费观看| 青青草一区二区三区| 国产丝袜美腿一区二区三区| 欧美久久久影院| 国产99久久久久| 奇米综合一区二区三区精品视频| 国产精品污污网站在线观看| 日韩一区二区免费电影| 9人人澡人人爽人人精品| 亚洲人成人一区二区在线观看| 日韩丝袜情趣美女图片| 99久久精品免费| 国产91对白在线观看九色| 亚洲高清免费观看高清完整版在线观看 | 色av一区二区| 成人理论电影网| 美女免费视频一区| 亚洲www啪成人一区二区麻豆| 欧美精彩视频一区二区三区| 欧美日韩在线精品一区二区三区激情 | 欧美成人在线直播| 在线视频观看一区| 国产馆精品极品| 日本视频中文字幕一区二区三区| 国产精品国产三级国产普通话三级 | 久久精品国产精品青草| 一区二区三区中文字幕| 亚洲乱码日产精品bd| 国产亚洲1区2区3区| 欧美日韩一区二区三区在线看| 99久久伊人久久99| 豆国产96在线|亚洲| 国产98色在线|日韩| 久久福利视频一区二区| 婷婷国产在线综合| 夜色激情一区二区| 亚洲伦理在线免费看| 中文字幕av不卡| 久久久国际精品| 亚洲精品在线三区| 精品视频资源站| 粉嫩高潮美女一区二区三区| 激情综合网av| 蜜臀久久99精品久久久久宅男 | 日本成人在线不卡视频| 日欧美一区二区| 天堂成人国产精品一区| 亚洲成人www| 久久精品72免费观看| 图片区小说区区亚洲影院| 秋霞电影网一区二区| 肉色丝袜一区二区| 久久精品国产亚洲一区二区三区| 五月婷婷色综合| 亚洲一区二区在线免费观看视频| 亚洲欧洲精品一区二区三区| 国产精品视频观看| 亚洲精品国产无套在线观| 亚洲免费大片在线观看| 午夜av电影一区| 美女一区二区三区在线观看| 国产一区 二区| 成人av网站在线观看| 久久精品视频免费观看| 国产精品久久久久久久久晋中| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 久久se精品一区二区| 成人深夜视频在线观看| jlzzjlzz国产精品久久| 欧美日韩精品是欧美日韩精品| 欧美精选一区二区| 精品国产一区二区三区久久影院| 久久综合成人精品亚洲另类欧美 | 91色在线porny| 91久久精品午夜一区二区| 日韩视频免费观看高清完整版 | 欧美一区二区三区影视| 日韩欧美色电影| 亚洲欧美国产77777| 丝袜诱惑制服诱惑色一区在线观看 | 欧美一三区三区四区免费在线看| 欧美tk—视频vk| 亚洲精品成人精品456| 亚洲福利视频一区| 高清不卡一区二区| 91国偷自产一区二区开放时间| 91精品国产一区二区| 日本一二三四高清不卡| 国产精品久久影院| 美国一区二区三区在线播放| 粉嫩av一区二区三区在线播放| 欧美精三区欧美精三区| 2024国产精品| 爽爽淫人综合网网站| 国产不卡在线播放| 337p亚洲精品色噜噜噜| 26uuu精品一区二区三区四区在线| 国产精品萝li| 蜜臀av一区二区在线免费观看| 成a人片亚洲日本久久| 在线91免费看| 一区二区三区四区精品在线视频| 日韩av在线播放中文字幕| 懂色一区二区三区免费观看 | av影院午夜一区| 8x8x8国产精品| 亚洲图片有声小说| 国产成人8x视频一区二区| 欧美一区二区精品在线| 1区2区3区欧美| 国产**成人网毛片九色| 欧美一区二区播放| 欧美国产激情一区二区三区蜜月| 天堂精品中文字幕在线| 94-欧美-setu| 成人免费在线视频观看| 国产呦萝稀缺另类资源| 欧美成人vps| 亚洲成精国产精品女| 91成人网在线| 国产精品电影一区二区三区| 日韩成人一区二区三区在线观看| 91黄色激情网站| 国产精品麻豆欧美日韩ww| 粉嫩久久99精品久久久久久夜| 日韩欧美在线不卡| 蜜臀久久99精品久久久久宅男| 在线观看国产日韩| 夜夜揉揉日日人人青青一国产精品| 国产成人在线视频播放| 久久久久99精品一区| 久久国产三级精品| 欧美一区二区三区成人| 亚洲电影一级黄| 99久久精品国产麻豆演员表| 亚洲欧洲一区二区在线播放| 国产福利电影一区二区三区| 久久久久久久久久久久电影| 精品亚洲成a人| 久久久精品免费网站| 国产一区二区在线电影| 久久先锋影音av鲁色资源| 麻豆精品精品国产自在97香蕉| 欧美xxx久久| 久久99精品国产麻豆婷婷洗澡| 欧美成人精品二区三区99精品| 免费在线一区观看| 久久嫩草精品久久久精品一| 老汉av免费一区二区三区| 精品日韩99亚洲| 国精产品一区一区三区mba视频| 久久网站最新地址| 国产一区久久久| 欧美精品123区| 久久成人av少妇免费| 国产日韩欧美精品在线| 成人深夜在线观看| 亚洲成人激情av| 日韩亚洲欧美综合| 精品一区二区三区免费| 欧美精品久久99| 麻豆91精品91久久久的内涵| 欧美电影免费观看高清完整版| 精品一区二区三区香蕉蜜桃| 欧美精品一区二区三区蜜桃| 国产福利不卡视频| 亚洲精品免费一二三区| 欧美日韩一区二区不卡| 久久69国产一区二区蜜臀| 国产偷v国产偷v亚洲高清| av电影天堂一区二区在线| 亚洲裸体xxx| 波多野结衣一区二区三区 | 亚洲男人的天堂在线aⅴ视频| 91视频.com| 精品亚洲国内自在自线福利| 中文字幕欧美三区| 在线播放/欧美激情| 国产真实乱子伦精品视频| 亚洲视频精选在线| 欧美日韩你懂得| 成人av午夜影院| 五月婷婷激情综合网| 国产亚洲一区二区在线观看| jlzzjlzz国产精品久久| 一区二区三区精品久久久| 4438成人网| www.亚洲色图| 精品夜夜嗨av一区二区三区| 亚洲女同女同女同女同女同69| 精品国产污网站| 91小视频免费观看| 国产一区欧美日韩| 亚洲自拍偷拍图区| 一色屋精品亚洲香蕉网站| 91精品黄色片免费大全| 成人精品在线视频观看|