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) ;
|
}
|
|
}
|