diff --git a/debye_bec/devices/mo1_bragg/mo1_bragg_devices.py b/debye_bec/devices/mo1_bragg/mo1_bragg_devices.py index bbe0c1b..fe1d5e5 100644 --- a/debye_bec/devices/mo1_bragg/mo1_bragg_devices.py +++ b/debye_bec/devices/mo1_bragg/mo1_bragg_devices.py @@ -80,6 +80,10 @@ class Mo1BraggCrystal(Device): bragg_off_si311 = Cpt(EpicsSignalWithRBV, suffix="bragg_off_si311", kind="config") phi_off_si111 = Cpt(EpicsSignalWithRBV, suffix="phi_off_si111", kind="config") phi_off_si311 = Cpt(EpicsSignalWithRBV, suffix="phi_off_si311", kind="config") + azm_off_si111 = Cpt(EpicsSignalWithRBV, suffix="azm_off_si111", kind="config") + azm_off_si311 = Cpt(EpicsSignalWithRBV, suffix="azm_off_si311", kind="config") + miscut_si111 = Cpt(EpicsSignalWithRBV, suffix="miscut_si111", kind="config") + miscut_si311 = Cpt(EpicsSignalWithRBV, suffix="miscut_si311", kind="config") xtal_enum = Cpt(EpicsSignalWithRBV, suffix="xtal_ENUM", kind="config") d_spacing_si111 = Cpt(EpicsSignalWithRBV, suffix="d_spacing_si111", kind="config") d_spacing_si311 = Cpt(EpicsSignalWithRBV, suffix="d_spacing_si311", kind="config") @@ -93,6 +97,12 @@ class Mo1BraggCrystal(Device): current_phi_off = Cpt( EpicsSignalRO, suffix="current_phi_off_RBV", kind="normal", auto_monitor=True ) + current_azm_off = Cpt( + EpicsSignalRO, suffix="current_azm_off_RBV", kind="normal", auto_monitor=True + ) + current_miscut = Cpt( + EpicsSignalRO, suffix="current_miscut_RBV", kind="normal", auto_monitor=True + ) current_xtal = Cpt( EpicsSignalRO, suffix="current_xtal_ENUM_RBV", kind="normal", auto_monitor=True ) diff --git a/debye_bec/devices/nidaq/nidaq.py b/debye_bec/devices/nidaq/nidaq.py index 35cb6f6..c1564ba 100644 --- a/debye_bec/devices/nidaq/nidaq.py +++ b/debye_bec/devices/nidaq/nidaq.py @@ -38,6 +38,9 @@ class NidaqControl(Device): smpl_abs = Cpt( SetableSignal, value=0, kind=Kind.normal, doc="NIDAQ stream sample absorption" ) + smpl_fluo = Cpt( + SetableSignal, value=0, kind=Kind.normal, doc="NIDAQ stream sample fluorescence" + ) ref_abs = Cpt( SetableSignal, value=0, kind=Kind.normal, doc="NIDAQ stream reference absorption" ) @@ -495,6 +498,12 @@ class NidaqControl(Device): smpl_abs_de = Cpt(EpicsSignal, suffix="NIDAQ-smpl_abs_de", kind=Kind.config, auto_monitor=True) smpl_abs_de_string = Cpt(EpicsSignal, suffix="NIDAQ-smpl_abs_de", kind=Kind.config, string=True, auto_monitor=True) + smpl_fluo_no = Cpt(EpicsSignal, suffix="NIDAQ-smpl_fluo_no", kind=Kind.config, auto_monitor=True) + smpl_fluo_no_string = Cpt(EpicsSignal, suffix="NIDAQ-smpl_fluo_no", kind=Kind.config, string=True, auto_monitor=True) + + smpl_fluo_de = Cpt(EpicsSignal, suffix="NIDAQ-smpl_fluo_de", kind=Kind.config, auto_monitor=True) + smpl_fluo_de_string = Cpt(EpicsSignal, suffix="NIDAQ-smpl_fluo_de", kind=Kind.config, string=True, auto_monitor=True) + ref_abs_no = Cpt(EpicsSignal, suffix="NIDAQ-ref_abs_no", kind=Kind.config, auto_monitor=True) ref_abs_no_string = Cpt(EpicsSignal, suffix="NIDAQ-ref_abs_no", kind=Kind.config, string=True, auto_monitor=True) diff --git a/debye_bec/file_writer/debye_nexus_structure.py b/debye_bec/file_writer/debye_nexus_structure.py index f2ff5c0..5a44ad9 100644 --- a/debye_bec/file_writer/debye_nexus_structure.py +++ b/debye_bec/file_writer/debye_nexus_structure.py @@ -79,7 +79,7 @@ class DebyeNexusStructure(DefaultFormat): target="/entry/collection/devices/mo1_bragg/mo1_bragg_crystal_current_phi_off/value", ) phi_offset.attrs["NX_class"] = "NX_FLOAT" - phi_offset.attrs["units"] = "degree" + phi_offset.attrs["units"] = "degree" ## Logic if device exist if "mo1_roty" in self.device_manager.devices: @@ -92,8 +92,19 @@ class DebyeNexusStructure(DefaultFormat): azimuthal_angle.attrs["NX_class"] = "NX_FLOAT" azimuthal_angle.attrs["units"] = "degree" + azm_offset = crystal.create_soft_link( + name="azm_offset", + target="/entry/collection/devices/mo1_bragg/mo1_bragg_crystal_current_azm_off/value", + ) + azm_offset.attrs["NX_class"] = "NX_FLOAT" + azm_offset.attrs["units"] = "degree" - #TODO add phi offset, currently missing from mo1 device, unify device naming (mo vs mo1) + miscut = crystal.create_soft_link( + name="miscut", + target="/entry/collection/devices/mo1_bragg/mo1_bragg_crystal_current_miscut/value", + ) + miscut.attrs["NX_class"] = "NX_FLOAT" + miscut.attrs["units"] = "degree" ################### ### cm mirror specific information @@ -317,11 +328,21 @@ class DebyeNexusStructure(DefaultFormat): main_data.create_soft_link(name="mu_sample", target="/entry/collection/readout_groups/async/nidaq/nidaq_smpl_abs/value") + ################## + ## fluo sample, test whether the signal exists. how to check from config? + ################### + + if (int(add_chans_bits) & (1<<1)) !=0: + mu_sample = main_data.create_group(name="fluo_sample") + mu_sample.attrs["NX_class"] = "NXdata" + + main_data.create_soft_link(name="fluo_sample", target="/entry/collection/readout_groups/async/nidaq/nidaq_smpl_fluo/value") + ################## ## mu reference, test whether the signal exists. how to check from config? ################### - if (int(add_chans_bits) & (1<<1)) !=0: + if (int(add_chans_bits) & (1<<2)) !=0: mu_reference = main_data.create_group(name="mu_reference") mu_reference.attrs["NX_class"] = "NXdata"