00001
00002 SI = GuiComponents.System.SystemInterface.getInstance();
00003 api = SI.getSctApi();
00004 cal = SI.getCalibrationController();
00005 scanRequest = cal.getScanLibrary().defaultScan();
00006 scan = scanRequest.getScan();
00007
00008
00009 scan.setNTrigs(1000);
00010 scan.setOption(Sct_SctApi.Scan.ScanOptions.loopCalLine, 1);
00011
00012 trigger = scan.getTrigger1();
00013 trigger.calL1A(0x82);
00014
00015
00016 sdesc = Sct.ScanDescriptors.getInstance();
00017 api.modifyABCDVar(sdesc.valueFor("ST_COMPRESSION"), 1.0);
00018 api.modifyABCDVar(sdesc.valueFor("ST_EDGE_DETECT"), 0.0);
00019 api.modifyABCDVar(sdesc.valueFor("ST_SEND_MASK"), 0.0);
00020
00021 charges = {0.5, 0.75, 1.0, 1.25, 1.5, 2, 3, 4, 6, 8};
00022
00023 double lowLimit = 0;
00024 double highLimit = 633;
00025
00026 for(int i=0; i<10; i++) {
00027 calChargefC = charges[i];
00028
00029 api.modifyABCDVar(sdesc.valueFor("ST_QCAL"), calChargefC);
00030
00031 offset = 0.0;
00032
00033 lo = 40.0 * calChargefC + offset/2.;
00034 hi = 150.0 + 70.0 * calChargefC + offset;
00035
00036
00037 if ((calChargefC > 0 && lo < lowLimit) || calChargefC < 0) lo = lowLimit;
00038 else if (lo < 0) lo = 0;
00039 if (hi > highLimit || calChargefC < 0) hi = highLimit;
00040 if (hi < lo) hi = lo + 100;
00041
00042 scan.configure((short)sdesc.valueFor("ST_VTHR"), lo, hi, 5.0);
00043
00044 cal.doScan(scanRequest);
00045 }