html+js+cgi

来源:互联网 发布:手机淘宝改好评步骤 编辑:程序博客网 时间:2024/05/29 05:54
<!DOCTYPE HTML><html><head> <title>统计分析</title>  <script type="text/javascript"src="tongjifenxi.js"></script> <script type="text/javascript">  function altRows(id){    if(document.getElementsByTagName){          var table = document.getElementById(id);          var rows = table.getElementsByTagName("tr");         for(i = 0; i < rows.length; i++){                      if(i % 2 == 0){                rows[i].className = "evenrowcolor";            }else{                rows[i].className = "oddrowcolor";            }              }    }} window.onload=function(){     altRows('alternatecolor');var counts;counts=0;arr = new Array("全部波形","三相电压","三相电流","A相电压","B相电压","C相电压","N相电压","A相电流","B相电流","C相电流","N相电流");    counts=arr.length;  var i;  for (i=0;i < counts; i++)      {        document.form1.sel.options[i] = new Option(arr[i],i);      }}</script><link rel="stylesheet" type="text/css" href="layout.css"><style type="text/css">#workingArea {  position:absolute;   margin-left:10px;  /* top:160px; */  top:10px;  bottom:5px;   left:0;   overflow:auto;   background-color:white;  width:740px;  border-right:1px solid #000040;  border-collapse: collapse; }</style><style type="text/css">table.altrowstable {    font-family: verdana,arial,sans-serif;    font-size:11px;    color:#333333;    border-width: 1px;    border-color: #a9c6c9;    border-collapse: collapse;}table.altrowstable th {    border-width: 1px;    padding: 4px;    border-style: solid;    border-color: #a9c6c9;}table.altrowstable td {    border-width: 1px;    padding: 4px;    border-style: solid;    border-color: #a9c6c9;}.oddrowcolor{    background-color:#d4e3e5;}.evenrowcolor{    background-color:#c3dde0;}</style></head><body><img src="logo.gif" alt="" style="position:absolute;margin-top:0px;margin-left:0px;">    <div id="main">        <div id="title">            <font id="title_text">&nbsp;EFM9000系列后台管理程序</font>        </div>        <div id="head">            <span class="goto">                <a href="rtd.html">实时数据</a>            </span>            <span class="goto">                <a href="elec_real.html">电能监测</a>            </span>            <span class="goto">                <a href="Har_data.html">谐波数据</a>            </span>            <span class="goto">                <a href="flicker.html">波动与闪变</a>            </span>              <span class="goto">                                                <a href="unbalance.html">三相不平衡</a>                </span>               <span class="goto">                                                <a href="vol_wave.html">波形显示</a>                </span>             <span class="goto" >                <a href="DIO.html">开入开出</a>            </span>           <span class="goto"style="background-color:#33cc33;" >                <a href="set.html">系统设置</a>            </span>            <span class="goto" >                <a href="historydb.html">分析数据</a>            </span>        </div>        <div style="position:relative;width:930px; height:420px; background-color:#33cc33; left:0px;top:100px; border:5px  #33cc33; ">           <div id="head2">               <span class="goto2">                  <a href="set.html">测量设置</a>              </span>              <span class="goto2">                  <a href="sysset.html">通信设置</a>              </span>               <span class="goto2">                  <a href="multirate.html">复费率设置</a>              </span>              <span class="goto2">                  <a href="clear_power.html">电度清零</a>              </span>                  <span class="goto2">                  <a href="applyset.html">统计与录波</a>              </span>              <span class="goto2">                  <a href="pqmdb.html">事件记录</a>              </span>              <span class="goto2"style="background-color:#33cc33;" >                  <a href="tongjifenxi.html">统计分析</a>              </span>                    </div>                   </div>        <div style="position:absolute;clear:both;width:770px;top:135px;height:440px;background:white;left:20px;border-radius:10px;">            <div id='workingArea'>                        <table border='2' class="altrowstable" id="alternatecolor">                 <tr>                <th colspan='1'> No. </th>                <th colspan='1'> Type </th>                <th colspan='1'> Avr </th>                <th colspan='1'> Max </th>                <th colspan='1'> Min </th>                </tr>                <tr>                <td style='width:50px;'  align='center'>1</td>                <td style='width:150px;' align='center'>A相频率</td>                <td style='width:150px;' id="avr1" align='center'></td>                <td style='width:150px;' id="max1" align='center'></td>                <td style='width:150px;' id="min1" align='center'></td>                </tr>                <tr>                <td  align='center'>2</td>                <td  align='center'>B相频率</td>                <td  id="avr2" align='center'></td>                <td  id="max2" align='center'></td>                <td  id="min2" align='center'></td>                </tr>                <tr>                <td  align='center'>3</td>                <td  align='center'>C相频率</td>                <td  id="avr3" align='center'></td>                <td  id="max3" align='center'></td>                <td  id="min3" align='center'></td>                </tr>                <tr>                <td  align='center'>4</td>                <td  align='center'>半波有效值a1</td>                <td  id="avr4" align='center'></td>                <td  id="max4" align='center'></td>                <td  id="min4" align='center'></td>                </tr>                <tr>                <td   align='center'>5</td>                <td   align='center'>半波有效值a2</td>                <td   id="avr5" align='center'></td>                <td   id="max5" align='center'></td>                <td   id="min5" align='center'></td>                </tr>              <tr>             <td><form name="form1"></td>             <td>                <select name="sel" id="sel"onchange="tjfx_change()"style="position:relative;width:80px;height:20px;left:20px;top:5px;border:0px;background-color:white;color:black;">                <option value="0"selected>— — —</option>               <option value="1">1日</option>               <option value="2">2日</option>               <option value="3">3日</option>               <option value="4">4日</option>               <option value="5">5日</option>               <option value="6">6日</option>               <option value="7">7日</option>                <option value="8">8日</option>               <option value="9">9日</option>               <option value="10">10日</option>               <option value="11">11日</option>               <option value="12">12日</option>               <option value="13">13日</option>               <option value="14">14日</option>               <option value="15">15日</option>               <option value="16">16日</option>               <option value="17">17日</option>                <option value="18">18日</option>               <option value="19">19日</option>               <option value="20">20日</option>               <option value="21">21日</option>               <option value="22">22日</option>               <option value="23">23日</option>               <option value="24">24日</option>               <option value="25">25日</option>               <option value="26">26日</option>               <option value="27">27日</option>                <option value="28">28日</option>               <option value="29">29日</option>               <option value="30">30日</option>               <option value="31">31日</option>               <option value="32"></option>               <option value="33"></option>                     </select>             </td>             </tr>            </div>            <div style="position:absolute;clear:both;width:160px;top:10px;height:40px;background:black ;left:800px; border-radius:0px;">            </div>        </div>    </body></html>/***CGI***/#include <sys/types.h>#include <sys/socket.h>#include <linux/in.h>#include <linux/un.h>#include <string.h>#include <signal.h>#include <stdio.h>#include <stdlib.h>#include <errno.h>#include <unistd.h>#include <sys/ioctl.h>#include <sys/select.h>#include <sys/time.h>#include "addr.h"#define db_max 1000#define port 60001int socket_fd;char modbus_buf[256];float host_to_client(short in,short gene){float out;float muti;muti=32768/gene;out=in/muti;return out;}short client_to_host(float in,short gene){short out;float muti;muti=32768/gene;out=in*muti;return out;}int modbus_tcp_transfer(char *buf){int nwrite, nreads, ret;char sendbuf[12];struct sockaddr_in server_addr;fd_set readfd;struct timeval timeout;sendbuf[0]=0;sendbuf[1]=0;sendbuf[2]=0;sendbuf[3]=0;sendbuf[4]=0;sendbuf[5]=6;sendbuf[6]=buf[0];sendbuf[7]=buf[1];sendbuf[8]=buf[2];sendbuf[9]=buf[3];sendbuf[10]=buf[4];sendbuf[11]=buf[5];if((socket_fd=socket(AF_INET,SOCK_STREAM,0))==-1){close(socket_fd);return -1;}bzero(&server_addr, sizeof(server_addr));server_addr.sin_family=AF_INET;server_addr.sin_port=htons(port);server_addr.sin_addr.s_addr=inet_addr("127.0.0.1");if(connect(socket_fd,(struct sockaddr *)(&server_addr),sizeof(struct sockaddr))==-1){close(socket_fd);return -1;}timeout.tv_sec=1;timeout.tv_usec=0;FD_ZERO(&readfd);FD_SET(socket_fd,&readfd);if((nwrite=write(socket_fd,sendbuf,12))==-1){close(socket_fd);return -1;}ret=select(socket_fd+1,&readfd,NULL,NULL,&timeout);switch(ret){case -1:close(socket_fd);return -1;break;case 0:close(socket_fd);return -1;break;default:if(FD_ISSET(socket_fd,&readfd)){if((nreads=read(socket_fd,buf,256))==-1){close(socket_fd);return -1;}close(socket_fd);return 0;}break;}}void create_modbus(char a1,char a2,char a3,char a4,char a5,char a6){modbus_buf[0]=a1;modbus_buf[1]=a2;modbus_buf[2]=a3;modbus_buf[3]=a4;modbus_buf[4]=a5;modbus_buf[5]=a6;}int main(int argc,char *argv[]){  int ret=0;  unsigned char float4char[4];  int i,k;  char *data;  float f_tmp[66];  int page1,page2,page3;  char str1[5],str2[5],str3[5];  data=getenv("QUERY_STRING");  if(sscanf(data,"page1=%[^&]&page2=%[^&]&page3=%[^&]&", str1,str2,str3)!=3) {  exit(EXIT_FAILURE);  }  page1=atoi(str1);  page2=atoi(str3);  page3=atoi(str3);  create_modbus(1,3,ModbusAddrInfo[page1].BaseAddr>>8,ModbusAddrInfo[page1].BaseAddr&0xff,0,44);  if((ret=modbus_tcp_transfer(modbus_buf))==-1)   exit(EXIT_FAILURE);  k=0;  for(i=0;i<22;i++)  {      float4char[3]=modbus_buf[k+9]; //9    float4char[2]=modbus_buf[k+10];  //10    float4char[1]=modbus_buf[k+11];  //11    float4char[0]=modbus_buf[k+12];  //12    f_tmp[i]=*((float *)float4char);       //save    k=k+4;  }  create_modbus(1,3,ModbusAddrInfo[page2].BaseAddr>>8,ModbusAddrInfo[page2].BaseAddr&0xff,0,44);  if((ret=modbus_tcp_transfer(modbus_buf))==-1)   exit(EXIT_FAILURE);  k=0;  for(i=0;i<22;i++)  {      float4char[3]=modbus_buf[k+9]; //9    float4char[2]=modbus_buf[k+10];  //10    float4char[1]=modbus_buf[k+11];  //11    float4char[0]=modbus_buf[k+12];  //12    f_tmp[i+22]=*((float *)float4char);       //save    k=k+4;  }  create_modbus(1,3,ModbusAddrInfo[page3].BaseAddr>>8,ModbusAddrInfo[page3].BaseAddr&0xff,0,44);  if((ret=modbus_tcp_transfer(modbus_buf))==-1)   exit(EXIT_FAILURE);  k=0;  for(i=0;i<22;i++)  {      float4char[3]=modbus_buf[k+9]; //9    float4char[2]=modbus_buf[k+10];  //10    float4char[1]=modbus_buf[k+11];  //11    float4char[0]=modbus_buf[k+12];  //12    f_tmp[i+44]=*((float *)float4char);       //save    k=k+4;  }  printf("Content-Type:text/html\n\n");  printf("%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f|%.2f",      f_tmp[21],f_tmp[0],f_tmp[1],f_tmp[2],f_tmp[3],f_tmp[4],f_tmp[5],f_tmp[6],f_tmp[7],f_tmp[8],f_tmp[9],f_tmp[10],      f_tmp[11],f_tmp[12],f_tmp[13],f_tmp[14],f_tmp[15],f_tmp[16],f_tmp[17],f_tmp[18],f_tmp[19],f_tmp[20],      f_tmp[43],f_tmp[22],f_tmp[23],f_tmp[24],f_tmp[25],f_tmp[26],f_tmp[27],f_tmp[28],f_tmp[29],f_tmp[30],      f_tmp[31],f_tmp[32],f_tmp[33],f_tmp[34],f_tmp[35],f_tmp[36],f_tmp[37],f_tmp[38],f_tmp[39],f_tmp[40],      f_tmp[41],f_tmp[42],f_tmp[65],f_tmp[44],f_tmp[45],f_tmp[46],f_tmp[47],f_tmp[48],f_tmp[49],f_tmp[50],      f_tmp[51],f_tmp[52],f_tmp[53],f_tmp[54],f_tmp[55],f_tmp[56],f_tmp[57],f_tmp[58],f_tmp[59],f_tmp[60],      f_tmp[61],f_tmp[62],f_tmp[63],f_tmp[64]);  return 0;}
0 0
原创粉丝点击