Browse Source

add:增加配置类

master
王梦远 2 months ago
parent
commit
c09bb5cb50
  1. 8
      src/main/java/com/iflytop/sgs/app/cmd/control/MoveToFeedAreaCommand.java
  2. 119
      src/main/java/com/iflytop/sgs/app/service/api/DeviceParamConfigService.java
  3. 2
      src/main/java/com/iflytop/sgs/common/result/ResultCode.java
  4. 2
      src/main/java/com/iflytop/sgs/hardware/controller/StepMotorController.java

8
src/main/java/com/iflytop/sgs/app/cmd/control/MoveToFeedAreaCommand.java

@ -1,5 +1,6 @@
package com.iflytop.sgs.app.cmd.control;
import cn.hutool.core.lang.Assert;
import com.iflytop.sgs.app.core.BaseCommandHandler;
import com.iflytop.sgs.app.model.bo.Point3D;
import com.iflytop.sgs.app.model.dto.CmdDTO;
@ -10,6 +11,8 @@ import com.iflytop.sgs.app.service.device.module.TransferModuleService;
import com.iflytop.sgs.common.annotation.CommandMapping;
import com.iflytop.sgs.common.enums.HeatModuleCode;
import com.iflytop.sgs.common.enums.data.DevicePositionCode;
import com.iflytop.sgs.common.exception.AppException;
import com.iflytop.sgs.common.result.ResultCode;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@ -38,7 +41,10 @@ public class MoveToFeedAreaCommand extends BaseCommandHandler {
targetHeatModuleCode = HeatModuleCode.valueOf(targetHeatModuleCodeStr);
} else {
targetHeatModuleCode = null;
//TODO 尝试获取加液位是否有托盘如果没有托盘则提示错误
Assert.isTrue(deviceStateService.getDeviceState().getTransferModule().isTrayStatus(),()->new AppException(ResultCode.TRANSFER_MODULE_NO_TRAY));//转运模块是否有托盘
}
Point3D targetHeatModuleTrayClawPoint3D = heatModuleService.getHeatModuleTrayClawPoint3D(targetHeatModuleCode);//获取目标加热模块托盘夹取点

119
src/main/java/com/iflytop/sgs/app/service/api/DeviceParamConfigService.java

@ -0,0 +1,119 @@
package com.iflytop.sgs.app.service.api;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.iflytop.sgs.app.mapper.DeviceParamConfigMapper;
import com.iflytop.sgs.app.model.entity.DeviceParamConfig;
import com.iflytop.sgs.app.model.vo.DeviceParamGroupVO;
import com.iflytop.sgs.app.model.vo.ModuleIdVO;
import com.iflytop.sgs.app.model.vo.RegIndexVO;
import com.iflytop.sgs.hardware.type.MId;
import com.iflytop.sgs.hardware.type.RegIndex;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 设备参数配置服务
*/
@Service
@RequiredArgsConstructor
public class DeviceParamConfigService extends ServiceImpl<DeviceParamConfigMapper, DeviceParamConfig> {
private final DeviceParamConfigMapper deviceParamConfigMapper;
/**
* ModuleId 分组列出每个模块下的 regIndex + regVal
*/
public List<DeviceParamGroupVO> listGroupedByModule() {
// 拉取所有配置记录
List<DeviceParamConfig> all = this.list();
// mid 分组
Map<String, List<DeviceParamConfig>> grouped = all.stream()
.collect(Collectors.groupingBy(DeviceParamConfig::getMid));
// 构造 VO 列表
return grouped.entrySet().stream()
.map(entry -> {
String moduleId = entry.getKey();
List<DeviceParamGroupVO.ParamItem> items = entry.getValue().stream()
.map(cfg -> new DeviceParamGroupVO.ParamItem(
cfg.getRegIndex(),
cfg.getRegVal()
))
.collect(Collectors.toList());
return new DeviceParamGroupVO(moduleId, items);
})
.collect(Collectors.toList());
}
/**
* 根据模块标识和寄存器索引查询设备参数配置
*
* @param moduleId 模块枚举
* @param regIndex 寄存器索引
* @return 唯一匹配的 DeviceParamConfig找不到返回 null
*/
public DeviceParamConfig getByModuleAndReg(MId moduleId, RegIndex regIndex) {
return deviceParamConfigMapper.selectOne(
new LambdaQueryWrapper<DeviceParamConfig>()
.eq(DeviceParamConfig::getMid, moduleId.name())
.eq(DeviceParamConfig::getRegIndex, regIndex.name())
);
}
/**
* 根据模块标识和寄存器索引设置设备参数配置
*
* @param moduleId 模块枚举
* @param regIndex 寄存器索引
* @param regVal 寄存器值
* @return 唯一匹配的 DeviceParamConfig找不到返回 null
*/
public int setModuleAndReg(String moduleId, String regIndex, Integer regVal) {
return deviceParamConfigMapper.update(new LambdaUpdateWrapper<DeviceParamConfig>()
.eq(DeviceParamConfig::getMid, moduleId)
.eq(DeviceParamConfig::getRegIndex, regIndex)
.set(DeviceParamConfig::getRegVal, regVal));
}
/**
* 列出所有 ModuleId返回 VO 列表
*
* @return List<ModuleIdVO>
*/
public List<ModuleIdVO> listAllModuleIds() {
return Arrays.stream(MId.values())
.map(e -> new ModuleIdVO(
e.name(), // 枚举常量名
e.description // 描述字段
))
.collect(Collectors.toList());
}
/**
* 列出所有寄存器索引枚举返回 VO 列表
*
* @return List<RegIndexVO>
*/
public List<RegIndexVO> listAllRegIndices() {
return Arrays.stream(RegIndex.values())
.map(e -> new RegIndexVO(
e.name() // 枚举常量名
))
.collect(Collectors.toList());
}
public boolean deleteDeviceParam(String idsStr) {
List<Long> ids = Arrays.stream(idsStr.split(","))
.map(Long::parseLong)
.collect(Collectors.toList());
return this.removeByIds(ids);
}
}

2
src/main/java/com/iflytop/sgs/common/result/ResultCode.java

@ -56,7 +56,7 @@ public enum ResultCode implements IResultCode, Serializable {
CAP_LIFT_ERROR("6023", "拍子升降错误"),
CMD_BUSY("6024", "设备忙,请稍后"),
TARGET_HEAT_MODULE_NOT_ANNEAL("6025", "目标加热区不是退火状态"),
TRANSFER_MODULE_NO_TRAY("6026", "转运模块无托盘"),
TRANSFER_MODULE_NO_TRAY("6026", "机械臂无托盘"),
SOLUTION_MODULE_NO_TRAY("6027", "加液模块无托盘"),
FEED_AREA_NO_TRAY("6028", "上料区无托盘"),
SOLUTION_MODULE_IS_BUSY("6029", "加液模块正忙"),

2
src/main/java/com/iflytop/sgs/hardware/controller/StepMotorController.java

@ -1,6 +1,6 @@
package com.iflytop.sgs.hardware.controller;
//import com.iflytop.sgs.app.service.api.DeviceParamConfigService;
import com.iflytop.sgs.app.service.api.DeviceParamConfigService;
import com.iflytop.sgs.common.result.Result;
import com.iflytop.sgs.hardware.exception.HardwareException;
import com.iflytop.sgs.hardware.service.StepMotorService;

Loading…
Cancel
Save