whyclxw
2025-03-20 aa212a7e9200bbad05793d07022ec6ba337425d4
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
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.Dev6185AlmparamMapper;
import com.whyc.pojo.Dev6185Almparam;
import com.whyc.util.ActionUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
@Service
public class Dev6185AlmparamService {
    @Autowired(required = false)
    private Dev6185AlmparamMapper mapper;
 
 
    /*6185参数设置*/
    public Response set6185Alarm(Dev6185Almparam par) {
        UpdateWrapper wrapper=new UpdateWrapper();
        wrapper.set("groupvol_high_val",par.getGroupvolHighVal());
        wrapper.set("groupvol_low_val",par.getGroupvolLowVal());
        wrapper.set("monvol_high_val",par.getMonvolHighVal());
        wrapper.set("monvol_low_val",par.getMonvolLowVal());
        wrapper.set("montmp_high_val",par.getMontmpHighVal());
        wrapper.set("montmp_low_val",par.getMontmpLowVal());
        wrapper.set("monres_high_val",par.getMonresHighVal());
        wrapper.set("monres_low_val",par.getMonresLowVal());
        wrapper.set("moncap_high_val",par.getMoncapHighVal());
        wrapper.set("moncap_low_val",par.getMoncapLowVal());
        wrapper.eq("dev_id",par.getDevId());
        int flag=mapper.update((Dev6185Almparam) ActionUtil.objeNull,wrapper);
        boolean bl=false;
        if(flag>0){
            bl= sendCmdTo6185Alarm(FBS9100_ComBase.CMD6185_WriteAlarmParam, par.getDevId());
        }
        return new Response().set(1,  bl, bl == true ? "设置成功!" : "核容6185参数设置失败,请检查网络!");
    }
 
    /*6185参数读取*/
    public Response get6185Alarm(int devId) {
        boolean bl = sendCmdTo6185Alarm(FBS9100_ComBase.CMD6185_ReadAlarmParam, devId);
        UpdateWrapper wrapper = new UpdateWrapper();
        wrapper.eq("dev_id", devId);
        wrapper.last("limit 1");
        Dev6185Almparam par = mapper.selectOne(wrapper);
        return new Response().setII(1,  bl,par, bl == true ? "查询成功!" : "核容6185参数读取失败,请检查网络!");
    }
 
 
    /*6186/6286(485通讯)参数设置*/
    public Response set6186Alarm(Dev6185Almparam par) {
        UpdateWrapper wrapper=new UpdateWrapper();
        wrapper.set("groupvol_high_val",par.getGroupvolHighVal());
        wrapper.set("groupvol_low_val",par.getGroupvolLowVal());
        wrapper.set("monvol_high_val",par.getMonvolHighVal());
        wrapper.set("monvol_low_val",par.getMonvolLowVal());
        wrapper.set("montmp_high_val",par.getMontmpHighVal());
        wrapper.set("montmp_low_val",par.getMontmpLowVal());
        wrapper.set("monres_high_val",par.getMonresHighVal());
        wrapper.set("monres_low_val",par.getMonresLowVal());
        wrapper.set("moncap_high_val",par.getMoncapHighVal());
        wrapper.set("moncap_low_val",par.getMoncapLowVal());
        wrapper.set("battgroupnum",par.getBattgroupnum());
        wrapper.set("onlinevol_high_val",par.getOnlinevolHighVal());
        wrapper.set("onlinevol_low_val",par.getOnlinevolLowVal());
        wrapper.set("onlinevol_en",par.getOnlinevolEn());
        wrapper.set("groupvol_en",par.getGroupvolEn());
        wrapper.set("monvol_en",par.getMonvolEn());
        wrapper.set("montmp_en",par.getMontmpEn());
        wrapper.set("monres_en",par.getMonresEn());
        wrapper.set("moncap_en",par.getMoncapEn());
        wrapper.set("discurr_high_val",par.getDiscurrHighVal());
        wrapper.set("discurr_en",par.getDiscurrEn());
        wrapper.set("chrcurr_high_val",par.getChrcurrHighVal());
        wrapper.set("chrcurr_en",par.getChrcurrEn());
        wrapper.eq("dev_id",par.getDevId());
        int flag=mapper.update((Dev6185Almparam) ActionUtil.objeNull,wrapper);
        boolean bl=false;
        if(flag>0){
            bl= sendCmdTo6185Alarm(FBS9100_ComBase.CMD6185_WriteAlarmParam, par.getDevId());
        }
        return new Response().set(1,  bl, bl == true ? "设置成功!" : "核容6186/6286(485通讯)参数设置失败,请检查网络!");
    }
 
    /*6186/6286(485通讯)参数读取*/
    public Response get6186Alarm(int devId,int battgroupnum) {
        UpdateWrapper wrapper = new UpdateWrapper();
        wrapper.set("battgroupnum",battgroupnum);
        wrapper.eq("dev_id", devId);
        mapper.update((Dev6185Almparam) ActionUtil.objeNull,wrapper);
        boolean bl = sendCmdTo6185Alarm(FBS9100_ComBase.CMD6185_ReadAlarmParam, devId);
        QueryWrapper queryWrapper = new QueryWrapper();
        queryWrapper.eq("dev_id", devId);
        queryWrapper.last("limit 1");
        Dev6185Almparam par = mapper.selectOne(queryWrapper);
        return new Response().setII(1,  bl,par, bl == true ? "查询成功!" : "6186/6286(485通讯)参数设置读取失败,请检查网络!");
    }
 
    public boolean sendCmdTo6185Alarm(int opCmd,int devId)
    {
        int m_cmd = opCmd;
        int m_cmd_ack = opCmd;
        switch(m_cmd) {
            case FBS9100_ComBase.CMD6185_ReadAlarmParam: m_cmd_ack = FBS9100_ComBase.CMD6185_ReadAlarmParam_ACK; break;
            case FBS9100_ComBase.CMD6185_WriteAlarmParam: m_cmd_ack = FBS9100_ComBase.CMD6185_WriteAlarmParam_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((Dev6185Almparam) 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++)
            {
 
                Dev6185Almparam dev6185Almparam=mapper.selectOne(queryWrapper);
                if(dev6185Almparam!=null){
                    if(dev6185Almparam.getOpCmd()==m_cmd_ack){
                        res_exe = true;
                        break;
                    }
                    try {
                        Thread.sleep(500);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }else {
                    break;
                }
            }
        }
        return res_exe;
    }
}