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
| package com.battery.device.api.model;
|
| import java.util.Locale;
|
| /**
| * 设备侧观测到的通道工作状态,是设备事实,独立于设备在线状态和测试接收状态。
| *
| * <p>落库前会归并为 RUNNING、PAUSED、ABNORMAL、ENDED、UNOBSERVABLE 五种,见业务层的通道状态映射。</p>
| */
| public enum DeviceWorkStatus
| {
| /** 设备运行中。*/
| WORKING,
| /** 设备通道已结束。*/
| FINISHED,
| /** 设备通道已停止。*/
| STOPPED,
| /** 设备保护动作触发。*/
| PROTECTED,
| /** 设备通道暂停。*/
| PAUSED,
| /** 设备同步控制中。*/
| SYNCHRONIZING,
| /** 设备指示灯状态。*/
| LIT,
| /** 设备等待超时。*/
| WAITING_TIMEOUT,
| /** 设备等待开始。*/
| WAITING_START,
| /** 设备通道锁定。*/
| LOCKED,
| /** 设备离线或请求失败时不得沿用上一次通道状态。 */
| UNOBSERVABLE,
| /** 协议返回无法识别的状态值。 */
| UNKNOWN;
|
| /** 将厂商协议状态文本映射为通道工作状态;无法识别的取值和 null 归为 UNKNOWN。 */
| public static DeviceWorkStatus fromBts(String value)
| {
| if (value == null) return UNKNOWN;
| return switch (value.trim().toLowerCase(Locale.ROOT))
| {
| case "working" -> WORKING;
| case "finish" -> FINISHED;
| case "stop" -> STOPPED;
| case "protect" -> PROTECTED;
| case "pause" -> PAUSED;
| case "synctrl" -> SYNCHRONIZING;
| case "ligth", "light" -> LIT;
| case "waittimeout" -> WAITING_TIMEOUT;
| case "waitstart" -> WAITING_START;
| case "lock" -> LOCKED;
| default -> UNKNOWN;
| };
| }
| }
|
|