mxcubecore 1.393.0__py3-none-any.whl → 1.395.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mxcubecore might be problematic. Click here for more details.
- mxcubecore/HardwareObjects/ALBA/ALBAAutoProcessing.py +4 -7
- mxcubecore/HardwareObjects/ALBA/ALBABackLight.py +6 -7
- mxcubecore/HardwareObjects/ALBA/ALBABeamInfo.py +2 -4
- mxcubecore/HardwareObjects/ALBA/ALBACats.py +19 -25
- mxcubecore/HardwareObjects/ALBA/ALBAClusterJob.py +10 -11
- mxcubecore/HardwareObjects/ALBA/ALBACollect.py +49 -71
- mxcubecore/HardwareObjects/ALBA/ALBADataAnalysis.py +26 -31
- mxcubecore/HardwareObjects/ALBA/ALBAEnergy.py +1 -5
- mxcubecore/HardwareObjects/ALBA/ALBAEpsActuator.py +1 -1
- mxcubecore/HardwareObjects/ALBA/ALBAFastShutter.py +1 -1
- mxcubecore/HardwareObjects/ALBA/ALBAFlux.py +2 -6
- mxcubecore/HardwareObjects/ALBA/ALBAFrontLight.py +5 -9
- mxcubecore/HardwareObjects/ALBA/ALBAISPyBClient.py +4 -4
- mxcubecore/HardwareObjects/ALBA/ALBAMiniDiff.py +20 -27
- mxcubecore/HardwareObjects/ALBA/ALBAPilatus.py +12 -15
- mxcubecore/HardwareObjects/ALBA/ALBASession.py +1 -4
- mxcubecore/HardwareObjects/ALBA/ALBAZoomMotor.py +10 -14
- mxcubecore/HardwareObjects/ALBA/ALBAZoomMotorAutoBrightness.py +7 -11
- mxcubecore/HardwareObjects/ALBA/XalocMiniDiff.py +7 -8
- mxcubecore/HardwareObjects/BeamInfo.py +4 -6
- mxcubecore/HardwareObjects/Beamline.py +6 -7
- mxcubecore/HardwareObjects/BeamlineActions.py +3 -7
- mxcubecore/HardwareObjects/BlissHutchTrigger.py +2 -4
- mxcubecore/HardwareObjects/BlissMotorWPositions.py +4 -7
- mxcubecore/HardwareObjects/Cats90.py +33 -43
- mxcubecore/HardwareObjects/CatsBessy.py +1 -2
- mxcubecore/HardwareObjects/CatsMaint.py +2 -2
- mxcubecore/HardwareObjects/CentringMath.py +5 -4
- mxcubecore/HardwareObjects/DESY/DigitalZoomMotor.py +3 -5
- mxcubecore/HardwareObjects/DESY/MjpgStreamVideo.py +1 -3
- mxcubecore/HardwareObjects/DESY/P11Collect.py +6 -8
- mxcubecore/HardwareObjects/DESY/P11EDNACharacterisation.py +14 -16
- mxcubecore/HardwareObjects/DESY/P11ISPyBClient.py +6 -10
- mxcubecore/HardwareObjects/DESY/P11NanoDiff.py +5 -5
- mxcubecore/HardwareObjects/DataPublisher.py +2 -3
- mxcubecore/HardwareObjects/EDNACharacterisation.py +2 -4
- mxcubecore/HardwareObjects/EMBL/EMBLBeam.py +3 -3
- mxcubecore/HardwareObjects/EMBL/EMBLBeamCentering.py +2 -4
- mxcubecore/HardwareObjects/EMBL/EMBLBeamFocusing.py +3 -3
- mxcubecore/HardwareObjects/EMBL/EMBLDoorInterlock.py +1 -1
- mxcubecore/HardwareObjects/EMBL/EMBLEnergy.py +10 -18
- mxcubecore/HardwareObjects/EMBL/EMBLEnergyScan.py +9 -13
- mxcubecore/HardwareObjects/EMBL/EMBLFlux.py +10 -12
- mxcubecore/HardwareObjects/EMBL/EMBLMachineInfo.py +2 -2
- mxcubecore/HardwareObjects/EMBL/EMBLMiniDiff.py +18 -18
- mxcubecore/HardwareObjects/EMBL/EMBLMotorsGroup.py +6 -9
- mxcubecore/HardwareObjects/EMBL/EMBLOnlineProcessing.py +6 -6
- mxcubecore/HardwareObjects/EMBL/EMBLPPUControl.py +1 -1
- mxcubecore/HardwareObjects/EMBL/EMBLSSXChip.py +1 -4
- mxcubecore/HardwareObjects/EMBL/EMBLSlitBox.py +1 -3
- mxcubecore/HardwareObjects/EMBL/EMBLTableMotor.py +2 -3
- mxcubecore/HardwareObjects/EMBL/EMBLXRFSpectrum.py +4 -4
- mxcubecore/HardwareObjects/EMBL/EMBLXrayImaging.py +1 -1
- mxcubecore/HardwareObjects/EMBL/TINEMotor.py +2 -4
- mxcubecore/HardwareObjects/EMBLFlexHCD.py +5 -5
- mxcubecore/HardwareObjects/EMBLFlexHarvester.py +2 -2
- mxcubecore/HardwareObjects/ESRF/ESRFBeam.py +3 -5
- mxcubecore/HardwareObjects/ESRF/ESRFBeamInfo.py +1 -5
- mxcubecore/HardwareObjects/ESRF/ESRFBeamlineActions.py +2 -3
- mxcubecore/HardwareObjects/ESRF/ESRFEnergyScan.py +3 -3
- mxcubecore/HardwareObjects/ESRF/ESRFMultiCollect.py +7 -7
- mxcubecore/HardwareObjects/ESRF/ESRFPhotonFlux.py +2 -8
- mxcubecore/HardwareObjects/ESRF/ESRFSC3.py +11 -18
- mxcubecore/HardwareObjects/ESRF/ID29HutchTrigger.py +2 -4
- mxcubecore/HardwareObjects/ESRF/MD2MultiCollect.py +4 -4
- mxcubecore/HardwareObjects/ESRF/SSXICATLIMS.py +9 -6
- mxcubecore/HardwareObjects/EdnaWorkflow.py +9 -11
- mxcubecore/HardwareObjects/Energy.py +11 -15
- mxcubecore/HardwareObjects/ExporterMotor.py +1 -2
- mxcubecore/HardwareObjects/FlexHCD.py +7 -8
- mxcubecore/HardwareObjects/FlexHCDMaintenance.py +1 -2
- mxcubecore/HardwareObjects/GenericDiffractometer.py +26 -46
- mxcubecore/HardwareObjects/Gphl/CollectEmulator.py +6 -7
- mxcubecore/HardwareObjects/Gphl/GphlQueueEntry.py +2 -2
- mxcubecore/HardwareObjects/Gphl/GphlWorkflow.py +29 -43
- mxcubecore/HardwareObjects/Gphl/GphlWorkflowConnection.py +25 -35
- mxcubecore/HardwareObjects/ICATLIMS.py +17 -13
- mxcubecore/HardwareObjects/LNLS/EPICSMotor.py +1 -4
- mxcubecore/HardwareObjects/LNLS/LNLSAperture.py +2 -5
- mxcubecore/HardwareObjects/LNLS/LNLSCamera.py +14 -16
- mxcubecore/HardwareObjects/LNLS/LNLSCollect.py +20 -30
- mxcubecore/HardwareObjects/LNLS/LNLSDetDistMotor.py +7 -11
- mxcubecore/HardwareObjects/LNLS/LNLSEnergy.py +4 -6
- mxcubecore/HardwareObjects/LNLS/LNLSPilatusDet.py +49 -57
- mxcubecore/HardwareObjects/LNLS/LNLSTransmission.py +4 -7
- mxcubecore/HardwareObjects/LdapAuthenticator.py +11 -15
- mxcubecore/HardwareObjects/Lima2Detector.py +1 -1
- mxcubecore/HardwareObjects/LimaEigerDetector.py +1 -1
- mxcubecore/HardwareObjects/LimaPilatusDetector.py +1 -4
- mxcubecore/HardwareObjects/MAXIV/MAXIVAutoProcessing.py +3 -5
- mxcubecore/HardwareObjects/MD3UP.py +1 -2
- mxcubecore/HardwareObjects/MachCurrent.py +5 -5
- mxcubecore/HardwareObjects/Marvin.py +23 -35
- mxcubecore/HardwareObjects/Microdiff.py +6 -8
- mxcubecore/HardwareObjects/MicrodiffActuator.py +1 -1
- mxcubecore/HardwareObjects/MicrodiffBeamstop.py +1 -3
- mxcubecore/HardwareObjects/MicrodiffInOut.py +1 -1
- mxcubecore/HardwareObjects/MicrodiffKappaMotor.py +3 -4
- mxcubecore/HardwareObjects/MiniDiff.py +35 -57
- mxcubecore/HardwareObjects/MotorWPositions.py +3 -3
- mxcubecore/HardwareObjects/PlateManipulator.py +2 -2
- mxcubecore/HardwareObjects/ProposalTypeISPyBLims.py +8 -16
- mxcubecore/HardwareObjects/PyISPyBClient.py +8 -5
- mxcubecore/HardwareObjects/QtGraphicsLib.py +2 -2
- mxcubecore/HardwareObjects/QtGraphicsManager.py +13 -19
- mxcubecore/HardwareObjects/QtInstanceServer.py +27 -55
- mxcubecore/HardwareObjects/QtLimaVideo.py +1 -5
- mxcubecore/HardwareObjects/QueueManager.py +7 -9
- mxcubecore/HardwareObjects/QueueModel.py +6 -8
- mxcubecore/HardwareObjects/RedisClient.py +12 -16
- mxcubecore/HardwareObjects/SC3.py +1 -2
- mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Attenuator.py +1 -3
- mxcubecore/HardwareObjects/SOLEIL/PX1/PX1BeamInfo.py +1 -1
- mxcubecore/HardwareObjects/SOLEIL/PX1/PX1CatsMaint.py +3 -4
- mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Collect.py +11 -11
- mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Cryotong.py +8 -18
- mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Energy.py +6 -7
- mxcubecore/HardwareObjects/SOLEIL/PX1/PX1EnergyScan.py +21 -31
- mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Environment.py +1 -1
- mxcubecore/HardwareObjects/SOLEIL/PX1/PX1MiniDiff.py +11 -21
- mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Pilatus.py +9 -9
- mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Pss.py +1 -2
- mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Resolution.py +1 -5
- mxcubecore/HardwareObjects/SOLEIL/PX1/PX1TangoLight.py +3 -8
- mxcubecore/HardwareObjects/SOLEIL/PX2/PX2Attenuator.py +9 -13
- mxcubecore/HardwareObjects/SOLEIL/PX2/PX2Collect.py +1 -1
- mxcubecore/HardwareObjects/SOLEIL/PX2/PX2Diffractometer.py +22 -22
- mxcubecore/HardwareObjects/SOLEIL/PX2/PX2Energy.py +4 -6
- mxcubecore/HardwareObjects/SOLEIL/PX2/PX2Guillotine.py +2 -2
- mxcubecore/HardwareObjects/SOLEIL/SOLEILCatsMaint.py +6 -8
- mxcubecore/HardwareObjects/SOLEIL/SOLEILEnergyScan.py +44 -56
- mxcubecore/HardwareObjects/SOLEIL/SOLEILGuillotine.py +2 -2
- mxcubecore/HardwareObjects/SOLEIL/SOLEILISPyBClient.py +10 -10
- mxcubecore/HardwareObjects/SOLEIL/SOLEILMachineInfo.py +4 -8
- mxcubecore/HardwareObjects/SOLEIL/SOLEILPss.py +3 -4
- mxcubecore/HardwareObjects/SOLEIL/SOLEILRuche.py +1 -1
- mxcubecore/HardwareObjects/SOLEIL/TangoDCMotor.py +10 -16
- mxcubecore/HardwareObjects/SardanaMotor.py +4 -5
- mxcubecore/HardwareObjects/Session.py +1 -2
- mxcubecore/HardwareObjects/SpecMotorWPositions.py +5 -9
- mxcubecore/HardwareObjects/SpecMotorWSpecPositions.py +2 -4
- mxcubecore/HardwareObjects/SpecShell.py +7 -9
- mxcubecore/HardwareObjects/SpecState.py +5 -7
- mxcubecore/HardwareObjects/StateMachine.py +9 -10
- mxcubecore/HardwareObjects/TangoLimaMpegVideo.py +2 -3
- mxcubecore/HardwareObjects/TangoLimaVideo.py +3 -4
- mxcubecore/HardwareObjects/TangoMachineInfo.py +1 -3
- mxcubecore/HardwareObjects/TangoMotor.py +1 -3
- mxcubecore/HardwareObjects/UserTypeISPyBLims.py +7 -9
- mxcubecore/HardwareObjects/XMLRPCServer.py +20 -22
- mxcubecore/HardwareObjects/abstract/AbstractAperture.py +6 -11
- mxcubecore/HardwareObjects/abstract/AbstractCollect.py +6 -16
- mxcubecore/HardwareObjects/abstract/AbstractDetector.py +2 -7
- mxcubecore/HardwareObjects/abstract/AbstractEnergyScan.py +1 -1
- mxcubecore/HardwareObjects/abstract/AbstractLims.py +3 -4
- mxcubecore/HardwareObjects/abstract/AbstractNState.py +1 -2
- mxcubecore/HardwareObjects/abstract/AbstractProcedure.py +3 -4
- mxcubecore/HardwareObjects/abstract/AbstractSampleChanger.py +1 -1
- mxcubecore/HardwareObjects/abstract/AbstractVideoDevice.py +4 -4
- mxcubecore/HardwareObjects/abstract/AbstractXRFSpectrum.py +1 -1
- mxcubecore/HardwareObjects/abstract/ISPyBAbstractLims.py +11 -13
- mxcubecore/HardwareObjects/mockup/BeamlineTestMockup.py +11 -14
- mxcubecore/HardwareObjects/mockup/EnergyScanMockup.py +10 -11
- mxcubecore/HardwareObjects/mockup/ISPyBClientMockup.py +6 -6
- mxcubecore/HardwareObjects/mockup/ISPyBRestClientMockup.py +1 -1
- mxcubecore/HardwareObjects/mockup/LimaDetectorMockup.py +1 -2
- mxcubecore/HardwareObjects/mockup/MDCameraMockup.py +5 -6
- mxcubecore/HardwareObjects/mockup/MicrodiffInOutMockup.py +1 -1
- mxcubecore/HardwareObjects/mockup/MultiCollectMockup.py +1 -1
- mxcubecore/HardwareObjects/mockup/ShapeHistoryMockup.py +1 -2
- mxcubecore/HardwareObjects/mockup/XRFMockup.py +3 -6
- {mxcubecore-1.393.0.dist-info → mxcubecore-1.395.0.dist-info}/METADATA +1 -1
- {mxcubecore-1.393.0.dist-info → mxcubecore-1.395.0.dist-info}/RECORD +176 -176
- {mxcubecore-1.393.0.dist-info → mxcubecore-1.395.0.dist-info}/COPYING +0 -0
- {mxcubecore-1.393.0.dist-info → mxcubecore-1.395.0.dist-info}/COPYING.LESSER +0 -0
- {mxcubecore-1.393.0.dist-info → mxcubecore-1.395.0.dist-info}/WHEEL +0 -0
|
@@ -726,8 +726,8 @@ class P11Collect(AbstractCollect):
|
|
|
726
726
|
image_filename (str): Filename of the image to be loaded.
|
|
727
727
|
image_num (int, optional): Image number to load in ADXV. Defaults to 1.
|
|
728
728
|
"""
|
|
729
|
-
|
|
730
|
-
|
|
729
|
+
self.log.info(f"ADXV notify {image_filename}")
|
|
730
|
+
self.log.info(f"ADXV notify {image_num}")
|
|
731
731
|
adxv_host = "localhost"
|
|
732
732
|
adxv_port = 8100
|
|
733
733
|
|
|
@@ -739,7 +739,7 @@ class P11Collect(AbstractCollect):
|
|
|
739
739
|
)
|
|
740
740
|
adxv_socket.close()
|
|
741
741
|
except RuntimeWarning:
|
|
742
|
-
|
|
742
|
+
self.log.exception("")
|
|
743
743
|
else:
|
|
744
744
|
pass
|
|
745
745
|
|
|
@@ -1138,7 +1138,7 @@ class P11Collect(AbstractCollect):
|
|
|
1138
1138
|
except RuntimeError:
|
|
1139
1139
|
self.log.debug("mkdir failed:", str(sys.exc_info()))
|
|
1140
1140
|
|
|
1141
|
-
|
|
1141
|
+
self.log.exception("")
|
|
1142
1142
|
return False
|
|
1143
1143
|
else:
|
|
1144
1144
|
self.log.debug("dir not found:", str(sys.exc_info()))
|
|
@@ -1220,7 +1220,7 @@ class P11Collect(AbstractCollect):
|
|
|
1220
1220
|
|
|
1221
1221
|
auto_directory = xds_directory
|
|
1222
1222
|
|
|
1223
|
-
|
|
1223
|
+
self.log.info(
|
|
1224
1224
|
"[COLLECT] Processing input file directories: XDS: %s, AUTO: %s"
|
|
1225
1225
|
% (xds_directory, auto_directory)
|
|
1226
1226
|
)
|
|
@@ -1236,9 +1236,7 @@ class P11Collect(AbstractCollect):
|
|
|
1236
1236
|
try:
|
|
1237
1237
|
self.create_directories(snapshot_directory)
|
|
1238
1238
|
except Exception:
|
|
1239
|
-
|
|
1240
|
-
"Collection: Error creating snapshot directory"
|
|
1241
|
-
)
|
|
1239
|
+
self.log.exception("Collection: Error creating snapshot directory")
|
|
1242
1240
|
|
|
1243
1241
|
number_of_snapshots = self.current_dc_parameters["take_snapshots"]
|
|
1244
1242
|
logging.getLogger("user_level_log").info(
|
|
@@ -246,29 +246,27 @@ class P11EDNACharacterisation(EDNACharacterisation):
|
|
|
246
246
|
except AttributeError:
|
|
247
247
|
import traceback
|
|
248
248
|
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
)
|
|
252
|
-
logging.getLogger("HWR").debug(traceback.format_exc())
|
|
249
|
+
self.log.debug("EDNACharacterisation. transmission not saved ")
|
|
250
|
+
self.log.debug(traceback.format_exc())
|
|
253
251
|
|
|
254
252
|
try:
|
|
255
253
|
wavelength = HWR.beamline.energy.get_wavelength()
|
|
256
254
|
beam.setWavelength(XSDataWavelength(wavelength))
|
|
257
255
|
except AttributeError:
|
|
258
|
-
|
|
256
|
+
self.log.exception("")
|
|
259
257
|
|
|
260
258
|
try:
|
|
261
259
|
# Flux get_value() subsequently executing measure_flux() to fill in the dictionary
|
|
262
260
|
|
|
263
261
|
beam.setFlux(XSDataFlux(HWR.beamline.flux.get_value()))
|
|
264
262
|
except AttributeError:
|
|
265
|
-
|
|
263
|
+
self.log.exception("")
|
|
266
264
|
|
|
267
265
|
try:
|
|
268
266
|
min_exp_time = self.collect_obj.detector_hwobj.get_exposure_time_limits()[0]
|
|
269
267
|
beam.setMinExposureTimePerImage(XSDataTime(min_exp_time))
|
|
270
268
|
except AttributeError:
|
|
271
|
-
|
|
269
|
+
self.log.exception("")
|
|
272
270
|
|
|
273
271
|
try:
|
|
274
272
|
beamsize = self.collect_obj.beam_info_hwobj.get_beam_size()
|
|
@@ -281,7 +279,7 @@ class P11EDNACharacterisation(EDNACharacterisation):
|
|
|
281
279
|
)
|
|
282
280
|
)
|
|
283
281
|
except AttributeError:
|
|
284
|
-
|
|
282
|
+
self.log.exception("")
|
|
285
283
|
|
|
286
284
|
# Optimization parameters
|
|
287
285
|
diff_plan = edna_input.getDiffractionPlan()
|
|
@@ -476,7 +474,7 @@ class P11EDNACharacterisation(EDNACharacterisation):
|
|
|
476
474
|
collection_plan = edna_strategy.getCollectionPlan()[0]
|
|
477
475
|
wedges = collection_plan.getCollectionStrategy().getSubWedge()
|
|
478
476
|
except Exception:
|
|
479
|
-
|
|
477
|
+
self.log.exception("")
|
|
480
478
|
else:
|
|
481
479
|
try:
|
|
482
480
|
resolution = (
|
|
@@ -558,7 +556,7 @@ class P11EDNACharacterisation(EDNACharacterisation):
|
|
|
558
556
|
goniostat.getRotationAxisStart().getValue()
|
|
559
557
|
)
|
|
560
558
|
except AttributeError:
|
|
561
|
-
|
|
559
|
+
self.log.exception("")
|
|
562
560
|
""" GB:
|
|
563
561
|
try:
|
|
564
562
|
acquisition_parameters.osc_end = (
|
|
@@ -574,7 +572,7 @@ class P11EDNACharacterisation(EDNACharacterisation):
|
|
|
574
572
|
goniostat.getOscillationWidth().getValue()
|
|
575
573
|
)
|
|
576
574
|
except AttributeError:
|
|
577
|
-
|
|
575
|
+
self.log.exception("")
|
|
578
576
|
|
|
579
577
|
try:
|
|
580
578
|
num_images = int(
|
|
@@ -591,26 +589,26 @@ class P11EDNACharacterisation(EDNACharacterisation):
|
|
|
591
589
|
acq.path_template.start_num = 1
|
|
592
590
|
|
|
593
591
|
except AttributeError:
|
|
594
|
-
|
|
592
|
+
self.log.exception("")
|
|
595
593
|
|
|
596
594
|
try:
|
|
597
595
|
acquisition_parameters.transmission = (
|
|
598
596
|
beam.getTransmission().getValue()
|
|
599
597
|
)
|
|
600
598
|
except AttributeError:
|
|
601
|
-
|
|
599
|
+
self.log.exception("")
|
|
602
600
|
|
|
603
601
|
try:
|
|
604
602
|
acquisition_parameters.energy = round(
|
|
605
603
|
(123_984.0 / beam.getWavelength().getValue()) / 10000.0, 4
|
|
606
604
|
)
|
|
607
605
|
except AttributeError:
|
|
608
|
-
|
|
606
|
+
self.log.exception("")
|
|
609
607
|
|
|
610
608
|
try:
|
|
611
609
|
acquisition_parameters.exp_time = beam.getExposureTime().getValue()
|
|
612
610
|
except AttributeError:
|
|
613
|
-
|
|
611
|
+
self.log.exception("")
|
|
614
612
|
|
|
615
613
|
dc = qmo.DataCollection([acq], crystal, processing_parameters)
|
|
616
614
|
data_collections.append(dc)
|
|
@@ -652,6 +650,6 @@ class P11EDNACharacterisation(EDNACharacterisation):
|
|
|
652
650
|
html_report = html_report.replace("/beamline/p11", "/gpfs")
|
|
653
651
|
|
|
654
652
|
except AttributeError:
|
|
655
|
-
|
|
653
|
+
self.log.exception("")
|
|
656
654
|
|
|
657
655
|
return html_report
|
|
@@ -48,13 +48,9 @@ class P11ISPyBClient(ProposalISPyBClient):
|
|
|
48
48
|
else:
|
|
49
49
|
self.simulated_prop_code = None
|
|
50
50
|
self.simulated_prop_number = None
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
)
|
|
54
|
-
logging.getLogger("HWR").debug("PROPOSAL CODE is %s" % self.simulated_prop_code)
|
|
55
|
-
logging.getLogger("HWR").debug(
|
|
56
|
-
"PROPOSAL NUMBER is %s" % self.simulated_prop_number
|
|
57
|
-
)
|
|
51
|
+
self.log.debug("PROPOSAL SIMULATED is %s" % self.simulated_proposal)
|
|
52
|
+
self.log.debug("PROPOSAL CODE is %s" % self.simulated_prop_code)
|
|
53
|
+
self.log.debug("PROPOSAL NUMBER is %s" % self.simulated_prop_number)
|
|
58
54
|
|
|
59
55
|
def update_data_collection(self, mx_collection, wait=False):
|
|
60
56
|
mx_collection["beamline_name"] = "P11"
|
|
@@ -106,7 +102,7 @@ class P11ISPyBClient(ProposalISPyBClient):
|
|
|
106
102
|
logging.debug("P11 ISPyBClient - %s is %s " % (prop, ispyb_path))
|
|
107
103
|
mx_collect_dict[prop] = ispyb_path
|
|
108
104
|
except RuntimeWarning("Can not get ISPyB path for %s" % prop):
|
|
109
|
-
|
|
105
|
+
self.log.exception("")
|
|
110
106
|
|
|
111
107
|
def prepare_image_for_lims(self, image_dict):
|
|
112
108
|
for prop in ["jpegThumbnailFileFullPath", "jpegFileFullPath"]:
|
|
@@ -115,10 +111,10 @@ class P11ISPyBClient(ProposalISPyBClient):
|
|
|
115
111
|
ispyb_path = HWR.beamline.session.path_to_ispyb(path)
|
|
116
112
|
image_dict[prop] = ispyb_path
|
|
117
113
|
except RuntimeWarning("Can not prepare image path fir LIMS for %s" % prop):
|
|
118
|
-
|
|
114
|
+
self.log.exception("")
|
|
119
115
|
|
|
120
116
|
def get_proposal(self, proposal_code, proposal_number):
|
|
121
|
-
|
|
117
|
+
self.log.debug(
|
|
122
118
|
"ISPyB. Obtaining proposal for code=%s / prop_number=%s"
|
|
123
119
|
% (proposal_code, proposal_number)
|
|
124
120
|
)
|
|
@@ -327,7 +327,7 @@ class P11NanoDiff(GenericDiffractometer):
|
|
|
327
327
|
self.emit_centring_moving()
|
|
328
328
|
|
|
329
329
|
try:
|
|
330
|
-
|
|
330
|
+
self.log.debug(
|
|
331
331
|
"Centring finished. Moving motors to position %s" % str(motor_pos)
|
|
332
332
|
)
|
|
333
333
|
self.move_to_motors_positions(motor_pos, wait=True)
|
|
@@ -339,9 +339,9 @@ class P11NanoDiff(GenericDiffractometer):
|
|
|
339
339
|
# centred positions include omega to initial position
|
|
340
340
|
pass
|
|
341
341
|
# if not self.in_plate_mode():
|
|
342
|
-
#
|
|
342
|
+
# self.log.debug("Centring finished. Moving omega back to initial position")
|
|
343
343
|
# self.motor_hwobj_dict['phi'].set_value_relative(-180, timeout=None)
|
|
344
|
-
#
|
|
344
|
+
# self.log.debug(" Moving omega done")
|
|
345
345
|
|
|
346
346
|
if (
|
|
347
347
|
self.current_centring_method
|
|
@@ -429,7 +429,7 @@ class P11NanoDiff(GenericDiffractometer):
|
|
|
429
429
|
vertical_discplacements.append(y)
|
|
430
430
|
horizontal_displacements.append(x)
|
|
431
431
|
|
|
432
|
-
|
|
432
|
+
self.log.info("click %d %f %f %f" % (k + 1, omega, x, y))
|
|
433
433
|
|
|
434
434
|
dev_gonio = DeviceProxy("p11/servomotor/eh.1.01")
|
|
435
435
|
if k <= n_clicks:
|
|
@@ -1474,7 +1474,7 @@ class P11NanoDiff(GenericDiffractometer):
|
|
|
1474
1474
|
"motor_positions is not a dict and cannot be converted using as_dict()"
|
|
1475
1475
|
)
|
|
1476
1476
|
|
|
1477
|
-
|
|
1477
|
+
self.log.exception("")
|
|
1478
1478
|
return
|
|
1479
1479
|
|
|
1480
1480
|
# Move translation motors
|
|
@@ -17,7 +17,6 @@
|
|
|
17
17
|
# You should have received a copy of the GNU Lesser General Public License
|
|
18
18
|
# along with MXCuBE. If not, see <http://www.gnu.org/licenses/>.
|
|
19
19
|
import json
|
|
20
|
-
import logging
|
|
21
20
|
from enum import (
|
|
22
21
|
Enum,
|
|
23
22
|
unique,
|
|
@@ -164,10 +163,10 @@ class DataPublisher(HardwareObject):
|
|
|
164
163
|
)
|
|
165
164
|
else:
|
|
166
165
|
msg = "Unknown frame type %s" % message
|
|
167
|
-
|
|
166
|
+
self.log.error(msg)
|
|
168
167
|
except Exception:
|
|
169
168
|
msg = "Could not parse data in %s" % message
|
|
170
|
-
|
|
169
|
+
self.log.exception(msg)
|
|
171
170
|
|
|
172
171
|
def _remove_available(self, _id):
|
|
173
172
|
"""
|
|
@@ -142,10 +142,8 @@ class EDNACharacterisation(AbstractCharacterisation):
|
|
|
142
142
|
except AttributeError:
|
|
143
143
|
import traceback
|
|
144
144
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
)
|
|
148
|
-
logging.getLogger("HWR").debug(traceback.format_exc())
|
|
145
|
+
self.log.debug("EDNACharacterisation. transmission not saved ")
|
|
146
|
+
self.log.debug(traceback.format_exc())
|
|
149
147
|
|
|
150
148
|
try:
|
|
151
149
|
wavelength = HWR.beamline.energy.get_wavelength()
|
|
@@ -65,13 +65,13 @@ class EMBLBeam(AbstractBeam):
|
|
|
65
65
|
self.aperture_diameter_changed,
|
|
66
66
|
)
|
|
67
67
|
else:
|
|
68
|
-
|
|
68
|
+
self.log.debug("BeamInfo: Aperture hwobj not defined")
|
|
69
69
|
|
|
70
70
|
self._slits = self.get_object_by_role("slits")
|
|
71
71
|
if self._slits is not None:
|
|
72
72
|
self.connect(self._slits, "valueChanged", self.slits_gap_changed)
|
|
73
73
|
else:
|
|
74
|
-
|
|
74
|
+
self.log.debug("BeamInfo: Slits hwobj not defined")
|
|
75
75
|
|
|
76
76
|
self._definer = self.get_object_by_role("beam_focusing")
|
|
77
77
|
if self._definer is not None:
|
|
@@ -85,7 +85,7 @@ class EMBLBeam(AbstractBeam):
|
|
|
85
85
|
self.focusing_mode_changed,
|
|
86
86
|
)
|
|
87
87
|
else:
|
|
88
|
-
|
|
88
|
+
self.log.debug("BeamInfo: Beam focusing hwobj not defined")
|
|
89
89
|
|
|
90
90
|
self.chan_beam_position_hor = self.get_channel_object("BeamPositionHorizontal")
|
|
91
91
|
if self.chan_beam_position_hor:
|
|
@@ -101,9 +101,7 @@ class EMBLBeamCentering(HardwareObject):
|
|
|
101
101
|
self.focusing_mode_changed,
|
|
102
102
|
)
|
|
103
103
|
else:
|
|
104
|
-
|
|
105
|
-
"BeamlineTest: Beam focusing hwobj is not defined"
|
|
106
|
-
)
|
|
104
|
+
self.log.debug("BeamlineTest: Beam focusing hwobj is not defined")
|
|
107
105
|
|
|
108
106
|
def focusing_mode_changed(self, focusing_mode, beam_size):
|
|
109
107
|
"""Reemits focusing changed signal
|
|
@@ -128,7 +126,7 @@ class EMBLBeamCentering(HardwareObject):
|
|
|
128
126
|
with gevent.Timeout(20, Exception("Timeout waiting for pitch scan ready")):
|
|
129
127
|
while self.scan_status != 0: # chan_pitch_scan_status.get_value() != 0:
|
|
130
128
|
gevent.sleep(0.1)
|
|
131
|
-
|
|
129
|
+
self.log.error("scan status %s" % self.scan_status)
|
|
132
130
|
self.cmd_set_vmax_pitch(1)
|
|
133
131
|
sleep(3)
|
|
134
132
|
|
|
@@ -88,7 +88,7 @@ class EMBLBeamFocusing(HardwareObject):
|
|
|
88
88
|
)
|
|
89
89
|
motors_group.re_emit_values()
|
|
90
90
|
else:
|
|
91
|
-
|
|
91
|
+
self.log.debug("BeamFocusing: No motors defined")
|
|
92
92
|
self.active_focus_mode = self.focus_modes[0]["modeName"]
|
|
93
93
|
self.size = self.focus_modes[0]["size"]
|
|
94
94
|
self.re_emit_values()
|
|
@@ -96,7 +96,7 @@ class EMBLBeamFocusing(HardwareObject):
|
|
|
96
96
|
try:
|
|
97
97
|
self.cmd_set_phase = eval(self.get_property("setPhaseCmd"))
|
|
98
98
|
except Exception:
|
|
99
|
-
|
|
99
|
+
self.log.exception("")
|
|
100
100
|
|
|
101
101
|
self.aperture_hwobj = self.get_object_by_role("aperture")
|
|
102
102
|
|
|
@@ -240,7 +240,7 @@ class EMBLBeamFocusing(HardwareObject):
|
|
|
240
240
|
:type focus_mode: str
|
|
241
241
|
"""
|
|
242
242
|
gevent.spawn(self.focus_mode_task, focus_mode)
|
|
243
|
-
|
|
243
|
+
self.log.info("Focusing: %s mode requested" % focus_mode)
|
|
244
244
|
self.emit("focusingModeRequested", focus_mode)
|
|
245
245
|
|
|
246
246
|
def focus_mode_task(self, focus_mode):
|
|
@@ -188,7 +188,7 @@ class EMBLDoorInterlock(HardwareObject):
|
|
|
188
188
|
)
|
|
189
189
|
logging.getLogger("GUI").error(msg)
|
|
190
190
|
else:
|
|
191
|
-
|
|
191
|
+
self.log.info("Door is Interlocked")
|
|
192
192
|
|
|
193
193
|
def re_emit_values(self):
|
|
194
194
|
"""Updates state"""
|
|
@@ -104,7 +104,7 @@ class EMBLEnergy(AbstractEnergy):
|
|
|
104
104
|
try:
|
|
105
105
|
self._default_energy = self.get_property("defaultEnergy")
|
|
106
106
|
except Exception:
|
|
107
|
-
|
|
107
|
+
self.log.warning("Energy: no default energy defined")
|
|
108
108
|
|
|
109
109
|
try:
|
|
110
110
|
self._energy_limits = eval(self.get_property("staticLimits"))
|
|
@@ -135,9 +135,7 @@ class EMBLEnergy(AbstractEnergy):
|
|
|
135
135
|
value = self.chan_energy.get_value()
|
|
136
136
|
return value[0] / 1000
|
|
137
137
|
except Exception:
|
|
138
|
-
|
|
139
|
-
"Energy: could not read current energy"
|
|
140
|
-
)
|
|
138
|
+
self.log.exception("Energy: could not read current energy")
|
|
141
139
|
return None
|
|
142
140
|
return value
|
|
143
141
|
|
|
@@ -153,9 +151,7 @@ class EMBLEnergy(AbstractEnergy):
|
|
|
153
151
|
self.chan_limit_high.get_value(),
|
|
154
152
|
)
|
|
155
153
|
except Exception:
|
|
156
|
-
|
|
157
|
-
"Energy: could not read energy limits"
|
|
158
|
-
)
|
|
154
|
+
self.log.exception("Energy: could not read energy limits")
|
|
159
155
|
return self._energy_limits
|
|
160
156
|
|
|
161
157
|
def get_wavelength_limits(self):
|
|
@@ -205,11 +201,11 @@ class EMBLEnergy(AbstractEnergy):
|
|
|
205
201
|
"""
|
|
206
202
|
Checks given value if it is within limits
|
|
207
203
|
"""
|
|
208
|
-
|
|
204
|
+
self.log.info("Checking the move limits")
|
|
209
205
|
result = False
|
|
210
206
|
|
|
211
207
|
if self._energy_limits[0] <= value <= self.en_lims[1]:
|
|
212
|
-
|
|
208
|
+
self.log.info("Limits ok")
|
|
213
209
|
result = True
|
|
214
210
|
else:
|
|
215
211
|
logging.getLogger("GUI").info("Energy: Requested value is out of limits")
|
|
@@ -223,7 +219,7 @@ class EMBLEnergy(AbstractEnergy):
|
|
|
223
219
|
# :param wait: boolean
|
|
224
220
|
# :return:
|
|
225
221
|
# """
|
|
226
|
-
#
|
|
222
|
+
# self.log.info("Moving wavelength to (%s)" % value)
|
|
227
223
|
# return self.move_energy(12.3984 / value, wait)
|
|
228
224
|
# # return self.startMoveEnergy(value, wait)
|
|
229
225
|
|
|
@@ -313,7 +309,7 @@ class EMBLEnergy(AbstractEnergy):
|
|
|
313
309
|
self._moving = False
|
|
314
310
|
self.set_break_bragg()
|
|
315
311
|
if self.cmd_reset_perp is not None:
|
|
316
|
-
|
|
312
|
+
self.log.info("Energy: Perp reset sent")
|
|
317
313
|
self.cmd_reset_perp()
|
|
318
314
|
self.move_energy_finished(0)
|
|
319
315
|
self.update_state(self.STATES.READY)
|
|
@@ -402,22 +398,18 @@ class EMBLEnergy(AbstractEnergy):
|
|
|
402
398
|
self.wait_ready()
|
|
403
399
|
gevent.sleep(1)
|
|
404
400
|
self.wait_ready()
|
|
405
|
-
|
|
401
|
+
self.log.info("Energy: Set bragg break cmd send")
|
|
406
402
|
self.cmd_set_break_bragg(1)
|
|
407
403
|
gevent.sleep(2)
|
|
408
404
|
if self.chan_status_bragg_break is not None:
|
|
409
|
-
|
|
410
|
-
"Energy: Waiting for break set (first try) ..."
|
|
411
|
-
)
|
|
405
|
+
self.log.warning("Energy: Waiting for break set (first try) ...")
|
|
412
406
|
with gevent.Timeout(
|
|
413
407
|
20, Exception("Energy: Timeout waiting for break set")
|
|
414
408
|
):
|
|
415
409
|
while self.chan_status_bragg_break.get_value() != 0:
|
|
416
410
|
gevent.sleep(0.1)
|
|
417
411
|
gevent.sleep(3)
|
|
418
|
-
|
|
419
|
-
"Waiting for break set (second try) ..."
|
|
420
|
-
)
|
|
412
|
+
self.log.warning("Waiting for break set (second try) ...")
|
|
421
413
|
with gevent.Timeout(20, Exception("Timeout waiting for break set")):
|
|
422
414
|
while self.chan_status_bragg_break.get_value() != 0:
|
|
423
415
|
gevent.sleep(0.1)
|
|
@@ -181,7 +181,7 @@ class EMBLEnergyScan(AbstractEnergyScan, HardwareObject):
|
|
|
181
181
|
:type exptime: float
|
|
182
182
|
:return: True if success, otherwise returns False
|
|
183
183
|
"""
|
|
184
|
-
log =
|
|
184
|
+
log = self.log
|
|
185
185
|
|
|
186
186
|
self.scan_info = {
|
|
187
187
|
"sessionId": session_id,
|
|
@@ -304,7 +304,7 @@ class EMBLEnergyScan(AbstractEnergyScan, HardwareObject):
|
|
|
304
304
|
def scanCommandFinished(self, *args):
|
|
305
305
|
with TaskUtils.cleanup(self.ready_event.set):
|
|
306
306
|
self.scan_info["endTime"] = time.strftime("%Y-%m-%d %H:%M:%S")
|
|
307
|
-
|
|
307
|
+
self.log.debug("Energy scan: finished")
|
|
308
308
|
self.scanning = False
|
|
309
309
|
self.scan_info["startEnergy"] = self.scan_data[-1][0]
|
|
310
310
|
self.scan_info["endEnergy"] = self.scan_data[-1][1]
|
|
@@ -330,9 +330,7 @@ class EMBLEnergyScan(AbstractEnergyScan, HardwareObject):
|
|
|
330
330
|
if not os.path.exists(archive_directory):
|
|
331
331
|
os.makedirs(archive_directory)
|
|
332
332
|
except Exception:
|
|
333
|
-
|
|
334
|
-
"EMBLEnergyScan: could not create results directory."
|
|
335
|
-
)
|
|
333
|
+
self.log.exception("EMBLEnergyScan: could not create results directory.")
|
|
336
334
|
self.store_energy_scan()
|
|
337
335
|
self.emit("energyScanFailed", ())
|
|
338
336
|
return
|
|
@@ -340,9 +338,7 @@ class EMBLEnergyScan(AbstractEnergyScan, HardwareObject):
|
|
|
340
338
|
try:
|
|
341
339
|
archive_file_raw = open(archive_file_raw_filename, "w")
|
|
342
340
|
except Exception:
|
|
343
|
-
|
|
344
|
-
"EMBLEnergyScan: could not create results raw file"
|
|
345
|
-
)
|
|
341
|
+
self.log.exception("EMBLEnergyScan: could not create results raw file")
|
|
346
342
|
self.store_energy_scan()
|
|
347
343
|
self.emit("energyScanFailed", ())
|
|
348
344
|
return
|
|
@@ -378,7 +374,7 @@ class EMBLEnergyScan(AbstractEnergyScan, HardwareObject):
|
|
|
378
374
|
|
|
379
375
|
logging.getLogger("GUI").error("Energy scan: Chooch failed")
|
|
380
376
|
|
|
381
|
-
|
|
377
|
+
self.log.exception("")
|
|
382
378
|
return None, None, None, None, None, None, None, [], [], [], None
|
|
383
379
|
|
|
384
380
|
rm = (pk + 30) / 1000.0
|
|
@@ -409,7 +405,7 @@ class EMBLEnergyScan(AbstractEnergyScan, HardwareObject):
|
|
|
409
405
|
for i in range(len(chooch_graph_x)):
|
|
410
406
|
chooch_graph_x[i] = chooch_graph_x[i] / 1000.0
|
|
411
407
|
|
|
412
|
-
#
|
|
408
|
+
# self.log.info("EMBLEnergyScan: Saving png" )
|
|
413
409
|
# prepare to save png files
|
|
414
410
|
title = "%s %s %s\n%.4f %.2f %.2f\n%.4f %.2f %.2f" % (
|
|
415
411
|
"energy",
|
|
@@ -459,13 +455,13 @@ class EMBLEnergyScan(AbstractEnergyScan, HardwareObject):
|
|
|
459
455
|
|
|
460
456
|
self.scan_info["jpegChoochFileFullPath"] = str(archive_file_png_filename)
|
|
461
457
|
try:
|
|
462
|
-
|
|
458
|
+
self.log.info(
|
|
463
459
|
"Saving energy scan to archive directory for ISPyB : %s",
|
|
464
460
|
archive_file_png_filename,
|
|
465
461
|
)
|
|
466
462
|
canvas.print_figure(archive_file_png_filename, dpi=80)
|
|
467
463
|
except Exception:
|
|
468
|
-
|
|
464
|
+
self.log.exception("could not save figure")
|
|
469
465
|
|
|
470
466
|
self.store_energy_scan()
|
|
471
467
|
|
|
@@ -516,7 +512,7 @@ class EMBLEnergyScan(AbstractEnergyScan, HardwareObject):
|
|
|
516
512
|
}
|
|
517
513
|
)
|
|
518
514
|
except IndexError:
|
|
519
|
-
|
|
515
|
+
self.log.exception("")
|
|
520
516
|
return elements
|
|
521
517
|
|
|
522
518
|
def get_scan_data(self):
|
|
@@ -170,7 +170,7 @@ class EMBLFlux(AbstractFlux):
|
|
|
170
170
|
self.intensity_ranges, key=lambda item: item["max"]
|
|
171
171
|
)
|
|
172
172
|
except Exception:
|
|
173
|
-
|
|
173
|
+
self.log.error("BeamlineTest: No intensity ranges defined")
|
|
174
174
|
"""
|
|
175
175
|
|
|
176
176
|
self.chan_intens_mean = self.get_channel_object("intensMean")
|
|
@@ -364,23 +364,23 @@ class EMBLFlux(AbstractFlux):
|
|
|
364
364
|
# Close the fast shutter
|
|
365
365
|
# -----------------------------------------------------------------
|
|
366
366
|
HWR.beamline.fast_shutter.close(wait=True)
|
|
367
|
-
|
|
367
|
+
self.log.debug("Measure flux: Fast shutter closed")
|
|
368
368
|
gevent.sleep(0.2)
|
|
369
369
|
HWR.beamline.diffractometer.wait_ready(10)
|
|
370
370
|
|
|
371
371
|
# Move back light in, check beamstop position
|
|
372
372
|
# -----------------------------------------------------------------
|
|
373
|
-
|
|
373
|
+
self.log.info("Measure flux: Moving backlight out...")
|
|
374
374
|
self.emit("progressStep", 1, "Moving backlight out")
|
|
375
375
|
HWR.beamline.back_light.move_in()
|
|
376
|
-
|
|
376
|
+
self.log.debug("Measure flux: Backlight moved out")
|
|
377
377
|
|
|
378
378
|
beamstop_position = HWR.beamline.beamstop.get_value()
|
|
379
379
|
if beamstop_position == "BEAM":
|
|
380
380
|
self.emit("progressStep", 2, "Moving beamstop OFF")
|
|
381
381
|
HWR.beamline.beamstop.set_position("OFF")
|
|
382
382
|
HWR.beamline.diffractometer.wait_ready(30)
|
|
383
|
-
|
|
383
|
+
self.log.info("Measure flux: Beamstop moved off")
|
|
384
384
|
|
|
385
385
|
# Check scintillator position
|
|
386
386
|
# -----------------------------------------------------------------
|
|
@@ -390,9 +390,7 @@ class EMBLFlux(AbstractFlux):
|
|
|
390
390
|
HWR.beamline.diffractometer.set_scintillator_position("PHOTODIODE")
|
|
391
391
|
gevent.sleep(1)
|
|
392
392
|
HWR.beamline.diffractometer.wait_ready(30)
|
|
393
|
-
|
|
394
|
-
"Measure flux: Scintillator set to photodiode"
|
|
395
|
-
)
|
|
393
|
+
self.log.debug("Measure flux: Scintillator set to photodiode")
|
|
396
394
|
|
|
397
395
|
self.measured_flux_list = []
|
|
398
396
|
|
|
@@ -417,7 +415,7 @@ class EMBLFlux(AbstractFlux):
|
|
|
417
415
|
|
|
418
416
|
gevent.sleep(1)
|
|
419
417
|
intens_value = self.chan_intens_mean.get_value(force=True)
|
|
420
|
-
|
|
418
|
+
self.log.info("Measured current: %s" % intens_value)
|
|
421
419
|
# HWR.beamline.fast_shutter.closeShutter(wait=True)
|
|
422
420
|
intensity_value = intens_value[0] + 1.860e-5 # 2.780e-6
|
|
423
421
|
self.measured_flux_list.append(self.get_flux_result(intensity_value))
|
|
@@ -428,21 +426,21 @@ class EMBLFlux(AbstractFlux):
|
|
|
428
426
|
self.cmd_flux_record([_x["flux"] for _x in self.measured_flux_list])
|
|
429
427
|
gevent.sleep(2)
|
|
430
428
|
except Exception:
|
|
431
|
-
|
|
429
|
+
self.log.exception("")
|
|
432
430
|
|
|
433
431
|
max_frame_rate = 25
|
|
434
432
|
else:
|
|
435
433
|
self.emit("progressStep", 5, "Measuring the intensity")
|
|
436
434
|
current_aperture_index = 0
|
|
437
435
|
HWR.beamline.fast_shutter.open(wait=True)
|
|
438
|
-
|
|
436
|
+
self.log.debug("Measure flux: Fast shutter opened")
|
|
439
437
|
|
|
440
438
|
gevent.sleep(0.5)
|
|
441
439
|
intens_value = self.chan_intens_mean.get_value()
|
|
442
440
|
|
|
443
441
|
intens_range_now = self.chan_intens_range.get_value()
|
|
444
442
|
HWR.beamline.fast_shutter.close(wait=True)
|
|
445
|
-
|
|
443
|
+
self.log.debug("Measure flux: Fast shutter closed")
|
|
446
444
|
|
|
447
445
|
intensity_value = intens_value[0] + 2.780e-6
|
|
448
446
|
self.measured_flux_list.append(self.get_flux_result(intensity_value))
|
|
@@ -161,7 +161,7 @@ class EMBLMachineInfo(HardwareObject):
|
|
|
161
161
|
self.cryojet_in_changed(self.chan_cryojet_in.get_value())
|
|
162
162
|
self.chan_cryojet_in.connect_signal("update", self.cryojet_in_changed)
|
|
163
163
|
else:
|
|
164
|
-
|
|
164
|
+
self.log.debug("MachineInfo: Cryojet channel not defined")
|
|
165
165
|
|
|
166
166
|
self.chan_sc_dewar_low_level_alarm = self.get_channel_object(
|
|
167
167
|
"scLowLevelAlarm", optional=True
|
|
@@ -524,7 +524,7 @@ class EMBLMachineInfo(HardwareObject):
|
|
|
524
524
|
last_value = line_el[-1]
|
|
525
525
|
last_value = float(last_value)
|
|
526
526
|
except Exception:
|
|
527
|
-
|
|
527
|
+
self.log.debug("MachineInfo: Unable to read epics values")
|
|
528
528
|
finally:
|
|
529
529
|
if url_file:
|
|
530
530
|
url_file.close()
|