⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 atjenie_app.c

📁 JENNIC无线传感器网络 ZIGBEE 文件资料
💻 C
字号:
/**************************************************************************** * * MODULE:             ATJenieApp.c * * COMPONENT:          ATJenie_App.c,v * * VERSION:            AT-Jenie_Release_v1_RC3 * * REVISION:           1.21 * * DATED:              2007/11/23 12:07:22 * * STATUS:             Exp * * AUTHOR:             MRW * * DESCRIPTION:		   AT Jenie Example Application * * LAST MODIFIED BY:   mwild *                     $Modtime: $ * * HISTORY: * **************************************************************************** * * 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 2007. All rights reserved * ****************************************************************************//****************************************************************************//***        Include files                                                 ***//****************************************************************************/#include <string.h>#include <jendefs.h>#include "gdb.h"#include "Jenie.h"#include "ATJParser.h"#include "ATJCommands.h"#include "ATJPlatformCmds.h"#ifdef ATJ_TUNNELING#include "ATJTunnel.h"#endif#include "Serial.h"#include "uart.h"#include "AppHardwareApi.h"/****************************************************************************//***        Macro Definitions                                             ***//****************************************************************************/#ifdef ATJ_TUNNELING/* service AT Jenie command tunnel is connected to */#define ATJ_TUNNEL_SERVICE				(32UL)#endif/****************************************************************************//***        Type Definitions                                              ***//****************************************************************************//****************************************************************************//***        Local Function Prototypes                                     ***//****************************************************************************//****************************************************************************//***        Exported Variables                                            ***//****************************************************************************//****************************************************************************//***        Local Variables                                               ***//****************************************************************************/ATJ_DECLARE_CHAR_CHANNEL(UartChannel, i16Serial_RxChar, bSerial_TxChar, vUART_SetBaudRate ); /* [I SP001222_P1 1] *//****************************************************************************//***        Exported Functions                                            ***//****************************************************************************//**************************************************************************** * * NAME: vJenie_ConfigureNetwork * * DESCRIPTION: * Entry point for application from boot loader. Initialises system. * * RETURNS: * Nothing * ****************************************************************************/PUBLIC void vJenie_CbConfigureNetwork(void){	/* Debug hooks: include these regardless of whether debugging or not */	HAL_GDB_INIT();#ifdef GDB	/* Increase the UART speed from the default of 9600 */    vAHI_UartSetClockDivisor(0, E_AHI_UART_RATE_38400);#endif    HAL_BREAKPOINT();    vSerial_Init(); /* [I SP001222_P1 1] */    vATJ_ParserInit(FALSE);    vATJ_CommandsInit();    vATJ_PlatformCommandsInit();    vATJ_ParserAddChannel(&UartChannel);    vATJ_ParserOpenChannel(&UartChannel);    /* only allow applicable commands when configuring */    vATJ_ParserSetCommandEnable(&UartChannel, "INI,CFG,CFP,GTV,CCF,CCS,RST,OAD", TRUE); /* [I SP001222_P1 272] */	/* enable all peripheral commands */    vATJ_ParserSetCommandEnable(&UartChannel, "PAC,PAE,PAD,PAS,PAR,PAO,PCE,PCD,PCI,PCS,PCW,PWE,PWG,PWX,PWS,PWC,PWF,PDD,PDO,PDP,PDR,PDE,PDS,PTE,PTD,PTG,PTC,PTR,PTX,PTF", TRUE); /* [I SP001222_P1 272] */	while (E_JENIE_INITIALISED != ATJ_CommandsJenieState) { /* [I SP001222_P1 273] */    	vATJ_ParserProcessCharChannel(&UartChannel); /* [I SP001222_P1 271] */    }	vATJ_ParserSetCommandEnable(&UartChannel, "INI", FALSE);}/**************************************************************************** * * NAME: vJenie_Init * * DESCRIPTION: * Called by Jenie after stack started to perforn hardware init * * RETURNS: * void * ****************************************************************************/PUBLIC void vJenie_CbInit(bool_t bWarmStart){    if (bWarmStart) {    	HAL_GDB_INIT();    #ifdef GDB    	/* Increase the UART speed from the default of 9600 */        vAHI_UartSetClockDivisor(0, E_AHI_UART_RATE_38400);    #endif        vSerial_Init();        vATJ_ParserInit(TRUE);#if defined(ATJ_COORDINATOR)        eJenie_Start(E_JENIE_COORDINATOR);#elif defined(ATJ_ROUTER)        eJenie_Start(E_JENIE_ROUTER);#elif defined(ATJ_ENDDEVICE)        eJenie_Start(E_JENIE_END_DEVICE);#else#error One of ATJ_COORDINATOR, ATJ_ROUTER or ATJ_ENDDEVICE must be defined#endif    } else {        /* only allow applicable commands when starting */        vATJ_ParserSetCommandEnable(&UartChannel, "STR", TRUE); /* [I SP001222_P1 275] */    	while (E_JENIE_STARTED != ATJ_CommandsJenieState) { /* [I SP001222_P1 276] */        	vATJ_ParserProcessCharChannel(&UartChannel); /* [I SP001222_P1 274] */        }    	vATJ_ParserSetCommandEnable(&UartChannel, "STR,CFG,CFP", FALSE); /* [I SP001222_P1 278] */    }}/****************************************************************************//***               Functions called by the stack                          ***//****************************************************************************//**************************************************************************** * * NAME: vJenie_Main * * DESCRIPTION: * Main user routine. * at regular intervals. * * RETURNS: * void * ****************************************************************************/PUBLIC void vJenie_CbMain(void){	static bool_t bInit = TRUE;	/* enable commands once the wireless net is up */	if (bInit) {		bInit = FALSE;#ifdef ATJ_TUNNELING		/* register all services here */		eJenie_RegisterServices(1UL << (ATJ_TUNNEL_SERVICE - 1));		vATJ_TunnelInit(&UartChannel, ATJ_TUNNEL_SERVICE);#endif		vATJ_ParserSetCommandEnable(&UartChannel, "REG,RQS,BND,UBN,SAS,GAS,KEY,SND,SDS,SCN,RCN,SSP,SLP,RDP,GTV,POL,LVE", TRUE); /* [I SP001222_P1 278] */		vATJ_ParserSetCommandEnable(&UartChannel, "BGV,BGT,BGL,BGH,BGR,BGF,BLO,BLF,BTX", TRUE);	}	vATJ_ParserProcessCharChannel(&UartChannel); /* [I SP001222_P1 277] */}/**************************************************************************** * * NAME: vJenie_HwEvent * * DESCRIPTION: * Adds events to the hardware event queue. * * PARAMETERS:      Name            RW  Usage *                  u32DeviceId     R   Peripheral responsible for interrupt e.g DsGateway.u8NodeDetailsIO *                  u32ItemBitmap   R   Source of interrupt e.g. DIO bit map * * RETURNS: * void * * HISTORY: Ver0.7 - 07/08/07 - new AT_Jenie Command set - End-of-Command character changed to "Line Feed" *                              instead of any non-CSV character as previously ****************************************************************************/PUBLIC void vJenie_CbHwEvent(uint32 u32DeviceId,uint32 u32ItemBitmap){	uint8 EventStr[128];	if (bATJ_CommandsJenieHwEventToStr(u32DeviceId, u32ItemBitmap, EventStr)) {		vATJ_ParserProcessEvent(EventStr);	}}/**************************************************************************** * * NAME: vJenie_StackDataEvent * * DESCRIPTION: * Used to receive stack data events * * PARAMETERS:      Name                    RW  Usage *                  *psStackDataEvent       R   Pointer to data structure * * RETURNS: * void * ****************************************************************************/PUBLIC void vJenie_CbStackDataEvent(teEventType eEventType, void *pvEventPrim){#ifdef ATJ_TUNNELING	if (!bATJ_TunnelCommand(eEventType, pvEventPrim)) {#endif		uint8 EventStr[128];		if (vATJ_CommandsJenieEventToStr(eEventType, pvEventPrim, EventStr)) {		    vATJ_ParserProcessEvent(EventStr);		}#ifdef ATJ_TUNNELING	}#endif}/**************************************************************************** * * NAME: vJenie_StackMgmtEvent * * DESCRIPTION: * Used to receive stack management events * * PARAMETERS:      Name                    RW  Usage *                  *psStackMgmtEvent       R   Pointer to event structure * * RETURNS: * void * ****************************************************************************/PUBLIC void vJenie_CbStackMgmtEvent(teEventType eEventType, void *pvEventPrim){	uint8 EventStr[128];	if (vATJ_CommandsJenieEventToStr(eEventType, pvEventPrim, EventStr)) {	    vATJ_ParserProcessEvent(EventStr);	}}/****************************************************************************//***        Local Functions                                               ***//****************************************************************************//****************************************************************************//***          END OF FILE                                                 ***//****************************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -