timing.c
上传用户:sxdewei
上传日期:2014-06-02
资源大小:67k
文件大小:11k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. #include <fcntl.h>
  5. #include <getopt.h>
  6. #include <errno.h>
  7. #include <sys/ioctl.h>
  8. #include <linux/config.h>
  9. #include <netinet/in.h>
  10. #include <arpa/inet.h>
  11. #include "cgivars.h"
  12. #include "htmllib.h"
  13. #include "config_phase.h"
  14. #include "sysconf.h"
  15. #define DEBUG        0
  16. #define ID_FIXSET                        136
  17. #define ID_FIXTM                          137
  18. #define ID_FIXTY                          138
  19. #define ID_SMTPSENDSEL             139
  20. #define ID_SMTPSENDADDR          140
  21. #define ID_FTPSENDSEL               142
  22. #define ID_FTPSENDDIR               143
  23. #define ID_FIXSVFLG                    145
  24. #define ID_FIXSDTM                     146
  25. static config_item ** items;
  26. static int config_list[] = {136,137,138,139,140,142,143,145,146};
  27. static char *config_name[] = {"FIXSET","FIXTM","FIXTY","SMTPSENDSEL","SMTPSENDADDR","FTPSENDSEL","FTPSENDDIR",
  28.                                        "FIXSVFLG","FIXSDTM"};
  29. void timing(char **postvars, int form_method)
  30. {
  31. int config_num = sizeof(config_list)/sizeof(int);
  32. int i;
  33. int r_fd, w_fd;
  34. int temp_int;
  35. char *temp_string;
  36. char t_start[10], t_end[10], t_set[20];
  37. char java[] ="
  38. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">rn
  39. <HTML><HEAD>
  40. <META http-equiv=Pragma content=no-cache>
  41. <META http-equiv=Content-Type content="text/html; charset=gb2312">
  42. <SCRIPT language=JavaScript src="js/javascript.js"></SCRIPT>
  43. <STYLE type=text/css>BODY {
  44. FONT-SIZE: 10pt; FONT-FAMILY: Arial
  45. }
  46. TD {
  47. FONT-SIZE: 10pt; FONT-FAMILY: Arial
  48. }
  49. FORM {
  50. FONT-SIZE: 10pt; FONT-FAMILY: Arial
  51. }
  52. OPTION {
  53. FONT-SIZE: 10pt; FONT-FAMILY: Arial
  54. }
  55. TEXTAREA {
  56. FONT-SIZE: 10pt; FONT-FAMILY: Arial
  57. }
  58. P {
  59. FONT-SIZE: 10pt; FONT-FAMILY: Arial
  60. }
  61. OL {
  62. FONT-SIZE: 10pt; FONT-FAMILY: Arial
  63. }
  64. INPUT {
  65. FONT-SIZE: 10pt; FONT-FAMILY: Arial
  66. }
  67. SELECT {
  68. FONT-SIZE: 10pt; FONT-FAMILY: Arial
  69. }
  70. .style1 {
  71. FONT-WEIGHT: bold; FONT-SIZE: 14pt
  72. }
  73. </STYLE>
  74. <META content="MSHTML 6.00.6000.16414" name=GENERATOR></HEAD>";
  75. char jsp[] = "
  76.   <script language=JavaScript>
  77.   <!-- 
  78.   function isTime(str)
  79.   {
  80. var   reg=/^(\d{2})\:(\d{2})$/  
  81. if(arr=str.match(reg)){   
  82. if(parseInt(arr[1])>23){return false;}
  83. if(parseInt(arr[2])>59){return false;}
  84. }else
  85. {
  86.   return false;
  87. }
  88. return true;
  89.   }
  90.   function checkTime()
  91.   {
  92.   var element ;
  93.   
  94.   element = document.getElementById('T_START');
  95.   if( isTime(element.value) == false){
  96.  alert("定时操作时间格式不对! ");
  97.  return false;
  98. }
  99.  element = document.getElementById('T_END');
  100.    if( isTime(element.value) == false){
  101.    alert("定时操作时间格式不对! ");
  102.    return false;
  103.   }
  104.   
  105.   return true;
  106. }
  107.    
  108. //--> 
  109. </script> ";
  110. //r_fd = open_read_fifo();
  111. items = init_config_item(items, config_num, config_list);
  112. printf("%sn", java);
  113. printf("%sn",jsp);
  114. // If we got post, write it into flash
  115. if(form_method == POST)
  116. {
  117. GetConfValues(config_list, items, config_num);
  118. memset(t_set, 0, 20);
  119. for (i=0; postvars[i]; i+= 2)
  120. {
  121. if(!strcmp(postvars[i], "T_START"))
  122. {
  123. memcpy(t_set, postvars[i+1], 5);
  124. t_set[5] = '-'; 
  125. }
  126. if(!strcmp(postvars[i], "T_END"))
  127. {
  128. memcpy(t_set+6, postvars[i+1], 5);
  129. }
  130. }
  131. item_update(ID_FIXTM, items, config_num, t_set);
  132. if(SaveConfig(postvars, items, config_list, config_name, config_num))
  133. {/*
  134. w_fd = open_write_fifo();
  135. notify_config(w_fd);
  136. close_write_fifo(w_fd);
  137. read_fifo(r_fd);
  138. */
  139. }
  140. }
  141. GetConfValues(config_list, items, config_num);
  142. printf("<BODY leftMargin=30 topMargin=24 rightMargin=30>n");
  143. printf("<P><SPAN class=style1>定时操作</SPAN></P><TABLE width="100%"><TBODY>n");
  144.    printf("<TR><TD noWrap><FORM name=timing action="/timing.cgi" method=post target=msgFrame>n");
  145. printf("<TABLE style="BORDER-COLLAPSE: collapse" borderColor=#dae3eb cellSpacing=0 cellPadding=0 width="100%" border=1>n");
  146.        printf("<TBODY><TR bgColor=#cccccc><TD colSpan=3><STRONG>定时操作</STRONG></TD></TR>n");
  147. //FIXSET
  148. printf(" <TR><TD noWrap width="15%"> <DIV align=left>启用定时操作</DIV></TD>n");
  149. printf("<TD colSpan=2><SELECT id=en_timerA onchange="check_disable('A',this.value);" size=1 name=FIXSET>n");
  150. if(temp_string = getdata(ID_FIXSET, items, config_num))
  151. {
  152. temp_int = atoi(temp_string);
  153. if( 1 == temp_int )
  154. {
  155. printf("<OPTION value="1" selected>是</OPTION>n");
  156. printf("<OPTION value="0">否</OPTION></SELECT></TD></TR>n");
  157. }
  158. else
  159. {
  160. printf("<OPTION value="1">是</OPTION>n");
  161. printf("<OPTION value="0" selected>否</OPTION></SELECT></TD></TR>n");
  162. }
  163. }
  164.             
  165.        //FIXTM 
  166.        printf("<TR><TD noWrap rowSpan=2>时间 (hh:mm)</TD><TD noWrap align=middle><DIV align=left>n");
  167. if(temp_string = getdata(ID_FIXTM, items, config_num))
  168. {
  169. memset(t_start, 0, 10);
  170. memset(t_end, 0, 10);
  171. memcpy(t_start, temp_string, 5);
  172. memcpy(t_end, temp_string+6, 5);
  173. printf("<INPUT  maxLength=8 size=9 name=T_START value=%s> &nbsp;—&nbsp;n", t_start);
  174. printf("<INPUT  maxLength=8 size=9 name=T_END value=%s></DIV></TD> n", t_end);
  175. printf("<TD noWrap align=middle width="36%"><DIV align=left>n");
  176.              printf("<INPUT disabled maxLength=8 size=9 name=Schedule_Action_Start_2> &nbsp;—&nbsp;n");
  177.               printf("<INPUT disabled maxLength=8 size=9 name=Schedule_Action_End_2> </DIV></TD></TR>n");
  178.               printf("<TR><TD noWrap align=middle><DIV align=left>n");
  179.              printf("<INPUT disabled maxLength=8 size=9 name=Schedule_Action_Start_3> &nbsp;—&nbsp;n");
  180.               printf("<INPUT disabled maxLength=8 size=9 name=Schedule_Action_End_3> </DIV></TD>n");
  181.        printf("<TD noWrap align=middle><DIV align=left>n");
  182.              printf("<INPUT disabled maxLength=8 size=9 name=Schedule_Action_Start_4> &nbsp;—&nbsp;n");
  183.               printf("<INPUT disabled maxLength=8 size=9 name=Schedule_Action_End_4> </DIV></TD></TR>n");
  184. }
  185. //FIXTY
  186. printf("<tr><TD noWrap width="15%"><DIV align=left>报警类型</DIV></TD>n");
  187. printf("<TD colSpan=2><SELECT id=en_timerA0 onchange="check_disable('A',this.value);" size=1  name=FIXTY>n");   
  188. if(temp_string = getdata(ID_FIXTY, items, config_num))
  189. {
  190. temp_int = atoi(temp_string);
  191. if( 0 == temp_int )
  192. {
  193. printf("<OPTION value="0" selected>图片</OPTION> n");
  194. printf("<OPTION value="1">视频</OPTION></SELECT> </TD> </tr>n");
  195. }
  196. else
  197. {
  198. printf("<OPTION value="0">图片</OPTION> n");
  199. printf("<OPTION value="1" selected>视频</OPTION></SELECT> </TD> </tr>n");
  200. }
  201. }
  202.           
  203.        //FTPSENDSEL
  204.        printf("<TR><TD noWrap>传送到FTP服务器 </TD> <TD noWrap align=left colspan=2> <DIV align=left>n");
  205. printf("<SELECT id=ftp_send_timerA size=1 name=FTPSENDSEL>n");
  206. if(temp_string = getdata(ID_FTPSENDSEL,  items, config_num))
  207. {
  208. temp_int = atoi(temp_string);
  209. if( 0 == temp_int )
  210. {
  211. printf("<OPTION value="0" selected>否</OPTION> n");
  212. printf("<OPTION value="1">是</OPTION></SELECT> </DIV></TD><TD noWrap></TD><TD noWrap></TD></TR>n");
  213. }
  214. else
  215. {
  216. printf("<OPTION value="0">否</OPTION> n");
  217. printf("<OPTION value="1" selected>是</OPTION></SELECT> </DIV></TD><TD noWrap></TD><TD noWrap></TD></TR>n");
  218. }
  219. }
  220.            
  221.        //FTPSENDDIR
  222.        printf(" <TR><TD noWrap>FTP目录: </TD> <TD align=left colspan=2>n");
  223. if(temp_string = getdata(ID_FTPSENDDIR,  items, config_num))
  224. printf("<INPUT id=ftp_timer_A0 maxLength=40 name=FTPSENDDIR size=40 value=%s></TD> <TD noWrap></TD><TD noWrap></TD></TR>n", temp_string);
  225.        else
  226.     printf("<INPUT id=ftp_timer_A0 maxLength=40 name=FTPSENDDIR size=40></TD> <TD noWrap></TD><TD noWrap></TD></TR>n");
  227.           
  228.           
  229.        //SMTPSENDSEL
  230.        printf("<TR><TD noWrap>发送邮件</TD> <TD align=left colspan=2><DIV align=left>n");
  231. printf("<SELECT id=timer_mail_select_A  name=SMTPSENDSEL  size=1> n");
  232. if(temp_string = getdata(ID_SMTPSENDSEL,  items, config_num))
  233. {
  234. temp_int = atoi(temp_string);
  235. if( 0 == temp_int )
  236. {
  237. printf("<OPTION value="0" selected>否</OPTION> n");
  238. printf("<OPTION value="1">是</OPTION></SELECT> </DIV></TD><TD noWrap></TD><TD noWrap></TD></TR>n");
  239. }
  240. else
  241. {
  242. printf("<OPTION value="0">否</OPTION> n");
  243. printf("<OPTION value="1" selected>是</OPTION></SELECT> </DIV></TD><TD noWrap></TD><TD noWrap></TD></TR>n");
  244. }
  245. }
  246.             
  247.        //SMTPSENDADDR
  248.        printf("<TR><TD noWrap>邮件接收者1</TD> <TD noWrap colSpan=2>n");
  249. if(temp_string = getdata(ID_SMTPSENDADDR,  items, config_num))
  250. printf("<INPUT id=Mail_Rcver1A maxLength=40 size=40 name=SMTPSENDADDR value=%s> </TD></TR>n", temp_string);
  251. else
  252. printf("<INPUT id=Mail_Rcver1A maxLength=40 size=40 name=SMTPSENDADDR> </TD></TR>n");
  253. // 2 no use
  254.        printf("<TR><TD noWrap>邮件接收者2</TD> <TD noWrap colSpan=2>n");
  255. printf("<INPUT id=Mail_Rcver2A disabled maxLength=40 size=40 name=nouse_SMTPSENDADDR> </TD></TR>n");
  256.             
  257.        //FIXSVFLG   
  258.        printf("<TR><TD noWrap>存储到SD卡</TD> <TD align=left colspan=2><DIV align=left>n");   
  259.        printf("<SELECT id=timer_cf_storageA disabled  size=1 name=FIXSVFLG>n");
  260. if(temp_string = getdata(ID_FIXSVFLG,  items, config_num))
  261. {
  262. temp_int = atoi(temp_string);
  263. if( 0 == temp_int )
  264. {
  265. printf("<OPTION value="0" selected>否</OPTION> n");
  266. printf("<OPTION value="1">是</OPTION></SELECT> </DIV></TD><TD noWrap colSpan=2></TD></tr>n");
  267. }
  268. else
  269. {
  270. printf("<OPTION value="0">否</OPTION> n");
  271. printf("<OPTION value="1" selected>是</OPTION></SELECT> </DIV></TD><TD noWrap colSpan=2></TD></tr>n");
  272. }
  273. }
  274.            
  275.        //FIXSDTM      
  276.        printf("<TR><TD noWrap>SD卡存储间隔(秒):</TD> <TD noWrap colSpan=2>n");   
  277.        if(temp_string = getdata(ID_FIXSDTM,  items, config_num))     
  278.         printf("<INPUT id=ftp_timer_A1 disabled  name=FIXSDTM size=9 value=%s></TD> <TD noWrap></TD><TD noWrap></TD></tr>n", temp_string);
  279. else
  280.               printf("<INPUT id=ftp_timer_A1 disabled  name=FIXSDTM size=9></TD> <TD noWrap></TD><TD noWrap></TD></tr>n");
  281. printf("</TBODY></TABLE><P align=left><INPUT type=submit value=应用 onclick="return checkTime();"><INPUT type=reset value=清除></P>n");
  282. printf("</FORM></TD></TR></TBODY></TABLE></BODY></HTML>n");
  283.       
  284. free_config_item(items, config_num);
  285. //close_read_fifo();
  286. }
  287. ////////////////////////////////////////////////////////////////////////////
  288. // Function: main
  289. ////////////////////////////////////////////////////////////////////////////
  290. int main(void)
  291. {
  292.     char **postvars = NULL;  // POST request data repository
  293.     char **getvars = NULL;   // GET request data repository
  294.     int form_method;         // POST = 1, GET = 0
  295.     // CGI part start here
  296.     adminCheck();
  297.     form_method = getRequestMethod();
  298.     if(form_method == POST)
  299.     {
  300.        // getvars = getGETvars();
  301.         postvars = getPOSTvars();
  302.     }
  303.     else if(form_method == GET)
  304.     {
  305.         getvars = getGETvars();
  306.     }
  307.     // CGI start here, set COM port
  308.     timing(postvars, form_method);
  309.     //htmlFooter();
  310.     cleanUp(form_method, getvars, postvars);
  311.     fflush(stdout);
  312.     exit(0);
  313. }  // end of main