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

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

?? http.c

?? 此為ATMEGA32+ENC28J60以太網通信很好的代碼,含液晶 按鍵 HTTP WENB頁面顯示 已經調試通過.
?? C
?? 第 1 頁 / 共 2 頁
字號:
//
//********************************************************************************************
BYTE http_get_variable ( BYTE *rxtx_buffer, WORD dlength, PGM_P val_key, BYTE *dest )
{
	WORD data_p;
	PGM_P key;
	BYTE match=0, temp;

	key = val_key;
	
	// get data position
	data_p = tcp_get_hlength( rxtx_buffer ) + sizeof(ETH_HEADER) + sizeof(IP_HEADER);

	// Find '?' in rx buffer, if found '?' in rx buffer then let's find variable key (val_key)
	for ( ; data_p<dlength; data_p++ )
	{
		if ( rxtx_buffer [ data_p ] == '?' )
			break;
	}
	// not found '?' in buffer
	if ( data_p == dlength )
		return 0;
	
	// find variable key in buffer 
	for ( ; data_p<dlength; data_p++ )
	{
		temp = pgm_read_byte ( key );

		// end of variable keyword
		if ( rxtx_buffer [ data_p ] == '=' && match != 0 )
		{
			if ( temp == '\0' )
			{
				data_p++;
				break;
			}
		}
		// variable keyword match with rx buffer
		if ( rxtx_buffer [ data_p ] == temp )
		{
			key++;
			match++;
		}
		else
		{
			// no match in rx buffer reset match and find again
			key = val_key;
			match = 0;
		}
	}
	
	// if found variable keyword, then store variable value in destination buffer ( dest )
	if ( match != 0 )
	{
		match = 0;

		for ( ;; )
		{
			// end of variable value break from loop
			if ( rxtx_buffer [ data_p ] == '&' || rxtx_buffer [ data_p ] == ' ' )
			{
				dest [ match ] = '\0';
				break;
			}
			dest [ match ] = rxtx_buffer [ data_p ];
			match++;
			data_p++;
		}
	}

	// return with variable value length
	return match;
}
//********************************************************************************************
//
// Function : hex2int
// Description : convert a single hex digit character to its integer value
//
//********************************************************************************************
unsigned char hex2int(char c)
{
	if (c >= '0' && c <='9')
		return((unsigned char)c - '0');

	if (c >= 'a' && c <='f')
		return((unsigned char)c - 'a' + 10);
	
	if (c >= 'A' && c <='F')
		return((unsigned char)c - 'A' + 10);

	return 0;
}
//********************************************************************************************
//
// Function : urldecode
// Description : decode a url string e.g "hello%20joe" or "hello+joe" becomes "hello joe"
//
//********************************************************************************************
void urldecode(unsigned char *urlbuf)
{
	unsigned char c;
	unsigned char *dst;

	dst=urlbuf;
	while ((c = *urlbuf))
	{
		if (c == '+') c = ' ';
		if (c == '%')
		{
			urlbuf++;
			c = *urlbuf;
			urlbuf++;
			c = (hex2int(c) << 4) | hex2int(*urlbuf);
		}
		*dst = c;
		dst++;
		urlbuf++;
	}
	*dst = '\0';
}
//*****************************************************************************************
//
// Function : http_put_request
// Description : put http request to tx buffer contain 2-variables pwd and temp.
// webserver receive pwd, temp and save to text file by PHP script on webserver.
//
//*****************************************************************************************
WORD http_put_request ( BYTE *rxtx_buffer )
{
	BYTE temp_value;
	WORD dlength;
	BYTE generic_buf[64];
	
	temp_value = adc_read_temp();
	print_decimal ( generic_buf, 2, temp_value );
	generic_buf[ 2 ] = '\0';

	dlength = tcp_puts_data_p ( rxtx_buffer, PSTR ( "GET /avrnet/save.php?pwd=secret&temp=" ), 0 );
	dlength = tcp_puts_data ( rxtx_buffer, (BYTE *)generic_buf, dlength );
	dlength = tcp_puts_data_p ( rxtx_buffer, PSTR ( " HTTP/1.0\r\n" ), dlength );
	dlength = tcp_puts_data_p ( rxtx_buffer, PSTR ( "Host: 10.1.1.76\r\n" ), dlength );
	dlength = tcp_puts_data_p ( rxtx_buffer, PSTR ( "User-Agent: AVR ethernet\r\n" ), dlength );
	dlength = tcp_puts_data_p ( rxtx_buffer, PSTR ( "Accept: text/html\r\n" ), dlength );
	dlength = tcp_puts_data_p ( rxtx_buffer, PSTR ( "Keep-Alive: 300\r\n" ), dlength );
	dlength = tcp_puts_data_p ( rxtx_buffer, PSTR ( "Connection: keep-alive\r\n\r\n" ), dlength );

	return dlength;
}
//*****************************************************************************************
//
// Function : http_home
// Description : prepare the webpage by writing the data to the tcp send buffer
//
//*****************************************************************************************WORD http_home( BYTE *rxtx_buffer ){	WORD dlen, adc0_value;
	BYTE temp_value;
	BYTE count_time_temp[3];
	BYTE generic_buf[64];

	dlen = tcp_puts_data_p ( rxtx_buffer, PSTR ( "HTTP/1.0 200 OK\r\nContent-Type: text/html\r\n\r\n" ), 0 );	dlen = tcp_puts_data_p ( rxtx_buffer, PSTR  ( "<title>" ), dlen );
	dlen = tcp_puts_data_p ( rxtx_buffer, (PGM_P)web_title, dlen );
	dlen = tcp_puts_data_p ( rxtx_buffer, PSTR ( "</title>" ), dlen );

	dlen = tcp_puts_data_p ( rxtx_buffer, PSTR ( "<a href=\"http://www.avrportal.com/\" target=\"_blank\"><b><font color=\"#000099\" size=\"+1\">" ), dlen );
	dlen = tcp_puts_data_p ( rxtx_buffer, (PGM_P)web_title, dlen );
	dlen = tcp_puts_data_p ( rxtx_buffer, PSTR ( "</font></b></a><br>" ), dlen );

	dlen = tcp_puts_data_p ( rxtx_buffer, (PGM_P)tag_hr, dlen );

	dlen = tcp_puts_data_p ( rxtx_buffer, PSTR ( "LED 1 : " ), dlen );
	if ( (LED_PORT & _BV ( LED_PIN1 )) )
		dlen = tcp_puts_data_p ( rxtx_buffer, PSTR ( "<font color=red>OFF" ), dlen );
	else
		dlen = tcp_puts_data_p ( rxtx_buffer, PSTR ( "<font color=green>ON" ), dlen );
	dlen = tcp_puts_data_p ( rxtx_buffer, PSTR ( "</font> [ <a href=\"./?l1=" ), dlen );
	if ( (LED_PORT & _BV ( LED_PIN1 )) )
		dlen = tcp_puts_data_p ( rxtx_buffer, PSTR ( "1\">ON" ), dlen );
	else
		dlen = tcp_puts_data_p ( rxtx_buffer, PSTR ( "0\">OFF" ), dlen );
	dlen = tcp_puts_data_p ( rxtx_buffer, PSTR ( "</a> ], LED 2 : " ), dlen );
	if ( (LED_PORT & _BV ( LED_PIN2 )) )
		dlen = tcp_puts_data_p ( rxtx_buffer, PSTR ( "<font color=red>OFF" ), dlen );
	else
		dlen = tcp_puts_data_p ( rxtx_buffer, PSTR ( "<font color=green>ON" ), dlen );
	dlen = tcp_puts_data_p ( rxtx_buffer, PSTR ( "</font> [ <a href=\"./?l2=" ), dlen );
	if ( (LED_PORT & _BV ( LED_PIN2 )) )
		dlen = tcp_puts_data_p ( rxtx_buffer, PSTR ( "1\">ON" ), dlen );
	else
		dlen = tcp_puts_data_p ( rxtx_buffer, PSTR ( "0\">OFF" ), dlen );

	dlen = tcp_puts_data_p ( rxtx_buffer, PSTR ( "</a> ]<br><br>" ), dlen );
	// read adc0
	dlen = tcp_puts_data_p ( rxtx_buffer, PSTR ( "ACD0 = " ), dlen );
	adc0_value = adc_read ( 0 );
	print_decimal ( generic_buf, 4, adc0_value );
	generic_buf[ 4 ] = '\0';
	dlen = tcp_puts_data ( rxtx_buffer, (BYTE *)generic_buf, dlen );
	
	// read temp
	dlen = tcp_puts_data_p ( rxtx_buffer, PSTR ( "<br><br>Temparature = " ), dlen );
	temp_value = adc_read_temp();
	print_decimal ( generic_buf, 2, temp_value );
	generic_buf[ 2 ] = '\0';
	dlen = tcp_puts_data ( rxtx_buffer, (BYTE *)generic_buf, dlen );
	dlen = tcp_puts_data_p ( rxtx_buffer, PSTR ( "&deg;C<br>" ), dlen );

	dlen = tcp_puts_data_p ( rxtx_buffer, (PGM_P)tag_form, dlen );
	dlen = tcp_puts_data_p ( rxtx_buffer, PSTR ( "<INPUT TYPE=\"hidden\" NAME=\"tc\" VALUE=\"1\">Send Temparature in <INPUT TYPE=\"checkbox\" NAME=\"en\"" ), dlen );
	eeprom_read_block ( count_time_temp, ee_count_time, 3 );
	if ( count_time_temp[0] )
		dlen = tcp_puts_data_p ( rxtx_buffer, PSTR ( "CHECKED" ), dlen );
	dlen = tcp_puts_data_p ( rxtx_buffer, PSTR ( "> Enable " ), dlen );
	dlen = tcp_puts_data_p ( rxtx_buffer, PSTR ( "<INPUT TYPE=\"text\" NAME=\"h\" size=\"2\" maxlength=\"2\" VALUE=\"" ), dlen );
	print_decimal ( generic_buf, 2, count_time_temp[1] );
	generic_buf[ 2 ] = '\0';
	dlen = tcp_puts_data ( rxtx_buffer, (BYTE *)generic_buf, dlen );
	dlen = tcp_puts_data_p ( rxtx_buffer, PSTR ( "\"> Hours <INPUT TYPE=\"text\" NAME=\"m\" size=\"2\" maxlength=\"2\" VALUE=\"" ), dlen );
	print_decimal ( generic_buf, 2, count_time_temp[2] );
	generic_buf[ 2 ] = '\0';
	dlen = tcp_puts_data ( rxtx_buffer, (BYTE *)generic_buf, dlen );
	dlen = tcp_puts_data_p ( rxtx_buffer, PSTR ( "\"> Minutes<input type=\"submit\" value=\"OK\"></form>" ), dlen );

	dlen = tcp_puts_data_p ( rxtx_buffer, (PGM_P) tag_form, dlen );
	dlen = tcp_puts_data_p ( rxtx_buffer, PSTR ( "<input name=\"aip\" type=\"text\" size=\"15\" maxlength=\"15\" value=\"" ), dlen );
	print_ip ( generic_buf, (BYTE*)&avr_ip, 0 );
	dlen = tcp_puts_data ( rxtx_buffer, (BYTE *)generic_buf, dlen );
	dlen = tcp_puts_data_p ( rxtx_buffer, PSTR ( "\"> <input type=\"submit\" value=\"AVR IP\"></form>" ), dlen );

	dlen = tcp_puts_data_p ( rxtx_buffer, (PGM_P)tag_form, dlen );
	dlen = tcp_puts_data_p ( rxtx_buffer, PSTR ( "<input name=\"sip\" type=\"text\" size=\"15\" maxlength=\"15\" value=\"" ), dlen );
	print_ip ( generic_buf, (BYTE*)&server_ip, 0 );
	dlen = tcp_puts_data ( rxtx_buffer, (BYTE *)generic_buf, dlen );
	dlen = tcp_puts_data_p ( rxtx_buffer, PSTR ( "\"> <input type=\"submit\" value=\"Server IP\"></form>" ), dlen );

	dlen = tcp_puts_data_p ( rxtx_buffer, (PGM_P) tag_form, dlen );
	dlen = tcp_puts_data_p ( rxtx_buffer, PSTR ( "<input name=\"lcd1\" type=\"text\" size=\"16\" maxlength=\"16\"> LCD Line 1<br>" ), dlen );
	dlen = tcp_puts_data_p ( rxtx_buffer, PSTR ( "<input name=\"lcd2\" type=\"text\" size=\"16\" maxlength=\"16\"> LCD Line 2<br>" ), dlen );
	dlen = tcp_puts_data_p ( rxtx_buffer, PSTR ( "<input type=\"submit\" value=\"Write LCD\"></form>" ), dlen );
	
	dlen = tcp_puts_data_p ( rxtx_buffer, (PGM_P)tag_hr, dlen );

	dlen = tcp_puts_data_p ( rxtx_buffer, PSTR ( "<a href=\"./\"><b><font color=\"#000099\" size=\"+1\">Refresh</font></b></a>" ), dlen );

	return(dlen);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
