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

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

?? coord_ep_indirect.c

?? 語言為C語言
?? C
字號:
/*
  V0.1 Initial Release   10/July/2006  RBR

*/



/*
This tests indirect packets with just two nodes.
This tests the special case of an endpoint on
the coordinator sending an indirect packet, which
must be injected into the stack as if received
remotely.

Expects coordinator, one RFD.
The topology to test should be

Coordinator ->  RFD1

Start the coordinator first, then the RFD.


For this to work, the bindings in staticbind.h must
be correct. This test assumes that the LSBs of the
long addresses of the coordinator and RFD are non-zero, and
are not equal to each other, and uses these as the
endpoints for the indirect messages.

Also, if using Win32, you need to be running the virtual board
interface for the coordinator and the RFD, as you must
press/release SW1 to send a packet.

*/

#include "wx_lrwpan.h"


BYTE myLongAddress[8];

BYTE test_number;



LADDR_UNION dstADDR;
UINT32 my_timer;

BYTE payload[32];  //buffer for payload

static void get_SW1_press_and_release(void);
static void print_test(void);
void getpayload(void);

void print_test(void){
	conPrintROMString("Test "); conPrintUINT8((UINT8) test_number);
	conPrintROMString(", Sending msg: ");
	conPrintString((char *)&payload[0]);
	conPCRLF();
}

//in this loop keep running the stack FSM so
//that we can receive packets
void get_SW1_press_and_release(void){
	while(EVB_SW1_RELEASED()) {apsFSM();evbPoll();}
	while(EVB_SW1_PRESSED()){apsFSM();evbPoll();}

}


#define NUM_MESSAGES 8
//convoluted mess because of different ways compilers treat const char strings
void getpayload(void) {
	BYTE *dst;
	ROMCHAR *src;
	BYTE msgnum;

	static ROMCHAR _x0_[] = "Hello!";
	static ROMCHAR _x1_[] = "Goodbye?";
	static ROMCHAR _x2_[] = "WTH?";
	static ROMCHAR _x3_[] = "Ouchies!";
	static ROMCHAR _x4_[] = "Shazbot!";
	static ROMCHAR _x5_[] = "FerSur!";
	static ROMCHAR _x6_[] = "NoSir!";
	static ROMCHAR _x7_[] = "Wazzup?";

	msgnum = halGetRandomByte();
	msgnum = msgnum % NUM_MESSAGES;

	switch (msgnum) {
	 case 0 :  src = &_x0_[0]; break;
	 case 1 :  src = &_x1_[0]; break;
	 case 2 :  src = &_x2_[0]; break;
	 case 3 :  src = &_x3_[0]; break;
	 case 4 :  src = &_x4_[0]; break;
	 case 5 :  src = &_x5_[0]; break;
	 case 6 :  src = &_x6_[0]; break;
	 default :  src = &_x7_[0]; break;
	}
	dst = &payload[0];
	while (*src) {
		*dst = *src;
		dst++;src++;
	}
	*dst = *src;
}


void packet_test(void) {


	switch(test_number) {
	  case 0:
		  getpayload();
		  print_test();
		  conPrintROMString("Indirect MSG, no ack requested, SrcEP:  ");
		  conPrintUINT8(myLongAddress[0]);
		  conPrintROMString("Cluster: ");
		  conPrintUINT8(LRWPAN_APP_CLUSTER);
		  conPCRLF();
		  conPrintROMString("Press SW1 to send packet\n");
		  get_SW1_press_and_release();

		  //comStrlen defined in compiler.h, this is compiler dependent
		  aplSendMSG (APS_DSTMODE_NONE,
			  NULL,
			  0,
			  LRWPAN_APP_CLUSTER,
			  myLongAddress[0],
			  payload,
			  strlen((char *)payload)+1,
			  apsGenTSN(),
			  FALSE);  //No APS ack requested
		  test_number++;
		  break;
	  case 1:
		  getpayload();
		  print_test();
		  conPrintROMString("Indirect MSG, APS ack requested, SrcEP:  ");
		  conPrintUINT8(myLongAddress[0]);
		  conPrintROMString("Cluster: ");
		  conPrintUINT8(LRWPAN_APP_CLUSTER);
		  conPCRLF();
		  conPrintROMString("Press SW1 to send packet\n");
		  get_SW1_press_and_release();

		  dstADDR.saddr = 0; //Coordinator has address 0
		  aplSendMSG (APS_DSTMODE_NONE,
			  NULL, //no destination address for indirect messages
			  0, //dst EP
			  LRWPAN_APP_CLUSTER, //cluster is ignored for direct message
			  myLongAddress[0], //src EP
			  payload,
			  strlen((char *)payload)+1,
			  apsGenTSN(),
			  TRUE);  //APS ack requested
		  test_number = 0;
		  break;



	  default:
		  test_number = 0;

		  break;
	}


	//block, and see if message sent successfully
	while(apsBusy()) {apsFSM();}
	if (aplGetStatus() == LRWPAN_STATUS_SUCCESS) {
		conPrintROMString("MSG send succeeded!\n");
	}else {
		conPrintROMString("MSG send FAILED!\n");
	}


}

