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

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

?? router_app.c

?? zigbee stack msstatePAN
?? C
字號:
/*
  V0.1 Initial Release   10/July/2006  RBR

*/



/*
This is intended to be a router application
that recovers from dropped networks.
It starts by joining a network and then runnning
the stack. 

It occassionally pings its
parent to ensure that the parent is still
alive. If multiple ping attempts fail, the
router uses a 'rejoin' to join the network.
If this fail, the router tries a 'join'.
If this fails, then the router resets itself.


*/

#include "msstate_lrwpan.h"


#define PING_TIMEOUT  15  //in seconds, don't ping too often
#define MAX_PING_FAILURES 3
#define MAX_REJOIN_FAILURES 3

void printJoinInfo(void);

void printJoinInfo(void){

	conPrintROMString("My ShortAddress is: ");
	conPrintUINT16(aplGetMyShortAddress());
	conPCRLF();
	conPrintROMString("Parent LADDR: ");
	conPrintLADDR(aplGetParentLongAddress());
	conPrintROMString(", Parent SADDR: ");
	conPrintUINT16(aplGetParentShortAddress());
	conPCRLF();
}


typedef enum _ROUTER_STATE_ENUM {
	ROUTER_STATE_JOIN_NETWORK,
	ROUTER_STATE_JOIN_WAIT,
	ROUTER_STATE_NORMAL,
	ROUTER_STATE_DO_PING,
	ROUTER_STATE_WAIT_FOR_PING,
	ROUTER_STATE_REJOIN_NETWORK,
	ROUTER_STATE_REJOIN_WAIT  
}ROUTER_STATE_ENUM;

ROUTER_STATE_ENUM routerState;

void main (void){

	UINT32  my_timer;
	UINT8   failures, ping_cnt;

	//HalInit, evbInit will have to be called by the user
	halInit();
	evbInit();

	aplInit();  //init the stack
	conPrintConfig();
	ENABLE_GLOBAL_INTERRUPT();  //enable interrupts

	EVB_LED1_OFF();
	EVB_LED2_OFF();


	//debug_level = 10;

#ifdef LRWPAN_ROUTER
	routerState = ROUTER_STATE_JOIN_NETWORK;
	while(1) {      
		apsFSM();
		switch(routerState) {
		  case ROUTER_STATE_JOIN_NETWORK:
			  aplJoinNetwork();
			  routerState = ROUTER_STATE_JOIN_WAIT;
			  break;
		  case ROUTER_STATE_JOIN_WAIT:
			  if (apsBusy()) break;
			  if (aplGetStatus() == LRWPAN_STATUS_SUCCESS) {
				  conPrintROMString("Network Join succeeded!\n");
				  printJoinInfo();
				  my_timer = halGetMACTimer();
				  routerState = ROUTER_STATE_NORMAL;
				  ping_cnt = 0;
				  failures = 0;
				  EVB_LED1_ON();
			  } else 
			  {
				  conPrintROMString("Network Join FAILED! Waiting, then trying again\n");
				  my_timer= halGetMACTimer();
				  //wait for 2 seconds
				  while ((halMACTimerNowDelta(my_timer))< MSECS_TO_MACTICKS(2*1000));
				  routerState = ROUTER_STATE_JOIN_NETWORK;
			  }
			  break;

		  case ROUTER_STATE_NORMAL:
			  //check ping timeout
			  if (halMACTimerNowDelta(my_timer) > MSECS_TO_MACTICKS(1000)){
				  my_timer= halGetMACTimer(); //reset timer
				  //long timeouts are done in segments of short intervals as 
				  //the maximum timeout on the HAL MAC timer is platform dependent
				  ping_cnt++;
				  if (ping_cnt == PING_TIMEOUT) {
					  ping_cnt = 0;
					  //send a ping
					  routerState= ROUTER_STATE_DO_PING;
				  }
			  }
			  break;
		  case ROUTER_STATE_DO_PING:
			  conPrintROMString("Sending Ping!\n");
			  //aplPingParent uses an APS ack in order to ensure that this
			  //node is still associated with the parent
			  aplPingParent();
			  routerState= ROUTER_STATE_WAIT_FOR_PING;
			  break;
		  case ROUTER_STATE_WAIT_FOR_PING:
			  if (apsBusy()) break;
			  if (aplGetStatus() == LRWPAN_STATUS_SUCCESS) {
				  //all is well
				  failures = 0;
				  my_timer = halGetMACTimer();
				  routerState= ROUTER_STATE_NORMAL;
			  }else {
				  failures++;
				  conPrintROMString("Ping failed!\n");
				  if (failures == MAX_PING_FAILURES) {
					  failures = 0;
					  routerState= ROUTER_STATE_REJOIN_NETWORK;
				  }
				  break;
		  case ROUTER_STATE_REJOIN_NETWORK:
			  //A rejoin takes less time than a join, and does 
			  //not erase the neighbor table. A join erases
			  //the neighbor table, forcing all of the router's
			  //childen to re-issue joins.
			  EVB_LED1_OFF();  //not connected to a network
			  aplRejoinNetwork();
			  routerState= ROUTER_STATE_REJOIN_WAIT;
			  break;
		  case ROUTER_STATE_REJOIN_WAIT:
			  if (apsBusy()) break;
			  if (aplGetStatus() == LRWPAN_STATUS_SUCCESS) {
				  my_timer = halGetMACTimer();
				  routerState = ROUTER_STATE_NORMAL;
				  ping_cnt = 0;
				  failures = 0;
				  EVB_LED1_ON();
				  conPrintROMString("Network Rejoin succeeded!\n");
				  printJoinInfo();
				  routerState = ROUTER_STATE_NORMAL;
			  } else {
				  failures++;
				  if (failures == MAX_REJOIN_FAILURES) {
					  conPrintROMString("Network ReJoin max tries exceeded. Trying a join.");
					  routerState = ROUTER_STATE_JOIN_NETWORK;
				  } else {
					  conPrintROMString("Network ReJoin FAILED! Waiting, then trying again\n");
					  my_timer= halGetMACTimer();
					  //wait for 2 seconds
					  while ((halMACTimerNowDelta(my_timer))< MSECS_TO_MACTICKS(2*1000));
					  routerState = ROUTER_STATE_REJOIN_NETWORK;
					  break;
				  }
			  }
			  break;
		  default: 
			  routerState = ROUTER_STATE_JOIN_NETWORK;
			  }

		}
	} //end while(1)
#else
	conPrintROMString("This application is intended for a router!\n");
	conPrintROMString("Entering infinite loop, doing nothing.\n");
	while(1);

#endif


}

