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

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

?? 2.txt

?? 基于ZIGBEE技術的無線傳感網絡的通信,以及與PC的串口通信,芯片是JENIC JN5121
?? TXT
?? 第 1 頁 / 共 2 頁
字號:
/****************************************************************************
 *
 * MODULE:			   WSN - Router
 *
 * COMPONENT:          $RCSfile: WSN_Router.c,v $
 *
 * VERSION:            $Name:  $
 *
 * REVISION:           $Revision: 1.4 $
 *
 * DATED:              $Date: 2006/12/11 10:38:48 $
 *
 * STATUS:             $State: Exp $
 *
 * AUTHOR:             IDM
 *
 * DESCRIPTION:
 *
 * Implements a Wireless Sensor Network Router using the Jennic Zigbee stack.
 * Reads temperature, humidity and battery voltage and transmits these to
 * network coordinator. Assumes code is running on a evaluation kit sensor
 * board.
 *
 * LAST MODIFIED BY:   $Author: imorr $
 *                     $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. All rights reserved
 *
 ****************************************************************************/

/****************************************************************************/
/***        Include files                                                 ***/
/****************************************************************************/
#include <jendefs.h>
#include <ALSdriver.h>
#include <HTSdriver.h>
#include <LedControl.h>
#include <AppHardwareApi.h>
#include <JZ_Api.h>

#include "WSN_Profile.h"

/****************************************************************************/
/***        Macro Definitions                                             ***/
/****************************************************************************/
/* Timing values */
#define APP_TICK_PERIOD_ms		  100
#define APP_TICK_PERIOD     	  (APP_TICK_PERIOD_ms * 32)

#define APP_DATA_SEND_PERIOD_ms	  1000
#define APP_DATA_SEND_PERIOD	  (APP_DATA_SEND_PERIOD_ms / APP_TICK_PERIOD_ms)

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

/* Battery reading state definitions */
typedef enum
{
	E_STATE_READ_BATT_VOLT_IDLE,
	E_STATE_READ_BATT_VOLTS_ADC_CONVERTING,
	E_STATE_READ_BATT_VOLTS_COMPLETE,
    E_STATE_READ_BATT_VOLTS_READY
}teStateReadBattVolt;

/* Temperature/Humidity Sensor - reading state definitions */
typedef enum
{
	E_STATE_READ_TEMP_HUMID_IDLE,
	E_STATE_READ_HUMID_RUNNING,
	E_STATE_READ_TEMP_HUMID_COMPLETE,
	E_STATE_READ_TEMP_START,
	E_STATE_READ_TEMP_HUMID_RUNNING,
	E_STATE_READ_TEMP_COMPLETE,
	E_STATE_READ_TEMP_HUMID_READY
}teStateReadTempHumidity;

/* Battery measurement data */
typedef struct
{
	uint16 					u16Reading;
	teStateReadBattVolt 	eState;
}tsBattSensor;

/* Temp/Humidity measurement data */
typedef struct
{
	uint16 					u16TempReading;
	uint16 					u16HumidReading;
	teStateReadTempHumidity eState;
}tsTempHumiditySensor;

/****************************************************************************/
/***        Local Function Prototypes                                     ***/
/****************************************************************************/
PRIVATE void vInit(void);
PRIVATE void vSendData(void);
PRIVATE void vInitSensors(void);
PRIVATE void vReadTempHumidity(void);
PRIVATE void vReadBatteryVoltage(void);
PRIVATE void vAppTick(void *pvMsg, uint8 u8Param);

/****************************************************************************/
/***        Local Variables                                               ***/
/****************************************************************************/
PRIVATE uint8 u8AppTicks = 0;
PRIVATE tsBattSensor sBattSensor;
PRIVATE tsTempHumiditySensor sTempHumiditySensor;
PRIVATE bool_t bAppTimerStarted = FALSE;
PRIVATE bool_t bNwkJoined = FALSE;

/****************************************************************************
 *
 * NAME: AppColdStart
 *
 * DESCRIPTION:
 * Entry point for application. Initialises system, starts scan then
 * processes interrupts.
 *
 * RETURNS:
 * void, never returns
 *
 ****************************************************************************/
PUBLIC void AppColdStart(void)
{
    /* General initialisation: reset hardware */
    JZS_sConfig.u32Channel 	= WSN_CHANNEL;
    JZS_sConfig.u16PanId 	= WSN_PAN_ID;

    /* General initialisation: reset hardware */
    vInit();

    /* No return from the above function call */
}

/****************************************************************************
 *
 * 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: vInit
 *
 * DESCRIPTION:
 * Initialises Zigbee stack and hardware. Final action is to start BOS, from
 * which there is no return. Subsequent application actions occur in the
 * functions defined above.
 *
 * RETURNS:
 * No return from this function
 *
 ****************************************************************************/
PRIVATE void vInit(void)
{
    /* Initialise Zigbee stack */
    JZS_u32InitSystem(TRUE);

    /* Set DIO for LEDs */
    vLedInitRfd();
    vLedControl(0,0);
    vLedControl(1,0);

    /* Set sensors */
    vInitSensors();

    /* Start BOS */
    (void)bBosRun(TRUE);

    /* No return from the above function call */
}

/****************************************************************************
 *
 * NAME: vInitSensors
 *
 * DESCRIPTION:
 * Initialise the temperature/humidity sensor and set the ADC to measure the
 * supply voltage.
 *
 ****************************************************************************/
PRIVATE void vInitSensors(void)
{
    /* Initialise temp/humidity sensor interface */
    vHTSreset();
    sTempHumiditySensor.eState = E_STATE_READ_TEMP_HUMID_IDLE;

    /* Initialise ADC for internal battery voltage measurement */
	sBattSensor.eState = E_STATE_READ_BATT_VOLT_IDLE;

	vAHI_ApConfigure(E_AHI_AP_REGULATOR_ENABLE,
	                 E_AHI_AP_INT_DISABLE,
	                 E_AHI_AP_SAMPLE_2,
	                 E_AHI_AP_CLOCKDIV_2MHZ,
	                 E_AHI_AP_INTREF);

    /* Wait until the analogue peripheral regulator has come up before setting
       the ADC. */
    while(!bAHI_APRegulatorEnabled());

    vAHI_AdcEnable(E_AHI_ADC_CONVERT_DISABLE,
                   E_AHI_AP_INPUT_RANGE_2,
                   E_AHI_ADC_SRC_VOLT);
}

/****************************************************************************
 *
 * NAME: vAppTick
 *
 * DESCRIPTION:
 *
 * Called by a BOS timer expiry. Reads sensor data and if complete transmits
 * to coordinator.
 *
 ****************************************************************************/
PRIVATE void vAppTick(void *pvMsg, uint8 u8Param)
{
    uint8 u8Msg;
    uint8 u8TimerId;
    static bool_t bToggle;

	/* Read sensor data */
	vReadTempHumidity();
	vReadBatteryVoltage();

	if (u8AppTicks++ > APP_DATA_SEND_PERIOD)
	{
	    /* If sensor reads are compete */
	    if ((sBattSensor.eState         == E_STATE_READ_BATT_VOLTS_READY) &&
            (sTempHumiditySensor.eState == E_STATE_READ_TEMP_HUMID_READY))
        {
		    /* Toggle LED1 to show we are alive */
		    if (bToggle)
		    {
		    	vLedControl(0,0);
		    }
		    else
		    {
		    	vLedControl(0,1);
		    }
		    bToggle = !bToggle;

		    u8AppTicks = 0;

            /* Transmit data to coordinator */
		    vSendData();

           	sBattSensor.eState         = E_STATE_READ_BATT_VOLT_IDLE;
            sTempHumiditySensor.eState = E_STATE_READ_TEMP_HUMID_IDLE;
		}
	}
    (void)bBosCreateTimer(vAppTick, &u8Msg, 0, (APP_TICK_PERIOD_ms / 10), &u8TimerId);
}

/****************************************************************************
 *
 * NAME: vReadBatteryVoltage
 *
 * DESCRIPTION:
 *
 * Uses ADC to read supply voltage. Measurement is performed using a state
 * machine to ensure that it never blocks.
 *
 ****************************************************************************/
