www.pudn.com > cgi-web.rar > video_setting.c, change:2007-08-31,size:9846b


#include <stdio.h> 
#include <string.h> 
#include <stdlib.h> 
#include <fcntl.h> 
#include <getopt.h> 
#include <errno.h> 
#include <sys/ioctl.h> 
#include <linux/config.h> 
#include <netinet/in.h> 
#include <arpa/inet.h> 
 
#include "cgivars.h" 
#include "htmllib.h" 
#include "config_phase.h" 
#include "sysconf.h" 
 
#define DEBUG        0 
 
#define ID_CAM_HPOS          1 
#define ID_CAM_VPOS	          2 
#define ID_CAM_RESO          3 
#define ID_CAM_IMGQ          4 
#define ID_CAM_LUM            5 
#define ID_CAM_SAT            6 
#define ID_CAM_CON            7 
#define ID_CAM_EXP            8 
#define ID_CAM_NIGV          9 
 
 
static config_item ** items; 
static int config_list[] = {1,2,3,4,5,6,7,8,9}; 
static char *config_name[] = {"CAM_HPOS", "CAM_VPOS", "CAM_RESO", "CAM_IMGQ", "CAM_LUM", "CAM_SAT", "CAM_CON",  
	                                       "CAM_EXP", "CAM_NIGV"}; 
	                                
 
