|  |  |  | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | 
|---|
|  |  |  | 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;//用户名 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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(); | 
|---|
|  |  |  | //创建无人机Websocket客户端 | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //执行method | 
|---|
|  |  |  | this.getToken();//获取token验证,验证token有效性 | 
|---|
|  |  |  | // this.getToken();//获取token验证,验证token有效性 | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | res = (String) requestMethod.invoke(this.uavClient, url, this.getToken(), data); | 
|---|
|  |  |  | String token = this.getToken(); | 
|---|
|  |  |  | res = (String) requestMethod.invoke(this.uavClient, this.host + url, token, data); | 
|---|
|  |  |  | } catch (IllegalAccessException e) { | 
|---|
|  |  |  | System.out.println("doUavRequest 访问失败" + e.getMessage()); | 
|---|
|  |  |  | System.out.println("doUavRequest 访问失败"); | 
|---|
|  |  |  | System.out.println(url); | 
|---|
|  |  |  | log.error("doUavRequest 访问失败" + e.getMessage()); | 
|---|
|  |  |  | } catch (InvocationTargetException e) { | 
|---|
|  |  |  | System.out.println("doUavRequest 执行失败" + e.getMessage()); | 
|---|
|  |  |  | System.out.println("doUavRequest 执行失败"); | 
|---|
|  |  |  | System.out.println(url); | 
|---|
|  |  |  | log.error("doUavRequest 执行失败" + e.getMessage()); | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | String token = (String) uavUser.get("access_token"); | 
|---|
|  |  |  | //验证token有效性 | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | String res = uavClient.GET("manage/api/v1/devices", token, "{}"); | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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 { | 
|---|
|  |  |  | //uavClient.GET("logout", null, "{}"); | 
|---|
|  |  |  | String res = uavClient.POST("login", null, body); | 
|---|
|  |  |  | String res = uavClient.POST(this.host+"login", null, body); | 
|---|
|  |  |  | Map resMap = om.readValue(res, Map.class); | 
|---|
|  |  |  | if (resMap != null) { | 
|---|
|  |  |  | 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){//判断是否为null | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 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(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|