diff --git a/src/main/java/a8k/app/a8kproj/A8kIdCardDataParseService.java b/src/main/java/a8k/app/a8kproj/A8kIdCardDataParseService.java index 5fba87a..eff125c 100644 --- a/src/main/java/a8k/app/a8kproj/A8kIdCardDataParseService.java +++ b/src/main/java/a8k/app/a8kproj/A8kIdCardDataParseService.java @@ -1,15 +1,15 @@ package a8k.app.a8kproj; import a8k.app.dao.ProjectBaseInfoDao; -import a8k.app.dao.type.a8kidcard.A8kNormalFn; +import a8k.app.optalgo.type.a8kidcard.A8kNormalFn; import a8k.app.hardware.type.a8kcanprotocol.A8kEcode; -import a8k.app.a8ktype.opttype.A8kOptX; +import a8k.app.optalgo.type.A8kOptX; import a8k.app.dao.type.ProjectBaseInfo; -import a8k.app.dao.type.a8kidcard.A8kPiecewiseFn; -import a8k.app.dao.type.a8kidcard.A8kResultBuilderFn; -import a8k.app.dao.type.a8kidcard.zenum.A8kFnType; -import a8k.app.dao.type.a8kidcard.zenum.A8kResultUnit; -import a8k.app.dao.type.a8kidcard.A8kOptFnFormula; +import a8k.app.optalgo.type.a8kidcard.A8kPiecewiseFn; +import a8k.app.optalgo.type.a8kidcard.A8kResultBuilderFn; +import a8k.app.optalgo.type.a8kidcard.zenum.A8kFnType; +import a8k.app.optalgo.type.a8kidcard.zenum.A8kResultUnit; +import a8k.app.optalgo.type.a8kidcard.A8kOptFnFormula; import a8k.app.dao.type.ProjExtInfoCard; import a8k.app.a8ktype.error.AppError; import a8k.app.a8ktype.exception.AppException; diff --git a/src/main/java/a8k/app/a8kproj/optalgo/type/LineProcessContext.java b/src/main/java/a8k/app/a8kproj/optalgo/type/LineProcessContext.java deleted file mode 100644 index ae92274..0000000 --- a/src/main/java/a8k/app/a8kproj/optalgo/type/LineProcessContext.java +++ /dev/null @@ -1,22 +0,0 @@ -package a8k.app.a8kproj.optalgo.type; - -public class LineProcessContext { - - //过采样6000 - public double[] afSupperVal; - //中值滤波6000 - public double[] afSupperMedianVal; - - //下采样到1000个点 - public double[] raw1000; - //生成1000个的平滑曲线 - public double[] avg1000; - //生成1000个的斜率曲线 - public double[] diff1000; - //求数据的均值(巴迪泰A5000算法) - public double avgLine; - - //在曲线开始的位置第10个到15点的斜率 - public double baselineSlope; - -} diff --git a/src/main/java/a8k/app/a8kproj/optalgo/type/LinearResultSeq.java b/src/main/java/a8k/app/a8kproj/optalgo/type/LinearResultSeq.java deleted file mode 100644 index 0359f4b..0000000 --- a/src/main/java/a8k/app/a8kproj/optalgo/type/LinearResultSeq.java +++ /dev/null @@ -1,6 +0,0 @@ -package a8k.app.a8kproj.optalgo.type; - -public class LinearResultSeq { - public Float[] slope; - public Float intercept; -} diff --git a/src/main/java/a8k/app/a8kproj/optalgo/type/OptAlgoError.java b/src/main/java/a8k/app/a8kproj/optalgo/type/OptAlgoError.java deleted file mode 100644 index 4656cf9..0000000 --- a/src/main/java/a8k/app/a8kproj/optalgo/type/OptAlgoError.java +++ /dev/null @@ -1,9 +0,0 @@ -package a8k.app.a8kproj.optalgo.type; - -public enum OptAlgoError { - Success, - LostPeak, - LostPeakStart, - LostPeakEnd, -} - diff --git a/src/main/java/a8k/app/a8kproj/optalgo/type/OptCfg.java b/src/main/java/a8k/app/a8kproj/optalgo/type/OptCfg.java deleted file mode 100644 index 9cd1ded..0000000 --- a/src/main/java/a8k/app/a8kproj/optalgo/type/OptCfg.java +++ /dev/null @@ -1,5 +0,0 @@ -package a8k.app.a8kproj.optalgo.type; - -public class OptCfg { - public Integer peakNum; -} diff --git a/src/main/java/a8k/app/a8kproj/optalgo/type/OptProcessContext.java b/src/main/java/a8k/app/a8kproj/optalgo/type/OptProcessContext.java deleted file mode 100644 index 91aa079..0000000 --- a/src/main/java/a8k/app/a8kproj/optalgo/type/OptProcessContext.java +++ /dev/null @@ -1,7 +0,0 @@ -package a8k.app.a8kproj.optalgo.type; - -public class OptProcessContext { - Double[] supperVal; //超采样,1200*5=6000 - Double[] supperMedianVal; //supper_val,窗口平滑滤波,6000 - Double[] supperSmoothSubVal; //supper_smooth_val 均值压缩,6000/24=25 -} diff --git a/src/main/java/a8k/app/a8kproj/optalgo/utils/A8kOptAlgoUtils.java b/src/main/java/a8k/app/a8kproj/optalgo/utils/A8kOptAlgoUtils.java deleted file mode 100644 index 62e2c75..0000000 --- a/src/main/java/a8k/app/a8kproj/optalgo/utils/A8kOptAlgoUtils.java +++ /dev/null @@ -1,32 +0,0 @@ -package a8k.app.a8kproj.optalgo.utils; - -public class A8kOptAlgoUtils { - - static public Integer[] supperSamplingAndSubSampling(Integer[] data) { - double[] indata = new double[data.length]; - for (int i = 0; i < data.length; i++) { - indata[i] = data[i]; - } - - var result = supperSamplingAndSubSampling(indata); - Integer[] outdata = new Integer[result.length]; - for (int i = 0; i < result.length; i++) { - outdata[i] = (int) result[i]; - } - return outdata; - } - - static public double[] supperSamplingAndSubSampling(double[] data) { - //过采样 - var afSupperVal = SupperSampling.process(data, 5); - //中值滤波 - var afSupperMedianVal = Filter.medianFiltering(afSupperVal, 25); - - //下采样到1000个点 - var raw1000 = SubSampling.process(afSupperMedianVal, 6); - //生成1000个的平滑曲线 - var avg1000 = Filter.smooth(raw1000, 13); - - return SubSampling.process(avg1000, 4); - } -} diff --git a/src/main/java/a8k/app/a8kproj/optalgo/utils/Filter.java b/src/main/java/a8k/app/a8kproj/optalgo/utils/Filter.java deleted file mode 100644 index cbe8db9..0000000 --- a/src/main/java/a8k/app/a8kproj/optalgo/utils/Filter.java +++ /dev/null @@ -1,38 +0,0 @@ -package a8k.app.a8kproj.optalgo.utils; - -public class Filter { - static public double[] medianFiltering(double[] inputRaw, int windows_size) { - double[] medianRaw = new double[inputRaw.length]; - double[] windows = new double[windows_size]; - - int windows_size_half = (windows_size - 1) / 2; - - for (int index = windows_size_half; index < inputRaw.length - windows_size_half; index++) { - System.arraycopy(inputRaw, index - windows_size_half, windows, 0, windows_size); - BasicAlgo.bubbleSort(windows); // 从小到大顺序排序 - medianRaw[index] = windows[windows_size_half + 1]; - } - - BasicAlgo.padArraryAfWindowsAlgo(medianRaw, windows_size); - return medianRaw; - } - - - static public double[] smooth(double[] inputRaw, int windows_size) { - double[] smoothRaw = new double[inputRaw.length]; - int windows_size_half = (windows_size - 1) / 2; - - for (int index = windows_size_half; index < inputRaw.length - windows_size_half; index++) { - double sum = 0; - for (int i = index - windows_size_half; i <= index + windows_size_half; i++) { - sum += inputRaw[i]; - } - smoothRaw[index] = sum / windows_size; - } - - BasicAlgo.padArraryAfWindowsAlgo(smoothRaw, windows_size); - return smoothRaw; - } - - -} diff --git a/src/main/java/a8k/app/a8kproj/optanalyzer/context/OptAnalyzeContext.java b/src/main/java/a8k/app/a8kproj/optanalyzer/context/OptAnalyzeContext.java deleted file mode 100644 index df1975a..0000000 --- a/src/main/java/a8k/app/a8kproj/optanalyzer/context/OptAnalyzeContext.java +++ /dev/null @@ -1,28 +0,0 @@ -package a8k.app.a8kproj.optanalyzer.context; - -import a8k.app.a8ktype.state.SampleInfo; -import a8k.app.dao.type.OptCfg; -import a8k.app.utils.ProjInfo; - -public class OptAnalyzeContext { - - public SampleInfo sampleInfo; - public ProjInfo projInfoCxt; - public int subProjIndex; - - public OptAnalyzeContext(SampleInfo sampleInfo, ProjInfo projInfoCxt, int subProjIndex) { - this.sampleInfo = sampleInfo; - this.projInfoCxt = projInfoCxt; - this.subProjIndex = subProjIndex; - } - - public OptCfg getProjOptInfo() { - return projInfoCxt.buildIn.optcfg.get(subProjIndex); - } - - public String getProjName() { - return projInfoCxt.buildIn.projName; - } - - -} diff --git a/src/main/java/a8k/app/a8ktype/state/ProjectTaskContext.java b/src/main/java/a8k/app/a8ktype/state/ProjectTaskContext.java index 085660d..84c4d0f 100644 --- a/src/main/java/a8k/app/a8ktype/state/ProjectTaskContext.java +++ b/src/main/java/a8k/app/a8ktype/state/ProjectTaskContext.java @@ -1,12 +1,12 @@ package a8k.app.a8ktype.state; import a8k.SpringBootBeanUtil; -import a8k.app.a8kproj.optalgo.type.OptScanResult; +import a8k.app.optalgo.type.OptScanResult; import a8k.app.a8ktype.device.*; import a8k.app.a8ktype.param.type.A8kSamplePos; import a8k.app.dao.type.ProjExtInfoCard; -import a8k.app.dao.type.a8kidcard.zenum.A8kOptType; -import a8k.app.dao.type.a8kidcard.zenum.A8kReactionFlowType; +import a8k.app.optalgo.type.a8kidcard.zenum.A8kOptType; +import a8k.app.optalgo.type.a8kidcard.zenum.A8kReactionFlowType; import a8k.app.service.exparam.HbotConsumableExParamMgr; import a8k.app.utils.ProjBuildinInfo; import a8k.app.utils.ProjInfoReader; diff --git a/src/main/java/a8k/app/a8ktype/type/ReactionResult.java b/src/main/java/a8k/app/a8ktype/type/ReactionResult.java index 2b930b4..2843e40 100644 --- a/src/main/java/a8k/app/a8ktype/type/ReactionResult.java +++ b/src/main/java/a8k/app/a8ktype/type/ReactionResult.java @@ -1,7 +1,7 @@ package a8k.app.a8ktype.type; -import a8k.app.dao.type.a8kidcard.A8kResultUnitConverter; -import a8k.app.a8ktype.opttype.ReactionResultStatus; +import a8k.app.optalgo.type.a8kidcard.A8kResultUnitConverter; +import a8k.app.optalgo.type.ReactionResultStatus; import a8k.app.utils.ZJsonHelper; import io.swagger.v3.oas.annotations.media.Schema; diff --git a/src/main/java/a8k/app/dao/type/OptCfg.java b/src/main/java/a8k/app/dao/type/OptCfg.java index d1e93d1..1252a69 100644 --- a/src/main/java/a8k/app/dao/type/OptCfg.java +++ b/src/main/java/a8k/app/dao/type/OptCfg.java @@ -1,6 +1,6 @@ package a8k.app.dao.type; -import a8k.app.dao.type.a8kidcard.zenum.A8kOptType; +import a8k.app.optalgo.type.a8kidcard.zenum.A8kOptType; import java.io.Serializable; diff --git a/src/main/java/a8k/app/dao/type/OptRawScanData.java b/src/main/java/a8k/app/dao/type/OptRawScanData.java index 98ccf14..dec288e 100644 --- a/src/main/java/a8k/app/dao/type/OptRawScanData.java +++ b/src/main/java/a8k/app/dao/type/OptRawScanData.java @@ -1,6 +1,6 @@ package a8k.app.dao.type; -import a8k.app.dao.type.a8kidcard.zenum.A8kOptType; +import a8k.app.optalgo.type.a8kidcard.zenum.A8kOptType; import a8k.app.utils.ZJsonHelper; public class OptRawScanData { diff --git a/src/main/java/a8k/app/dao/type/ProjExtInfoCard.java b/src/main/java/a8k/app/dao/type/ProjExtInfoCard.java index 0b74d07..d5810fc 100644 --- a/src/main/java/a8k/app/dao/type/ProjExtInfoCard.java +++ b/src/main/java/a8k/app/dao/type/ProjExtInfoCard.java @@ -1,6 +1,6 @@ package a8k.app.dao.type; -import a8k.app.dao.type.a8kidcard.A8kOptFnFormula; +import a8k.app.optalgo.type.a8kidcard.A8kOptFnFormula; import a8k.app.utils.ZDateUtils; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/src/main/java/a8k/app/dao/type/ProjectBaseInfo.java b/src/main/java/a8k/app/dao/type/ProjectBaseInfo.java index 7772c95..d0356e6 100644 --- a/src/main/java/a8k/app/dao/type/ProjectBaseInfo.java +++ b/src/main/java/a8k/app/dao/type/ProjectBaseInfo.java @@ -1,6 +1,6 @@ package a8k.app.dao.type; -import a8k.app.dao.type.a8kidcard.zenum.A8kReactionFlowType; +import a8k.app.optalgo.type.a8kidcard.zenum.A8kReactionFlowType; import a8k.app.utils.ZJsonHelper; import java.io.Serializable; diff --git a/src/main/java/a8k/app/dao/type/ReactionReport.java b/src/main/java/a8k/app/dao/type/ReactionReport.java index e4698aa..9691412 100644 --- a/src/main/java/a8k/app/dao/type/ReactionReport.java +++ b/src/main/java/a8k/app/dao/type/ReactionReport.java @@ -1,9 +1,9 @@ package a8k.app.dao.type; -import a8k.app.a8kproj.optalgo.type.OptScanResult; +import a8k.app.optalgo.type.OptScanResult; import a8k.app.a8ktype.type.ReactionResult; import a8k.app.a8ktype.device.BloodType; -import a8k.app.dao.type.a8kidcard.zenum.A8kOptType; +import a8k.app.optalgo.type.a8kidcard.zenum.A8kOptType; import a8k.app.utils.ProjInfo; import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.v3.oas.annotations.media.Schema; diff --git a/src/main/java/a8k/app/dao/type/a8kidcard/zenum/A8kOptType.java b/src/main/java/a8k/app/dao/type/a8kidcard/zenum/A8kOptType.java deleted file mode 100644 index fa6cd99..0000000 --- a/src/main/java/a8k/app/dao/type/a8kidcard/zenum/A8kOptType.java +++ /dev/null @@ -1,6 +0,0 @@ -package a8k.app.dao.type.a8kidcard.zenum; - -public enum A8kOptType { - FOPT, - TOPT, -} diff --git a/src/main/java/a8k/app/hardware/driver/OptModuleDriver.java b/src/main/java/a8k/app/hardware/driver/OptModuleDriver.java index 0da6af8..a79b4b7 100644 --- a/src/main/java/a8k/app/hardware/driver/OptModuleDriver.java +++ b/src/main/java/a8k/app/hardware/driver/OptModuleDriver.java @@ -8,7 +8,7 @@ import a8k.app.hardware.type.a8kcanprotocol.CmdId; import a8k.app.hardware.type.a8kcanprotocol.MId; import a8k.app.hardware.type.a8kcanprotocol.ModuleStatus; import a8k.app.hardware.driver.type.OptModuleRegIndex; -import a8k.app.a8ktype.opttype.OptScanDirection; +import a8k.app.optalgo.type.OptScanDirection; import a8k.app.a8ktype.error.AEHardwareError; import a8k.app.a8ktype.exception.AppException; import a8k.app.utils.ByteArray; diff --git a/src/main/java/a8k/app/hardware/utils/OptGainConvert.java b/src/main/java/a8k/app/hardware/utils/OptGainConvert.java index 0aa7c61..e6891fc 100644 --- a/src/main/java/a8k/app/hardware/utils/OptGainConvert.java +++ b/src/main/java/a8k/app/hardware/utils/OptGainConvert.java @@ -1,6 +1,6 @@ package a8k.app.hardware.utils; -import a8k.app.dao.type.a8kidcard.zenum.A8kOptType; +import a8k.app.optalgo.type.a8kidcard.zenum.A8kOptType; public class OptGainConvert { diff --git a/src/main/java/a8k/app/a8kproj/optalgo/A8kOptAlgoV2.java b/src/main/java/a8k/app/optalgo/A8kOptCurveAnalyzer.java similarity index 84% rename from src/main/java/a8k/app/a8kproj/optalgo/A8kOptAlgoV2.java rename to src/main/java/a8k/app/optalgo/A8kOptCurveAnalyzer.java index 80b2b55..037587f 100644 --- a/src/main/java/a8k/app/a8kproj/optalgo/A8kOptAlgoV2.java +++ b/src/main/java/a8k/app/optalgo/A8kOptCurveAnalyzer.java @@ -1,15 +1,16 @@ -package a8k.app.a8kproj.optalgo; +package a8k.app.optalgo; -import a8k.app.a8kproj.optalgo.type.*; -import a8k.app.a8kproj.optalgo.utils.*; -import a8k.app.a8kproj.optanalyzer.PeakNameAssigner; +import a8k.app.optalgo.algo.LeastSquare; +import a8k.app.optalgo.algo.SubSampling; +import a8k.app.optalgo.algo.SupperSampling; +import a8k.app.optalgo.type.*; +import a8k.app.optalgo.utils.*; import a8k.app.dao.type.OptCfg; -import a8k.app.utils.ProjBuildinInfo; import lombok.extern.slf4j.Slf4j; @Slf4j -public class A8kOptAlgoV2 { +public class A8kOptCurveAnalyzer { double[] avg; double[] diffx2; double[] diff; @@ -19,22 +20,22 @@ public class A8kOptAlgoV2 { Integer[] rawData; - ProjBuildinInfo projInfo; - OptCfg optCfg; + OptCfg optCfg; + Integer projId; - public OptAlgoAnalysResult processOptData(ProjBuildinInfo projInfo, OptCfg optCfg, Integer[] data) { + public A8kOptPeakInfo analysCurve(Integer projId, OptCfg optCfg, Integer[] data) { double[] doubleData = new double[data.length]; for (int i = 0; i < data.length; i++) { doubleData[i] = data[i]; } - this.projInfo = projInfo; - this.optCfg = optCfg; - this.rawData = data; - return processOptData(doubleData); + this.optCfg = optCfg; + this.rawData = data; + this.projId = projId; + return analysCurve(doubleData); } - private OptAlgoAnalysResult processOptData(double[] data) { + private A8kOptPeakInfo analysCurve(double[] data) { //过采样 @@ -55,10 +56,10 @@ public class A8kOptAlgoV2 { findpeak(avg, 140, 180, peaks.P160); findpeak(avg, 180, 220, peaks.P200); - PeakNameAssigner.assignPeakName(projInfo.projId, optCfg.peakNameRefNum, peaks); + PeakNameAssigner.assignPeakName(projId, optCfg.peakNameRefNum, peaks); - return OptAlgoAnalysResult.build(afSubSampling, peaks); + return A8kOptPeakInfoBuilder.build(afSubSampling, peaks); } double findAvgLine(double[] inputRaw) { diff --git a/src/main/java/a8k/app/a8kproj/A8kReactionResultComputer.java b/src/main/java/a8k/app/optalgo/A8kPeakAnalyzer.java similarity index 76% rename from src/main/java/a8k/app/a8kproj/A8kReactionResultComputer.java rename to src/main/java/a8k/app/optalgo/A8kPeakAnalyzer.java index 1dbdabb..64a7ef7 100644 --- a/src/main/java/a8k/app/a8kproj/A8kReactionResultComputer.java +++ b/src/main/java/a8k/app/optalgo/A8kPeakAnalyzer.java @@ -1,18 +1,18 @@ -package a8k.app.a8kproj; +package a8k.app.optalgo; -import a8k.app.a8kproj.optalgo.type.OptAlgoAnalysResult; -import a8k.app.a8kproj.optanalyzer.A8kOptXGetter; -import a8k.app.a8kproj.optanalyzer.OptChecker; -import a8k.app.a8kproj.optanalyzer.context.OptAnalyzeContext; -import a8k.app.a8kproj.optanalyzer.exception.A8kOptProcessException; +import a8k.app.dao.type.OptCfg; +import a8k.app.optalgo.type.A8kOptPeakInfo; +import a8k.app.optalgo.type.A8kOptProcessException; import a8k.app.a8ktype.state.SampleInfo; -import a8k.app.dao.type.a8kidcard.A8kNormalFn; -import a8k.app.dao.type.a8kidcard.A8kOptFnFormula; -import a8k.app.dao.type.a8kidcard.A8kPiecewiseFn; -import a8k.app.dao.type.a8kidcard.A8kResultBuilderFn; -import a8k.app.dao.type.a8kidcard.zenum.A8kFnType; +import a8k.app.optalgo.type.a8kidcard.A8kNormalFn; +import a8k.app.optalgo.type.a8kidcard.A8kOptFnFormula; +import a8k.app.optalgo.type.a8kidcard.A8kPiecewiseFn; +import a8k.app.optalgo.type.a8kidcard.A8kResultBuilderFn; +import a8k.app.optalgo.type.a8kidcard.zenum.A8kFnType; import a8k.app.a8ktype.type.ReactionResult; -import a8k.app.a8ktype.opttype.ReactionResultStatus; +import a8k.app.optalgo.type.ReactionResultStatus; +import a8k.app.optalgo.utils.A8kOptXGetter; +import a8k.app.optalgo.utils.OptChecker; import a8k.app.utils.ProjInfo; import a8k.app.utils.ProjInfoUtils; import a8k.app.utils.ZloggerRecorder; @@ -27,9 +27,60 @@ import org.springframework.util.Assert; // @Slf4j -public class A8kReactionResultComputer { +public class A8kPeakAnalyzer { - static ZloggerRecorder zloggerRecorder = new ZloggerRecorder(LoggerFactory.getLogger(A8kReactionResultComputer.class)); + static public class OptAnalyzeContext { + + public SampleInfo sampleInfo; + public ProjInfo projInfoCxt; + public int subProjIndex; + + public OptAnalyzeContext(SampleInfo sampleInfo, ProjInfo projInfoCxt, int subProjIndex) { + this.sampleInfo = sampleInfo; + this.projInfoCxt = projInfoCxt; + this.subProjIndex = subProjIndex; + } + + public OptCfg getProjOptInfo() { + return projInfoCxt.buildIn.optcfg.get(subProjIndex); + } + + public String getProjName() { + return projInfoCxt.buildIn.projName; + } + + + } + + // + // PUBLIC + // + + + static public ReactionResult analysisPeakInfo(SampleInfo sampleInfo, ProjInfo projInfoCxt, int subProjIndex, A8kOptPeakInfo a8kOptPeakInfo) { + zloggerRecorder.clear(); + zloggerRecorder.info("================OPT COMPUTE RESULT============="); + zloggerRecorder.info("optComputeResult:%s proj:%s(%s) sub-proj:%s", sampleInfo.sampleId, projInfoCxt.buildIn.projId, projInfoCxt.buildIn.projName, subProjIndex); + OptAnalyzeContext optAnalyzeContext = new OptAnalyzeContext(sampleInfo, projInfoCxt, subProjIndex); + try { + return analyzeResult(optAnalyzeContext, a8kOptPeakInfo); + } catch (A8kOptProcessException e) { + zloggerRecorder.error("optComputeResult fail:%s,%s ", e.status, e.errorMsg); + return new ReactionResult(optAnalyzeContext.getProjOptInfo().subProjName, optAnalyzeContext.getProjOptInfo().subProjShortName, e.status, e.errorMsg); + } + } + + static public String getComputeContext() { + return zloggerRecorder.getRecord(); + } + + + // + // PRIVATE + // + + + static ZloggerRecorder zloggerRecorder = new ZloggerRecorder(LoggerFactory.getLogger(A8kPeakAnalyzer.class)); static String fmt(Double val) { return val == null ? "null" : String.format("%.5f", val); @@ -78,7 +129,7 @@ public class A8kReactionResultComputer { //普通函数 - static Double callNorFn(OptAnalyzeContext optcxt, A8kNormalFn fn, OptAlgoAnalysResult optAlgoAnalysResult) throws A8kOptProcessException { + static Double callNorFn(OptAnalyzeContext optcxt, A8kNormalFn fn, A8kOptPeakInfo a8kOptPeakInfo) throws A8kOptProcessException { zloggerRecorder.info("==========NormalFn=========="); zloggerRecorder.info("-XType : %s", fn.x); zloggerRecorder.info("-Fromula : Y = %sX^2+%sX+%s", fmt(fn.A), fmt(fn.B), fmt(fn.C)); @@ -86,7 +137,7 @@ public class A8kReactionResultComputer { zloggerRecorder.info("-ResultRange: [%s:%s]", fmt(fn.lowLimit), fmt(fn.upLimit)); zloggerRecorder.info("-==========Result=========="); - Double X = A8kOptXGetter.getX(fn.x, optcxt.getProjOptInfo(), optAlgoAnalysResult); + Double X = A8kOptXGetter.getX(fn.x, optcxt.getProjOptInfo(), a8kOptPeakInfo); zloggerRecorder.info("-Result:X = %s", fmt(X)); OptChecker.checkX(X, fn.xMin, fn.xMax); @@ -98,7 +149,7 @@ public class A8kReactionResultComputer { // 分段函数系数 - static Double callPiecewiseFn(OptAnalyzeContext optcxt, A8kPiecewiseFn fn, OptAlgoAnalysResult optAlgoAnalysResult) throws A8kOptProcessException { + static Double callPiecewiseFn(OptAnalyzeContext optcxt, A8kPiecewiseFn fn, A8kOptPeakInfo a8kOptPeakInfo) throws A8kOptProcessException { zloggerRecorder.info("==========PiecewiseFn=========="); zloggerRecorder.info("+JudeX :%s", fn.judeX); zloggerRecorder.info("+JudeThres :%s", fmt(fn.judeThres)); @@ -110,15 +161,15 @@ public class A8kReactionResultComputer { zloggerRecorder.info("+ResultRange : [%s:%s]", fmt(fn.lowLimit), fmt(fn.upLimit)); - Double pwFnJudeX = A8kOptXGetter.getX(fn.judeX, optcxt.getProjOptInfo(), optAlgoAnalysResult); + Double pwFnJudeX = A8kOptXGetter.getX(fn.judeX, optcxt.getProjOptInfo(), a8kOptPeakInfo); Double X = null; Double result1 = null; boolean isHX = false; if (pwFnJudeX < fn.judeThres) { - X = A8kOptXGetter.getX(fn.lX, optcxt.getProjOptInfo(), optAlgoAnalysResult); + X = A8kOptXGetter.getX(fn.lX, optcxt.getProjOptInfo(), a8kOptPeakInfo); result1 = fn.A0 * X * X * X + fn.B0 * X * X + fn.C0 * X + fn.D0; } else { - X = A8kOptXGetter.getX(fn.hX, optcxt.getProjOptInfo(), optAlgoAnalysResult); + X = A8kOptXGetter.getX(fn.hX, optcxt.getProjOptInfo(), a8kOptPeakInfo); result1 = fn.A1 * X * X * X + fn.B1 * X * X + fn.C1 * X + fn.D1; isHX = true; } @@ -136,49 +187,32 @@ public class A8kReactionResultComputer { static ReactionResult buildResult(OptAnalyzeContext optcxt, A8kResultBuilderFn fn, Double result1) { Assert.isTrue(result1 != null, "result1 must not be null"); - Double result2 = compute2ndResult(fn, result1); - Double result3 = compute3rdResult(fn, result1); + Double result2 = compute2ndResult(fn, result1); + Double result3 = compute3rdResult(fn, result1); ReactionResult reactionResult = new ReactionResult(optcxt.getProjOptInfo().subProjName, optcxt.getProjOptInfo().subProjShortName, result1, fn.toResultUnitConverters()); reactionResult.status = ReactionResultStatus.SUCCESS; return reactionResult; } - static private ReactionResult analyzeResult(OptAnalyzeContext optcxt, OptAlgoAnalysResult optAlgoAnalysResult) throws A8kOptProcessException { + static private ReactionResult analyzeResult(OptAnalyzeContext optcxt, A8kOptPeakInfo a8kOptPeakInfo) throws A8kOptProcessException { // A8kOptFnFormula fnFormual = optcxt.projInfoCxt.getA8kOptFnFormula(optcxt.subProjIndex); A8kOptFnFormula fnFormual = ProjInfoUtils.getA8kOptFnFormula(optcxt.projInfoCxt.ext, optcxt.subProjIndex); Assert.isTrue(fnFormual != null, "fnFormual must not be null"); Double result1 = null; if (fnFormual.fnType.equals(A8kFnType.NormalFn)) { result1 = switch (optcxt.sampleInfo.bloodType) { - case WHOLE_BLOOD -> callNorFn(optcxt, fnFormual.bloodNorFn, optAlgoAnalysResult); - case SERUM_OR_PLASMA -> callNorFn(optcxt, fnFormual.serumNorFn, optAlgoAnalysResult); + case WHOLE_BLOOD -> callNorFn(optcxt, fnFormual.bloodNorFn, a8kOptPeakInfo); + case SERUM_OR_PLASMA -> callNorFn(optcxt, fnFormual.serumNorFn, a8kOptPeakInfo); }; } else if (fnFormual.fnType.equals(A8kFnType.PiecewiseFn)) { result1 = switch (optcxt.sampleInfo.bloodType) { - case WHOLE_BLOOD -> callPiecewiseFn(optcxt, fnFormual.bloodPiecewiseFn, optAlgoAnalysResult); - case SERUM_OR_PLASMA -> callPiecewiseFn(optcxt, fnFormual.serumPiecewiseFn, optAlgoAnalysResult); + case WHOLE_BLOOD -> callPiecewiseFn(optcxt, fnFormual.bloodPiecewiseFn, a8kOptPeakInfo); + case SERUM_OR_PLASMA -> callPiecewiseFn(optcxt, fnFormual.serumPiecewiseFn, a8kOptPeakInfo); }; } return buildResult(optcxt, fnFormual.resultBuilderFn, result1); } - static public ReactionResult optComputeResult(SampleInfo sampleInfo, ProjInfo projInfoCxt, int subProjIndex, OptAlgoAnalysResult optAlgoAnalysResult) { - zloggerRecorder.clear(); - zloggerRecorder.info("================OPT COMPUTE RESULT============="); - zloggerRecorder.info("optComputeResult:%s proj:%s(%s) sub-proj:%s", sampleInfo.sampleId, projInfoCxt.buildIn.projId, projInfoCxt.buildIn.projName, subProjIndex); - OptAnalyzeContext optAnalyzeContext = new OptAnalyzeContext(sampleInfo, projInfoCxt, subProjIndex); - try { - return analyzeResult(optAnalyzeContext, optAlgoAnalysResult); - } catch (A8kOptProcessException e) { - zloggerRecorder.error("optComputeResult fail:%s,%s ", e.status, e.errorMsg); - return new ReactionResult(optAnalyzeContext.getProjOptInfo().subProjName, optAnalyzeContext.getProjOptInfo().subProjShortName, e.status, e.errorMsg); - } - } - - static public String getComputeContext() { - return zloggerRecorder.getRecord(); - } - } diff --git a/src/main/java/a8k/app/optalgo/README.md b/src/main/java/a8k/app/optalgo/README.md new file mode 100644 index 0000000..5bb3037 --- /dev/null +++ b/src/main/java/a8k/app/optalgo/README.md @@ -0,0 +1,8 @@ +```angular2html + +1. 该目录为巴迪泰光学算法相关内容 +2. 入口类为Ak8OptAlgoV2 +3. utils部分工具也可以使用 +4. 不包含任何Component + +``` \ No newline at end of file diff --git a/src/main/java/a8k/app/a8kproj/optalgo/utils/BasicAlgo.java b/src/main/java/a8k/app/optalgo/algo/BasicAlgo.java similarity index 98% rename from src/main/java/a8k/app/a8kproj/optalgo/utils/BasicAlgo.java rename to src/main/java/a8k/app/optalgo/algo/BasicAlgo.java index 7d89c1b..e26bfff 100644 --- a/src/main/java/a8k/app/a8kproj/optalgo/utils/BasicAlgo.java +++ b/src/main/java/a8k/app/optalgo/algo/BasicAlgo.java @@ -1,4 +1,4 @@ -package a8k.app.a8kproj.optalgo.utils; +package a8k.app.optalgo.algo; import org.springframework.util.Assert; diff --git a/src/main/java/a8k/app/a8kproj/optalgo/utils/LeastSquare.java b/src/main/java/a8k/app/optalgo/algo/LeastSquare.java similarity index 95% rename from src/main/java/a8k/app/a8kproj/optalgo/utils/LeastSquare.java rename to src/main/java/a8k/app/optalgo/algo/LeastSquare.java index 576a8b4..c4e974c 100644 --- a/src/main/java/a8k/app/a8kproj/optalgo/utils/LeastSquare.java +++ b/src/main/java/a8k/app/optalgo/algo/LeastSquare.java @@ -1,6 +1,6 @@ -package a8k.app.a8kproj.optalgo.utils; +package a8k.app.optalgo.algo; -import a8k.app.a8kproj.optalgo.type.LinearResult; +import a8k.app.optalgo.type.LinearResult; import org.springframework.util.Assert; public class LeastSquare { diff --git a/src/main/java/a8k/app/a8kproj/optalgo/utils/SubSampling.java b/src/main/java/a8k/app/optalgo/algo/SubSampling.java similarity index 94% rename from src/main/java/a8k/app/a8kproj/optalgo/utils/SubSampling.java rename to src/main/java/a8k/app/optalgo/algo/SubSampling.java index a4b08f3..f827f1d 100644 --- a/src/main/java/a8k/app/a8kproj/optalgo/utils/SubSampling.java +++ b/src/main/java/a8k/app/optalgo/algo/SubSampling.java @@ -1,4 +1,4 @@ -package a8k.app.a8kproj.optalgo.utils; +package a8k.app.optalgo.algo; public class SubSampling { public static double[] process(double[] inputRaw, int nSubSampleRate) { diff --git a/src/main/java/a8k/app/a8kproj/optalgo/utils/SupperSampling.java b/src/main/java/a8k/app/optalgo/algo/SupperSampling.java similarity index 95% rename from src/main/java/a8k/app/a8kproj/optalgo/utils/SupperSampling.java rename to src/main/java/a8k/app/optalgo/algo/SupperSampling.java index 575192b..e354030 100644 --- a/src/main/java/a8k/app/a8kproj/optalgo/utils/SupperSampling.java +++ b/src/main/java/a8k/app/optalgo/algo/SupperSampling.java @@ -1,4 +1,4 @@ -package a8k.app.a8kproj.optalgo.utils; +package a8k.app.optalgo.algo; public class SupperSampling { static public double[] process(double[] inputRaw, Integer nUpSampleRate) { diff --git a/src/main/java/a8k/app/a8kproj/optalgo/type/A8kOptPeak.java b/src/main/java/a8k/app/optalgo/type/A8kOptPeak.java similarity index 92% rename from src/main/java/a8k/app/a8kproj/optalgo/type/A8kOptPeak.java rename to src/main/java/a8k/app/optalgo/type/A8kOptPeak.java index cc47082..f288f04 100644 --- a/src/main/java/a8k/app/a8kproj/optalgo/type/A8kOptPeak.java +++ b/src/main/java/a8k/app/optalgo/type/A8kOptPeak.java @@ -1,6 +1,4 @@ -package a8k.app.a8kproj.optalgo.type; - -import a8k.app.a8ktype.opttype.PeakName; +package a8k.app.optalgo.type; public class A8kOptPeak { public PeakFindState state = PeakFindState.NOT_FIND_PEAK; diff --git a/src/main/java/a8k/app/optalgo/type/A8kOptPeakInfo.java b/src/main/java/a8k/app/optalgo/type/A8kOptPeakInfo.java new file mode 100644 index 0000000..e3b83d2 --- /dev/null +++ b/src/main/java/a8k/app/optalgo/type/A8kOptPeakInfo.java @@ -0,0 +1,25 @@ +package a8k.app.optalgo.type; + +public class A8kOptPeakInfo { + + public String algoVersion = ""; + + public double[] resultData; // 250 POINT + + public A8kOptPeak T4; + public A8kOptPeak R; + public A8kOptPeak H; + public A8kOptPeak T; + public A8kOptPeak C; + + public Double pdR; //1 + public Double pdAR; //2 + public Double pdATR; //3 + public Double pdRFR; //5 + public Double pdT4R; //6 + public Double pdT4T3R; //7 + + + + +} diff --git a/src/main/java/a8k/app/a8kproj/optalgo/type/A8kOptPeaks.java b/src/main/java/a8k/app/optalgo/type/A8kOptPeaks.java similarity index 94% rename from src/main/java/a8k/app/a8kproj/optalgo/type/A8kOptPeaks.java rename to src/main/java/a8k/app/optalgo/type/A8kOptPeaks.java index 7d5f564..1b8c2b9 100644 --- a/src/main/java/a8k/app/a8kproj/optalgo/type/A8kOptPeaks.java +++ b/src/main/java/a8k/app/optalgo/type/A8kOptPeaks.java @@ -1,6 +1,5 @@ -package a8k.app.a8kproj.optalgo.type; +package a8k.app.optalgo.type; -import a8k.app.a8ktype.opttype.PeakName; import org.springframework.util.Assert; public class A8kOptPeaks { diff --git a/src/main/java/a8k/app/a8kproj/optanalyzer/exception/A8kOptProcessException.java b/src/main/java/a8k/app/optalgo/type/A8kOptProcessException.java similarity index 75% rename from src/main/java/a8k/app/a8kproj/optanalyzer/exception/A8kOptProcessException.java rename to src/main/java/a8k/app/optalgo/type/A8kOptProcessException.java index 1399fa6..6fddf32 100644 --- a/src/main/java/a8k/app/a8kproj/optanalyzer/exception/A8kOptProcessException.java +++ b/src/main/java/a8k/app/optalgo/type/A8kOptProcessException.java @@ -1,6 +1,4 @@ -package a8k.app.a8kproj.optanalyzer.exception; - -import a8k.app.a8ktype.opttype.ReactionResultStatus; +package a8k.app.optalgo.type; public class A8kOptProcessException extends Exception { public ReactionResultStatus status = ReactionResultStatus.SUCCESS; diff --git a/src/main/java/a8k/app/a8ktype/opttype/A8kOptX.java b/src/main/java/a8k/app/optalgo/type/A8kOptX.java similarity index 94% rename from src/main/java/a8k/app/a8ktype/opttype/A8kOptX.java rename to src/main/java/a8k/app/optalgo/type/A8kOptX.java index 611ad62..07eaac3 100644 --- a/src/main/java/a8k/app/a8ktype/opttype/A8kOptX.java +++ b/src/main/java/a8k/app/optalgo/type/A8kOptX.java @@ -1,4 +1,4 @@ -package a8k.app.a8ktype.opttype; +package a8k.app.optalgo.type; public enum A8kOptX { USUPPORT, diff --git a/src/main/java/a8k/app/a8kproj/optalgo/type/LinearResult.java b/src/main/java/a8k/app/optalgo/type/LinearResult.java similarity index 67% rename from src/main/java/a8k/app/a8kproj/optalgo/type/LinearResult.java rename to src/main/java/a8k/app/optalgo/type/LinearResult.java index 214dbea..41b1ac4 100644 --- a/src/main/java/a8k/app/a8kproj/optalgo/type/LinearResult.java +++ b/src/main/java/a8k/app/optalgo/type/LinearResult.java @@ -1,4 +1,4 @@ -package a8k.app.a8kproj.optalgo.type; +package a8k.app.optalgo.type; public class LinearResult { public double slope; diff --git a/src/main/java/a8k/app/a8ktype/opttype/OptScanDirection.java b/src/main/java/a8k/app/optalgo/type/OptScanDirection.java similarity index 81% rename from src/main/java/a8k/app/a8ktype/opttype/OptScanDirection.java rename to src/main/java/a8k/app/optalgo/type/OptScanDirection.java index f71a7e4..bafa8cb 100644 --- a/src/main/java/a8k/app/a8ktype/opttype/OptScanDirection.java +++ b/src/main/java/a8k/app/optalgo/type/OptScanDirection.java @@ -1,4 +1,4 @@ -package a8k.app.a8ktype.opttype; +package a8k.app.optalgo.type; public enum OptScanDirection { FORWARD, //从左向右扫描 diff --git a/src/main/java/a8k/app/a8kproj/optalgo/type/OptScanResult.java b/src/main/java/a8k/app/optalgo/type/OptScanResult.java similarity index 67% rename from src/main/java/a8k/app/a8kproj/optalgo/type/OptScanResult.java rename to src/main/java/a8k/app/optalgo/type/OptScanResult.java index 0419abb..07cb117 100644 --- a/src/main/java/a8k/app/a8kproj/optalgo/type/OptScanResult.java +++ b/src/main/java/a8k/app/optalgo/type/OptScanResult.java @@ -1,4 +1,4 @@ -package a8k.app.a8kproj.optalgo.type; +package a8k.app.optalgo.type; import a8k.app.dao.type.OptRawScanData; import a8k.app.utils.ZJsonHelper; @@ -7,8 +7,8 @@ import java.util.Date; public class OptScanResult { public Date scanDate; - public OptRawScanData rawData; - public OptAlgoAnalysResult analysResult; + public OptRawScanData rawData; + public A8kOptPeakInfo analysResult; public String toString() { return ZJsonHelper.objectToJson(this); } diff --git a/src/main/java/a8k/app/a8ktype/opttype/PeakDivision.java b/src/main/java/a8k/app/optalgo/type/PeakDivision.java similarity index 93% rename from src/main/java/a8k/app/a8ktype/opttype/PeakDivision.java rename to src/main/java/a8k/app/optalgo/type/PeakDivision.java index 3c5336d..9b5717c 100644 --- a/src/main/java/a8k/app/a8ktype/opttype/PeakDivision.java +++ b/src/main/java/a8k/app/optalgo/type/PeakDivision.java @@ -1,4 +1,4 @@ -package a8k.app.a8ktype.opttype; +package a8k.app.optalgo.type; public enum PeakDivision { R(PeakName.T, PeakName.C), //T/C diff --git a/src/main/java/a8k/app/a8kproj/optalgo/type/PeakFindState.java b/src/main/java/a8k/app/optalgo/type/PeakFindState.java similarity index 60% rename from src/main/java/a8k/app/a8kproj/optalgo/type/PeakFindState.java rename to src/main/java/a8k/app/optalgo/type/PeakFindState.java index bba057a..0e2942c 100644 --- a/src/main/java/a8k/app/a8kproj/optalgo/type/PeakFindState.java +++ b/src/main/java/a8k/app/optalgo/type/PeakFindState.java @@ -1,4 +1,4 @@ -package a8k.app.a8kproj.optalgo.type; +package a8k.app.optalgo.type; public enum PeakFindState { FIND_PEAK, diff --git a/src/main/java/a8k/app/a8ktype/opttype/PeakName.java b/src/main/java/a8k/app/optalgo/type/PeakName.java similarity index 58% rename from src/main/java/a8k/app/a8ktype/opttype/PeakName.java rename to src/main/java/a8k/app/optalgo/type/PeakName.java index 0ed1740..9babad0 100644 --- a/src/main/java/a8k/app/a8ktype/opttype/PeakName.java +++ b/src/main/java/a8k/app/optalgo/type/PeakName.java @@ -1,4 +1,4 @@ -package a8k.app.a8ktype.opttype; +package a8k.app.optalgo.type; public enum PeakName { T4, diff --git a/src/main/java/a8k/app/a8ktype/opttype/ReactionResultStatus.java b/src/main/java/a8k/app/optalgo/type/ReactionResultStatus.java similarity index 97% rename from src/main/java/a8k/app/a8ktype/opttype/ReactionResultStatus.java rename to src/main/java/a8k/app/optalgo/type/ReactionResultStatus.java index 388d0dd..1d772aa 100644 --- a/src/main/java/a8k/app/a8ktype/opttype/ReactionResultStatus.java +++ b/src/main/java/a8k/app/optalgo/type/ReactionResultStatus.java @@ -1,4 +1,4 @@ -package a8k.app.a8ktype.opttype; +package a8k.app.optalgo.type; import io.swagger.v3.oas.annotations.media.Schema; diff --git a/src/main/java/a8k/app/dao/type/a8kidcard/A8kNormalFn.java b/src/main/java/a8k/app/optalgo/type/a8kidcard/A8kNormalFn.java similarity index 93% rename from src/main/java/a8k/app/dao/type/a8kidcard/A8kNormalFn.java rename to src/main/java/a8k/app/optalgo/type/a8kidcard/A8kNormalFn.java index 4ca31da..969d12e 100644 --- a/src/main/java/a8k/app/dao/type/a8kidcard/A8kNormalFn.java +++ b/src/main/java/a8k/app/optalgo/type/a8kidcard/A8kNormalFn.java @@ -1,6 +1,6 @@ -package a8k.app.dao.type.a8kidcard; +package a8k.app.optalgo.type.a8kidcard; -import a8k.app.a8ktype.opttype.A8kOptX; +import a8k.app.optalgo.type.A8kOptX; import java.io.Serializable; diff --git a/src/main/java/a8k/app/dao/type/a8kidcard/A8kOptFnFormula.java b/src/main/java/a8k/app/optalgo/type/a8kidcard/A8kOptFnFormula.java similarity index 82% rename from src/main/java/a8k/app/dao/type/a8kidcard/A8kOptFnFormula.java rename to src/main/java/a8k/app/optalgo/type/a8kidcard/A8kOptFnFormula.java index 7645eb7..4558c97 100644 --- a/src/main/java/a8k/app/dao/type/a8kidcard/A8kOptFnFormula.java +++ b/src/main/java/a8k/app/optalgo/type/a8kidcard/A8kOptFnFormula.java @@ -1,6 +1,6 @@ -package a8k.app.dao.type.a8kidcard; +package a8k.app.optalgo.type.a8kidcard; -import a8k.app.dao.type.a8kidcard.zenum.A8kFnType; +import a8k.app.optalgo.type.a8kidcard.zenum.A8kFnType; import java.io.Serializable; diff --git a/src/main/java/a8k/app/dao/type/a8kidcard/A8kPiecewiseFn.java b/src/main/java/a8k/app/optalgo/type/a8kidcard/A8kPiecewiseFn.java similarity index 95% rename from src/main/java/a8k/app/dao/type/a8kidcard/A8kPiecewiseFn.java rename to src/main/java/a8k/app/optalgo/type/a8kidcard/A8kPiecewiseFn.java index ea049e9..0d1246d 100644 --- a/src/main/java/a8k/app/dao/type/a8kidcard/A8kPiecewiseFn.java +++ b/src/main/java/a8k/app/optalgo/type/a8kidcard/A8kPiecewiseFn.java @@ -1,6 +1,6 @@ -package a8k.app.dao.type.a8kidcard; +package a8k.app.optalgo.type.a8kidcard; -import a8k.app.a8ktype.opttype.A8kOptX; +import a8k.app.optalgo.type.A8kOptX; import java.io.Serializable; diff --git a/src/main/java/a8k/app/dao/type/a8kidcard/A8kResultBuilderFn.java b/src/main/java/a8k/app/optalgo/type/a8kidcard/A8kResultBuilderFn.java similarity index 94% rename from src/main/java/a8k/app/dao/type/a8kidcard/A8kResultBuilderFn.java rename to src/main/java/a8k/app/optalgo/type/a8kidcard/A8kResultBuilderFn.java index d873bbf..55a179a 100644 --- a/src/main/java/a8k/app/dao/type/a8kidcard/A8kResultBuilderFn.java +++ b/src/main/java/a8k/app/optalgo/type/a8kidcard/A8kResultBuilderFn.java @@ -1,6 +1,6 @@ -package a8k.app.dao.type.a8kidcard; +package a8k.app.optalgo.type.a8kidcard; -import a8k.app.dao.type.a8kidcard.zenum.A8kResultUnit; +import a8k.app.optalgo.type.a8kidcard.zenum.A8kResultUnit; import java.io.Serializable; import java.util.ArrayList; diff --git a/src/main/java/a8k/app/dao/type/a8kidcard/A8kResultUnitConverter.java b/src/main/java/a8k/app/optalgo/type/a8kidcard/A8kResultUnitConverter.java similarity index 90% rename from src/main/java/a8k/app/dao/type/a8kidcard/A8kResultUnitConverter.java rename to src/main/java/a8k/app/optalgo/type/a8kidcard/A8kResultUnitConverter.java index 6d72605..834f1b8 100644 --- a/src/main/java/a8k/app/dao/type/a8kidcard/A8kResultUnitConverter.java +++ b/src/main/java/a8k/app/optalgo/type/a8kidcard/A8kResultUnitConverter.java @@ -1,6 +1,6 @@ -package a8k.app.dao.type.a8kidcard; +package a8k.app.optalgo.type.a8kidcard; -import a8k.app.dao.type.a8kidcard.zenum.A8kResultUnit; +import a8k.app.optalgo.type.a8kidcard.zenum.A8kResultUnit; import java.io.Serializable; diff --git a/src/main/java/a8k/app/dao/type/a8kidcard/zenum/A8kFnType.java b/src/main/java/a8k/app/optalgo/type/a8kidcard/zenum/A8kFnType.java similarity index 87% rename from src/main/java/a8k/app/dao/type/a8kidcard/zenum/A8kFnType.java rename to src/main/java/a8k/app/optalgo/type/a8kidcard/zenum/A8kFnType.java index cabfce8..71adb48 100644 --- a/src/main/java/a8k/app/dao/type/a8kidcard/zenum/A8kFnType.java +++ b/src/main/java/a8k/app/optalgo/type/a8kidcard/zenum/A8kFnType.java @@ -1,4 +1,4 @@ -package a8k.app.dao.type.a8kidcard.zenum; +package a8k.app.optalgo.type.a8kidcard.zenum; public enum A8kFnType { NormalFn(1),//正常函数 diff --git a/src/main/java/a8k/app/optalgo/type/a8kidcard/zenum/A8kOptType.java b/src/main/java/a8k/app/optalgo/type/a8kidcard/zenum/A8kOptType.java new file mode 100644 index 0000000..f054d25 --- /dev/null +++ b/src/main/java/a8k/app/optalgo/type/a8kidcard/zenum/A8kOptType.java @@ -0,0 +1,6 @@ +package a8k.app.optalgo.type.a8kidcard.zenum; + +public enum A8kOptType { + FOPT, + TOPT, +} diff --git a/src/main/java/a8k/app/dao/type/a8kidcard/zenum/A8kReactionFlowType.java b/src/main/java/a8k/app/optalgo/type/a8kidcard/zenum/A8kReactionFlowType.java similarity index 94% rename from src/main/java/a8k/app/dao/type/a8kidcard/zenum/A8kReactionFlowType.java rename to src/main/java/a8k/app/optalgo/type/a8kidcard/zenum/A8kReactionFlowType.java index b02f0f4..a555bdc 100644 --- a/src/main/java/a8k/app/dao/type/a8kidcard/zenum/A8kReactionFlowType.java +++ b/src/main/java/a8k/app/optalgo/type/a8kidcard/zenum/A8kReactionFlowType.java @@ -1,4 +1,4 @@ -package a8k.app.dao.type.a8kidcard.zenum; +package a8k.app.optalgo.type.a8kidcard.zenum; public enum A8kReactionFlowType { /** diff --git a/src/main/java/a8k/app/dao/type/a8kidcard/zenum/A8kResultUnit.java b/src/main/java/a8k/app/optalgo/type/a8kidcard/zenum/A8kResultUnit.java similarity index 96% rename from src/main/java/a8k/app/dao/type/a8kidcard/zenum/A8kResultUnit.java rename to src/main/java/a8k/app/optalgo/type/a8kidcard/zenum/A8kResultUnit.java index 494330c..b11f168 100644 --- a/src/main/java/a8k/app/dao/type/a8kidcard/zenum/A8kResultUnit.java +++ b/src/main/java/a8k/app/optalgo/type/a8kidcard/zenum/A8kResultUnit.java @@ -1,4 +1,4 @@ -package a8k.app.dao.type.a8kidcard.zenum; +package a8k.app.optalgo.type.a8kidcard.zenum; public enum A8kResultUnit { Original(0, ""), diff --git a/src/main/java/a8k/app/a8kproj/optalgo/utils/A8kOptGainAdjuster.java b/src/main/java/a8k/app/optalgo/utils/A8kOptGainAdjuster.java similarity index 95% rename from src/main/java/a8k/app/a8kproj/optalgo/utils/A8kOptGainAdjuster.java rename to src/main/java/a8k/app/optalgo/utils/A8kOptGainAdjuster.java index 976ee1e..ce78f0e 100644 --- a/src/main/java/a8k/app/a8kproj/optalgo/utils/A8kOptGainAdjuster.java +++ b/src/main/java/a8k/app/optalgo/utils/A8kOptGainAdjuster.java @@ -1,4 +1,4 @@ -package a8k.app.a8kproj.optalgo.utils; +package a8k.app.optalgo.utils; import org.springframework.util.Assert; diff --git a/src/main/java/a8k/app/a8kproj/optalgo/type/OptAlgoAnalysResult.java b/src/main/java/a8k/app/optalgo/utils/A8kOptPeakInfoBuilder.java similarity index 50% rename from src/main/java/a8k/app/a8kproj/optalgo/type/OptAlgoAnalysResult.java rename to src/main/java/a8k/app/optalgo/utils/A8kOptPeakInfoBuilder.java index 482435c..e32fd8f 100644 --- a/src/main/java/a8k/app/a8kproj/optalgo/type/OptAlgoAnalysResult.java +++ b/src/main/java/a8k/app/optalgo/utils/A8kOptPeakInfoBuilder.java @@ -1,32 +1,14 @@ -package a8k.app.a8kproj.optalgo.type; +package a8k.app.optalgo.utils; -import a8k.app.a8kproj.optalgo.version.OptAlogVersion; -import a8k.app.a8kproj.optanalyzer.PeakDivisionComputer; -import a8k.app.a8ktype.opttype.PeakDivision; -import a8k.app.a8ktype.opttype.PeakName; +import a8k.app.optalgo.type.A8kOptPeaks; +import a8k.app.optalgo.type.A8kOptPeakInfo; +import a8k.app.optalgo.type.PeakDivision; +import a8k.app.optalgo.type.PeakName; +import a8k.app.optalgo.version.OptAlogVersion; -public class OptAlgoAnalysResult { - - public String algoVersion = ""; - - public double[] resultData; // 250 POINT - - public A8kOptPeak T4; - public A8kOptPeak R; - public A8kOptPeak H; - public A8kOptPeak T; - public A8kOptPeak C; - - public Double pdR; //1 - public Double pdAR; //2 - public Double pdATR; //3 - public Double pdRFR; //5 - public Double pdT4R; //6 - public Double pdT4T3R; //7 - - - static public OptAlgoAnalysResult build(double[] resultData, A8kOptPeaks peaks) { - OptAlgoAnalysResult result = new OptAlgoAnalysResult(); +public class A8kOptPeakInfoBuilder { + static public A8kOptPeakInfo build(double[] resultData, A8kOptPeaks peaks) { + A8kOptPeakInfo result = new A8kOptPeakInfo(); result.resultData = resultData; result.T4 = peaks.findPeak(PeakName.T4); result.R = peaks.findPeak(PeakName.R); @@ -42,5 +24,4 @@ public class OptAlgoAnalysResult { result.algoVersion = OptAlogVersion.version; return result; } - } diff --git a/src/main/java/a8k/app/a8kproj/optanalyzer/A8kOptXGetter.java b/src/main/java/a8k/app/optalgo/utils/A8kOptXGetter.java similarity index 57% rename from src/main/java/a8k/app/a8kproj/optanalyzer/A8kOptXGetter.java rename to src/main/java/a8k/app/optalgo/utils/A8kOptXGetter.java index 1c75b55..4ab0e47 100644 --- a/src/main/java/a8k/app/a8kproj/optanalyzer/A8kOptXGetter.java +++ b/src/main/java/a8k/app/optalgo/utils/A8kOptXGetter.java @@ -1,28 +1,28 @@ -package a8k.app.a8kproj.optanalyzer; +package a8k.app.optalgo.utils; -import a8k.app.a8kproj.optalgo.type.OptAlgoAnalysResult; -import a8k.app.a8kproj.optanalyzer.exception.A8kOptProcessException; -import a8k.app.a8ktype.opttype.A8kOptX; -import a8k.app.a8ktype.opttype.PeakDivision; +import a8k.app.optalgo.type.A8kOptPeakInfo; +import a8k.app.optalgo.type.A8kOptProcessException; +import a8k.app.optalgo.type.A8kOptX; +import a8k.app.optalgo.type.PeakDivision; import a8k.app.dao.type.OptCfg; -import a8k.app.a8ktype.opttype.ReactionResultStatus; +import a8k.app.optalgo.type.ReactionResultStatus; public class A8kOptXGetter { static class Context { - OptCfg optcfg; - OptAlgoAnalysResult optAlgoAnalysResult; + OptCfg optcfg; + A8kOptPeakInfo optAlgoAnalysResult; } static private Double getPeakDivision(Context cxt, PeakDivision pdtype) throws A8kOptProcessException { - OptAlgoAnalysResult optAlgoAnalysResult = cxt.optAlgoAnalysResult; + A8kOptPeakInfo a8kOptPeakInfo = cxt.optAlgoAnalysResult; Double val = switch (pdtype) { - case R -> optAlgoAnalysResult.pdR; - case AR -> optAlgoAnalysResult.pdAR; - case ATR -> optAlgoAnalysResult.pdATR; - case RFR -> optAlgoAnalysResult.pdRFR; - case T4R -> optAlgoAnalysResult.pdT4R; - case T4T3R -> optAlgoAnalysResult.pdT4T3R; + case R -> a8kOptPeakInfo.pdR; + case AR -> a8kOptPeakInfo.pdAR; + case ATR -> a8kOptPeakInfo.pdATR; + case RFR -> a8kOptPeakInfo.pdRFR; + case T4R -> a8kOptPeakInfo.pdT4R; + case T4T3R -> a8kOptPeakInfo.pdT4T3R; }; OptChecker.checkPeakDevision(pdtype, val); @@ -38,11 +38,11 @@ public class A8kOptXGetter { return result; } - static public Double getX(A8kOptX xType, OptCfg optcfg, OptAlgoAnalysResult optAlgoAnalysResult) throws A8kOptProcessException { + static public Double getX(A8kOptX xType, OptCfg optcfg, A8kOptPeakInfo a8kOptPeakInfo) throws A8kOptProcessException { Context cxt = new Context(); cxt.optcfg = optcfg; - cxt.optAlgoAnalysResult = optAlgoAnalysResult; + cxt.optAlgoAnalysResult = a8kOptPeakInfo; /* * 根据项目获取未知数X diff --git a/src/main/java/a8k/app/a8kproj/optanalyzer/OptChecker.java b/src/main/java/a8k/app/optalgo/utils/OptChecker.java similarity index 86% rename from src/main/java/a8k/app/a8kproj/optanalyzer/OptChecker.java rename to src/main/java/a8k/app/optalgo/utils/OptChecker.java index 2149435..bc66f3a 100644 --- a/src/main/java/a8k/app/a8kproj/optanalyzer/OptChecker.java +++ b/src/main/java/a8k/app/optalgo/utils/OptChecker.java @@ -1,11 +1,11 @@ -package a8k.app.a8kproj.optanalyzer; - -import a8k.app.a8kproj.optalgo.type.A8kOptPeak; -import a8k.app.a8kproj.optalgo.type.PeakFindState; -import a8k.app.a8kproj.optanalyzer.exception.A8kOptProcessException; -import a8k.app.a8ktype.opttype.PeakDivision; -import a8k.app.a8ktype.opttype.PeakName; -import a8k.app.a8ktype.opttype.ReactionResultStatus; +package a8k.app.optalgo.utils; + +import a8k.app.optalgo.type.A8kOptPeak; +import a8k.app.optalgo.type.PeakFindState; +import a8k.app.optalgo.type.A8kOptProcessException; +import a8k.app.optalgo.type.PeakDivision; +import a8k.app.optalgo.type.PeakName; +import a8k.app.optalgo.type.ReactionResultStatus; public class OptChecker { diff --git a/src/main/java/a8k/app/a8kproj/optanalyzer/PeakDivisionComputer.java b/src/main/java/a8k/app/optalgo/utils/PeakDivisionComputer.java similarity index 56% rename from src/main/java/a8k/app/a8kproj/optanalyzer/PeakDivisionComputer.java rename to src/main/java/a8k/app/optalgo/utils/PeakDivisionComputer.java index c90cc7b..4c48672 100644 --- a/src/main/java/a8k/app/a8kproj/optanalyzer/PeakDivisionComputer.java +++ b/src/main/java/a8k/app/optalgo/utils/PeakDivisionComputer.java @@ -1,13 +1,10 @@ -package a8k.app.a8kproj.optanalyzer; +package a8k.app.optalgo.utils; -import a8k.app.a8kproj.optalgo.type.A8kOptPeak; -import a8k.app.a8kproj.optalgo.type.A8kOptPeaks; -import a8k.app.a8ktype.opttype.PeakDivision; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import a8k.app.optalgo.type.A8kOptPeak; +import a8k.app.optalgo.type.A8kOptPeaks; +import a8k.app.optalgo.type.PeakDivision; public class PeakDivisionComputer { - private static final Logger log = LoggerFactory.getLogger(PeakDivisionComputer.class); public static Double computePeakDivision(PeakDivision pdtype, A8kOptPeaks peaks) { A8kOptPeak numerator = peaks.findPeak(pdtype.numerator); diff --git a/src/main/java/a8k/app/a8kproj/optanalyzer/PeakNameAssigner.java b/src/main/java/a8k/app/optalgo/utils/PeakNameAssigner.java similarity index 89% rename from src/main/java/a8k/app/a8kproj/optanalyzer/PeakNameAssigner.java rename to src/main/java/a8k/app/optalgo/utils/PeakNameAssigner.java index a774768..a733e00 100644 --- a/src/main/java/a8k/app/a8kproj/optanalyzer/PeakNameAssigner.java +++ b/src/main/java/a8k/app/optalgo/utils/PeakNameAssigner.java @@ -1,7 +1,7 @@ -package a8k.app.a8kproj.optanalyzer; +package a8k.app.optalgo.utils; -import a8k.app.a8kproj.optalgo.type.A8kOptPeaks; -import a8k.app.a8ktype.opttype.PeakName; +import a8k.app.optalgo.type.A8kOptPeaks; +import a8k.app.optalgo.type.PeakName; import lombok.extern.slf4j.Slf4j; @Slf4j diff --git a/src/main/java/a8k/app/a8kproj/optalgo/version/OptAlogVersion.java b/src/main/java/a8k/app/optalgo/version/OptAlogVersion.java similarity index 66% rename from src/main/java/a8k/app/a8kproj/optalgo/version/OptAlogVersion.java rename to src/main/java/a8k/app/optalgo/version/OptAlogVersion.java index e730726..dea89f9 100644 --- a/src/main/java/a8k/app/a8kproj/optalgo/version/OptAlogVersion.java +++ b/src/main/java/a8k/app/optalgo/version/OptAlogVersion.java @@ -1,4 +1,4 @@ -package a8k.app.a8kproj.optalgo.version; +package a8k.app.optalgo.version; public class OptAlogVersion { static public final String version = "1.0.0"; diff --git a/src/main/java/a8k/app/service/data/FileMgrService.java b/src/main/java/a8k/app/service/data/FileMgrService.java index 28fcb6a..6cdc596 100644 --- a/src/main/java/a8k/app/service/data/FileMgrService.java +++ b/src/main/java/a8k/app/service/data/FileMgrService.java @@ -1,15 +1,15 @@ package a8k.app.service.data; -import a8k.app.a8kproj.optalgo.type.A8kOptPeak; -import a8k.app.a8kproj.optalgo.type.OptAlgoAnalysResult; -import a8k.app.a8kproj.optalgo.type.OptScanResult; -import a8k.app.a8kproj.optalgo.type.PeakFindState; -import a8k.app.a8ktype.opttype.PeakDivision; -import a8k.app.a8ktype.opttype.PeakName; +import a8k.app.optalgo.type.A8kOptPeak; +import a8k.app.optalgo.type.A8kOptPeakInfo; +import a8k.app.optalgo.type.OptScanResult; +import a8k.app.optalgo.type.PeakFindState; +import a8k.app.optalgo.type.PeakDivision; +import a8k.app.optalgo.type.PeakName; import a8k.app.constant.FilePathConstant; import a8k.app.controler.filemgr.StorageControler; import a8k.app.dao.type.OptRawScanData; -import a8k.app.dao.type.a8kidcard.zenum.A8kOptType; +import a8k.app.optalgo.type.a8kidcard.zenum.A8kOptType; import a8k.app.utils.ZDateUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -200,30 +200,30 @@ public class FileMgrService { data.rawData[i] = i; } - OptAlgoAnalysResult optAlgoAnalysResult = new OptAlgoAnalysResult(); - optAlgoAnalysResult.T4 = new A8kOptPeak(PeakFindState.FIND_PEAK, PeakName.T4, 0, 1.1, 40, 0, 80); - optAlgoAnalysResult.R = new A8kOptPeak(PeakFindState.FIND_PEAK, PeakName.R, 0, 1.1, 80, 40, 120); - optAlgoAnalysResult.H = null; - optAlgoAnalysResult.T = new A8kOptPeak(PeakFindState.FIND_PEAK, PeakName.T, 0, 1.1, 160, 120, 200); - optAlgoAnalysResult.C = new A8kOptPeak(PeakFindState.FIND_PEAK, PeakName.C, 0, 1.1, 200, 160, 240); - optAlgoAnalysResult.pdR = 1.1; - optAlgoAnalysResult.pdAR = 1.2; - optAlgoAnalysResult.pdATR = 1.3; - optAlgoAnalysResult.pdRFR = 1.4; - optAlgoAnalysResult.pdT4R = 1.5; - optAlgoAnalysResult.pdT4T3R = 1.6; + A8kOptPeakInfo a8kOptPeakInfo = new A8kOptPeakInfo(); + a8kOptPeakInfo.T4 = new A8kOptPeak(PeakFindState.FIND_PEAK, PeakName.T4, 0, 1.1, 40, 0, 80); + a8kOptPeakInfo.R = new A8kOptPeak(PeakFindState.FIND_PEAK, PeakName.R, 0, 1.1, 80, 40, 120); + a8kOptPeakInfo.H = null; + a8kOptPeakInfo.T = new A8kOptPeak(PeakFindState.FIND_PEAK, PeakName.T, 0, 1.1, 160, 120, 200); + a8kOptPeakInfo.C = new A8kOptPeak(PeakFindState.FIND_PEAK, PeakName.C, 0, 1.1, 200, 160, 240); + a8kOptPeakInfo.pdR = 1.1; + a8kOptPeakInfo.pdAR = 1.2; + a8kOptPeakInfo.pdATR = 1.3; + a8kOptPeakInfo.pdRFR = 1.4; + a8kOptPeakInfo.pdT4R = 1.5; + a8kOptPeakInfo.pdT4T3R = 1.6; // optAlgoAnalysResult.rawData = new Integer[1200]; // for (int i = 0; i < 1200; i++) { // optAlgoAnalysResult.rawData[i] = i; // } - optAlgoAnalysResult.resultData = new double[250]; + a8kOptPeakInfo.resultData = new double[250]; for (int i = 0; i < 250; i++) { - optAlgoAnalysResult.resultData[i] = i; + a8kOptPeakInfo.resultData[i] = i; } OptScanResult optScanResult = new OptScanResult(); optScanResult.rawData = data; - optScanResult.analysResult = optAlgoAnalysResult; + optScanResult.analysResult = a8kOptPeakInfo; String path = storageOptReport("Fake( xxxx)", 1, optScanResult); log.info("createFakeOptReport success {}", path); diff --git a/src/main/java/a8k/app/service/data/ProjIdCardInfoMgrService.java b/src/main/java/a8k/app/service/data/ProjIdCardInfoMgrService.java index d33fcca..e8c7dbd 100644 --- a/src/main/java/a8k/app/service/data/ProjIdCardInfoMgrService.java +++ b/src/main/java/a8k/app/service/data/ProjIdCardInfoMgrService.java @@ -2,14 +2,14 @@ package a8k.app.service.data; import a8k.app.a8ktype.exception.AppException; -import a8k.app.a8ktype.opttype.A8kOptX; +import a8k.app.optalgo.type.A8kOptX; import a8k.app.dao.A8kProjExtInfoCardDao; -import a8k.app.dao.type.a8kidcard.A8kNormalFn; -import a8k.app.dao.type.a8kidcard.A8kOptFnFormula; -import a8k.app.dao.type.a8kidcard.A8kPiecewiseFn; -import a8k.app.dao.type.a8kidcard.A8kResultBuilderFn; -import a8k.app.dao.type.a8kidcard.zenum.A8kFnType; -import a8k.app.dao.type.a8kidcard.zenum.A8kResultUnit; +import a8k.app.optalgo.type.a8kidcard.A8kNormalFn; +import a8k.app.optalgo.type.a8kidcard.A8kOptFnFormula; +import a8k.app.optalgo.type.a8kidcard.A8kPiecewiseFn; +import a8k.app.optalgo.type.a8kidcard.A8kResultBuilderFn; +import a8k.app.optalgo.type.a8kidcard.zenum.A8kFnType; +import a8k.app.optalgo.type.a8kidcard.zenum.A8kResultUnit; import a8k.app.hardware.type.a8kcanprotocol.A8kEcode; import a8k.app.service.lowerctrl.ProjIDCardCtrlAndMonitorService; import a8k.app.service.statemgr.GStateMgrService; diff --git a/src/main/java/a8k/app/service/data/ReactionRecordMgrService.java b/src/main/java/a8k/app/service/data/ReactionRecordMgrService.java index 0b52854..ad5f3c5 100644 --- a/src/main/java/a8k/app/service/data/ReactionRecordMgrService.java +++ b/src/main/java/a8k/app/service/data/ReactionRecordMgrService.java @@ -1,6 +1,6 @@ package a8k.app.service.data; -import a8k.app.a8kproj.optalgo.type.OptScanResult; +import a8k.app.optalgo.type.OptScanResult; import a8k.app.a8ktype.state.SampleInfo; import a8k.app.dao.ReactionReportDao; import a8k.app.dao.type.ReactionReport; diff --git a/src/main/java/a8k/app/service/lowerctrl/OptScanModuleCtrlService.java b/src/main/java/a8k/app/service/lowerctrl/OptScanModuleCtrlService.java index 709a0a4..2a310ec 100644 --- a/src/main/java/a8k/app/service/lowerctrl/OptScanModuleCtrlService.java +++ b/src/main/java/a8k/app/service/lowerctrl/OptScanModuleCtrlService.java @@ -1,10 +1,10 @@ package a8k.app.service.lowerctrl; -import a8k.app.a8kproj.optalgo.type.OptAlgoAnalysResult; +import a8k.app.optalgo.type.A8kOptPeakInfo; import a8k.app.constant.OptConstant; -import a8k.app.a8kproj.optalgo.A8kOptAlgoV2; -import a8k.app.a8kproj.optalgo.type.OptScanResult; -import a8k.app.a8kproj.optalgo.utils.A8kOptGainAdjuster; +import a8k.app.optalgo.A8kOptCurveAnalyzer; +import a8k.app.optalgo.type.OptScanResult; +import a8k.app.optalgo.utils.A8kOptGainAdjuster; import a8k.app.hardware.driver.OptModuleDriver; import a8k.app.hardware.driver.StepMotorCtrlDriver; import a8k.app.hardware.driver.type.OptModuleRegIndex; @@ -13,9 +13,9 @@ import a8k.app.service.bases.UIMessage; import a8k.app.service.param.optparam.OptModuleExtParamsMgr; import a8k.app.service.param.optparam.OptModuleParamsMgr; import a8k.app.dao.type.OptRawScanData; -import a8k.app.dao.type.a8kidcard.zenum.A8kOptType; +import a8k.app.optalgo.type.a8kidcard.zenum.A8kOptType; import a8k.app.a8ktype.device.IncubatorPos; -import a8k.app.a8ktype.opttype.OptScanDirection; +import a8k.app.optalgo.type.OptScanDirection; import a8k.app.a8ktype.exception.AppException; import a8k.app.utils.ProjBuildinInfo; import a8k.app.hardware.utils.OptGainConvert; @@ -150,13 +150,13 @@ public class OptScanModuleCtrlService { public OptScanResult optScan(ProjBuildinInfo projBuildinInfo, Integer subProjIndex) throws AppException { UIMessage.info(log, "光学扫描"); - A8kOptAlgoV2 a8kOptAlgoV2 = new A8kOptAlgoV2(); + A8kOptCurveAnalyzer a8KOptCurveAnalyzer = new A8kOptCurveAnalyzer(); OptScanResult result = new OptScanResult(); result.scanDate = new Date(); - OptRawScanData rawData = doOptScan(projBuildinInfo.optcfg.get(subProjIndex).optType); - OptAlgoAnalysResult analysResult = a8kOptAlgoV2.processOptData(projBuildinInfo, projBuildinInfo.optcfg.get(subProjIndex), rawData.rawData); + OptRawScanData rawData = doOptScan(projBuildinInfo.optcfg.get(subProjIndex).optType); + A8kOptPeakInfo analysResult = a8KOptCurveAnalyzer.analysCurve(projBuildinInfo.projId, projBuildinInfo.optcfg.get(subProjIndex), rawData.rawData); result.rawData = rawData; result.analysResult = analysResult; diff --git a/src/main/java/a8k/app/service/mainctrl/AppConsumablesScanService.java b/src/main/java/a8k/app/service/mainctrl/AppConsumablesScanService.java index e86c4a2..3cedbbe 100644 --- a/src/main/java/a8k/app/service/mainctrl/AppConsumablesScanService.java +++ b/src/main/java/a8k/app/service/mainctrl/AppConsumablesScanService.java @@ -16,7 +16,7 @@ import a8k.app.a8ktype.device.consumables.LittBottleGroup; import a8k.app.a8ktype.device.consumables.ReactionPlateGroup; import a8k.app.a8ktype.error.ConsumablesScanReportErrorType; import a8k.app.a8ktype.exception.AppException; -import a8k.app.dao.type.a8kidcard.zenum.A8kReactionFlowType; +import a8k.app.optalgo.type.a8kidcard.zenum.A8kReactionFlowType; import a8k.app.utils.*; import jakarta.annotation.Resource; import org.slf4j.Logger; diff --git a/src/main/java/a8k/app/service/mainctrl/mainflowctrl/action/AC20ScanReactionPlate.java b/src/main/java/a8k/app/service/mainctrl/mainflowctrl/action/AC20ScanReactionPlate.java index 89167a4..ce3edae 100644 --- a/src/main/java/a8k/app/service/mainctrl/mainflowctrl/action/AC20ScanReactionPlate.java +++ b/src/main/java/a8k/app/service/mainctrl/mainflowctrl/action/AC20ScanReactionPlate.java @@ -1,7 +1,7 @@ package a8k.app.service.mainctrl.mainflowctrl.action; -import a8k.app.a8kproj.A8kReactionResultComputer; -import a8k.app.a8kproj.optalgo.type.OptScanResult; +import a8k.app.optalgo.A8kPeakAnalyzer; +import a8k.app.optalgo.type.OptScanResult; import a8k.app.a8ktype.DeviceRunMode; import a8k.app.service.mainctrl.mainflowctrl.base.A8kActionTask; @@ -12,7 +12,7 @@ import a8k.app.service.statemgr.OptScanModuleStateMgrService; import a8k.app.service.statemgr.ProjectContextMgrService; import a8k.app.a8ktype.state.ProjectTaskContext; import a8k.app.service.lowerctrl.OptScanModuleCtrlService; -import a8k.app.dao.type.a8kidcard.zenum.A8kOptType; +import a8k.app.optalgo.type.a8kidcard.zenum.A8kOptType; import a8k.app.teststate.VirtualDevice; import a8k.app.factory.FakeReactionResultFactory; import a8k.app.a8ktype.type.ReactionResult; @@ -89,7 +89,7 @@ public class AC20ScanReactionPlate extends A8kActionTask { cxt.setOptScanResult(optType, optScanResult); } - ReactionResult result = A8kReactionResultComputer.optComputeResult(cxt.getSampleInfo(), ProjInfoUtils.buildProjInfo(cxt), i, optScanResult.analysResult); + ReactionResult result = A8kPeakAnalyzer.analysisPeakInfo(cxt.getSampleInfo(), ProjInfoUtils.buildProjInfo(cxt), i, optScanResult.analysResult); reactionResults.add(result); } diff --git a/src/main/java/a8k/app/service/mainctrl/mainflowctrl/action/AC41ProcessSample.java b/src/main/java/a8k/app/service/mainctrl/mainflowctrl/action/AC41ProcessSample.java index 59c85da..6fe7fe6 100644 --- a/src/main/java/a8k/app/service/mainctrl/mainflowctrl/action/AC41ProcessSample.java +++ b/src/main/java/a8k/app/service/mainctrl/mainflowctrl/action/AC41ProcessSample.java @@ -13,7 +13,7 @@ import a8k.app.a8ktype.state.Tube; import a8k.app.a8ktype.state.TubeHolder; import a8k.app.a8ktype.state.enumtype.TubeState; import a8k.app.service.mainctrl.erroranalyzer.ErrorProcessor; -import a8k.app.dao.type.a8kidcard.zenum.A8kReactionFlowType; +import a8k.app.optalgo.type.a8kidcard.zenum.A8kReactionFlowType; import a8k.app.utils.ActionTaskPool; import a8k.app.utils.ZList; import a8k.app.teststate.VirtualDevice; diff --git a/src/main/java/a8k/app/service/param/optparam/OptModuleExtParamsMgr.java b/src/main/java/a8k/app/service/param/optparam/OptModuleExtParamsMgr.java index 2589e76..7c79389 100644 --- a/src/main/java/a8k/app/service/param/optparam/OptModuleExtParamsMgr.java +++ b/src/main/java/a8k/app/service/param/optparam/OptModuleExtParamsMgr.java @@ -3,7 +3,7 @@ package a8k.app.service.param.optparam; import a8k.app.service.param.base.ParamMgr; import a8k.app.a8ktype.param.optpos.OptModuleExtParam; -import a8k.app.dao.type.a8kidcard.zenum.A8kOptType; +import a8k.app.optalgo.type.a8kidcard.zenum.A8kOptType; import jakarta.annotation.PostConstruct; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/a8k/app/utils/ProjBuildinInfo.java b/src/main/java/a8k/app/utils/ProjBuildinInfo.java index a161819..4a1b58d 100644 --- a/src/main/java/a8k/app/utils/ProjBuildinInfo.java +++ b/src/main/java/a8k/app/utils/ProjBuildinInfo.java @@ -2,8 +2,8 @@ package a8k.app.utils; import a8k.app.dao.type.OptCfg; import a8k.app.dao.type.ProjectBaseInfo; -import a8k.app.dao.type.a8kidcard.zenum.A8kOptType; -import a8k.app.dao.type.a8kidcard.zenum.A8kReactionFlowType; +import a8k.app.optalgo.type.a8kidcard.zenum.A8kOptType; +import a8k.app.optalgo.type.a8kidcard.zenum.A8kReactionFlowType; import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import org.slf4j.Logger; diff --git a/src/main/java/a8k/app/utils/ProjInfoUtils.java b/src/main/java/a8k/app/utils/ProjInfoUtils.java index ca66375..1fbd46e 100644 --- a/src/main/java/a8k/app/utils/ProjInfoUtils.java +++ b/src/main/java/a8k/app/utils/ProjInfoUtils.java @@ -2,7 +2,7 @@ package a8k.app.utils; import a8k.app.a8ktype.state.ProjectTaskContext; import a8k.app.dao.type.ProjExtInfoCard; -import a8k.app.dao.type.a8kidcard.A8kOptFnFormula; +import a8k.app.optalgo.type.a8kidcard.A8kOptFnFormula; import a8k.app.a8ktype.type.ProjBriefInfo; import java.util.ArrayList; diff --git a/src/main/java/a8k/extui/factory/FakeOptScanResultFactory.java b/src/main/java/a8k/extui/factory/FakeOptScanResultFactory.java index 3799af7..1555481 100644 --- a/src/main/java/a8k/extui/factory/FakeOptScanResultFactory.java +++ b/src/main/java/a8k/extui/factory/FakeOptScanResultFactory.java @@ -1,12 +1,12 @@ package a8k.extui.factory; -import a8k.app.a8kproj.optalgo.type.A8kOptPeak; -import a8k.app.a8kproj.optalgo.type.OptAlgoAnalysResult; -import a8k.app.a8kproj.optalgo.type.OptScanResult; -import a8k.app.a8kproj.optalgo.type.PeakFindState; -import a8k.app.a8ktype.opttype.PeakName; +import a8k.app.optalgo.type.A8kOptPeak; +import a8k.app.optalgo.type.A8kOptPeakInfo; +import a8k.app.optalgo.type.OptScanResult; +import a8k.app.optalgo.type.PeakFindState; +import a8k.app.optalgo.type.PeakName; import a8k.app.dao.type.OptRawScanData; -import a8k.app.dao.type.a8kidcard.zenum.A8kOptType; +import a8k.app.optalgo.type.a8kidcard.zenum.A8kOptType; import java.util.Date; @@ -34,25 +34,25 @@ public class FakeOptScanResultFactory { optScanResult.rawData = rawData; //OptAlgoAnalysResult - OptAlgoAnalysResult optAlgoAnalysResult = new OptAlgoAnalysResult(); - optAlgoAnalysResult.T4 = new A8kOptPeak(PeakFindState.FIND_PEAK, PeakName.T4, 0, 1.1, 40, 0, 80); - optAlgoAnalysResult.R = new A8kOptPeak(PeakFindState.FIND_PEAK, PeakName.R, 0, 1.1, 80, 40, 120); - optAlgoAnalysResult.H = null; - optAlgoAnalysResult.T = new A8kOptPeak(PeakFindState.FIND_PEAK, PeakName.T, 0, 1.1, 160, 120, 200); - optAlgoAnalysResult.C = new A8kOptPeak(PeakFindState.FIND_PEAK, PeakName.C, 0, 1.1, 200, 160, 240); - optAlgoAnalysResult.pdR = 1.1; - optAlgoAnalysResult.pdAR = 1.2; - optAlgoAnalysResult.pdATR = 1.3; - optAlgoAnalysResult.pdRFR = 1.4; - optAlgoAnalysResult.pdT4R = 1.5; - optAlgoAnalysResult.pdT4T3R = 1.6; - optAlgoAnalysResult.resultData = new double[250]; + A8kOptPeakInfo a8kOptPeakInfo = new A8kOptPeakInfo(); + a8kOptPeakInfo.T4 = new A8kOptPeak(PeakFindState.FIND_PEAK, PeakName.T4, 0, 1.1, 40, 0, 80); + a8kOptPeakInfo.R = new A8kOptPeak(PeakFindState.FIND_PEAK, PeakName.R, 0, 1.1, 80, 40, 120); + a8kOptPeakInfo.H = null; + a8kOptPeakInfo.T = new A8kOptPeak(PeakFindState.FIND_PEAK, PeakName.T, 0, 1.1, 160, 120, 200); + a8kOptPeakInfo.C = new A8kOptPeak(PeakFindState.FIND_PEAK, PeakName.C, 0, 1.1, 200, 160, 240); + a8kOptPeakInfo.pdR = 1.1; + a8kOptPeakInfo.pdAR = 1.2; + a8kOptPeakInfo.pdATR = 1.3; + a8kOptPeakInfo.pdRFR = 1.4; + a8kOptPeakInfo.pdT4R = 1.5; + a8kOptPeakInfo.pdT4T3R = 1.6; + a8kOptPeakInfo.resultData = new double[250]; for (int i = 0; i < 250; i++) { - optAlgoAnalysResult.resultData[i] = optType.equals(A8kOptType.FOPT) ? i : 250 - i; + a8kOptPeakInfo.resultData[i] = optType.equals(A8kOptType.FOPT) ? i : 250 - i; } - optScanResult.analysResult = optAlgoAnalysResult; + optScanResult.analysResult = a8kOptPeakInfo; //return return optScanResult; diff --git a/src/main/java/a8k/extui/factory/ProjExtInfoCardFactory.java b/src/main/java/a8k/extui/factory/ProjExtInfoCardFactory.java index 998baf5..9f93af7 100644 --- a/src/main/java/a8k/extui/factory/ProjExtInfoCardFactory.java +++ b/src/main/java/a8k/extui/factory/ProjExtInfoCardFactory.java @@ -3,11 +3,11 @@ package a8k.extui.factory; import a8k.SpringBootBeanUtil; import a8k.app.a8ktype.exception.AppException; import a8k.app.dao.type.ProjExtInfoCard; -import a8k.app.dao.type.a8kidcard.A8kNormalFn; -import a8k.app.dao.type.a8kidcard.A8kOptFnFormula; -import a8k.app.dao.type.a8kidcard.A8kPiecewiseFn; -import a8k.app.dao.type.a8kidcard.A8kResultBuilderFn; -import a8k.app.dao.type.a8kidcard.zenum.A8kFnType; +import a8k.app.optalgo.type.a8kidcard.A8kNormalFn; +import a8k.app.optalgo.type.a8kidcard.A8kOptFnFormula; +import a8k.app.optalgo.type.a8kidcard.A8kPiecewiseFn; +import a8k.app.optalgo.type.a8kidcard.A8kResultBuilderFn; +import a8k.app.optalgo.type.a8kidcard.zenum.A8kFnType; import a8k.app.service.data.ProjInfoMgrService; import a8k.app.utils.ProjBuildinInfo; diff --git a/src/main/java/a8k/extui/page/extapp/A8kOptVerification.java b/src/main/java/a8k/extui/page/extapp/A8kOptVerification.java index 589d307..6f5160c 100644 --- a/src/main/java/a8k/extui/page/extapp/A8kOptVerification.java +++ b/src/main/java/a8k/extui/page/extapp/A8kOptVerification.java @@ -1,7 +1,7 @@ package a8k.extui.page.extapp; -import a8k.app.a8kproj.A8kReactionResultComputer; -import a8k.app.a8kproj.optalgo.type.OptScanResult; +import a8k.app.optalgo.A8kPeakAnalyzer; +import a8k.app.optalgo.type.OptScanResult; import a8k.app.a8ktype.device.BloodType; import a8k.app.a8ktype.state.SampleInfo; import a8k.app.a8ktype.type.ReactionResult; @@ -19,7 +19,7 @@ import a8k.app.service.data.ProjInfoMgrService; import a8k.app.service.lowerctrl.OptScanModuleCtrlService; import a8k.app.service.lowerctrl.PlateBoxCtrlService; import a8k.extui.type.ret.A8kScanCurve; -import a8k.app.dao.type.a8kidcard.zenum.A8kOptType; +import a8k.app.optalgo.type.a8kidcard.zenum.A8kOptType; import a8k.app.a8ktype.device.ConsumableGroup; import a8k.app.a8ktype.device.IncubatorPos; import a8k.app.a8ktype.exception.AppException; @@ -214,7 +214,7 @@ public class A8kOptVerification { for (int i = 0; i < projBuildinInfo.optcfg.size(); i++) { OptScanResult optScanResult = getOptScanResult(projBuildinInfo.optcfg.get(i).optType); Assert.notNull(optScanResult, "光学扫描结果为空"); - results.add(A8kReactionResultComputer.optComputeResult(sampleInfo, projInfo, i, optScanResult.analysResult)); + results.add(A8kPeakAnalyzer.analysisPeakInfo(sampleInfo, projInfo, i, optScanResult.analysResult)); } return results; diff --git a/src/main/java/a8k/extui/page/extapp/OptFullFlowVerificationPage.java b/src/main/java/a8k/extui/page/extapp/OptFullFlowVerificationPage.java index bc0993c..a51f71b 100644 --- a/src/main/java/a8k/extui/page/extapp/OptFullFlowVerificationPage.java +++ b/src/main/java/a8k/extui/page/extapp/OptFullFlowVerificationPage.java @@ -1,8 +1,8 @@ package a8k.extui.page.extapp; import a8k.OS; -import a8k.app.a8kproj.A8kReactionResultComputer; -import a8k.app.a8kproj.optalgo.type.OptScanResult; +import a8k.app.optalgo.A8kPeakAnalyzer; +import a8k.app.optalgo.type.OptScanResult; import a8k.app.a8ktype.device.*; import a8k.app.a8ktype.exception.AppException; import a8k.app.a8ktype.param.type.A8kSamplePos; @@ -10,7 +10,7 @@ import a8k.app.a8ktype.state.SampleInfo; import a8k.app.a8ktype.type.ReactionResult; import a8k.app.a8ktype.type.TubeHolderScanResult; import a8k.app.dao.type.ProjExtInfoCard; -import a8k.app.dao.type.a8kidcard.zenum.A8kReactionFlowType; +import a8k.app.optalgo.type.a8kidcard.zenum.A8kReactionFlowType; import a8k.app.hardware.driver.PipetteCtrlDriver; import a8k.app.service.bases.AppEventBusService; import a8k.app.service.bases.FrontEndMessageBoxAndEventMgr; @@ -219,7 +219,7 @@ public class OptFullFlowVerificationPage { for (int i = 0; i < cxt.projBuildinInfo.subProjNum; i++) { var optScanResult = optScanModuleCtrlService.optScan(cxt.projBuildinInfo, i); - ReactionResult result = A8kReactionResultComputer.optComputeResult(cxt.sampleInfo, projInfo, i, optScanResult.analysResult); + ReactionResult result = A8kPeakAnalyzer.analysisPeakInfo(cxt.sampleInfo, projInfo, i, optScanResult.analysResult); cxt.results.add(result); optScanResults.add(optScanResult); } diff --git a/src/main/java/a8k/extui/page/extapp/OptModuleParamCalibration.java b/src/main/java/a8k/extui/page/extapp/OptModuleParamCalibration.java index 527d54f..3d83c44 100644 --- a/src/main/java/a8k/extui/page/extapp/OptModuleParamCalibration.java +++ b/src/main/java/a8k/extui/page/extapp/OptModuleParamCalibration.java @@ -11,7 +11,7 @@ import a8k.app.service.lowerctrl.OptScanModuleCtrlService; import a8k.app.service.lowerctrl.PlateBoxCtrlService; import a8k.app.service.param.optparam.OptModuleExtParamsMgr; import a8k.app.a8ktype.param.optpos.OptModuleExtParam; -import a8k.app.dao.type.a8kidcard.zenum.A8kOptType; +import a8k.app.optalgo.type.a8kidcard.zenum.A8kOptType; import a8k.app.a8ktype.exception.AppException; import a8k.app.hardware.utils.OptGainConvert; import jakarta.annotation.PostConstruct; diff --git a/src/main/java/a8k/extui/page/extapp/debug_assistant/FakeReactionRecordGeneratorPage.java b/src/main/java/a8k/extui/page/extapp/debug_assistant/FakeReactionRecordGeneratorPage.java index fa01457..ac5d13a 100644 --- a/src/main/java/a8k/extui/page/extapp/debug_assistant/FakeReactionRecordGeneratorPage.java +++ b/src/main/java/a8k/extui/page/extapp/debug_assistant/FakeReactionRecordGeneratorPage.java @@ -1,14 +1,14 @@ package a8k.extui.page.extapp.debug_assistant; -import a8k.app.a8kproj.optalgo.type.OptScanResult; +import a8k.app.optalgo.type.OptScanResult; import a8k.app.a8ktype.device.BloodType; import a8k.app.a8ktype.exception.AppException; -import a8k.app.a8ktype.opttype.ReactionResultStatus; +import a8k.app.optalgo.type.ReactionResultStatus; import a8k.app.a8ktype.state.SampleInfo; import a8k.app.a8ktype.type.ReactionResult; -import a8k.app.dao.type.a8kidcard.A8kResultBuilderFn; -import a8k.app.dao.type.a8kidcard.zenum.A8kOptType; -import a8k.app.dao.type.a8kidcard.zenum.A8kResultUnit; +import a8k.app.optalgo.type.a8kidcard.A8kResultBuilderFn; +import a8k.app.optalgo.type.a8kidcard.zenum.A8kOptType; +import a8k.app.optalgo.type.a8kidcard.zenum.A8kResultUnit; import a8k.extui.factory.FakeOptScanResultFactory; import a8k.extui.factory.ProjExtInfoCardFactory; import a8k.app.service.data.ProjInfoMgrService; diff --git a/src/main/java/a8k/extui/page/extapp/debug_assistant/FakeStateGeneratorPage.java b/src/main/java/a8k/extui/page/extapp/debug_assistant/FakeStateGeneratorPage.java index c983845..6603037 100644 --- a/src/main/java/a8k/extui/page/extapp/debug_assistant/FakeStateGeneratorPage.java +++ b/src/main/java/a8k/extui/page/extapp/debug_assistant/FakeStateGeneratorPage.java @@ -5,8 +5,8 @@ import a8k.app.a8ktype.device.BloodType; import a8k.app.a8ktype.type.ReactionResult; import a8k.app.dao.ReactionReportDao; import a8k.app.dao.type.ReactionReport; -import a8k.app.dao.type.a8kidcard.A8kResultBuilderFn; -import a8k.app.dao.type.a8kidcard.zenum.A8kResultUnit; +import a8k.app.optalgo.type.a8kidcard.A8kResultBuilderFn; +import a8k.app.optalgo.type.a8kidcard.zenum.A8kResultUnit; import a8k.app.service.statemgr.GStateMgrService; import a8k.app.utils.ZDateUtils; import a8k.extui.mgr.ExtApiPageMgr; diff --git a/src/main/java/a8k/extui/page/extsetting/db/ReactionRecordMgrDebugPage.java b/src/main/java/a8k/extui/page/extsetting/db/ReactionRecordMgrDebugPage.java index 529d2c8..1a33794 100644 --- a/src/main/java/a8k/extui/page/extsetting/db/ReactionRecordMgrDebugPage.java +++ b/src/main/java/a8k/extui/page/extsetting/db/ReactionRecordMgrDebugPage.java @@ -1,10 +1,10 @@ package a8k.extui.page.extsetting.db; import a8k.app.a8ktype.exception.AppException; -import a8k.app.a8ktype.opttype.ReactionResultStatus; +import a8k.app.optalgo.type.ReactionResultStatus; import a8k.app.controler.filemgr.StorageControler; import a8k.app.dao.type.ReactionReport; -import a8k.app.dao.type.a8kidcard.zenum.A8kOptType; +import a8k.app.optalgo.type.a8kidcard.zenum.A8kOptType; import a8k.extui.factory.A8kScanCurveFactory; import a8k.app.service.data.FileMgrService; import a8k.app.service.data.ProjIdCardInfoMgrService; diff --git a/src/main/java/a8k/extui/page/test/codetest/OptFormulaTestPage.java b/src/main/java/a8k/extui/page/test/codetest/OptFormulaTestPage.java index 91827ef..868e7cb 100644 --- a/src/main/java/a8k/extui/page/test/codetest/OptFormulaTestPage.java +++ b/src/main/java/a8k/extui/page/test/codetest/OptFormulaTestPage.java @@ -1,8 +1,8 @@ package a8k.extui.page.test.codetest; -import a8k.app.a8kproj.A8kReactionResultComputer; -import a8k.app.a8kproj.optalgo.type.OptAlgoAnalysResult; +import a8k.app.optalgo.A8kPeakAnalyzer; +import a8k.app.optalgo.type.A8kOptPeakInfo; import a8k.app.a8ktype.device.BloodType; import a8k.app.a8ktype.exception.AppException; import a8k.app.a8ktype.state.SampleInfo; @@ -32,7 +32,7 @@ public class OptFormulaTestPage { Boolean test(); } - OptAlgoAnalysResult optAlgoAnalysResult = new OptAlgoAnalysResult(); + A8kOptPeakInfo optAlgoAnalysResult = new A8kOptPeakInfo(); public void setR(Double val) { @@ -83,7 +83,7 @@ public class OptFormulaTestPage { if (projInfoContext.buildIn.optcfg.size() <= optIndex) { throw AppException.of(A8kEcode.CODEERROR, "当前项目没有第%s个子项目", optIndex); } - return A8kReactionResultComputer.optComputeResult(sampleInfo, projInfoContext, optIndex, optAlgoAnalysResult); + return A8kPeakAnalyzer.analysisPeakInfo(sampleInfo, projInfoContext, optIndex, optAlgoAnalysResult); } @Resource diff --git a/src/main/java/a8k/extui/page/test/codetest/OptFormulaTestPageV2.java b/src/main/java/a8k/extui/page/test/codetest/OptFormulaTestPageV2.java index 7cc1c37..e741ea5 100644 --- a/src/main/java/a8k/extui/page/test/codetest/OptFormulaTestPageV2.java +++ b/src/main/java/a8k/extui/page/test/codetest/OptFormulaTestPageV2.java @@ -1,13 +1,14 @@ package a8k.extui.page.test.codetest; -import a8k.app.a8kproj.A8kReactionResultComputer; -import a8k.app.a8kproj.optalgo.type.A8kOptPeaks; -import a8k.app.a8kproj.optalgo.type.OptAlgoAnalysResult; -import a8k.app.a8kproj.optanalyzer.PeakNameAssigner; +import a8k.app.optalgo.A8kPeakAnalyzer; +import a8k.app.optalgo.type.A8kOptPeaks; +import a8k.app.optalgo.type.A8kOptPeakInfo; +import a8k.app.optalgo.utils.A8kOptPeakInfoBuilder; +import a8k.app.optalgo.utils.PeakNameAssigner; import a8k.app.a8ktype.device.BloodType; import a8k.app.a8ktype.exception.AppException; -import a8k.app.a8ktype.opttype.PeakName; +import a8k.app.optalgo.type.PeakName; import a8k.app.a8ktype.state.SampleInfo; import a8k.app.a8ktype.type.ReactionResult; import a8k.app.hardware.type.a8kcanprotocol.A8kEcode; @@ -78,12 +79,12 @@ public class OptFormulaTestPageV2 { @ExtApiStatu(name = "", group = "光学中间结果2", order = 3, minWidth = "100%") synchronized public String getComputedMidResult() { - return A8kReactionResultComputer.getComputeContext(); + return A8kPeakAnalyzer.getComputeContext(); } - OptAlgoAnalysResult optAlgoAnalysResult; + A8kOptPeakInfo optAlgoAnalysResult; synchronized public void setT4Area(Double val) { @@ -137,11 +138,11 @@ public class OptFormulaTestPageV2 { peaks.trySetPeakArea(PeakName.C, CArea); - optAlgoAnalysResult = OptAlgoAnalysResult.build(new double[0], peaks); + optAlgoAnalysResult = A8kOptPeakInfoBuilder.build(new double[0], peaks); if (projInfoContext.buildIn.optcfg.size() <= optIndex) { throw AppException.of(A8kEcode.CODEERROR, "当前项目没有第%s个子项目", optIndex); } - return A8kReactionResultComputer.optComputeResult(sampleInfo, projInfoContext, optIndex, optAlgoAnalysResult); + return A8kPeakAnalyzer.analysisPeakInfo(sampleInfo, projInfoContext, optIndex, optAlgoAnalysResult); } @Resource diff --git a/src/main/java/a8k/extui/page/test/verification/P51FullFlowVerificationPage.java b/src/main/java/a8k/extui/page/test/verification/P51FullFlowVerificationPage.java index 82358f8..d949ed7 100644 --- a/src/main/java/a8k/extui/page/test/verification/P51FullFlowVerificationPage.java +++ b/src/main/java/a8k/extui/page/test/verification/P51FullFlowVerificationPage.java @@ -1,8 +1,8 @@ package a8k.extui.page.test.verification; import a8k.OS; -import a8k.app.a8kproj.A8kReactionResultComputer; -import a8k.app.a8kproj.optalgo.type.OptScanResult; +import a8k.app.optalgo.A8kPeakAnalyzer; +import a8k.app.optalgo.type.OptScanResult; import a8k.app.a8ktype.device.*; import a8k.app.a8ktype.exception.AppException; import a8k.app.a8ktype.param.type.A8kSamplePos; @@ -10,7 +10,7 @@ import a8k.app.a8ktype.state.SampleInfo; import a8k.app.a8ktype.type.ReactionResult; import a8k.app.a8ktype.type.TubeHolderScanResult; import a8k.app.dao.type.ProjExtInfoCard; -import a8k.app.dao.type.a8kidcard.zenum.A8kReactionFlowType; +import a8k.app.optalgo.type.a8kidcard.zenum.A8kReactionFlowType; import a8k.app.hardware.driver.PipetteCtrlDriver; import a8k.app.service.bases.AppEventBusService; import a8k.app.service.bases.FrontEndMessageBoxAndEventMgr; @@ -222,7 +222,7 @@ public class P51FullFlowVerificationPage { for (int i = 0; i < cxt.projBuildinInfo.subProjNum; i++) { var optScanResult = optScanModuleCtrlService.optScan(cxt.projBuildinInfo, i); - ReactionResult result = A8kReactionResultComputer.optComputeResult(cxt.sampleInfo, projInfo, i, optScanResult.analysResult); + ReactionResult result = A8kPeakAnalyzer.analysisPeakInfo(cxt.sampleInfo, projInfo, i, optScanResult.analysResult); cxt.results.add(result); optScanResults.add(optScanResult); }