📄 video_setting.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 + -