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.Dev6159PowerParamMapper;
|
import com.whyc.mapper.Dev6159PowerYxMapper;
|
import com.whyc.pojo.Dev6159PowerParam;
|
import com.whyc.pojo.Dev6159PowerYx;
|
import com.whyc.util.ActionUtil;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
@Service
|
public class Dev6159PowerParamService {
|
@Autowired(required = false)
|
private Dev6159PowerParamMapper mapper;
|
|
@Autowired(required = false)
|
private Dev6159PowerYxMapper yxMapper;
|
|
//6159控制命令
|
public boolean send6159CmdToDev(int opCmd, int devId) {
|
int m_cmd = opCmd;
|
int m_cmd_ack = opCmd;
|
switch(m_cmd) {
|
case FBS9100_ComBase.CMD_ReadACSWIBParam: m_cmd_ack = FBS9100_ComBase.CMD_ReadACSWIBParam_ACK; break;
|
case FBS9100_ComBase.CMD_WriteACSWIBParam: m_cmd_ack = FBS9100_ComBase.CMD_WriteACSWIBParam_ACK; break;
|
case FBS9100_ComBase.CMD_ReadDCSWIBParam: m_cmd_ack = FBS9100_ComBase.CMD_ReadDCSWIBParam_ACK; break;
|
case FBS9100_ComBase.CMD_WriteDCSWIBParam: m_cmd_ack = FBS9100_ComBase.CMD_WriteDCSWIBParam_ACK; break;
|
case FBS9100_ComBase.CMD_ReadRectifierParam: m_cmd_ack = FBS9100_ComBase.CMD_ReadRectifierParam_ACK; break;
|
case FBS9100_ComBase.CMD_WriteRectifierParam: m_cmd_ack = FBS9100_ComBase.CMD_WriteRectifierParam_ACK; break;
|
case FBS9100_ComBase.CMD_ControlDKSwitch: m_cmd_ack = FBS9100_ComBase.CMD_ControlDKSwitch_ACK; break;
|
case FBS9100_ComBase.CMD_ControlRectifModel: m_cmd_ack = FBS9100_ComBase.CMD_ControlRectifModel_ACK; break;
|
default:
|
return false;
|
}
|
//更新op_cmd
|
UpdateWrapper updateWrapper=new UpdateWrapper();
|
updateWrapper.set("op_cmd",m_cmd);
|
updateWrapper.eq("dev_id",devId);
|
int flag=mapper.update((Dev6159PowerParam) ActionUtil.objeNull,updateWrapper);
|
boolean res_exe = false;
|
if(flag>0)
|
{
|
PageHelper.startPage(1,1);
|
QueryWrapper queryWrapper=new QueryWrapper();
|
queryWrapper.eq("dev_id",devId);
|
for(int n=0; n<40; n++)
|
{
|
|
Dev6159PowerParam parm=mapper.selectOne(queryWrapper);
|
if(parm!=null){
|
if(parm.getOpCmd()==m_cmd_ack){
|
res_exe = true;
|
break;
|
}
|
try {
|
Thread.sleep(250);
|
} catch (InterruptedException e) {
|
e.printStackTrace();
|
}
|
}else {
|
break;
|
}
|
}
|
}
|
return res_exe;
|
}
|
//读取6159交流配电参数
|
public Response getDev6159ACParam(int devId) {
|
//发送cmd
|
boolean b = send6159CmdToDev(FBS9100_ComBase.CMD_ReadACSWIBParam, devId);
|
if (b) {
|
QueryWrapper<Dev6159PowerParam> query = Wrappers.query();
|
query.eq("dev_id", devId).last(" limit 1");
|
Dev6159PowerParam param = mapper.selectOne(query);
|
return new Response().setII(1, true, param, "");
|
}
|
return new Response().set(1, false, "读取6159交流配电参数失败,请检查网络!");
|
}
|
//设置6159交流配电参数
|
public Response setDev6159ACParam(Dev6159PowerParam param) {
|
UpdateWrapper wrapper=new UpdateWrapper();
|
wrapper.eq("dev_id",param.getDevId());
|
int flag=mapper.update(param,wrapper);
|
boolean bl=false;
|
if(flag>0){
|
bl=send6159CmdToDev(FBS9100_ComBase.CMD_WriteACSWIBParam,param.getDevId());
|
}
|
return new Response().set(1,bl, bl ?"修改6159交流配电参数成功!":"设置6159交流配电参数失败,请检查网络!");
|
}
|
//读取6159直流配电参数
|
public Response getDev6159DCParam(int devId) {
|
//发送cmd
|
boolean b = send6159CmdToDev(FBS9100_ComBase.CMD_ReadDCSWIBParam, devId);
|
if (b) {
|
QueryWrapper<Dev6159PowerParam> query = Wrappers.query();
|
query.eq("dev_id", devId).last(" limit 1");
|
Dev6159PowerParam param = mapper.selectOne(query);
|
return new Response().setII(1, true, param, "");
|
}
|
return new Response().set(1, false, "读取6159直流配电参数失败,请检查网络!");
|
}
|
//设置6159直流配电参数
|
public Response setDev6159DCParam(Dev6159PowerParam param) {
|
UpdateWrapper wrapper=new UpdateWrapper();
|
wrapper.eq("dev_id",param.getDevId());
|
int flag=mapper.update(param,wrapper);
|
boolean bl=false;
|
if(flag>0){
|
bl=send6159CmdToDev(FBS9100_ComBase.CMD_WriteDCSWIBParam,param.getDevId());
|
}
|
return new Response().set(1,bl, bl ?"修改6159直流配电参数成功!":"设置6159直流配电参数失败,请检查网络!");
|
}
|
//读取6159整流模块参数
|
public Response getDev6159RectifierParam(int devId) {
|
//发送cmd
|
boolean b = send6159CmdToDev(FBS9100_ComBase.CMD_ReadRectifierParam, devId);
|
if (b) {
|
QueryWrapper<Dev6159PowerParam> query = Wrappers.query();
|
query.eq("dev_id", devId).last(" limit 1");
|
Dev6159PowerParam param = mapper.selectOne(query);
|
return new Response().setII(1, true, param, "");
|
}
|
return new Response().set(1, false, "读取6159整流模块参数失败,请检查网络!");
|
}
|
//设置6159整流模块参数
|
public Response setDev6159RectifierParam(Dev6159PowerParam param) {
|
UpdateWrapper wrapper=new UpdateWrapper();
|
wrapper.eq("dev_id",param.getDevId());
|
int flag=mapper.update(param,wrapper);
|
boolean bl=false;
|
if(flag>0){
|
bl=send6159CmdToDev(FBS9100_ComBase.CMD_WriteRectifierParam,param.getDevId());
|
}
|
return new Response().set(1,bl, bl ?"修改6159整流模块参数成功!":"设置6159整流模块参数失败,请检查网络!");
|
}
|
//6159开关控制
|
public Response setDev6159Swtich(int devId, String swtichName, int swtichState) {
|
QueryWrapper wrapper=new QueryWrapper();
|
wrapper.eq("dev_id",devId);
|
wrapper.last(" limi t 1");
|
Dev6159PowerYx powerYx=yxMapper.selectOne(wrapper);
|
UpdateWrapper updateWrapper=new UpdateWrapper();
|
if(powerYx!=null){
|
//刷实时数据
|
updateWrapper.set("k11_state",powerYx.getK11State());
|
updateWrapper.set("k12_state",powerYx.getK12State());
|
updateWrapper.set("k13_state",powerYx.getK13State());
|
updateWrapper.set("k14_state",powerYx.getK14State());
|
updateWrapper.set("k15_state",powerYx.getK15State());
|
updateWrapper.set("k16_state",powerYx.getK16State());
|
updateWrapper.set("k17_state",powerYx.getK17State());
|
updateWrapper.set("k18_state",powerYx.getK18State());
|
}else{
|
updateWrapper.set("k11_state",0);
|
updateWrapper.set("k12_state",0);
|
updateWrapper.set("k13_state",0);
|
updateWrapper.set("k14_state",0);
|
updateWrapper.set("k15_state",0);
|
updateWrapper.set("k16_state",0);
|
updateWrapper.set("k17_state",0);
|
updateWrapper.set("k18_state",0);
|
}
|
updateWrapper.set(swtichName.toString(),swtichState);
|
updateWrapper.eq("dev_id",devId);
|
int flag=mapper.update((Dev6159PowerParam) ActionUtil.objeNull,updateWrapper);
|
boolean bl=false;
|
if(flag>0){
|
bl=send6159CmdToDev(FBS9100_ComBase.CMD_ControlDKSwitch,devId);
|
}
|
return new Response().set(1,bl, bl ?"修改6159开关控制参数成功!":"设置6159开关控制参数失败,请检查网络!");
|
}
|
//整流模块控制
|
public Response setDev6159RectifModel(int devId, int ctlNum, int ctlState) {
|
UpdateWrapper updateWrapper=new UpdateWrapper();
|
updateWrapper.set("model_ctl_num",ctlNum);
|
updateWrapper.set("model_ctl_state",ctlState);
|
updateWrapper.eq("dev_id",devId);
|
int flag=mapper.update((Dev6159PowerParam) ActionUtil.objeNull,updateWrapper);
|
boolean bl=false;
|
if(flag>0){
|
bl=send6159CmdToDev(FBS9100_ComBase.CMD_ControlRectifModel,devId);
|
}
|
return new Response().set(1,bl, bl ?"修改整流模块控制参数成功!":"设置整流模块控制参数失败,请检查网络!");
|
}
|
}
|