whyclxw
2024-12-04 bfe4fe07fd77534f3dd43b01b50a2f9b7d047cf9
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
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.PowerParamCmd;
import com.whyc.dto.Response;
import com.whyc.mapper.PowerSetparmMapper;
import com.whyc.pojo.db_power_fk_rt.PowerSetparm;
import com.whyc.util.ActionUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
 
@Service
public class PowerSetparmService {
    @Autowired(required = false)
    private PowerSetparmMapper mapper;
 
    //机房命令操作设备时的cmd和ack校验
    public boolean sendCmdToParam(int cmd, int powerId) {
        int m_cmd = cmd;
        int m_cmd_ack = cmd;
        switch (m_cmd) {
            case PowerParamCmd.CMD_WritePowerOpen:
                m_cmd_ack = PowerParamCmd.CMD_WritePowerOpen_Ack;
                break;
            case PowerParamCmd.CMD_WriteClearAlm:
                m_cmd_ack = PowerParamCmd.CMD_WriteClearAlm_Ack;
                break;
            case PowerParamCmd.CMD_WriteVBus_Vref:
                m_cmd_ack = PowerParamCmd.CMD_WriteVBus_Vref_Ack;
                break;
            case PowerParamCmd.CMD_WritePowerClose:
                m_cmd_ack = PowerParamCmd.CMD_WritePowerClose_Ack;
                break;
            case PowerParamCmd.CMD_WriteLLC_BuckVol:
                m_cmd_ack = PowerParamCmd.CMD_WriteLLC_BuckVol_Ack;
                break;
            case PowerParamCmd.CMD_WriteLLC_BuckCurr:
                m_cmd_ack = PowerParamCmd.CMD_WriteLLC_BuckCurr_Ack;
                break;
            case PowerParamCmd.CMD_WriteTestModel:
                m_cmd_ack = PowerParamCmd.CMD_WriteTestModel_Ack;
                break;
            default:
                return false;
        }
        UpdateWrapper updateWrapper=new UpdateWrapper();
        updateWrapper.set("op_cmd",m_cmd);
        updateWrapper.eq("power_id",powerId);
        int flag=mapper.update((PowerSetparm) ActionUtil.objeNull,updateWrapper);
        boolean res_exe = false;
        if(flag>0)
        {
            PageHelper.startPage(1,1);
            QueryWrapper queryWrapper=new QueryWrapper();
            queryWrapper.eq("power_id",powerId);
            for(int n=0; n<40; n++)
            {
 
                PowerSetparm param=mapper.selectOne(queryWrapper);
                if(param!=null){
                    if(param.getOpCmd()==m_cmd_ack){
                        res_exe = true;
                        break;
                    }
                    try {
                        Thread.sleep(250);
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }else {
                    break;
                }
            }
        }
        return res_exe;
    }
 
    //控制电源开机
    public Response controllPowerOpen(Integer powerId) {
        boolean bl=sendCmdToParam(PowerParamCmd.CMD_WritePowerOpen,powerId);
        return new Response().set(1,bl, bl == true ? "电源开机成功!" : "电源开机失败,请检查网络!");
    }
 
    //控制电源关机
    public Response controllPowerClose(Integer powerId) {
        boolean bl=sendCmdToParam(PowerParamCmd.CMD_WritePowerClose,powerId);
        return new Response().set(1,bl, bl == true ? "控制电源关机!" : "电源开机失败,请检查网络!");
    }
    //清除变换器故障
    public Response controllClearAlm(Integer powerId) {
        boolean bl=sendCmdToParam(PowerParamCmd.CMD_WriteClearAlm,powerId);
        return new Response().set(1,bl, bl == true ? "清除变换器故障成功!" : "清除变换器故障失败,请检查网络!");
    }
    //设置电源工作模式:testModeSet(03-逆变并网06-PFC工作)
    public Response controllTestModel(Integer powerId, Integer testModeSet) {
        boolean bl = false;
        String msg = "";
        UpdateWrapper updateWrapper=new UpdateWrapper();
        updateWrapper.set("testmode_set",testModeSet);
        updateWrapper.eq("power_id",powerId);
        int flag=mapper.update((PowerSetparm) ActionUtil.objeNull,updateWrapper);
        if (flag>0) {
            bl=sendCmdToParam(PowerParamCmd.CMD_WriteTestModel,powerId);
            if (bl) {
                flag = 1;
                msg = "修改模式参数成功!";
            } else {
                flag = 0;
                msg = "设置电源工作模式失败,请检查网络!";
            }
        } else {
            flag = 0;
            msg = "修改模式参数失败!";
        }
        return new Response().set(1,flag>0?true:false,msg);
    }
    //设置PFC模式VBus电压
    public Response controllVBusVref(Integer powerId, Float vbusIrefSet) {
        boolean bl = false;
        String msg = "";
        UpdateWrapper updateWrapper=new UpdateWrapper();
        updateWrapper.set("vbus_iref_set",vbusIrefSet);
        updateWrapper.eq("power_id",powerId);
        int flag=mapper.update((PowerSetparm) ActionUtil.objeNull,updateWrapper);
        if (flag>0) {
            bl=sendCmdToParam(PowerParamCmd.CMD_WriteVBus_Vref,powerId);
            if (bl) {
                flag = 1;
                msg = "修改模式参数成功!";
            } else {
                flag = 0;
                msg = "设置PFC模式VBus电压失败,请检查网络!";
            }
        } else {
            flag = 0;
            msg = "修改模式参数失败!";
        }
        return new Response().set(1,flag>0?true:false,msg);
    }
    //设置LLCBuck电压
    public Response controllLLCBuckVol(Integer powerId, Float llcBuckvolSet) {
        boolean bl = false;
        String msg = "";
        UpdateWrapper updateWrapper=new UpdateWrapper();
        updateWrapper.set("llc_buckvol_set",llcBuckvolSet);
        updateWrapper.eq("power_id",powerId);
        int flag=mapper.update((PowerSetparm) ActionUtil.objeNull,updateWrapper);
        if (flag>0) {
            bl=sendCmdToParam(PowerParamCmd.CMD_WriteLLC_BuckVol,powerId);
            if (bl) {
                flag = 1;
                msg = "修改模式参数成功!";
            } else {
                flag = 0;
                msg = "设置LLCBuck电压失败,请检查网络!";
            }
        } else {
            flag = 0;
            msg = "修改模式参数失败!";
        }
        return new Response().set(1,flag>0?true:false,msg);
    }
    //设置LLCBuck电流
    public Response controllLLCBuckCurr(Integer powerId, Float llcBuckcurrSet) {
        boolean bl = false;
        String msg = "";
        UpdateWrapper updateWrapper=new UpdateWrapper();
        updateWrapper.set("llc_buckcurr_set",llcBuckcurrSet);
        updateWrapper.eq("power_id",powerId);
        int flag=mapper.update((PowerSetparm) ActionUtil.objeNull,updateWrapper);
        if (flag>0) {
            bl=sendCmdToParam(PowerParamCmd.CMD_WriteLLC_BuckCurr,powerId);
            if (bl) {
                flag = 1;
                msg = "修改模式参数成功!";
            } else {
                flag = 0;
                msg = "设置LLCBuck电流失败,请检查网络!";
            }
        } else {
            flag = 0;
            msg = "修改模式参数失败!";
        }
        return new Response().set(1,flag>0?true:false,msg);
    }
}