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

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

?? main(bl2100).c

?? rabbit現(xiàn)場采集
?? C
?? 第 1 頁 / 共 3 頁
字號:
/*******************************************************************************
        RTU_100.c
        CH.Control, 2005

        This program support Web server access and modbus/tcp comm. with computer
        User can program code to comm. with  3'rd device
        to get realtime information from the modbus/tcp port.

*******************************************************************************/
#class auto
#use "Protocol.lib"

//// Initialization for the BL2100 controllers
#define NUM_CHANNELS 11		//number of A/D channels
#define OUTPUTBITS 0		//initialize for 12 bit operation
#define MAXROUTE 3			//N to 1 module,number of N

/***********************************
 * Configuration                   *
 * -------------                   *
 * All fields in this section must *
 * be altered to match your local  *
 * network settings.               *
 ***********************************/

/*
 * Pick the predefined TCP/IP configuration for this sample.  See
 * LIB\TCPIP\TCP_CONFIG.LIB for instructions on how to set the
 * configuration.
 */

#define USE_ETHERNET		1
#define IFCONFIG_ETH0 IFS_UP

#define USE_HTTP_DIGEST_AUTHENTICATION	1

/*
 * Web server configuration
 */

/*
 * Only one server is needed for a reserved port
 */
#define HTTP_MAXSERVERS 1
#define MAX_TCP_SOCKET_BUFFERS 2   //http server and mbtcp server

/*
 * Our web server as seen from the clients.
 * This should be the address that the clients (netscape/IE)
 * use to access your server. Usually, this is your IP address.
 * If you are behind a firewall, though, it might be a port on
 * the proxy, that will be forwarded to the Rabbit board. The
 * commented out line is an example of such a situation.
 */
#define REDIRECTHOST		_PRIMARY_STATIC_IP
//#define REDIRECTHOST	"proxy.domain.com:1212"


/********************************
 * End of configuration section *
 ********************************/

/*
 *  REDIRECTTO is used by each ledxtoggle cgi's to tell the
 *  browser which page to hit next.  The default REDIRECTTO
 *  assumes that you are serving a page that does not have
 *  any address translation applied to it.
 *
 */

#define REDIRECTTO 		"http://" REDIRECTHOST ""

#memmap xmem
#use "dcrtcp.lib"
#use "http.lib"

#ximport "ProgDev/pages/rtu100-1.shtml" index_html

void init_FORMSpecName(void);
void get_parameters(char *buffer,int FORMSpecSize);


/* the default for / must be first */
const HttpType http_types[] =
{
    { ".shtml", "text/html", shtml_handler}, // ssi
    { ".html", "text/html", NULL},           // html
    { ".cgi", "", NULL},                     // cgi
    { ".gif", "image/gif", NULL}
};
//POINT 2
/*
*------define variable of input text line -------
*/
char T1[16];  //host ip
char T2[16];  //subnet mask
char T3[16];  //default gateway
char T4[8];   //unit index
char T5[8];   //update interval
char T6[8];   //reply timeout
/*
*------define variable of select menu--- -------
*/
char D1[8];/*port A baud rate*/
char D2[8];/*port A parity*/
char D3[8];/*port A protocol select*/
char D4[8];/*port B baud rate*/
char D5[8];/*port B parity*/
char D6[8];/*port B protocol select*/
char D7[8];/*port C baud rate*/
char D8[8];/*port C parity*/
char D9[8];/*port C protocol select*/
/*
*----define variable of radio/check button -----
*/
char R1[2];/*ethernet protocol type*/
char R2[2];/*port A data bits*/
char R3[2];/*port A stop bits*/
char R4[2];/*port B data bits*/
char R5[2];/*port B stop bits*/
char R6[2];/*port C data bits*/
char R7[2];/*port C stop bits*/
char C1[2];/*unsolicited message select*/

