diff --git a/script/crlogic.py b/script/crlogic.py index 5a43aba..ca2e079 100644 --- a/script/crlogic.py +++ b/script/crlogic.py @@ -1,20 +1,12 @@ - - -#caput("X10DA-ES-SCALER.CNT", 0) -#caput("X10DA-ES-SCALER.G1", 0) -#caput("X10DA-ES-SCALER.CONT", 0) - -scaler.stop() -scaler.channels[0].setPreset(False) +scaler.stop() #caput("X10DA-ES-SCALER.CNT", 0) +scaler.channels[0].setPreset(False) #caput("X10DA-ES-SCALER.G1", 0) #scaler.channels[0].setPresetValue(0) -scaler.setOneShot() - +scaler.setOneShot() #caput("X10DA-ES-SCALER.CONT", 0) caput("X10DA-ES1:START-CSMPL", 1) caput("X10DA-ES1:TOTAL-CYCLES", 5) caput("X10DA-ES1:SMPL-BTN", 1) -bragg_pos = CrlogicPositioner("bragg_pos", "X10DA-OP-MO3:ROX", "X10DA-ES1-DCM:EC") i0 = CrlogicSensor("I0", "SCALER12", True) i1 = CrlogicSensor("I1", "SCALER13", True) i2 = CrlogicSensor("I2", "SCALER14", True) @@ -22,22 +14,18 @@ ref = CrlogicSensor("ScalerRef", "SCALER15", True) class AbsCalc(Readable): def read(self): - return math.log(math.fabs(i0.take()) /math.fabs(i1.take())) + d = math.fabs(i1.take()) + return float('NaN') if (d==0) else math.log(math.fabs(i0.take()) /d) abs_calc = AbsCalc() class ECalc(Readable): - def read(self): - return 12.39842 / ( crystal.take() * math.sin( math.radians(bragg_pos.take())) ) + def read(self): + d = crystal.take() * math.sin( math.radians(bragg.readback.take())) + return float('NaN') if (d==0) else (12.39842 / d) e_calc = ECalc() - sensors = [RegisterCache(crystal), i0, i1, i2, ref, abs_calc, e_calc] - -bragg_pos.initialize() bragg.move(12.3) -try: - r1 = hscan(crlogic_config, bragg_pos, sensors, 12.3, 12.6, 0.002, 1, False) -finally: - bragg_pos.close() - pass +#scaler.start() +r1 = hscan(crlogic_config, bragg, sensors, 12.3, 12.6, 0.002, 1, False) \ No newline at end of file