html+js+cgi
2016-07-10 21:38
561 查看
<!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; 4000 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"> 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> 1469f <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 60001 int 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; }
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 在Windows 8.1的IE 11中屏蔽双击放大功能
- 最后一次说说闭包
- Ajax
- HTML5调用摄像头实例
- 2019年开发人员应该学习的8个JavaScript框架
- Powershell 创建炫丽美观的Html报表
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法