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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? at_interactive.c

?? Dynamic C 程式語(yǔ)言源碼 嵌入式控制系統(tǒng) Xbee蜂群網(wǎng)路~
?? C
字號(hào):
/***************************************************************************

   AT_interactive.c
	Digi International, Copyright (C) 2007-2008.  All rights reserved.

   This sample shows how to set up and use AT commands with the XBee modem.

   To use:
   	-	Compile this sample to an XBee-enabled board.
   	-  The program will print out a list of AT commands to choose from
   	-  You can type in either "ATxx" or just the "xx" part of the command
   	-  Using just the AT command, you can read any of the values
   	-  You can set any of the "set or read" values using the following format:
				Valid command formats (AT prefix is optional, CC is command):
				[AT]CC 0xXXXXXX (where XXXXXX is an even number of hexidecimal
            					  characters)
				[AT]CC YYYY (where YYYY is an integer, up to 32 bits)
				[AT]NI "Node ID String" (where quotes contain string data)
   	-	Typing "menu" will redisplay the menu of commands.
   	-	To exit, press F4.

*****************************************************************************/

// Set XBEE_ROLE to NODE_TYPE_COORD, NODE_TYPE_ROUTER or NODE_TYPE_ENDDEV to
// match your XBee's firmware.  View the function help (Ctrl+H) on XBEE_ROLE
// for additional information on setting up an XBee network.
#define XBEE_ROLE			NODE_TYPE_ROUTER

// Set a Node ID to identify this node on the network.
#define NODEID_STR			"AT Interactive"

// ------------------------------------------------------
//
// Serial Cable Communication:
//
// The following definitions redirect stdio to serial port A when
// the core module is not attached to the PROG connector of the
// programming cable.  Use the DIAG connector of the programming cable
// to access serial port A.  See Samples\STDIO_SERIAL.C for more details
// on redirecting stdio.
//

#define	STDIO_DEBUG_SERIAL	SADR
#define	STDIO_DEBUG_BAUD		57600
#define	STDIO_DEBUG_ADDCR

// ------------------------------------------------------

#memmap xmem

#use "xbee_api.lib"

// ------------------------------------------------------
// Applications using the Rabbit XBee_API.lib library must define an
// endpoint table, even if it is empty.  For more information,
// perform a function lookup (ctrl-H) on ENDPOINT_TABLE_BEGIN.
ENDPOINT_TABLE_BEGIN
ENDPOINT_TABLE_END

// ------------------------------------------------------
// printATcommands
//
// Prints out a partial list of the AT commands available.  Requires long
// strings, stored in an array of "commands" struct.

#define STDIO_ENABLE_LONG_STRINGS 1
typedef struct
{
	char *command;
   char *desc;
} commands;

const commands command[] = {
	{ "ATCH",  "Read the current channel. Will be zero if we \n" \
              "       are not associated with a network." },
	{ "ATID",  "Set or read the current PAN ID. If you set the  ID you\n" \
              "       must write it to non-volitile memory (\"WR\") and \n" \
              "       then reset the network software (\"NR\")." },
	{ "ATOP",  "Read the operating PAN ID." },
	{ "ATMY",  "Read the current network address. Will be 0xFFFE \n" \
              "       if we are not associated with a network." },
   #if XBEE_IS_ENDDEV
	{ "ATMP",  "Read the network ID of our parent node." },
   #endif
	{ "ATSH",  "Read the upper four bytes of the radio IEEE address" },
	{ "ATSL",  "Read the lower four bytes of the radio IEEE address" },
	{ "ATNI",  "Set or read the Node Identifier." },
	{ "ATBH",  "Set or read the maximum number of Broadcast Hops" },
	{ "ATNT",  "Set or read the Node Discovery timeout value (in 0.1s)." },
	{ "ATSC",  "Set or read the list of channels to scan. This \n" \
              "       value is a bit-field list." },
	{ "ATSD",  "Set or read the channel scan duration value." },
	{ "ATNJ",  "Set or read the Node Joining Time value. " },
	{ "ATAI",  "Read the Association Indicator. A zero value \n" \
              "       means we are associated with a network." },
	{ "ATPL",  "Set or read the transmission power level." },
	{ "ATVR",  "Read the radio software version number." },
	{ "ATHV",  "Read the radio hardware version number." },
	{ "\nMENU", "Display this menu (not an AT command.)\n" },
};
#define COMMAND_COUNT (sizeof(command)/sizeof(command[0]))

