whyclxw
2022-01-07 dca5fa1b0367ccbc052ef953db6adb5c2e2bc64c
在线监测-实时监控-dcdc
4个文件已添加
155 ■■■■■ 已修改文件
src/main/java/com/whyc/controller/Li9130DcdcParamController.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/Li9130DcdcParamMapper.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/Li9130DcdcParamService.java 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/Li9130DcdcParamMapper.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/Li9130DcdcParamController.java
New file
@@ -0,0 +1,32 @@
package com.whyc.controller;
import com.whyc.dto.Response;
import com.whyc.pojo.Li9130DcdcParam;
import com.whyc.service.Li9130DcdcParamService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@Api(tags = "在线监测-实时监控")
@RestController
@RequestMapping("Li9130DCDCParamAction")
public class Li9130DcdcParamController {
    @Autowired
    private Li9130DcdcParamService service;
    @ApiOperation(value = "读取DCDC工作参数",notes ="Li9130DCDCParamAction!searchParam" )
    @GetMapping("searchParam")
    public Response searchParam(@RequestParam int devId){
        return service.searchParam(devId);
    }
    @ApiOperation(value = "设置DCDC工作参数",notes ="Li9130DCDCParamAction!updateParam" )
    @GetMapping("updateParam")
    public Response updateParam(@RequestParam Li9130DcdcParam param){
        return service.updateParam(param);
    }
}
src/main/java/com/whyc/mapper/Li9130DcdcParamMapper.java
New file
@@ -0,0 +1,9 @@
package com.whyc.mapper;
import com.whyc.pojo.Li9130DcdcParam;
public interface Li9130DcdcParamMapper extends CustomMapper<Li9130DcdcParam>{
    //设置DCDC工作参数
    boolean updateParam(Li9130DcdcParam param);
}
src/main/java/com/whyc/service/Li9130DcdcParamService.java
New file
@@ -0,0 +1,103 @@
package com.whyc.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.github.pagehelper.PageHelper;
import com.whyc.dto.FBS9100_ComBase;
import com.whyc.dto.Response;
import com.whyc.mapper.Li9130DcdcParamMapper;
import com.whyc.pojo.Li9130DcdcParam;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
@Service
public class Li9130DcdcParamService {
    @Resource
    private Li9130DcdcParamMapper mapper;
    //读取DCDC工作参数
    public Response searchParam(int devId) {
        boolean bl=checkOpCmdAndAck(devId, FBS9100_ComBase.CMD_GetLiDCDCParam, FBS9100_ComBase.CMD_GetLiDCDCParam_Ack, 40);
        PageHelper.startPage(1,1);
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("dev_id",devId);
        Li9130DcdcParam dcdcParam=mapper.selectOne(wrapper);
        return new Response().setII(1,bl,dcdcParam,bl==true?"查询成功!":"查询失败!");
    }
    //设置DCDC工作参数
    public Response updateParam(Li9130DcdcParam param) {
        boolean bl=mapper.updateParam(param);
        boolean b=false;
        if(bl){
            int cmd=param.getOpCmd();
            int cmd_ack=0;
            switch (cmd) {
                case FBS9100_ComBase.CMD_GetLiDCDCParam:
                    cmd_ack = FBS9100_ComBase.CMD_GetLiDCDCParam_Ack;
                    break;
                case FBS9100_ComBase.CMD_SetLiDCDCParam:
                    cmd_ack = FBS9100_ComBase.CMD_SetLiDCDCParam_Ack;
                    break;
            }
            b=checkOpCmdAck(param.getDevId(),cmd_ack, 40);
        }
        return new Response().set(1,b,b==true?"修改成功!":"修改失败!");
    }
    /**查询op_cmd和op_cmd_ack是否相同判断设备指令是否被正常接收*/
    public  boolean checkOpCmdAck(Integer devId,Integer cmdAck,Integer sendCounts){
        boolean res_exe = false;
        PageHelper.startPage(1,1);
        QueryWrapper wrapper1=new QueryWrapper();
        wrapper1.eq("dev_id",devId);
        for(int n=0; n<sendCounts; n++)
        {
            Li9130DcdcParam dcdcParam=mapper.selectOne(wrapper1);
            if(dcdcParam.getOpCmd() == cmdAck)
            {
                res_exe = true;
                break;
            }
            try {
                Thread.sleep(250);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        return res_exe;
    }
    /**查询op_cmd和op_cmd_ack是否相同判断设备指令是否被正常接收*/
    public  boolean checkOpCmdAndAck(Integer devId,Integer cmd,Integer cmdAck,Integer sendCounts){
        boolean res_exe = false;
        //先更新op_cmd
        UpdateWrapper wrapper=new UpdateWrapper();
        wrapper.set("op_cmd",cmd);
        wrapper.eq("dev_id",devId);
        mapper.update(null,wrapper);
        //校验op_cmd和后op_cmd(cmdAck)
        PageHelper.startPage(1,1);
        QueryWrapper wrapper1=new QueryWrapper();
        wrapper1.eq("dev_id",devId);
        for(int n=0; n<sendCounts; n++) {
            Li9130DcdcParam dcdcParam=mapper.selectOne(wrapper1);
            if(dcdcParam.getOpCmd() == cmdAck)
            {
                res_exe = true;
                break;
            }
            try {
                Thread.sleep(250);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        return res_exe;
    }
}
src/main/resources/mapper/Li9130DcdcParamMapper.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.whyc.mapper.Li9130DcdcParamMapper">
    <update id="updateParam">
        update db_ram_db.tb_li9130_dcdc_param set
                op_cmd=?,dev_type=?,setChgVol=?,setChgCurr=?,setChgStopCurr=?,setReChgVol=?,setDisStartVol=?,setDisVol=?,setDisCurr=?,setChgStartVol=?,ifSaveToFlash=?,setWorkMode=? " +
                where dev_id = ?
    </update>
</mapper>