From ae318178f2aebf949c1e52ad08b2b18818d538f7 Mon Sep 17 00:00:00 2001 From: sige Date: Thu, 29 Feb 2024 15:50:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B6=88=E6=81=AFID=E6=94=B9=E4=B8=BA=E7=94=B1?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E5=AF=B9=E8=B1=A1=E8=87=AA=E5=8A=A8=E7=94=9F?= =?UTF-8?q?=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../my/graphiteDigesterBg/diframe/DiCommandRequest.java | 16 +++++++++++++++- .../java/com/my/graphiteDigesterBg/diframe/DiDevice.java | 12 +----------- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/src/main/java/com/my/graphiteDigesterBg/diframe/DiCommandRequest.java b/src/src/main/java/com/my/graphiteDigesterBg/diframe/DiCommandRequest.java index 9b794be..dcb4bf4 100644 --- a/src/src/main/java/com/my/graphiteDigesterBg/diframe/DiCommandRequest.java +++ b/src/src/main/java/com/my/graphiteDigesterBg/diframe/DiCommandRequest.java @@ -1,8 +1,9 @@ package com.my.graphiteDigesterBg.diframe; import java.nio.ByteBuffer; import java.util.Timer; - public class DiCommandRequest { + // id counter + private static int idCounter = 0; // message id public short id; // parameter @@ -19,4 +20,17 @@ public class DiCommandRequest { public Integer timeoutCount = 0; // timeout timer public Timer timeoutTimer = null; + + // constructor + public DiCommandRequest() { + this.refreshId(); + } + + // refresh id + public void refreshId() { + this.id = (short)idCounter++; + if ( idCounter > 30000 ) { + idCounter = 0; + } + } } diff --git a/src/src/main/java/com/my/graphiteDigesterBg/diframe/DiDevice.java b/src/src/main/java/com/my/graphiteDigesterBg/diframe/DiDevice.java index 2392a7f..f339e3d 100644 --- a/src/src/main/java/com/my/graphiteDigesterBg/diframe/DiDevice.java +++ b/src/src/main/java/com/my/graphiteDigesterBg/diframe/DiDevice.java @@ -35,15 +35,11 @@ public class DiDevice { private DiTaskManager taskManager; // runtime variables private DiDeviceRuntimeVariableManager runtimeVariables; - // message index - private short messageIndex = 0; // testcase manager private DiTestcaseManager testcaseManager; @PostConstruct public void init() { - this.messageIndex = 0; - this.loadDeviceYml(); this.setupConnection(); this.io = new DiDeviceIOManager(this); @@ -227,10 +223,9 @@ public class DiDevice { int moduleId = mid; DiCommandRequest request = new DiCommandRequest(); - request.id = this.messageIndex; request.parameter = ByteBuffer.allocate(length); request.parameter.order(ByteOrder.LITTLE_ENDIAN); - request.parameter.putShort(this.messageIndex); + request.parameter.putShort(request.id); // packet index request.parameter.putShort((short)mainCmdId); // main cmd id request.parameter.put((byte)subCmdId); // sub cmd id request.parameter.put((byte)0); // directive type @@ -241,11 +236,6 @@ public class DiDevice { } } - this.messageIndex ++; - if ( this.messageIndex > 30000 ) { - this.messageIndex = 0; - } - return request; }