From 0af053b4fe61ff46cebaca25ad4dff77a5c9dd40 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期一, 12 五月 2025 16:32:16 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/thread/impl/NyShuttleThread.java | 112 +++++++++++++++++++++++++++++++++-----------------------
1 files changed, 66 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 52dd73a..29641d6 100644
--- a/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java
+++ b/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java
@@ -411,6 +411,9 @@
String requestType = resultBody.getString("requestType");
Integer requestId = resultHeader.getInteger("requestId");
if (requestType.equals("init")) {
+ removeIdx = i;//姝ゆ暟鎹凡缁忓鐞嗭紝浠庣粨鏋滈泦涓墧闄�
+ socketResults.remove(removeIdx);
+
Integer code = resultBody.getInteger("code");
//灏忚溅澶嶄綅璇锋眰
ShuttleCommand initCommand = getInitCommand(requestId, code);
@@ -418,16 +421,10 @@
NyShuttleHttpCommand httpCommand = JSON.parseObject(initCommand.getBody(), NyShuttleHttpCommand.class);
JSONObject requestResult = requestCommand(httpCommand);
- removeIdx = i;//姝ゆ暟鎹凡缁忓鐞嗭紝浠庣粨鏋滈泦涓墧闄�
-
log.info(MessageFormat.format("銆恵0}銆戝洓鍚戣溅澶嶄綅涓婃姤 ===>> [code:{1}] [ip:{2}] [port:{3}]", slave.getId(), code, slave.getIp(), slave.getPort()));
OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆戝洓鍚戣溅澶嶄綅涓婃姤 ===>> [code:{1}] [ip:{2}] [port:{3}]", slave.getId(), code, slave.getIp(), slave.getPort()));
break;
}
- }
-
- if (removeIdx != -1) {
- socketResults.remove(removeIdx);
}
} catch (Exception e) {
e.printStackTrace();
@@ -723,6 +720,19 @@
maxPower = Integer.parseInt(chargeMaxValue.getValue());
}
}
+
+ //***************鍒ゆ柇鏄惁婊″厖鏍″噯***************
+ 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;
@@ -1121,46 +1131,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 {
@@ -1168,15 +1183,20 @@
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");
+ }
}
private JSONObject filterBodyData(JSONObject data) {
--
Gitblit v1.9.1