void printATCmds(void) {
   int i;
   printf( "Cmd  - Description\n=====================\n");
   for (i = 0; i < COMMAND_COUNT; ++i) {
      printf( "%s - %s\n", command[i].command, command[i].desc);
   }

	printf( "Valid command formats (AT prefix is optional, CC is command):\n\n");
	printf( "[AT]CC 0xXXXXXX (where XXXXXX is an even number of " \
		"hexidecimal characters)\n");
	printf( "[AT]CC YYYY (where YYYY is an integer, up to 32 bits)\n");
	printf( "[AT]NI \"Node ID String\" (where quotes contain string data)\n\n");
}

/* ------------------------------------------------------
	parseCommandLine

	Read the user input (cmdstr) and produce a msgstr to send to the modem.

	Valid command formats (AT prefix is optional):

	[AT]CC 0xXXXXXX (where XXXXXX are valid hexidecimal characters)
	[AT]CC YYYY (where YYYY is an integer, up to 32 bits)
	[AT]NI "Node ID String" (where quotes contain string data)
*/

int parseCommandLine (char *cmdstr, char *msgstr, int *paramlen)
{
	unsigned long temp;
	int i, j;
	char *param;

	// default to a 0-byte parameter length, in case of parsing error
	*paramlen = 0;

	cmdstr[2]=0;
	param = &cmdstr[3];
	if (param[0] == '"')
	{
		// parse string (for Node ID)
		param++;
		for (i = 0; *param && *param != '"'; )
		{
			msgstr[i++] = *param++;
		}
		*paramlen = i;
	}
	else if (param[0] == '0' && param[1] == 'x')
	{
		// parse hex
		i = 0;
		param += 2;			// point to start of hex
		while (*param && i < 20)
		{
			j = hexstrtobyte( param);
			if (j < 0)
			{
				printf( "error parsing hex string\n");
				return -1;
			}
			msgstr[i++] = j;
			param += 2;
		}
		*paramlen = i;
	}
	else
	{
		// parse integer and determine number of bytes to send in payload
		temp = strtol( param, NULL, 10);
		if (temp & 0xFFFF0000ul)
		{
			*paramlen = 4;
			// store 4-byte long in network byte order
			*(long *)msgstr = htonl( temp);
		}
		else if (temp & 0x0000FF00ul)
		{
			*paramlen = 2;
			// store 2-byte integer in network byte order
			*(word *)msgstr = htons( (word) temp);
		}
		else
		{
			*paramlen = 1;
			// store 1-byte value
			*msgstr = (byte) temp;
		}
	}

	return 0;
} //parseCommandLine()

// ------------------------------------------------------
// main
//

