whyclxw
2025-05-28 e16302f9d475c7cc4dd18c5abf1a23cb5502e362
src/main/java/com/whyc/service/Fbs9100SetparamService.java
@@ -2,66 +2,142 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.whyc.dto.DeviceTypeDTO;
import com.whyc.dto.FBS9100_ComBase;
import com.whyc.dto.Response;
import com.whyc.mapper.BattInfMapper;
import com.whyc.mapper.Fbs9100SetParamTempMapper;
import com.whyc.mapper.Fbs9100SetparamMapper;
import com.whyc.mapper.Li9130SetparamPlanMapper;
import com.whyc.pojo.Battinf;
import com.whyc.pojo.Fbs9100SetParamTemp;
import com.whyc.pojo.Fbs9100Setparam;
import com.whyc.pojo.Li9130SetparamPlan;
import com.whyc.util.ActionUtil;
import com.whyc.util.ThreadLocalUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
@Service
public class Fbs9100SetparamService {
    @Resource
    private Fbs9100SetparamMapper mapper;
    @Resource
    private Li9130SetparamPlanMapper li9130Mapper;
    @Resource
    private BattInfMapper binfMapper;
    @Resource
    private Fbs9100SetParamTempMapper tmpMapper;
    @Autowired
    private PwrdevAcdcdataService pwrdevAcdcservice;
    //查询设备的参数
    public Response serchdevParam(int devId) {
        sendCmdToFBS9100Dev(FBS9100_ComBase.CMD_GetDischargeParm,0,devId);
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("dev_id",devId);
        List list=mapper.selectList(wrapper);
        PageInfo pageInfo=new PageInfo(list);
        return  new Response().set(1,pageInfo);
        sendCmdToFBS9100Dev(FBS9100_ComBase.CMD_GetDischargeParm, 0, devId);
        QueryWrapper wrapper = new QueryWrapper();
        wrapper.eq("dev_id", devId);
        List list = mapper.selectList(wrapper);
        PageInfo pageInfo = new PageInfo(list);
        return new Response().set(1, pageInfo);
    }
    //右键查看参数和弹出框的刷新按钮-----BTS停止
    public Response serchbyDev_id(int num,Integer testCmd,int devId) {
        boolean bl=sendCmdToFBS9100Dev(num,testCmd!=null?testCmd:0,devId);
        Fbs9100Setparam setparam=mapper.serchbyDev_id(devId);
        return  new Response().setII(1,setparam,bl,bl==true?"查询成功!":"设置9100参数失败,请检查网络!");
    //右键查看参数和弹出框的刷新按钮-----BTS停止61850,6184
    public Response serchbyDev_id(int num, Integer testCmd, int devId, int battGroupNum) {
        boolean bl = sendCmdToFBS9100Dev2(num, testCmd != null ? testCmd : 0, devId, battGroupNum);
        if ((devId / 100000 == DeviceTypeDTO.DEVICE6185) && (num == FBS9100_ComBase.CMD_Start)) {//当启动放电设备为6185时
            //将二次放电表中电池组id的ischarge改为1
            //先查询出电池组id
            int battGroupId = 0;
            QueryWrapper queryWrapper = new QueryWrapper();
            queryWrapper.eq("FBSDeviceId", devId);
            queryWrapper.eq("GroupIndexInFBSDevice", battGroupNum - 1);
            queryWrapper.last("limit 1");
            Battinf binf = binfMapper.selectOne(queryWrapper);
            if (binf != null) {
                battGroupId = binf.getBattGroupId();
            }
            //修改ischarge改为1
            UpdateWrapper wrapper = new UpdateWrapper();
            wrapper.set("is_charge", 1);
            wrapper.eq("battGroupId", battGroupId);
            tmpMapper.update((Fbs9100SetParamTemp) ActionUtil.objeNull, wrapper);
        }
        Fbs9100Setparam setparam = mapper.serchbyDev_id(devId,battGroupNum-1);
        /*重庆bts4810(61850)
        目前客户的负载电流比较小,充放电参数设置时,小于0.1C10的,电流值要求能自动识别,
        采用一天内电流平均值来放电。负载电流大于0.1C10.用0.1C10放电客户要求自动填充,不要人为的录入.
        (100AH电池 负载电流小于10A 就用负载电流的平均值 大于10A 就用10A)
        */
        if (devId / 100000 == DeviceTypeDTO.DEVICE6185){
            //根据devId获取机房id
            QueryWrapper queryWrapper = new QueryWrapper();
            queryWrapper.eq("FBSDeviceId", devId);
            queryWrapper.last("limit 1");
            Battinf binf = binfMapper.selectOne(queryWrapper);
            if(binf!=null){
                //获取电源的负载电流
                float loadCurr=pwrdevAcdcservice.getBts4810LoadCurr(binf.getStationId(),binf.getMonCapStd());
                setparam.setLoadCurr(loadCurr);
            }else {
                setparam.setLoadCurr(0f);
            }
        }
        return new Response().setII(1, setparam, bl, bl == true ? "查询成功!" : "设置9100参数失败,请检查网络!");
    }
    //内阻测试
    public Response serchbyDev_id_res(int devId, int battGroupNum) {
        boolean bl = sendCmdToFBS9100Dev2(FBS9100_ComBase.CMD_Start, 50, devId, battGroupNum);
        return new Response().set(1,bl, bl == true ? "内阻测试成功!" : "内阻测试失败,请检查网络!");
    }
    //右键查看参数和弹出框的刷新按钮-----BTS停止基础上加上tb_li9130_setparam_plan表得is_statup设置为0
    public Response serchbyDev_id_li9130(int num, Integer testCmd, int devId, int battGroupNum) {
        boolean bl = sendCmdToFBS9100Dev2(num, testCmd != null ? testCmd : 0, devId, battGroupNum);
        //tb_li9130_setparam_plan表得is_statup设置为0
        UpdateWrapper wrapper = new UpdateWrapper();
        wrapper.set("is_startup", 0);
        wrapper.eq("dev_id", devId);
        int flag = li9130Mapper.update((Li9130SetparamPlan) ActionUtil.objeNull, wrapper);
        Fbs9100Setparam setparam = mapper.serchbyDev_id(devId,battGroupNum-1);
        return new Response().setIII(1, setparam, bl, flag > 0, bl == true ? "查询成功!" : "设置9100参数失败,请检查网络!");
    }
    //离线养护功能-----重启设备
    public Response updateMaintain(Fbs9100Setparam fbs9100Setparam) {
        boolean bl=false;
        int flag=0;
        String msg="";
        if(fbs9100Setparam.getOpCmd()==FBS9100_ComBase.CMD_ResetSystem){
            bl=sendCmdToFBS9100Dev(fbs9100Setparam.getOpCmd(),0,fbs9100Setparam.getDevId().intValue());
            if(bl){
                flag=1;
                msg="重启成功!";
            }else{
               flag=0;
               msg="重启失败,请检查网络!";
        boolean bl = false;
        int flag = 0;
        String msg = "";
        if (fbs9100Setparam.getOpCmd() == FBS9100_ComBase.CMD_ResetSystem) {
            bl = sendCmdToFBS9100Dev(fbs9100Setparam.getOpCmd(), 0, fbs9100Setparam.getDevId().intValue());
            if (bl) {
                flag = 1;
                msg = "重启成功!";
            } else {
                flag = 0;
                msg = "重启失败,请检查网络!";
            }
        }else{
            Boolean b=mapper.updateMaintain(fbs9100Setparam);
            if(b){
                bl=sendCmdToFBS9100Dev(fbs9100Setparam.getOpCmd(),0,fbs9100Setparam.getDevId().intValue());
                if(bl){
                    flag=1;
                    msg="修改成功!";
                }else{
                    flag=0;
                    msg="启动离线养护失败,请检查网络!";
        } else {
            Boolean b = mapper.updateMaintain(fbs9100Setparam);
            if (b) {
                bl = sendCmdToFBS9100Dev(fbs9100Setparam.getOpCmd(), 0, fbs9100Setparam.getDevId().intValue());
                if (bl) {
                    flag = 1;
                    msg = "修改成功!";
                } else {
                    flag = 0;
                    msg = "启动离线养护失败,请检查网络!";
                }
            }else{
                flag=0;
                msg="修改失败!";
            } else {
                flag = 0;
                msg = "修改失败!";
            }
        }
        return new Response().set(1,flag>0?true:false,msg);
@@ -87,6 +163,28 @@
        return new Response().set(1,bl,bl==true?"修改参数成功!":"设置61850参数失败,请检查网络!");
    }
    //在线监测-实时监控-设置61853放电参数设置
    public Response update61853Param(Fbs9100Setparam fbs9100Setparam) {
        Boolean b=mapper.update61853Param(fbs9100Setparam);
        boolean bl=false;
        if(b){
            bl=sendCmdToFBS9100Dev(fbs9100Setparam.getNum().intValue(),0,fbs9100Setparam.getDevId().intValue());
        }
        return new Response().set(1,bl,bl==true?"修改参数成功!":"设置61853参数失败,请检查网络!");
    }
    //在线监测-实时监控-设置6186放电参数设置
    public Response update6186Param(Fbs9100Setparam fbs9100Setparam) {
        Boolean b=mapper.update6186Param(fbs9100Setparam);
        boolean bl=false;
        if(b){
            bl=sendCmdToFBS9100Dev(fbs9100Setparam.getNum().intValue(),0,fbs9100Setparam.getDevId().intValue());
        }
        return new Response().set(1,bl,bl==true?"修改参数成功!":"设置61853参数失败,请检查网络!");
    }
    //在线监测-实时监控-A059发送指令
    public Response updateA059Cmd(int opCmd, int devId) {
        boolean bl=sendCmdToFBS9100Dev(opCmd,0,devId);
@@ -95,58 +193,135 @@
    //在线监测-实时监控-读取FGCD_A059放电参数
    public Response searchA059Param(int opCmd, int devId) {
        PageHelper.startPage(1,1);
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("dev_id",devId);
        Fbs9100Setparam a059param=mapper.selectOne(wrapper);
        boolean bl=sendCmdToFBS9100Dev(opCmd,0,devId);
        return new Response().setII(1,bl,a059param,bl==true?"读取参数成功!":"读取A059参数失败,请检查网络!");
        PageHelper.startPage(1, 1);
        QueryWrapper wrapper = new QueryWrapper();
        wrapper.eq("dev_id", devId);
        boolean bl = sendCmdToFBS9100Dev(opCmd, 0, devId);
        Fbs9100Setparam a059param = mapper.selectOne(wrapper);
        return new Response().setII(1, bl, a059param, bl == true ? "读取参数成功!" : "读取A059参数失败,请检查网络!");
    }
    //在线监测-实时监控-设置FGCD_A059放电参数
    public Response updateA059Param(Fbs9100Setparam a059setParam) {
        Boolean b=mapper.updateA059Param(a059setParam);
        Boolean b = mapper.updateA059Param(a059setParam);
        boolean bl = false;
        if (b) {
            bl = sendCmdToFBS9100Dev(a059setParam.getOpCmd().intValue(), 0, a059setParam.getDevId().intValue());
        }
        return new Response().set(1, bl, bl == true ? "修改参数成功!" : "设置A059参数失败,请检查网络!");
    }
    //在线监测-实时监控-设置FGCD_A059放电参数(二期)
    public Response updateA059ParamPhaseII(Fbs9100Setparam a059setParam) {
        Boolean b = mapper.updateA059ParamPhaseII(a059setParam);
        boolean bl = false;
        if (b) {
            bl = sendCmdToFBS9100Dev(a059setParam.getOpCmd().intValue(), 0, a059setParam.getDevId().intValue());
        }
        return new Response().set(1, bl, bl == true ? "修改参数成功!" : "设置A059二期参数失败,请检查网络!");
    }
    //一体机拓扑图界面添加一个温度报警的设置值
    @Transactional
    public Response serchCharHighTmp(int devId) {
        QueryWrapper wrapper = new QueryWrapper();
        wrapper.eq("dev_id", devId);
        wrapper.last(" limit 1");
        Fbs9100Setparam a059param = mapper.selectOne(wrapper);
        return new Response().setII(1, a059param == null ? false : true, a059param, a059param == null ? "查询失败" : "查询成功");
    }
    //在线监测-实时监控-开始/停止显示FGCD_A059图片
    public Response StartOrStopShowPic(int devId, int opCmd) {
      boolean  bl=sendCmdToFBS9100Dev(opCmd,0,devId);
      return new Response().set(1,bl,bl==true?"开始/停止显示FGCD_A059图片成功!":"开始/停止显示FGCD_A059图片失败,请检查网络!");
    }
    //在线监测-实时监控-设置FGCD_A059当前电池组
    public Response SetNowBatt(int devId, int opCmd,int battGroupNum) {
        Boolean b=mapper.SetNowBatt(devId,battGroupNum);
        boolean bl=false;
        if(b){
            bl=sendCmdToFBS9100Dev(a059setParam.getOpCmd().intValue(),0,a059setParam.getDevId().intValue());
            bl=sendCmdToFBS9100Dev(opCmd,0,devId);
        }
        return new Response().set(1,bl,bl==true?"修改参数成功!":"设置A059参数失败,请检查网络!");
    }
    //一体机拓扑图界面添加一个温度报警的设置值
    public Response serchCharHighTmp(int devId) {
        PageHelper.startPage(1,1);
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("dev_id",devId);
        Fbs9100Setparam a059param=mapper.selectOne(wrapper);
        return new Response().set(1,a059param);
        return new Response().set(1,bl,bl==true?"设置当前电池组成功!":"设置当前电池组失败,请检查网络!");
    }
    //机房命令操作设备时的cmd和ack校验  test_type  -->默认启动测试的类型
    public boolean sendCmdToFBS9100Dev(int cmd,int test_type,int dev_id)
    {
        int m_cmd = cmd;
        int m_cmd_ack = cmd;
        int stopTime=40;
        switch(m_cmd) {
            case FBS9100_ComBase.CMD_Start: m_cmd_ack = FBS9100_ComBase.CMD_StartAck; break;
            case FBS9100_ComBase.CMD_Stop: m_cmd_ack = FBS9100_ComBase.CMD_StopAck; break;
            case FBS9100_ComBase.CMD_SetDischargeParm: m_cmd_ack = FBS9100_ComBase.CMD_SetDischargeParmAck; break;
            case FBS9100_ComBase.CMD_SetDischargeParm: m_cmd_ack = FBS9100_ComBase.CMD_SetDischargeParmAck; stopTime=80;break;
            case FBS9100_ComBase.CMD_GetDischargeParm: m_cmd_ack = FBS9100_ComBase.CMD_GetDischargeParmAck; break;
            case FBS9100_ComBase.CMd_SetIp_Tem: m_cmd_ack = FBS9100_ComBase.CMd_SetIpAck; break;
            case FBS9100_ComBase.CMd_SetIp_Per: m_cmd_ack = FBS9100_ComBase.CMd_SetIpAck; break;
            case FBS9100_ComBase.CMD_GetOffLineYHParam: m_cmd_ack = FBS9100_ComBase.CMD_GetOffLineYHParam_ACK; break;
            case FBS9100_ComBase.CMD_SetOffLineYHParam: m_cmd_ack = FBS9100_ComBase.CMD_SetOffLineYHParam_ACK; break;
            case FBS9100_ComBase.CMD_StartOffLine: m_cmd_ack = FBS9100_ComBase.CMD_StartOffLine_ACK; break;
            case FBS9100_ComBase.CMD_StopOffLine: m_cmd_ack = FBS9100_ComBase.CMD_StopOffLine_ACK; break;
            case FBS9100_ComBase.CMD_ResetSystem: m_cmd_ack = FBS9100_ComBase.CMD_ResetSystemAck; break;
            //一体机A059
            case FBS9100_ComBase.CMD_StartDischarge: m_cmd_ack = FBS9100_ComBase.CMD_StartDischargeAck; break;
            case FBS9100_ComBase.CMD_StopDischarge: m_cmd_ack = FBS9100_ComBase.CMD_StopDischargeAck; break;
            case FBS9100_ComBase.CMD_PauseDischarge: m_cmd_ack = FBS9100_ComBase.CMD_PauseDischargeAck; break;
            case FBS9100_ComBase.CMD_StartCharTest: m_cmd_ack = FBS9100_ComBase.CMD_StartCharTestAck; break;
            case FBS9100_ComBase.CMD_StopCharTest: m_cmd_ack = FBS9100_ComBase.CMD_StopCharTestAck; break;
            case FBS9100_ComBase.CMD_PauseCharTest: m_cmd_ack = FBS9100_ComBase.CMD_PauseCharTestAck; break;
            case FBS9100_ComBase.CMD_StartHUOHUATest: m_cmd_ack = FBS9100_ComBase.CMD_StartHUOHUATestACK; break;
            case FBS9100_ComBase.CMD_StopHUOHUATest: m_cmd_ack = FBS9100_ComBase.CMD_StopHUOHUATestACK; break;
            case FBS9100_ComBase.CMD_PauseHUOHUATest: m_cmd_ack = FBS9100_ComBase.CMD_PauseHUOHUATestACK; break;
            default: return false;
            case FBS9100_ComBase.CMd_SetIp_Per:
                m_cmd_ack = FBS9100_ComBase.CMd_SetIpAck;
                break;
            case FBS9100_ComBase.CMD_GetOffLineYHParam:
                m_cmd_ack = FBS9100_ComBase.CMD_GetOffLineYHParam_ACK;
                break;
            case FBS9100_ComBase.CMD_SetOffLineYHParam:
                m_cmd_ack = FBS9100_ComBase.CMD_SetOffLineYHParam_ACK;
                break;
            case FBS9100_ComBase.CMD_StartOffLine:
                m_cmd_ack = FBS9100_ComBase.CMD_StartOffLine_ACK;
                break;
            case FBS9100_ComBase.CMD_StopOffLine:
                m_cmd_ack = FBS9100_ComBase.CMD_StopOffLine_ACK;
                break;
            case FBS9100_ComBase.CMD_ResetSystem:
                m_cmd_ack = FBS9100_ComBase.CMD_ResetSystemAck;
                break;
            //一体机A059/fbo4830
            case FBS9100_ComBase.CMD_StartDischarge:
                m_cmd_ack = FBS9100_ComBase.CMD_StartDischargeAck;
                stopTime=80;
                break;
            case FBS9100_ComBase.CMD_StopDischarge:
                m_cmd_ack = FBS9100_ComBase.CMD_StopDischargeAck;
                stopTime=80;
                break;
            case FBS9100_ComBase.CMD_PauseDischarge:
                m_cmd_ack = FBS9100_ComBase.CMD_PauseDischargeAck;
                break;
            case FBS9100_ComBase.CMD_StartCharTest:
                m_cmd_ack = FBS9100_ComBase.CMD_StartCharTestAck;
                break;
            case FBS9100_ComBase.CMD_StopCharTest:
                m_cmd_ack = FBS9100_ComBase.CMD_StopCharTestAck;
                break;
            case FBS9100_ComBase.CMD_PauseCharTest:
                m_cmd_ack = FBS9100_ComBase.CMD_PauseCharTestAck;
                break;
            case FBS9100_ComBase.CMD_StartHUOHUATest:
                m_cmd_ack = FBS9100_ComBase.CMD_StartHUOHUATestACK;
                break;
            case FBS9100_ComBase.CMD_StopHUOHUATest:
                m_cmd_ack = FBS9100_ComBase.CMD_StopHUOHUATestACK;
                break;
            case FBS9100_ComBase.CMD_PauseHUOHUATest:
                m_cmd_ack = FBS9100_ComBase.CMD_PauseHUOHUATestACK;
                break;
            //图片显示
            case FBS9100_ComBase.CMD_StartShowPic:
                m_cmd_ack = FBS9100_ComBase.CMD_StartShowPic_ACK;
                break;
            case FBS9100_ComBase.CMD_StopShowPic:
                m_cmd_ack = FBS9100_ComBase.CMD_StopShowPic_ACK;
                break;
            case FBS9100_ComBase.CMD_SetNowBatt:
                m_cmd_ack = FBS9100_ComBase.CMD_SetNowBatt_ACK;
                break;
            case FBS9100_ComBase.CMD_ForceSetNowBatt:
                m_cmd_ack = FBS9100_ComBase.CMD_ForceSetNowBatt_ACK;
                break;
            case FBS9100_ComBase.CMD_updateXZTime:
                m_cmd_ack = FBS9100_ComBase.CMD_updateXZTimeAck;
                break;
            default:
                return false;
        }
        UpdateWrapper updateWrapper=new UpdateWrapper();
        updateWrapper.set("op_cmd",m_cmd);
@@ -154,7 +329,235 @@
            updateWrapper.set("TestCmd",test_type);
        }
        updateWrapper.eq("dev_id",dev_id);
        int flag=mapper.update(null,updateWrapper);
        int flag=mapper.update((Fbs9100Setparam) ActionUtil.objeNull,updateWrapper);
        boolean res_exe = false;
        if(flag>0)
        {
            PageHelper.startPage(1,1);
            QueryWrapper queryWrapper=new QueryWrapper();
            queryWrapper.eq("dev_id",dev_id);
            for(int n=0; n<stopTime; n++)
            {
                Fbs9100Setparam fbs9100Setparam=mapper.selectOne(queryWrapper);
                if(fbs9100Setparam!=null){
                    if (fbs9100Setparam.getOpCmd() == m_cmd_ack) {
                        res_exe = true;
                        break;
                    }
                    try {
                        Thread.sleep(250);
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                } else {
                    break;
                }
            }
        }
        return res_exe;
    }
    //并联电源的cmd和ack校验  test_type  -->默认启动测试的类型
    public boolean sendCmdToFBS9100Dev3(int cmd, int testCmd, int dev_id, int battGroupNum) {
        int m_cmd = cmd;
        int m_cmd_ack = cmd;
        switch (m_cmd) {
            case FBS9100_ComBase.CMD_Start:
                m_cmd_ack = FBS9100_ComBase.CMD_StartAck;
                break;
            case FBS9100_ComBase.CMD_Stop:
                m_cmd_ack = FBS9100_ComBase.CMD_StopAck;
                break;
            case FBS9100_ComBase.CMD_GetMutilMode_Param:
                m_cmd_ack = FBS9100_ComBase.CMD_GetMutilMode_Param_Ack;
                break;
            case FBS9100_ComBase.CMD_SetMutilMode_Param:
                m_cmd_ack = FBS9100_ComBase.CMD_SetMutilMode_Param_Ack;
                break;
            default:
                return false;
        }
        UpdateWrapper updateWrapper = new UpdateWrapper();
        updateWrapper.set("op_cmd", m_cmd);
        updateWrapper.set("BattGroupNum", battGroupNum);
        //读取时加参数在testcmd中参数类型,0-实时核容参数 1-计划核容参数 2-活化参数 3-充电参数 HV_mon_uppernum1
        if (cmd == FBS9100_ComBase.CMD_GetMutilMode_Param) {
            updateWrapper.set("HV_mon_uppernum1", testCmd);
        }
        if (cmd == FBS9100_ComBase.CMD_Start || cmd == FBS9100_ComBase.CMD_Stop) {
            updateWrapper.set("TestCmd", testCmd);
        }
        updateWrapper.eq("dev_id", dev_id);
        int flag = mapper.update((Fbs9100Setparam) ActionUtil.objeNull, updateWrapper);
        boolean res_exe = false;
        if (flag > 0) {
            PageHelper.startPage(1, 1);
            QueryWrapper queryWrapper = new QueryWrapper();
            queryWrapper.eq("dev_id", dev_id);
            for (int n = 0; n < 40; n++) {
                Fbs9100Setparam fbs9100Setparam = mapper.selectOne(queryWrapper);
                if (fbs9100Setparam != null) {
                    if (fbs9100Setparam.getOpCmd() == m_cmd_ack) {
                        res_exe = true;
                        break;
                    }
                    try {
                        Thread.sleep(500);
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                } else {
                    break;
                }
            }
        }
        return res_exe;
    }
    //机房命令操作设备时的cmd和ack校验  test_type  -->默认启动测试的类型
    public boolean sendCmdToFBS9100Dev2(int cmd, int test_type, int dev_id, int battGroupNum) {
        int m_cmd = cmd;
        int m_cmd_ack = cmd;
        switch (m_cmd) {
            case FBS9100_ComBase.CMD_Start:
                m_cmd_ack = FBS9100_ComBase.CMD_StartAck;
                break;
            case FBS9100_ComBase.CMD_Stop:
                m_cmd_ack = FBS9100_ComBase.CMD_StopAck;
                break;
            case FBS9100_ComBase.CMD_SetDischargeParm:
                m_cmd_ack = FBS9100_ComBase.CMD_SetDischargeParmAck;
                break;
            case FBS9100_ComBase.CMD_GetDischargeParm:
                m_cmd_ack = FBS9100_ComBase.CMD_GetDischargeParmAck;
                break;
            case FBS9100_ComBase.CMd_SetIp_Tem:
                m_cmd_ack = FBS9100_ComBase.CMd_SetIpAck;
                break;
            case FBS9100_ComBase.CMd_SetIp_Per:
                m_cmd_ack = FBS9100_ComBase.CMd_SetIpAck;
                break;
            case FBS9100_ComBase.CMD_GetOffLineYHParam:
                m_cmd_ack = FBS9100_ComBase.CMD_GetOffLineYHParam_ACK;
                break;
            case FBS9100_ComBase.CMD_SetOffLineYHParam:
                m_cmd_ack = FBS9100_ComBase.CMD_SetOffLineYHParam_ACK;
                break;
            case FBS9100_ComBase.CMD_StartOffLine:
                m_cmd_ack = FBS9100_ComBase.CMD_StartOffLine_ACK;
                break;
            case FBS9100_ComBase.CMD_StopOffLine:
                m_cmd_ack = FBS9100_ComBase.CMD_StopOffLine_ACK;
                break;
            case FBS9100_ComBase.CMD_ResetSystem:
                m_cmd_ack = FBS9100_ComBase.CMD_ResetSystemAck;
                break;
            //一体机A059
            case FBS9100_ComBase.CMD_StartDischarge:
                m_cmd_ack = FBS9100_ComBase.CMD_StartDischargeAck;
                break;
            case FBS9100_ComBase.CMD_StopDischarge:
                m_cmd_ack = FBS9100_ComBase.CMD_StopDischargeAck;
                break;
            case FBS9100_ComBase.CMD_PauseDischarge:
                m_cmd_ack = FBS9100_ComBase.CMD_PauseDischargeAck;
                break;
            case FBS9100_ComBase.CMD_StartCharTest:
                m_cmd_ack = FBS9100_ComBase.CMD_StartCharTestAck;
                break;
            case FBS9100_ComBase.CMD_StopCharTest:
                m_cmd_ack = FBS9100_ComBase.CMD_StopCharTestAck;
                break;
            case FBS9100_ComBase.CMD_PauseCharTest:
                m_cmd_ack = FBS9100_ComBase.CMD_PauseCharTestAck;
                break;
            case FBS9100_ComBase.CMD_StartHUOHUATest:
                m_cmd_ack = FBS9100_ComBase.CMD_StartHUOHUATestACK;
                break;
            case FBS9100_ComBase.CMD_StopHUOHUATest:
                m_cmd_ack = FBS9100_ComBase.CMD_StopHUOHUATestACK;
                break;
            case FBS9100_ComBase.CMD_PauseHUOHUATest:
                m_cmd_ack = FBS9100_ComBase.CMD_PauseHUOHUATestACK;
                break;
            //图片显示
            case FBS9100_ComBase.CMD_StartShowPic:
                m_cmd_ack = FBS9100_ComBase.CMD_StartShowPic_ACK;
                break;
            case FBS9100_ComBase.CMD_StopShowPic:
                m_cmd_ack = FBS9100_ComBase.CMD_StopShowPic_ACK;
                break;
            case FBS9100_ComBase.CMD_SetNowBatt:
                m_cmd_ack = FBS9100_ComBase.CMD_SetNowBatt_ACK;
                break;
            default:
                return false;
        }
        UpdateWrapper updateWrapper=new UpdateWrapper();
        updateWrapper.set("op_cmd",m_cmd);
        updateWrapper.set("BattGroupNum",battGroupNum);
        if(test_type > 0 && (cmd == FBS9100_ComBase.CMD_Start||cmd == FBS9100_ComBase.CMD_Stop)){               //启动测试时未点击设定参数按钮,会出现启动内阻测试bug修复
            updateWrapper.set("TestCmd",test_type);
        }
        updateWrapper.eq("dev_id",dev_id);
        int flag=mapper.update((Fbs9100Setparam) ActionUtil.objeNull,updateWrapper);
        boolean res_exe = false;
        if(flag>0)
        {
            PageHelper.startPage(1,1);
            QueryWrapper queryWrapper=new QueryWrapper();
            queryWrapper.eq("dev_id",dev_id);
            for(int n=0; n<40; n++)
            {
                Fbs9100Setparam fbs9100Setparam=mapper.selectOne(queryWrapper);
                if(fbs9100Setparam!=null){
                    if(fbs9100Setparam.getOpCmd()==m_cmd_ack){
                        res_exe = true;
                        break;
                    }
                    try {
                        Thread.sleep(500);
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }else {
                    break;
                }
            }
        }
        return res_exe;
    }
    public boolean sendCmdToDev(int opCmd,int dev_id)
    {
        int m_cmd = opCmd;
        int m_cmd_ack = opCmd;
        switch(m_cmd) {
            case FBS9100_ComBase.CMD_SetDischargeParm: m_cmd_ack = FBS9100_ComBase.CMD_SetDischargeParmAck; break;
            case FBS9100_ComBase.CMD_GetDischargeParm: m_cmd_ack = FBS9100_ComBase.CMD_GetDischargeParmAck; break;
            case FBS9100_ComBase.CMD_Start: m_cmd_ack = FBS9100_ComBase.CMD_StartAck; break;
            case FBS9100_ComBase.CMD_Stop: m_cmd_ack = FBS9100_ComBase.CMD_StopAck; break;
            case FBS9100_ComBase.CMD_EOperatingSwitch_ControlSwitch: m_cmd_ack = FBS9100_ComBase.CMD_EOperatingSwitch_ControlSwitchAck; break;
            case FBS9100_ComBase.CMD_ResetSystem: m_cmd_ack = FBS9100_ComBase.CMD_ResetSystemAck; break;
            case FBS9100_ComBase.CMD_ReadTest_Param: m_cmd_ack = FBS9100_ComBase.CMD_ReadTest_Param_ACK; break;
            case FBS9100_ComBase.CMD_WriteTest_Param: m_cmd_ack = FBS9100_ComBase.CMD_WriteTest_Param_ACK; break;
            case FBS9100_ComBase.CMD_StartDcdcTest: m_cmd_ack = FBS9100_ComBase.CMD_StartDcdcTest_ACK; break;
            case FBS9100_ComBase.CMD_StopDcdcTest: m_cmd_ack = FBS9100_ComBase.CMD_StopDcdcTest_ACK; break;
            default:
                return false;
        }
        //更新op_cmd
        UpdateWrapper updateWrapper=new UpdateWrapper();
        updateWrapper.set("op_cmd",m_cmd);
        updateWrapper.eq("dev_id",dev_id);
        int flag=mapper.update((Fbs9100Setparam) ActionUtil.objeNull,updateWrapper);
        boolean res_exe = false;
        if(flag>0)
        {
@@ -173,7 +576,6 @@
                    try {
                        Thread.sleep(250);
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }else {
@@ -183,5 +585,337 @@
        }
        return res_exe;
    }
    public Response updateEOperatingSwitch(Fbs9100Setparam fbs9100Setparam) {
        Boolean b=mapper.updateEOperatingSwitch(fbs9100Setparam);
        boolean bl=false;
        if(b){
            bl=sendCmdToDev(FBS9100_ComBase.CMD_SetDischargeParm,fbs9100Setparam.getDevId().intValue());
        }
        return new Response().set(1,bl, bl ?"修改参数成功!":"设置参数失败,请检查网络!");
    }
}
    public Response updateEOperatingSwitchStart(Fbs9100Setparam fbs9100Setparam) {
        UpdateWrapper<Fbs9100Setparam> update = Wrappers.update();
        update.set("TestCmd",fbs9100Setparam.getTestCmd()).eq("dev_id",fbs9100Setparam.getDevId());
        Boolean b=mapper.update((Fbs9100Setparam) ActionUtil.objeNull,update)==1;
        boolean bl=false;
        if(b){
            bl=sendCmdToDev(FBS9100_ComBase.CMD_Start,fbs9100Setparam.getDevId().intValue());
        }
        return new Response().set(1,bl, bl ?"启动测试成功!":"启动测试失败,请检查网络!");
    }
    public Response updateEOperatingSwitchStop(Fbs9100Setparam fbs9100Setparam) {
        boolean bl=sendCmdToDev(FBS9100_ComBase.CMD_Stop,fbs9100Setparam.getDevId().intValue());
        return new Response().set(1,bl, bl ?"停止测试成功!":"停止测试失败,请检查网络!");
    }
    public Response updateEOperatingSwitchControl(Fbs9100Setparam fbs9100Setparam) {
        UpdateWrapper<Fbs9100Setparam> update = Wrappers.update();
        update.set("TestCmd",fbs9100Setparam.getTestCmd())
                .set("FlowOver_Count",fbs9100Setparam.getFlowoverCount())
                .eq("dev_id",fbs9100Setparam.getDevId());
        Boolean b=mapper.update((Fbs9100Setparam) ActionUtil.objeNull,update)==1;
        boolean bl=false;
        if(b){
            bl=sendCmdToDev(FBS9100_ComBase.CMD_EOperatingSwitch_ControlSwitch,fbs9100Setparam.getDevId().intValue());
        }
        return new Response().set(1,bl, bl ?"电操开关控制成功!":"电操开关控制失败,请检查网络!");
    }
    public Response getEOperatingSwitch(int devId, int battGroupNum) {
        //根据设备id先设置电池组号
        UpdateWrapper<Fbs9100Setparam> update = Wrappers.update();
        update.set("BattGroupNum",battGroupNum).eq("dev_id",devId);
        mapper.update((Fbs9100Setparam) ActionUtil.objeNull,update);
        //发送cmd
        boolean b = sendCmdToDev(FBS9100_ComBase.CMD_GetDischargeParm, devId);
        if (b) {
            QueryWrapper<Fbs9100Setparam> query = Wrappers.query();
            query.eq("dev_id", devId).last(" limit 1");
            Fbs9100Setparam param = mapper.selectOne(query);
            return new Response().setII(1, true, param, "");
        }
        return new Response().set(1, false, "读取参数失败,请检查网络!");
    }
    //在线监测-实时监控-读取FBO_4830放电参数
    public Response searchFBO4830Param(int opCmd, int devId) {
        PageHelper.startPage(1, 1);
        QueryWrapper wrapper = new QueryWrapper();
        wrapper.eq("dev_id", devId);
        boolean bl = sendCmdToFBS9100Dev(opCmd, 0, devId);
        Fbs9100Setparam a059param = mapper.selectOne(wrapper);
        return new Response().setII(1, bl, a059param, bl == true ? "读取参数成功!" : "读取FBO_4830参数失败,请检查网络!");
    }
    //在线监测-实时监控-读取FBO_4831放电参数
    public Response searchFBO4831Param(int opCmd, int devId) {
        PageHelper.startPage(1, 1);
        QueryWrapper wrapper = new QueryWrapper();
        wrapper.eq("dev_id", devId);
        boolean bl = sendCmdToFBS9100Dev(opCmd, 0, devId);
        Fbs9100Setparam a059param = mapper.selectOne(wrapper);
        return new Response().setII(1, bl, a059param, bl == true ? "读取参数成功!" : "读取FBO_4831参数失败,请检查网络!");
    }
    //在线监测-实时监控-设置FBO_4830放电参数
    public Response updateFBO4830Param(Fbs9100Setparam a059setParam) {
        Boolean b = mapper.updateFBO4830Param(a059setParam);
        boolean bl = false;
        if (b) {
            bl = sendCmdToFBS9100Dev(a059setParam.getOpCmd().intValue(), 0, a059setParam.getDevId().intValue());
        }
        return new Response().set(1, bl, bl == true ? "修改参数成功!" : "设置A059参数失败,请检查网络!");
    }
    //在线监测-实时监控-控制FBO_4830充放电停止
    public Response controllerFBO4830(int opCmd, int devId) {
        boolean bl = sendCmdToFBS9100Dev(opCmd, 0, devId);
        return new Response().set(1, bl, bl == true ? "操控FBO4830成功!" : "操控FBO4830失败,请检查网络!");
    }
    //在线监测-实时监控-读取kgdy放电参数
    public Response searchKgdyParam(int opCmd, int devId) {
        PageHelper.startPage(1, 1);
        QueryWrapper wrapper = new QueryWrapper();
        wrapper.eq("dev_id", devId);
        boolean bl = sendCmdToFBS9100Dev(opCmd, 0, devId);
        Fbs9100Setparam a059param = mapper.selectOne(wrapper);
        return new Response().setII(1, bl, a059param, bl == true ? "读取参数成功!" : "读取A059参数失败,请检查网络!");
    }
    //在线监测-实时监控-设置kgdy放电参数
    public Response updateKgdyParam(Fbs9100Setparam a059setParam) {
        Boolean b = mapper.updateKgdyParam(a059setParam);
        boolean bl = false;
        if (b) {
            bl = sendCmdToFBS9100Dev(a059setParam.getOpCmd().intValue(), 0, a059setParam.getDevId().intValue());
        }
        return new Response().set(1, bl, bl == true ? "修改参数成功!" : "设置A059参数失败,请检查网络!");
    }
    //在线监测-实时监控-控制并联电源充放电停止
    public Response controllerParalle(int opCmd, Integer testCmd, int battGroupNum, int devId) {
        boolean bl = sendCmdToFBS9100Dev3(opCmd, testCmd, devId, battGroupNum);
        return new Response().set(1, bl, bl == true ? "操控并联电源成功!" : "操控并联电源失败,请检查网络!");
    }
    //在线监测-实时监控-读取并联电源放电参数
    public Response searchParalleParam(int opCmd, int hvMonUppernum1, int battGroupNum, int devId) {
        PageHelper.startPage(1, 1);
        QueryWrapper wrapper = new QueryWrapper();
        wrapper.eq("dev_id", devId);
        //读取时加参数在testcmd中参数类型,0-实时核容参数 1-计划核容参数 2-活化参数 3-充电参数 HV_mon_uppernum1
        boolean bl = sendCmdToFBS9100Dev3(opCmd, hvMonUppernum1, devId, battGroupNum);
        Fbs9100Setparam paralleParam = mapper.selectOne(wrapper);
        return new Response().setII(1, bl, paralleParam, bl == true ? "读取参数成功!" : "读取并联电源参数失败,请检查网络!");
    }
    //在线监测-实时监控-设置并联电源放电参数
    public Response updateParalleParam(Fbs9100Setparam a059setParam) {
        Boolean b = mapper.updateParalleParam(a059setParam);
        boolean bl = false;
        if (b) {
            bl = sendCmdToFBS9100Dev3(a059setParam.getOpCmd().intValue(), 0, a059setParam.getDevId().intValue(), a059setParam.getBattGroupNum());
        }
        return new Response().set(1, bl, bl == true ? "修改参数成功!" : "设置并联电源参数失败,请检查网络!");
    }
    public Response searchPW(int devId) {
        int opCmd = FBS9100_ComBase.CMD_GetDischargeParm;
        return searchParam(devId,opCmd);
    }
    public Response searchML(int devId) {
        int opCmd = FBS9100_ComBase.CMD_ReadTest_Param;
        return searchParam(devId,opCmd);
    }
    private Response searchParam(int devId, int opCmd) {
        boolean res = sendCmdToDev(opCmd, devId);
        Fbs9100Setparam fbs9100Setparam = null;
        if(res){
            QueryWrapper<Fbs9100Setparam> query = Wrappers.query();
            query.eq("dev_id",devId).last(" limit 1");
            fbs9100Setparam = mapper.selectOne(query);
        }
        return new Response().setII(1, res, fbs9100Setparam, res ? "读取参数成功" : "读取参数失败,请检查网络");
    }
    public Response updatePW(Fbs9100Setparam param) {
        Long devId = param.getDevId();
        UpdateWrapper<Fbs9100Setparam> update = Wrappers.update();
        update.set("DisCurr",param.getDisCurr())
                .set("DisCap",param.getDisCap())
                .set("DisTime",param.getDisTime())
                .set("GroupVol_LOW",param.getGroupvolLow())
                .set("BattGroupNum",param.getBattGroupNum())
                .set("DCVolHighLimit",param.getDCVolHighLimit())
                .set("ChargeCurrSet",param.getChargeCurrSet())
                .eq("dev_id",devId);
        mapper.update((Fbs9100Setparam) ActionUtil.objeNull,update);
        boolean res = sendCmdToDev(FBS9100_ComBase.CMD_SetDischargeParm, devId.intValue());
        return new Response().set(1, res, res ? "修改参数成功" : "设置参数失败,请检查网络");
    }
    public Response updateML(Fbs9100Setparam param) {
        Long devId = param.getDevId();
        UpdateWrapper<Fbs9100Setparam> update = Wrappers.update();
        update.set("dcdc1_outputvol",param.getDcdc1OutputVol())
                .set("dcdc2_outputvol",param.getDcdc2OutputVol())
                .set("dcdc1_outputcurr",param.getDcdc1OutputCurr())
                .set("dcdc2_outputcurr",param.getDcdc2OutputCurr())
                .set("screensaver_time",param.getScreenSaverTime())
                .eq("dev_id",devId);
        mapper.update((Fbs9100Setparam) ActionUtil.objeNull,update);
        boolean res = sendCmdToDev(FBS9100_ComBase.CMD_WriteTest_Param, devId.intValue());
        return new Response().set(1, res, res ? "修改参数成功" : "设置参数失败,请检查网络");
    }
    public Response updateOpCmdAndTestCmd(int devId,int opCmd,int testCmd) {
        UpdateWrapper<Fbs9100Setparam> update = Wrappers.update();
        update.set("TestCmd",testCmd).eq("dev_id",devId);
        Boolean res=mapper.update((Fbs9100Setparam) ActionUtil.objeNull,update)==1;
        boolean res2=false;
        if(res){
            res2=sendCmdToDev(opCmd,devId);
        }
        return new Response().set(1,res2, res2 ?"启动测试成功!":"启动测试失败,请检查网络!");
    }
    public Response updateOpCmd(int devId,int opCmd) {
        boolean res = sendCmdToDev(opCmd,devId);
        return new Response().set(1,res, res ?"停止测试成功!":"停止测试失败,请检查网络!");
    }
    public Response updatePWStartTest(int devId,int opCmd,int testCmd) {
        return updateOpCmdAndTestCmd(devId,opCmd,testCmd);
    }
    public Response updatePWStopTest(int devId) {
        return updateOpCmd(devId,FBS9100_ComBase.CMD_Stop);
    }
    public Response updatePWRestartDevice(int devId) {
        return updateOpCmd(devId,FBS9100_ComBase.CMD_ResetSystem);
    }
    public Response searchLD6(int devId) {
        int opCmd = FBS9100_ComBase.LD6_CMD_GETPARAM;
        return searchParam(devId,opCmd);
    }
    public Response updateLD6(Fbs9100Setparam param) {
        Long devId = param.getDevId();
        UpdateWrapper<Fbs9100Setparam> update = Wrappers.update();
        update
                .set("GroupVol_LOW",param.getGroupvolLow())
                .set("MonomerVol_LOW",param.getMonomervolLow())
                .set("MonomerLowCount",param.getMonomerLowCount())
                .set("MonomerTmp_High",param.getMonomertmpHigh())
                .set("DisTime",param.getDisTime())
                .set("DisCap",param.getDisCap())
                .set("AutoTestStartVol",param.getAutoTestStartVol())
                .set("ChargeCurrSet",param.getChargeCurrSet())
                .set("DisCurr",param.getDisCurr())
                .set("BattGroupNum",param.getBattGroupNum())
                .set("DCVolHighLimit",param.getDCVolHighLimit())
                .eq("dev_id",devId);
        mapper.update((Fbs9100Setparam) ActionUtil.objeNull,update);
        boolean res = sendCmdToDev(FBS9100_ComBase.CMD_SetDischargeParm, devId.intValue());
        return new Response().set(1, res, res ? "修改参数成功" : "设置参数失败,请检查网络");
    }
   //设置参数-61850-同步时间
    public Response update61850SyncTime(int devId,String syncTime) {
        UpdateWrapper<Fbs9100Setparam> update = Wrappers.update();
        update.set("OffLineYHstarttime",ThreadLocalUtil.parse(syncTime,1));//同步时间
        update.eq("dev_id",devId);
        mapper.update((Fbs9100Setparam) ActionUtil.objeNull,update);
        boolean bl=sendCmdToFBS9100Dev(FBS9100_ComBase.CMD_updateXZTime,0,devId);
        return new Response().set(1, bl, bl ? "同步时间成功" : "同步时间失败,请检查网络");
    }
    public Response updateLD6StartTest(int devId) {
        return updateOpCmd(devId,FBS9100_ComBase.LD6_CMD_STARTTEST);
    }
    public Response updateLD6StopTest(int devId) {
        return updateOpCmd(devId,FBS9100_ComBase.LD6_CMD_STOPTEST);
    }
    //在线监测-实时监控-读取FBS9612放电参数
    public Response searchFBS9612Param(int opCmd, int devId) {
        PageHelper.startPage(1, 1);
        QueryWrapper wrapper = new QueryWrapper();
        wrapper.eq("dev_id", devId);
        boolean bl = sendCmdToFBS9100Dev(opCmd, 0, devId);
        Fbs9100Setparam a059param = mapper.selectOne(wrapper);
        return new Response().setII(1, bl, a059param, bl == true ? "读取参数成功!" : "读取FBO_4830参数失败,请检查网络!");
    }
    //在线监测-实时监控-设置FBS9612放电参数
    public Response updateFBS9612Param(Fbs9100Setparam a059setParam) {
        Boolean b = mapper.updateFBS9612Param(a059setParam);
        boolean bl = false;
        if (b) {
            bl = sendCmdToFBS9100Dev(a059setParam.getOpCmd().intValue(), 0, a059setParam.getDevId().intValue());
        }
        return new Response().set(1, bl, bl == true ? "修改参数成功!" : "设置A059参数失败,请检查网络!");
    }
    //在线监测-实时监控-控制FBS9612充放电停止/内阻测试
    public Response controllerFBS9612(int opCmd,int testType, int devId) {
        boolean bl = sendCmdToFBS9100Dev(opCmd, testType, devId);
        return new Response().set(1, bl, bl == true ? "操控FBO4830成功!" : "操控FBO4830失败,请检查网络!");
    }
    //在线监测-实时监控-设置6184放电参数设置
    public Response update6184Param(Fbs9100Setparam fbs9100Setparam) {
        Boolean b=mapper.update6184Param(fbs9100Setparam);
        boolean bl=false;
        if(b){
            bl=sendCmdToFBS9100Dev2(FBS9100_ComBase.CMD_SetDischargeParm,0,fbs9100Setparam.getDevId().intValue(),fbs9100Setparam.getBattGroupNum());
        }
        return new Response().set(1,bl,bl==true?"修改参数成功!":"设置6184参数失败,请检查网络!");
    }
    //在线监测-实时监控-读取6184放电参数
    public Response get6184Param(int devId, int battGroupNum) {
        PageHelper.startPage(1, 1);
        QueryWrapper wrapper = new QueryWrapper();
        wrapper.eq("dev_id", devId);
        boolean bl = sendCmdToFBS9100Dev2(FBS9100_ComBase.CMD_GetDischargeParm,0, devId, battGroupNum);
        Fbs9100Setparam setparam = mapper.serchbyDev_id(devId,battGroupNum-1);
        return new Response().setII(1, bl, setparam, bl == true ? "读取参数成功!" : "读取6184放电参数,请检查网络!");
    }
    //在线监测-实时监控-6184设备远程重启
    public Response restart6184(int devId, int battGroupNum) {
        boolean bl = sendCmdToFBS9100Dev2(FBS9100_ComBase.CMD_ResetSystem,0, devId, battGroupNum);
        return new Response().set(1,bl,bl==true?"6184设备远程重启成功!":"6184设备远程重启失败!");
    }
    //在线监测-实时监控-6184远程启动放电测试
    public Response startDis6184(int devId, int battGroupNum) {
        boolean bl = sendCmdToFBS9100Dev2(FBS9100_ComBase.CMD_Start,FBS9100_ComBase.CMD_StartDischarge, devId, battGroupNum);
        return new Response().set(1,bl,bl==true?"6184远程启动放电测试成功!":"6184远程启动放电测试失败!");
    }
    //在线监测-实时监控-6184启动内阻测试
    public Response startRes6184(int devId, int battGroupNum) {
        boolean bl = sendCmdToFBS9100Dev2(FBS9100_ComBase.CMD_Start,FBS9100_ComBase.CMD_StartResDischarge, devId, battGroupNum);
        return new Response().set(1,bl,bl==true?"启动内阻测试成功!":"启动内阻测试失败!");
    }
    //在线监测-实时监控-6184停止测试
    public Response stop6184(int devId, int battGroupNum) {
        boolean bl = sendCmdToFBS9100Dev2(FBS9100_ComBase.CMD_Stop,FBS9100_ComBase.CMD_StopDischarge, devId, battGroupNum);
        return new Response().set(1,bl,bl==true?"6184停止测试成功!":"6184停止测试失败!");
    }
    //在线监测-实时监控-6184停止内阻测试
    public Response stopRes6184(int devId, int battGroupNum) {
        boolean bl = sendCmdToFBS9100Dev2(FBS9100_ComBase.CMD_Stop,FBS9100_ComBase.CMD_StopResDischarge, devId, battGroupNum);
        return new Response().set(1,bl,bl==true?"停止内阻测试成功!":"停止内阻测试失败!");
    }
}