From 694b9483c7a551626244cbc222c602ea9ff74094 Mon Sep 17 00:00:00 2001
From: sean.zhou <sean.zhou@dji.com>
Date: Tue, 25 Apr 2023 21:44:00 +0800
Subject: [PATCH] What's new? 1. Wayline management: added `pause wayline task` and `recover wayline task`. 2. Added command flight function. 3. Fixed some issues.

---
 src/main/java/com/dji/sample/component/mqtt/config/MqttConfiguration.java |   27 +++++++++++++++++++++++++++
 1 files changed, 27 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/dji/sample/component/mqtt/config/MqttConfiguration.java b/src/main/java/com/dji/sample/component/mqtt/config/MqttConfiguration.java
index 69c6398..ba8d939 100644
--- a/src/main/java/com/dji/sample/component/mqtt/config/MqttConfiguration.java
+++ b/src/main/java/com/dji/sample/component/mqtt/config/MqttConfiguration.java
@@ -5,6 +5,7 @@
 import com.dji.sample.component.mqtt.model.MqttClientOptions;
 import com.dji.sample.component.mqtt.model.MqttProtocolEnum;
 import com.dji.sample.component.mqtt.model.MqttUseEnum;
+import com.dji.sample.control.model.dto.MqttBrokerDTO;
 import lombok.Data;
 import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -70,6 +71,32 @@
         return addr.toString();
     }
 
+    /**
+     * Get the connection parameters of the mqtt client of the drc link.
+     * @param clientId
+     * @param username
+     * @param age   The validity period of the token. unit: s
+     * @param map   Custom data added in token.
+     * @return
+     */
+    public static MqttBrokerDTO getMqttBrokerWithDrc(String clientId, String username, Long age, Map<String, ?> map) {
+        if (!mqtt.containsKey(MqttUseEnum.DRC)) {
+            throw new RuntimeException("Please configure the drc link parameters of mqtt in the backend configuration file first.");
+        }
+        Algorithm algorithm = JwtUtil.algorithm;
+
+        String token = JwtUtil.createToken(map, age, algorithm, null, null);
+
+        return MqttBrokerDTO.builder()
+                .address(getMqttAddress(mqtt.get(MqttUseEnum.DRC)))
+                .username(username)
+                .clientId(clientId)
+                .expireTime(System.currentTimeMillis() / 1000 + age)
+                .password(token)
+                .build();
+    }
+
+
     @Bean
     public MqttConnectOptions mqttConnectOptions() {
         MqttClientOptions customizeOptions = getBasicClientOptions();

--
Gitblit v1.9.3