Browse Source

feat:增加commandBus使能控制

tags/freeze
黄翔 3 months ago
parent
commit
7dca692294
  1. 5
      src/main/java/com/iflytop/gd/infrastructure/devices/VirtualDoor.java
  2. 6
      src/main/java/com/iflytop/gd/infrastructure/drivers/WebSocketCommandBusImpl.java
  3. 1
      src/main/resources/application-dev.yml
  4. 2
      src/test/java/com/iflytop/gd/infrastructure/drivers/WebSocketCommandBusImplTest.java

5
src/main/java/com/iflytop/gd/infrastructure/devices/VirtualDoor.java

@ -7,14 +7,15 @@ import org.springframework.stereotype.Component;
@Component @Component
@Profile("dev") @Profile("dev")
public class VirtualDoor implements Door { public class VirtualDoor implements Door {
private boolean isOpen = false;
@Override @Override
public void open() { public void open() {
this.isOpen = true;
} }
@Override @Override
public void close() { public void close() {
this.isOpen = false;
} }
@Override @Override

6
src/main/java/com/iflytop/gd/infrastructure/drivers/WebSocketCommandBusImpl.java

@ -33,6 +33,7 @@ public class WebSocketCommandBusImpl implements CommandBus {
private Integer packetIndex = 0; private Integer packetIndex = 0;
private final String COMMAND_BUS_WEBSOCKET_URL; private final String COMMAND_BUS_WEBSOCKET_URL;
private final Boolean commandBusEnable;
public static final int PACKET_TYPE_CMD = 0xA0; public static final int PACKET_TYPE_CMD = 0xA0;
public static final int PACKET_TYPE_ACK = 0xA1; public static final int PACKET_TYPE_ACK = 0xA1;
@ -40,14 +41,15 @@ public class WebSocketCommandBusImpl implements CommandBus {
public static final int PACKET_TYPE_EVENT = 0xA3; public static final int PACKET_TYPE_EVENT = 0xA3;
//TODO 配置硬件服务段ws链接 //TODO 配置硬件服务段ws链接
public WebSocketCommandBusImpl(@Value("${command_bus.websocket_server_url}") String websocketServerUrl) throws DeploymentException, IOException {
public WebSocketCommandBusImpl(@Value("${command_bus.websocket_server_url}") String websocketServerUrl, @Value("${command_bus.enable}") Boolean commandBusEnable) throws DeploymentException, IOException {
this.COMMAND_BUS_WEBSOCKET_URL = websocketServerUrl; this.COMMAND_BUS_WEBSOCKET_URL = websocketServerUrl;
this.commandBusEnable = commandBusEnable;
} }
@Scheduled(fixedRate = 5000) @Scheduled(fixedRate = 5000)
@PostConstruct @PostConstruct
public void connectToCommandBusWebSocketServer() throws DeploymentException, IOException { public void connectToCommandBusWebSocketServer() throws DeploymentException, IOException {
if (this.session == null || !this.session.isOpen()) {
if (commandBusEnable && (this.session == null || !this.session.isOpen())) {
WebSocketContainer container = ContainerProvider.getWebSocketContainer(); WebSocketContainer container = ContainerProvider.getWebSocketContainer();
URI endpointURI = URI.create(COMMAND_BUS_WEBSOCKET_URL); URI endpointURI = URI.create(COMMAND_BUS_WEBSOCKET_URL);
try { try {

1
src/main/resources/application-dev.yml

@ -33,3 +33,4 @@ springdoc:
command_bus: command_bus:
websocket_server_url: ws://127.0.0.1 websocket_server_url: ws://127.0.0.1
enable: false

2
src/test/java/com/iflytop/gd/infrastructure/drivers/WebSocketCommandBusImplTest.java

@ -19,7 +19,7 @@ class WebSocketCommandBusImplTest {
@Test @Test
void waitForCommandExec() throws DeploymentException, IOException, HardwareErrorException, CommandExecTimeoutException, InterruptedException { void waitForCommandExec() throws DeploymentException, IOException, HardwareErrorException, CommandExecTimeoutException, InterruptedException {
String webSocketUrl = "ws://localhost:8888"; String webSocketUrl = "ws://localhost:8888";
WebSocketCommandBusImpl webSocketCommandBus = new WebSocketCommandBusImpl(webSocketUrl);
WebSocketCommandBusImpl webSocketCommandBus = new WebSocketCommandBusImpl(webSocketUrl, true);
webSocketCommandBus.connectToCommandBusWebSocketServer(); webSocketCommandBus.connectToCommandBusWebSocketServer();
DataPacket dataPacket = DataPacket.createCommandDataPacket(ModuleId.HBotXM.index, CmdId.step_motor_easy_move_to.index, 100); DataPacket dataPacket = DataPacket.createCommandDataPacket(ModuleId.HBotXM.index, CmdId.step_motor_easy_move_to.index, 100);

Loading…
Cancel
Save