jiazx0107@163.com
2023-05-17 620eab6cca2bc9ef9ea6d3067a0a5ba1deadbd1c
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
package com.ld.igds.protocol.snap;
 
import com.ld.igds.camera.data.ApiSnapReq;
 
import java.util.HashMap;
import java.util.Map;
 
/**
 * 工具类
 *
 * @author Andy
 */
public class SnapUtils {
 
    /**
     * 用于存放已经发送的命令信息
     */
    public static Map<String, ApiSnapReq> contextMap = new HashMap<>();
 
    /**
     * 心跳管理MAP
     */
    public static Map<String, Long> contextHeartBeat = new HashMap<>();
 
    public static final String MSG_BEGIN = "<FZZY>";
    public static final String MSG_END = "<EEEE>";
 
    public static final String FUNC_ID_0 = "0";
    public static final String FUNC_ID_1 = "1";
    public static final String FUNC_ID_2 = "2";
 
 
    public static final String ACTION_CODE_10 = "10";//断电
    public static final String ACTION_CODE_11 = "11";//上电
    public static final String ACTION_CODE_20 = "20";//心跳
    public static final String ACTION_CODE_99 = "99";//其它
 
 
    /**
     * 单次心跳间隔时间 单位:秒
     */
    public static final int HEART_BEAT_TIME = 30;
 
    /**
     * 生成TCP连接的KEY
     *
     * @param ip
     * @param port
     * @return
     */
    public static String getServerKey(String ip, Integer port) {
        return ip + ":" + port;
    }
 
    public static void addRequest(String orderId, ApiSnapReq param) {
        contextMap.put("KEY_" + orderId, param);
    }
 
    public static ApiSnapReq getRequest(String orderId) {
        ApiSnapReq apiSnapReq = contextMap.get("KEY_" + orderId);
        if (null != apiSnapReq) {
            removeRequest(orderId);
        }
        return apiSnapReq;
    }
 
    public static void removeRequest(String orderId) {
        contextMap.remove(orderId);
    }
 
 
 
    public static void addHeartBeat(String ip, int port) {
        contextHeartBeat.put(getServerKey(ip, port), System.currentTimeMillis());
    }
 
    public static Long getHeartBeat(String ip, int port) {
        return contextHeartBeat.get(getServerKey(ip, port));
    }
 
    public static void delHeartBeat(String ip, int port) {
        contextHeartBeat.remove(getServerKey(ip, port));
    }
}