whycxzp
2025-02-10 e8e4ad5b97fc48447d994bb141682f48edbc5f0d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
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;
 
import java.util.HashMap;
import java.util.Map;
 
@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<240; 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(" limit 1");
        Dev6159PowerYx powerYx=yxMapper.selectOne(wrapper);
        UpdateWrapper updateWrapper=new UpdateWrapper();
        if(powerYx!=null){
            //刷实时数据
            updateWrapper.set("dk11_ctl",powerYx.getK11State());
            updateWrapper.set("dk12_ctl",powerYx.getK12State());
            updateWrapper.set("dk13_ctl",powerYx.getK13State());
            updateWrapper.set("dk14_ctl",powerYx.getK14State());
            updateWrapper.set("dk15_ctl",powerYx.getK15State());
            updateWrapper.set("dk16_ctl",powerYx.getK16State());
            updateWrapper.set("dk17_ctl",powerYx.getK17State());
            updateWrapper.set("dk18_ctl",powerYx.getK18State());
        }else{
            updateWrapper.set("dk11_ctl",0);
            updateWrapper.set("dk12_ctl",0);
            updateWrapper.set("dk13_ctl",0);
            updateWrapper.set("dk14_ctl",0);
            updateWrapper.set("dk15_ctl",0);
            updateWrapper.set("dk16_ctl",0);
            updateWrapper.set("dk17_ctl",0);
            updateWrapper.set("dk18_ctl",0);
        }
        updateWrapper.eq("dev_id",devId);
        mapper.update((Dev6159PowerParam) ActionUtil.objeNull,updateWrapper);
        //设置自己修改的开关
        String swtichSql=" UPDATE db_ram_db.tb_dev6159_power_param  SET "+swtichName+"="+swtichState+"  WHERE dev_id ="+devId;
        int flag=mapper.updateSwtichName(swtichSql);
        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 ?"修改整流模块控制参数成功!":"设置整流模块控制参数失败,请检查网络!");
    }
}