From 314e894c0d6ce2739344dcd1c94ae7770868a0f1 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期三, 28 五月 2025 14:51:16 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/thread/impl/NyShuttleThread.java | 121 +++++++++++++++++++++++++--------------- 1 files changed, 75 insertions(+), 46 deletions(-) diff --git a/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java b/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java index 20882be..33142bc 100644 --- a/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java +++ b/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java @@ -42,6 +42,7 @@ import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; +import java.net.InetAddress; import java.net.Socket; import java.text.MessageFormat; import java.util.*; @@ -721,6 +722,19 @@ } } + //***************鍒ゆ柇鏄惁婊″厖鏍″噯*************** + Config shuttleMaxPowerVerifyConfig = configService.selectOne(new EntityWrapper<Config>() + .eq("code", "shuttleMaxPowerVerify") + .eq("status", 1)); + if (shuttleMaxPowerVerifyConfig != null) { + if (shuttleMaxPowerVerifyConfig.getValue().equals("true")) { + if (this.shuttleProtocol.getBatteryVoltage() < 5630) { + return false;//鐢靛帇涓嶅缁х画鍏呯數 + } + } + } + //***************鍒ゆ柇鏄惁婊″厖鏍″噯*************** + if (this.shuttleProtocol.getHasCharge() == null) { return false; } @@ -1054,12 +1068,15 @@ @Override public boolean connect() { try { - Socket socket = new Socket(slave.getIp(), slave.getPort()); - socket.setSoTimeout(10000); - socket.setKeepAlive(true); - this.socket = socket; - log.info(MessageFormat.format("銆恵0}銆戝洓鍚戠┛姊溅Socket閾炬帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort())); - } catch (IOException e) { + InetAddress address = InetAddress.getByName(slave.getIp()); + if (address.isReachable(10000)) { + Socket socket = new Socket(slave.getIp(), slave.getPort()); + socket.setSoTimeout(10000); + socket.setKeepAlive(true); + this.socket = socket; + log.info(MessageFormat.format("銆恵0}銆戝洓鍚戠┛姊溅Socket閾炬帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort())); + } + } catch (Exception e) { OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆戝洓鍚戠┛姊溅Socket閾炬帴澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort())); return false; } @@ -1118,46 +1135,51 @@ //鍙戝嚭璇锋眰 private JSONObject requestCommand(NyShuttleHttpCommand httpCommand) throws IOException { - if (this.socket == null) { - return null; - } + try { + if (this.socket == null) { + return null; + } - //鍘嬬缉鏁版嵁鍖� - JSONObject data = JSON.parseObject(JSON.toJSONString(httpCommand)); - data.remove("nodes"); + //鍘嬬缉鏁版嵁鍖� + 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(); + // 鑾峰彇杈撳嚭娴� + 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)); - String requestType = null; - String taskId = null; - try { - requestType = httpCommand.getRequest().getBody().get("requestType").toString(); - taskId = httpCommand.getRequest().getBody().get("taskId").toString(); - } catch (Exception e) { + String requestType = null; + String taskId = null; + try { + requestType = httpCommand.getRequest().getBody().get("requestType").toString(); + taskId = httpCommand.getRequest().getBody().get("taskId").toString(); + } catch (Exception e) { // return null; - //taskId鍙兘鍙栫┖锛屼笉鎶ラ敊锛屾甯告儏鍐� - } - - // 鑾峰彇鏈嶅姟鍣ㄥ搷搴� - // 灏濊瘯10娆� - JSONObject result = null; - for (int i = 0; i < 10; i++) { - result = getRequestBody(requestType, taskId); - if (result == null) { - try { - Thread.sleep(100); - } catch (Exception e) { - e.printStackTrace(); - } - }else { - break; + //taskId鍙兘鍙栫┖锛屼笉鎶ラ敊锛屾甯告儏鍐� } + + // 鑾峰彇鏈嶅姟鍣ㄥ搷搴� + // 灏濊瘯10娆� + JSONObject result = null; + for (int i = 0; i < 10; i++) { + result = getRequestBody(requestType, taskId); + if (result == null) { + try { + Thread.sleep(100); + } catch (Exception e) { + e.printStackTrace(); + } + }else { + break; + } + } + return result;//杩斿洖Body缁撴灉闆� + }catch (Exception e) { + e.printStackTrace(); } - return result;//杩斿洖Body缁撴灉闆� + return null; } private void requestCommandAsync(NyShuttleHttpCommand httpCommand) throws IOException { @@ -1165,15 +1187,22 @@ return; } - //鍘嬬缉鏁版嵁鍖� - JSONObject data = JSON.parseObject(JSON.toJSONString(httpCommand)); - data.remove("nodes"); + try { + //鍘嬬缉鏁版嵁鍖� + 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(); + // 鑾峰彇杈撳嚭娴� + 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)); + }catch (Exception e) { +// e.printStackTrace(); +// System.out.println("socket write error"); + this.socket.close(); + this.socket = null; + } } private JSONObject filterBodyData(JSONObject data) { -- Gitblit v1.9.1