package com.battery.device.api.model; import java.util.Locale; /** * 设备侧观测到的通道工作状态,是设备事实,独立于设备在线状态和测试接收状态。 * *
落库前会归并为 RUNNING、PAUSED、ABNORMAL、ENDED、UNOBSERVABLE 五种,见业务层的通道状态映射。
*/ 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; }; } }