81041
2019-01-18 5fe2efb71f6ad809a1cfc59beab18bbea99fff5e
gx_tieta/WebRoot/control.jsp
@@ -25,9 +25,9 @@
   <link rel="stylesheet" type="text/css" href="css/whyc-ui.css">
   <link rel="stylesheet" type="text/css" href="css/confirm.css">
   <link rel="stylesheet" type="text/css" href="src/css/layui.css">
   <!-- <link rel="stylesheet" type="text/css" href="pages/css/mylayui.css"> -->
   <script type="text/javascript" src="js/echarts.js"></script>
   <script type="text/javascript" src="js/jquery-1.8.3.js"></script>
   <script type="text/javascript" src="js/base.js"></script>
   <script type="text/javascript" src="js/right-menu.js"></script>
   <style>
      body {
@@ -120,6 +120,19 @@
       .mr250 {
          margin-left: -250px;
       }
       .page-link {
         cursor: pointer;
      }
      .page-link:hover {
         color: #1495E7;
      }
      .page-link:active {
         color: #FF0000;
      }
      i.fa.f-size16 {
         font-size: 16px;
         vertical-align: middle;
      }
   </style>
   
  </head>  
@@ -234,17 +247,32 @@
                       <div class="tools-btn">
                          <a href="javascript:void(0);" id="setParamBtn" class="whyc-btn whyc-btn-disabled" id="specialGraphExport">
                           <span class="whyc-btn-icon fa fa-play-circle"></span>
                           <span class="whyc-btn-txt">启动核容测试</span>
                           <span class="whyc-btn-txt">核容测试</span>
                        </a>
                        <br>
                        <a href="javascript:void(0);" id="stopTest" class="whyc-btn whyc-btn-disabled" id="specialGraphExport">
                           <span class="whyc-btn-icon fa fa-stop-circle"></span>
                           <span class="whyc-btn-txt" id="stopTestBtn">停止测试</span>
                           <span class="whyc-btn-txt">停止测试</span>
                        </a>
                        <br>
                        <a href="javascript:void(0);" id="battInfoBtn" class="whyc-btn whyc-btn-disabled" id="specialGraphExport">
                           <span class="whyc-btn-icon fa fa-battery-full"></span>
                           <span class="whyc-btn-txt">电池参数</span>
                        </a>
                        <br>
                        <a href="javascript:void(0);" id="sysSet" class="whyc-btn whyc-btn-disabled" id="specialGraphExport">
                           <span class="whyc-btn-icon fa fa-gear"></span>
                           <span class="whyc-btn-txt">设置系统参数</span>
                           <span class="whyc-btn-txt">系统参数</span>
                        </a>
                        <br>
                        <a href="javascript:void(0);" id="signalBtn" class="whyc-btn whyc-btn-disabled" id="specialGraphExport">
                           <span class="whyc-btn-icon fa fa-signal"></span>
                           <span class="whyc-btn-txt">信号质量</span>
                        </a>
                        <br>
                        <a href="javascript:void(0);" id="threadInfo" class="whyc-btn whyc-btn-disabled" id="specialGraphExport">
                           <span class="whyc-btn-icon fa fa-desktop"></span>
                           <span class="whyc-btn-txt">设备进程</span>
                        </a>
                       </div>
                  </div>
@@ -370,6 +398,10 @@
            <tr>
               <td><s:text name="Head"/></td>                           <!-- 负责人 -->
               <td></td>
            </tr>
            <tr>
               <td>安装人员</td>                           <!-- 负责人 -->
               <td id="installUser"></td>
            </tr>
         </table>
      </div>
@@ -651,7 +683,7 @@
                  </tr>
                  <tr>
                     <th><s:text name="Booster"/><s:text name="Upper_limit"/><!-- 升压上限 -->(V)</th>
                     <th><s:text name="Charging_current"/><!-- 充电电流 -->(A)</th>
                     <th id="ChargeCurrSetLabel"><s:text name="Charging_current"/><!-- 充电电流 -->(<span class="val-range"></span>A)<i class="fa fa-edit page-link f-size16" title="修改充电电流范围"></i></th>
                  </tr>
                  <tr>
                     <td><input id="DCVolHighLimit" type="text" value="0"><i class="fa fa-frown-o error-img" title="数据格式错误"></i></td>
@@ -670,7 +702,7 @@
         </div>
      </div>
      <div class="popup-footer">
         <input type="button" name="" id="btn_start_test" class="status-change-btn whyc-btn-disabled" value="启动测试" > <!-- 启动测试 -->
         <input type="button" name="" id="btn_start_test" class="status-change-btn whyc-btn-disabled no-remove-disabled" value="启动测试" > <!-- 启动测试 -->
         <input type="button" name="" id="btn_flush" value="读取" >               <!-- 读取 -->
         <input type="button" name="" id="btn_ensure" class="status-change-btn whyc-btn-disabled" value="设定" >            <!-- 设定 -->
         <!-- <input type="button" name="" id="bts_graph" value="拓扑图"> -->
@@ -954,6 +986,10 @@
      <div class="popup-title"><span>系统参数设置</span> <a href="javascript:;" class="close">X</a></div>
      <div class="popup-content">
         <div class="popup-tbl">
            <input type="hidden" id="sysSet_ip" value="">      <!-- IP地址 -->
            <input type="hidden" id="sysSet_subnet" value="">    <!-- 子网掩码 -->
            <input type="hidden" id="sysSet_netgate" value="">    <!-- 网关地址 -->
            <input type="hidden" id="sysSet_mac" value="">    <!-- 物理地址 -->
            <table>
               <tbody>
                  <tr>
@@ -965,40 +1001,24 @@
                     <td><input type="text" id="sysSet_stationName" readonly="readonly" value=""></td>
                  </tr>
                  <tr>
                     <th>IP地址</th>
                     <th>子网掩码</th>
                  </tr>
                  <tr>
                     <td><input type="text" id="sysSet_ip" readonly="readonly" value=""></td>
                     <td><input type="text" id="sysSet_subnet" readonly="readonly" value=""></td>
                  </tr>
                  <tr>
                     <th>网关地址</th>
                     <th>物理地址</th>
                  </tr>
                  <tr>
                     <td><input type="text" id="sysSet_netgate" readonly="readonly" value=""></td>
                     <td><input type="text" id="sysSet_mac" readonly="readonly" value=""></td>
                  </tr>
                  <tr>
                     <th>总续航时间</th>
                     <th>保一次下电续航时间</th>
                     <th>总续航时间(0~9999分钟)</th>
                     <th>保一次下电续航时间(0~9999分钟)</th>
                  </tr>
                  <tr>
                     <td><input type="text" id="sysSet_endur" value=""></td>
                     <td><input type="text" id="sysSet_firTime" value=""></td>
                  </tr>
                  <tr>
                     <th>电流钳量程</th>
                     <th>一次下电电压(V)</th>
                     <th>电流钳量程(10~9999A)</th>
                     <th>一次下电电压(35.0~65.0V)</th>
                  </tr>
                  <tr>
                     <td><input type="text" id="sysSet_range" value=""></td>
                     <td><input type="text" id="sysSet_firVol" value=""></td>
                  </tr>
                  <tr>
                     <th>二次下电电压(V)</th>
                     <th>DCDC模块数量</th>
                     <th>二次下电电压(35.0~65.0V)</th>
                     <th>DCDC模块数量(1~10)</th>
                  </tr>
                  <tr>
                     <td><input type="text" id="sysSet_secVol" value=""></td>
@@ -1006,27 +1026,38 @@
                  </tr>
                  <tr>
                     <th>单体数据来源类型</th>
                     <th>停电升压榨干电池数量</th>
                     <th>停电升压榨干电池数量(0~2)</th>
                  </tr>
                  <tr>
                     <td><input type="text" id="sysSet_sourceStyle" value=""></td>
                     <td>
                        <select id="sysSet_sourceStyle">
                           <option value="0">从汇集器获取</option>
                           <option value="1">从一拖24获取</option>
                        </select>
                     </td>
                     <td><input type="text" id="sysSet_bleedNum" value=""></td>
                  </tr>
                  <tr>
                     <th>停电升压榨干电池端电压终止电压下限(V)</th>
                     <th>停电升压榨干电池端电压启动电压下限(V)</th>
                     <th>停电升压榨干电池端电压终止电压下限(35.0~65.0V)</th>
                     <th>停电升压榨干电池端电压启动电压下限(35.0~65.0V)</th>
                  </tr>
                  <tr>
                     <td><input type="text" id="sysSet_stopLimit" value=""></td>
                     <td><input type="text" id="sysSet_startLimit" value=""></td>
                  </tr>
                  <tr>
                     <th>电池合路器主电池组编号</th>
                     <th>背光时长</th>
                     <th>电池合路器主电池组编号(0~2)</th>
                     <th>背光时长(0~999分钟)</th>
                  </tr>
                  <tr>
                     <td><input type="text" id="sysSet_groupNum" value=""></td>
                     <td><input type="text" id="sysSet_backLightTime" value=""></td>
                  </tr>
                  <tr>
                     <th>停电充电电流(0~50A)</th>
                  </tr>
                  <tr>
                     <td><input type="text" id="sysSet_powerBreakChargeCurr" value=""></td>
                  </tr>
               </tbody>
            </table>
@@ -1035,7 +1066,79 @@
      <div class="popup-footer">
         <input type="button" name="" id="sysSet_restart" value="重启设备" >
         <input type="button" name="" id="sysSet_read" value="读取" >                     
         <input type="button" name="" id="sysSet_en" class="status-change-set" value="设置" >
         <input type="button" name="" id="sysSet_en" class="status-change-set " value="设置" >
      </div>
   </div>
   <!-- 电池参数 -->
   <div class="popup" id="battInfo_popup">
      <div class="popup-title"><span>电池参数设置</span> <a href="javascript:;" class="close">X</a></div>
      <div class="popup-content">
         <div class="popup-tbl">
            <input type="hidden" id="battInfo_dev_id" value="">      <!-- dev_id -->
            <input type="hidden" id="battInfo_ip" value="">      <!-- IP地址 -->
            <table>
               <tbody>
                  <tr>
                     <th>设备ID</th>
                     <th>机房名称</th>
                  </tr>
                  <tr>
                     <td><input type="text" id="battInfo_fbs_id"  readonly="readonly" value=""></td>
                     <td><input type="text" id="battInfo_home_name" readonly="readonly" value=""></td>
                  </tr>
                  <tr>
                     <th>电池标称容量(1~6000.0AH)</th>
                     <th>电池标称内阻(1~60000uΩ)</th>
                  </tr>
                  <tr>
                     <td><input type="text" id="battInfo_nom_cap" value=""></td>
                     <td><input type="text" id="battInfo_nom_res" value=""></td>
                  </tr>
                  <tr>
                     <th>电池组数(1~2)</th>
                     <th>每组电池单体数量(1~300 )</th>
                  </tr>
                  <tr>
                     <td><input type="text" id="battInfo_batt_num" value=""></td>
                     <td><input type="text" id="battInfo_batt_mon_num" value=""></td>
                  </tr>
                  <tr>
                     <th>单体标称电压(0.1~20.0V)</th>
                     <th>电池组端标称电压(0.1~600.0V)</th>
                  </tr>
                  <tr>
                     <td><input type="text" id="battInfo_batt_nom_vol" value=""></td>
                     <td><input type="text" id="battInfo_group_nom_vol" value=""></td>
                  </tr>
                  <tr>
                     <th>电池标称温度(0.1~60.0℃)</th>
                     <th>电池浮充电压阀值(0.1~60.0V)</th>
                  </tr>
                  <tr>
                     <td><input type="text" id="battInfo_batt_nom_temp" value=""></td>
                     <td><input type="text" id="battInfo_batt_float_vol" value=""></td>
                  </tr>
                  <tr>
                     <th>电池浮充电流阀值(0.1~30.0A)</th>
                     <th>在线电压低阀值(0.1~60.0V)</th>
                  </tr>
                  <tr>
                     <td><input type="text" id="battInfo_batt_float_curr" value=""></td>
                     <td><input type="text" id="battInfo_online_low_vol" value=""></td>
                  </tr>
                  <tr>
                     <th>电池组连接类型(0~1)</th>
                  </tr>
                  <tr>
                     <td><input type="text" id="battInfo_batt_link_type" value=""></td>
                  </tr>
               </tbody>
            </table>
         </div>
      </div>
      <div class="popup-footer">
         <input type="button" name="" id="battInfo_read" value="读取" >
         <input type="button" name="" id="battInfo_en" class="status-change-set whyc-btn-disabled" value="设置" >
      </div>
   </div>
   
@@ -1125,6 +1228,10 @@
   <!-- 整体的遮罩层 -->
   <div id="allShade"></div>
   <div class="clear"></div>
   <!-- iframe数据临时存储位置 -->
   <div id="homeInfoIframeData"></div>
   <!-- 引入layui框架 -->
   <script type="text/javascript" src="src/layui.all.js"></script>
   <script type="text/javascript" src="pages/js/common.js"></script>
   <script type="text/javascript" src="js/jquery.bigcolorpicker.min.js"></script>
   <script type="text/javascript" src="jqueryui/jquery-ui.js"></script>
@@ -1141,13 +1248,18 @@
   <script type="text/javascript" src="js/dischargetest/9611.js"></script>
   <script type="text/javascript" src="js/dischargetest/bts.js"></script>
   <script type="text/javascript" src="js/dischargetest/4016.js"></script>
   <script type="text/javascript" src="js/dischargetest/sysData.js"></script>
   <script type="text/javascript" src="js/dischargetest/battData.js"></script>
   <script type="text/javascript" src="pages/js/pages/control-common.js"></script>
   <script type="text/javascript" src="pages/js/pages/siderbar.js"></script>
   <script type="text/javascript" src="js/rightmenu.js"></script>
   <!-- 引入电路图 -->
   <script type="text/javascript" src="js/elecircle.js"></script>
   <script type="text/javascript" src="js/elecircle.content.js"></script>
   <!-- 引入layui框架 -->
   <script type="text/javascript" src="src/layui.all.js"></script>
   <script type="text/javascript" src="pages/js/pages/homeInfo.js"></script>
   <script type="text/html" id="setChargeCurrTpl">
   </script>
   <script type="text/javascript">
   var permits;
   <%   Object obj=session.getAttribute("permits");
@@ -1210,7 +1322,7 @@
      // 设置页面权限模块
      $(function() {
         var testOp = checkUserPermit(permits, 'batt_test_op_permit');
         console.log(testOp);
         //console.log(testOp);
         if(!testOp) {
            $(".ele-circle .tools-btn").remove();
         }
@@ -1226,6 +1338,7 @@
      var equip4016_popup = new Popup($('#equip4016'));
      var sysSet_popup = new Popup($('#sysSet_popup'));
      var localNav = new Popup($('#localNav'));
      var battInfo_popup = new Popup($('#battInfo_popup'));
      // 充放电弹出框设置
      $(function() {
         // 初始化LD9充放电弹出框
@@ -1258,6 +1371,75 @@
            sysSet_popup.hidePopup();   // 隐藏sysSet_popup弹出框和遮罩层
         });
         
         // 设置电池参数
         $('#battInfo_popup').find('.close').bind('click', function() {
            battInfo_popup.hidePopup();   // 隐藏battInfo_popup弹出框和遮罩层
         });
         // bts面板充电电流编辑
         $('#ChargeCurrSetLabel .fa-edit').click(function() {
            var batt =getBatt();
            //console.log(batt);
            // 设置面板
            layer.open({
               type: 1
               ,title: '设置充电电流阀值'
               , content: '<div style="width:300px; height: 50px;"><div style="margin-top: 20px;margin-left: 8px; margin-right: 8px;">'+
                        '<input type="text" style="width: 100%; height:32px; border: 1px solid #ccc;" id="setChargeCurrVal" value="">'+
                        '</div></div>'
               ,btn:['设置', '取消']
               ,yes: function(index) {
                  var chargeCurrVal = $('#setChargeCurrVal').val();
                  var num = Number(chargeCurrVal);
                  if(isNaN(num) || num==0) {
                     layer.msg('请输入数字');
                     return;
                  }
                  var tmp = {
                     charge_curr_max: num
                     ,BattGroupId: batt.BattGroupId
                  };
                  var load;
                  // 请求设置电流的后台
                  $.ajax({
                     type: 'post'
                     ,async: true
                     ,url: 'BattInfAction!update_charge'
                     ,data: 'json='+JSON.stringify(tmp)
                     ,dataType: 'json'
                     ,beforeSend: function(){
                        load = layer.load(1);
                     }
                     ,success: function(res) {
                        var rs = JSON.parse(res.result);
                        // 关闭等待框
                        layer.close(load);
                        //console.log(rs);
                        if(rs.code == 1) {
                           // 设置弹出框信息
                           layer.msg('设置成功!');
                           layer.close(index);
                           // 充电电流
                           $('#ChargeCurrSet').testVal('option', 'allOpts', {
                              regVal: true
                              ,update: true
                              ,min: 0
                              ,max: num
                              ,msg: '取值范围0~'+num+'A'
                           });
                           // 设置文本值
                           $('#ChargeCurrSetLabel .val-range').text('0~'+num);
                        }else {
                           layer.msg('设置失败!请重新设置');
                        }
                     }
                  });
               }
            });
         });
         
         // 窗口大小改变
         $(window).resize(function() {
@@ -1267,6 +1449,7 @@
            equip4016_popup.hidePopup();   // 隐藏4016弹出框和遮罩层
            localNav.hidePopup();
            sysSet_popup.hidePopup();   // 隐藏sysSet_popup弹出框和遮罩层
            battInfo_popup.hidePopup();   // 隐藏battInfo_popup弹出框和遮罩层
         });
      });
      //初始化柱状图
@@ -1628,7 +1811,6 @@
               $('.fir:first').next().children().eq(i).children().eq(0).css('display','none');
            }
         }
         //alert(BattGroupId);
         clearInterval(time);
         searchBattAlarmParam();            //查询电池告警参数
