whycxzp
2023-05-09 2dfa8e60eaff0373c76daa88f64c1409e70ea5e8
配网电源-电池参数
4个文件已添加
1个文件已修改
360 ■■■■■ 已修改文件
src/main/java/com/whyc/controller/FBS9100BattParamController.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/dto/FBS9100_ComBase.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/FBS9100BattParamMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/FBS9100BattParam.java 195 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/FBS9100BattParamService.java 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/FBS9100BattParamController.java
New file
@@ -0,0 +1,53 @@
package com.whyc.controller;
import com.whyc.dto.Response;
import com.whyc.pojo.FBS9100BattParam;
import com.whyc.pojo.Fbs9100Sysparam;
import com.whyc.service.FBS9100BattParamService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@Api(tags = "配网电源-电池参数")
@RestController
@RequestMapping("FBS9100BattParam")
public class FBS9100BattParamController {
    @Autowired
    private FBS9100BattParamService service;
    @ApiOperation(value = "设置参数-电池")
    @PostMapping("updateBatt")
    public Response updateBatt(@RequestBody FBS9100BattParam param) {
        return service.updateBatt(param);
    }
    @ApiOperation(value = "读取参数-电池")
    @PostMapping("searchBatt")
    public Response searchBatt(@RequestParam int devId, @RequestParam int opCmd) {
        return service.searchBatt(devId,opCmd);
    }
    //@ApiOperation(value = "设置参数-放电参数")
    @PostMapping("updateDischargeParam")
    public Response updateDischargeParam(@RequestBody FBS9100BattParam param) {
        //return service.updateDischargeParam(param); TODO
        return null;
    }
    //@ApiOperation(value = "读取参数-放电参数")
    @PostMapping("searchDischargeParam")
    public Response searchDischargeParam(@RequestParam int devId, @RequestParam int opCmd) {
        //return service.searchDischargeParam(devId,opCmd); TODO
        return null;
    }
    //@ApiOperation(value = "设置参数-设备遥控")
    @PostMapping("updateDeviceOperation")
    public Response updateDeviceOperation(@RequestParam int devId,@RequestParam int opCmd,int testCmd) {
        //return service.updateDeviceOperation(devId,opCmd,testCmd); TODO
        return null;
    }
}
src/main/java/com/whyc/dto/FBS9100_ComBase.java
@@ -171,4 +171,10 @@
    public static final int CMD_SetMutilMode_Param = 0xB5;     //设置并联电源参数
    public static final int CMD_SetMutilMode_Param_Ack = 0xB6;     //设置并联电源参数成功
    //配网电源-电池
    public static final int    CMD_GetBattParam    =    0x36;    //读取电池参数54
    public static final int    CMD_GetBattParamACK    =    0x38;    //读取电池参数成功56
    public static final int    CMD_SetBattParam    =    0x37;    //设置电池参数55
    public static final int    CMD_SetBattParamACK    =    0x39;    //设置电池参数成功57
}
src/main/java/com/whyc/mapper/FBS9100BattParamMapper.java
New file
@@ -0,0 +1,6 @@
package com.whyc.mapper;
import com.whyc.pojo.FBS9100BattParam;
public interface FBS9100BattParamMapper extends CustomMapper<FBS9100BattParam>{
}
src/main/java/com/whyc/pojo/FBS9100BattParam.java
New file
@@ -0,0 +1,195 @@
package com.whyc.pojo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
@TableName(schema = "db_ram_db",value ="tb_fbs9100_battparam")
public class FBS9100BattParam {
    private Long num;
    private String devIp;
    private Long devId;
    private Integer opCmd;
    @TableField("STD_CAP")
    private Integer stdCap;
    @TableField("STD_RES")
    private Integer stdRes;
    @TableField("BattGroupCount")
    private Integer battGroupCount;
    @TableField("EachGroupBattCount")
    private Integer eachGroupBattCount;
    @TableField("MonomerVol")
    private Float monomerVol;
    @TableField("GroupVol")
    private Float groupVol;
    @TableField("BattTemp")
    private Float battTemp;
    @TableField("FloatChargeVol")
    private Float floatChargeVol;
    @TableField("FloatChargeCurr")
    private Float floatChargeCurr;
    @TableField("OnlineVolLow")
    private Float onlineVolLow;
    @TableField("GroupConnType")
    private Integer groupConnType;
    @TableField("BattGroupCountSum")
    private Integer battGroupCountSum;
    @TableField("LiBattGroupCount")
    private Integer liBattGroupCount;
    @TableField("LiEachGroupBattCount")
    private Integer liEachGroupBattCount;
    @TableField("juncharge_vol")
    private Float junChargeVol;
    public Long getNum() {
        return num;
    }
    public void setNum(Long num) {
        this.num = num;
    }
    public String getDevIp() {
        return devIp;
    }
    public void setDevIp(String devIp) {
        this.devIp = devIp;
    }
    public Long getDevId() {
        return devId;
    }
    public void setDevId(Long devId) {
        this.devId = devId;
    }
    public Integer getOpCmd() {
        return opCmd;
    }
    public void setOpCmd(Integer opCmd) {
        this.opCmd = opCmd;
    }
    public Integer getStdCap() {
        return stdCap;
    }
    public void setStdCap(Integer stdCap) {
        this.stdCap = stdCap;
    }
    public Integer getStdRes() {
        return stdRes;
    }
    public void setStdRes(Integer stdRes) {
        this.stdRes = stdRes;
    }
    public Integer getBattGroupCount() {
        return battGroupCount;
    }
    public void setBattGroupCount(Integer battGroupCount) {
        this.battGroupCount = battGroupCount;
    }
    public Integer getEachGroupBattCount() {
        return eachGroupBattCount;
    }
    public void setEachGroupBattCount(Integer eachGroupBattCount) {
        this.eachGroupBattCount = eachGroupBattCount;
    }
    public Float getMonomerVol() {
        return monomerVol;
    }
    public void setMonomerVol(Float monomerVol) {
        this.monomerVol = monomerVol;
    }
    public Float getGroupVol() {
        return groupVol;
    }
    public void setGroupVol(Float groupVol) {
        this.groupVol = groupVol;
    }
    public Float getBattTemp() {
        return battTemp;
    }
    public void setBattTemp(Float battTemp) {
        this.battTemp = battTemp;
    }
    public Float getFloatChargeVol() {
        return floatChargeVol;
    }
    public void setFloatChargeVol(Float floatChargeVol) {
        this.floatChargeVol = floatChargeVol;
    }
    public Float getFloatChargeCurr() {
        return floatChargeCurr;
    }
    public void setFloatChargeCurr(Float floatChargeCurr) {
        this.floatChargeCurr = floatChargeCurr;
    }
    public Float getOnlineVolLow() {
        return onlineVolLow;
    }
    public void setOnlineVolLow(Float onlineVolLow) {
        this.onlineVolLow = onlineVolLow;
    }
    public Integer getGroupConnType() {
        return groupConnType;
    }
    public void setGroupConnType(Integer groupConnType) {
        this.groupConnType = groupConnType;
    }
    public Integer getBattGroupCountSum() {
        return battGroupCountSum;
    }
    public void setBattGroupCountSum(Integer battGroupCountSum) {
        this.battGroupCountSum = battGroupCountSum;
    }
    public Integer getLiBattGroupCount() {
        return liBattGroupCount;
    }
    public void setLiBattGroupCount(Integer liBattGroupCount) {
        this.liBattGroupCount = liBattGroupCount;
    }
    public Integer getLiEachGroupBattCount() {
        return liEachGroupBattCount;
    }
    public void setLiEachGroupBattCount(Integer liEachGroupBattCount) {
        this.liEachGroupBattCount = liEachGroupBattCount;
    }
    public Float getJunChargeVol() {
        return junChargeVol;
    }
    public void setJunChargeVol(Float junChargeVol) {
        this.junChargeVol = junChargeVol;
    }
}
src/main/java/com/whyc/service/FBS9100BattParamService.java
New file
@@ -0,0 +1,100 @@
package com.whyc.service;
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.whyc.dto.FBS9100_ComBase;
import com.whyc.dto.Response;
import com.whyc.mapper.FBS9100BattParamMapper;
import com.whyc.pojo.FBS9100BattParam;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestParam;
import javax.annotation.Resource;
@Service
public class FBS9100BattParamService {
    @Resource
    private FBS9100BattParamMapper mapper;
    public Response updateBatt(FBS9100BattParam param) {
        UpdateWrapper<FBS9100BattParam> update = Wrappers.update();
        Integer opCmd = param.getOpCmd();
        update.set("BattGroupCount",param.getBattGroupCount())
                .set("EachGroupBattCount",param.getEachGroupBattCount())
                .set("FloatChargeVol",param.getFloatChargeVol())
                .set("FloatChargeCurr",param.getFloatChargeCurr())
                .set("OnlineVolLow",param.getOnlineVolLow())
                .set("juncharge_vol",param.getJunChargeVol())
                .eq("dev_id",param.getDevId());
        boolean b = mapper.update(null, update) == 1;
        boolean bl = false;
        String msg = "";
        if (b) {
            bl = sendCmdToParam(opCmd, param.getDevId().intValue());
            if (bl) {
                msg = "修改成功!";
            } else {
                msg = "设置参数失败,请检查网络!";
            }
        } else {
            msg = "修改失败!";
        }
        return new Response().set(1, bl, msg);
    }
    public Response searchBatt(int devId, int opCmd) {
        boolean b=sendCmdToParam(opCmd, devId);
        QueryWrapper<FBS9100BattParam> query = Wrappers.query();
        query.eq("dev_id",devId);
        FBS9100BattParam param = mapper.selectOne(query);
        return new Response().setII(1,b,param,b?"获取参数成功!":"获取参数失败!");
    }
    //系统参数命令操作设备时的cmd和ack校验
    public boolean sendCmdToParam(int cmd, int dev_id) {
        int m_cmd = cmd;
        int m_cmd_ack = cmd;
        switch (m_cmd) {
            case FBS9100_ComBase.CMD_GetBattParam:
                m_cmd_ack = FBS9100_ComBase.CMD_GetBattParamACK;
                break;
            case FBS9100_ComBase.CMD_SetBattParam:
                m_cmd_ack = FBS9100_ComBase.CMD_SetBattParamACK;
                break;
            default:
                return false;
        }
        UpdateWrapper<FBS9100BattParam> update = Wrappers.update();
        update.set("op_cmd", m_cmd);
        update.eq("dev_id", dev_id);
        int flag = mapper.update(null, update);
        boolean res_exe = false;
        if (flag > 0) {
            PageHelper.startPage(1, 1);
            QueryWrapper<FBS9100BattParam> query = Wrappers.query();
            query.eq("dev_id", dev_id);
            for (int n = 0; n < 40; n++) {
                FBS9100BattParam param = mapper.selectOne(query);
                if (param != null) {
                    if (param.getOpCmd() == m_cmd_ack) {
                        res_exe = true;
                        break;
                    }
                    try {
                        Thread.sleep(250);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                } else {
                    break;
                }
            }
        }
        return res_exe;
    }
}