//POINT 6
const char default_para[]=
{
	"T1=192.168.1.100&"\
	"T2=255.255.255.0&"\
	"T3=192.168.1.1&"\
	"T4=0&"\
	"T5=100&"\
	"T6=3&"\
	"D1=4&"\
	"D2=0&"\
	"D3=0&"\
	"D4=4&"\
	"D5=0&"\
	"D6=0&"\
	"D7=4&"\
	"D8=0&"\
	"D9=0&"\
	"R1=1&"\
	"R2=0&"\
	"R3=0&"\
	"R4=0&"\
	"R5=0&"\
	"R6=0&"\
	"R7=0&"\
	"C1=1&"\
	"'\0'"
};

const char FORMSpecName[][] =
{
	{"T1"},{"T2"},{"T3"},{"T4"},{"T5"},{"T6"},
	{"D1"},{"D2"},{"D3"},{"D4"},{"D5"},{"D6"},{"D7"},{"D8"},{"D9"},
	{"R1"},{"R2"},{"R3"},{"R4"},{"R5"},{"R6"},{"R7"}
};

struct user_block
{
    struct
    {
        char username[16];
		char password[6];
    }users;
    char setup_str[256];
    int crc_16;
}setup_para;

long block_len;

#define MAX_FORMSIZE	16

typedef struct
{
    char *name;
  	char value[MAX_FORMSIZE];
}FORMType;

FORMType FORMSpec[22];

/* read & wirte user block*/
void userblock_init(void)
{
    void* save_data[3];
  	unsigned int save_lens[3];
    int checksum,len;
    save_data[0] = &setup_para;
    save_lens[0] = sizeof(setup_para);

	if(readUserBlockArray(save_data, save_lens, 1, 0))
	{
		if(writeUserBlockArray(0, save_data, save_lens, 1))
		{
			printf("write user block error!\r\n");
			exit(-1);
		}
    }

    len = strlen(setup_para.setup_str);
    len = len <256 ? len : 255;
    checksum = Calc_CRC(setup_para.setup_str,len);
    setup_para.setup_str[len] = '\0';
    if(setup_para.crc_16 != checksum)
    {
		strcpy(setup_para.setup_str,default_para);
		//printf("%s,%d\r\n",setup_para.setup_str,strlen(setup_para.setup_str));
		save_data[0] = &setup_para;
		save_lens[0] = sizeof(setup_para);
		len = strlen(setup_para.setup_str);
		setup_para.crc_16 = Calc_CRC(setup_para.setup_str,len);
		setup_para.setup_str[len] = '\0';
		if(writeUserBlockArray(0, save_data, save_lens, 1))
		{
			printf("write user block error!\r\n");
			exit(-1);
		}
    }
    init_FORMSpecName();
    get_parameters(setup_para.setup_str,sizeof(FORMSpec)/sizeof(FORMType));
}

int rebootflag;
int cur_route;

/*
 * submit.cgi function
 */
int submit(HttpState* state)
{
	auto int i;
	auto int len;
	void* save_data[3];
	unsigned int save_lens[3];

	if(state->length)
	{
		//buffer to write out
		if(state->offset < state->length )
		{
			state->offset += sock_fastwrite(&state->s,state->buffer + (int)state->offset,(int)state->length - (int)state->offset);
		}
		else
		{
			state->offset = 0;
			state->length = 0;
		}
	}
	else
	{
		switch(state->substate)
		{
			case 0:
				strcpy(state->buffer, "HTTP/1.0 200 OK\r\nContent-Type: text/html\r\n\r\n");
				state->length = strlen(state->buffer);
				state->offset = 0;
				state->substate++;
				break;
			case 1:
				strcpy(state->buffer, "<html><head><title>Results</title></head><body>\r\n");
				state->length = strlen(state->buffer);
				state->offset = 0;
				state->substate++;
				break;
			case 2:
				init_FORMSpecName();
				if(parse_post(state))
				{
					//printf ("parse_post return: %d\r\n",i);

					strcpy(setup_para.setup_str,state->buffer);
					state->offset = 0;
					state->length = 0;
					state->substate++;
					break;
				}
				else{}
				break;
			case 3:
				/* write user block data */
				save_data[0] = &setup_para;
				save_lens[0] = sizeof(setup_para);
				len = strlen(setup_para.setup_str);
				setup_para.crc_16 = Calc_CRC(setup_para.setup_str,len);
				setup_para.setup_str[len] = '\0';
				if((writeUserBlockArray(0, save_data, save_lens, 1))!=0)
				{
					strcpy(state->buffer,"<p>write user block occur error!<p>\r\n");
				}
				else
				{
					strcpy(state->buffer,"<p>write user block succeed!<p>\r\n");
				}
				state->offset = 0;
				state->length = strlen(state->buffer);
				state->substate++;
				break;
			case 4:
				/*parse the POST information
				if(parse_post(state))
				{
					sprintf(state->buffer, "<p>Username: %s<p>\r\n<p>Email: %s<p>\r\n",
					FORMSpec[0].value, FORMSpec[1].value);
					state->length = strlen(state->buffer);
					state->substate++;
				}
				else
				{
				}
				break;
			case 4:
				strcpy(state->buffer, "<p>Go <a href=\"/\">home</a></body></html>\r\n");
				state->length = strlen(state->buffer);
				state->substate++;
				break;*/

			default:
				state->substate = 0;
				rebootflag = 1;
				return 1;
		}
	}
	//cgi_redirectto(state,REDIRECTTO);
    return 0;
}