void main (void){


	//this initialization set our SADDR to 0xFFFF,
	//PANID to the default PANID

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

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

	//debug_level = 10;

	EVB_LED1_OFF();
	EVB_LED2_OFF();

	//get this for reference, will use the LSB as srcEP for indirect message
	halGetProcessorIEEEAddress(&myLongAddress[0]);

#ifdef LRWPAN_COORDINATOR

	aplFormNetwork();
	while(apsBusy()) {apsFSM();} //wait for finish
	EVB_LED1_ON();
	conPrintROMString("Nwk formed\n");


#else
	do {
		aplJoinNetwork();
		while(apsBusy()) {apsFSM();} //wait for finish
		if (aplGetStatus() == LRWPAN_STATUS_SUCCESS) {
			EVB_LED1_ON();
			conPrintROMString("Network Join succeeded!\n");
			conPrintROMString("My ShortAddress is: ");
			conPrintUINT16(aplGetMyShortAddress());
			conPCRLF();
			conPrintROMString("Parent LADDR: ")
				conPrintLADDR(aplGetParentLongAddress());
			conPrintROMString(", Parent SADDR: ");
			conPrintUINT16(aplGetParentShortAddress());
			conPCRLF();
			break;
		}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));
		}
	} while(1);
#endif


#ifdef LRWPAN_RFD
	//announce ourselves to the coordinator so that we can test indirect messaging
	//this is only necessary if there are routers between us and the coordinator,
	//but since don't know the network topology, do it always if RFD.
	do {
		aplSendEndDeviceAnnounce(0);  //send to coordinator as it resolves bindings
		while(apsBusy()) {apsFSM();} //wait for finish
		if (aplGetStatus() == LRWPAN_STATUS_SUCCESS) {
			conPrintROMString("End Device Announce succeeded!\n");
			break;
		}
		else {
			conPrintROMString("End Device Announce FAILED! Waiting, then trying again\n");
			my_timer= halGetMACTimer();
			//wait for 2 seconds
			while ((halMACTimerNowDelta(my_timer))< MSECS_TO_MACTICKS(2*1000));
		}
	}while(1);
#endif

#if defined(LRWPAN_RFD) || defined(LRWPAN_COORDINATOR)
	//now send packets
	while (1) {
		packet_test();
		while(apsBusy()) {apsFSM();} //wait for finish
	}
#endif


#ifdef LRWPAN_ROUTER
	//router does nothing, just routes
	conPrintROMString("Router, doing its thing.!\n");
	while(1) {apsFSM();}
#endif


}

//########## Callbacks ##########

//callback for anytime the Zero Endpoint RX handles a command
//user can use the APS functions to access the arguments
//and take additional action is desired.
//the callback occurs after the ZEP has already taken
//its action.
LRWPAN_STATUS_ENUM usrZepRxCallback(void){

#ifdef LRWPAN_COORDINATOR
	if (aplGetRxCluster() == ZEP_END_DEVICE_ANNOUNCE) {
		//a new end device has announced itself, print out the
		//the neightbor table and address map
		dbgPrintNeighborTable();
	}
#endif
 return LRWPAN_STATUS_SUCCESS;
}

//callback from APS when packet is received
//user must do something with data as it is freed
//within the stack upon return.

