package com.casic.resolver; import com.alibaba.druid.util.StringUtils; import com.casic.enums.AlarmDatagramFlag; import com.casic.enums.DevcodeEnums; import com.casic.enums.RelayDevcodeMapEnums; import com.casic.model.RelayStatusDTO; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @Slf4j @Service public class AlarmDataResolver implements DatagramResolver, AlarmDatagramFlag, DevcodeEnums { @Override public RelayStatusDTO datagram(String msg) { if (msg.contains(alarmMark)) { String devcode = ""; Integer isAlarm; if (msg.contains(HUMI_TEMP)) { devcode = HUMI_TEMP; isAlarm = Integer.valueOf(msg.substring(16, 17)); } else { //去掉补位 devcode = msg.substring(0, 12); isAlarm = Integer.valueOf(msg.substring(16, 17)); } log.info("设备编号为" + devcode + ",是否报警" + isAlarm); String channelName = RelayDevcodeMapEnums.RELAY_DEVCODE.getRelayDevcodeMap().get(devcode); if (StringUtils.isEmpty(channelName)) { return null; } return RelayStatusDTO.builder() .devcode(devcode) .deviceType("温湿度传感器") .channelName(channelName) .lampSwitch(isAlarm) .build(); } return null; } }