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

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

?? coordinatora.c

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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩影院免费视频| 亚洲综合精品久久| 欧美亚洲禁片免费| 91福利国产成人精品照片| 欧美二区在线观看| 精品国产免费视频| 欧美电影免费观看完整版| 久久精品视频网| 国产精品看片你懂得| 亚洲一区二区三区在线看| 亚洲精品成a人| 久久99日本精品| 不卡av在线网| 国产日韩欧美一区二区三区乱码| 中文字幕免费观看一区| 精品一区二区三区在线播放| 亚洲欧美激情小说另类| 国产伦精一区二区三区| 欧美另类高清zo欧美| 国产三级欧美三级| 久久99国产精品免费| 国产成a人无v码亚洲福利| 在线电影欧美成精品| 久久精品夜色噜噜亚洲aⅴ| 亚洲精品国产一区二区精华液| 激情图片小说一区| 国产精品午夜免费| 美女www一区二区| 91在线视频在线| 中文字幕视频一区| 成人午夜私人影院| 成人免费福利片| 精品久久久久久亚洲综合网| 亚洲免费看黄网站| 一本色道久久综合亚洲91| 欧美高清在线精品一区| 国产精品资源在线看| 26uuu久久天堂性欧美| 一色桃子久久精品亚洲| 一本色道久久综合亚洲91| 中文字幕精品一区| 国产精品国产成人国产三级| 99视频有精品| 亚洲一区二区四区蜜桃| 国产成人无遮挡在线视频| 亚洲欧洲日产国码二区| 91极品视觉盛宴| 亚洲国产精品av| 欧美亚洲一区二区在线| 另类小说图片综合网| 成人av网站大全| 欧美不卡在线视频| 91丨九色丨蝌蚪富婆spa| 麻豆精品视频在线观看| 日韩一卡二卡三卡| 婷婷综合另类小说色区| 久久精品一区四区| fc2成人免费人成在线观看播放| 亚洲国产aⅴ成人精品无吗| 日韩欧美国产精品| 视频一区二区欧美| 国产精品久久久久久亚洲伦 | 精品国产91亚洲一区二区三区婷婷 | 国模冰冰炮一区二区| 国产人久久人人人人爽| 亚洲男人天堂av网| 91在线视频官网| 久久99久久久久| 中文字幕在线免费不卡| 欧美亚洲动漫另类| 精品日产卡一卡二卡麻豆| 91色婷婷久久久久合中文| 亚洲综合色在线| 中文字幕欧美一区| 欧美激情在线一区二区三区| 欧美一级生活片| 亚洲一区中文在线| 国产精品网友自拍| 国产精品毛片大码女人| 中文字幕综合网| 精品一区二区在线视频| 一本久久精品一区二区| 国产精品原创巨作av| 国产凹凸在线观看一区二区| 日韩国产欧美视频| 捆绑调教美女网站视频一区| 午夜久久福利影院| 日韩av电影免费观看高清完整版在线观看| 国产精品久久久久久久岛一牛影视| 婷婷久久综合九色综合绿巨人 | 2020国产精品| 蜜臀av在线播放一区二区三区| 欧美性极品少妇| 亚洲乱码一区二区三区在线观看| 奇米在线7777在线精品| hitomi一区二区三区精品| 精品国产乱码久久久久久免费| 午夜精品久久久久久久久久| 91久久精品一区二区三| 国产精品每日更新在线播放网址| 毛片av一区二区| 日韩免费观看2025年上映的电影| 亚洲制服丝袜在线| 欧美影片第一页| 亚洲女同ⅹxx女同tv| 色婷婷av一区二区三区gif| 中文字幕欧美一区| 91国内精品野花午夜精品| 亚洲成人午夜电影| 欧美三级资源在线| 日本成人在线电影网| 欧美揉bbbbb揉bbbbb| 日本一区中文字幕| 欧美久久久久免费| 精品一区二区影视| 久久久久国产精品人| 成人毛片在线观看| 艳妇臀荡乳欲伦亚洲一区| 成人黄色av电影| 一区二区三区中文字幕| 制服丝袜亚洲精品中文字幕| 麻豆精品国产91久久久久久| 91精品国产综合久久香蕉的特点| 丝袜亚洲另类欧美| 精品裸体舞一区二区三区| 91欧美一区二区| 国产精品一区二区无线| 国产精品家庭影院| 777亚洲妇女| 欧美中文一区二区三区| 日韩二区三区四区| 亚洲视频精选在线| 91精品国产欧美一区二区 | 久久久99久久| 欧美一二三四在线| 在线观看视频91| 岛国精品一区二区| 蜜乳av一区二区三区| 亚洲一二三区视频在线观看| 国产精品久久一卡二卡| 久久久久久9999| 91麻豆精品国产91久久久久久久久 | 亚洲男人的天堂网| 国产精品第一页第二页第三页| 日韩三级视频在线看| 欧美日免费三级在线| 国产成人av一区二区| 丁香网亚洲国际| 国产一区二区三区在线观看精品| 日韩av在线播放中文字幕| 日韩久久一区二区| 亚洲国产一区二区视频| 一级做a爱片久久| 亚洲国产欧美在线| 国产精品情趣视频| 亚洲三级电影全部在线观看高清| 国产精品人人做人人爽人人添| 亚洲精品日日夜夜| 亚洲va国产天堂va久久en| 人人超碰91尤物精品国产| 天天色天天爱天天射综合| 亚洲三级免费观看| 午夜视频一区在线观看| 午夜精品久久久久久久久| 亚洲欧美日韩在线不卡| 亚洲色欲色欲www| 日韩在线观看一区二区| 国产不卡免费视频| 欧美视频一区在线| 欧美激情在线看| 亚洲一区二区在线视频| 美女免费视频一区二区| 欧美在线视频不卡| 国产精品午夜在线观看| 亚洲成av人片| 成人黄色一级视频| 欧美一级日韩一级| 一区二区三区毛片| 成人免费毛片a| 欧美一级日韩一级| 亚洲一二三四在线观看| 国产91综合网| 欧美日韩高清一区二区| 国产精品―色哟哟| 视频一区二区三区中文字幕| 成人免费视频网站在线观看| 欧美性视频一区二区三区| 欧美久久一区二区| 亚洲精品中文在线观看| 成人综合在线视频| 欧美最新大片在线看| 国产女主播视频一区二区| 久久99久久99小草精品免视看| 欧美喷潮久久久xxxxx| 国产亚洲va综合人人澡精品| 日韩毛片高清在线播放| 裸体一区二区三区| 制服丝袜中文字幕一区| 亚洲国产人成综合网站| 91视频www|