diff --git a/src/main/java/com/tuoheng/machine/command/TransactionExecutor.java b/src/main/java/com/tuoheng/machine/command/TransactionExecutor.java index 504abdd..01a4c12 100644 --- a/src/main/java/com/tuoheng/machine/command/TransactionExecutor.java +++ b/src/main/java/com/tuoheng/machine/command/TransactionExecutor.java @@ -248,6 +248,9 @@ public class TransactionExecutor { if (callbackConfig.matches(messageBody)) { future.complete(InstructionResult.success(messageBody)); log.debug("收到匹配的回调消息: topic={}", callbackConfig.getTopic()); + } else { + // 不匹配,重置状态,继续等待 + callbackReceived.set(false); } } }, diff --git a/src/test/java/com/tuoheng/machine/SubCommandTest.java b/src/test/java/com/tuoheng/machine/SubCommandTest.java index fe9673a..c38a58a 100644 --- a/src/test/java/com/tuoheng/machine/SubCommandTest.java +++ b/src/test/java/com/tuoheng/machine/SubCommandTest.java @@ -135,7 +135,7 @@ public class SubCommandTest { Thread.sleep(100); response = "{\"result\":\"subSuccess\"}"; - mqttCallbackRegistry.handleMessage("test/" + TEST_SN + "/response", response); + mqttCallbackRegistry.handleMessage("test/" + TEST_SN + "/response123", response); log.info(">>> 模拟发送成功子指令方法回调: {}", response); } catch (InterruptedException e) { diff --git a/src/test/java/com/tuoheng/machine/vendor/test/TestVendorConfig.java b/src/test/java/com/tuoheng/machine/vendor/test/TestVendorConfig.java index ec6531a..1ffc618 100644 --- a/src/test/java/com/tuoheng/machine/vendor/test/TestVendorConfig.java +++ b/src/test/java/com/tuoheng/machine/vendor/test/TestVendorConfig.java @@ -141,7 +141,7 @@ public class TestVendorConfig implements VendorConfig { Transaction complexTransaction = new Transaction("复杂指令树", CommandType.ENTER_DRC_MODE) .root(complexRoot) - .setTimeout(25000); + .setTimeout(10000); transactionMap.put(CommandType.ENTER_DRC_MODE, complexTransaction); // 9. 指令被拒绝 - canExecute返回false