您的位置:首页 > Web前端 > JavaScript

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  html cgi javascript