const HttpSpec http_flashspec[] =
{
	{ HTTPSPEC_FILE, 	"/",		index_html,    NULL, 0, NULL, NULL},
	{ HTTPSPEC_FILE, 	"/index.html",	index_html,    NULL, 0, NULL, NULL},

	//PIOINT 4
	{ HTTPSPEC_FUNCTION,	"/submit.cgi",		 0,  submit, 0, NULL, NULL},
	{ HTTPSPEC_VARIABLE,	"T1",		0,	T1,PTR16,"%s",NULL},
	{ HTTPSPEC_VARIABLE,	"T2",		0,	T2,PTR16,"%s",NULL},
	{ HTTPSPEC_VARIABLE,	"T3",		0,	T3,PTR16,"%s",NULL},
	{ HTTPSPEC_VARIABLE,	"T4",		0,	T4,PTR16,"%s",NULL},
	{ HTTPSPEC_VARIABLE,	"T5",		0,	T5,PTR16,"%s",NULL},
	{ HTTPSPEC_VARIABLE,	"T6",		0,	T6,PTR16,"%s",NULL},

	{ HTTPSPEC_VARIABLE,	"D1",		0,	D1,PTR16,"%s",NULL},
	{ HTTPSPEC_VARIABLE,	"D2",		0,	D2,PTR16,"%s",NULL},
	{ HTTPSPEC_VARIABLE,	"D3",		0,	D3,PTR16,"%s",NULL},
	{ HTTPSPEC_VARIABLE,	"D4",		0,	D4,PTR16,"%s",NULL},
	{ HTTPSPEC_VARIABLE,	"D5",		0,	D5,PTR16,"%s",NULL},
	{ HTTPSPEC_VARIABLE,	"D6",		0,	D6,PTR16,"%s",NULL},
	{ HTTPSPEC_VARIABLE,	"D7",		0,	D7,PTR16,"%s",NULL},
	{ HTTPSPEC_VARIABLE,	"D8",		0,	D8,PTR16,"%s",NULL},
	{ HTTPSPEC_VARIABLE,	"D9",		0,	D9,PTR16,"%s",NULL},

	{ HTTPSPEC_VARIABLE,	"R1",		0,	R1,PTR16,"%s",NULL},
	{ HTTPSPEC_VARIABLE,	"R2",		0,	R2,PTR16,"%s",NULL},
	{ HTTPSPEC_VARIABLE,	"R3",		0,	R3,PTR16,"%s",NULL},
	{ HTTPSPEC_VARIABLE,	"R4",		0,	R4,PTR16,"%s",NULL},
	{ HTTPSPEC_VARIABLE,	"R5",		0,	R5,PTR16,"%s",NULL},
	{ HTTPSPEC_VARIABLE,	"R6",		0,	R6,PTR16,"%s",NULL},
	{ HTTPSPEC_VARIABLE,	"R7",		0,	R7,PTR16,"%s",NULL},
	{ HTTPSPEC_VARIABLE,	"C1",		0,	C1,PTR16,"%s",NULL}
};