//########## Callbacks ##########
//don't do much with these callbacks in the router application

void usrZepRxCallback(void){}

//no user endpoint in this application to receive data
void usrRxPacketCallback(void) {}


#ifdef LRWPAN_FFD
//allow anybody to join
BOOL usrJoinVerifyCallback(LADDR *ptr, BYTE capinfo){

	return TRUE;

}

BOOL usrJoinNotifyCallback(LADDR *ptr){
	conPrintROMString("Node joined: ");
	conPrintLADDR(ptr);
	conPCRLF();
	DEBUG_PRINTNEIGHBORS(DBG_INFO);
	return TRUE;
}
#endif

//called when the slow timer interrupt occurs
#ifdef LRWPAN_ENABLE_SLOW_TIMER
void usrSlowTimerInt(void ) {}
#endif


//general interrupt callback , when this is called depends on the HAL layer.
void usrIntCallback(void){}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
青青国产91久久久久久| 热久久国产精品| 亚洲色图19p| 无吗不卡中文字幕| 久久国产生活片100| 91视视频在线直接观看在线看网页在线看 | 色综合久久九月婷婷色综合| 91精品国产入口| 欧美激情一区二区在线| 亚洲成av人在线观看| 国产成人免费视频一区| 欧美午夜电影一区| 久久蜜臀中文字幕| 国产91综合网| 日韩精品一区二| 一区二区三区国产精华| 国产久卡久卡久卡久卡视频精品| 在线视频一区二区三| 久久久久久9999| 老司机午夜精品| 欧美一区三区二区| 午夜私人影院久久久久| 色综合中文综合网| 成人一区二区三区视频 | 日韩中文字幕av电影| 欧美艳星brazzers| 亚洲伊人色欲综合网| 91丨porny丨国产| 自拍偷自拍亚洲精品播放| 高清不卡在线观看av| 亚洲精品一区二区三区福利 | 99久免费精品视频在线观看| 久久精品免费观看| 欧美一区二区三区成人| 亚洲国产精品精华液2区45| 久久99深爱久久99精品| 国产精品毛片大码女人| 风流少妇一区二区| 精品欧美久久久| 色激情天天射综合网| 免费高清在线一区| 亚洲视频一二三区| 欧美一级片在线观看| av电影一区二区| 麻豆国产精品官网| 亚洲一区二区欧美激情| 久久久久久**毛片大全| 91精品国产综合久久精品麻豆| 国产91在线观看丝袜| 免费人成黄页网站在线一区二区 | 日本精品一级二级| 久久免费精品国产久精品久久久久| 国产精品影视在线观看| 国产精品婷婷午夜在线观看| 欧美日本高清视频在线观看| 99亚偷拍自图区亚洲| 国产精品综合视频| 免费在线视频一区| 午夜伊人狠狠久久| 一区二区在线看| 中文字幕一区二区三中文字幕| 精品成人一区二区| 91精品国产麻豆| 欧美久久久久久久久中文字幕| 色婷婷久久久综合中文字幕| 波多野结衣亚洲一区| 国产成人免费视频网站| 经典三级视频一区| 精品一区二区免费在线观看| 免费观看在线综合| 久久精品理论片| 久久精品久久综合| 精品在线免费视频| 韩国女主播成人在线观看| 久久国产夜色精品鲁鲁99| 美女脱光内衣内裤视频久久网站 | 精品写真视频在线观看| 美女视频免费一区| 琪琪一区二区三区| 日韩影院免费视频| 毛片av中文字幕一区二区| 久久爱www久久做| 久久黄色级2电影| 国产乱对白刺激视频不卡| 国产一区日韩二区欧美三区| 国产一区二区三区四区五区美女| 久久国内精品视频| 国产激情视频一区二区三区欧美| 国产黄人亚洲片| gogo大胆日本视频一区| 91免费版在线| 欧美日韩午夜在线视频| 日韩欧美你懂的| 久久久午夜电影| 中文字幕在线观看一区二区| 一区二区久久久久久| 亚洲福利视频一区二区| 免费人成在线不卡| 国产麻豆精品一区二区| kk眼镜猥琐国模调教系列一区二区 | 国产日韩欧美精品一区| 中文字幕一区二区三| 亚洲国产精品一区二区www在线| 日韩国产欧美在线播放| 国产一区二区三区四区五区入口 | 久久99国产精品免费网站| 成人午夜免费av| 欧美在线影院一区二区| 欧美一区二区三区视频在线| 日韩一卡二卡三卡| 日本久久精品电影| 日韩欧美国产系列| 国产精品福利一区二区三区| 亚洲国产一二三| 极品少妇xxxx偷拍精品少妇| 99视频精品免费视频| 欧美日韩中文国产| 国产视频在线观看一区二区三区| 亚洲一区在线观看视频| 国产在线一区二区综合免费视频| 色综合久久天天| 精品福利在线导航| 亚洲一区二区三区在线| 激情欧美一区二区| 在线这里只有精品| 久久久久久久久岛国免费| 亚洲午夜国产一区99re久久| 狠狠v欧美v日韩v亚洲ⅴ| 欧美主播一区二区三区美女| 2024国产精品| 亚洲成a人片在线观看中文| 成人综合婷婷国产精品久久蜜臀| 欧美人牲a欧美精品| 亚洲欧美偷拍卡通变态| 国产精品一区在线观看乱码| 欧美日本在线观看| 亚洲欧洲中文日韩久久av乱码| 国产乱子伦一区二区三区国色天香| 色婷婷久久综合| 国产精品理伦片| 国产一区二区三区电影在线观看| 欧美日韩国产首页在线观看| 亚洲欧美视频在线观看视频| 丁香六月久久综合狠狠色| 精品美女一区二区| 日韩福利电影在线| 欧美性大战xxxxx久久久| 国产精品久久久久三级| 国产高清精品网站| 2020日本不卡一区二区视频| 青青草原综合久久大伊人精品| 欧美在线看片a免费观看| 国产精品色在线观看| 国产不卡视频在线观看| 久久亚洲精品国产精品紫薇| 免费在线观看一区二区三区| 91精品国产综合久久香蕉的特点| 亚洲无人区一区| 欧美无乱码久久久免费午夜一区| 亚洲精品欧美激情| 色一情一伦一子一伦一区| 亚洲人成在线播放网站岛国| 成人国产精品免费| 中文字幕欧美日本乱码一线二线 | 国产一区二区在线电影| 欧美精品一区二区久久婷婷| 久久成人久久爱| 久久亚洲二区三区| 懂色中文一区二区在线播放| 中文天堂在线一区| 国产一区二区在线观看视频| 久久亚洲一级片| 成人一道本在线| 亚洲视频在线一区二区| 99视频精品在线| 亚洲丶国产丶欧美一区二区三区| 欧美精品18+| 久久精品国产精品亚洲综合| 国产婷婷色一区二区三区四区| 成人免费精品视频| 亚洲欧美一区二区三区极速播放| 色婷婷久久久久swag精品| 亚洲国产欧美在线人成| 日韩一区二区三区三四区视频在线观看 | 国产精品人妖ts系列视频| www.欧美日韩| 亚洲高清免费观看| 精品少妇一区二区三区免费观看| 国产一区三区三区| 中文字幕一区二区三区av| 日韩av电影免费观看高清完整版在线观看| 99久久国产综合精品色伊| 亚洲国产综合视频在线观看| 欧美性受xxxx黑人xyx性爽| 蜜桃视频在线观看一区| 久久久精品天堂| 成人av影视在线观看| 一区二区高清免费观看影视大全| 91精品国产aⅴ一区二区| 老司机一区二区|