whyclxw
7 天以前 257c8bcbc5453ecfa9c108ed650422013f7c11b6
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
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.CmdDto.DevCmd;
import com.whyc.dto.Response;
import com.whyc.mapper.AlmparamFromDeviceMapper;
import com.whyc.pojo.db_ram_db.AlmparamFromDevice;
import com.whyc.util.ActionUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
@Service
public class AlmparamFromDeviceService {
    @Autowired(required = false)
    private AlmparamFromDeviceMapper mapper;
 
    public boolean sendCmdTo6185Alarm(int opCmd,int devId)
    {
        int cmd = opCmd;
        int cmd_ack = 0;
        switch(cmd) {
            case DevCmd.CMD_ReadAlarmParam: cmd_ack = DevCmd.CMD_ReadAlarmParam_ACK; break;
            case DevCmd.CMD_WriteAlarmParam: cmd_ack = DevCmd.CMD_WriteAlarmParam_ACK; break;
            default:
                return false;
        }
        //更新op_cmd
        UpdateWrapper updateWrapper=new UpdateWrapper();
        updateWrapper.set("op_cmd",cmd);
        updateWrapper.eq("dev_id",devId);
        int flag=mapper.update((AlmparamFromDevice) 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<1; n++)
            {
 
                AlmparamFromDevice param=mapper.selectOne(queryWrapper);
                if(param!=null){
                    if(param.getOpCmd()==cmd_ack){
                        res_exe = true;
                        break;
                    }
                    try {
                        Thread.sleep(500);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }else {
                    break;
                }
            }
        }
        return res_exe;
    }
    //设备的告警参数设置
    public Response setAlarmFromDevice(AlmparamFromDevice 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((AlmparamFromDevice) ActionUtil.objeNull,wrapper);
        boolean bl=false;
        if(flag>0){
            bl= sendCmdTo6185Alarm(DevCmd.CMD_WriteAlarmParam, par.getDevId());
        }
        return new Response().set(1,  bl, bl == true ? "设置成功!" : "设置失败,请检查网络!");
    }
    //设备的告警参数读取
    public Response getAlarmFromDevice(int devId) {
        boolean bl = sendCmdTo6185Alarm(DevCmd.CMD_ReadAlarmParam, devId);
        UpdateWrapper wrapper = new UpdateWrapper();
        wrapper.eq("dev_id", devId);
        wrapper.last("limit 1");
        AlmparamFromDevice par = mapper.selectOne(wrapper);
        return new Response().setII(1,  bl,par, bl == true ? "读取成功!" : "读取失败,请检查网络!");
    }
}