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

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

?? max_msg_test.c

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

*/



/*
This is a router test, using direct messages from
RFD to coordinator. Used to test maximum sized payload.

Coordinator ->  RFD1

Start the coordinator first, then
RFD1. If a RFD1 fails to join the network, try
again.

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

Max Message size up the tree:
 The Zigbee AF frame format takes 3 bytes (1 trans.header, 1 trans seq number, 1 payload len.)

The Zigbee APS frame format takes 6 bytes (1 frame control,1  dest ep, cluster, 2 bytes profile, 1 endpoint).

The Zibbee NWK frame takes 8 bytes.

The maximum MAC header is 23 bytes (2 frame control, 1 seq, 2 DST PANID, 8 dst address, 8 src address, 2 SRC PANID)

Two bytes of the 127 byte packet also get taken up by the two FCS bytes at the end of packet.

Worst case maximum payload of  (127 - (3+6+8+23+2) ) = 85 bytes

This is worst case, if all of the MAC header fields were used.
For data frames up the tree, the MAC header uses short addressing for destination,
and drops the SRC panID so it takes
15 bytes (2 frame control, 1 seq, 2 PANID, 8 dst address, 2 src address),
giving you a 93 byte max payload.
Down the tree is a little less as short addressing is use for the destination.


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[96];  //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 1
//convoluted mess because of different ways compilers treat const char strings
void getpayload(void) {
   BYTE *dst;
   ROMCHAR *src;
   BYTE msgnum;

   //maximum size message that can be sent up the tree.
   //92 character string + null byte = 93 byte payload.
   static ROMCHAR _x0_[] = "0_________1_________2_________3_________4_________5_________6_________7_________8________9__";


   msgnum = halGetRandomByte();
   msgnum = msgnum % NUM_MESSAGES;
	
   switch (msgnum) {
     default :  src = &_x0_[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;
	  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){

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

//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一区二区三区免费野_久草精品视频
av午夜一区麻豆| 日韩一区二区三区av| 久久九九久久九九| 极品少妇xxxx精品少妇| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 国产精品影音先锋| 国产亚洲va综合人人澡精品| 成人综合婷婷国产精品久久蜜臀 | 国产精品亚洲视频| 国产精品免费观看视频| 91福利在线看| 美女www一区二区| 欧美激情一区二区三区四区| 色婷婷久久久综合中文字幕| 天天色天天爱天天射综合| 日韩一级免费一区| 国产999精品久久久久久绿帽| 亚洲三级理论片| 欧美二区在线观看| 成人精品国产一区二区4080| 亚洲综合精品自拍| 欧美电视剧在线看免费| gogo大胆日本视频一区| 日韩制服丝袜av| 国产亚洲成av人在线观看导航| 成人av免费在线观看| 亚洲成av人片一区二区梦乃| 精品国产sm最大网站免费看| 91蝌蚪porny成人天涯| 日韩av一区二区在线影视| 久久久久久9999| 在线免费观看日本一区| 国产一区二区三区在线观看精品| 国产女主播一区| 欧美巨大另类极品videosbest | 奇米精品一区二区三区在线观看一 | 尤物视频一区二区| 欧美成人一区二区三区在线观看| 成人高清视频在线| 免费一级片91| 亚洲丝袜美腿综合| 久久午夜老司机| 欧美日韩精品一区二区三区| 国产91精品一区二区| 日韩激情视频在线观看| 亚洲情趣在线观看| 国产色产综合产在线视频| 欧美喷潮久久久xxxxx| 成人在线视频一区| 韩国午夜理伦三级不卡影院| 丝袜美腿亚洲综合| 亚洲精品成人精品456| 欧美激情一区二区三区不卡| 日韩一区和二区| 欧美色精品天天在线观看视频| 国产不卡在线播放| 蜜桃视频在线观看一区二区| 亚洲一区二区三区激情| 亚洲欧洲精品一区二区三区| 久久久久久久久久久99999| 精品乱码亚洲一区二区不卡| 91精品国产91久久久久久最新毛片| 91美女视频网站| 99久久亚洲一区二区三区青草| 国产精品白丝av| 国产一区 二区 三区一级| 美女视频黄频大全不卡视频在线播放| 亚洲综合丁香婷婷六月香| 亚洲精品乱码久久久久久日本蜜臀| 中文字幕欧美激情一区| 国产日产亚洲精品系列| 久久久久久免费网| 久久久99久久精品欧美| 国产香蕉久久精品综合网| 精品国产污污免费网站入口 | 国产欧美一区二区精品忘忧草 | 国产99久久久国产精品潘金网站| 狠狠色综合播放一区二区| 激情六月婷婷久久| 国产一区二区精品久久| 韩国一区二区视频| 懂色av一区二区三区免费观看| 国产精品自拍一区| 高清beeg欧美| 成人免费毛片app| 色综合网站在线| 欧美综合一区二区| 欧美美女视频在线观看| 日韩视频123| 久久精品一区二区三区不卡| 中文字幕的久久| 亚洲乱码一区二区三区在线观看| 亚洲男人的天堂网| 亚洲mv大片欧洲mv大片精品| 久久成人精品无人区| 国产一区二区电影| 99国产欧美另类久久久精品| 91黄色激情网站| 日韩视频永久免费| 久久美女艺术照精彩视频福利播放| 久久久精品国产免大香伊| 国产精品污网站| 亚洲制服丝袜在线| 久久激情综合网| 成人性生交大片免费看中文网站| 色综合婷婷久久| 7777精品伊人久久久大香线蕉| 26uuu亚洲婷婷狠狠天堂| 欧美激情在线看| 亚洲综合图片区| 欧美aaaaa成人免费观看视频| 国产一区高清在线| 日本高清成人免费播放| 欧美成人video| 亚洲免费观看视频| 蜜桃视频免费观看一区| 91污片在线观看| 欧美一区二区在线视频| 国产精品女人毛片| 视频一区在线播放| 成人福利视频网站| 日韩视频免费观看高清在线视频| 国产女同互慰高潮91漫画| 亚洲第一精品在线| 国产一区二区剧情av在线| 欧美性xxxxxxxx| 亚洲国产经典视频| 日韩精品免费视频人成| 99久久精品99国产精品| 精品嫩草影院久久| 亚洲第一福利一区| 成人亚洲精品久久久久软件| 91精品综合久久久久久| 综合av第一页| 国产精选一区二区三区| 欧美一区二区三区免费| 亚洲你懂的在线视频| 国产成人午夜精品5599| 日韩免费电影网站| 亚洲123区在线观看| 成人午夜电影久久影院| 久久综合久久99| 人人狠狠综合久久亚洲| 欧美性色综合网| 中文字幕在线观看一区| 国产高清在线观看免费不卡| 欧美大黄免费观看| 日韩精品1区2区3区| 欧美私模裸体表演在线观看| 亚洲日穴在线视频| 成人妖精视频yjsp地址| 久久久久久久精| 国产剧情av麻豆香蕉精品| 精品国产亚洲一区二区三区在线观看| 午夜精品一区二区三区电影天堂 | 亚洲老司机在线| 成人免费看片app下载| 久久丝袜美腿综合| 国内精品不卡在线| 日韩欧美第一区| 麻豆精品新av中文字幕| 欧美一区二区三区公司| 日本不卡中文字幕| 欧美一区二区视频网站| 日产国产高清一区二区三区| 欧美精品vⅰdeose4hd| 视频在线观看国产精品| 欧美一区二视频| 精品写真视频在线观看| 精品国精品国产| 国产成人精品免费| 中文字幕中文乱码欧美一区二区| 成人av免费网站| 玉足女爽爽91| 欧美日韩激情一区二区| 青青青爽久久午夜综合久久午夜 | 久久免费偷拍视频| 国产乱码一区二区三区| 国产欧美日韩综合精品一区二区| 国产高清亚洲一区| 亚洲欧美日韩小说| 欧美日韩三级视频| 美日韩一区二区| 国产欧美日产一区| 91偷拍与自偷拍精品| 亚洲专区一二三| 日韩欧美不卡在线观看视频| 国产乱码精品一品二品| 国产精品久久久久久久久图文区| 91美女在线看| 免费看欧美女人艹b| 中文字幕不卡三区| 欧美综合亚洲图片综合区| 老司机精品视频在线| 中文字幕欧美国产| 欧美性受xxxx| 国产精品综合av一区二区国产馆| 亚洲情趣在线观看| 精品福利一二区| 色婷婷国产精品久久包臀|