You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
170 lines
5.6 KiB
170 lines
5.6 KiB
<!doctype html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Информация</title>
|
|
<link href="style.css" rel="stylesheet" type="text/css">
|
|
<link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png">
|
|
<link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.png">
|
|
<link rel="icon" type="image/png" sizes="16x16" href="favicon-16x16.png">
|
|
<meta name="msapplication-TileColor" content="#da532c">
|
|
<meta name="theme-color" content="#ffffff">
|
|
</head>
|
|
|
|
<body id="body">
|
|
|
|
<div id="containerinf">
|
|
|
|
<div class="topnav" ;id="header" >
|
|
<h3>ESP-Домашний сервер</h3>
|
|
</div>
|
|
<div class="top2">
|
|
|
|
<nav1><a href="index.html" title="главное меню">Главное меню</a></nav1>
|
|
<nav1><a href="akva.html" title="информация">Аквариумы</a></nav1>
|
|
<nav1><a href="akva1.html" title="информация">Аквариум-1</a></nav1>
|
|
<nav1><a href="akva2.html" title="информация">Аквариум-2</a></nav1>
|
|
<nav1><a href="akva3.html" title="информация">Аквариум-3</a></nav1>
|
|
<nav1><a href="akvadat.html" title="информация">Данные</a></nav1>
|
|
<nav1><a href="akvagraf.html" title="информация">График температур</a></nav1>
|
|
</div>
|
|
|
|
<div style="text-align: center;">
|
|
|
|
<div id="contentinfo">
|
|
<h1>Аквариум </h1>
|
|
|
|
|
|
|
|
<div>
|
|
<font size="3" color="#1E4486">таблица данных за сутки </font>
|
|
</div>
|
|
<div><font size="3" color="#1E4486">................................................... </font>
|
|
</div>
|
|
|
|
|
|
|
|
<table style="display: inline-block; color: #160B51; font-size: medium;" id="gable" >
|
|
<colgroup>
|
|
<col class="twenty" />
|
|
<col class="fourty" />
|
|
<col class="thirtyfive" />
|
|
<col class="twenty" />
|
|
<col class="twenty" />
|
|
<col class="twenty" />
|
|
<col class="twenty" />
|
|
<col class="twenty" />
|
|
<col class="twenty" />
|
|
<col class="twenty" />
|
|
</colgroup>
|
|
<tr>
|
|
<th onclick="sortTable(0)"><span class="glyphicon glyphicon-sort"></span>  Time</th>
|
|
<th onclick="sortTable(1)"><span class="glyphicon glyphicon-sort"></span>  temperatura1</th>
|
|
<th onclick="sortTable(2)"><span class="glyphicon glyphicon-sort"></span>  temperatura2</th>
|
|
<th onclick="sortTable(3)"><span class="glyphicon glyphicon-sort"></span>  temperatura3</th>
|
|
<th onclick="sortTable(4)"><span class="glyphicon glyphicon-sort"></span>  light1</th>
|
|
<th onclick="sortTable(5)"><span class="glyphicon glyphicon-sort"></span>  light2</th>
|
|
<th onclick="sortTable(6)"><span class="glyphicon glyphicon-sort"></span>  light3</th>
|
|
<th onclick="sortTable(7)"><span class="glyphicon glyphicon-sort"></span>  fan1</th>
|
|
<th onclick="sortTable(8)"><span class="glyphicon glyphicon-sort"></span>  fan2</th>
|
|
<th onclick="sortTable(9)"><span class="glyphicon glyphicon-sort"></span>  fan3</th>
|
|
</tr>
|
|
</table>
|
|
|
|
|
|
</div>
|
|
<p class="packet"> <span id="tdata"></span></p>
|
|
</div>
|
|
|
|
|
|
<script type="text/javascript">
|
|
var tabl=0;
|
|
var webSocket;
|
|
connectWebSocket();
|
|
function connectWebSocket() {
|
|
webSocket = new WebSocket('ws://' + window.location.hostname + '/ws');
|
|
|
|
webSocket.onopen = function(event) {//реакция на подключение вебсекета
|
|
console.log('WebSocket connected');
|
|
};
|
|
|
|
webSocket.onmessage = function(event) {//реакция на данные
|
|
var tabd=event.data;
|
|
|
|
|
|
|
|
if(isJsonString(tabd)==1)
|
|
{var data = JSON.parse(event.data);//
|
|
if (data.id === '77') {
|
|
};
|
|
if (data.id === 'akva') {
|
|
|
|
};
|
|
|
|
|
|
}
|
|
else
|
|
{
|
|
if(tabl==0)
|
|
{
|
|
console.log("readings", event.data);
|
|
re = event.data.split("\n");
|
|
console.log(re);
|
|
var data=[];
|
|
tabl=1;
|
|
for(var i = 0; i < re.length-1; i++) {
|
|
data[i] = JSON.parse(re[i]);
|
|
console.log("data", data);
|
|
}
|
|
append_json(data);
|
|
}
|
|
//this function appends the json data to the table 'gable'
|
|
function append_json(data){
|
|
var table = document.getElementById('gable');
|
|
|
|
data.forEach(function(object) {
|
|
var tr = document.createElement('tr');
|
|
tr.innerHTML = '<td>' + object.timakv1 + '</td>' +
|
|
'<td>' + object.tempakv1 + '</td>' +
|
|
'<td>' + object.tempakv2 + '</td>' +
|
|
'<td>' + object.tempakv3 + '</td>' +
|
|
'<td>' + object.light1 + '</td>'+
|
|
'<td>' + object.light2 + '</td>'+
|
|
'<td>' + object.light3 + '</td>'+
|
|
'<td>' + object.fan1 + '</td>'+
|
|
'<td>' + object.fan2 + '</td>'+
|
|
'<td>' + object.fan3 + '</td>'
|
|
table.appendChild(tr);
|
|
});
|
|
}
|
|
}
|
|
};
|
|
webSocket.onclose = function(event) {//реакция на отключение вебсекета
|
|
console.log('WebSocket disconnected');
|
|
var messageElement = document.getElementById('message');
|
|
messageElement.innerHTML ='WebSocket disconnected. Reconnecting...';
|
|
setTimeout(connectWebSocket, 2000);
|
|
setTimeout(function() { messageElement.innerHTML = ''; }, 5000);
|
|
};
|
|
webSocket.onerror = function(event) {
|
|
console.error('WebSocket error:', event);
|
|
};
|
|
}
|
|
|
|
function isJsonString(str) {//проверка строки на json
|
|
try {
|
|
JSON.parse(str);
|
|
} catch (e) {
|
|
|
|
return false;
|
|
|
|
}
|
|
console.log("isJsonString", true);
|
|
return true;
|
|
}
|
|
|
|
|
|
|
|
</script>
|
|
</body>
|
|
</html> |