Browse Source

feat: PropertySetPublish 新增CompletableFuture支持方法

pull/41/head
Vincent 2 years ago
parent
commit
9d9d0cf21b
  1. 34
      src/main/java/com/dji/sdk/mqtt/property/PropertySetPublish.java

34
src/main/java/com/dji/sdk/mqtt/property/PropertySetPublish.java

@ -1,5 +1,8 @@
package com.dji.sdk.mqtt.property; package com.dji.sdk.mqtt.property;
import com.dji.sdk.common.PublishOption;
import com.dji.sdk.mqtt.CommonTopicRequest;
import com.dji.sdk.mqtt.CommonTopicResponse;
import com.dji.sdk.mqtt.MqttGatewayPublish; import com.dji.sdk.mqtt.MqttGatewayPublish;
import com.dji.sdk.mqtt.TopicConst; import com.dji.sdk.mqtt.TopicConst;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -7,6 +10,8 @@ import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Objects; import java.util.Objects;
import java.util.UUID; import java.util.UUID;
import java.util.concurrent.CompletableFuture;
import java.util.function.Consumer;
/** /**
* @author sean * @author sean
@ -29,12 +34,33 @@ public class PropertySetPublish {
public PropertySetReplyResultEnum publish(String sn, Object data, int retryCount, long timeout) { public PropertySetReplyResultEnum publish(String sn, Object data, int retryCount, long timeout) {
String topic = TopicConst.THING_MODEL_PRE + TopicConst.PRODUCT + Objects.requireNonNull(sn) + TopicConst.PROPERTY_SUF + TopicConst.SET_SUF; String topic = TopicConst.THING_MODEL_PRE + TopicConst.PRODUCT + Objects.requireNonNull(sn) + TopicConst.PROPERTY_SUF + TopicConst.SET_SUF;
return gatewayPublish.publishWithReply(PropertySetReplyResultEnum.class,topic,
new CommonTopicRequest<>()
.setTimestamp(System.currentTimeMillis())
.setData(Objects.requireNonNull(data)),
ops->ops.timeout((int)(timeout/1000)))
.join()
.getData();
// return gatewayPublish.publishWithReply(
// PropertySetReplyResultEnum.class, topic, new TopicPropertySetRequest<>()
// .setTid(UUID.randomUUID().toString())
// .setBid(null)
// .setTimestamp(System.currentTimeMillis())
// .setData(Objects.requireNonNull(data)), retryCount, timeout).getData();
}
public CompletableFuture<CommonTopicResponse<PropertySetReplyResultEnum>>
publish(String sn, Object data, Consumer<PublishOption> options){
String topic = TopicConst.THING_MODEL_PRE + TopicConst.PRODUCT + Objects.requireNonNull(sn) + TopicConst.PROPERTY_SUF + TopicConst.SET_SUF;
return gatewayPublish.publishWithReply( return gatewayPublish.publishWithReply(
PropertySetReplyResultEnum.class, topic, new TopicPropertySetRequest<>() PropertySetReplyResultEnum.class,
.setTid(UUID.randomUUID().toString()) topic,
.setBid(null) new CommonTopicRequest<>()
.setTimestamp(System.currentTimeMillis()) .setTimestamp(System.currentTimeMillis())
.setData(Objects.requireNonNull(data)), retryCount, timeout).getData(); .setData(Objects.requireNonNull(data)),
options);
} }
} }

Loading…
Cancel
Save