123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559 |
- <!DOCTYPE html>
- <html class="x-admin-sm" style="overflow-y: hidden;">
- <head>
- <meta charset="UTF-8">
- <meta name="renderer" content="webkit">
- <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
- <meta name="viewport"
- content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi"/>
- <link rel="shortcut icon" href="https://osscold.baozhida.cn/favicon.ico">
- <link rel="bookmark" href="https://osscold.baozhida.cn/favicon.ico">
- <link rel="stylesheet" href="https://osscold.baozhida.cn/css/font.css">
- <link rel="stylesheet" href="https://osscold.baozhida.cn/css/xadmin.css">
- <link rel="stylesheet" href="https://osscold.baozhida.cn/layui/css/layui.css">
- <script type="text/javascript" src="https://osscold.baozhida.cn/layui/layui.js" charset="utf-8"></script>
- <script type="text/javascript" src="https://osscold.baozhida.cn/js/xadmin.js"></script>
- <script src="https://cdn.staticfile.org/jquery/3.4.0/jquery.min.js"></script>
- <script src="https://cdn.staticfile.org/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>
- <!-- 让IE8/9支持媒体查询,从而兼容栅格 -->
- <!--[if lt IE 9]>
- <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
- <script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
- <![endif]--></head>
- <body>
- <div class="layui-fluid">
- <div class="layui-row" id="tab_2">
- <div class="layui-row">
- <div id="tab_3">
- {{if eq $.Admin_Power.Power_DeviceSensor_Compensate_e 1}}
- <fieldset class="layui-elem-field layui-field-title" style="margin-top: 20px;">
- <legend>温湿度补偿参数</legend>
- </fieldset>
- <div class="layui-col-md7">
- <form class="layui-form" action="" lay-filter="O_example">
- <div class="layui-form-item">
- <div class="layui-inline">
- <label class="layui-form-label">温度补偿 ℃</label>
- <div class="layui-input-inline" style="width: 100px;">
- <input type="text" name="O_T" autocomplete="off" class="layui-input">
- </div>
- </div>
- </div>
- <div class="layui-form-item">
- <div class="layui-inline">
- <label class="layui-form-label">湿度补偿 %</label>
- <div class="layui-input-inline" style="width: 100px;">
- <input type="text" name="O_RH" autocomplete="off" class="layui-input">
- </div>
- </div>
- </div>
- <div class="layui-form-item" style="text-align: center;margin-top: 20px">
- <button type="submit" class="layui-btn layui-btn-normal" lay-submit=""
- lay-filter="O_add">配置参数
- </button>
- </div>
- </form>
- </div>
- {{end}}
- </div>
- </div>
- </div>
- </div>
- <script>
- //获取url中的参数
- function getQueryString(name) {
- var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
- var r = window.location.search.substr(1).match(reg);
- if (r != null)
- return decodeURIComponent(r[2]);
- return null;
- }
- function timestampToTime(timestamp) {
- var date = new Date(timestamp * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
- Y = date.getFullYear() + '-';
- M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
- D = date.getDate() + ' ';
- h = date.getHours() + ':';
- m = date.getMinutes() + ':';
- s = date.getSeconds();
- return Y + M + D + h + m + s;
- }
- function f_Device_Parameter_Del() {
- // console.log(getQueryString("Sn"),getQueryString("Id"))
- //
- $.ajax({
- type: 'POST',
- url: 'Device_Parameter_Del',//发送请求】
- data: {
- Sn: getQueryString("Sn"),
- Id: getQueryString("Id")
- },
- success: function (result) {
- console.log(result)
- //关闭当前frame
- parent.layer.close(parent.layer.getFrameIndex(window.name));
- parent.location.reload();
- // return false;
- }
- });
- }
- layui.use(['form', 'layer', "layedit"],
- function () {
- $ = layui.jquery;
- var form = layui.form,
- layer = layui.layer;
- var layedit = layui.layedit
- layedit.set({
- uploadImage: {
- url: '/UpFile' //接口url
- }
- });
- //构建一个默认的编辑器
- var index = layedit.build('T_text', {
- height: 580 //设置编辑器高度,
- });
- //监听提交
- form.on('submit(add)',
- function (data) {
- console.log("=== submit(add) ==");
- loading = layer.load(0, {
- shade: false,
- time: 99 * 1000
- });
- console.log(data);
- S_en = 0
- if (data.field.S_en != undefined) {
- S_en = 1
- }
- S_free = 0
- if (data.field.S_free != undefined) {
- S_free = 1
- }
- var T_sensor_list = [];
- T_sensor_list.push({
- "id": parseInt(Id),
- "name": data.field.S_name,
- "Tlower": parseFloat(data.field.S_Tlower),
- "Tupper": parseFloat(data.field.S_Tupper),
- "RHlower": parseFloat(data.field.S_RHlower),
- "RHupper": parseFloat(data.field.S_RHupper),
- "en": S_en,
- "free": S_free
- })
- $.ajax({
- type: 'POST',
- url: 'Pu_DeviceParameter_Sensor',//发送请求】
- data: {
- User_tokey: $.cookie('User_tokey'),
- SN: Sn,
- T_sensor_list: JSON.stringify(T_sensor_list)
- },
- success: function (result) {
- console.log(result)
- // return false;
- }
- });
- return false;
- });
- {{if eq $.Admin_Power.Power_DeviceSensor_Compensate_e 1}}
- //监听提交
- form.on('submit(O_add)',
- function (data) {
- console.log("=== submit(add) ==");
- loading = layer.load(0, {
- shade: false,
- time: 99 * 1000
- });
- var T_sompensate_list = [];
- T_sompensate_list.push({
- "id": parseInt(Id),
- "T": parseFloat(data.field.O_T),
- "RH": parseFloat(data.field.O_RH)
- })
- $.ajax({
- type: 'POST',
- url: 'Pu_DeviceParameter_Compensate',//发送请求】
- data: {
- User_tokey: $.cookie('User_tokey'),
- SN: Sn,
- T_sompensate_list: JSON.stringify(T_sompensate_list)
- },
- success: function (result) {
- console.log(result)
- // return false;
- }
- });
- setInterval(function(){
- $.ajax({
- type: 'POST',
- url: 'Pu_DeviceParameter_Compensate',//发送请求】
- data: {
- User_tokey: $.cookie('User_tokey'),
- SN: Sn,
- T_sompensate_list: JSON.stringify(T_sompensate_list)
- },
- success: function (result) {
- console.log(result)
- // return false;
- }
- });
- },1000);
- return false;
- });
- {{end}}
- // //监听指定开关
- // form.on('switch(switchTest)', function(data){
- // layer.msg('开关checked:'+ (this.checked ? 'true' : 'false'), {
- // offset: '6px'
- // });
- // layer.tips('温馨提示:请注意开关状态的文字可以随意定义,而不仅仅是ON|OFF', data.othis)
- // });
- //表单取值
- // layui.$('#LAY-component-form-getval').on('click', function(){
- // var data = form.val('example');
- // alert(JSON.stringify(data));
- // });
- var loading = layer.load(0, {
- shade: false,
- time: 99 * 1000
- });
- var timestamp_V = (new Date()) / 1000;
- var Sn = getQueryString("Sn")
- var Id = getQueryString("Id")
- $("#T_devName").html(getQueryString("Sn_name"))
- var websocket = null;
- var ok_websocket1 = false;
- var ok_websocket2 = false;
- function Timeout_1 (){
- //要执行的代码
- if(!ok_websocket1){
- layer.open({
- text:"连接失败",
- btn: '立即重新登录',
- content: "请退出账号重新登录!",
- yes: function(index, layero){
- //do something
- window.parent.parent.location.href ='../Login';
- layer.close(index); //如果设定了yes回调,需进行手工关闭
- }
- });
- }
- }
- setTimeout(Timeout_1,8000);//5秒后执行
- function Timeout_2 (){
- //要执行的代码
- if(!ok_websocket2){
- layer.open({
- text:"无响应",
- btn: '重新试试',
- content: "设备主机无响应,请重新试试,若有疑问请联系工作人员!",
- yes: function(index, layero){
- //do something
- layer.close(index); //如果设定了yes回调,需进行手工关闭
- }
- });
- }
- }
- setTimeout(Timeout_2,20000);//5秒后执行
- //判断当前浏览器是否支持WebSocket
- if ('WebSocket' in window) {
- websocket = new WebSocket("ws://"+window.location.host+"/ws/join?User_tokey="+$.cookie('User_tokey'));
- } else {
- alert('Dont support websocket')
- }
- console.log(getQueryString("Sn"))
- //连接发生错误的回调方法
- websocket.onerror = function () {
- console.log("error");
- };
- //连接成功建立的回调方法
- websocket.onopen = function () {
- console.log("open");
- send("{\"Sn\":\"" + getQueryString("Sn") + "\"}")
- };
- function f_Read_DeviceParameter() {
- console.log("Read_DeviceSensorParameter",getQueryString("Sn"))
- $.ajax({
- type: 'POST',
- url: 'Read_DeviceParameter',//发送请求
- data: {
- SN:getQueryString("Sn"),
- },
- success: function(result) {
- }
- });
- }
- //接收到消息的回调方法
- websocket.onmessage = function (event) {
- console.log(event.data)
- var obj = JSON.parse(event.data);
- console.log(obj.type)
- ok_websocket1 = true
- if(obj.Code == 200){
- f_Read_DeviceParameter()
- setTimeout(function(){f_Read_DeviceParameter()
- },500);
- setTimeout(function(){f_Read_DeviceParameter()
- },1000);
- setTimeout(function(){f_Read_DeviceParameter()
- },1500);
- }
- if (obj.sn != Sn) {
- return
- }
- if (obj.type == 0) {
- for (let i = 0; i < obj.sensor.length; i++) {
- if (Number(obj.sensor[i].id) == Number(Id)) {
- // T_en =false
- // if(obj.sensor[i].en == 1){
- // T_en =true
- // }
- // T_free =false
- // if(obj.sensor[i].free == 1){
- // T_free =true
- // }
- if (timestamp_V != obj.sensor[i].UT) {
- $("#T_t").html("温度:" + obj.sensor[i].T.toFixed(2) + "℃")
- $("#T_rh").html("湿度:" + obj.sensor[i].RH.toFixed(1) + "%")
- $("#T_Tlower").html("限制:" + obj.sensor[i].Tlower + "℃")
- $("#T_Tupper").html(obj.sensor[i].Tupper + "℃")
- $("#T_RHlower").html("限制:" + obj.sensor[i].RHlower + "%")
- $("#T_RHupper").html(obj.sensor[i].RHupper + "%")
- $("#T_time").html("更新时间:" + timestampToTime(obj.sensor[i].UT) + " 更新间隔:" + Math.abs(timestamp_V - obj.sensor[i].UT).toFixed(0) + "s")
- console.log(timestamp_V, obj.sensor[i].UT, " 更新间隔:" + (timestamp_V - obj.sensor[i].UT) + "s")
- timestamp_V = obj.sensor[i].UT
- }
- break
- }
- }
- }
- if (obj.type == 3) {
- ok_websocket2 = true
- switch (obj.msid % 10) {
- case 1:
- obj.base.devName
- form.val('example', {
- "S_sn": obj.sn
- , "S_devName": obj.base.devName
- });
- break
- case 2:
- ok_websocket2 = true
- for (let i = 0; i < obj.sensor.length; i++) {
- if (obj.sensor[i].id == Id) {
- T_en = false
- if (obj.sensor[i].en == 1) {
- T_en = true
- }
- T_free = false
- if (obj.sensor[i].free == 1) {
- T_free = true
- }
- form.val('example', {
- "S_id": Id
- , "S_name": obj.sensor[i].name
- , "S_Tlower": obj.sensor[i].Tlower
- , "S_Tupper": obj.sensor[i].Tupper
- , "S_RHlower": obj.sensor[i].RHlower
- , "S_RHupper": obj.sensor[i].RHupper
- , "S_en": T_en
- , "S_free": T_free
- });
- layer.close(loading)
- }
- }
- break
- case 3:
- console.log("offset:", obj.offset.length)
- for (let i = 0; i < obj.offset.length; i++) {
- if (obj.offset[i].id == Id) {
- console.log(obj.offset[i])
- form.val('O_example', {
- "O_T": obj.offset[i].T
- , "O_RH": obj.offset[i].RH
- });
- // layer.close(loading)
- }
- }
- layer.close(loading)
- break
- }
- }
- if (obj.type == 4) {
- switch (obj.msid % 10) {
- case 2:
- layer.close(loading)
- layer.msg('配置参数成功!', {
- offset: '6px'
- });
- //关闭当前frame
- parent.layer.close(parent.layer.getFrameIndex(window.name));
- parent.location.reload();
- break
- case 3:
- layer.close(loading)
- layer.msg('配置参数成功!', {
- offset: '6px'
- });
- //关闭当前frame
- parent.layer.close(parent.layer.getFrameIndex(window.name));
- parent.location.reload();
- break
- }
- }
- //
- // if(obj && "memberstatus"==obj.type){
- // console.log(obj.data)
- // table.reload('test', {
- // elem: '#test'
- // ,data: JSON.parse(obj.data)
- // });
- // }
- };
- //连接关闭的回调方法
- websocket.onclose = function () {
- console.log("close");
- };
- //监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常。
- window.onbeforeunload = function () {
- websocket.close();
- console.log("onbeforeunload");
- };
- //关闭连接
- function closeWebSocket() {
- websocket.close();
- console.log("onbeforeunload");
- window.clearInterval(intervalId);
- }
- //发送消息
- function send(message) {
- websocket.send(message);
- }
- });
- </script>
- <script>
- {{if eq $.Admin_Power.Power_DeviceSensor_Compensate_e 1}}
- var key_list = []
- $(document).keydown(function(e){
- console.log(e.which)
- key_list.push(e.which)
- if(key_list[0] == 17 && key_list[1] == 16 && key_list[2] == 13){
- tab_3_open()
- }
- });
- {{end}}
- </script>
- </body>
- <style>
- .tab_show {
- background-color: #CCE9FF;
- border-radius: 5px;
- padding: 4px;
- }
- </style>
- </html>
|