lxw
2023-05-25 f3c27fb78447449a950ba73c5e72ceda64ad8a12
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
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.github.pagehelper.PageInfo;
import com.whyc.dto.FBS9100_ComBase;
import com.whyc.dto.Response;
import com.whyc.mapper.Fbs9600StateMapper;
import com.whyc.pojo.Fbs9100State;
import com.whyc.pojo.Fbs9600State;
import org.springframework.stereotype.Service;
 
import javax.annotation.Resource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
 
@Service
public class Fbs9600StateService {
    @Resource
    private Fbs9600StateMapper mapper;
 
    //FBS9100设备通信状态查询
    public Response searchByCondition(int pageNum,int pageSize,int devErrcommcount,int uId){
        PageHelper.startPage(pageNum,pageSize);
        List<Fbs9600State> list = mapper.searchByCondition(devErrcommcount,uId);
        PageInfo<Fbs9600State> pageInfo = new PageInfo<>(list);
        return new Response().set(1,pageInfo,"查询成功");
    }
    //在线监测-实时监控-启动测试-bts显示屏(fbs9600)启动放电
    public Response update(int cmd, int devId) {
        boolean bl=sendCmdToFBS9600Dev(cmd,devId);
        return new Response().set(1,bl);
    }
 
    //机房命令操作设备时的cmd和ack校验
    public boolean sendCmdToFBS9600Dev(int cmd,int dev_id)
    {
        int m_cmd = cmd;
        int m_cmd_ack = cmd;
        switch(m_cmd) {
            case FBS9100_ComBase.CMD_Start: m_cmd_ack = FBS9100_ComBase.CMD_StartAck; break;
            case FBS9100_ComBase.CMD_Stop: m_cmd_ack = FBS9100_ComBase.CMD_StopAck; break;
            default: return false;
        }
        boolean res_exe = false;
        UpdateWrapper wrapper=new UpdateWrapper();
        wrapper.eq("dev_id",dev_id);
        wrapper.set("op_cmd",m_cmd);
        int number=mapper.update(null,wrapper);
        if(number>0)
        {
 
            QueryWrapper wrapper1=new QueryWrapper();
            wrapper1.eq("dev_id",dev_id);
            for(int n=0; n<40; n++)
            {
                PageHelper.startPage(1,1);
                Fbs9600State fbs9600State=mapper.selectOne(wrapper1);
                if(fbs9600State!=null)
                {
                    if(fbs9600State.getOpCmd() == m_cmd_ack)
                    {
                        res_exe = true;
                        break;
                    }
                }else{
                    break;
                }
                try {
                    Thread.sleep(250);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
        return res_exe;
    }
}