jiazx0107@163.com
2023-11-07 f75ee38163880a4a12373bf1d4750056a72272d2
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
package com.fzzy.gateway;
 
import com.fzzy.gateway.entity.GatewayDevice;
 
import java.util.HashMap;
import java.util.Map;
 
/**
 * 常量
 */
public class GatewayUtils {
 
 
    /**
     * 设备在线标记,针对WEBSocket请求,控制设备是否在线,key = deviceId,Value=Y/N
     */
    public static Map<String, String> contextOnlineMap = new HashMap<>();
 
 
    /**
     * 设备缓存
     */
    public static Map<String, GatewayDevice> cacheMapDeviceId = new HashMap<>();
 
    /**
     * 设备缓存
     */
    public static Map<String, GatewayDevice> cacheMapDeviceSn = new HashMap<>();
 
 
    public static void add2Cache(GatewayDevice device) {
        cacheMapDeviceId.put(device.getDeviceId(), device);
        cacheMapDeviceSn.put(device.getDeviceSn(), device);
    }
 
    public static GatewayDevice getCacheByDeviceId(String deviceId) {
        return cacheMapDeviceId.get(deviceId);
    }
 
    public static GatewayDevice getCacheByDeviceSn(String deviceSn) {
        return cacheMapDeviceSn.get(deviceSn);
    }
 
 
    public static void removeCache(GatewayDevice data) {
        cacheMapDeviceId.remove(data.getDeviceId());
        cacheMapDeviceSn.remove(data.getDeviceSn());
    }
 
    public static void updateOnline(String deviceId) {
        contextOnlineMap.put(deviceId, "Y");
    }
 
    public static void updateOffOnline(String deviceId) {
        contextOnlineMap.put(deviceId, "N");
    }
 
    public static boolean isOnline(String deviceId) {
        String value = contextOnlineMap.get(deviceId);
        if (null == value || "N".equals(value)) return false;
        return true;
    }
}