|  |  | 
 |  |  |  | 
 |  |  |     private static final boolean DEBUG = false;//调试模式 | 
 |  |  |  | 
 |  |  |     private List<JSONObject> socketReadResults = new ArrayList<>(); | 
 |  |  |     private List<JSONObject> socketResults = new ArrayList<>(); | 
 |  |  |  | 
 |  |  |     //原始设备数据 | 
 |  |  | 
 |  |  |             while (true) { | 
 |  |  |                 try { | 
 |  |  |                     read(); | 
 |  |  |                     Thread.sleep(200); | 
 |  |  |                     Thread.sleep(50); | 
 |  |  |                 } catch (Exception e) { | 
 |  |  |                     log.error("ShuttleThread Fail", e); | 
 |  |  |                 } | 
 |  |  | 
 |  |  |             if (!socketResults.isEmpty() && socketResults.size() >= 20) { | 
 |  |  |                 socketResults.remove(0);//清理头节点 | 
 |  |  |             } | 
 |  |  |             socketResults.add(result);//添加数据 | 
 |  |  |  | 
 |  |  |             if (result.containsKey("workingMode")) { | 
 |  |  |                 //read | 
 |  |  |                 socketReadResults.add(result); | 
 |  |  |             }else { | 
 |  |  |                 socketResults.add(result);//添加数据 | 
 |  |  |             } | 
 |  |  |         } catch (Exception e) { | 
 |  |  | //            e.printStackTrace(); | 
 |  |  |         } | 
 |  |  | 
 |  |  |  | 
 |  |  |             //----------读取四向穿梭车状态----------- | 
 |  |  |             NyShuttleHttpCommand readStatusCommand = getReadStatusCommand(slave.getId()); | 
 |  |  |             JSONObject data = requestCommand(readStatusCommand); | 
 |  |  |             requestCommandAsync(readStatusCommand);//请求状态 | 
 |  |  |  | 
 |  |  |             if (this.socketReadResults.isEmpty()) { | 
 |  |  |                 return; | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             JSONObject data = this.socketReadResults.get(0); | 
 |  |  |             this.socketReadResults.remove(0); | 
 |  |  |             if (data == null) { | 
 |  |  |                 if (System.currentTimeMillis() - shuttleProtocol.getLastOnlineTime() > 1000 * 60) { | 
 |  |  |                     //最后一次上线时间超过60s,认定离线 | 
 |  |  | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         // 获取服务器响应 | 
 |  |  |         // 尝试100次 | 
 |  |  |         // 尝试10次 | 
 |  |  |         JSONObject result = null; | 
 |  |  |         for (int i = 0; i < 100; i++) { | 
 |  |  |         for (int i = 0; i < 10; i++) { | 
 |  |  |             result = getRequestBody(requestType, taskId); | 
 |  |  |             if (result == null) { | 
 |  |  |                 try { | 
 |  |  | 
 |  |  |         return result;//返回Body结果集 | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     private void requestCommandAsync(NyShuttleHttpCommand httpCommand) throws IOException { | 
 |  |  |         if (this.socket == null) { | 
 |  |  |             return; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         //压缩数据包 | 
 |  |  |         JSONObject data = JSON.parseObject(JSON.toJSONString(httpCommand)); | 
 |  |  |         data.remove("nodes"); | 
 |  |  |  | 
 |  |  |         // 获取输出流 | 
 |  |  |         OutputStreamWriter writer = new OutputStreamWriter(this.socket.getOutputStream()); | 
 |  |  |         writer.write(JSON.toJSONString(data) + "\r\n"); | 
 |  |  |         writer.flush(); | 
 |  |  | //            System.out.println("Sent message to server: " + JSON.toJSONString(httpCommand)); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     private JSONObject filterBodyData(JSONObject data) { | 
 |  |  |         Object response = data.get("response"); | 
 |  |  |         if (response == null) { |