@@ -1751,9 +1933,13 @@
      //查询电池组的实时状态信息
      function showtable(){
         //searbattrealInfomation();
         searchDevStatusByDev_id();
         findrtstate();
         findrtdata();
         //查询设备的dcdc状态
         searchDevDcDcState();
         // 更新拓扑图状态
         searchDevStatusByDev_id();
      }
      
      //根据设备id查询设备当前的开关状态
@@ -1774,6 +1960,7 @@
               var model = eval("("+data.result+")");
               //console.log(model);
               
               var outTime = 2*60;            //设备超时时间(2分钟)
               var isOutTime = true;         //通讯中断      判断设备是否通讯中断    true:中断    false:正常
               var batt = getBatt();         //获取当前选中的电池组
@@ -1788,7 +1975,14 @@
               //console.log(mygraph);
               //debugger;
               if(model.code == 1) {
                  var nowTime = new Date().getTime();      //当前时间
                  var _data = model.data[0];
                  var alarmstates = GLOBAL.BTS9100.alarmstates;
                  var lastStopReason = getStateFromIndex(_data.dev_last_captest_stop_type,alarmstates);
                  //console.info("上一次核容测试停止原因:"+lastStopReason);
                  //console.info("通信计数:"+_data.dev_commcount);
                  //console.info("通信丢包率:"+(_data.dev_commcount==0?0:(_data.dev_errcommcount*100/_data.dev_commcount)));
                  var nowTime = new Date(model.data[0].note).getTime();      //当前时间
                  var record = new Date(model.data[0].record_datetime).getTime();
                  
                  //console.info(Math.abs(nowTime-record)/1000);
@@ -2096,6 +2290,7 @@
               table_index = 0;
               createAllTbl(tbHd, tbBd, thVol, mon_vol_table_list);
               title.setAvg(parseFloat(sum/array.length).toFixed(3));
               title.setSum(sum);
               getBattAlarmTitle(batt,"Voltage",title);
               //title.alow = temp.alow;            //设置电压告警低值   
               //title.ahight = temp.ahight;         //设置电压告警高值         
@@ -2462,7 +2657,11 @@
             
             $('#echarts_menu .batt-mon-search').click(function() {
                var batt = getBatt();
                window.open('eleMonomer.jsp?stationId='+batt.StationId+'&battgroupId='+BattGroupId+'&battmon_num='+battmon_num);
                var url = skipUrl("eleMonomer.jsp",batt.StationName1,batt.StationName2,batt.StationName5,batt.StationName,batt.BattGroupId,battmon_num);
            //console.info(url);
            window.open(url);
                //window.open('eleMonomer.jsp?stationId='+batt.StationId+'&battgroupId='+BattGroupId+'&battmon_num='+battmon_num);
             });
             
             $('#echarts_menu .batt-attention').click(function() {
@@ -3020,7 +3219,8 @@
            var city = batt.StationName2;
            var county = batt.StationName5;
            var home = batt.StationName;
            $(this).attr('href', 'charge-test.jsp?province='+province+'&city='+city+'&county='+county+'&home='+home);
            var battid = batt.BattGroupId;
            $(this).attr('href', 'charge-test.jsp?province='+province+'&city='+city+'&county='+county+'&home='+home+'&battid='+battid);
         });
      });
   