/******************************************************************************
* User interface part  (modbus tcp protocol code)
*****************************************************************************/

/* vars for modbus/tcp recieve daemon */
#define MB_TCP_MAX_BUFLEN 512
#define MB_TCP_PORT 502

/* define modbus/tcp states */

#define MBTCP_INIT		0
#define MBTCP_LISTEN    1
#define MBTCP_GETREQ		2
#define MBTCP_SENDRSP	3
#define MBTCP_WAITCLOSE	4

typedef struct
{
	tcp_Socket sock;
	tcp_Socket *s;

	int cmdlen;
	int cmdoffset;
	int lport;
	int state;
	int byteswritten;

	//char buf[1024];
	//char cmdbuf[1024];
	char buf[MB_TCP_MAX_BUFLEN/16];
	char cmdbuf[MB_TCP_MAX_BUFLEN];
}modbus_tcp_recv;

modbus_tcp_recv tr_state;
const modbus_tcp_recv *const mbtcpstate = &tr_state;

/*
 ********************modbus tcp realtime data buffer*************************
 */
/*
InputReg 30000
InputState 10000

*/
/*
 * Input Register Buffer
 * 0~511->portB;512~1023->portC;1024~1535->portD
 * 1536~1599 analog output buffer
 */
int Port_InputReg[1600];

/*
 * Holding Register Buffer
 * 0~511->portB;512~1023->portC;1024~1535->portD
 * 1536~1599 analog input buffer
 */
