| package com.dy.common.mw.protocol4Mqtt.pSdV1; | 
|   | 
| import com.dy.common.mw.protocol4Mqtt.MqttPubMsg; | 
| import com.dy.common.mw.protocol4Mqtt.MqttSubMsg; | 
| import com.dy.common.mw.protocol4Mqtt.MqttTopic; | 
| import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.StateVo; | 
| import com.dy.common.mw.protocol4Mqtt.Vo4Up; | 
| import com.dy.common.util.Callback; | 
| import lombok.Data; | 
| import lombok.EqualsAndHashCode; | 
|   | 
| /** | 
|  * @Author: liurunyu | 
|  * @Date: 2025/6/4 16:58 | 
|  * @Description 收到的订阅消息 | 
|  */ | 
| @Data | 
| @EqualsAndHashCode(callSuper=false) | 
| public class MqttSubMsgSdV1 extends MqttSubMsg { | 
|     public Vo4Up vo4Up;//订阅的消息数据值对象 | 
|   | 
|     public MqttSubMsgSdV1(){} | 
|   | 
|     public MqttSubMsgSdV1(MqttTopic subTopic, String msg) { | 
|         this.deviceId = subTopic.devId ; | 
|         this.protocol = subTopic.protocol ; | 
|         this.topic = subTopic ; | 
|         this.metaData = msg ; | 
|     } | 
|     public String toString(){ | 
|         StringBuilder sb = new StringBuilder(); | 
|         if(commandId != null){ | 
|             sb.append("commandId:") | 
|                     .append(commandId) | 
|                     .append("\n") ; | 
|         } | 
|         sb.append("主题:") | 
|                 .append(topic.longName()) | 
|                 .append("\n") ; | 
|         if(vo4Up != null){ | 
|             sb.append("数据:") | 
|                     .append(vo4Up.toString()) | 
|                     .append("\n") ; | 
|         }else{ | 
|             sb.append("元数据:") | 
|                     .append(metaData) | 
|                     .append("\n") ; | 
|         } | 
|         return sb.toString() ; | 
|     } | 
|   | 
|     public boolean subMsgMatchPubMsg(MqttPubMsg pubMsg){ | 
|         if (pubMsg instanceof MqttPubMsgSdV1) { | 
|             MqttPubMsgSdV1 pubMsgSdV1 = (MqttPubMsgSdV1) pubMsg; | 
|             if(this.vo4Up != null && this.vo4Up instanceof StateVo){ | 
|                 return true ; | 
|             } | 
|         } | 
|         return false ; | 
|     } | 
|   | 
|     @Override | 
|     public boolean valid() { | 
|         if (topic == null || topic.isEmpty()) { | 
|             return false; | 
|         } | 
|         if (metaData == null || metaData.isEmpty()) { | 
|             return false; | 
|         } | 
|         return true; | 
|     } | 
|   | 
|     @Override | 
|     public void action(Callback callback){ | 
|         callback.call(this) ; | 
|     } | 
|   | 
| } |