void video_set(char **postvars, int form_method) 
{ 
	int config_num = sizeof(config_list)/sizeof(int); 
	int i; 
	int r_fd, w_fd; 
 
	int temp_int; 
	char *CAM_HPOS; 
	char *CAM_VPOS; 
	char *CAM_RESO; 
	char *CAM_IMGQ; 
	char *CAM_LUM; 
	char *CAM_SAT; 
	char *CAM_CON; 
	char *CAM_EXP; 
	char *CAM_NIGV; 
 
	char java[] ="<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\"> 
<HTML><HEAD><TITLE>视频设置</TITLE> 
<META http-equiv=Expires content=\"Tue, 1 Jan 1980 2:00:00 GMT\"> 
<META http-equiv=Pragma content=no-cache> 
<META http-equiv=Cache-Control content=no-cache> 
<META http-equiv=Content-type content=\"text/html; charset=gb2312\"> 
<SCRIPT language=JavaScript type=text/javascript></SCRIPT> 
 
<STYLE type=text/css>BODY { 
	FONT-SIZE: 10pt; FONT-FAMILY: Arial 
} 
TD { 
	FONT-SIZE: 10pt; FONT-FAMILY: Arial 
} 
FORM { 
	FONT-SIZE: 10pt; FONT-FAMILY: Arial 
} 
OPTION { 
	FONT-SIZE: 10pt; FONT-FAMILY: Arial 
} 
TEXTAREA { 
	FONT-SIZE: 10pt; FONT-FAMILY: Arial 
} 
P { 
	FONT-SIZE: 10pt; FONT-FAMILY: Arial 
} 
OL { 
	FONT-SIZE: 10pt; FONT-FAMILY: Arial 
} 
INPUT { 
	FONT-SIZE: 10pt; FONT-FAMILY: Arial 
} 
SELECT { 
	FONT-SIZE: 10pt; FONT-FAMILY: Arial 
} 
.style1 { 
	FONT-WEIGHT: bold; FONT-SIZE: 14pt 
} 
.style2 { 
	COLOR: #999999 
} 
</STYLE> 
 
<META content=\"MSHTML 6.00.6000.16414\" name=GENERATOR></HEAD>"; 
 
	//r_fd = open_read_fifo(); 
	items = init_config_item(items, config_num, config_list); 
 
 
	printf("%s\n", java); 
 
	// If we got post, write it into flash 
	if(form_method == POST) 
	{ 
		GetConfValues(config_list, items, config_num); 
		if(SaveConfig(postvars, items, config_list, config_name, config_num)) 
		{/* 
			w_fd = open_write_fifo(); 
			notify_config(w_fd); 
			close_write_fifo(w_fd); 
 
			read_fifo(r_fd); 
			*/ 
		} 
	} 
 
	GetConfValues(config_list, items, config_num); 
	 
	printf("<BODY leftMargin=30 topMargin=24 rightMargin=30>\n"); 
	printf("<P><SPAN class=style1>视频设置</SPAN></P>\n"); 
	printf("<FORM name=video_setting action=\"/video_setting.cgi\" method=post target=msgFrame>\n"); 
	printf("<TABLE width=\"100%\"><TBODY>\n"); 
	printf("<TR><TD><TABLE style=\"BORDER-COLLAPSE: collapse\" borderColor=#dae3eb cellSpacing=0 cellPadding=0 width=\"100%\" border=1>\n"); 
	printf("<TBODY><TR bgColor=#cccccc><TD align=left colSpan=2><STRONG>视频参数</STRONG></TD></TR>\n"); 
 
	//CAM_RESO 
	printf("<TR><TD width=150>分辨率(图像大小):</TD><TD><SELECT name=CAM_RESO>\n"); 
 
	if(CAM_RESO = getdata(ID_CAM_RESO, items, config_num)) 
	{ 
		temp_int = atoi(CAM_RESO); 
		if(temp_int == 1) 
		{ 
			printf("<option value=\"1\" selected>704x576</OPTION> \n"); 
			printf("<option value=\"2\">352x288</OPTION> \n"); 
			printf("<option value=\"3\">176x144</OPTION> \n"); 
		} 
		else if(temp_int == 2) 
		{ 
			printf("<option value=\"1\">704x576</OPTION> \n"); 
			printf("<option value=\"2\" selected>352x288</OPTION> \n"); 
			printf("<option value=\"3\">176x144</OPTION> \n"); 
		} 
		else 
		{ 
			printf("<option value=\"1\">704x576</OPTION> \n"); 
			printf("<option value=\"2\">352x288</OPTION> \n"); 
			printf("<option value=\"3\" selected>176x144</OPTION> \n"); 
		} 
	} 
	printf("</SELECT></TD></TR>\n"); 
 
	//CAM_IMGQ 
	printf("<TR><TD>图像质量:</TD><TD><SELECT name=CAM_IMGQ> \n"); 
 
	if(CAM_IMGQ = getdata(ID_CAM_IMGQ, items, config_num)) 
	{ 
		temp_int = atoi(CAM_IMGQ); 
		if(temp_int == 1) 
		{ 
			printf("<option value=\"1\" selected>低</OPTION> \n"); 
			printf("<option value=\"3\">标准</OPTION> \n"); 
			printf("<option value=\"5\">高</OPTION> \n"); 
		} 
		else if(temp_int == 3) 
		{ 
			printf("<option value=\"1\" >低</OPTION> \n"); 
			printf("<option value=\"3\" selected>标准</OPTION> \n"); 
			printf("<option value=\"5\">高</OPTION> \n"); 
		} 
		else 
		{ 
			printf("<option value=\"1\" >低</OPTION> \n"); 
			printf("<option value=\"3\" >标准</OPTION> \n"); 
			printf("<option value=\"5\" selected> 高</OPTION> \n"); 
		} 
	} 
	printf("</SELECT></TD></TR>\n"); 
	 
	//CAM_LUM 
	if(CAM_LUM = getdata(ID_CAM_LUM, items, config_num)) 
		printf("<tr><TD>亮度:</TD><TD><INPUT maxLength=3 size=4  name=CAM_LUM value=%s> [0..64] </TD></tr>\n", CAM_LUM); 
	else 
		printf("<tr><TD>亮度:</TD><TD><INPUT maxLength=3 size=4  name=CAM_LUM> [0..64] </TD></tr>\n"); 
 
	//CAM_SAT 
	if(CAM_SAT = getdata(ID_CAM_SAT, items, config_num)) 
		printf("<tr><TD>对比度:</TD><TD><INPUT maxLength=3 size=4  name=CAM_SAT value=%s> [0..64] </TD></tr>\n", CAM_SAT); 
	else 
		printf("<tr><TD>对比度:</TD><TD><INPUT maxLength=3 size=4  name=CAM_SAT> [0..64] </TD></tr>\n"); 
 
	//CAM_CON 
	if(CAM_CON = getdata(ID_CAM_CON, items, config_num)) 
		printf("<tr><TD>饱和度:</TD><TD><INPUT maxLength=3 size=4  name=CAM_CON value=%s> [0..64] </TD></tr>\n", CAM_CON); 
	else 
		printf("<tr><TD>饱和度:</TD><TD><INPUT maxLength=3 size=4  name=CAM_CON> [0..64] </TD></tr>\n"); 
 
	//CAM_EXP 
	printf("<TR bgColor=#cccccc><TD colSpan=2><STRONG>高级设置</STRONG></TD></TR>\n"); 
	printf("<TR><TD>曝光控制:</TD><TD><SELECT name=CAM_EXP>\n"); 
 
	if(CAM_EXP = getdata(ID_CAM_EXP, items, config_num)) 
	{ 
		temp_int = atoi(CAM_EXP); 
		if(temp_int == 0) 
		{ 
			printf("<option value=\"0\" selected>自动</OPTION> \n"); 
			printf("<option value=\"1\">慢</OPTION> \n"); 
			printf("<option value=\"2\">中</OPTION> \n"); 
			printf("<option value=\"3\">快</OPTION> \n"); 
		} 
		else if(temp_int == 1) 
		{ 
			printf("<option value=\"0\">自动</OPTION> \n"); 
			printf("<option value=\"1\" selected>慢</OPTION> \n"); 
			printf("<option value=\"2\">中</OPTION> \n"); 
			printf("<option value=\"3\">快</OPTION> \n"); 
		} 
		else if(temp_int == 2) 
		{ 
			printf("<option value=\"0\">自动</OPTION> \n"); 
			printf("<option value=\"1\">慢</OPTION> \n"); 
			printf("<option value=\"2\" selected>中</OPTION> \n"); 
			printf("<option value=\"3\">快</OPTION> \n"); 
		} 
		else 
		{ 
			printf("<option value=\"0\">自动</OPTION> \n"); 
			printf("<option value=\"1\">慢</OPTION> \n"); 
			printf("<option value=\"2\">中</OPTION> \n"); 
			printf("<option value=\"3\" selected>快</OPTION> \n"); 
		} 
	} 
	printf("</SELECT></TD></TR>\n"); 
 
	//CAM_NIGV 
	printf("<TR bgColor=#cccccc><TD colSpan=2><STRONG>夜视设置</STRONG></TD></TR>\n"); 
	printf("<TR><TD>摄像头光源:</TD><TD><SELECT name=CAM_NIGV>\n"); 
	 
	if(CAM_NIGV = getdata(ID_CAM_NIGV, items, config_num)) 
	{ 
		temp_int = atoi(CAM_NIGV); 
		if(temp_int == 0) 
		{ 
			printf("<option value=\"0\" selected>自然光</OPTION> \n"); 
			printf("<option value=\"1\">红外灯管</OPTION> \n"); 
			printf("<option value=\"2\">白光灯管</OPTION> \n"); 
		} 
		else if(temp_int == 1) 
		{ 
			printf("<option value=\"0\">自然光</OPTION> \n"); 
			printf("<option value=\"1\" selected>红外灯管</OPTION> \n"); 
			printf("<option value=\"2\">白光灯管</OPTION> \n"); 
		} 
		else 
		{ 
			printf("<option value=\"0\">自然光</OPTION> \n"); 
			printf("<option value=\"1\">红外灯管</OPTION> \n"); 
			printf("<option value=\"2\" selected>白光灯管</OPTION> \n"); 
		} 
	} 
	printf("</SELECT></TD></TR>\n"); 
 
	//CAM_HPOS 
	printf("<TR bgColor=#cccccc><TD colSpan=2><STRONG>云台位置</STRONG></TD></TR>\n"); 
	if(CAM_HPOS = getdata(ID_CAM_HPOS, items, config_num)) 
		printf("<tr><TD>上下位置:</TD><TD><INPUT maxLength=3 size=4 name=CAM_HPOS value=%s> [1..8] </TD></tr>\n", CAM_HPOS); 
	else 
		printf("<tr><TD>上下位置:</TD><TD><INPUT maxLength=3 size=4 name=CAM_HPOS> [1..8] </TD></tr>\n"); 
 
	//CAM_VPOS 
	if(CAM_VPOS = getdata(ID_CAM_VPOS, items, config_num)) 
		printf("<tr><TD>左右位置:</TD><TD><INPUT maxLength=3 size=4 name=CAM_VPOS value=%s> [1..16] </TD></tr>\n", CAM_VPOS); 
	else 
		printf("<tr><TD>左右位置:</TD><TD><INPUT maxLength=3 size=4 name=CAM_VPOS> [1..16] </TD></tr>\n"); 
 
	printf("</TBODY></TABLE>\n"); 
 
	printf("<P align=left><INPUT  type=submit value=应用>\n"); 
	printf("<INPUT type=reset value=重置>\n"); 
	printf("<INPUT type=hidden value=chs name=lang> </P></TD></TR></TBODY></TABLE></FORM></BODY></HTML>\n"); 
 
   // printf(CAM_NIGV); 
	free_config_item(items, config_num); 
	//close_read_fifo(); 
} 
 
 
//////////////////////////////////////////////////////////////////////////// 
// Function: main 
//////////////////////////////////////////////////////////////////////////// 
int main(void) 
{ 
    char **postvars = NULL;  // POST request data repository 
    char **getvars = NULL;   // GET request data repository 
    int form_method;         // POST = 1, GET = 0 
 
    // CGI part start here 
    adminCheck(); 
    form_method = getRequestMethod(); 
 
    if(form_method == POST) 
    { 
       // getvars = getGETvars(); 
        postvars = getPOSTvars(); 
    } 
    else if(form_method == GET) 
    { 
        getvars = getGETvars(); 
    } 
 
    // CGI start here, set COM port 
    video_set(postvars, form_method); 
 
    //htmlFooter(); 
    cleanUp(form_method, getvars, postvars); 
 
 
    fflush(stdout); 
    exit(0); 
 
}  // end of main