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 @@ @@ -1,5 +1,8 @@
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.TopicConst;
import org.springframework.stereotype.Component;
@ -7,6 +10,8 @@ import org.springframework.stereotype.Component; @@ -7,6 +10,8 @@ import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.Objects;
import java.util.UUID;
import java.util.concurrent.CompletableFuture;
import java.util.function.Consumer;
/**
* @author sean
@ -29,12 +34,33 @@ public class PropertySetPublish { @@ -29,12 +34,33 @@ public class PropertySetPublish {
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;
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(
PropertySetReplyResultEnum.class, topic, new TopicPropertySetRequest<>()
.setTid(UUID.randomUUID().toString())
.setBid(null)
PropertySetReplyResultEnum.class,
topic,
new CommonTopicRequest<>()
.setTimestamp(System.currentTimeMillis())
.setData(Objects.requireNonNull(data)), retryCount, timeout).getData();
.setData(Objects.requireNonNull(data)),
options);
}
}

Loading…
Cancel
Save