Browse Source

Merge remote-tracking branch 'origin/master'

tags/v0
sige 1 year ago
parent
commit
ac09b7a0ac
  1. 1
      src/main/java/a8k/canbus/A8kCanBusService.java
  2. 8
      src/main/java/a8k/opt_algo/A8kOptAlgo.java
  3. 24
      src/main/java/a8k/service/hardware/ReactionPlatesTransmitCtrlService.java

1
src/main/java/a8k/canbus/A8kCanBusService.java

@ -653,6 +653,7 @@ public class A8kCanBusService {
Thread.sleep(100);
} catch (InterruptedException ignore) {
}
logger.error("send cmd {} fail, retry {}", pack, i);
}
throw new HardwareException(MId.valueOf(pack.getModuleId()), A8kEcode.Overtime);
}

8
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<Double> createDoubleList(int size) {
List<Double> list = new ArrayList<>(size);
@ -31,8 +35,8 @@ public class A8kOptAlgo {
static public List<Integer> preProcessOptData(List<Integer> input) {
List<Double> inputRaw = integerToDouble(input);
List<Double> upSamplingRaw = superSampling(inputRaw, 24);
List<Double> subSamplingRaw = subSampling(upSamplingRaw, 5);
List<Double> upSamplingRaw = superSampling(inputRaw, 5);
List<Double> subSamplingRaw = subSampling(upSamplingRaw, 24);
return doubleToInteger(subSamplingRaw);
}

24
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<A8kScanCurve> packetOptDisplayScanCurve(List<Integer> 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<A8kScanCurve> 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<A8kScanCurve> 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));
}

Loading…
Cancel
Save