index.c

来自「这是我自己写的用于嵌入式设备的CGI程序」· C语言 代码 · 共 314 行

C
314
字号
/*-----------------------------------------------------------------------------G1 CGI Moduleindex.c:Homepage* 	Description :*Created by KevinModification History:001. 09.18.2007: Created.-----------------------------------------------------------------------------*/#include <stdio.h>#include <stdlib.h>#include <string.h>#include "cgic.h"#include "cgi_config.h"#include "session.h"#include "multi-language.h"SESSION_DATA cur_session_data;int cgiMain(){    char* buffer = NULL;    char _buffer[1024*50]={0};    char mtmp[256];    int i=0;    REPLACEABLE_TAG_LIST tag_list = (REPLACEABLE_TAG_LIST)malloc(sizeof(REPLACEABLE_TAG) * 37);    char tag12[24],         tag13[24],         tag14[24],         tag15[24],         tag16[24],         tag17[24],         tag18[24],         tag19[24],         tag20[24],         tag21[24],         tag22[24],         tag23[24],         tag24[24],         tag28[36],         tag30[24], tag30_[24],         mjpeg[24];    char md_tmp[24], md1[24], md2[24], md3[24];    char msg1[72];    char cur_session_id[24];    int language_selected=0;    int sd_space, sd_free;    char cookie_session_id[24];    int result;    int auth=0;    //send_command("FStarter start");    //sessionCheckOnHead( cur_session_id );    result = cgiCookieString("COOKIE_SESSION_ID",cookie_session_id,24);    if ( result != cgiFormSuccess )    {        read_prev_selectd (&language_selected);        strcpy ( msg1, language_section_public [ language_selected -1 ][ L_ID_PUBLIC_NOT_EXIST ]);        alert_redirect ( msg1, "login.cgi");        free(buffer);        free(tag_list);        return 0;    }    strcpy ( cur_session_id, cookie_session_id );    get_user_authority ( cur_session_id, &auth );    sessionCheck ( cur_session_id, &cur_session_data );    if ( 0!= get_language_selected ( cur_session_id, &language_selected ))        language_selected = EN;    tag_list[0].tag = "[-BRIGHTNESS-]";    tag_list[1].tag = "[-SATURATION-]";    tag_list[2].tag = "[-CONTRAST-]";    tag_list[3].tag = "[-HUE-]";    tag_list[4].tag = "[-DEVICE_SN-]";    tag_list[5].tag = "[-DEVICE_REMARK-]";    tag_list[6].tag = "[-SD_SPADCE-]";    tag_list[7].tag = "[-SOFT_VERSION-]";    tag_list[8].tag = "[-PLAY-]";    tag_list[9].tag = "[-TALK-]";    tag_list[10].tag = "[-MD-]";    tag_list[11].tag = "[-LD-]";    tag_list[29].tag = "[-FOCUS-]";    tag_list[0].value = language_section_main [ language_selected -1 ][ L_ID_MAIN_BRIGHTNESS ];    tag_list[1].value = language_section_main [ language_selected -1 ][ L_ID_MAIN_SATURATION ];    tag_list[2].value = language_section_main [ language_selected -1 ][ L_ID_MAIN_CONTRAST ];    tag_list[3].value = language_section_main [ language_selected -1 ][ L_ID_MAIN_HUE ];    tag_list[4].value = language_section_main [ language_selected -1 ][ L_ID_MAIN_DEVICE_SN ];    tag_list[5].value = language_section_main [ language_selected -1 ][ L_ID_MAIN_DEVICE_REMARK ];    tag_list[6].value = language_section_main [ language_selected -1 ][ L_ID_MAIN_SD_SPADCE ];    tag_list[7].value = language_section_main [ language_selected -1 ][ L_ID_MAIN_SOFT_VERSION ];    tag_list[8].value = language_section_main [ language_selected -1 ][ L_ID_MAIN_PLAY ];    tag_list[9].value = language_section_main [ language_selected -1 ][ L_ID_MAIN_TALK ];    tag_list[10].value = language_section_main [ language_selected -1 ][ L_ID_MAIN_MD ];    tag_list[11].value = language_section_main [ language_selected -1 ][ L_ID_MAIN_LD ];    tag_list[11].value = language_section_main [ language_selected -1 ][ L_ID_MAIN_LD ];    tag_list[29].value = language_section_main [ language_selected -1 ][ L_ID_MAIN_FOCUS ];    tag_list[12].tag = "[-I_D-]";    tag_list[13].tag = "[-REMARK-]";    tag_list[14].tag = "[-SPACE-]";    tag_list[15].tag = "[-VER-]";    tag_list[16].tag = "[-RTSP_PORT-]";    tag_list[17].tag = "[-CONTROL_PORT-]";    tag_list[18].tag = "[-B_VALUE-]";    tag_list[19].tag = "[-S_VALUE-]";    tag_list[20].tag = "[-C_VALUE-]";    tag_list[21].tag = "[-H_VALUE-]";    tag_list[22].tag = "[-CURUSER-]";    tag_list[23].tag = "[-CPASSWD-]";    tag_list[24].tag = "[-VERTICAL-]";    tag_list[25].tag = "[-RECORD-]";    tag_list[26].tag = "[-OCXP-]";    tag_list[27].tag = "[-FLASH-]";    tag_list[25].value = language_section_main [ language_selected -1 ][ L_ID_MAIN_RECORD ];    tag_list[26].value = language_section_main [ language_selected -1 ][ L_ID_MAIN_OCXP ];    tag_list[27].value = language_section_main [ language_selected -1 ][ L_ID_MAIN_FLASH ];    tag_list[28].tag = "[-CONTROL-]";    tag_list[30].tag = "[-FRVALUE-]";    tag_list[31].tag = "[-FULLSCR-]";    tag_list[32].tag = "[-CLEANALR-]";    tag_list[33].tag = "[-MD1-]";    tag_list[34].tag = "[-MD2-]";    tag_list[35].tag = "[-MD3-]";    tag_list[36].tag = "[-MJPEG-]";    GetVarFromFile (MOTION_CONFIG_PATH, "Detection1", md_tmp, "0");    sprintf(md1, "%s", 0==atoi(md_tmp)?"disabled":"");    tag_list[33].value = md1;    GetVarFromFile (MOTION_CONFIG_PATH, "Detection2", md_tmp, "0");    sprintf(md2, "%s", 0==atoi(md_tmp)?"disabled":"");    tag_list[34].value = md2;    GetVarFromFile (MOTION_CONFIG_PATH, "Detection3", md_tmp, "0");    sprintf(md3, "%s", 0==atoi(md_tmp)?"disabled":"");    tag_list[35].value = md3;    GetVarFromFile (VIDEO_CONFIG_PATH, "Mode", md_tmp, "1");    sprintf(mjpeg, "%s", 2==atoi(md_tmp)?"/jpeg":"");    tag_list[36].value = mjpeg;    tag_list[31].value = language_section_main [ language_selected -1 ][ L_ID_MAIN_FULLSCR ];    tag_list[32].value = language_section_main [ language_selected -1 ][ L_ID_MAIN_CLEANALR ];    //tag_list[31].tag = "[-ALMPORT-]";    if (NULL== GetVarFromFile (VIDEO_CONFIG_PATH, "FrameRate", tag30, "6"))        strcpy(tag30, "6");    sprintf(tag30_, "%d", atoi(tag30)*5 );    tag_list[30].value = tag30_;    //if (NULL== GetVarFromFile (VIDEO_CONFIG_PATH, "FrameRate", tag31, "22"))    //    strcpy(tag31, "22");    if (NULL== GetVarFromFile (INFO_CONFIG_PATH, "id", tag12, "BLOOM-TECH"))        strcpy(tag12, "BLOOM-TECH");    tag_list[12].value = tag12;    if (NULL == GetVarFromFile (INFO_CONFIG_PATH, "remark", tag13, "BLOOM-TECH "))        strcpy(tag13, "BLOOM-TECH ");    tag_list[13].value = tag13;    get_sd_space(&sd_space,&sd_free);    sprintf(tag14, "%d", sd_space);    tag_list[14].value = tag14;    tag_list[15].value = cgi_SOFTWARE_VERSION;    GetVarFromFile (VIDEO_CONFIG_PATH, "rtsp_port", tag16, "554");    GetVarFromFile (VIDEO_CONFIG_PATH, "control_port", tag17, "21");    GetVarFromFile (IMAGE_CONFIG_PATH, "SA7113_Brightness", tag18, "152");    GetVarFromFile (IMAGE_CONFIG_PATH, "SA7113_Contrast", tag19, "72");    GetVarFromFile (IMAGE_CONFIG_PATH, "SA7113_Saturation", tag20, "72");    GetVarFromFile (IMAGE_CONFIG_PATH, "SA7113_Hue", tag21, "0");    tag_list[16].value = tag16;    tag_list[17].value = tag17;    tag_list[18].value = tag18;    tag_list[19].value = tag19;    tag_list[20].value = tag20;    tag_list[21].value = tag21;    tag_list[22].value = cur_session_data.username;    tag_list[23].value = cur_session_data.password;    GetVarFromFile (REVERSAL_CFG, "VideoReversal", tag24, "0");    if (atoi(tag24) == 1)        tag_list[24].value = "True";    else        tag_list[24].value = "False";    if ( auth < 2 )        strcpy(tag28, ".EnabledControl=False");    else        strcpy(tag28, "");    tag_list[28].value = tag28;    cgiHeaderContentType("text/html");    //printf("username:%s\n", cur_session_data.username);    //printf("password:%s\n", cur_session_data.password);    buffer = read_template(MAIN_TEMPLATE);    if (buffer == NULL)    {        fprintf(cgiOut, "Warning: Can't read template file: %s.<br />\n",MAIN_TEMPLATE);        free(buffer);        free(tag_list);        return -1;    }    //parse_template(& buffer, tag_list, 28);    //fprintf(cgiOut, "%s", buffer);    memcpy ( _buffer, buffer, strlen ( buffer ));    for ( i = 0; i<37; i++ )        StringReplace(_buffer, (char *)tag_list[i].tag, (char *)tag_list[i].value);    //i=0;    //while (i< strlen (_buffer))    //{        //fprintf(cgiOut, "%s", _buffer + i);        //strncpy (mtmp, _buffer +i, 256 );        //fprintf(cgiOut, "%s", mtmp);        //i = i +256;    //}    fprintf(cgiOut, "%s", _buffer);    free(buffer);    free(tag_list);    return 0;}int get_sd_space(long int * total,long int * remain){    FILE *fd;    long int kcout,used,available,use_rate;    int ret,found = 0;    char get_name[32],path[64];    system("df>sdtmp.txt");    fd = fopen("sdtmp.txt","r");    if (fd < 0)    {        *total = 0;        *remain = 0;        return -1;    }    while (feof(fd) == 0)    {        ret = fscanf(fd,"%s %d %d %d %d%% %s",get_name,&kcout,&used,&available,&use_rate,path);        if (ret == 0)            fprintf(stderr,"fscanf not read\n");        if(strcmp("/dev/cpesda",get_name)== 0)        {            found = 1;            break;        }    }    fclose(fd);    unlink("sdtmp.txt");    if(total == NULL || remain == NULL)        return -1;    else    {        if(found)        {            *total = kcout;            *remain = available;        }        else        {            *total = 0;            *remain = 0;		}    }    return 0;}

⌨️ 快捷键说明

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