whycrzg
2021-02-23 351b9a53cb9ecebdf8f79db0117f540d9c42c2a4
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
package com.fgkj.services.ram;
 
import com.fgkj.dto.ServiceModel;
import com.fgkj.dto.ram.Fbs9100s_fod_param;
import com.fgkj.mapper.FBS9100_ComBase;
import com.fgkj.mapper.impl.ram.Fbs9100s_fod_paramMapper;
import org.springframework.stereotype.Service;
 
import javax.annotation.Resource;
@Service
public class Fbs9100s_fod_paramService {
 
    @Resource
    private Fbs9100s_fod_paramMapper mapper;;
 
    
    //机房命令操作设备时的cmd和ack校验  
    public ServiceModel update(Fbs9100s_fod_param fod){
        ServiceModel model = new ServiceModel();
        Boolean b=mapper.update(fod)>0;
        if(b){
            boolean bl=sendCmdToFBS9100FOD(fod.getOp_cmd(), fod.getDev_id());
            if(bl){
                model.setCode(1);
                model.setMsg("修改成功!");
            }else{
                model.setCode(0);
                model.setMsg("设置养护除硫参数失败,请检查网络!");
            }
        }else{
            model.setCode(0);
            model.setMsg("修改失败!");
        }        
        return model;
    }
    //启动和停止命令
    public ServiceModel startOrStopTest(Fbs9100s_fod_param fod){
        ServiceModel model = new ServiceModel();
        Boolean b=mapper.startOrStopTest(fod);
        if(b){
            boolean bl=sendCmdToFBS9100FOD(fod.getOp_cmd(), fod.getDev_id());
            if(bl){
                model.setCode(1);
                model.setMsg("发送命令成功!");
            }else{
                model.setCode(0);
                model.setMsg("发送命令失败,请检查网络!");
            }
        }else{
            model.setCode(0);
            model.setMsg("修改失败!");
        }
        return model;
    }
 
    private boolean sendCmdToFBS9100FOD(int cmd, int dev_id) {
        int m_cmd = cmd;
        int m_cmd_ack = cmd;
        switch(m_cmd) {
            case FBS9100_ComBase.CMD_ReadFodParam: m_cmd_ack = FBS9100_ComBase.CMD_ReadFodParamAck; break;
            case FBS9100_ComBase.CMD_WriteFodParam: m_cmd_ack = FBS9100_ComBase.CMD_WriteFodParamAck; break;
            case FBS9100_ComBase.CMD_Start_FODCL_test: m_cmd_ack = FBS9100_ComBase.CMD_Start_FODCL_testAck; break;
            case FBS9100_ComBase.CMD_Start_FODYH_test: m_cmd_ack = FBS9100_ComBase.CMD_Start_FODYH_testAck; break;
            case FBS9100_ComBase.CMD_Stop_FOD_test: m_cmd_ack = FBS9100_ComBase.CMD_Stop_FOD_testAck; break;
            default: return false;
        }
        boolean res_exe = false;
        Boolean bl = mapper.updateOpCmdByDevId(m_cmd,dev_id)>0;
        if(true == bl)
        {
            for(int n=0; n<40; n++)
            {
                int opCmd =mapper.getOpCmdByDevId(dev_id);
                if(opCmd == m_cmd_ack)
                {
                    res_exe = true;
                    break;
                }
                try {
                    Thread.sleep(250);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
        return res_exe;
    }
 
    //根据设备id查询参数
    public ServiceModel serchByCondition(Fbs9100s_fod_param fod){
        ServiceModel model = new ServiceModel();
        Fbs9100s_fod_param param=mapper.serchByCondition(fod);
        if(param!=null){
            model.setCode(1);
            model.setData(param);
            model.setMsg("查询成功!");
            
        }else{
            model.setCode(0);
            model.setMsg("查询失败!");
        }
        return model;
    } 
    
 
}