⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 video_setting.c

📁 嵌入式linux的一个cgi网站
💻 C
字号:
#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



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -