| package com.dy.common.mw.protocol4Mqtt; | 
|   | 
| import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.ManureVo; | 
| import com.dy.common.util.Callback; | 
| import lombok.Data; | 
|   | 
| /** | 
|  * @Author: liurunyu | 
|  * @Date: 2025/6/5 11:44 | 
|  * @Description | 
|  */ | 
| @Data | 
| public class MqttSubMsg { | 
|     public String commandId ;//命令ID | 
|     public String mqttResultSendWebUrl ;//Mtt返回命令结果 发向目的地web URL | 
|   | 
|     public String deviceId ;//设备ID(FBox序列号) | 
|     public String protocol;//协议(名称+版本) | 
|   | 
|     public MqttTopic topic ;//消息主题 | 
|     public String metaData;//MQTT推送来的元数据 | 
|   | 
|     public Vo4Up vo4Up;//订阅的消息数据值对象 | 
|     public MqttSubMsg() { | 
|     } | 
|     public MqttSubMsg(MqttTopic subTopic, String msg) { | 
|         this.deviceId = subTopic.devId ; | 
|         this.protocol = subTopic.protocol ; | 
|         this.topic = subTopic ; | 
|         this.metaData = msg ; | 
|     } | 
|   | 
|     public boolean valid() { | 
|         if (topic == null || topic.isEmpty()) { | 
|             return false; | 
|         } | 
|         if (metaData == null || metaData.isEmpty()) { | 
|             return false; | 
|         } | 
|         return true; | 
|     } | 
|   | 
|     public boolean subMsgMatchPubMsg(MqttPubMsg pubMsg){ | 
|         if(this.vo4Up != null && this.vo4Up instanceof ManureVo){ | 
|             //只要上报的是状态数据,说明设备响应了命令 | 
|             return true ; | 
|         } | 
|         return false ; | 
|     } | 
|   | 
|     public void action(Callback callback){ | 
|         callback.call(this) ; | 
|     } | 
|   | 
|   | 
|     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() ; | 
|     } | 
| } |