4 changed files with 62 additions and 15 deletions
-
17src/main/java/com/qyft/ms/app/controller/SelfTestController.java
-
42src/main/java/com/qyft/ms/app/core/listener/DeviceInitializerListener.java
-
14src/main/java/com/qyft/ms/system/controller/FrontCmdController.java
-
4src/main/java/com/qyft/ms/system/core/listener/DeviceTcpMessageEventListener.java
@ -0,0 +1,42 @@ |
|||
package com.qyft.ms.app.core.listener; |
|||
|
|||
import com.qyft.ms.app.device.status.DeviceStatus; |
|||
import com.qyft.ms.system.common.device.command.CommandFuture; |
|||
import com.qyft.ms.system.common.device.command.DeviceCommandGenerator; |
|||
import com.qyft.ms.system.model.bo.DeviceCommand; |
|||
import com.qyft.ms.system.service.device.DeviceCommandService; |
|||
import lombok.RequiredArgsConstructor; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.boot.context.event.ApplicationReadyEvent; |
|||
import org.springframework.context.event.EventListener; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
import java.util.concurrent.Executors; |
|||
import java.util.concurrent.ScheduledExecutorService; |
|||
import java.util.concurrent.TimeUnit; |
|||
|
|||
@Slf4j |
|||
@Component |
|||
@RequiredArgsConstructor |
|||
public class DeviceInitializerListener { |
|||
private final DeviceCommandService deviceCommandService; |
|||
private final DeviceStatus deviceStatus; |
|||
|
|||
@EventListener(ApplicationReadyEvent.class) |
|||
public void onApplicationReady() { |
|||
ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor(); |
|||
Runnable task = () -> { |
|||
try { |
|||
DeviceCommand overallDeviceStatusGetCommand = DeviceCommandGenerator.overallDeviceStatusGet(); |
|||
CommandFuture overallDeviceStatusGetCommandFuture = deviceCommandService.sendCommandNoFront(overallDeviceStatusGetCommand); |
|||
overallDeviceStatusGetCommandFuture.getResponseFuture().get(5, TimeUnit.SECONDS); |
|||
boolean emergencyStop = overallDeviceStatusGetCommandFuture.getResponseResult().getJSONObject("data").getBool("emergencyStop"); |
|||
deviceStatus.setStopPressed(emergencyStop); |
|||
scheduler.shutdown(); |
|||
} catch (Exception e) { |
|||
log.error("开机获取急停状态失败", e); |
|||
} |
|||
}; |
|||
scheduler.scheduleAtFixedRate(task, 0, 1, TimeUnit.SECONDS); |
|||
} |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue