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

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

?? direct_msg_test.c

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

*/



/*
This is a router test, using direct messages from
RFD to coordinator through router.

Expects coordinator, one router, at least one RFD.
The topology to test should be:

Coordinator ->  router -> RFD1
-> RFD2 (optional)


Start the coordinator first, then the router, then
RFD1. If a RFD1 fails to join the network, try
again. The usrJoinVerifyCallback() is written such
that the Coordinator will reject the RFDs, so that
the RFDs should join the router. Can add more than
one RFD.

YOU MUST EDIT the coord[] long address and put
in the long address of your coordinator so the
test that uses long addressing will work correctly.

The usrJoinVerify function at the coordinator level
rejects any node that is not a router, so this forces
routers to join the coordinator, and RFDs to join the
router.

This does not require any Virtual Boards to be running,
everything done through the console.

For WIN32, the Router project also has LRWPAN_RSSI defined
as a stronger value than the default (see util_get_rssi()
in halStack.c), so that packets
from the router appear to be closer in physical distance
than from other nodes, since RFDs use the RSSI value to
choose a node to respond to when they get multiple responses
from a beacon request.


In WIN32, start the coord first, then the router so that it
joins the coord, then RFDs so that they join the router.

*/

#include "wx_lrwpan.h"

BYTE payload[32];  //buffer for payload
BYTE test_number;
LADDR_UNION dstADDR;
UINT32 my_timer;

void getpayload(void);

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


//this is assumed to be the long address of our coordinator, in little endian order
//used to test LONG ADDRESSING back to coordinator
UINT8 coord[8] = {0x06f,0x21,0x01,0x00,0x00,0x4B,0x12,0x00};


#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("Direct MSG to Coord, SHORT addr, dstEP: 1, no ack requested\n");
		  conPrintROMString("hit a key to send packet\n");
		  halGetch();
		  dstADDR.saddr = 0; //Coordinator has address 0
		  aplSendMSG (APS_DSTMODE_SHORT,
			  &dstADDR,
			  2, //dst EP
			  0, //cluster is ignored for direct message
			  1, //src EP
			  payload,
			  strlen((char *)payload)+1,
			  apsGenTSN(),
			  FALSE);  //No APS ack requested
		  test_number++;
		  break;
	  case 1:
		  getpayload();
		  print_test();
		  conPrintROMString("Direct MSG to Coord, SHORT addr,  dstEP: 1, APS ack requested\n");
		  conPrintROMString("hit a key to send packet\n");
		  halGetch();
		  dstADDR.saddr = 0; //Coordinator has address 0
		  aplSendMSG (APS_DSTMODE_SHORT,
			  &dstADDR,
			  2, //dst EP
			  0, //cluster is ignored direct message
			  1, //src EP
			  payload,
			  strlen((char *)payload)+1,
			  apsGenTSN(),
			  TRUE);    //request an ACK
		  test_number++;
		  break;
	  case 2:
		  getpayload();
		  print_test();
		  conPrintROMString("Direct MSG to Coord, LONG address (bypasses routing), dstEP: 1 \n");
		  conPrintROMString("hit a key to send packet\n");
		  halGetch();
		  //copy the long address
		  halUtilMemCopy(&dstADDR.laddr.bytes[0], &coord[0], 8);
		  aplSendMSG (APS_DSTMODE_LONG,
			  &dstADDR,
			  2, //dst EP
			  0, //cluster is ignored direct message
			  1, //src EP
			  payload,
			  strlen((char *)payload)+1,
			  apsGenTSN(),
			  FALSE); //ack request ignore for long addressing
		  test_number++;
		  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;


#ifdef LRWPAN_COORDINATOR

	aplFormNetwork();
	while(apsBusy()) {apsFSM();} //wait for finish

	conPrintROMString("Nwk formed, waiting for join and reception\n");
	while(1) {apsFSM();}

