package com.whyc.service;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.whyc.dto.FBS9100_ComBase;
|
import com.whyc.dto.Response;
|
import com.whyc.mapper.Li9130DcdcDataMapper;
|
import com.whyc.pojo.Li9130DcdcData;
|
import com.whyc.util.ActionUtil;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.List;
|
|
@Service
|
public class Li9130DcdcDataService {
|
@Resource
|
private Li9130DcdcDataMapper mapper;
|
|
//读取DCDC工作参数
|
public Response searchParam(int devId) {
|
boolean bl = checkOpCmdAndAck(devId, FBS9100_ComBase.CMD_GetSXDCDCData, FBS9100_ComBase.CMD_GetSXDCDCData_Ack, 40);
|
QueryWrapper wrapper = new QueryWrapper();
|
wrapper.eq("dev_id", devId);
|
wrapper.last("limit 4");
|
List<Li9130DcdcData> list = mapper.selectList(wrapper);
|
return new Response().setII(1, bl, list, bl == true ? "查询成功!" : "查询失败!");
|
}
|
|
|
/**
|
* 查询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((Li9130DcdcData) ActionUtil.objeNull, wrapper);
|
|
//校验op_cmd和后op_cmd(cmdAck)
|
QueryWrapper wrapper1 = new QueryWrapper();
|
wrapper1.eq("dev_id", devId);
|
wrapper1.last("limit 4");
|
for (int n = 0; n < sendCounts; n++) {
|
List<Li9130DcdcData> list = mapper.selectList(wrapper1);
|
Li9130DcdcData dcdcData = list.get(0);
|
if (dcdcData != null) {
|
if (dcdcData.getOpCmd().intValue() == cmdAck.intValue()) {
|
res_exe = true;
|
break;
|
}
|
try {
|
Thread.sleep(250);
|
} catch (InterruptedException e) {
|
e.printStackTrace();
|
}
|
} else {
|
break;
|
}
|
}
|
return res_exe;
|
}
|
}
|