Browse Source

update

tags/v0
zhaohe 9 months ago
parent
commit
a1d90f6255
  1. 4
      src/main/java/a8k/a8kproj/optalgo/type/OptScanResult.java
  2. 34
      src/main/java/a8k/service/app/devicectrl/ctrlservice/OptScanModuleCtrlService.java
  3. 15
      src/main/java/a8k/service/app/devicectrl/param/calibration/OptModuleParamCalibration.java
  4. 2
      src/main/java/a8k/service/app/devicectrl/param/param_mgr/OptModuleExtParamsMgr.java
  5. 27
      src/main/java/a8k/service/dao/OptRawDataDao.java
  6. 21
      src/main/java/a8k/service/dao/type/OptRawScanData.java
  7. 5
      src/main/java/a8k/utils/ZDateUtils.java
  8. 8
      src/main/java/a8k/utils/ZSqliteJdbcHelper.java

4
src/main/java/a8k/a8kproj/optalgo/type/OptScanResult.java

@ -1,7 +1,11 @@
package a8k.a8kproj.optalgo.type; package a8k.a8kproj.optalgo.type;
import a8k.service.dao.type.OptRawScanData;
public class OptScanResult { public class OptScanResult {
public OptRawScanData rawData;
public double[] ogiginData; // 1200 POINT public double[] ogiginData; // 1200 POINT
public double[] resultData; // 250 POINT public double[] resultData; // 250 POINT

34
src/main/java/a8k/service/app/devicectrl/ctrlservice/OptScanModuleCtrlService.java

@ -12,18 +12,22 @@ import a8k.service.app.devicectrl.driver.type.StepMotorMId;
import a8k.service.app.devicectrl.param.param_mgr.OptModuleExtParamsMgr; import a8k.service.app.devicectrl.param.param_mgr.OptModuleExtParamsMgr;
import a8k.service.app.devicectrl.param.param_mgr.OptModuleParamsMgr; import a8k.service.app.devicectrl.param.param_mgr.OptModuleParamsMgr;
import a8k.service.bases.ActionReactorService; import a8k.service.bases.ActionReactorService;
import a8k.service.dao.type.OptRawScanData;
import a8k.service.dao.type.ProjOptInfo; import a8k.service.dao.type.ProjOptInfo;
import a8k.service.dao.type.a8kidcard.zenum.A8kOptType; import a8k.service.dao.type.a8kidcard.zenum.A8kOptType;
import a8k.type.IncubatorPos; import a8k.type.IncubatorPos;
import a8k.type.OptScanDirection; import a8k.type.OptScanDirection;
import a8k.type.exception.AppException; import a8k.type.exception.AppException;
import a8k.utils.ProjInfoContext; import a8k.utils.ProjInfoContext;
import a8k.utils.ZDateUtils;
import a8k.utils.opt_gain_convert.OptGainConvert; import a8k.utils.opt_gain_convert.OptGainConvert;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.Assert; import org.springframework.util.Assert;
import java.util.Date;
@Component @Component
@Slf4j @Slf4j
public class OptScanModuleCtrlService { public class OptScanModuleCtrlService {
@ -59,12 +63,9 @@ public class OptScanModuleCtrlService {
} }
public Integer[] startOptScan(A8kOptType optType, Integer rawScanGain) throws AppException {
public Integer[] startOptScan(A8kOptType optType, Integer lasterGain, Integer rawScanGain) throws AppException {
Integer forwardScanPos = optModuleExtParamsMgr.getOptScanStartPos(optType); Integer forwardScanPos = optModuleExtParamsMgr.getOptScanStartPos(optType);
Integer backwardScanPos = forwardScanPos - 1200; Integer backwardScanPos = forwardScanPos - 1200;
// Double scanGain = optModuleExtParamsMgr.getScanGain(optType);
// Integer rawScanGain = OptGainConvert.scanerToRawGain(optType, scanGain);
Integer lasterGain = optModuleExtParamsMgr.getOptEmissionIntensity(optType);
switch (optType) { switch (optType) {
@ -92,18 +93,19 @@ public class OptScanModuleCtrlService {
} }
public Integer[] doOptScan(ProjOptInfo optcfg) throws AppException {
public OptRawScanData doOptScan(ProjOptInfo optcfg) throws AppException {
log.info("doFOptScan ............"); log.info("doFOptScan ............");
log.info(" optType : {}", optcfg.optType); log.info(" optType : {}", optcfg.optType);
A8kOptGainAdjuster gainAdjuster = new A8kOptGainAdjuster(); A8kOptGainAdjuster gainAdjuster = new A8kOptGainAdjuster();
A8kOptType optType = optcfg.optType; A8kOptType optType = optcfg.optType;
double scanRealGain = 0; double scanRealGain = 0;
int scanRawGain = 0; int scanRawGain = 0;
int adjustCount = 3;
int lasterGain = optModuleExtParamsMgr.getOptLasterRawGain(optType);
int adjustCount = 3;
Integer[] result = null; Integer[] result = null;
for (int i = 0; i < adjustCount; i++) { for (int i = 0; i < adjustCount; i++) {
@ -117,7 +119,7 @@ public class OptScanModuleCtrlService {
log.info(" scanRawGain : {}", scanRawGain); log.info(" scanRawGain : {}", scanRawGain);
log.info(" scanRealGain : {}", scanRealGain); log.info(" scanRealGain : {}", scanRealGain);
result = startOptScan(optType, scanRawGain);
result = startOptScan(optType, lasterGain, scanRawGain);
if (i + 1 >= adjustCount) { if (i + 1 >= adjustCount) {
@ -138,7 +140,16 @@ public class OptScanModuleCtrlService {
scanRealGain = gainAdjuster.suggestGain; scanRealGain = gainAdjuster.suggestGain;
scanRawGain = OptGainConvert.scanerToRawGain(optType, scanRealGain); scanRawGain = OptGainConvert.scanerToRawGain(optType, scanRealGain);
} }
return result;
OptRawScanData rawData = new OptRawScanData();
rawData.scanDate = new Date();
rawData.dataid = ZDateUtils.toID(rawData.scanDate);
rawData.optType = optType;
rawData.scanGain = scanRawGain;
rawData.lasterGain = lasterGain;
rawData.rawData = result;
return rawData;
} }
@ -148,8 +159,9 @@ public class OptScanModuleCtrlService {
ProjOptInfo projOptInfo = projInfoContext.projOptInfoList.get(subProjIndex); ProjOptInfo projOptInfo = projInfoContext.projOptInfoList.get(subProjIndex);
Integer[] optdata = doOptScan(projOptInfo);
OptScanResult optResult = A8kOptAlgoV2.processOptData(optdata);
OptRawScanData optdata = doOptScan(projOptInfo);
OptScanResult optResult = A8kOptAlgoV2.processOptData(optdata.rawData);
optResult.rawData = optdata;
PeakNameAssigner.assignPeakName(projOptInfo.projId, projOptInfo.peakNameRefNum, optResult.peaks); PeakNameAssigner.assignPeakName(projOptInfo.projId, projOptInfo.peakNameRefNum, optResult.peaks);
return optResult; return optResult;

15
src/main/java/a8k/service/app/devicectrl/param/calibration/OptModuleParamCalibration.java

@ -164,9 +164,10 @@ public class OptModuleParamCalibration {
@ExtApiFn(name = "F光学扫描", group = "扫描", order = 303) @ExtApiFn(name = "F光学扫描", group = "扫描", order = 303)
public A8kScanCurve FOptScan() throws AppException { public A8kScanCurve FOptScan() throws AppException {
Double scanGain = optModuleExtParamsMgr.getScanGain(A8kOptType.FOPT);
Integer rawScanGain = OptGainConvert.scanerToRawGain(A8kOptType.FOPT, scanGain);
var result = optScanModuleCtrlService.startOptScan(A8kOptType.FOPT, rawScanGain);
Double scanGain = optModuleExtParamsMgr.getScanGain(A8kOptType.FOPT);
Integer rawScanGain = OptGainConvert.scanerToRawGain(A8kOptType.FOPT, scanGain);
Integer rawLasterGain = optModuleExtParamsMgr.getOptLasterRawGain(A8kOptType.FOPT);
var result = optScanModuleCtrlService.startOptScan(A8kOptType.FOPT, rawLasterGain, rawScanGain);
return createScanCurve1200Point(result); return createScanCurve1200Point(result);
} }
@ -194,9 +195,11 @@ public class OptModuleParamCalibration {
@ExtApiFn(name = "T光学扫描", group = "扫描", order = 403) @ExtApiFn(name = "T光学扫描", group = "扫描", order = 403)
public A8kScanCurve TOptScan() throws AppException { public A8kScanCurve TOptScan() throws AppException {
Double scanGain = optModuleExtParamsMgr.getScanGain(A8kOptType.TOPT);
Integer rawScanGain = OptGainConvert.scanerToRawGain(A8kOptType.TOPT, scanGain);
var result = optScanModuleCtrlService.startOptScan(A8kOptType.TOPT, rawScanGain);
Double scanGain = optModuleExtParamsMgr.getScanGain(A8kOptType.TOPT);
Integer rawScanGain = OptGainConvert.scanerToRawGain(A8kOptType.TOPT, scanGain);
Integer rawLasterGain = optModuleExtParamsMgr.getOptLasterRawGain(A8kOptType.TOPT);
var result = optScanModuleCtrlService.startOptScan(A8kOptType.TOPT, rawLasterGain, rawScanGain);
return createScanCurve1200Point(result); return createScanCurve1200Point(result);
} }
} }

2
src/main/java/a8k/service/app/devicectrl/param/param_mgr/OptModuleExtParamsMgr.java

@ -51,7 +51,7 @@ public class OptModuleExtParamsMgr extends ParamMgr {
}; };
} }
public Integer getOptEmissionIntensity(A8kOptType type) {
public Integer getOptLasterRawGain(A8kOptType type) {
return switch (type) { return switch (type) {
case TOPT -> getParam(OptModuleExtParam.TOptEmissionIntensity, Integer.class); case TOPT -> getParam(OptModuleExtParam.TOptEmissionIntensity, Integer.class);
case FOPT -> getParam(OptModuleExtParam.FOptEmissionIntensity, Integer.class); case FOPT -> getParam(OptModuleExtParam.FOptEmissionIntensity, Integer.class);

27
src/main/java/a8k/service/dao/OptRawDataDao.java

@ -0,0 +1,27 @@
package a8k.service.dao;
import a8k.service.dao.type.OptRawScanData;
import a8k.utils.ZSqlite;
import jakarta.annotation.PostConstruct;
import jakarta.annotation.Resource;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import java.util.Arrays;
import java.util.Date;
@Component
public class OptRawDataDao extends ZSqlite<OptRawScanData> {
@Resource
JdbcTemplate jdbcTemplate;
@PostConstruct
void init() {
init(jdbcTemplate, "zapp_a8k_opt_raw_data_record", OptRawScanData.class);
}
public OptRawScanData findByProjId(Integer projId) {
return queryOne("select * from " + tableName + " where projId = ?;", projId);
}
}

21
src/main/java/a8k/service/dao/type/OptRawScanData.java

@ -0,0 +1,21 @@
package a8k.service.dao.type;
import a8k.service.dao.type.a8kidcard.zenum.A8kOptType;
import a8k.utils.ZJsonHelper;
import a8k.utils.ZSqliteJdbcHelper;
import java.util.Date;
public class OptRawScanData {
public int id;
public String dataid; //年月日时分秒
public Date scanDate;
public A8kOptType optType;
public Integer lasterGain;
public Integer scanGain;
public Integer[] rawData;
public String toString() {
return ZJsonHelper.objectToJson(this);
}
}

5
src/main/java/a8k/utils/ZDateUtils.java

@ -25,4 +25,9 @@ public class ZDateUtils {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
return sdf.format(date); return sdf.format(date);
} }
public static String toID(Date date) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
return sdf.format(date);
}
} }

8
src/main/java/a8k/utils/ZSqliteJdbcHelper.java

@ -77,7 +77,7 @@ public class ZSqliteJdbcHelper {
// if (rs == null || rs.wasNull()) { // if (rs == null || rs.wasNull()) {
// //
// } // }
// logger.info("+++++++++++++++++++++++++++++++++++++++++++++{}", rs.toString());
// logger.info("+++++++++++++++++++++++++++++++++++++++++++++{}", rs.toString());
Object obj = tClass.newInstance(); Object obj = tClass.newInstance();
@ -117,7 +117,11 @@ public class ZSqliteJdbcHelper {
Method methodValueOf = null; Method methodValueOf = null;
try { try {
methodValueOf = field.getType().getMethod("valueOf", String.class); methodValueOf = field.getType().getMethod("valueOf", String.class);
field.set(obj, methodValueOf.invoke(null, rs.getString(field.getName())));
if (rs.getString(field.getName()) == null || rs.getString(field.getName()).isEmpty())
field.set(obj, null);
else {
field.set(obj, methodValueOf.invoke(null, rs.getString(field.getName())));
}
} catch (NoSuchMethodException | InvocationTargetException e) { } catch (NoSuchMethodException | InvocationTargetException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }

Loading…
Cancel
Save