LRWPAN_STATUS_ENUM usrRxPacketCallback(void) {

	BYTE len, *ptr;

	//just print out this data

	conPrintROMString("User Data Packet Received: \n");
	conPrintROMString("SrcSADDR: ");
	conPrintUINT16(aplGetRxSrcSADDR());
	conPrintROMString(", DstEp: ");
	conPrintUINT8(aplGetRxDstEp());
	conPrintROMString(", Cluster: ");
	conPrintUINT8(aplGetRxCluster());
	conPrintROMString(", Msg Length: ");
	len = aplGetRxMsgLen();
	conPrintUINT8(len);
	conPCRLF();
	conPrintROMString("Msg: ");
	ptr = aplGetRxMsgData();
	while(len){
		halPutch(*ptr);
		ptr++; len--;
	}
	conPCRLF();
	//toggle LED2 for each new message RX
	if (EVB_LED2_STATE()) EVB_LED2_OFF(); else EVB_LED2_ON();
        return LRWPAN_STATUS_SUCCESS;
}

#ifdef LRWPAN_FFD
//Callback to user level to see if OK for this node
//to join - implement Access Control Lists here based
//upon IEEE address if desired
BOOL usrJoinVerifyCallback(LADDR *ptr, BYTE capinfo){

	return TRUE;

}

BOOL usrJoinNotifyCallback(LADDR *ptr){

	//allow anybody to join

	conPrintROMString("Node joined: ");
	conPrintLADDR(ptr);
	conPCRLF();
	DEBUG_PRINTNEIGHBORS(DBG_INFO);
	return TRUE;
}
#endif


void usrIntCallback(void){

}

