//package com.example.math.utils; // //import com.alibaba.fastjson.JSONObject; //import com.example.math.constants.DJIMethonConstants; //import com.example.math.mqtt.MqttConfig; //import lombok.extern.slf4j.Slf4j; //import org.eclipse.paho.client.mqttv3.MqttDeliveryToken; //import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.beans.factory.annotation.Value; //import org.springframework.stereotype.Component; //import org.springframework.web.bind.annotation.ResponseBody; // //import javax.annotation.Resource; //import java.util.HashMap; //import java.util.Map; //import java.util.UUID; // ///** // * 远程大疆的工具类 // */ //@Component //@Slf4j //public class DJIUtils { // // @Resource // private MqttConfig providerClient; // // @Value("${spring.newMqtt.username}") // private String username; // // @Value("${spring.newMqtt.password}") // private String password; // // @Value("${spring.newMqtt.url}") // private String address; // // @Value("${spring.newMqtt.newUrl}") // private String newAddress; // // @Value("${spring.newMqtt.client.id}") // private String clientId; // // @Autowired // private RedisUtils redisUtils; // // public static String filePath = ""; // public static String fileMd5 = ""; // // //topic固定参数 // private static String someTopic = "thing/product/%s/services"; // // // //topic固定参数 // private static String propertySet = "thing/product/%s/property/set"; // // // //机场 无人机 镜头清晰度 // private static String camera = "normal-0"; // // // // // public static int seq = 0; // // /** // * 飞行控制权抢夺 /flightAuthorityGrab // * @param airPortSn 机场sn号 // * @return JsonResult // */ // public String flightAuthorityGrab(String airPortSn){ // try { // log.info("飞行控制权抢夺 flight_authority_grab is start"); // Integer qos = 1; // Boolean retained = false; // //topic主题 sn是机场sn号 thing/product/%s/services // //TODO 此处用的是无人的SN号 待测试 // String topic = String.format(someTopic, airPortSn); // //封装数据 // Map content = new HashMap<>(); // Map data = new HashMap<>(); // String tid = UUID.randomUUID().toString(); // content.put("tid", tid); // content.put("bid", UUID.randomUUID().toString()); // content.put("timestamp",System.currentTimeMillis()); // content.put("method", "flight_authority_grab"); // content.put("data", data); // String message = JSONObject.toJSONString(content); // System.out.println(message); // MqttDeliveryToken publish = providerClient.publish(qos, retained, topic, message); // log.info("飞行控制权抢夺 flight_authority_grab is end topic is {}, message is {}, token is {} ", topic, message, publish); // return "发送成功"; // } catch (Exception e) { // e.printStackTrace(); // return "发送成功"; // } // } // // /** // * 负载控制权抢夺 /payloadAuthorityGrab // * @param airPortSn 机场sn号 // * @param cameraIndex 镜头参数 // * @return JsonResult // */ // public String payloadAuthorityGrab(String cameraIndex, String airPortSn){ // try { // Integer qos = 2; // Boolean retained = false; // //topic主题 sn是机场sn号 thing/product/%s/services // //TODO 此处用的是无人的SN号 待测试 // String topic = String.format(someTopic, airPortSn); // //封装数据 // Map content = new HashMap<>(); // Map data = new HashMap<>(); // //负载枚举值 镜头负载 // data.put("payload_index", cameraIndex); // content.put("tid", UUID.randomUUID().toString()); // content.put("bid", UUID.randomUUID().toString()); // content.put("timestamp",System.currentTimeMillis()); // content.put("method", "payload_authority_grab"); // content.put("data", data); // String message = JSONObject.toJSONString(content); // System.out.println(message); // MqttDeliveryToken publish = providerClient.publish(qos, retained, topic, message); // return "发送成功"; // } catch (Exception e) { // e.printStackTrace(); // return "发送失败"; // } // } // // // /** // * 进入指令飞行控制模式 // * @return JsonResult // */ // public String drcModeEnter(String airPortSn){ // try { // seq = 0; // Integer qos = 1; // Boolean retained = false; // //topic主题 sn是机场sn号 thing/product/%s/services // //TODO 此处用的是无人的SN号 待测试 // String topic = String.format(someTopic, airPortSn); // //封装数据 // Map content = new HashMap<>(); // Map data = new HashMap<>(); // //负载枚举值 镜头负载 // data.put("hsi_frequency", 1); // // //Broker 连接信息 // Map mqttBroker = new HashMap<>(); // //服务器连接地址 // mqttBroker.put("address", newAddress); // //客户端ID // mqttBroker.put("client_id", "DRC" + "-" + airPortSn); // //enable_tls // mqttBroker.put("enable_tls", false); // //expire_time 当前时间+3000秒 // mqttBroker.put("expire_time", System.currentTimeMillis()/1000 + 36000); // //密码 // mqttBroker.put("password", password); // //用户名 // mqttBroker.put("username", username); // data.put("mqtt_broker", mqttBroker); // //设置 OSD 上报频率 {"max":30,"min":1,"unit_name":"赫兹 / Hz"} // data.put("osd_frequency", 1); // // content.put("tid", UUID.randomUUID().toString()); // content.put("bid", UUID.randomUUID().toString()); // content.put("timestamp",System.currentTimeMillis()); // content.put("method", DJIMethonConstants.DRC_MODE_ENTER); // content.put("data", data); // String message = com.alibaba.fastjson.JSONObject.toJSONString(content); // System.out.println(message); // MqttDeliveryToken publish = providerClient.publish(qos, retained, topic, message); // return "发送成功"; // } catch (Exception e) { // e.printStackTrace(); // return "发送失败"; // } // } // // // // /** // * 退出指令飞行控制模式 // * @param airPortSn 机场sn号 // * @return JsonResult // */ // @ResponseBody // public String drcModeExit(String airPortSn){ // try { // log.info("退出指令飞行控制模式 drc_mode_exit is start"); // Integer qos = 1; // Boolean retained = false; // //topic主题 sn是机场sn号 thing/product/%s/services // //TODO 此处用的是无人的SN号 待测试 // String topic = String.format(someTopic, airPortSn); // //封装数据 // Map content = new HashMap<>(); // Map data = new HashMap<>(); // content.put("tid", UUID.randomUUID().toString()); // content.put("bid", UUID.randomUUID().toString()); // content.put("timestamp",System.currentTimeMillis()); // content.put("method", DJIMethonConstants.DRC_MODE_EXIT); // content.put("data", data); // String message = JSONObject.toJSONString(content); // System.out.println(message); // MqttDeliveryToken publish = providerClient.publish(qos, retained, topic, message); //// log.info("退出指令飞行控制模式 drc_mode_exit is end topic is {}, message is {}, token is {} ", topic, message, publish); // return "发送成功"; // } catch (Exception e) { // e.printStackTrace(); // return "发送失败"; // } // } // // // // //} //