@@ -3118,7 +3318,8 @@
   //跳转到指定的电池组统计分析查询
   function targetBattReport(){
      var batt = getBatt();      
      window.open("eleAnalyse.jsp?battgroupId="+BattGroupId+"&stationId="+batt.StationId);
      var url = skipUrl("eleAnalyse.jsp",batt.StationName1,batt.StationName2,batt.StationName5,batt.StationName,batt.BattGroupId);
      window.open(url);
   }
   // 使用jquery实现左导航的显示和隐藏
   $(document).ready(function(){
@@ -3436,9 +3637,11 @@
      });
   }
      // 根据设备信息显示对应电路拓扑图
      function updateEleCircle(batt, data, mygraph) {
         var status = GLOBAL.circleStatus.status;
         //console.info(status);
         var e61850Opts = GLOBAL.circleStatus.e61850Opts;
         var btsOpts = GLOBAL.circleStatus.btsOpts;
         // 初始化二级管
         changeEleCircleOpt(eleCircle, 'diode', {
            isShowValue: false,
@@ -3456,10 +3659,20 @@
         // 拓扑图图标
         changeEleCircleOpt(eleCircle, 'DCDC1', {statusImg:-1});   // 放电单元
         changeEleCircleOpt(eleCircle, 'DCDC2', {statusImg:-1});   // 充电单元
         //console.log(data);
         // 没有形参就不做任何操作
         if(data == undefined) {
            status.hide();
            var opts = [{
               name: 'none',
               type: 'text',
               status: 0,
               notShow: false,
               content: {
                  text:'设备状态:<span class="red">未连接</span>'
               }
            }];
            status.setOpts(opts);
            //status.hide();
            return false;   // 结束函数
         }
         
@@ -3467,6 +3680,7 @@
         if(regEquipType(data.dev_id, globalPattern.equip61850)) {
            //console.info(data);
            var alarms = data.dev_61850alarms.split(',');
            status.setOpts(e61850Opts);
            status.show();
            //alarms = ['true', 'false', 'true', 'true'];
            // 设置二级管的导通压降
@@ -3494,6 +3708,7 @@
            status.setStatus('msg', isLink);
            // 设置温度信息
            status.setStatus('tmp', alarms[2] == 'true'?0:1);
            // 设置核容停止原因
            if(data.dev_workstate == 2) {
               status.setStatus('stop', 99);
@@ -3507,7 +3722,30 @@
            // 拓扑图图标
            changeEleCircleOpt(eleCircle, 'DCDC1', {statusImg:mygraph.graphtype});   // 放电单元
            changeEleCircleOpt(eleCircle, 'DCDC2', {statusImg:mygraph.graphtype});   // 充电单元
         }else {
         }else if(regEquipType(data.dev_id, globalPattern.BTS)){      // 判断如果是BTS9100的设备
            // 设置状态的配置项
            status.setOpts(btsOpts);
            // 工作状态
            status.setStatus('workstatus', data.dev_workstate);
            // 设置核容停止原因
            status.setStatus('stop', data.dev_last_captest_stop_type);
            // 设置通信计数
            status.setText('count', "通信计数:"+data.dev_commcount);
            // 设置设备版本号
            status.setText('devVersion', '设备版本号:'+data.dev_version);
            // 设置丢包率
            var errorCount = data.dev_errcommcount;
            var allCount = data.dev_commcount+errorCount;
            var percent= (allCount==0?0:errorCount/allCount*100).toFixed(3);
            status.setText('percent', "通信丢包率:"+percent+'%');
            status.show();
         }else{
            status.hide();
         }
      }
@@ -4000,7 +4238,12 @@
         $('#monLineGraphPopup .control-popupClose .fa-file-text-o').click(function() {
            var batt = getBatt();
            var type = getPopupTabNum(getPopupTab());
                window.open('eleMonomer.jsp?stationId='+batt.StationId+'&battgroupId='+BattGroupId+'&battmon_num='+battmon_num+'&test_type='+type);
            var url = skipUrl("eleMonomer.jsp",batt.StationName1,batt.StationName2,batt.StationName5,batt.StationName,batt.BattGroupId,battmon_num);
            url += '&test_type='+type;
            //console.info(url);
            window.open(url);
                //window.open('eleMonomer.jsp?stationId='+batt.StationId+'&battgroupId='+BattGroupId+'&battmon_num='+battmon_num+'&test_type='+type);
         });
         
         // 点击选项卡更新图表
@@ -4290,6 +4533,8 @@
         // 电池组
         treeView.ele.on('click', '.eleGroup', function() {
            var eleGroup = $(this).data('attr');
            var status = GLOBAL.circleStatus.status;
            var btsOpts = GLOBAL.circleStatus.btsOpts;
            // 根据BattGroupId查询数据
            if(BattGroupId != eleGroup.BattGroupId) {
               BattGroupId = eleGroup.BattGroupId;
@@ -4322,6 +4567,7 @@
               
               getBattStr();
               searchBattAlarmParam();            //查询电池告警参数
               searchDevSDState();
               clearInterval(time);
               mygraph.graphtype = 4;
               showtable();
@@ -4362,6 +4608,48 @@
            treeView.ele.find('li').removeClass('sider-menu-open');
         });
         
         // 电路拓扑图右键菜单
         var menuItems = [
            {txt: '基站机历卡', cla: 'home-info-card'},
            {txt: '机房问题记录', cla: 'target', data:{target: 'batt-fault-manage.jsp'}},
            {txt: '机房实时状态查询', cla: 'target', data:{target: 'batt-state-manage.jsp'}},
            {txt: '设备流量统计查询', cla: 'target', data:{target: 'batt-traffic-statistics1.jsp'}},
            {txt: '机房续航能力查询', cla: 'target', data: {target: 'batt-life-manage.jsp'}},
            {txt: '设备充放电模块状态', cla:'target', data: {target: 'equip-charge-param.jsp'}},
            {txt: '机房历史事件查询', cla:'target', data: {target: 'batt-state-statistical.jsp'}},
         ];
         // 给表格添加自己的右键菜单
         $('#contai').on('mousedown','.ele-circle canvas',function(e){
            var batt = getBatt();
            if (e.which == 3) {
               var disX = (e || event).clientX + 10;   //获取鼠标点击的横坐标
               var disY = (e || event).clientY + 10;   // 获取鼠标点击的纵坐标
               rightMenu.showMenu(menuItems, disX, disY);
            }
         });
         // 点击右键菜单跳转
         $('body').on('click', '#rightMenu .target', function() {
            var batt = getBatt();
            var pageName = $(this).data('data').target;
            var province = batt.StationName1;
            var city = batt.StationName2;
            var county = batt.StationName5;
            var home = batt.StationName;
            var battid = batt.BattGroupId;
            // 实现跳转
            window.open(skipUrl(pageName, province, city, county, home, battid));
         });
         // 点击基站机历卡
         $('body').on('click', '#rightMenu .home-info-card', function() {
            var batt = getBatt();
            // 显示基站机历卡
            showHomeInfo(batt.StationId);
         });
         // 工具条整体样式
         $('.siderbar-tools').tooltip();
         
@@ -4376,8 +4664,8 @@
               homeid: batt.StationId,
               battid: batt.BattGroupId
            };
            findBattinfByBattGroupId(batt.BattGroupId);
            findStationInfoByStation(batt);
            // 显示基站机历卡
            showHomeInfo(batt.StationId);
            // 根据数据定位
            localSideBar(treeView, treeView.container, tmp);
         });
@@ -4480,24 +4768,29 @@
         $('#sysSet_read').click(function() {
            var batt = getBatt();
            var temp = {
               dev_id:batt.FBSDeviceId
               dev_id:batt.FBSDeviceId,
               num: sysCMD.get
            };
            searchSysData(temp, true);
         });
         
         // 点击设置系统参数
         // 点击系统参数按钮
         $('#sysSet').click(function() {
            var batt = getBatt();
            var temp = {
               dev_id:batt.FBSDeviceId
               dev_id:batt.FBSDeviceId,
               num: sysCMD.get
            };
            searchSysData(temp);
         });
         
         // 设置
         $('#sysSet_en').click(function() {
            // 判断当前按钮是否可以点击
            if($(this).hasClass('whyc-btn-disabled')) {
               return;
            }
            var tmp = getSysSetData();
            updateSysData(tmp);
         });
         
@@ -4513,11 +4806,12 @@
                  var batt = getBatt();
                  var temp = {
                     dev_id: batt.FBSDeviceId,
                     cmd: sysCMD.restart
                     num: sysCMD.restart
                  };
                  
                  console.log(temp);
                  return;
                  /* console.log(temp);
                  layer.msg('功能开发中...');
                  return; */
                  // 重启
                  restartSys(temp);
               }else {
@@ -4531,6 +4825,8 @@
         function searchSysData(temp, showSU) {
            // 开启等待框
            var load = layer.load(1);
            // 设置按钮无法可点.whyc-btn-disabled
            $('#sysSet_en').addClass('whyc-btn-disabled');
            // 请求后台
            $.ajax({
                  type: "post",
@@ -4543,7 +4839,11 @@
                      console.info(rs);
                      if(rs.code == 1){
                         var data = rs.data[0];
                         // 移除不可点击状态
                         initSysDataPopup();
                         $('#sysSet_en').removeClass('whyc-btn-disabled');
                         setSysSetData(data);
                         sysSet_popup.showPopup();
                         if(showSU) {
                            noContent.showNoContent('读取成功', true);
                         }
@@ -4574,7 +4874,7 @@
                  data: "json = " + JSON.stringify(temp),
                  success: function(result) {
                      var rs = JSON.parse(result.result);
                      console.info(rs);
                      //console.info(rs);
                      if(rs.code == 1){
                         noContent.showNoContent('更新成功', true);
                      }else{
@@ -4637,17 +4937,23 @@
            $('#sysSet_endur').val(data.GroupVolRange);         // 总续航时间
            $('#sysSet_firTime').val(data.GroupVolSorce);         // 保一次下电续航时间
            $('#sysSet_range').val(data.CurrentRange);         // 电流钳量程
            $('#sysSet_firVol').val(data.CurrentTyte);         // 一次下电电压
            $('#sysSet_secVol').val(data.MonomerOrder);         // 二次下电电压
            $('#sysSet_firVol').val(data.CurrentTyte/10);         // 一次下电电压
            $('#sysSet_secVol').val(data.MonomerOrder/10);         // 二次下电电压
            $('#sysSet_dcdc').val(data.LoaderCount);         // DCDC模块数量
            $('#sysSet_sourceStyle').val(data.DtCardCount);      // 单体数据来源类型
            $('#sysSet_bleedNum').val(data.PowerBreakChargeCurr);      // 停电升压榨干电池数量
            //var POF_BG_Boost_Cnt = data.POF_BG_Boost_Cnt?data.POF_BG_Boost_Cnt:1;
            $('#sysSet_bleedNum').val(data.POF_BG_Boost_Cnt);      // 停电升压榨干电池数量
            $('#sysSet_stopLimit').val(data.POF_BG_Boost_VolStop);      // 停电升压榨干电池端电压终止电压下限
            $('#sysSet_startLimit').val(data.POF_BG_Boost_VolStart);      // 停电升压榨干电池端电压启动电压下限
            //var majorBattGroupNum = data.MajorBattGroupNum?data.MajorBattGroupNum:1;
            $('#sysSet_groupNum').val(data.MajorBattGroupNum);   // 电池合路器主电池组编号
            $('#sysSet_backLightTime').val(data.BackLightTime);               // 背光时间
            $('#sysSet_powerBreakChargeCurr').val(data.PowerBreakChargeCurr);   //  停电充电电流
            
            sysSet_popup.showPopup();
            GLOBAL.testVal.check($('#sysSet_bleedNum'), $('#sysSet_bleedNum').data('testVal'), checkSysData);
            GLOBAL.testVal.check($('#sysSet_groupNum'), $('#sysSet_groupNum').data('testVal'), checkSysData);
         }
         
         // 获取面板信息的值
@@ -4670,7 +4976,7 @@
            var startLimit = $('#sysSet_startLimit').val();         // 停电升压榨干电池端电压启动电压下限
            var groupNum = $('#sysSet_groupNum').val();            // 电池合路器主电池组编号
            var backLightTime = $('#sysSet_backLightTime').val();               // 背光时间
            var powerBreakChargeCurr = $('#sysSet_powerBreakChargeCurr').val();   //  停电充电电流
            
            var rs = {
               dev_id: dev_id,
@@ -4681,19 +4987,254 @@
               GroupVolRange: endur,
               GroupVolSorce: firTime,
               CurrentRange: range,
               CurrentTyte: firVol,
               MonomerOrder: secVol,
               CurrentTyte: firVol*10,
               MonomerOrder: secVol*10,
               LoaderCount: dcdc,
               DtCardCount: sourceStyle,
               PowerBreakChargeCurr:bleedNum,
               POF_BG_Boost_Cnt:bleedNum,
               POF_BG_Boost_VolStop:stopLimit,
               POF_BG_Boost_VolStart:startLimit,
               MajorBattGroupNum:groupNum,
               BackLightTime:backLightTime,
               PowerBreakChargeCurr: powerBreakChargeCurr,
               num: sysCMD.set
            };
            
            return rs;
         }
         // 查询信号质量模块
         var gprs = GLOBAL.CMD.gprs;
         var signalSearch = {
            num: gprs.param,
            AT_cmd: gprs.signal,
            dev_id: ''
         };
         // 点击查看当前信号的质量
         $('#signalBtn').click(function() {
            var batt = getBatt();
            var status = GLOBAL.circleStatus.status;
            var btsOpts = GLOBAL.circleStatus.btsOpts;
            //var btsOpts = GLOBAL.circleStatus.btsOpts;
            signalSearch.dev_id = batt.FBSDeviceId;
            var load = layer.load(1);
            // 请求后台获取信号的质量
            searchStationSignal(signalSearch,function(data){
               layer.close(load);
               // 基础配置
               var signalOpts = {
                  img: signalBad,
                  isShow: true,
                  startX: 10,
                  startY: 30,
                  name: ''
               };
               var signalInfo = formatSignal("");
               if(data.code == 1) {
                  var csq = data.data.ack_inf;
                  signalInfo = formatSignal(csq);
               }
               // 显示图片类型
               if(signalInfo.img) {
                  signalOpts.img = signalGood;
               }
               // 图片描述
               signalOpts.name = '信号强度:'+signalInfo.signal;
               // 显示信号强度
               layer.msg(signalOpts.name, {time: 5000});
            });
         });
         // 解析信号质量结果
         function formatSignal(signal) {
            var rs = {
               signal: '未知',
               bitError: '未知',
               img: 0
            };
            var ptn = new RegExp(".*:\\s(\\d{2}),(\\d{2})");
            var testCsq = ptn.test(signal);
            if(testCsq) {
               rs.signal = RegExp.$1;
               rs.bitError = RegExp.$2;
               if(rs.signal>25) {
                  rs.img = 1;
                  rs.signal += '(强)';
               }else if(rs.signal>19) {
                  rs.img = 1;
                  rs.signal += '(中)';
               }else {
                  rs.signal += '(弱)';
               }
            }
            //console.info(rs);
            return rs;
         }
         // 设备进程显示
         var threadInfoSearch = {
            num: gprs.threadinfo,
            dev_id:910000001
         };
         // 点击设备进程按钮
         $('#threadInfo').click(function() {
            // console.log(threadInfoSearch);
            var batt = getBatt();
            //console.log(batt);
            threadInfoSearch.dev_id = batt.FBSDeviceId;
            SendDeviceThreadInfo(threadInfoSearch,function(data){
               searchDeviceThreadInfo({dev_id: threadInfoSearch.dev_id});
            });
         });
         //给GPRS发送指定的命令,获取AT返回值
         var threadInfoLoad;
         function SendDeviceThreadInfo(param,callback){
            threadInfoLoad = layer.load(1);
            $.ajax({
                 type:"post",
                 url: "Bts_gprs_stateAction_action_update_bts_task_inf",
                 async:true,
                 dataType:'json',
                 data:'json='+JSON.stringify(param),
                 success: function(data){
                  var model = eval('('+data.result+')');
                  console.info(model);
                  if(callback && typeof callback == 'function'){
                     callback(model);
                  }
                 },error:function(e){
                    var model = {
                       code:0,
                       data:e,
                       msg:'通信失败'
                    };
                    if(callback && typeof callback == 'function'){
                     callback(model);
                  }
                 }
            });
         }
         //查询设备的进程信息
         function searchDeviceThreadInfo(param,callback){
            $.ajax({
                 type:"post",
                 url: "Bts_gprs_stateAction_action_serchByCondition",
                 async:true,
                 dataType:'json',
                 data:'json='+JSON.stringify(param),
                 success: function(data){
                    layer.close(threadInfoLoad);
                  var model = eval('('+data.result+')');
                  if(model.code == 1) {
                     var btsTaskInf = model.data[0].bts_task_inf;
                     layer.open({
                        title: '设备进程',
                        width: 380,
                        height: 450,
                        content: '<pre>'+btsTaskInf+'</pre>'
                     });
                  }else {
                     layer.msg('查询失败');
                  }
                  if(callback && typeof callback == 'function'){
                     callback(model);
                  }
                 },error:function(e){
                    var model = {
                       code:0,
                       data:e,
                       msg:'通信失败'
                    };
                    if(callback && typeof callback == 'function'){
                     callback(model);
                  }
                 }
            });
         }
         // 电池参数
         var battCMD = GLOBAL.CMD.batt;   // cmd命令
         var battPopup = GLOBAL.battInfoPopup; // 电池参数模块
         battPopup.testVal();   // 设置面板的取值范围
         $('#battInfoBtn').click(function() {
            // 获取电池信息
            var batt = getBatt();
            var temp = {
               dev_id: batt.FBSDeviceId
            };
            // 查询电池参数面板信息
            var load = layer.load(1);
            battPopup.search(temp, batt, function(res, binf) {
               layer.close(load);
               battInfo_popup.showPopup();   // 显示battInfo_popup弹出框和遮罩层
            });
         });
         // 点击设定
         $('#battInfo_en').click(function() {
            if($(this).hasClass('whyc-btn-disabled')) {
               return;
            }
            // 设置电池参数面板信息
            var load = layer.load(1);
            battPopup.set(function(res) {
               layer.close(load);
               layer.msg(res.msg);
            });
         });
         // 点击读取
         $('#battInfo_read').click(function() {
            var batt = getBatt();
            var temp = {
               dev_id: batt.FBSDeviceId
            };
            // 设置电池参数面板信息
            var load = layer.load(1);
            battPopup.read(function(res) {
               layer.close(load);
               // console.log(res);
               if(res.code == 1) {
                  battPopup.search(temp, batt, function(res, binf) {
                     layer.close(load);
                     layer.msg('获取参数成功');
                  });
               }else {
                  layer.msg('获取参数失败');
               }
            });
         });
         // 查询电池参数的值
         function searchBattInfo(temp, binf) {
            var load = layer.load(1);
            // 查询电池参数
            $.ajax({
               type: 'post'
               ,async: true
               ,url:'Fbs9100_battparamAction_action_serchByCondition'
               ,data: 'json='+JSON.stringify(temp)
               ,dataType: 'json'
               ,success: function(res) {
                  var rs = JSON.parse(res.result);
                  //console.log(rs);
               }
               ,complete: function() {
                  layer.close(load);
               }
            });
         }
      });
      
@@ -4714,6 +5255,107 @@
            tabContents.eq(index).addClass('con-show');
         });
      });
      var gprs = GLOBAL.CMD.gprs;
      var temp = {
         num: gprs.param,
         AT_cmd: gprs.signal,
         dev_id:910000577
      };
      //根据索引获取状态
      function getStateFromIndex(index,statearr){
         var state = '无';
         if(index>0 && statearr && statearr.length>index){
            state = statearr[index];
         }
         return state;
      }
      /* searchStationSignal(temp,function(data){
         changeEleCircleOpt(eleCircle, 'signal', {
            img: signalBad,
            isShow: true,
         });
         var csq = data.data.ack_inf;
         var ptn = new RegExp(".*:\\s(\\d{2}),(\\d{2})");
         var testCsq = ptn.test(csq);
         console.log(RegExp.$1);
         console.log(RegExp.$2);
         console.log(data.data.ack_inf);
      }); */
      //获取设备的dcdc状态
      function searchDevDcDcState(temp){
         var obj = getBatt();
         var temp = {
            dev_id: obj.FBSDeviceId
         };
         $.ajax({
               type: "post",
               url: "Fbs9100s_dcdc_stateAction_action_serchByInfo",
               async: true,
               dataType: 'json',
               data: "json = " + JSON.stringify(temp),
               success: function(result) {
                   var rs = JSON.parse(result.result);
                   //console.info(rs);
                   if(rs.code == 1){
                      var dcdcWarn = '';
                      var data = rs.data;
                      for(var i=0; i<data.length; i++) {
                         var _data = data[i];
                         if(i ==  (data.length-1)) {
                            dcdcWarn += '0x'+_data.dcdc_SMR_Alarm1_16;
                         }else {
                            dcdcWarn += '0x'+_data.dcdc_SMR_Alarm1_16+'/';
                         }
                      }
                      changeEleCircleOpt(eleCircle, 'dcdcWarn', {name: 'DCDC模块告警:'+dcdcWarn});
                   }else{
                      changeEleCircleOpt(eleCircle, 'dcdcWarn', {name: 'DCDC模块告警:未知'});   //
                   }
               },
               error: function() {
               }
           });
      }
      //查询设备的SD卡状态
      function searchDevSDState(){
         var obj= getBatt();
         var status = GLOBAL.circleStatus.status;
         $.ajax({
               type: "post",
               url: "Bts_station_stateAction_action_serchSDCard",
               async: true,
               dataType: 'json',
               data: "json = " + JSON.stringify(obj),
               success: function(result) {
                   var rs = JSON.parse(result.result);
                   //console.info(rs);
                   var sdStatus = (rs.data == 0)?'正常': '<span style="color: #FF0000">故障</span>';
                   //console.log(sdStatus);
                   status.setText('sdCard', "SD卡状态:"+sdStatus);
                   clearTimeout(searchDevSDState.timeout);
                   searchDevSDState.timeout = setTimeout(function() {
                      searchDevSDState();
                   }, 2000);
               },
               error: function() {
                  clearTimeout(searchDevSDState.timeout);
                   searchDevSDState.timeout = setTimeout(function() {
                      searchDevSDState();
                   }, 5000);
               }
           });
      }
   </script>
   <script type="text/javascript" src="js/Title.js"></script>
   <script type="text/javascript" src="js/control.js"></script>