From 00c17a3a10a2856c847757e7021e60135b6ea894 Mon Sep 17 00:00:00 2001
From: zhangnaisong <2434969829@qq.com>
Date: 星期六, 27 七月 2024 23:55:43 +0800
Subject: [PATCH] 电磁锁密码提交
---
ard-work/src/main/java/com/ruoyi/device/uav/service/UavService.java | 757 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 726 insertions(+), 31 deletions(-)
diff --git a/ard-work/src/main/java/com/ruoyi/device/uav/service/UavService.java b/ard-work/src/main/java/com/ruoyi/device/uav/service/UavService.java
index 14acb4d..8720596 100644
--- a/ard-work/src/main/java/com/ruoyi/device/uav/service/UavService.java
+++ b/ard-work/src/main/java/com/ruoyi/device/uav/service/UavService.java
@@ -1,14 +1,24 @@
package com.ruoyi.device.uav.service;
+import com.alibaba.fastjson.JSON;
import com.dtflys.forest.exceptions.ForestNetworkException;
import com.dtflys.forest.exceptions.ForestRuntimeException;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
+import com.ruoyi.common.core.redis.RedisCache;
+import com.ruoyi.common.utils.ConfigUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.device.uav.websocketclient.UAVWebsocketClient;
+import com.ruoyi.sy.controller.ArdSyCarController;
import com.ruoyi.utils.forest.UavClient;
import lombok.extern.slf4j.Slf4j;
+import okhttp3.*;
import org.apache.commons.codec.binary.Base64;
+import org.apache.commons.collections4.map.HashedMap;
+import org.java_websocket.WebSocket;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpMethod;
import org.springframework.beans.factory.annotation.Autowired;
@@ -20,28 +30,74 @@
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
-import java.util.Map;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.*;
@Service
@Slf4j(topic = "uav")
public class UavService {
- public static final String USERNAME = "ardbailu";//鐢ㄦ埛鍚�
- public static final String PASSWORD = "ardkj12345";//瀵嗙爜
- public static final String SALT = "0123456789012345";//鐩�
+ /*uav:
+ host: http://112.98.126.2:6100/
+ username: kaifabailu
+ password: ardkj@2014
+ salt: 0123456789012345
+ */
+ private String username;//鐢ㄦ埛鍚�
- //token 鐧婚檰鍚庢瘡娆¤姹�,鍦╤eader涓惡甯�
- private String token;//鐧诲綍鎴愬姛杩斿洖鐨則oken
+ private String password;//瀵嗙爜
+
+ private String salt; //鐩�
+
+ private String host;//uav鏈嶅姟鍣�11
+
+
private Map uavUser;//鐧诲綍鐨勭敤鎴蜂俊鎭�
private ObjectMapper om = new ObjectMapper();
+
+ private Map<String, UAVWebsocketClient> UAVWebsocketClientMap = new HashedMap();
+
+ private String token;
+
+ private String workspaceId;
+
@Autowired
private UavClient uavClient;
+ @Autowired
+ private RedisCache redisCache;
+
+ @Value("${uav.enabled}")
+ private Boolean uavEnabled;
@PostConstruct
public void created() {
+ if(!uavEnabled){//鏃犱汉鏈哄姞鍏ュ紑鍏�
+ return;
+ }
+
+ getUavConfig();
this.login();
+ //鍒涘缓鏃犱汉鏈篧ebsocket瀹㈡埛绔�
+ createWebsocketCients();
+ }
+
+ private void getUavConfig() {
+ this.host = ConfigUtils.getConfigValue("uav_host");
+ this.username = ConfigUtils.getConfigValue("uav_username");
+ this.password = ConfigUtils.getConfigValue("uav_password");
+ this.salt = ConfigUtils.getConfigValue("uav_salt");
+ /*this.host = "http://112.98.126.2:6100/";
+ this.username = "znstest";
+ this.password = "znstest";
+ this.salt = "0123456789012345";*/
+ if (StringUtils.isEmpty(this.host) || StringUtils.isEmpty(this.username) || StringUtils.isEmpty(this.password) || StringUtils.isEmpty(this.salt)) {
+ throw new RuntimeException("鏃犱汉鏈哄弬鏁伴厤缃己澶�:");
+ }
}
public String doUavRequest(HttpMethod method, String url, String data) {
+
+ getUavConfig();
String res = null;
Method requestMethod = null;
//鑾峰彇method
@@ -51,54 +107,437 @@
e.printStackTrace();
}
//鎵цmethod
+ // this.getToken();//鑾峰彇token楠岃瘉,楠岃瘉token鏈夋晥鎬�
try {
- res = (String) requestMethod.invoke(this.uavClient, url, this.token, data);
- } catch (InvocationTargetException e) {
- ForestNetworkException fe = (ForestNetworkException) e.getCause();
- if (fe.getStatusCode() == 401) {//token澶辨晥,閲嶆柊鐧诲綍
- this.login();
- }
- try {//鍐嶆璋冪敤鎺ュ彛
- res = (String) requestMethod.invoke(this.uavClient, url, this.token, data);
- } catch (IllegalAccessException ex) {
- ex.printStackTrace();
- } catch (InvocationTargetException ex) {
- ex.printStackTrace();
- }
+ String token = this.getToken();
+ res = (String) requestMethod.invoke(this.uavClient, this.host + url, token, data);
} catch (IllegalAccessException e) {
- throw new RuntimeException(e);
+ System.out.println("doUavRequest 璁块棶澶辫触");
+ System.out.println(url);
+ log.error("doUavRequest 璁块棶澶辫触" + e.getMessage());
+ } catch (InvocationTargetException e) {
+ System.out.println("doUavRequest 鎵ц澶辫触");
+ System.out.println(url);
+ log.error("doUavRequest 鎵ц澶辫触" + e.getMessage());
+ e.printStackTrace();
}
return res;
}
public Map getUavUser() {
- if (this.uavUser == null) {
- this.login();
+ return redisCache.getCacheMap("uav:uavUser");
+ }
+
+ public String getToken() {
+ //鑾峰彇uav鐢ㄦ埛淇℃伅
+ Map uavUser = redisCache.getCacheMap("uav:uavUser");
+ String token = (String) uavUser.get("access_token");
+ //楠岃瘉token鏈夋晥鎬�
+ try {
+ String res = uavClient.GET(this.host+"manage/api/v1/devices", token, "{}");
+ res+="";
+ //System.out.println(res);
+
+ //token璧嬪��
+ this.token = token;
+ this.workspaceId = (String) uavUser.get("workspace_id");
+ } catch (ForestNetworkException fe) {
+ if (fe.getStatusCode() == 401) {//token澶辨晥,閲嶆柊鐧诲綍
+ this.login();
+ //鍐嶆鑾峰彇token
+ uavUser = redisCache.getCacheMap("uav:uavUser");
+ token = (String) uavUser.get("access_token");
+ //token璧嬪��
+ this.token = token;
+ this.workspaceId = (String) uavUser.get("workspace_id");
+ return token;
+ }
}
- return this.uavUser;
+ return token;
}
public void login() {
+
+ getUavConfig();
log.debug("鐧诲綍鏃犱汉鏈哄閮ㄦ帴鍙�");
- String codedPassword = this.Encrypt(PASSWORD, SALT);
- String body = "{\"username\":\"" + USERNAME + "\",\"password\":\"" + codedPassword + "\"}";
+ String codedPassword = this.Encrypt(password, salt);
+ String body = "{\"username\":\"" + username + "\",\"password\":\"" + codedPassword + "\"}";
+ log.debug("body:" + body);
try {
- String res = uavClient.POST("login", null, body);
+ //uavClient.GET("logout", null, "{}");
+ String res = uavClient.POST(this.host+"login", null, body);
Map resMap = om.readValue(res, Map.class);
- this.uavUser = (Map) resMap.get("data");
- if (this.uavUser != null) {
- this.token = (String) this.uavUser.get("access_token");
+ if (resMap != null&& resMap.get("data") instanceof Map) {
+ redisCache.setCacheMap("uav:uavUser", (Map) resMap.get("data"));
}
} catch (ForestRuntimeException e) {
log.error("鏃犱汉鏈鸿繛鎺ヨ秴鏃�" + e.getMessage());
} catch (JsonMappingException e) {
- e.printStackTrace();
} catch (JsonProcessingException e) {
- e.printStackTrace();
} catch (IOException e) {
+ }
+ }
+
+ public void createWebsocketCients(){
+ /*String ip = this.host.replace("http://", "");
+ if(this.UAVWebsocketClientMap.get("status") != null && this.UAVWebsocketClientMap.get("control") != null){
+ //鏃犱汉鏈虹姸鎬佺伃娲�
+ UAVWebsocketClient uavStatusWebsocketClient = this.UAVWebsocketClientMap.get("status");
+ uavStatusWebsocketClient.getHeartBeatTimer().cancel();
+ uavStatusWebsocketClient.close();
+ //鏃犱汉鏈烘帶鍒剁伃娲�
+ UAVWebsocketClient uavControlWebsocketClient = this.UAVWebsocketClientMap.get("control");
+ uavControlWebsocketClient.getHeartBeatTimer().cancel();
+ uavControlWebsocketClient.close();
+
+ this.UAVWebsocketClientMap.remove("status");
+ this.UAVWebsocketClientMap.remove("control");
+ }
+
+ String uavStatusWsURL = "ws://" + ip + "api/v1/ws?x-auth-token=" + token;
+ System.out.println(uavStatusWsURL);
+ UAVWebsocketClient uavStatusWebsocketClient;
+ try {
+ uavStatusWebsocketClient = new UAVWebsocketClient(new URI(uavStatusWsURL));
+ uavStatusWebsocketClient.connect();
+ System.out.println("杩炴帴涓�傘�傘��");
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ if(!uavStatusWebsocketClient.getReadyState().equals(WebSocket.READYSTATE.OPEN)){
+ uavStatusWebsocketClient.close();
+ return;
+ }
+ Date date = new Date();
+ Timer heartBeatTimer = new Timer();
+ TimerTask heartBeatTask = new TimerTask(){
+ public void run(){
+ Map<String,Object> para = new HashMap();
+ para.put("biz_code", "user_cmd");
+ para.put("version", "1.0");
+ Date date = new Date();
+ para.put("time_stamp", String.valueOf(date.getTime()));
+ Map<String,String> payload = new HashMap();
+ payload.put("timeStamp", String.valueOf(date.getTime()));
+ Map<String,Object> data = new HashMap();
+ data.put("dataHead", "0x7479");
+ data.put("cmdCode", "0x02");
+ data.put("payload", payload);
+ para.put("data", data);
+ try{
+ uavStatusWebsocketClient.send(JSON.toJSONString(para));
+ System.out.println("鏃犱汉鏈虹姸鎬佸績璺冲彂閫�");
+ }catch(Exception e){
+ e.printStackTrace();
+ System.out.println(uavStatusWebsocketClient.getServerUri());
+ }
+ }
+ };
+ uavStatusWebsocketClient.setHeartBeatTimer(heartBeatTimer);
+ heartBeatTimer.scheduleAtFixedRate(heartBeatTask,date,10*1000);
+ this.UAVWebsocketClientMap.put("status", uavStatusWebsocketClient);
+ } catch (NumberFormatException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (URISyntaxException e) {
+ // TODO Auto-generated catch block
e.printStackTrace();
}
+
+ String uavControlWsURL = "ws://" + ip + "api/v1/ws/cmd?x-auth-token=" + token;
+ System.out.println(uavControlWsURL);
+ UAVWebsocketClient uavControlWebsocketClient;
+ try {
+ uavControlWebsocketClient = new UAVWebsocketClient(new URI(uavControlWsURL));
+ uavControlWebsocketClient.connect();
+ System.out.println("杩炴帴涓�傘�傘��");
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ if(!uavControlWebsocketClient.getReadyState().equals(WebSocket.READYSTATE.OPEN)){
+ //鏃犱汉鏈虹姸鎬佺伃娲�
+ UAVWebsocketClient uavStatusWebsocketClient0 = this.UAVWebsocketClientMap.get("status");
+ uavStatusWebsocketClient0.getHeartBeatTimer().cancel();
+ uavStatusWebsocketClient0.close();
+
+ uavControlWebsocketClient.close();
+ return;
+ }
+ Date date = new Date();
+ Timer heartBeatTimer = new Timer();
+ TimerTask heartBeatTask = new TimerTask(){
+ public void run(){
+ Map<String,Object> para = new HashMap();
+ para.put("biz_code", "user_cmd");
+ para.put("version", "1.0");
+ Date date = new Date();
+ para.put("time_stamp", String.valueOf(date.getTime()));
+ Map<String,String> payload = new HashMap();
+ payload.put("timeStamp", String.valueOf(date.getTime()));
+ Map<String,Object> data = new HashMap();
+ data.put("dataHead", "0x7479");
+ data.put("cmdCode", "0x02");
+ data.put("payload", payload);
+ para.put("data", data);
+ try{
+ uavControlWebsocketClient.send(JSON.toJSONString(para));
+ System.out.println("鏃犱汉鏈烘帶鍒跺績璺冲彂閫�");
+ }catch(Exception e){
+ e.printStackTrace();
+ System.out.println(uavControlWebsocketClient.getServerUri());
+ }
+ }
+ };
+ uavControlWebsocketClient.setHeartBeatTimer(heartBeatTimer);
+ heartBeatTimer.scheduleAtFixedRate(heartBeatTask,date,10*1000);
+ this.UAVWebsocketClientMap.put("control", uavControlWebsocketClient);
+ } catch (NumberFormatException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (URISyntaxException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }*/
+ String ip = this.host.replace("http://", "");
+ Date date = new Date();
+ Timer heartBeatTimer = new Timer();
+ TimerTask heartBeatTask = new TimerTask(){
+ public void run(){
+ if(token != null){//鍒ゆ柇鏄惁涓簄ull
+ if(UAVWebsocketClientMap.get("status") != null && UAVWebsocketClientMap.get("control") != null){
+ String oldURL = UAVWebsocketClientMap.get("status").getServerUri().toString();
+ String oldToken = oldURL.split("x-auth-token=")[1];
+ if(!oldToken.equals(token)){//token鏇存柊浠庢柊鍒涘缓瀹㈡埛绔�
+ //鍘熷鎴风鐏椿
+ UAVWebsocketClientMap.get("status").close();//鏃犱汉鏈虹姸鎬佺伃娲�
+ UAVWebsocketClientMap.get("control").close();//鏃犱汉鏈烘帶鍒剁伃娲�
+ UAVWebsocketClientMap.remove("status");
+ UAVWebsocketClientMap.remove("control");
+
+ String uavStatusWsURL = "ws://" + ip + "api/v1/ws?x-auth-token=" + token;
+ UAVWebsocketClient uavStatusWebsocketClient = null;
+ try {
+ uavStatusWebsocketClient = new UAVWebsocketClient(new URI(uavStatusWsURL));
+ uavStatusWebsocketClient.connect();
+ System.out.println("杩炴帴涓�傘�傘��");
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ if(!uavStatusWebsocketClient.getReadyState().equals(WebSocket.READYSTATE.OPEN)){
+ uavStatusWebsocketClient.close();
+ uavStatusWebsocketClient = null;
+ }
+ } catch (NumberFormatException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (URISyntaxException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ String uavControlWsURL = "ws://" + ip + "api/v1/ws/cmd?x-auth-token=" + token;
+ UAVWebsocketClient uavControlWebsocketClient = null;
+ try {
+ uavControlWebsocketClient = new UAVWebsocketClient(new URI(uavControlWsURL));
+ uavControlWebsocketClient.connect();
+ System.out.println("杩炴帴涓�傘�傘��");
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ if(!uavControlWebsocketClient.getReadyState().equals(WebSocket.READYSTATE.OPEN)){
+ //鏃犱汉鏈虹姸鎬佺伃娲�
+ UAVWebsocketClient uavStatusWebsocketClient0 = UAVWebsocketClientMap.get("status");
+ uavStatusWebsocketClient0.close();
+
+ uavControlWebsocketClient.close();
+ uavStatusWebsocketClient0 = null;
+ uavControlWebsocketClient = null;
+ //return;
+ }
+ } catch (NumberFormatException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (URISyntaxException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ if(uavStatusWebsocketClient != null || uavControlWebsocketClient != null){
+ UAVWebsocketClientMap.put("status", uavStatusWebsocketClient);
+ UAVWebsocketClientMap.put("control", uavControlWebsocketClient);
+
+ Map<String,Object> para = new HashMap();
+ para.put("biz_code", "user_cmd");
+ para.put("version", "1.0");
+ Date date = new Date();
+ para.put("time_stamp", String.valueOf(date.getTime()));
+ Map<String,String> payload = new HashMap();
+ payload.put("timeStamp", String.valueOf(date.getTime()));
+ Map<String,Object> data = new HashMap();
+ data.put("dataHead", "0x7479");
+ data.put("cmdCode", "0x02");
+ data.put("payload", payload);
+ para.put("data", data);
+ try{
+ uavStatusWebsocketClient.send(JSON.toJSONString(para));
+ uavControlWebsocketClient.send(JSON.toJSONString(para));
+ //System.out.println("鏃犱汉鏈哄績璺冲彂閫�");
+ }catch(Exception e){
+ e.printStackTrace();
+ System.out.println(uavStatusWebsocketClient.getServerUri());
+ System.out.println(uavControlWebsocketClient.getServerUri());
+ //鏃犱汉鏈虹姸鎬佺伃娲�
+ uavStatusWebsocketClient = UAVWebsocketClientMap.get("status");
+ uavStatusWebsocketClient.close();
+ //鏃犱汉鏈烘帶鍒剁伃娲�
+ uavControlWebsocketClient = UAVWebsocketClientMap.get("control");
+ uavControlWebsocketClient.close();
+
+ UAVWebsocketClientMap.remove("status");
+ UAVWebsocketClientMap.remove("control");
+ }
+ }
+ }else{
+ Map<String,Object> para = new HashMap();
+ para.put("biz_code", "user_cmd");
+ para.put("version", "1.0");
+ Date date = new Date();
+ para.put("time_stamp", String.valueOf(date.getTime()));
+ Map<String,String> payload = new HashMap();
+ payload.put("timeStamp", String.valueOf(date.getTime()));
+ Map<String,Object> data = new HashMap();
+ data.put("dataHead", "0x7479");
+ data.put("cmdCode", "0x02");
+ data.put("payload", payload);
+ para.put("data", data);
+ UAVWebsocketClient uavStatusWebsocketClient = UAVWebsocketClientMap.get("status");
+ UAVWebsocketClient uavControlWebsocketClient = UAVWebsocketClientMap.get("control");
+ try{
+ uavStatusWebsocketClient.send(JSON.toJSONString(para));
+ uavControlWebsocketClient.send(JSON.toJSONString(para));
+ //System.out.println("鏃犱汉鏈哄績璺冲彂閫�");
+ }catch(Exception e){
+ e.printStackTrace();
+ System.out.println(uavStatusWebsocketClient.getServerUri());
+ System.out.println(uavControlWebsocketClient.getServerUri());
+ //鏃犱汉鏈虹姸鎬佺伃娲�
+ uavStatusWebsocketClient = UAVWebsocketClientMap.get("status");
+ uavStatusWebsocketClient.close();
+ //鏃犱汉鏈烘帶鍒剁伃娲�
+ uavControlWebsocketClient = UAVWebsocketClientMap.get("control");
+ uavControlWebsocketClient.close();
+
+ UAVWebsocketClientMap.remove("status");
+ UAVWebsocketClientMap.remove("control");
+ }
+ }
+ }else{
+ String uavStatusWsURL = "ws://" + ip + "api/v1/ws?x-auth-token=" + token;
+ System.out.println(uavStatusWsURL);
+ UAVWebsocketClient uavStatusWebsocketClient = null;
+ try {
+ uavStatusWebsocketClient = new UAVWebsocketClient(new URI(uavStatusWsURL));
+ uavStatusWebsocketClient.connect();
+ System.out.println("杩炴帴涓�傘�傘��");
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ if(!uavStatusWebsocketClient.getReadyState().equals(WebSocket.READYSTATE.OPEN)){
+ uavStatusWebsocketClient.close();
+ uavStatusWebsocketClient = null;
+ }
+ } catch (NumberFormatException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (URISyntaxException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ String uavControlWsURL = "ws://" + ip + "api/v1/ws/cmd?x-auth-token=" + token;
+ System.out.println(uavControlWsURL);
+ UAVWebsocketClient uavControlWebsocketClient = null;
+ try {
+ uavControlWebsocketClient = new UAVWebsocketClient(new URI(uavControlWsURL));
+ uavControlWebsocketClient.connect();
+ System.out.println("杩炴帴涓�傘�傘��");
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ if(!uavControlWebsocketClient.getReadyState().equals(WebSocket.READYSTATE.OPEN)){
+ //鏃犱汉鏈虹姸鎬佺伃娲�
+ UAVWebsocketClient uavStatusWebsocketClient0 = UAVWebsocketClientMap.get("status");
+ uavStatusWebsocketClient0.close();
+
+ uavControlWebsocketClient.close();
+ uavStatusWebsocketClient0 = null;
+ uavControlWebsocketClient = null;
+ }
+ } catch (NumberFormatException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (URISyntaxException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ if(uavStatusWebsocketClient != null || uavControlWebsocketClient != null){
+ UAVWebsocketClientMap.put("status", uavStatusWebsocketClient);
+ UAVWebsocketClientMap.put("control", uavControlWebsocketClient);
+
+ Map<String,Object> para = new HashMap();
+ para.put("biz_code", "user_cmd");
+ para.put("version", "1.0");
+ Date date = new Date();
+ para.put("time_stamp", String.valueOf(date.getTime()));
+ Map<String,String> payload = new HashMap();
+ payload.put("timeStamp", String.valueOf(date.getTime()));
+ Map<String,Object> data = new HashMap();
+ data.put("dataHead", "0x7479");
+ data.put("cmdCode", "0x02");
+ data.put("payload", payload);
+ para.put("data", data);
+ try{
+ uavStatusWebsocketClient.send(JSON.toJSONString(para));
+ uavControlWebsocketClient.send(JSON.toJSONString(para));
+ //System.out.println("鏃犱汉鏈哄績璺冲彂閫�");
+ }catch(Exception e){
+ e.printStackTrace();
+ System.out.println(uavStatusWebsocketClient.getServerUri());
+ System.out.println(uavControlWebsocketClient.getServerUri());
+ //鏃犱汉鏈虹姸鎬佺伃娲�
+ uavStatusWebsocketClient = UAVWebsocketClientMap.get("status");
+ uavStatusWebsocketClient.close();
+ //鏃犱汉鏈烘帶鍒剁伃娲�
+ uavControlWebsocketClient = UAVWebsocketClientMap.get("control");
+ uavControlWebsocketClient.close();
+
+ UAVWebsocketClientMap.remove("status");
+ UAVWebsocketClientMap.remove("control");
+ }
+ }
+ }
+ }
+ }
+ };
+ heartBeatTimer.scheduleAtFixedRate(heartBeatTask,date,10*1000);
}
@@ -122,4 +561,260 @@
}
return new Base64().encodeToString(encrypted);//姝ゅ浣跨敤BASE64鍋氳浆鐮佸姛鑳斤紝鍚屾椂鑳借捣鍒�2娆″姞瀵嗙殑浣滅敤銆�
}
+
+ public Object checkPointValid(String url, Map<String,Map<String,Object>> data) {
+ String token = this.getToken();
+ url = this.host + url;
+ Map<String,Object> resultMap = checkPointValid(url,token, data);
+ return resultMap;
+ }
+
+ public Map<String,Object> checkPointValid(String url,String access_token,Map<String,Map<String,Object>> map){
+ MediaType mediaType = MediaType.parse("application/json; charset=utf-8");
+ OkHttpClient okHttpClient = new OkHttpClient();
+
+ RequestBody body = RequestBody.create(mediaType, JSON.toJSONString(map));
+
+ Request request = new Request.Builder().url(url).post(body).addHeader("x-auth-token",access_token).build();
+
+ Response response = null;
+ try {
+ response = okHttpClient.newCall(request).execute();
+ } catch (IOException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+
+ ResponseBody responseBody = response.body();
+
+ try {
+ String message = responseBody.string();// 鍝嶅簲浣�
+ Map<String,Object> map0 = (Map<String, Object>) JSON.parse(message);
+ return map0;
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ return new HashMap();
+ }
+ }
+
+ public Object checkLineValid(String url, Map<String,List<Map<String,String>>> data) {
+ String token = this.getToken();
+ url = this.host + url;
+ Map<String,Object> resultMap = checkLineValid(url,token, data);
+ return resultMap;
+ }
+
+ public Map<String,Object> checkLineValid(String url,String access_token,Map<String,List<Map<String,String>>> map){
+ MediaType mediaType = MediaType.parse("application/json; charset=utf-8");
+ OkHttpClient okHttpClient = new OkHttpClient();
+
+ RequestBody body = RequestBody.create(mediaType, JSON.toJSONString(map));
+
+ Request request = new Request.Builder().url(url).post(body).addHeader("x-auth-token",access_token).build();
+
+ Response response = null;
+ try {
+ response = okHttpClient.newCall(request).execute();
+ } catch (IOException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+
+ ResponseBody responseBody = response.body();
+
+ try {
+ String message = responseBody.string();// 鍝嶅簲浣�
+ Map<String,Object> map0 = (Map<String, Object>) JSON.parse(message);
+ return map0;
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ return new HashMap();
+ }
+ }
+
+ public String getWorkspaceId(){
+ String token = this.getToken();
+ return this.workspaceId;
+ }
+
+ public Object addWaylinesPlanning(String url, Map<String,Object> data) {
+ String token = this.getToken();
+ url = this.host + url;
+ Map<String,Object> resultMap = addWaylinesPlanning(url,token, data);
+ return resultMap;
+ }
+
+ public Map<String,Object> addWaylinesPlanning(String url,String access_token,Map<String,Object> map){
+ MediaType mediaType = MediaType.parse("application/json; charset=utf-8");
+ OkHttpClient okHttpClient = new OkHttpClient();
+
+ RequestBody body = RequestBody.create(mediaType, JSON.toJSONString(map));
+
+ Request request = new Request.Builder().url(url).post(body).addHeader("x-auth-token",access_token).build();
+
+ Response response = null;
+ try {
+ response = okHttpClient.newCall(request).execute();
+ } catch (IOException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+
+ ResponseBody responseBody = response.body();
+
+ try {
+ String message = responseBody.string();// 鍝嶅簲浣�
+ Map<String,Object> map0 = (Map<String, Object>) JSON.parse(message);
+ return map0;
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ return new HashMap();
+ }
+ }
+
+ public Object deleteWaylinesPlanning(String url, Map<String,String> data) {
+ String token = this.getToken();
+ String waylineId = data.get("waylineId");
+ url = this.host + url + waylineId;
+ Map<String,Object> resultMap = deleteWaylinesPlanning(url,token);
+ return resultMap;
+ }
+
+ public static Map<String,Object> deleteWaylinesPlanning(String url,String access_token){
+ OkHttpClient okHttpClient = new OkHttpClient();
+
+ Request request = new Request.Builder().url(url).delete().addHeader("x-auth-token",access_token).build();
+
+ Response response = null;
+ try {
+ response = okHttpClient.newCall(request).execute();
+ } catch (IOException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+
+ ResponseBody responseBody = response.body();
+
+ try {
+ String message = responseBody.string();// 鍝嶅簲浣�
+ Map<String,Object> map0 = (Map<String, Object>) JSON.parse(message);
+ return map0;
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ return new HashMap();
+ }
+ }
+
+ public Object updateWaylinesPlanning(String url, Map<String,Object> data) {
+ String token = this.getToken();
+ url = this.host + url;
+ Map<String,Object> resultMap = updateWaylinesPlanning(url,token, data);
+ return resultMap;
+ }
+
+ public Map<String,Object> updateWaylinesPlanning(String url,String access_token,Map<String,Object> map){
+ MediaType mediaType = MediaType.parse("application/json; charset=utf-8");
+ OkHttpClient okHttpClient = new OkHttpClient();
+
+ RequestBody body = RequestBody.create(mediaType, JSON.toJSONString(map));
+
+ Request request = new Request.Builder().url(url).post(body).addHeader("x-auth-token",access_token).build();
+
+ Response response = null;
+ try {
+ response = okHttpClient.newCall(request).execute();
+ } catch (IOException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+
+ ResponseBody responseBody = response.body();
+
+ try {
+ String message = responseBody.string();// 鍝嶅簲浣�
+ Map<String,Object> map0 = (Map<String, Object>) JSON.parse(message);
+ return map0;
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ return new HashMap();
+ }
+ }
+
+ public Object addAlarm(String url, Map<String,Object> data) {
+ String token = this.getToken();
+ url = this.host + url;
+ data.put("userName",this.username);
+ Map<String,Object> resultMap = addAlarm(url,token, data);
+ return resultMap;
+ }
+
+ public Map<String,Object> addAlarm(String url,String access_token,Map<String,Object> map){
+ MediaType mediaType = MediaType.parse("application/json; charset=utf-8");
+ OkHttpClient okHttpClient = new OkHttpClient();
+
+ RequestBody body = RequestBody.create(mediaType, JSON.toJSONString(map));
+
+ Request request = new Request.Builder().url(url).post(body).addHeader("x-auth-token",access_token).build();
+
+ Response response = null;
+ try {
+ response = okHttpClient.newCall(request).execute();
+ } catch (IOException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+
+ ResponseBody responseBody = response.body();
+
+ try {
+ String message = responseBody.string();// 鍝嶅簲浣�
+ Map<String,Object> map0 = (Map<String, Object>) JSON.parse(message);
+ return map0;
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ return new HashMap();
+ }
+ }
+
+ public Object saveCurrentGroup(String url, Map<String,Object> data) {
+ String token = this.getToken();
+ url = this.host + url;
+ Map<String,Object> resultMap = addWaylinesPlanning(url,token, data);
+ return resultMap;
+ }
+
+ public Map<String,Object> saveCurrentGroup(String url,String access_token,Map<String,Object> map){
+ MediaType mediaType = MediaType.parse("application/json; charset=utf-8");
+ OkHttpClient okHttpClient = new OkHttpClient();
+
+ RequestBody body = RequestBody.create(mediaType, JSON.toJSONString(map));
+
+ Request request = new Request.Builder().url(url).post(body).addHeader("x-auth-token",access_token).build();
+
+ Response response = null;
+ try {
+ response = okHttpClient.newCall(request).execute();
+ } catch (IOException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+
+ ResponseBody responseBody = response.body();
+
+ try {
+ String message = responseBody.string();// 鍝嶅簲浣�
+ Map<String,Object> map0 = (Map<String, Object>) JSON.parse(message);
+ return map0;
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ return new HashMap();
+ }
+ }
}
--
Gitblit v1.9.3