PRIVATE void vReadBatteryVoltage(void)
{
    uint16 u16AdcReading;

	switch(sBattSensor.eState)
	{
		case E_STATE_READ_BATT_VOLT_IDLE:
	    	vAHI_AdcStartSample();
	    	sBattSensor.eState = E_STATE_READ_BATT_VOLTS_ADC_CONVERTING;
			break;

		case E_STATE_READ_BATT_VOLTS_ADC_CONVERTING:
	    	if (!bAHI_AdcPoll())
	    	{
	    	    sBattSensor.eState = E_STATE_READ_BATT_VOLTS_COMPLETE;
	    	}
			break;

		case E_STATE_READ_BATT_VOLTS_COMPLETE:

		    u16AdcReading = u16AHI_AdcRead();

		    /* Input range is 0 to 2.4V. ADC has full scale range of 12 bits.
		       Therefore a 1 bit change represents a voltage of approx 586uV */
		    sBattSensor.u16Reading = ((uint32)((uint32)(u16AdcReading * 586) +
                                     ((uint32)(u16AdcReading * 586) >> 1)))  /
                                     1000;

	    	sBattSensor.eState = E_STATE_READ_BATT_VOLTS_READY;
			break;

		case E_STATE_READ_BATT_VOLTS_READY:
			break;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美日韩国产一区二区三区 | 日韩中文字幕91| 久久综合资源网| 欧美日韩国产一区| 欧美色爱综合网| 91麻豆国产福利在线观看| 国产成人av电影在线播放| 麻豆一区二区99久久久久| 天天综合网天天综合色| 一区二区三区美女视频| 一级精品视频在线观看宜春院 | 欧美日韩高清一区二区| 欧美视频一区二区在线观看| 91麻豆国产自产在线观看| 99久久99久久免费精品蜜臀| av中文字幕不卡| 色哟哟精品一区| 欧美系列亚洲系列| 7777精品伊人久久久大香线蕉完整版| 欧美色图片你懂的| 欧美日韩在线播放| 日韩欧美一级二级三级| 久久香蕉国产线看观看99| 国产亚洲精久久久久久| 国产精品久久影院| 亚洲综合成人网| 五月天激情小说综合| 久久精品国产亚洲一区二区三区 | 午夜精品久久久| 日韩激情一区二区| 国产自产高清不卡| 99re这里只有精品6| 欧美性xxxxxx少妇| 精品乱码亚洲一区二区不卡| 亚洲国产精品ⅴa在线观看| 综合婷婷亚洲小说| 日韩综合一区二区| 国产毛片精品国产一区二区三区| 国产成人在线视频网址| 日本韩国精品在线| 日韩欧美一区二区不卡| 国产精品伦理一区二区| 亚洲国产成人91porn| 久久狠狠亚洲综合| 99re8在线精品视频免费播放| 欧美日韩一区精品| 久久久久久久网| 亚洲在线视频网站| 国产一区二区不卡在线| 色欧美日韩亚洲| 2019国产精品| 亚洲国产精品精华液网站 | 欧美激情一区二区三区不卡| 亚洲日本中文字幕区| 日本伊人色综合网| 成人黄色电影在线| 欧美电影免费观看高清完整版在线| 国产精品亲子乱子伦xxxx裸| 日本伊人色综合网| 91精品1区2区| 国产精品三级av| 国产原创一区二区三区| 欧美色图在线观看| 最新热久久免费视频| 成人亚洲精品久久久久软件| 不卡一区二区中文字幕| 精品国产第一区二区三区观看体验| 日韩一区欧美一区| 国产精品自拍av| 日韩视频免费直播| 午夜精品影院在线观看| 91影院在线观看| 久久久久国色av免费看影院| 日韩电影一区二区三区| 欧美性色黄大片| 国产精品电影一区二区| 国产成人综合精品三级| 欧美精品一区二区三区久久久| 亚洲成人tv网| 日本韩国欧美一区| 亚洲欧美日韩系列| 成人免费视频免费观看| 久久久久97国产精华液好用吗| 青青草国产精品亚洲专区无| 欧美人狂配大交3d怪物一区| 夜夜嗨av一区二区三区中文字幕 | 国产欧美视频一区二区三区| 男女性色大片免费观看一区二区| 欧美日韩视频一区二区| 亚洲综合免费观看高清在线观看| 色88888久久久久久影院按摩| 国产精品久久国产精麻豆99网站| 成人小视频在线| 中文字幕在线观看不卡| 99在线精品视频| 亚洲色图一区二区三区| 99久久精品国产麻豆演员表| 中文字幕一区二区三区av| 9久草视频在线视频精品| 中文字幕一区视频| 色偷偷久久一区二区三区| 亚洲免费资源在线播放| 欧美亚州韩日在线看免费版国语版| 亚洲美女视频在线| 欧美嫩在线观看| 麻豆精品新av中文字幕| 久久久蜜桃精品| 成人黄色大片在线观看| 亚洲综合久久av| 日韩一区二区精品葵司在线 | 综合电影一区二区三区| 91首页免费视频| 香蕉久久一区二区不卡无毒影院| 欧美精品久久天天躁| 麻豆精品国产传媒mv男同| 久久久99精品久久| 色呦呦国产精品| 免费在线观看成人| 国产欧美一区二区精品仙草咪| 99国产精品视频免费观看| 五月激情六月综合| 久久蜜臀精品av| 日本丶国产丶欧美色综合| 日韩成人午夜精品| 国产欧美精品在线观看| 欧美性大战久久| 国产精品小仙女| 亚洲图片有声小说| 久久久久成人黄色影片| 91官网在线免费观看| 久久99国产精品久久99| 亚洲免费av在线| 精品国产乱码久久久久久1区2区| 99riav一区二区三区| 另类综合日韩欧美亚洲| 亚洲免费观看在线观看| 精品免费国产一区二区三区四区| 99久久亚洲一区二区三区青草| 日韩中文字幕91| 亚洲美女电影在线| 国产午夜精品久久久久久久| 欧美日韩精品二区第二页| 福利电影一区二区三区| 日本va欧美va瓶| 一卡二卡三卡日韩欧美| 亚洲国产精品国自产拍av| 91精品免费在线观看| 91丨九色丨国产丨porny| 狠狠色丁香婷综合久久| 无码av免费一区二区三区试看| 国产精品国产a| 久久综合九色欧美综合狠狠| 欧美日韩一区二区欧美激情| caoporen国产精品视频| 国产一区二区在线影院| 婷婷六月综合网| 亚洲综合激情另类小说区| 欧美国产丝袜视频| 日韩免费福利电影在线观看| 欧美亚一区二区| 99久久精品国产导航| 国产成人免费视频精品含羞草妖精| 日韩在线a电影| 亚洲成人一区二区| 亚洲一区国产视频| 亚洲人成在线播放网站岛国| 国产精品视频观看| 久久久高清一区二区三区| 日韩一区二区影院| 欧美一级精品大片| 91精品国产入口| 91精品免费观看| 欧美二区乱c少妇| 欧美日韩久久不卡| 欧美日本在线看| 制服.丝袜.亚洲.中文.综合| 欧美日韩国产乱码电影| 欧美偷拍一区二区| 欧美日韩国产经典色站一区二区三区 | 一本在线高清不卡dvd| 高清视频一区二区| 国产成人午夜视频| 成人美女视频在线看| 成人蜜臀av电影| 91免费版在线| 欧美调教femdomvk| 欧美一级专区免费大片| 欧美va亚洲va| 欧美国产视频在线| 亚洲欧美激情小说另类| 一区二区三区不卡视频| 性欧美疯狂xxxxbbbb| 日韩av网站免费在线| 久久99国产精品久久99果冻传媒| 国产精一品亚洲二区在线视频| 成人综合婷婷国产精品久久蜜臀| 91亚洲资源网| 欧美高清视频一二三区| 欧美精品一区二区三区四区| 国产精品久久久久久久裸模|