diff --git a/src/main/java/com/dji/sdk/mqtt/property/PropertySetPublish.java b/src/main/java/com/dji/sdk/mqtt/property/PropertySetPublish.java index 3426a85..2927c8b 100644 --- a/src/main/java/com/dji/sdk/mqtt/property/PropertySetPublish.java +++ b/src/main/java/com/dji/sdk/mqtt/property/PropertySetPublish.java @@ -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; 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 { 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> + publish(String sn, Object data, Consumer 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); } }