int main(void) {
	int paramlen;
   char cmdstr[32], *cmdptr;
   char msgstr[80];
	_at_cmdresp_t atresp;
	int idx;
	int initres;	// Result of xbee_init()
	unsigned long join_start;

	// *** Initialization ***

	// Initialize the radio portion of the board
	join_start = 0;
	while ( (initres = xbee_init()) == -EBUSY)
	{
		if (! join_start)
		{
	      join_start = SEC_TIMER;
	      printf( "Waiting for sleeping XBee to wake before continuing.");
		}
      if (join_start != SEC_TIMER)
      {
         join_start = SEC_TIMER;
         printf( ".");
      }
	}
	printf( "\n");

	if (initres) {
		printf("xbee_init failed.  result code: %d (%ls)\n",
				initres, error_message( initres));
		exit(initres);
	}
	// Join the network.  For more information on ZB_JOINING_NETWORK,
	// perform a function lookup (ctrl-H) on ZB_LAST_STATUS().
	printf("Waiting to join network...\n");
	join_start = MS_TIMER;
	while (ZB_JOINING_NETWORK()) {
		// If unable to join a network, timeout after arbitrary time
		if (MS_TIMER - join_start > XBEE_JOIN_TIMEOUT) {
	      printf("\n*** Error ***\n");
	      printf("Timed out while trying to join a network.\n");
	      break;
	   }
	}
	printf("done\n");
	// *** End Initialization ***

	cmdstr[0] = 'A';
	cmdstr[1] = 'T';
   printATCmds();
   while (1) // Hit F4 to end.
   {
      printf( "Enter AT Command:");
      cmdptr = &cmdstr[2];
      idx = 0;
      while (! getswf( cmdptr))
      {
      	zb_tick();
      }
      if (! strncmpi( cmdptr, "menu", 4))
      {
      	printATCmds();
      }
      else
      {
      	if (strncmpi( cmdptr, "at", 2))
      	{
      		// User-entered command doesn't start with AT, so point to the AT
      		// prefix stored in front of their entered command.
      		cmdptr = cmdstr;
      	}
	      paramlen = 0;
	      if (strlen( cmdptr)>4) {
	      	// user is setting register, not reading it
	      	// &cmdptr[2] points to the AT register
	         if (parseCommandLine( &cmdptr[2], msgstr, &paramlen))
	         {
					// couldn't parse command line
					continue;
	         }
	      }
	      if ( zb_API_ATCmdResponse( cmdptr, msgstr, paramlen, &atresp) )
	      {
	         printf( "Error: %d (%ls) \n", _zb_error, error_message( _zb_error));
	      }
	      else
	      {
	         if ( atresp.datalength ) {
	            xb_hexdump( atresp.data, atresp.datalength);
	         }
	      }
	   }
   }
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久影院视频免费| 亚洲视频一二三| 91丝袜美女网| 蜜臀久久99精品久久久久久9 | 国产原创一区二区| 亚洲综合在线第一页| 国产日产欧美一区| 欧美狂野另类xxxxoooo| 国产99久久久精品| 蜜臀99久久精品久久久久久软件| 亚洲欧洲美洲综合色网| 精品不卡在线视频| 5566中文字幕一区二区电影| av一本久道久久综合久久鬼色| 久久国产精品第一页| 亚洲一区在线看| 综合激情网...| 久久久国际精品| 日韩一区二区在线观看视频| 在线亚洲一区二区| voyeur盗摄精品| 国产精品亚洲综合一区在线观看| 丝袜亚洲另类欧美综合| 亚洲一区国产视频| 国产精品久久三| 国产午夜精品理论片a级大结局| 制服丝袜一区二区三区| 欧美三级视频在线观看| 91视频观看视频| av中文一区二区三区| 国产高清视频一区| 国内精品久久久久影院薰衣草| 日韩专区中文字幕一区二区| 亚洲国产日日夜夜| 亚洲狠狠丁香婷婷综合久久久| 国产精品午夜春色av| 国产精品三级久久久久三级| 日本一区免费视频| 日韩1区2区3区| 一区二区三区日韩精品| 亚洲精品视频一区| 亚洲精品中文字幕在线观看| 亚洲乱码日产精品bd| 亚洲免费观看高清完整| 亚洲视频小说图片| 亚洲男人电影天堂| 亚洲综合一区在线| 午夜激情一区二区| 日韩国产欧美三级| 美女一区二区三区在线观看| 久久激情五月激情| 国产乱码字幕精品高清av| 国产一区二区不卡老阿姨| 国产麻豆精品theporn| 国产盗摄精品一区二区三区在线 | 在线视频中文字幕一区二区| 色美美综合视频| 欧美亚洲愉拍一区二区| 欧美日韩高清一区二区三区| 91精品免费在线| 精品国产一区久久| 国产精品久久久久aaaa樱花 | 久久精品国产一区二区三 | 一区二区久久久久| 日韩福利视频网| 精品一区二区免费看| 国产不卡免费视频| 91一区二区三区在线观看| 欧洲激情一区二区| 91精品国产欧美一区二区| 精品美女一区二区三区| 国产精品久久三| 亚洲午夜久久久久中文字幕久| 男女男精品视频| 国产成人精品www牛牛影视| 久久免费电影网| 中日韩av电影| 亚洲成人动漫av| 国产一区二区三区四| 99久久精品国产一区| 91麻豆精品国产91久久久| 久久久久国产精品麻豆 | 精品一区二区av| 99久久99久久精品免费观看 | 粉嫩绯色av一区二区在线观看 | 婷婷激情综合网| 国产福利一区二区三区视频在线| 一本久道久久综合中文字幕| 日韩一级二级三级| 中文字幕亚洲欧美在线不卡| 日韩在线一区二区| 成人激情电影免费在线观看| 欧美日韩mp4| 国产精品日日摸夜夜摸av| 天天色综合成人网| 成人激情动漫在线观看| 日韩欧美亚洲一区二区| 亚洲男人的天堂av| 国产盗摄女厕一区二区三区| 欧美视频三区在线播放| 中文字幕成人在线观看| 秋霞国产午夜精品免费视频| 色综合一个色综合| 久久免费视频色| 午夜久久久影院| 一本到不卡免费一区二区| 久久久久久久性| 青青草国产精品亚洲专区无| 色综合中文字幕| 国产精品私房写真福利视频| 欧美日韩高清影院| 国产精品久久久久一区二区三区 | 欧美日韩久久不卡| 日韩理论电影院| 国产精品小仙女| 日韩午夜激情视频| 亚洲成人在线观看视频| 99re亚洲国产精品| 中文字幕av资源一区| 黑人精品欧美一区二区蜜桃| 欧美人体做爰大胆视频| 一区二区三区成人| 91原创在线视频| 国产免费成人在线视频| 国产一区二区调教| 精品免费视频一区二区| 免费成人性网站| 欧美一区二区福利在线| 亚洲成av人影院在线观看网| 在线观看日韩国产| 一个色在线综合| 一本大道久久a久久综合婷婷| 成人免费在线视频| 99re这里只有精品视频首页| 国产精品久久久久久亚洲伦 | 欧美丰满高潮xxxx喷水动漫| 一个色在线综合| 欧美手机在线视频| 亚洲成av人片在www色猫咪| 欧美在线观看一二区| 亚洲另类中文字| 色综合天天狠狠| 亚洲一区二区三区中文字幕在线| 色综合久久综合网| 亚洲另类在线制服丝袜| 国产清纯白嫩初高生在线观看91| 国产伦精一区二区三区| 久久精品亚洲麻豆av一区二区| 国产精品亚洲成人| 欧美国产一区二区| 99re热视频这里只精品| 艳妇臀荡乳欲伦亚洲一区| 欧美日本国产视频| 久久国产精品色| 国产婷婷色一区二区三区四区| 成人精品免费看| 亚洲人成亚洲人成在线观看图片| 色综合中文字幕国产 | 91黄色免费版| 午夜精品视频一区| 日韩免费高清视频| 盗摄精品av一区二区三区| 成人欧美一区二区三区小说| 欧美在线免费视屏| 美女视频网站久久| 国产精品无人区| 欧美四级电影在线观看| 麻豆一区二区三| 国产日韩高清在线| 在线中文字幕一区二区| 日韩va欧美va亚洲va久久| 久久久蜜桃精品| 972aa.com艺术欧美| 日本美女一区二区三区| 日本伊人精品一区二区三区观看方式| 亚洲精品一线二线三线| 97久久精品人人做人人爽50路| 五月开心婷婷久久| 久久精品一区蜜桃臀影院| 色94色欧美sute亚洲线路一ni| 日韩高清欧美激情| 国产精品国产三级国产有无不卡| 欧美日韩在线三区| 盗摄精品av一区二区三区| 亚洲电影在线播放| 日本一区二区免费在线观看视频| 91九色最新地址| 国内久久精品视频| 一区二区三区 在线观看视频| 欧美精品一区二区三区久久久| 91女人视频在线观看| 精久久久久久久久久久| 亚洲欧美另类久久久精品| 亚洲精品一区二区三区福利| 日本道在线观看一区二区| 国产精品99久久久久久久女警| 午夜欧美一区二区三区在线播放| 国产精品私人自拍| 精品处破学生在线二十三| 欧美日本韩国一区二区三区视频|