From f7eb5e2d036ede7f02c7948177df9f0b15a8da88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=87=A4=E5=90=89?= Date: Mon, 12 May 2025 00:37:40 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E5=88=9D=E5=A7=8B=E5=8C=96=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iflytop/gd/app/core/device/DeviceState.java | 4 +- .../iflytop/gd/app/service/DeviceInitService.java | 17 +++----- .../scheduled/FetchTemperatureScheduledTask.java | 47 +++++++++++++++++++++- 3 files changed, 53 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/iflytop/gd/app/core/device/DeviceState.java b/src/main/java/com/iflytop/gd/app/core/device/DeviceState.java index 239b542..fce2c81 100644 --- a/src/main/java/com/iflytop/gd/app/core/device/DeviceState.java +++ b/src/main/java/com/iflytop/gd/app/core/device/DeviceState.java @@ -27,10 +27,10 @@ public class DeviceState { @Schema(description = "龙门架机械臂状态") private final GantryArmState gantryArm = new GantryArmState(); - @Schema(description = "加液操作模块属性") + @Schema(description = "加液模块属性") private final SolutionModuleState solutionModule = new SolutionModuleState(); - @Schema(description = "加热操作模块属性") + @Schema(description = "加热模块属性") private final List heatModule = new ArrayList<>(); @Schema(description = "托盘") diff --git a/src/main/java/com/iflytop/gd/app/service/DeviceInitService.java b/src/main/java/com/iflytop/gd/app/service/DeviceInitService.java index bf26253..232eb27 100644 --- a/src/main/java/com/iflytop/gd/app/service/DeviceInitService.java +++ b/src/main/java/com/iflytop/gd/app/service/DeviceInitService.java @@ -33,10 +33,11 @@ public class DeviceInitService { @PostConstruct public void init() { new Thread(() -> { - try{ + try { initDeviceSetData(); initDeviceState(); - }catch (Exception ignored){} + } catch (Exception ignored) { + } }).start(); } @@ -60,20 +61,14 @@ public class DeviceInitService { } reader.close(); } catch (Exception e) { - initDeviceSetData(); log.error("设备初始化失败", e); + initDeviceSetData(); } } - public void sendToDevice(DeviceInitializationData data) { - try { - log.info("初始化设备: {} - {} = {}", data.getMid(), data.getRegIndex(), data.getRegInitVal()); - canBusService.moduleSetReg(MId.valueOf(data.getMid()), RegIndex.valueOf(data.getRegIndex()), data.getRegInitVal()); - } catch (HardwareException e) { - log.error("初始化设备错误: {} - {} = {}", data.getMid(), data.getRegIndex(), data.getRegInitVal()); - throw new RuntimeException(e); - } + public void sendToDevice(DeviceInitializationData data) throws HardwareException { + canBusService.moduleSetReg(MId.valueOf(data.getMid()), RegIndex.valueOf(data.getRegIndex()), data.getRegInitVal()); } public void initDeviceState() { diff --git a/src/main/java/com/iflytop/gd/app/service/scheduled/FetchTemperatureScheduledTask.java b/src/main/java/com/iflytop/gd/app/service/scheduled/FetchTemperatureScheduledTask.java index f47f767..21da8bb 100644 --- a/src/main/java/com/iflytop/gd/app/service/scheduled/FetchTemperatureScheduledTask.java +++ b/src/main/java/com/iflytop/gd/app/service/scheduled/FetchTemperatureScheduledTask.java @@ -1,13 +1,56 @@ package com.iflytop.gd.app.service.scheduled; +import com.iflytop.gd.app.core.device.HeatModuleState; +import com.iflytop.gd.app.service.DeviceStateService; +import com.iflytop.gd.common.enums.HeatModuleCode; +import com.iflytop.gd.hardware.service.GDDeviceStatusService; +import com.iflytop.gd.hardware.type.driver.HeaterRodSlavedId; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; +import java.util.List; + +@Slf4j @Service +@RequiredArgsConstructor public class FetchTemperatureScheduledTask { + private final GDDeviceStatusService gdDeviceStatusService; + private final DeviceStateService deviceStateService; + @Scheduled(fixedRate = 30000) public void fetchTemperature() { - System.out.println("Fetching temperature task is running: " + System.currentTimeMillis()); - // 任务逻辑 + try { + if(!deviceStateService.getDeviceState().isVirtual()){ + Double heatModule01Temperature = gdDeviceStatusService.getHeaterRodTemperature(HeaterRodSlavedId.HEATER_ROD1_ID); + deviceStateService.setHeatModuleStateTemperature(HeatModuleCode.heat_module_01, heatModule01Temperature); + + Double heatModule02Temperature = gdDeviceStatusService.getHeaterRodTemperature(HeaterRodSlavedId.HEATER_ROD2_ID); + deviceStateService.setHeatModuleStateTemperature(HeatModuleCode.heat_module_02, heatModule02Temperature); + + Double heatModule03Temperature = gdDeviceStatusService.getHeaterRodTemperature(HeaterRodSlavedId.HEATER_ROD3_ID); + deviceStateService.setHeatModuleStateTemperature(HeatModuleCode.heat_module_03, heatModule03Temperature); + + Double heatModule04Temperature = gdDeviceStatusService.getHeaterRodTemperature(HeaterRodSlavedId.HEATER_ROD4_ID); + deviceStateService.setHeatModuleStateTemperature(HeatModuleCode.heat_module_04, heatModule04Temperature); + + Double heatModule05Temperature = gdDeviceStatusService.getHeaterRodTemperature(HeaterRodSlavedId.HEATER_ROD5_ID); + deviceStateService.setHeatModuleStateTemperature(HeatModuleCode.heat_module_05, heatModule05Temperature); + + Double heatModule06Temperature = gdDeviceStatusService.getHeaterRodTemperature(HeaterRodSlavedId.HEATER_ROD6_ID); + deviceStateService.setHeatModuleStateTemperature(HeatModuleCode.heat_module_06, heatModule06Temperature); + }else{ + List heatModuleStateList = deviceStateService.getDeviceState().getHeatModule(); + for (HeatModuleState heatModuleState : heatModuleStateList) { + if(heatModuleState.isHeating()){ + deviceStateService.setHeatModuleStateTemperature(heatModuleState.getModuleCode(), 999); + } + } + } + } catch (Exception e) { + log.error("定时采集加热棒温度错误", e); + } + } }