#ifdef LRWPAN_ENABLE_SLOW_TIMER
void usrSlowTimerInt(void ) {}
#endif


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品第一页| 亚洲国产日韩一区二区| 伊人性伊人情综合网| 免费成人av资源网| 91免费精品国自产拍在线不卡| 精品视频123区在线观看| 久久久99精品免费观看| 日韩av一级电影| 91性感美女视频| 2021久久国产精品不只是精品| 亚洲午夜久久久久久久久电影网 | 欧美精品一区男女天堂| 亚洲精品日韩一| 粗大黑人巨茎大战欧美成人| 精品国精品自拍自在线| 欧美aa在线视频| 欧美日韩国产天堂| 亚洲一区二区中文在线| 91麻豆国产精品久久| 国产精品日韩成人| 国产成人精品网址| 久久影视一区二区| 免播放器亚洲一区| 91精品国产免费| 亚洲大型综合色站| 欧美在线综合视频| 亚洲精品国产精品乱码不99| 99久久99久久免费精品蜜臀| 91视频www| 国产高清亚洲一区| 美女性感视频久久| 国产精品色在线观看| 久久嫩草精品久久久久| 91精品午夜视频| 日本不卡高清视频| 亚洲一区欧美一区| 国产精品毛片a∨一区二区三区| 国产精品一区三区| 99精品久久只有精品| wwwwww.欧美系列| 麻豆精品精品国产自在97香蕉| 欧美无砖专区一中文字| 午夜精品久久久| 欧美高清性hdvideosex| 亚洲一区二区欧美日韩| 欧美日韩精品一区二区三区四区| 亚洲女同一区二区| 日本高清无吗v一区| 亚洲一区二区三区在线播放| 欧美午夜精品久久久| 亚洲国产一区二区三区| 欧美精品欧美精品系列| 日本大胆欧美人术艺术动态| 日韩免费高清av| 国产精品18久久久久久久久| 国产精品久久久久三级| 欧美亚洲国产怡红院影院| 亚洲成a人片在线不卡一二三区| 3atv一区二区三区| 麻豆成人91精品二区三区| 欧美精品一区二| eeuss鲁片一区二区三区| 亚洲一区二区在线播放相泽 | 日韩欧美在线观看一区二区三区| 久久99精品一区二区三区三区| 国产片一区二区三区| 色先锋aa成人| 久久精品理论片| 亚洲美女屁股眼交3| 91精品国产高清一区二区三区 | 91亚洲午夜精品久久久久久| 亚洲综合色丁香婷婷六月图片| 欧美一区二区三区思思人| 国产精品一区在线观看乱码| 一区二区三区欧美久久| 欧美不卡在线视频| 91蜜桃传媒精品久久久一区二区| 奇米色777欧美一区二区| 国产日韩av一区二区| 欧美日韩国产天堂| 成人激情文学综合网| 日韩专区欧美专区| 制服视频三区第一页精品| 香蕉久久一区二区不卡无毒影院 | 香蕉久久夜色精品国产使用方法| 亚洲国产wwwccc36天堂| 国产成人精品影视| 久久久无码精品亚洲日韩按摩| 欧美电影在哪看比较好| 日本一区二区动态图| 国产一区二区0| 精品视频全国免费看| 亚洲一区二区在线视频| 亚洲国产成人私人影院tom| 91精品国产麻豆| 在线视频你懂得一区| 国产精品一区二区久久精品爱涩| 天堂一区二区在线免费观看| 国产精品久久久久9999吃药| 欧美电影免费观看高清完整版在| 色一情一伦一子一伦一区| 国产传媒日韩欧美成人| 蜜臀a∨国产成人精品| 亚洲综合丁香婷婷六月香| 国产精品乱人伦一区二区| 精品福利一二区| 在线观看91精品国产麻豆| 91色porny蝌蚪| 成人免费视频免费观看| 国产一区在线观看视频| 狠狠色丁香婷婷综合| 六月婷婷色综合| 麻豆免费看一区二区三区| 视频一区欧美日韩| 亚洲成人一区在线| 亚洲国产精品久久不卡毛片| 亚洲妇女屁股眼交7| 亚洲福利电影网| 亚洲成av人片www| 丝袜美腿亚洲一区| 三级亚洲高清视频| 麻豆精品一区二区三区| 久久成人羞羞网站| 久久国产日韩欧美精品| 久久av资源站| 国产精品影视在线| 波多野结衣视频一区| 成人av网址在线| 色8久久精品久久久久久蜜| 99国产精品国产精品久久| 在线视频一区二区三| 在线观看国产91| 欧美日韩mp4| 欧美一二三在线| 欧美成人激情免费网| 国产欧美日韩精品a在线观看| 国产精品久99| 亚洲最新视频在线观看| 亚洲成人激情社区| 精品中文字幕一区二区| 国产乱子伦视频一区二区三区 | 韩国成人福利片在线播放| 国产麻豆视频精品| 99国产精品99久久久久久| 欧美高清视频不卡网| 精品国产露脸精彩对白| 国产精品传媒视频| 亚洲国产成人av好男人在线观看| 激情五月婷婷综合| 一本色道综合亚洲| 欧美精品日韩一本| 国产精品网站一区| 亚洲成人资源在线| 国产成人夜色高潮福利影视| 欧美一区二区三区免费视频| 欧美性色黄大片手机版| 欧美精品一区二区精品网| 午夜影院在线观看欧美| 国产中文字幕精品| 99久久国产综合色|国产精品| 日本一区二区三区高清不卡| 久久综合久久综合久久综合| 欧美一区二区视频网站| 在线视频欧美精品| 日韩欧美电影一区| 成+人+亚洲+综合天堂| 亚洲视频在线一区观看| 91啪九色porn原创视频在线观看| 欧美成人r级一区二区三区| 国产精品久久久久aaaa| 国产精品99久久久久久似苏梦涵| 欧美中文字幕不卡| 中文字幕一区在线观看| 日本不卡1234视频| 欧美高清视频不卡网| 18欧美乱大交hd1984| 国产真实乱子伦精品视频| 色婷婷综合久色| 五月婷婷综合激情| 欧美亚一区二区| 天天色 色综合| 日韩一区二区在线播放| 日本视频中文字幕一区二区三区| 色婷婷综合久久| 亚洲人精品午夜| 欧美日韩一区不卡| 久久国产精品一区二区| 久久综合色之久久综合| 狠狠色丁香久久婷婷综合_中| 日韩三级精品电影久久久 | 国产不卡免费视频| 欧美国产欧美综合| 日本一区二区高清| 国产麻豆91精品| 久久99深爱久久99精品| 亚洲国产日韩a在线播放 | 一区二区在线看| 欧美激情综合五月色丁香| 国产精品乡下勾搭老头1| 精品理论电影在线观看 |