New file |
| | |
| | | const CMD_ReadFodParam = 0xA0; // 读取FOD参数 |
| | | const CMD_WriteFodParam = 0xA1; // 设置FOD参数 |
| | | const CMD_stop_FOD_test = 0xA4; // 停止除硫 |
| | | |
| | | //初始化设置参数的按钮 |
| | | var CuringBtn = { |
| | | disabled: function() { |
| | | $('#curing_btn_start_test').addClass('whyc-btn-disabled'); // 启动测试无效 |
| | | $('#curing_btn_ensure').addClass('whyc-btn-disabled'); // 设定参数无效 |
| | | }, |
| | | active:function() { |
| | | if(!$('#curing_btn_start_test').hasClass('no-remove-disabled')) { |
| | | $('#curing_btn_start_test').removeClass('whyc-btn-disabled'); // 启动测试可以点击 |
| | | } |
| | | |
| | | if(!$('#curing_btn_ensure').hasClass('no-remove-disabled')) { |
| | | $('#curing_btn_ensure').removeClass('whyc-btn-disabled'); // 设置参数可以点击 |
| | | } |
| | | |
| | | }, |
| | | startTest:function(param) { |
| | | if(param) { |
| | | $('#curing_btn_start_test').removeClass('whyc-btn-disabled'); // 启动测试可以点击 |
| | | }else { |
| | | $('#curing_btn_start_test').addClass('whyc-btn-disabled'); // 启动测试无效 |
| | | } |
| | | }, |
| | | ensure: function(param) { |
| | | if(param) { |
| | | $('#curing_btn_ensure').removeClass('no-remove-disabled'); // 移除无法移除不可点击 |
| | | $('#curing_btn_ensure').removeClass('whyc-btn-disabled'); // 设置参数可以点击 |
| | | }else { |
| | | $('#curing_btn_ensure').addClass('whyc-btn-disabled'); // 设定参数无效 |
| | | } |
| | | } |
| | | |
| | | }; |
| | | |
| | | $(function() { |
| | | // 点击显示弹出面板 |
| | | $("#setCuringParamBtn").click(function() { |
| | | var batt = getBatt(); |
| | | $('#curing_dev_id').val(batt.FBSDeviceId); // 设置设备id |
| | | $('#curing_btn_ensure').addClass('no-remove-disabled'); // 添加无法移除不可点击 |
| | | readCuringParams(); // 读取参数 |
| | | }); |
| | | |
| | | // 点击读取 |
| | | $('#curing_btn_flush').click(function() { |
| | | var batt = getBatt(); |
| | | $('#curing_dev_id').val(batt.FBSDeviceId); // 设置设备id |
| | | readCuringEquipParams(true); // 读取参数 |
| | | }); |
| | | |
| | | // 点击设定 |
| | | $('#curing_btn_ensure').click(function() { |
| | | setCuringParams(); |
| | | }); |
| | | |
| | | // 点击启动 |
| | | $('#curing_btn_start_test').click(startCuringTest); |
| | | |
| | | // 点击停止除硫 |
| | | //$('#stopCuring').click(stopCuringTest); |
| | | |
| | | // 浮充电压规则 |
| | | $('#curing_FloatVol').testVal({ |
| | | pattern: /^[0-9]+(\.[0-9]*)?$/, |
| | | regVal: true, |
| | | min: 0, |
| | | max: 90, |
| | | msg: '取值范围0~90' |
| | | }); |
| | | |
| | | // 除硫强度规则 |
| | | $('#curing_Strength').testVal({ |
| | | pattern: /^[0-9]+$/, |
| | | regVal: true, |
| | | min: 0, |
| | | max: 30, |
| | | msg: '取值范围0~30' |
| | | }); |
| | | // 养护强度规则 |
| | | $('#curing_YHStrength').testVal({ |
| | | pattern: /^[0-9]+$/, |
| | | regVal: true, |
| | | min: 0, |
| | | max: 30, |
| | | msg: '取值范围0~30' |
| | | }); |
| | | // 除硫参数规则 |
| | | $('#curing_TimeLong').testVal({ |
| | | pattern: /^[0-9]+$/, |
| | | regVal: true, |
| | | min: 0, |
| | | max: 999, |
| | | msg: '取值范围0~999' |
| | | }); |
| | | |
| | | // 获取BTS面板的所有文本框 |
| | | $('#curingPopup').on('input propertychange', 'input[type=text]', function() { |
| | | setCuringPopupBtnStatus(); |
| | | }); |
| | | |
| | | // 切换电池组号 |
| | | $('#curing_GroupNum').change(function() { |
| | | var val = $(this).val(); |
| | | var allData = curing_popup.popup.data('alldata'); |
| | | if(allData) { |
| | | CuringBtn.startTest(); |
| | | // 根据查询结果设置面板的值 |
| | | setCuringPopupVal(allData, val); |
| | | } |
| | | }); |
| | | }); |
| | | |
| | | // 设置养护面板的按钮 |
| | | function setCuringPopupBtnStatus() { |
| | | var textList = curing_popup.popup.find('input[type=text]'); |
| | | var errorStatus = curing_popup.popup.data('errorStatus'); // 获取是否读取参数失败 |
| | | // 读取设备参数失败 |
| | | if(errorStatus) { |
| | | CuringBtn.disabled(); |
| | | return false; // 结束函数运行 |
| | | } |
| | | |
| | | // 遍历面板下的所有文本框查看是否有错误数据 |
| | | var isDisabled = false; |
| | | textList.each(function() { |
| | | if($(this).hasClass('error-data')) { |
| | | isDisabled = true; |
| | | } |
| | | }); |
| | | // 存在错误的数据 |
| | | if(isDisabled) { |
| | | CuringBtn.disabled(); |
| | | return false; // 结束函数运行 |
| | | }else { |
| | | CuringBtn.active(); |
| | | } |
| | | |
| | | // 遍历textList |
| | | var isGood = true; |
| | | for(var i=0; i<textList.length; i++) { |
| | | var text = textList.eq(i); |
| | | if(text.data('val') != text.val()) { |
| | | isGood = false; |
| | | } |
| | | } |
| | | // 不存再修改数据 |
| | | if(isGood) { |
| | | CuringBtn.startTest(true); |
| | | }else { |
| | | CuringBtn.startTest(); |
| | | } |
| | | } |
| | | |
| | | // 读取参数 |
| | | function readCuringParams(flush) { |
| | | var searchParams = { |
| | | dev_id: $('#curing_dev_id').val() |
| | | }; |
| | | // 是否为更新 |
| | | if(!flush) { |
| | | CuringBtn.disabled(); |
| | | } |
| | | var layer = layui.layer; |
| | | var load = layer.load(1); |
| | | $.ajax({ |
| | | type: 'post', |
| | | url: 'Fbs9100s_fod_paramAction_action_serchByCondition', |
| | | data: 'json='+JSON.stringify(searchParams), |
| | | dataType: 'json', |
| | | success: function(res) { |
| | | layer.close(load); |
| | | var rs = JSON.parse(res.result); |
| | | if(rs.code == 1) { |
| | | var data = rs.data[0]; |
| | | var group = $('#curing_GroupNum').val(); |
| | | // 根据查询结果设置面板的值 |
| | | setCuringPopupVal(data, group); |
| | | if(!flush) { |
| | | curing_popup.showPopup(); |
| | | } |
| | | }else { |
| | | layer.msg('获取参数失败!'); |
| | | } |
| | | |
| | | }, |
| | | error: function() { |
| | | layer.close(load); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | // 读取设备的参数 |
| | | function readCuringEquipParams() { |
| | | var searchParams = { |
| | | op_cmd: CMD_ReadFodParam, |
| | | dev_id: $('#curing_dev_id').val() |
| | | }; |
| | | CuringBtn.disabled(); |
| | | var layer = layui.layer; |
| | | var load = layer.load(1); |
| | | $.ajax({ |
| | | type: 'post', |
| | | url: 'Fbs9100s_fod_paramAction_action_update', |
| | | data: 'json='+JSON.stringify(searchParams), |
| | | dataType: 'json', |
| | | success: function(res) { |
| | | layer.close(load); |
| | | var rs = JSON.parse(res.result); |
| | | if(rs.code == 1) { |
| | | readCuringParams(true); // 读取参数 |
| | | // 根据查询结果设置面板的值 |
| | | CuringBtn.ensure(true); |
| | | layer.msg('获取设备参数成功!'); |
| | | }else { |
| | | layer.msg('获取设备参数失败!'); |
| | | } |
| | | |
| | | }, |
| | | error: function() { |
| | | layer.close(load); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | // 设置除硫养护参数面板 |
| | | function setCuringPopupVal(alldata, group) { |
| | | data = getCuringParamsByGroup(alldata, group); |
| | | curing_popup.popup.data('alldata', alldata); |
| | | $('#curing_STDCap').val(data.STDCap).data('val', data.STDCap); // 标称容量 |
| | | $('#curing_FloatVol').val(data.FloatVol).data('val', data.FloatVol); // 浮充电压 |
| | | $('#curing_Strength').val(data.Strength).data('val', data.Strength); // 除硫强度 |
| | | $('#curing_YHStrength').val(data.YHStrength).data('val', data.YHStrength); // 养护强度 |
| | | $('#curing_TimeLong').val(data.TimeLong).data('val', data.TimeLong); // 除硫天数 |
| | | } |
| | | |
| | | // 获取电池编号(文本值) |
| | | function getCuringGroupNum(group) { |
| | | var groupNum = null; |
| | | group = Number(group); |
| | | switch(group) { |
| | | case 1: |
| | | groupNum = '_one'; |
| | | break; |
| | | case 2: |
| | | groupNum = '_two'; |
| | | break; |
| | | case 3: |
| | | groupNum = '_three'; |
| | | break; |
| | | case 4: |
| | | groupNum = '_four'; |
| | | break; |
| | | } |
| | | return groupNum; |
| | | } |
| | | |
| | | |
| | | // 获取指定电池组的除硫养护参数 |
| | | function getCuringParamsByGroup(data, group) { |
| | | var groupNum = getCuringGroupNum(group); |
| | | // 判断groupNum存在 |
| | | if(groupNum) { |
| | | result = { |
| | | dev_id: data.dev_id, // 设备id |
| | | GroupNum: data.GroupNum, // 电池组号 |
| | | STDCap: data['STDCap'+groupNum], // 标称容量 |
| | | FloatVol: data['FloatVol'+groupNum], // 浮充电压 |
| | | Strength: data['Strength'+groupNum], // 除硫强度 |
| | | YHStrength: data['YHStrength'+groupNum], // 养护强度 |
| | | TimeLong: data['TimeLong'+groupNum] // 除硫天数 |
| | | }; |
| | | }else { |
| | | result = { |
| | | dev_id: data.dev_id, // 设备id |
| | | GroupNum: 0, // 电池组号 |
| | | STDCap: 0, // 标称容量 |
| | | FloatVol: 0, // 浮充电压 |
| | | Strength: 0, // 除硫强度 |
| | | YHStrength: 0, // 养护强度 |
| | | TimeLong: 0 // 除硫天数 |
| | | }; |
| | | } |
| | | |
| | | return result; |
| | | } |
| | | |
| | | // 点击设定设置参数 |
| | | function setCuringParams() { |
| | | if($('#curing_btn_ensure').hasClass('whyc-btn-disabled')) { |
| | | return; |
| | | } |
| | | var layer = layui.layer; |
| | | // 二次校验除硫强度和养护强度 |
| | | var curing_Strength = Number($('#curing_Strength').val()); |
| | | var curing_YHStrength = Number($('#curing_YHStrength').val()); |
| | | var pattern = /^[0-9]+$/; |
| | | if(!pattern.test(curing_Strength) || !pattern.test(curing_YHStrength)) { |
| | | layer.msg('请按照规则输入参数'); |
| | | return; |
| | | } |
| | | |
| | | if(curing_Strength<0 || curing_Strength>30) { |
| | | layer.msg('除硫强度取值范围0~30'); |
| | | return; |
| | | } |
| | | if(curing_YHStrength<0 || curing_YHStrength>30) { |
| | | layer.msg('养护强度取值范围0~30'); |
| | | return; |
| | | } |
| | | |
| | | if(curing_YHStrength>curing_Strength) { |
| | | layer.msg('养护强度不能大于除硫强度'); |
| | | return; |
| | | } |
| | | var popupParams = getCuringParam(); |
| | | // 判断获取参数的值 |
| | | if(!popupParams) { |
| | | layer.msg('获取面板参数失败'); |
| | | return; |
| | | } |
| | | popupParams.op_cmd = CMD_WriteFodParam; // 添加设置的命令 |
| | | |
| | | var load = layer.load(1); |
| | | CuringBtn.startTest(); |
| | | // 请求后台 |
| | | $.ajax({ |
| | | type: 'post', |
| | | url: 'Fbs9100s_fod_paramAction_action_update', |
| | | data: 'json='+JSON.stringify(popupParams), |
| | | dataType: 'json', |
| | | success: function(res) { |
| | | layer.close(load); |
| | | var rs = JSON.parse(res.result); |
| | | if(rs.code == 1) { |
| | | CuringBtn.startTest(true); |
| | | layer.msg('设置参数成功!'); |
| | | }else { |
| | | layer.msg('设置参数失败!'); |
| | | } |
| | | |
| | | }, |
| | | error: function() { |
| | | layer.msg('设置参数失败!'); |
| | | layer.close(load); |
| | | } |
| | | }); |
| | | |
| | | } |
| | | |
| | | // 获取养护除硫面板的值 |
| | | function getCuringParam() { |
| | | var allData = curing_popup.popup.data('alldata'); |
| | | allData.GroupNum = $('#curing_GroupNum').val(); // 电池组号 |
| | | var groupNum = getCuringGroupNum(allData.GroupNum); |
| | | if(groupNum) { |
| | | allData['STDCap'+groupNum] = $('#curing_STDCap').val(); // 标称容量 |
| | | allData['FloatVol'+groupNum] = $('#curing_FloatVol').val(), // 浮充电压 |
| | | allData['Strength'+groupNum] = $('#curing_Strength').val(), // 除硫强度 |
| | | allData['YHStrength'+groupNum] = $('#curing_YHStrength').val(), // 养护强度 |
| | | allData['TimeLong'+groupNum] = $('#curing_TimeLong').val() // 除硫天数 |
| | | }else { |
| | | return false; |
| | | } |
| | | |
| | | |
| | | return allData; |
| | | } |
| | | |
| | | // 启动测试 |
| | | function startCuringTest() { |
| | | if($('#curing_btn_start_test').hasClass('whyc-btn-disabled')) { |
| | | return; |
| | | } |
| | | var curing_style = $('#curing_style option:selected').text(); |
| | | var curing_GroupNum = $('#curing_GroupNum').val(); |
| | | var layer = layui.layer; |
| | | layer.confirm('确定启动<span style="color: #FF0000">组'+curing_GroupNum+'</span>的<span style="color: #FF0000">'+curing_style+'</span>', {icon:3, title: '提示'}, function(index) { |
| | | layer.close(index); |
| | | var batt = getBatt(); |
| | | var startParams = { |
| | | op_cmd: Number($('#curing_style').val()), |
| | | dev_id: batt.FBSDeviceId, |
| | | GroupNum: curing_GroupNum |
| | | }; |
| | | var load = layer.load(1); |
| | | // 发送停止命令,请求后台 |
| | | $.ajax({ |
| | | type: 'post', |
| | | async: true, |
| | | url: 'Fbs9100s_fod_paramAction_action_update', |
| | | data: 'json='+JSON.stringify(startParams), |
| | | dataType: 'json', |
| | | success: function(res) { |
| | | layer.close(load); |
| | | var rs = JSON.parse(res.result); |
| | | if(rs.code == 1) { |
| | | layer.msg('启动成功!') |
| | | }else { |
| | | layer.msg('启动失败!') |
| | | } |
| | | } |
| | | }); |
| | | }); |
| | | } |
| | | |
| | | // 停止测试 |
| | | function stopCuringTest() { |
| | | var layer = layui.layer; |
| | | var batt = getBatt(); |
| | | var battNum = batt.GroupIndexInFBSDevice+1; |
| | | layer.confirm('确定停止<span style="color:#FF0000">组'+battNum+'</span>的养护/除硫', {icon: 3, title: '提示'}, function(index) { |
| | | layer.close(index); |
| | | var stopParams = { |
| | | op_cmd: CMD_stop_FOD_test, |
| | | dev_id: batt.FBSDeviceId, |
| | | GroupNum: battNum |
| | | }; |
| | | var load = layer.load(1); |
| | | // 发送停止命令,请求后台 |
| | | $.ajax({ |
| | | type: 'post', |
| | | async: true, |
| | | url: 'Fbs9100s_fod_paramAction_action_update', |
| | | data: 'json='+JSON.stringify(stopParams), |
| | | dataType: 'json', |
| | | success: function(res) { |
| | | layer.close(load); |
| | | var rs = JSON.parse(res.result); |
| | | if(rs.code == 1) { |
| | | layer.msg('停止成功!') |
| | | }else { |
| | | layer.msg('停止失败!') |
| | | } |
| | | } |
| | | }); |
| | | }); |
| | | |
| | | } |
| | | |
| | | // 读取状态信息 |
| | | function readCuringStatus(status) { |
| | | var batt = getBatt(); |
| | | // 检测设备是否为bts和61850设备 |
| | | if(regEquipType(batt.FBSDeviceId, globalPattern.BTS) || |
| | | regEquipType(batt.FBSDeviceId, globalPattern.equip61850)) { |
| | | var searchParams = { |
| | | dev_id: batt.FBSDeviceId |
| | | }; |
| | | // 设置当前设备不在除硫状态 |
| | | $.ajax({ |
| | | type: 'post', |
| | | async: true, |
| | | url: 'Fbs9100s_fod_stateAction_action_serchByCondition', |
| | | data: 'json='+JSON.stringify(searchParams), |
| | | dataType: 'json', |
| | | success: function(res) { |
| | | var rs = JSON.parse(res.result); |
| | | if(rs.code == 1) { |
| | | var data = rs.data[0]; |
| | | var curingStatus = getCuringStatusByGroupNum(batt.GroupIndexInFBSDevice, data); |
| | | status.setStatus('resDay', '剩余天数:'+curingStatus.resDay); |
| | | status.setStatus('workModel', '工作模式:'+curingStatus.workModel); |
| | | status.setStatus('groupVol', '组端电压:'+curingStatus.groupVol+'V'); |
| | | status.setStatus('peakVol', '峰值电压:'+curingStatus.peakVol+'V'); |
| | | if(curingStatus.workModel == '除硫') { |
| | | GLOBAL.analog.setTopVal(curingStatus.peakVol-curingStatus.groupVol); |
| | | }else { |
| | | GLOBAL.analog.setTopVal(0); |
| | | } |
| | | |
| | | status.show(); |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | var curingWorkModel = ['停止', '养护', '除硫']; |
| | | // 根据电池索引获状态值 |
| | | function getCuringStatusByGroupNum(groupNum, data) { |
| | | var num = Number(groupNum); |
| | | var result = { |
| | | resDay: '未知', |
| | | workModel: '未知', |
| | | groupVol: '未知', |
| | | peakVol: '未知' |
| | | }; |
| | | var dataNum = 'one'; |
| | | switch(num) { |
| | | case 0: |
| | | dataNum = 'one'; |
| | | break; |
| | | case 1: |
| | | dataNum = 'two'; |
| | | break; |
| | | case 2: |
| | | dataNum = 'three'; |
| | | break; |
| | | case 3: |
| | | dataNum = 'four'; |
| | | break; |
| | | } |
| | | var workModel = data['WorkState_'+dataNum]; |
| | | result = { |
| | | resDay: data['RestTime_'+dataNum], |
| | | workModel: curingWorkModel[workModel], |
| | | groupVol: data['VGroupVol_'+dataNum], |
| | | peakVol: data['VpeakVol_'+dataNum] |
| | | }; |
| | | return result; |
| | | } |