int Port_HoldingReg[1600];

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆精品在线观看| 欧美日韩五月天| 欧美日韩国产片| 玉足女爽爽91| www.视频一区| 国产精品麻豆久久久| 激情久久五月天| 欧美xxxxxxxx| 精品一区二区三区av| 久久一区二区三区国产精品| 免费人成精品欧美精品| 欧美一级在线观看| 日本va欧美va精品| 亚洲欧美一区二区三区国产精品 | 国产网站一区二区| 国内外成人在线视频| 一区二区三区在线高清| 欧美性xxxxxxxx| 日韩中文字幕区一区有砖一区| 欧美区一区二区三区| 91免费视频网| kk眼镜猥琐国模调教系列一区二区| 蜜臀av性久久久久蜜臀aⅴ流畅| 久久久久久一级片| 91免费视频大全| 成人精品免费网站| 亚洲一区二区三区不卡国产欧美| 欧美性色黄大片手机版| 99精品视频一区| 人人精品人人爱| 亚洲福中文字幕伊人影院| 欧美一区二区三区四区视频| 欧美四级电影在线观看| 在线观看日产精品| 老司机精品视频导航| 国产精品二三区| 91超碰这里只有精品国产| 国产suv精品一区二区三区| 亚洲精品日日夜夜| 亚洲另类春色校园小说| 一区二区三区中文字幕电影| 亚洲免费观看视频| 亚洲精品欧美激情| 亚洲综合丁香婷婷六月香| 一区二区三区加勒比av| 亚洲成人动漫在线观看| 国产精品久久久久桃色tv| 国产校园另类小说区| 亚洲国产精品成人综合| 制服丝袜亚洲播放| 91麻豆精品国产91久久久资源速度| 欧美亚洲高清一区| 欧美精品xxxxbbbb| 一本久久a久久免费精品不卡| 日本美女一区二区三区| 亚洲色图在线播放| 久久婷婷国产综合精品青草 | 亚洲三级免费电影| 夜夜爽夜夜爽精品视频| 午夜免费久久看| 亚洲美女视频在线| 亚洲综合视频在线观看| 日韩av一二三| 国产一区日韩二区欧美三区| 午夜精品福利一区二区蜜股av| 亚洲成av人片在www色猫咪| 青娱乐精品在线视频| 国产一区视频导航| 91视频在线看| 欧美日本国产视频| 久久综合九色综合欧美亚洲| 国产精品国产三级国产三级人妇| 亚洲欧美偷拍另类a∨色屁股| 亚洲成人av福利| 国产乱对白刺激视频不卡| 日本美女视频一区二区| 久久99国内精品| 99久久精品国产观看| 欧美电影影音先锋| 国产亚洲欧洲997久久综合| 依依成人综合视频| 久久99国产精品麻豆| aaa亚洲精品一二三区| 69p69国产精品| 中文无字幕一区二区三区| 亚洲在线免费播放| 国产综合一区二区| 欧美视频一区二区在线观看| 久久久影视传媒| 亚洲成人精品一区二区| 成人视屏免费看| 666欧美在线视频| 国产精品乱码一区二三区小蝌蚪| 午夜精品福利久久久| 成人在线综合网| 日韩一区二区电影| 精品国产一区二区精华| 精品精品国产高清一毛片一天堂| 亚洲免费观看在线视频| 国产美女精品在线| 欧美精品日韩精品| 日韩美女啊v在线免费观看| 国内精品国产三级国产a久久| 欧美伊人精品成人久久综合97 | 精品一区二区三区免费毛片爱| 91伊人久久大香线蕉| 欧美精品一区二区不卡| 午夜精品一区二区三区免费视频 | 色偷偷成人一区二区三区91| 久久久三级国产网站| 日韩激情av在线| 色视频一区二区| 国产精品国产精品国产专区不片| 青青青爽久久午夜综合久久午夜| 色婷婷精品久久二区二区蜜臂av | 日韩一区二区免费在线观看| 一区二区在线观看av| 成人午夜短视频| 精品精品国产高清a毛片牛牛| 午夜精品爽啪视频| 欧美三级一区二区| 一区二区不卡在线播放| 99久久精品情趣| 国产精品美女www爽爽爽| 国产酒店精品激情| 欧美大白屁股肥臀xxxxxx| 国产日韩精品视频一区| 亚洲精品成人精品456| av午夜一区麻豆| 国产欧美精品一区二区三区四区| 久久成人免费网| 精品国产免费人成在线观看| 老司机精品视频一区二区三区| 欧美一区午夜精品| 日韩av在线发布| 欧美电影一区二区| 婷婷综合另类小说色区| 欧美一区午夜精品| 奇米色777欧美一区二区| 制服丝袜中文字幕亚洲| 日本不卡高清视频| 亚洲精品一区二区在线观看| 国产在线精品一区二区夜色| 久久久久久久久一| 成人高清伦理免费影院在线观看| 在线电影欧美成精品| 五月天网站亚洲| 69堂精品视频| 国产在线看一区| 国产精品网曝门| 色综合久久久久网| 五月婷婷久久综合| 久久亚洲综合av| jlzzjlzz亚洲日本少妇| 亚洲九九爱视频| 欧美日韩久久久久久| 美女www一区二区| 久久久久国产成人精品亚洲午夜| 国产91丝袜在线18| 亚洲欧美精品午睡沙发| 欧美日韩精品高清| 九九久久精品视频| 中文字幕av在线一区二区三区| 色久综合一二码| 欧美国产日韩a欧美在线观看| jizzjizzjizz欧美| 亚洲成人自拍偷拍| 精品乱码亚洲一区二区不卡| 丁香亚洲综合激情啪啪综合| 一区二区三区四区高清精品免费观看 | 亚洲一区二区成人在线观看| 欧美一区二区精美| 国产馆精品极品| 日韩一区二区免费在线观看| 国产成人综合在线| 一区二区三区在线视频观看58 | 国产美女av一区二区三区| 亚洲男人的天堂一区二区| 91精品国产91久久综合桃花 | 国产成人精品免费视频网站| 一区二区三区加勒比av| 欧美精品一区二区不卡| 91成人网在线| 国产一区二区三区四区在线观看| 综合久久国产九一剧情麻豆| 日韩西西人体444www| 99久久婷婷国产精品综合| 日本成人超碰在线观看| 中文字幕亚洲不卡| 色婷婷综合五月| 国内久久婷婷综合| 亚洲成人tv网| 中文字幕在线一区二区三区| 日韩三级av在线播放| 91香蕉视频污在线| 国产乱码精品一区二区三区五月婷| 亚洲一二三四在线| 国产精品久久久久久久久晋中 | 久久―日本道色综合久久| 欧美艳星brazzers|