#else
	do {
		aplJoinNetwork();
		while(apsBusy()) {apsFSM();} //wait for finish
		if (aplGetStatus() == LRWPAN_STATUS_SUCCESS) {
			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);


#ifdef LRWPAN_RFD
	//now send packets
	while (1) {
		packet_test();
		while(apsBusy()) {apsFSM();} //wait for finish
	}
#endif
#ifdef LRWPAN_ROUTER
	//router does nothing, just routes
	DEBUG_PRINTNEIGHBORS(DBG_INFO);
	conPrintROMString("Router, doing its thing.!\n");
	while(1) {apsFSM();}
#endif

#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){

#if 1     //change this to '0' if you want to test without a router
#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
#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--;
	}
        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){

#ifdef LRWPAN_COORDINATOR
	//only let routers join us
	if (LRWPAN_GET_CAPINFO_DEVTYPE(capinfo)) {
		//this is a router, let it join
		conPrintROMString("Accepting router\n");
		return TRUE;
	}else {
		conPrintROMString("Rejecting non-router\n");
		return FALSE;
	}
#else
	return TRUE;
#endif


}

BOOL usrJoinNotifyCallback(LADDR *ptr){

	//allow anybody to join

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


void usrIntCallback(void){}

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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美剧情片在线观看| 色综合久久天天综合网| 五月天中文字幕一区二区| 国产成a人无v码亚洲福利| 色噜噜狠狠成人网p站| 欧美色大人视频| 欧美性生活一区| 亚洲国产视频一区| 色综合久久久久综合体| 一区二区三区四区亚洲| 色婷婷久久一区二区三区麻豆| 亚洲欧美视频一区| 欧美三级欧美一级| 亚洲第一搞黄网站| 欧美一区二区在线视频| 久久99精品久久只有精品| 久久一区二区三区四区| 99精品视频在线观看| 日韩中文字幕91| 91.xcao| 国产乱码精品一品二品| 国产日产欧美精品一区二区三区| 91免费看`日韩一区二区| 亚洲成av人在线观看| 久久久久久久久久久久电影| 国产一区二区三区日韩 | 亚洲美女在线一区| 欧美日韩国产在线观看| 国产麻豆9l精品三级站| 亚洲乱码中文字幕| 久久网站最新地址| 99精品久久99久久久久| 91福利精品第一导航| 91色视频在线| 五月激情综合色| 日韩一级二级三级| 成a人片国产精品| 国产亚洲欧洲997久久综合 | 人人爽香蕉精品| 91麻豆精品国产无毒不卡在线观看 | 日本伦理一区二区| 蜜乳av一区二区| 亚洲欧洲制服丝袜| 日韩亚洲欧美成人一区| 欧美一级精品大片| 日韩一区二区三区电影在线观看 | 精品中文字幕一区二区小辣椒| 精品无人码麻豆乱码1区2区| 久久精品日产第一区二区三区高清版| 一本久道中文字幕精品亚洲嫩| 欧美日韩一区成人| 国产麻豆精品在线| 欧美日韩久久一区二区| 欧美日韩一区二区三区视频| 欧美一区二区视频在线观看2020| 91高清视频免费看| 在线观看视频一区二区欧美日韩| 色88888久久久久久影院按摩| 91原创在线视频| 国产成人综合在线| 欧美日韩国产一区二区三区地区| 韩国一区二区视频| 精品999在线播放| 91麻豆精品国产91久久久资源速度| 亚洲大片免费看| www日韩大片| 99久久99久久精品免费观看| 亚洲一区二区欧美| 久久先锋资源网| 91免费看`日韩一区二区| 人人精品人人爱| 自拍av一区二区三区| 欧美一级日韩免费不卡| 国产91在线观看| 午夜在线成人av| 国产精品三级视频| 欧美精品v国产精品v日韩精品| 国产成人亚洲综合a∨婷婷| 亚洲香肠在线观看| 国产欧美日韩精品在线| 欧美日韩激情在线| www.性欧美| 激情文学综合网| 亚洲国产精品嫩草影院| 欧美激情一区二区三区| 欧美精品 日韩| 色先锋资源久久综合| 极品尤物av久久免费看| 亚洲中国最大av网站| 国产欧美视频一区二区| 日韩美女在线视频| 欧美午夜精品久久久久久超碰| 成人免费福利片| 国产福利91精品| 麻豆专区一区二区三区四区五区| 一区二区三区视频在线看| 亚洲国产精品t66y| 久久久午夜精品| 日韩一级高清毛片| 91麻豆精品国产91久久久| 欧洲精品中文字幕| 99久久精品免费| 成人黄色大片在线观看| 国产电影一区二区三区| 韩国在线一区二区| 国内精品久久久久影院薰衣草| 日本91福利区| 久久精品国产第一区二区三区| 天堂va蜜桃一区二区三区漫画版| 亚洲一级片在线观看| 亚洲激情在线播放| 亚洲欧洲精品一区二区三区| 中文字幕日韩一区二区| 国产精品高潮呻吟| 国产精品久久国产精麻豆99网站 | 国产亚洲美州欧州综合国| 日韩免费视频一区| 日韩久久久久久| 日韩欧美激情四射| 2019国产精品| 中文一区在线播放| 亚洲区小说区图片区qvod| 亚洲柠檬福利资源导航| 一区二区三区四区激情| 亚洲制服丝袜av| 日韩专区中文字幕一区二区| 喷水一区二区三区| 久久99精品久久久久久动态图| 麻豆精品久久精品色综合| 国产在线播精品第三| 丁香激情综合国产| 色狠狠色噜噜噜综合网| 欧美精品1区2区3区| 久久久久久久久伊人| 日日摸夜夜添夜夜添精品视频| 免费xxxx性欧美18vr| 国产传媒欧美日韩成人| 日本韩国视频一区二区| 欧美一区二区三区在| 国产视频一区不卡| 亚洲激情图片小说视频| 日韩精品乱码免费| 成人综合在线网站| 欧美精选午夜久久久乱码6080| 久久久综合网站| 樱桃国产成人精品视频| 欧美96一区二区免费视频| 成人激情综合网站| 欧美久久久久久久久久| 亚洲国产精品99久久久久久久久| 亚洲精品日韩专区silk| 久久国产麻豆精品| 91麻豆国产在线观看| 欧美成人福利视频| 亚洲人成在线观看一区二区| 久久精品av麻豆的观看方式| www.亚洲色图.com| ww亚洲ww在线观看国产| 五月天婷婷综合| 99视频有精品| 精品国产免费久久| 亚洲成人av在线电影| 成人av在线一区二区三区| 91精选在线观看| 亚洲天堂免费看| 国产一区二区三区四区五区美女| 欧美日韩高清一区二区不卡| 国产欧美日韩卡一| 精品一二线国产| 欧美精三区欧美精三区| 亚洲欧美日韩电影| 国产一区二区三区最好精华液| 88在线观看91蜜桃国自产| 亚洲女同ⅹxx女同tv| 成人综合婷婷国产精品久久蜜臀| 欧美一区欧美二区| 丝袜美腿亚洲一区二区图片| 92国产精品观看| 国产精品色哟哟| 国产伦精品一区二区三区视频青涩| 欧美日韩二区三区| 亚洲综合丁香婷婷六月香| 99久久精品免费精品国产| 国产精品日日摸夜夜摸av| 国产老肥熟一区二区三区| 日韩视频在线永久播放| 性做久久久久久免费观看| 在线精品视频一区二区| 亚洲美女免费在线| 99久久精品情趣| 日韩伦理av电影| 99精品久久99久久久久| 亚洲欧洲另类国产综合| 91在线观看视频| 亚洲少妇最新在线视频| 99re这里只有精品6| 亚洲特黄一级片| 99久久精品国产观看| 国产精品进线69影院| 97se亚洲国产综合在线|