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

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

?? coordinatora.c

?? 此程式庫有許多的zigbee程式源碼
?? C
?? 第 1 頁 / 共 3 頁
字號(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);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色婷婷综合久色| 自拍偷拍亚洲激情| 国产激情视频一区二区在线观看 | 青娱乐精品在线视频| 制服丝袜亚洲网站| 国产一区二区三区| 国产精品国产a| 在线观看国产一区二区| 婷婷丁香激情综合| 久久综合久色欧美综合狠狠| 福利视频网站一区二区三区| 国产精品久久久久久一区二区三区 | 成人美女视频在线看| 亚洲精品你懂的| 欧美日韩电影在线| 日本aⅴ免费视频一区二区三区 | 欧美国产在线观看| 91蝌蚪porny九色| 三级不卡在线观看| 久久亚洲影视婷婷| 日本韩国欧美一区二区三区| 日韩经典一区二区| 国产色综合一区| 在线观看视频91| 精品一区二区三区视频在线观看 | 国产精品久久久久久亚洲伦| 欧美午夜一区二区三区免费大片| 另类小说综合欧美亚洲| 欧美激情在线一区二区三区| 欧美色综合天天久久综合精品| 蜜臀久久久久久久| 国产精品人人做人人爽人人添| 欧美午夜理伦三级在线观看| 久久电影网电视剧免费观看| 亚洲人成小说网站色在线| 91精品国产综合久久精品app | 国产剧情在线观看一区二区 | 中文字幕一区二区三区在线观看 | 亚洲国产成人午夜在线一区| 欧美视频中文字幕| 国产精品亚洲一区二区三区妖精| 亚洲一区二区三区爽爽爽爽爽| 精品国产百合女同互慰| 在线免费观看成人短视频| 久久99久久久欧美国产| 亚洲免费在线播放| 精品国产成人系列| 欧美亚洲免费在线一区| 国产电影一区在线| 日韩中文字幕亚洲一区二区va在线 | 中文字幕国产一区二区| 91精品国产手机| 色婷婷久久综合| 国产精品99久久不卡二区| 午夜不卡av免费| 亚洲欧美综合网| 精品国产区一区| 欧美日韩激情在线| 色综合久久综合| 国产99久久久国产精品免费看| 日本欧美一区二区三区| 亚洲日本欧美天堂| 国产婷婷一区二区| 日韩丝袜情趣美女图片| 欧美色窝79yyyycom| www.亚洲精品| 国产精品自在在线| 麻豆freexxxx性91精品| 亚洲综合一区在线| 国产精品免费aⅴ片在线观看| 精品国产一二三区| 欧美理论片在线| 色噜噜狠狠色综合欧洲selulu| 国产不卡在线一区| 蜜桃在线一区二区三区| 亚洲影视在线观看| 亚洲乱码国产乱码精品精可以看 | 3d成人动漫网站| 91国偷自产一区二区三区观看| 国产电影一区在线| 紧缚奴在线一区二区三区| 天天射综合影视| 亚洲一区二区四区蜜桃| 亚洲欧洲一区二区三区| 中文字幕av一区 二区| 精品国产区一区| 精品免费视频.| 日韩一级二级三级精品视频| 欧美精品一级二级| 欧美美女一区二区在线观看| 在线视频你懂得一区| 一本色道**综合亚洲精品蜜桃冫| 成人免费视频视频在线观看免费| 国内精品久久久久影院一蜜桃| 日本va欧美va欧美va精品| 日韩成人精品在线观看| 亚洲va天堂va国产va久| 亚洲精品成人少妇| 亚洲婷婷在线视频| 亚洲男人天堂一区| 亚洲天天做日日做天天谢日日欢| 国产精品久久久久国产精品日日| 日本一区二区视频在线| 久久天天做天天爱综合色| 26uuu精品一区二区三区四区在线| 日韩欧美黄色影院| 日韩欧美美女一区二区三区| 日韩三级免费观看| 精品国产露脸精彩对白| 久久品道一品道久久精品| 久久精品亚洲乱码伦伦中文| www国产亚洲精品久久麻豆| 日韩欧美久久久| 久久综合五月天婷婷伊人| 久久影音资源网| 欧美经典三级视频一区二区三区| 欧美国产一区二区| 成人欧美一区二区三区白人| 亚洲欧洲综合另类在线| 夜夜亚洲天天久久| 图片区小说区国产精品视频 | 偷偷要91色婷婷| 美腿丝袜一区二区三区| 国产一区二区不卡老阿姨| 成人性生交大片| 色综合亚洲欧洲| 欧美老肥妇做.爰bbww视频| 日韩亚洲欧美一区| 久久综合国产精品| 国产精品人成在线观看免费| 中文字幕+乱码+中文字幕一区| 亚洲欧美激情小说另类| 午夜精品久久久久久| 久久99久久久久| 国产91对白在线观看九色| 99re这里都是精品| 欧美亚洲国产怡红院影院| 欧美一区二区三区免费大片 | 国产精品黄色在线观看 | 一区二区三区精品久久久| 午夜亚洲国产au精品一区二区 | 日韩精品一二三区| 国产一区中文字幕| 色香色香欲天天天影视综合网| 欧美日韩高清在线播放| 精品第一国产综合精品aⅴ| 国产精品久久免费看| 亚洲成人在线观看视频| 久久超碰97中文字幕| 成人免费av资源| 欧美天堂一区二区三区| 精品日本一线二线三线不卡| 国产精品久99| 日本成人在线网站| 成人午夜看片网址| 欧美日韩一级二级| 久久久久国色av免费看影院| 亚洲人吸女人奶水| 美女免费视频一区二区| 波多野结衣中文字幕一区| 欧美三级三级三级爽爽爽| 久久麻豆一区二区| 亚洲一二三四区| 激情欧美一区二区| 在线免费视频一区二区| 精品蜜桃在线看| 一区二区在线电影| 久久99精品一区二区三区 | 欧美日韩第一区日日骚| 国产性天天综合网| 午夜视频一区在线观看| 国产成+人+日韩+欧美+亚洲| 欧美日韩一区久久| 中文欧美字幕免费| 日日摸夜夜添夜夜添亚洲女人| 成人激情av网| 日韩你懂的在线观看| 中文字幕在线观看不卡视频| 日本成人中文字幕在线视频| 99久久99久久精品免费观看| 日韩一区二区在线观看视频| 亚洲欧美日韩一区| 国产精品一区二区三区四区| 欧美日韩在线播放一区| 日本一区二区不卡视频| 狂野欧美性猛交blacked| 91国产免费观看| 欧美激情中文字幕| 另类小说一区二区三区| 欧美视频在线一区| 中文字幕在线一区| 精品一区二区三区蜜桃| 欧美日韩精品免费观看视频| 中文字幕中文字幕一区二区| 国产一区二区三区综合| 这里只有精品99re| 亚洲一区二区三区中文字幕在线 | 欧美性受极品xxxx喷水| 欧美国产一区视频在线观看| 久久国产视频网|