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