diff --git a/src/main/java/a8k/opt_algo/A8kOptAlgo.java b/src/main/java/a8k/opt_algo/A8kOptAlgo.java index 40d803e..c76297c 100644 --- a/src/main/java/a8k/opt_algo/A8kOptAlgo.java +++ b/src/main/java/a8k/opt_algo/A8kOptAlgo.java @@ -1,9 +1,13 @@ package a8k.opt_algo; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import java.util.ArrayList; import java.util.List; public class A8kOptAlgo { + static Logger logger = LoggerFactory.getLogger(A8kOptAlgo.class); static private List createDoubleList(int size) { List list = new ArrayList<>(size); @@ -31,8 +35,8 @@ public class A8kOptAlgo { static public List preProcessOptData(List input) { List inputRaw = integerToDouble(input); - List upSamplingRaw = superSampling(inputRaw, 24); - List subSamplingRaw = subSampling(upSamplingRaw, 5); + List upSamplingRaw = superSampling(inputRaw, 5); + List subSamplingRaw = subSampling(upSamplingRaw, 24); return doubleToInteger(subSamplingRaw); } diff --git a/src/main/java/a8k/service/hardware/ReactionPlatesTransmitCtrlService.java b/src/main/java/a8k/service/hardware/ReactionPlatesTransmitCtrlService.java index cc081d8..5dda2a6 100644 --- a/src/main/java/a8k/service/hardware/ReactionPlatesTransmitCtrlService.java +++ b/src/main/java/a8k/service/hardware/ReactionPlatesTransmitCtrlService.java @@ -6,6 +6,7 @@ import a8k.canbus.protocol.IOId; import a8k.canbus.protocol.MId; import a8k.appbean.ecode.AppRet; import a8k.canbus.A8kCanBusService; +import a8k.canbus.protocol.RegIndex; import a8k.opt_algo.A8kOptAlgo; import a8k.utils.*; import jakarta.annotation.Resource; @@ -34,7 +35,7 @@ public class ReactionPlatesTransmitCtrlService implements HardwareCtrlModule { @HardwareServiceParam(name = "光学扫描超时时间", group = "基础参数") public Integer getOptScanOvertime() { - return hpReader.getInteger("optScanOvertime", 10000); + return hpReader.getInteger("optScanOvertime", 12000); } @HardwareServiceParam(name = "板夹仓通道0位置", group = "板夹仓参数") @@ -100,6 +101,7 @@ public class ReactionPlatesTransmitCtrlService implements HardwareCtrlModule { @HardwareServiceParam(name = "T光学扫描起始坐标", group = "光学模组参数") public Integer getTOptPosOffset() { + //3509 return hpReader.getInteger("TOptPosOffset", 3723); } @@ -354,9 +356,11 @@ public class ReactionPlatesTransmitCtrlService implements HardwareCtrlModule { private AppRet packetOptDisplayScanCurve(List scanDataCurve) { A8kScanCurve scanCurve = new A8kScanCurve(); + logger.info("pointNum: " + scanDataCurve.size()); scanCurve.scanDataCurve = A8kOptAlgo.preProcessOptData(scanDataCurve); - scanCurve.refCurve = A8kOptAlgo.preProcessOptData(scanDataCurve); - scanCurve.refLine = new ArrayList<>(); + logger.info("pointNum: " + scanCurve.scanDataCurve.size()); + scanCurve.refCurve = A8kOptAlgo.preProcessOptData(scanDataCurve); + scanCurve.refLine = new ArrayList<>(); for (int i = 1; i < 6; i++) { scanCurve.refLine.add(40 * i); } @@ -365,13 +369,21 @@ public class ReactionPlatesTransmitCtrlService implements HardwareCtrlModule { @HardwareServiceAction(name = "T光学扫码", group = "光学调试") public AppRet optTScan(OptScanDirection direction, Integer scanerGain) throws HardwareException, InterruptedException { - canBus.optTStartScanBlock(MId.OptMod, direction, getOptTLasterGain(), scanerGain, getOptScanOvertime()); - return packetOptDisplayScanCurve(canBus.optReadRaw(MId.OptMod)); + // + // canBus.moduleSetReg(MId.OptMod, RegIndex.kreg_a8k_opt_t_pos_offset, getTOptPosOffset()); + // canBus.moduleSetReg(MId.OptMod, RegIndex.kreg_a8k_opt_t_reverse_scan_pos_offset,getTOptPosOffset()-1200); + // canBus.optTStartScanBlock(MId.OptMod, direction, getOptTLasterGain(), scanerGain, getOptScanOvertime()); + // return packetOptDisplayScanCurve(canBus.optReadRaw(MId.OptMod)); + return AppRet.fail(A8kEcode.CmdIdNotSupport); } @HardwareServiceAction(name = "F光学扫码", group = "光学调试") public AppRet optFScan(OptScanDirection direction, Integer scanerGain) throws HardwareException, InterruptedException { - canBus.optFStartScanBlock(MId.OptMod, direction, getOptTLasterGain(), scanerGain, getOptScanOvertime()); + //getFOptPosOffset + canBus.moduleSetReg(MId.OptMod, RegIndex.kreg_a8k_opt_f_pos_offset, getFOptPosOffset()); + canBus.moduleSetReg(MId.OptMod, RegIndex.kreg_a8k_opt_f_reverse_scan_pos_offset, getFOptPosOffset() - 1200); + + canBus.optFStartScanBlock(MId.OptMod, direction, getOptFLasterGain(), scanerGain, getOptScanOvertime()); return packetOptDisplayScanCurve(canBus.optReadRaw(MId.OptMod)); }