liding
2025-04-23 bc1b3ee367f7e9aef88fc59647a9631f39eca6b5
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
package com.ruoyi.device.controller;
 
 
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.device.pojo.NA7672LRequestBean;
import com.ruoyi.device.pojo.NA7672LValueVO;
import com.ruoyi.device.utils.NA7672LTCPClientUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.core.io.ClassPathResource;
import org.springframework.web.bind.annotation.*;
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
/**
 * demo 表
 *
 * @author pig
 * @date 2023-07-31 14:07:58
 */
@RestController
@RequiredArgsConstructor
@RequestMapping("tcpClient")
@Api(value = "tcp", tags = "读取网分仪数据")
public class NA7672LTCPController {
    
    @ApiOperation(value = "获取网分仪所有值", notes = "获取网分仪所有值")
    @PostMapping("/getTCPValuesNew")
    public Result<?> getTCPValuesNew(@RequestBody NA7672LRequestBean requestBean) throws IOException, InterruptedException {
        List<NA7672LValueVO> valueList = new ArrayList<>();
        //设置默认配置,可在yml里进行配置
        String serverIp = requestBean.getServerIp();
        int serverPort = requestBean.getServerPort();
        NA7672LTCPClientUtils tcpClient = new NA7672LTCPClientUtils(serverIp, serverPort);
        //设置全部通道(界面save/recall-调式2,需要本地有state02文件)
        tcpClient.initMemory(requestBean.getMemoryDir());
        String valueUnit = this.getMemoryDirName(requestBean.getMemoryDir());
        //延迟两秒再取值
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        List<NA7672LValueVO> rs = new ArrayList<>();
        if (valueUnit.equals("state01")) {
            rs = tcpClient.getState01AllValue(requestBean);
        } else if (valueUnit.equals("state02")) {
            rs = tcpClient.getState02AllValue(requestBean);
        } else if (valueUnit.equals("state03")) {
            rs = tcpClient.getState03AllValue(requestBean);
        } else if (valueUnit.equals("state04")) {
            rs = tcpClient.getState04AllValue(requestBean);
        } else if (valueUnit.equals("state05")) {
            rs = tcpClient.getState05AllValue(requestBean);
        } else if (valueUnit.equals("state06")) {
            rs = tcpClient.getState06AllValue(requestBean);
        } else if (valueUnit.equals("state07")) {
            rs = tcpClient.getState07AllValue(requestBean);
        } else if (valueUnit.equals("state08")) {
            rs = tcpClient.getState08AllValue(requestBean);
        } else if (valueUnit.equals("autorec")) {
            rs = tcpClient.getStateAutoRecAllValue(requestBean);
        } else {
 
        }
        return Result.success(rs);
    }
 
    /*依照约定把前端传递的查询转化为后端接口查询*/
    private String decayLabelOrg2Label(String labelOrg) {
        String label = "decay_0m";
        Pattern pattern = Pattern.compile("(\\d*)M");
        Matcher matcher = pattern.matcher(labelOrg);
        String valueUnit = null;
        if (matcher.find()) {
            valueUnit = matcher.group();
        }
        if (valueUnit != null) {
            label = "decay_" + valueUnit.substring(0, valueUnit.length() - 1) + "m";
        }
        return label;
    }
    
    /*使用memory_dir的路径解析出类别*/
    private String getMemoryDirName(String pathName) {
        String[] splitString = pathName.split("/");
        String filename_1 = splitString[splitString.length - 1];
        String[] filename_2 = filename_1.split("\\.");
        String filename_3 = filename_2[0];
        return filename_3;
 
        /*Pattern pattern = Pattern.compile("state(\\d*)");
        Matcher matcher = pattern.matcher(pathName);
        String valueUnit = null;
        if (matcher.find()) {
            valueUnit = matcher.group();
        }
        return valueUnit;*/
    }
 
 
}