fix: online changes e20643

This commit is contained in:
e20643 2023-09-12 09:04:55 +02:00
parent 592ddfe6da
commit 0bf308a13d
5 changed files with 36 additions and 16 deletions

View File

@ -232,8 +232,8 @@ class Eiger9mCsaxs(DetectorBase):
# self.cam.acquire_period.set(
# self.scaninfo.exp_time + (self.scaninfo.readout_time - self.reduce_readout)
# )
self.cam.num_cycles.set(int(self.scaninfo.num_points * self.scaninfo.frames_per_trigger))
self.cam.num_frames.set(1)
self.cam.num_cycles.put(int(self.scaninfo.num_points * self.scaninfo.frames_per_trigger))
self.cam.num_frames.put(1)
def _set_trigger(self, trigger_source: TriggerSource) -> None:
"""Set trigger source for the detector, either directly to value or TriggerSource.* with
@ -243,7 +243,7 @@ class Eiger9mCsaxs(DetectorBase):
BURST_TRIGGER = 3
"""
value = int(trigger_source)
self.cam.timing_mode.set(value)
self.cam.timing_mode.put(value)
def _prep_file_writer(self) -> None:
self.filepath = self.filewriter.compile_full_filename(
@ -316,6 +316,11 @@ class Eiger9mCsaxs(DetectorBase):
def unstage(self) -> List[object]:
"""unstage the detector and file writer"""
logger.info("Waiting for Eiger9M to finish")
old_scanID = self.scaninfo.scanID
self.scaninfo.load_scan_metadata()
logger.info(f"Old scanID: {old_scanID}, ")
if self.scaninfo.scanID != old_scanID:
self._stopped = True
if self._stopped ==True:
return super().unstage()
self._eiger9M_finished()
@ -349,7 +354,7 @@ class Eiger9mCsaxs(DetectorBase):
break
time.sleep(0.1)
timer += 0.1
if timer > 5:
if timer > 8:
self._stopped == True
self._close_file_writer()
raise EigerTimeoutError(

View File

@ -234,6 +234,11 @@ class FalconCsaxs(Device):
def unstage(self) -> List[object]:
logger.info("Waiting for Falcon to return from acquisition")
old_scanID = self.scaninfo.scanID
self.scaninfo.load_scan_metadata()
logger.info(f"Old scanID: {old_scanID}, ")
if self.scaninfo.scanID != old_scanID:
self._stopped = True
if self._stopped:
return super().unstage()
self._falcon_finished()
@ -252,20 +257,20 @@ class FalconCsaxs(Device):
"""Function with 10s timeout"""
timer = 0
while True:
det_ctrl = self.acquiring.read()[self.acquiring.name]['value']
det_ctrl = self.state.read()[self.state.name]['value']
writer_ctrl = self.hdf5.capture.get()
received_frames = self.dxp.current_pixel.get()
total_frames = int(self.scaninfo.num_points * self.scaninfo.frames_per_trigger)
# TODO if no writing was performed before
if det_ctrl == 0 and writer_ctrl == 0 and total_frames == received_frames:
if total_frames == received_frames:
break
if self._stopped == True:
break
time.sleep(0.1)
timer += 0.1
if timer > 5:
if timer > 8:
raise FalconTimeoutError(
f"Reached timeout with detector state {det_ctrl}, std_daq state {writer_ctrl} and received frames of {received_frames} for the file writer"
f"Reached timeout with detector state {det_ctrl}, falcon state {writer_ctrl} and received frames of {received_frames} for the file writer"
)
def stop(self, *, success=False) -> None:

View File

@ -223,7 +223,7 @@ class McsCsaxs(SIS38XX):
self._set_trigger(TriggerSource.MODE3)
self.input_polarity.set(0)
self.output_polarity.set(1)
self.count_on_start.set(0)
self.count_on_start.set(1)
self.stop_all.set(1)
def _progress_update(self, value, **kwargs) -> None:
@ -243,9 +243,10 @@ class McsCsaxs(SIS38XX):
self.mca_data[obj.attr_name] = kwargs["value"][1:]
if len(self.mca_names) != len(self.mca_data):
return
logger.info("Entered _on_mca_data")
#logger.info("Entered _on_mca_data")
self._updated = True
self.counter += 1
#logger.info(f'data from mca {self.mca_data["mca1"]} and {self.mca_data["mca4"]}')
if (self.scaninfo.scan_type == "fly" and self.counter == self.num_lines.get()) or (
self.scaninfo.scan_type == "step" and self.counter == self.scaninfo.num_points
):
@ -253,7 +254,7 @@ class McsCsaxs(SIS38XX):
self.stop_all.put(1, use_complete=False)
self._send_data_to_bec()
self.erase_all.put(1)
logger.info("Entered _on_mca_data, acquisition finished")
#logger.info("Entered _on_mca_data, acquisition finished")
# Require wait for
# time.sleep(0.01)
self.mca_data = defaultdict(lambda: [])
@ -348,11 +349,15 @@ class McsCsaxs(SIS38XX):
def unstage(self) -> List[object]:
"""unstage"""
logger.info("Waiting for mcs to finish acquisition")
if self._stopped == True:
old_scanID = self.scaninfo.scanID
self.scaninfo.load_scan_metadata()
logger.info(f"Old scanID: {old_scanID}, ")
if self.scaninfo.scanID != old_scanID:
self._stopped = True
if self._stopped is True:
logger.info("Entered unstage _stopped =True")
return super().unstage()
if self._stopped:
self._mcs_finished()
self._mcs_finished()
self._acquisition_done = False
self._stopped = False
logger.info("mcs done")
@ -369,7 +374,7 @@ class McsCsaxs(SIS38XX):
break
time.sleep(0.1)
timer += 0.1
if timer > 5:
if timer > 8:
total_frames = self.counter * int(
self.scaninfo.num_points / self.num_lines.get()
) + max(self.current_channel.get() - 1, 0)

View File

@ -359,6 +359,11 @@ class PilatusCsaxs(DetectorBase):
"""unstage the detector and file writer"""
# Reset to software trigger
logger.info("Waiting for Pilatus to return from acquisition")
old_scanID = self.scaninfo.scanID
self.scaninfo.load_scan_metadata()
logger.info(f"Old scanID: {old_scanID}, ")
if self.scaninfo.scanID != old_scanID:
self._stopped = True
if self._stopped:
return super().unstage()
self._pilatus_finished()

View File

@ -212,7 +212,7 @@ class EnergyKev(VirtualEpicsSignalRO):
)
offs = np.interp(energy_keV, self._th2_offsets[:, 0], self._th2_offsets[:, 1])
print(offs)
#print(offs)
return offs
def calc(self, val):