丁香另类激情小说| av在线不卡观看免费观看| 国产欧美一区二区精品久导航 | 麻豆91精品91久久久的内涵| 国产色一区二区| 欧美高清hd18日本| 99这里只有久久精品视频| 九一久久久久久| 午夜欧美大尺度福利影院在线看| 国产精品久久久久永久免费观看| 666欧美在线视频| 91久久精品一区二区三| 国产成人免费高清| 久久电影网站中文字幕| 亚洲午夜激情网站| 亚洲欧美色图小说| 中文字幕乱码久久午夜不卡 | 欧美大胆一级视频| 欧美日韩国产小视频| 91麻豆免费看片| 成人国产一区二区三区精品| 精品午夜一区二区三区在线观看| 午夜精品福利视频网站| 亚洲黄色在线视频| 亚洲天堂久久久久久久| 欧美激情综合在线| 久久久天堂av| 精品88久久久久88久久久| 91精品国产综合久久香蕉麻豆| 色综合久久久久网| 91一区二区在线| 99久久精品国产一区| 成人午夜精品一区二区三区| 国产成人精品综合在线观看| 国产乱子伦视频一区二区三区 | 欧美亚洲高清一区二区三区不卡| 成人avav在线| av在线播放不卡| 99精品欧美一区二区三区综合在线| 大尺度一区二区| 成人动漫中文字幕| 99麻豆久久久国产精品免费| 99国产精品久久久久久久久久| av在线一区二区| 国产色产综合产在线视频| 国产午夜精品一区二区三区嫩草 | 日本丶国产丶欧美色综合| youjizz久久| 91欧美一区二区| 91国偷自产一区二区三区观看| 色婷婷久久一区二区三区麻豆| 在线观看日韩电影| 在线观看91av| 日韩精品资源二区在线| 久久久久久久精| 国产精品国产a| 一级日本不卡的影视| 丝袜美腿亚洲色图| 韩国成人精品a∨在线观看| 国产成a人无v码亚洲福利| 成人精品国产免费网站| 色婷婷综合久久久久中文一区二区| 在线观看国产一区二区| 91麻豆精品国产综合久久久久久 | 亚洲一区二区三区四区在线观看| 亚洲h精品动漫在线观看| 麻豆久久久久久久| 成人国产在线观看| 欧美色中文字幕| 久久这里都是精品| 亚洲乱码国产乱码精品精小说| 亚洲电影一级黄| 久草这里只有精品视频| 成人av影视在线观看| 欧美三级蜜桃2在线观看| 欧美变态tickle挠乳网站| 中文字幕在线不卡视频| 天堂在线一区二区| 成人福利视频在线| 91麻豆精品国产91久久久久| 国产网红主播福利一区二区| 玉米视频成人免费看| 另类小说视频一区二区| 不卡的av在线播放| 欧美一区二区女人| 最新不卡av在线| 麻豆91精品91久久久的内涵| 一本色道亚洲精品aⅴ| 日韩久久免费av| 一区二区三区四区乱视频| 久久电影网电视剧免费观看| 色欧美日韩亚洲| 精品区一区二区| 亚洲一区二区三区精品在线| 国产一区二区三区黄视频| 亚洲人成在线观看一区二区| 精品中文字幕一区二区| 91成人在线精品| 国产精品午夜电影| 美女精品一区二区| 在线观看日韩国产| 中文子幕无线码一区tr| 久久精品国产精品青草| 欧美亚洲国产一区二区三区va | 亚洲欧洲精品一区二区三区| 蜜桃精品视频在线| 欧美在线免费播放| 中文字幕一区二区三区在线不卡 | 蜜臀av一级做a爰片久久| 一本大道久久精品懂色aⅴ| 国产亚洲精品中文字幕| 蜜桃视频在线观看一区| 在线观看视频欧美| 亚洲人快播电影网| 不卡的av在线播放| 国产午夜精品久久久久久免费视 | 久久成人羞羞网站| 欧美日本在线播放| 亚洲一级在线观看| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 精品盗摄一区二区三区| 午夜精品久久久久| 欧美日韩一区二区欧美激情| 亚洲色图在线看| 99久久久精品| 自拍偷拍亚洲激情| 精品1区2区在线观看| 九九热在线视频观看这里只有精品| 欧美日韩视频在线第一区| 一个色妞综合视频在线观看| 91视频在线观看| 中文字幕一区二区视频| 99精品视频在线免费观看| 国产精品国产精品国产专区不蜜| 国产mv日韩mv欧美| 国产精品久久综合| av成人免费在线| 亚洲色图欧洲色图| 日本精品一区二区三区高清 | 精品一区二区三区在线观看国产| 欧美一区二区三区色| 免费成人美女在线观看.| 日韩一区二区三区在线观看| 麻豆成人91精品二区三区| 日韩精品一区二区三区视频| 精东粉嫩av免费一区二区三区| 久久这里只有精品视频网| 国产91丝袜在线播放0| 成人免费视频在线观看| 色综合激情久久| 午夜影院在线观看欧美| 欧美一区二区久久| 精品中文字幕一区二区| 国产女主播一区| 色悠悠久久综合| 午夜激情一区二区三区| 日韩欧美一区二区视频| 国产成人在线看| 亚洲黄色尤物视频| 欧美一级精品在线| 粉嫩aⅴ一区二区三区四区| 亚洲色图欧美激情| 91精品国产品国语在线不卡 | 欧美婷婷六月丁香综合色| 日韩 欧美一区二区三区| 久久九九久久九九| 91网址在线看| 日本成人在线不卡视频| 国产香蕉久久精品综合网| 色噜噜狠狠一区二区三区果冻| 午夜精品视频在线观看| xvideos.蜜桃一区二区| av电影天堂一区二区在线| 日韩国产精品91| 欧美激情一区二区三区| 欧美日韩日日摸| 国产精品综合av一区二区国产馆| 亚洲欧美福利一区二区| 日韩欧美国产电影| 99视频精品免费视频| 全国精品久久少妇| 亚洲欧洲国产日韩| 日韩精品一区二区三区蜜臀| 91网站视频在线观看| 麻豆国产精品一区二区三区| 17c精品麻豆一区二区免费| 日韩一区二区三免费高清| 91欧美激情一区二区三区成人| 久久国产精品无码网站| 亚洲美女免费在线| 久久久综合九色合综国产精品| 91精品福利在线| 国产精品亚洲第一区在线暖暖韩国| 成人高清视频在线| 美女一区二区三区在线观看| 亚洲欧美二区三区| 欧美激情中文字幕一区二区| 91精品久久久久久久91蜜桃| 色拍拍在线精品视频8848| 国产成人av电影在线观看|