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 com.whyc.util.ActionUtil;
|
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!=null){
|
if(dcdcParam.getOpCmd().intValue() == cmdAck.intValue())
|
{
|
res_exe = true;
|
break;
|
}
|
try {
|
Thread.sleep(250);
|
} catch (InterruptedException e) {
|
e.printStackTrace();
|
}
|
}else{
|
break;
|
}
|
|
}
|
|
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((Li9130DcdcParam) ActionUtil.objeNull,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!=null){
|
if(dcdcParam.getOpCmd().intValue() == cmdAck.intValue()) {
|
res_exe = true;
|
break;
|
}
|
try {
|
Thread.sleep(250);
|
} catch (InterruptedException e) {
|
e.printStackTrace();
|
}
|
}else{
|
break;
|
}
|
}
|
return res_exe;
|
}
|
|
|
}
|