whychdw
2020-06-30 59d6b60e7d4267835bf5ce272c55e170f314b039
修改预估容量算法
2个文件已修改
1055 ■■■■ 已修改文件
zijing/WebRoot/js/base.js 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zijing/WebRoot/js/dischargetest/61850.js 1043 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zijing/WebRoot/js/base.js
@@ -293,6 +293,18 @@
    return Number(work_curr.toFixed(2));
}
/*
 * 获取10小时率的容量(算法升级版)
 * @param int stdah 标称容量
 * @param current 测试电流
 * @return 10小时率的容量
 */
function get10HCapPlus(stdah, current,userCap) {
    userCap = strToNum(userCap);
    var cap = (stdah/get10HCap(stdah, current)*userCap).toFixed(0);
    return cap;
}
// 将字符串转化为数字
function strToNum(str) {
    str = Number(str);
zijing/WebRoot/js/dischargetest/61850.js
@@ -1,517 +1,528 @@
var CMD_61850_HR = 37;                //启动核容测试
var CMD_61850_RES = 50;                //启动内阻测试
var CMD_61850_START = 81;                    //启动测试
var CMD_61850_STOP = 83;                    //停止测试
var CMD_61850_SETPARAM = 40;                //设置参数
var CMD_61850_GETPARAM = 41;                //获取参数
var dev_61850_workstates = ["在线浮充","预充电","核容测试","停电放电","内阻测试","K1/D1测试"];
var dev_61850_alarmstates = ["继电器K1告警","通讯告警","设备过温告警","二极管D1告警"];
var equip61850Btn = {
    disabled: function() {
        $('#equip61850_btn_start_test').addClass('whyc-btn-disabled');
        $('#equip61850_btn_ensure').addClass('whyc-btn-disabled');
    },
    active:function() {
        $('#equip61850_btn_start_test').removeClass('whyc-btn-disabled');
        $('#equip61850_btn_ensure').removeClass('whyc-btn-disabled');
    },
    startTest:function(param) {
        if(param) {
            $('#equip61850_btn_start_test').removeClass('whyc-btn-disabled');    // 启动测试可以点击
        }else {
            $('#equip61850_btn_start_test').addClass('whyc-btn-disabled');    // 启动测试无效
        }
    },
    ensure: function(param) {
        if(param) {
            $('#equip61850_btn_ensure').removeClass('whyc-btn-disabled');     // 设置参数可以点击
        }else {
            $('#equip61850_btn_ensure').addClass('whyc-btn-disabled'); // 设定参数无效
        }
    },
    flush: function(param) {
        if(param) {
            $('#equip61850_btn_flush').removeClass('whyc-btn-disabled');     // 设置参数可以点击
        }else {
            $('#equip61850_btn_flush').addClass('whyc-btn-disabled'); // 设定参数无效
        }
    }
};
// 61850数据校验
$(function() {
    // 放电电流
    $('#equip61850_discharge_curr').testVal({
        pattern: /^[0-9]{1,3}$/,
        regVal: true,
        min: 1,
        max: 300,
        msg: '取值范围1~300(整数)'
    });
    // 放电时长
    $('#equip61850_dis_time').testVal({
        pattern: /^[0-9]{1,4}$/,
        regVal: true,
        min: 1,
        max: 10000,
        msg: '取值范围1~10000(整数)'
    });
    // 放电电容
    $('#equip61850_dis_cap').testVal({
        pattern: /^[0-9]{1,4}$/,
        regVal: true,
        min: 1,
        max: 2000,
        msg: '取值范围1~2000(整数)'
    });
    // 单体温度上限(保留一位小数)
    $('#equip61850_dcdc_tmp_dis').testVal({
        pattern: /^[0-9]{1,2}(\.[0-9]{0,1})?$/,
        regVal: true,
        min: 10,
        max: 60,
        msg: '取值范围10~60(保留一位小数)'
    });
    // 组端电压下限(保留两位小数)
    $('#equip61850_group_vol_low').testVal({
        pattern: /^[0-9]{1,2}(\.[0-9]{0,1})?$/,
        regVal: true,
        min: 43,
        max: 54,
        msg: '取值范围43.0~54.0(保留一位小数)'
    });
    // 单体电压下限(保留三位小数)
    $('#equip61850_mon_vol_low').testVal({
        pattern: /^[0-9]{1,2}(\.[0-9]{0,2})?$/,
        regVal: true,
        min: 1.8,
        max: 2.25,
        msg: '取值范围1.80~2.25(保留两位小数)'
    });
    // 修改放电电流
    $('#equip61850_discharge_curr').on('input propertychange', function() {
        var curr = $(this).val();
        var batt = getBatt();
        $('#equip61850_advise_dis_cap').text(get10HCap(batt.MonCapStd, curr));
        $('#equip61850_advise_work_curr').text(getNegPoleVol(mygraph.online, mygraph.group, curr));
    });
    // 获取61850面板的所有文本框
    $('#equip61850').on('input propertychange', 'input[type=text]', function() {
        set61850PopupStatus($(this).attr('id'), $(this).val());
    });
    // 获取61850面板的所有的下拉框
    $('#equip61850').on('change', 'select', function() {
        set61850PopupStatus($(this).attr('id'), $(this).val());
    });
    // 检测KD测试关闭
    $('#equip61850_discharge_type').on('change', function() {
        set61850KDParams();
    });
});
/**
 * 获取LD9设备的告警类型
 * @param {} str
 */
function getAlarmStr(str){
    var alarm_str = "";
    var alarm_count= 0;
    if(str != undefined){
        var arr = str.split(",");
        //console.info(arr);
        for(var i=0;i<arr.length;i++){
            if(arr[i] == 'true'){
                alarm_count++;
                alarm_str += (alarm_count>0?",":"")+dev_61850_alarmstates[i]
            }
        }
    }
    if(alarm_count == 0) {
        alarm_str = '无';
    }
    return alarm_str;
}
// 查询61850设备信息
function search61850Infor(temp) {
    loading.showLoading();
    $.ajax({
        type: "post",
        //url: "BTS_61850_setparamAction_61850action_serchByCondition",
        url: "Fbs9100_setparamAction_action_serchByCondition",
        async:true,
        dataType:'text',
        data:"json="+JSON.stringify(temp),
        success: function(data){
            data = eval('('+data+')');
            var model = eval('('+data.result+')');
            if(model.data!=undefined && model.data.length>0){
                if(model.code == 0){
                    noContent.showNoContent("读取放电参数失败!");
                    initPopup(equip61850_popup, true);
                }else{
                    initPopup(equip61850_popup);
                }
                var arrtd = new Array();
                for(var i = 0;i<model.data.length;i++){
                    battlist.push(model.data[i].binf);
                    arrtd.push(model.data[i].binf.StationName);                    //机房名称
                    arrtd.push(model.data[i].binf.BattGroupName);                //电池组名称
                    arrtd.push(model.data[i].binf.FBSDeviceId);                    //设备id
                    arrtd.push(model.data[i].binf.GroupIndexInFBSDevice+1);        //被测电池组号
                    if(model.data[i].fsparam.TestCmd == CMD_61850_RES){
                        arrtd.push('内阻测试');                                    //设定测试类型
                    }else{
                        arrtd.push('核容测试');
                    }
                    arrtd.push(model.data[i].fsparam.DisCurr);            //设定测试电流
                    arrtd.push('已停止');                                            //工作状态
                    arrtd.push(formatSeconds(0));                                //已测时长
                    arrtd.push(model.data[i].fstate.dev_commcount);            //通信计数
                    var temp = {
                        dev_id:model.data[i].binf.FBSDeviceId,
                        battgroupid:model.data[i].binf.BattGroupId,
                        batt_index:model.data[i].binf.GroupIndexInFBSDevice+1,
                        stationname:model.data[i].binf.StationName,
                        battgroupname:model.data[i].binf.BattGroupName
                    };
                    RecordUserDev(temp);            //记录用户添加的设备
                }
                addFullTr($('.tbl-header'), $('.tbl-body'), arrTh, arrtd);
            }
            if(model.code == 1){
                set61850DevTableTdValue();                    //获取参数成功时将获取到的参数设置到表格中
            }
            set61850Param(model.data,(model.code == 0));
            equip61850_popup.showPopup();
            loading.hideLoading();
        },
        error:function(){
            noContent.showNoContent("读取放电参数失败!");
            loading.hideLoading();
        }
    });
}
// 设置61850设备的面板内容
function set61850Param(list, errorStatus) {
    var batt = getBatt();
    if(list != undefined && list.length > 0){
        var advise_discharge_curr = list[0].binf.Load_curr<=5?4:list[0].binf.Load_curr-3;
        var param = list[0].fsparam;
        $('#equip61850_discharge_curr').val(param.DisCurr);                //放电电流
        $('#equip61850_advise_discharge_curr').text(advise_discharge_curr);    // 放电电流建议值
        $('#equip61850_dis_time').val(param.DisTime);                    //放电时长
        $('#equip61850_dis_cap').val(param.DisCap);                        //放电容量
        $('#equip61850_dcdc_tmp_dis').val(param.MonomerTmp_High);        //单体温度上限
        $('#equip61850_group_vol_low').val(param.GroupVol_Low);            //组端电压上限
        $('#equip61850_mon_vol_low').val(param.MonomerVol_Low);            //单体电压下限
        //$('#equip61850_MonomerlowCount').val(param.MonomerLowCount);    // 单体下限数量
        $('#equip61850_DCVolHighLimit').val(param.DCVolHighLimit);        // 单体升压上限
        $('#equip61850_ChargeCurrSet').val(param.ChargeCurrSet);        // 充电电流
        // 选择测试类型下拉列表
        changeSelected($('#equip61850_discharge_type'), param.TestCmd);
        // 设置核容容量的预估值
        $('#equip61850_advise_dis_cap').text(get10HCap(batt.MonCapStd, param.DisCurr));
        //console.info($('#equip61850_discharge_type').data());
        set61850KDParams();    // 设置KD测试时参数的样式
        // 设置61805面板的设备工作电流
        var curr = $('#equip61850_discharge_curr').val();
        $('#equip61850_advise_work_curr').text(getNegPoleVol(mygraph.online, mygraph.group, curr))
    }
}
//根据机房名称查询机房下的电池组信息
function search61850BattInfoByStation(temp){
    //获取当前选中的行号
    //var index = $('#main .tbl-body tbody tr.active').index();
    //var temp = tabList[index];                //获取当前选中的电池组
    //console.info(temp);
    $.ajax({
        type: "post",
        url: "BattInfAction!serchByBattGroupName",
        async:true,
        dataType:'json',
        data:"bif.StationName1=&bif.StationName="+temp.binf.StationName,
        success:function(data){
            var model = eval("("+data.result+")");
            if(model.code == 1){
                DevBattInfo = model.data;
                $('#equip61850Battgroupname').text('');
                for(var i=0;i<model.data.length;i++){
                    var batt = model.data[i];
                    var $option = $("<option></option>");
                    $option.text(batt.StationName+":"+batt.BattGroupName+"-"+batt.MonCount+"节");
                    $option.attr("batt_number",batt.GroupIndexInFBSDevice+1);
                    $option.attr("battgroupid",batt.BattGroupId);
                    $option.attr("value",batt.BattGroupId);
                    $option.attr("batt_name",batt.BattGroupName);
                    if(temp.binf.BattGroupId == batt.BattGroupId){
                        $option.attr("selected",true);                            //默认选中当前选中的电池组
                        $('#equip61850_dev_id').val(batt.FBSDeviceId);
                        $('#equip61850_battgropunum').val(batt.GroupIndexInFBSDevice + 1);
                        $('#equip61850_dev_battgroup_property').val("单体数量:"+batt.MonCount+";电压(V):"+batt.MonVolStd+";容量(AH):"+batt.MonCapStd);
                    }
                    $('#equip61850Battgroupname').append($option);
                }
                setDischageBattinfo(temp.fstate.dev_testgroupnum);
            }
        },
        error:function(){
        }
    });
}
//当获取参数成功的时候更新表格中的部分参数值
function set61850DevTableTdValue(){
    $('#main .tbl-body tbody tr').each(function(i){
        var dev_id = $(this).find('td').eq(2).text();
        if(dev_id == $('#equip61850_dev_id').val()){
            $(this).find('td').eq(1).text($('#equip61850Battgroupname option:selected').attr('batt_name'));
            $(this).find('td').eq(3).text($('#equip61850_battgropunum').val());
            $(this).find('td').eq(4).text($('#equip61850_discharge_type').find("option:selected").text());
            $(this).find('td').eq(5).text($('#equip61850_discharge_curr').val());
            $('#main .tbl-header tbody tr').eq(i).find('td').eq(1).text($('#equip61850Battgroupname option:selected').attr('batt_name'));
            $('#main .tbl-header tbody tr').eq(i).find('td').eq(3).text($('#equip61850_battgropunum').val());
             $('#main .tbl-header tbody tr').eq(i).find('td').eq(4).text($('#equip61850_discharge_type').find("option:selected").text());
             $('#main .tbl-header tbody tr').eq(i).find('td').eq(5).text($('#equip61850_discharge_curr').val());
        }
    });
}
//获取设备的测试参数等
function search61850TestParam(temp){
    var is_showAlert = (arguments.length==1);
    loading.showLoading();
    $.ajax({
        type: "post",
        url:"Fbs9100_setparamAction_action_serchbyDev_id",
        async:true,
        dataType:'text',
        data:"json="+JSON.stringify(temp),
        success: function(data){
            data = eval('('+data+')');
            var model = eval('('+data.result+')');
            if(model.code == 1 && model.data != undefined && model.data.length>0){
                set61850Param(model.data, false);
                if(is_showAlert){
                    noContent.showNoContent("获取测试参数成功", true);
                }
                initPopup(equip61850_popup);
                set61850PopupStatus();
                set61850DevTableTdValue();
            }else{
                if(model.data != undefined && model.data.length>0){
                    set61850Param(model.data, true);
                }
                initPopup(equip61850_popup, true);
                noContent.showNoContent("获取测试参数失败");
            }
            loading.hideLoading();
        },
        error:function(){
            initPopup(equip61850_popup, true);
            noContent.showNoContent("获取测试参数失败");
            loading.hideLoading();
            //LD9_popup.showPopup();
        }
    });
}
//更新61850测试参数
function update61850TestParam(){
    var param = getTestParam();
    loading.showLoading();
    $.ajax({
        type: "post",
        url:"Fbs9100_setparamAction_action_update61850Param",
        async:true,
        dataType:'text',
        data:"json="+JSON.stringify(param),
        success: function(data){
            data = eval('('+data+')');
            var model = eval('('+data.result+')');
            //console.info(model);
            if(model.code == 1){
                noContent.showNoContent("修改测试参数成功", true);
                var temp = {
                    num:CMD_61850_GETPARAM,
                    dev_id:param.dev_id
                };
                search61850TestParam(temp,true);                //重新读取一次测试参数
                set61850DevTableTdValue();                        //更新表格中的参数
            }else{
                noContent.showNoContent("修改测试参数失败");
            }
            loading.hideLoading();
        },
        error:function(){
            noContent.showNoContent("修改测试参数失败");
            loading.hideLoading();
        }
    });
}
//发送指定的命令给61850设备    (启动,停止)
function sendCmdTo61850Dev(temp){
    //console.info(temp);
    $.ajax({
        type: "post",
        //url:"BTS_61850_setparamAction_61850action_updateCMd",
        url:"Fbs9100_setparamAction_action_serchbyDev_id",
        async:true,
        dataType:'text',
        data:"json="+JSON.stringify(temp),
        success: function(data){
            data = eval('('+data+')');
            var model = eval('('+data.result+')');
            //console.info(model);
            if(model.code == 1 ){
                show61850Content(temp.num,true);
            }else{
                show61850Content(temp.num,false);
            }
            loading.hideLoading();
        },
        error:function(){
            show61850Content(temp.num,false);
            loading.hideLoading();
            //LD9_popup.showPopup();
        }
    });
}
//显示不同的提示框
function show61850Content(cmd,issuccess){
    if(cmd == CMD_61850_START){
        if(issuccess){
            noContent.showNoContent("启动测试成功", true);
        }else{
            noContent.showNoContent("启动测试失败");
        }
    }else if(cmd == CMD_61850_STOP){
        if(issuccess){
            noContent.showNoContent("停止测试成功", true);
        }else{
            noContent.showNoContent("停止测试失败");
        }
    }
}
//根据面板中的数据获取测试参数
function getTestParam(){
    var param = {
        num:CMD_61850_SETPARAM,
        dev_id:$('#equip61850_dev_id').val(),
        TestCmd:$('#equip61850_discharge_type').val(),
        DisCap:$('#equip61850_dis_cap').val(),
        DisCurr:$('#equip61850_discharge_curr').val(),
        DisTime:$('#equip61850_dis_time').val(),
        GroupVol_Low:$('#equip61850_group_vol_low').val(),
        MonomerVol_Low:$('#equip61850_mon_vol_low').val(),
        MonomerTmp_High:$('#equip61850_dcdc_tmp_dis').val()
    };
    return param;
}
// 根据文本框内容设置61850的按钮状态
function set61850PopupStatus(id, val) {
    var textList = equip61850_popup.popup.find('input[type=text]');
    var selectList = equip61850_popup.popup.find('.popup-tbl select');
    var initData = equip61850_popup.popup.data().attr;
    var errorStatus = equip61850_popup.popup.data().errorStatus; // 获取是否读取参数失败
    // 读取设备参数失败
    if(errorStatus) {
        equip61850Btn.disabled();
        return false;    // 结束函数运行
    }
    // 遍历面板下的所有文本框查看是否有错误数据
    var isDisabled = false;
    textList.each(function() {
        if($(this).hasClass('error-data')) {
            isDisabled = true;
        }
    });
    // 存在错误的数据
    if(isDisabled) {
        equip61850Btn.disabled();
        return false;    // 结束函数运行
    }else {
        equip61850Btn.active();
    }
    // 判断下拉选项中是否有符合后台数据的值
    var existOpt = false;
    // 遍历面板表格中的下拉框
    for(var k=0; k<selectList.length; k++) {
        existOpt = false;
        var _realVal = selectList.eq(0).data('value');
        var _opts = selectList.eq(0).find('option');
        // 遍历下拉框中选项是否有和后台匹配的值
        for(var i=0; i<_opts.length; i++) {
            if(_opts.eq(i).val() == _realVal) {
                existOpt = true;
                break;
            }
        }
        // 后台传输的值没有存在下拉选项中
        if(!existOpt) {
            break;
        }
    }
    // 在面板中存在没有匹配到后台传输的下拉框
    if(!existOpt) {
        equip61850Btn.startTest(false);
        return false;        // 结束函数运行
    }
    // 遍历对比当前文本框的数据和原始数据是否一致
    for(var i=0; i<initData.length;i++) {
        // 遍历查询到当前的文本框
        if(initData[i].id == id) {
            if(initData[i].val == val) {
                equip61850Btn.active();
            }else {
                equip61850Btn.startTest(false);
            }
        }
    }
}
// 检测是否为KD测试,并设置参数是否可以设定
function set61850KDParams() {
    var test_type = $('#equip61850_discharge_type').val();
    var groupParams = $('#equip61850 .group-params');
    // 测试模式为KD测试
    if(test_type == 72 || test_type == 50) {
        groupParams.attr('readonly', 'readonly');
    }else {
        groupParams.attr('readonly', false);
    }
var CMD_61850_HR = 37;                //启动核容测试
var CMD_61850_RES = 50;                //启动内阻测试
var CMD_61850_START = 81;                    //启动测试
var CMD_61850_STOP = 83;                    //停止测试
var CMD_61850_SETPARAM = 40;                //设置参数
var CMD_61850_GETPARAM = 41;                //获取参数
var dev_61850_workstates = ["在线浮充","预充电","核容测试","停电放电","内阻测试","K1/D1测试"];
var dev_61850_alarmstates = ["继电器K1告警","通讯告警","设备过温告警","二极管D1告警"];
var equip61850Btn = {
    disabled: function() {
        $('#equip61850_btn_start_test').addClass('whyc-btn-disabled');
        $('#equip61850_btn_ensure').addClass('whyc-btn-disabled');
    },
    active:function() {
        $('#equip61850_btn_start_test').removeClass('whyc-btn-disabled');
        $('#equip61850_btn_ensure').removeClass('whyc-btn-disabled');
    },
    startTest:function(param) {
        if(param) {
            $('#equip61850_btn_start_test').removeClass('whyc-btn-disabled');    // 启动测试可以点击
        }else {
            $('#equip61850_btn_start_test').addClass('whyc-btn-disabled');    // 启动测试无效
        }
    },
    ensure: function(param) {
        if(param) {
            $('#equip61850_btn_ensure').removeClass('whyc-btn-disabled');     // 设置参数可以点击
        }else {
            $('#equip61850_btn_ensure').addClass('whyc-btn-disabled'); // 设定参数无效
        }
    },
    flush: function(param) {
        if(param) {
            $('#equip61850_btn_flush').removeClass('whyc-btn-disabled');     // 设置参数可以点击
        }else {
            $('#equip61850_btn_flush').addClass('whyc-btn-disabled'); // 设定参数无效
        }
    }
};
// 61850数据校验
$(function() {
    // 放电电流
    $('#equip61850_discharge_curr').testVal({
        pattern: /^[0-9]{1,3}$/,
        regVal: true,
        min: 1,
        max: 300,
        msg: '取值范围1~300(整数)'
    });
    // 放电时长
    $('#equip61850_dis_time').testVal({
        pattern: /^[0-9]{1,4}$/,
        regVal: true,
        min: 1,
        max: 10000,
        msg: '取值范围1~10000(整数)'
    });
    // 放电电容
    $('#equip61850_dis_cap').testVal({
        pattern: /^[0-9]{1,4}$/,
        regVal: true,
        min: 1,
        max: 2000,
        msg: '取值范围1~2000(整数)'
    });
    // 单体温度上限(保留一位小数)
    $('#equip61850_dcdc_tmp_dis').testVal({
        pattern: /^[0-9]{1,2}(\.[0-9]{0,1})?$/,
        regVal: true,
        min: 10,
        max: 60,
        msg: '取值范围10~60(保留一位小数)'
    });
    // 组端电压下限(保留两位小数)
    $('#equip61850_group_vol_low').testVal({
        pattern: /^[0-9]{1,2}(\.[0-9]{0,1})?$/,
        regVal: true,
        min: 43,
        max: 54,
        msg: '取值范围43.0~54.0(保留一位小数)'
    });
    // 单体电压下限(保留三位小数)
    $('#equip61850_mon_vol_low').testVal({
        pattern: /^[0-9]{1,2}(\.[0-9]{0,2})?$/,
        regVal: true,
        min: 1.8,
        max: 2.25,
        msg: '取值范围1.80~2.25(保留两位小数)'
    });
    // 修改放电电流
    $('#equip61850_discharge_curr').on('input propertychange', function() {
        var curr = $(this).val();
        var batt = getBatt();
        // 用户输入的容量
        var userCap = $("#equip61850_dis_cap").val();
        $('#equip61850_advise_dis_cap').text(get10HCapPlus(batt.MonCapStd, curr, userCap));
        $('#equip61850_advise_work_curr').text(getNegPoleVol(mygraph.online, mygraph.group, curr));
    });
    // 修改容量
    $('#equip61850_dis_cap').on('input propertychange', function() {
        var userCap = $(this).val();
        var batt = getBatt();
        // 用户输入的容量
        var curr = $("#equip61850_discharge_curr").val();
        $('#equip61850_advise_dis_cap').text(get10HCapPlus(batt.MonCapStd, curr, userCap));
    });
    // 获取61850面板的所有文本框
    $('#equip61850').on('input propertychange', 'input[type=text]', function() {
        set61850PopupStatus($(this).attr('id'), $(this).val());
    });
    // 获取61850面板的所有的下拉框
    $('#equip61850').on('change', 'select', function() {
        set61850PopupStatus($(this).attr('id'), $(this).val());
    });
    // 检测KD测试关闭
    $('#equip61850_discharge_type').on('change', function() {
        set61850KDParams();
    });
});
/**
 * 获取LD9设备的告警类型
 * @param {} str
 */
function getAlarmStr(str){
    var alarm_str = "";
    var alarm_count= 0;
    if(str != undefined){
        var arr = str.split(",");
        //console.info(arr);
        for(var i=0;i<arr.length;i++){
            if(arr[i] == 'true'){
                alarm_count++;
                alarm_str += (alarm_count>0?",":"")+dev_61850_alarmstates[i]
            }
        }
    }
    if(alarm_count == 0) {
        alarm_str = '无';
    }
    return alarm_str;
}
// 查询61850设备信息
function search61850Infor(temp) {
    loading.showLoading();
    $.ajax({
        type: "post",
        //url: "BTS_61850_setparamAction_61850action_serchByCondition",
        url: "Fbs9100_setparamAction_action_serchByCondition",
        async:true,
        dataType:'text',
        data:"json="+JSON.stringify(temp),
        success: function(data){
            data = eval('('+data+')');
            var model = eval('('+data.result+')');
            if(model.data!=undefined && model.data.length>0){
                if(model.code == 0){
                    noContent.showNoContent("读取放电参数失败!");
                    initPopup(equip61850_popup, true);
                }else{
                    initPopup(equip61850_popup);
                }
                var arrtd = new Array();
                for(var i = 0;i<model.data.length;i++){
                    battlist.push(model.data[i].binf);
                    arrtd.push(model.data[i].binf.StationName);                    //机房名称
                    arrtd.push(model.data[i].binf.BattGroupName);                //电池组名称
                    arrtd.push(model.data[i].binf.FBSDeviceId);                    //设备id
                    arrtd.push(model.data[i].binf.GroupIndexInFBSDevice+1);        //被测电池组号
                    if(model.data[i].fsparam.TestCmd == CMD_61850_RES){
                        arrtd.push('内阻测试');                                    //设定测试类型
                    }else{
                        arrtd.push('核容测试');
                    }
                    arrtd.push(model.data[i].fsparam.DisCurr);            //设定测试电流
                    arrtd.push('已停止');                                            //工作状态
                    arrtd.push(formatSeconds(0));                                //已测时长
                    arrtd.push(model.data[i].fstate.dev_commcount);            //通信计数
                    var temp = {
                        dev_id:model.data[i].binf.FBSDeviceId,
                        battgroupid:model.data[i].binf.BattGroupId,
                        batt_index:model.data[i].binf.GroupIndexInFBSDevice+1,
                        stationname:model.data[i].binf.StationName,
                        battgroupname:model.data[i].binf.BattGroupName
                    };
                    RecordUserDev(temp);            //记录用户添加的设备
                }
                addFullTr($('.tbl-header'), $('.tbl-body'), arrTh, arrtd);
            }
            if(model.code == 1){
                set61850DevTableTdValue();                    //获取参数成功时将获取到的参数设置到表格中
            }
            set61850Param(model.data,(model.code == 0));
            equip61850_popup.showPopup();
            loading.hideLoading();
        },
        error:function(){
            noContent.showNoContent("读取放电参数失败!");
            loading.hideLoading();
        }
    });
}
// 设置61850设备的面板内容
function set61850Param(list, errorStatus) {
    var batt = getBatt();
    if(list != undefined && list.length > 0){
        var advise_discharge_curr = list[0].binf.Load_curr<=5?4:list[0].binf.Load_curr-3;
        var param = list[0].fsparam;
        $('#equip61850_discharge_curr').val(param.DisCurr);                //放电电流
        $('#equip61850_advise_discharge_curr').text(advise_discharge_curr);    // 放电电流建议值
        $('#equip61850_dis_time').val(param.DisTime);                    //放电时长
        $('#equip61850_dis_cap').val(param.DisCap);                        //放电容量
        $('#equip61850_dcdc_tmp_dis').val(param.MonomerTmp_High);        //单体温度上限
        $('#equip61850_group_vol_low').val(param.GroupVol_Low);            //组端电压上限
        $('#equip61850_mon_vol_low').val(param.MonomerVol_Low);            //单体电压下限
        //$('#equip61850_MonomerlowCount').val(param.MonomerLowCount);    // 单体下限数量
        $('#equip61850_DCVolHighLimit').val(param.DCVolHighLimit);        // 单体升压上限
        $('#equip61850_ChargeCurrSet').val(param.ChargeCurrSet);        // 充电电流
        // 选择测试类型下拉列表
        changeSelected($('#equip61850_discharge_type'), param.TestCmd);
        // 设置核容容量的预估值
        $('#equip61850_advise_dis_cap').text(get10HCapPlus(batt.MonCapStd, param.DisCurr, param.DisCap));
        //console.info($('#equip61850_discharge_type').data());
        set61850KDParams();    // 设置KD测试时参数的样式
        // 设置61805面板的设备工作电流
        var curr = $('#equip61850_discharge_curr').val();
        $('#equip61850_advise_work_curr').text(getNegPoleVol(mygraph.online, mygraph.group, curr))
    }
}
//根据机房名称查询机房下的电池组信息
function search61850BattInfoByStation(temp){
    //获取当前选中的行号
    //var index = $('#main .tbl-body tbody tr.active').index();
    //var temp = tabList[index];                //获取当前选中的电池组
    //console.info(temp);
    $.ajax({
        type: "post",
        url: "BattInfAction!serchByBattGroupName",
        async:true,
        dataType:'json',
        data:"bif.StationName1=&bif.StationName="+temp.binf.StationName,
        success:function(data){
            var model = eval("("+data.result+")");
            if(model.code == 1){
                DevBattInfo = model.data;
                $('#equip61850Battgroupname').text('');
                for(var i=0;i<model.data.length;i++){
                    var batt = model.data[i];
                    var $option = $("<option></option>");
                    $option.text(batt.StationName+":"+batt.BattGroupName+"-"+batt.MonCount+"节");
                    $option.attr("batt_number",batt.GroupIndexInFBSDevice+1);
                    $option.attr("battgroupid",batt.BattGroupId);
                    $option.attr("value",batt.BattGroupId);
                    $option.attr("batt_name",batt.BattGroupName);
                    if(temp.binf.BattGroupId == batt.BattGroupId){
                        $option.attr("selected",true);                            //默认选中当前选中的电池组
                        $('#equip61850_dev_id').val(batt.FBSDeviceId);
                        $('#equip61850_battgropunum').val(batt.GroupIndexInFBSDevice + 1);
                        $('#equip61850_dev_battgroup_property').val("单体数量:"+batt.MonCount+";电压(V):"+batt.MonVolStd+";容量(AH):"+batt.MonCapStd);
                    }
                    $('#equip61850Battgroupname').append($option);
                }
                setDischageBattinfo(temp.fstate.dev_testgroupnum);
            }
        },
        error:function(){
        }
    });
}
//当获取参数成功的时候更新表格中的部分参数值
function set61850DevTableTdValue(){
    $('#main .tbl-body tbody tr').each(function(i){
        var dev_id = $(this).find('td').eq(2).text();
        if(dev_id == $('#equip61850_dev_id').val()){
            $(this).find('td').eq(1).text($('#equip61850Battgroupname option:selected').attr('batt_name'));
            $(this).find('td').eq(3).text($('#equip61850_battgropunum').val());
            $(this).find('td').eq(4).text($('#equip61850_discharge_type').find("option:selected").text());
            $(this).find('td').eq(5).text($('#equip61850_discharge_curr').val());
            $('#main .tbl-header tbody tr').eq(i).find('td').eq(1).text($('#equip61850Battgroupname option:selected').attr('batt_name'));
            $('#main .tbl-header tbody tr').eq(i).find('td').eq(3).text($('#equip61850_battgropunum').val());
             $('#main .tbl-header tbody tr').eq(i).find('td').eq(4).text($('#equip61850_discharge_type').find("option:selected").text());
             $('#main .tbl-header tbody tr').eq(i).find('td').eq(5).text($('#equip61850_discharge_curr').val());
        }
    });
}
//获取设备的测试参数等
function search61850TestParam(temp){
    var is_showAlert = (arguments.length==1);
    loading.showLoading();
    $.ajax({
        type: "post",
        url:"Fbs9100_setparamAction_action_serchbyDev_id",
        async:true,
        dataType:'text',
        data:"json="+JSON.stringify(temp),
        success: function(data){
            data = eval('('+data+')');
            var model = eval('('+data.result+')');
            if(model.code == 1 && model.data != undefined && model.data.length>0){
                set61850Param(model.data, false);
                if(is_showAlert){
                    noContent.showNoContent("获取测试参数成功", true);
                }
                initPopup(equip61850_popup);
                set61850PopupStatus();
                set61850DevTableTdValue();
            }else{
                if(model.data != undefined && model.data.length>0){
                    set61850Param(model.data, true);
                }
                initPopup(equip61850_popup, true);
                noContent.showNoContent("获取测试参数失败");
            }
            loading.hideLoading();
        },
        error:function(){
            initPopup(equip61850_popup, true);
            noContent.showNoContent("获取测试参数失败");
            loading.hideLoading();
            //LD9_popup.showPopup();
        }
    });
}
//更新61850测试参数
function update61850TestParam(){
    var param = getTestParam();
    loading.showLoading();
    $.ajax({
        type: "post",
        url:"Fbs9100_setparamAction_action_update61850Param",
        async:true,
        dataType:'text',
        data:"json="+JSON.stringify(param),
        success: function(data){
            data = eval('('+data+')');
            var model = eval('('+data.result+')');
            //console.info(model);
            if(model.code == 1){
                noContent.showNoContent("修改测试参数成功", true);
                var temp = {
                    num:CMD_61850_GETPARAM,
                    dev_id:param.dev_id
                };
                search61850TestParam(temp,true);                //重新读取一次测试参数
                set61850DevTableTdValue();                        //更新表格中的参数
            }else{
                noContent.showNoContent("修改测试参数失败");
            }
            loading.hideLoading();
        },
        error:function(){
            noContent.showNoContent("修改测试参数失败");
            loading.hideLoading();
        }
    });
}
//发送指定的命令给61850设备    (启动,停止)
function sendCmdTo61850Dev(temp){
    //console.info(temp);
    $.ajax({
        type: "post",
        //url:"BTS_61850_setparamAction_61850action_updateCMd",
        url:"Fbs9100_setparamAction_action_serchbyDev_id",
        async:true,
        dataType:'text',
        data:"json="+JSON.stringify(temp),
        success: function(data){
            data = eval('('+data+')');
            var model = eval('('+data.result+')');
            //console.info(model);
            if(model.code == 1 ){
                show61850Content(temp.num,true);
            }else{
                show61850Content(temp.num,false);
            }
            loading.hideLoading();
        },
        error:function(){
            show61850Content(temp.num,false);
            loading.hideLoading();
            //LD9_popup.showPopup();
        }
    });
}
//显示不同的提示框
function show61850Content(cmd,issuccess){
    if(cmd == CMD_61850_START){
        if(issuccess){
            noContent.showNoContent("启动测试成功", true);
        }else{
            noContent.showNoContent("启动测试失败");
        }
    }else if(cmd == CMD_61850_STOP){
        if(issuccess){
            noContent.showNoContent("停止测试成功", true);
        }else{
            noContent.showNoContent("停止测试失败");
        }
    }
}
//根据面板中的数据获取测试参数
function getTestParam(){
    var param = {
        num:CMD_61850_SETPARAM,
        dev_id:$('#equip61850_dev_id').val(),
        TestCmd:$('#equip61850_discharge_type').val(),
        DisCap:$('#equip61850_dis_cap').val(),
        DisCurr:$('#equip61850_discharge_curr').val(),
        DisTime:$('#equip61850_dis_time').val(),
        GroupVol_Low:$('#equip61850_group_vol_low').val(),
        MonomerVol_Low:$('#equip61850_mon_vol_low').val(),
        MonomerTmp_High:$('#equip61850_dcdc_tmp_dis').val()
    };
    return param;
}
// 根据文本框内容设置61850的按钮状态
function set61850PopupStatus(id, val) {
    var textList = equip61850_popup.popup.find('input[type=text]');
    var selectList = equip61850_popup.popup.find('.popup-tbl select');
    var initData = equip61850_popup.popup.data().attr;
    var errorStatus = equip61850_popup.popup.data().errorStatus; // 获取是否读取参数失败
    // 读取设备参数失败
    if(errorStatus) {
        equip61850Btn.disabled();
        return false;    // 结束函数运行
    }
    // 遍历面板下的所有文本框查看是否有错误数据
    var isDisabled = false;
    textList.each(function() {
        if($(this).hasClass('error-data')) {
            isDisabled = true;
        }
    });
    // 存在错误的数据
    if(isDisabled) {
        equip61850Btn.disabled();
        return false;    // 结束函数运行
    }else {
        equip61850Btn.active();
    }
    // 判断下拉选项中是否有符合后台数据的值
    var existOpt = false;
    // 遍历面板表格中的下拉框
    for(var k=0; k<selectList.length; k++) {
        existOpt = false;
        var _realVal = selectList.eq(0).data('value');
        var _opts = selectList.eq(0).find('option');
        // 遍历下拉框中选项是否有和后台匹配的值
        for(var i=0; i<_opts.length; i++) {
            if(_opts.eq(i).val() == _realVal) {
                existOpt = true;
                break;
            }
        }
        // 后台传输的值没有存在下拉选项中
        if(!existOpt) {
            break;
        }
    }
    // 在面板中存在没有匹配到后台传输的下拉框
    if(!existOpt) {
        equip61850Btn.startTest(false);
        return false;        // 结束函数运行
    }
    // 遍历对比当前文本框的数据和原始数据是否一致
    for(var i=0; i<initData.length;i++) {
        // 遍历查询到当前的文本框
        if(initData[i].id == id) {
            if(initData[i].val == val) {
                equip61850Btn.active();
            }else {
                equip61850Btn.startTest(false);
            }
        }
    }
}
// 检测是否为KD测试,并设置参数是否可以设定
function set61850KDParams() {
    var test_type = $('#equip61850_discharge_type').val();
    var groupParams = $('#equip61850 .group-params');
    // 测试模式为KD测试
    if(test_type == 72 || test_type == 50) {
        groupParams.attr('readonly', 'readonly');
    }else {
        groupParams.attr('readonly', false);
    }
}