cgse 2023.38.0__py3-none-any.whl → 2024.1.4__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.
- README.md +27 -0
- bump.py +85 -0
- cgse-2024.1.4.dist-info/METADATA +38 -0
- cgse-2024.1.4.dist-info/RECORD +5 -0
- {cgse-2023.38.0.dist-info → cgse-2024.1.4.dist-info}/WHEEL +1 -2
- cgse-2023.38.0.dist-info/COPYING +0 -674
- cgse-2023.38.0.dist-info/COPYING.LESSER +0 -165
- cgse-2023.38.0.dist-info/METADATA +0 -144
- cgse-2023.38.0.dist-info/RECORD +0 -649
- cgse-2023.38.0.dist-info/entry_points.txt +0 -75
- cgse-2023.38.0.dist-info/top_level.txt +0 -2
- egse/__init__.py +0 -12
- egse/__main__.py +0 -32
- egse/aeu/aeu.py +0 -5235
- egse/aeu/aeu_awg.yaml +0 -265
- egse/aeu/aeu_crio.yaml +0 -273
- egse/aeu/aeu_cs.py +0 -626
- egse/aeu/aeu_devif.py +0 -321
- egse/aeu/aeu_main_ui.py +0 -912
- egse/aeu/aeu_metrics.py +0 -131
- egse/aeu/aeu_protocol.py +0 -463
- egse/aeu/aeu_psu.yaml +0 -204
- egse/aeu/aeu_ui.py +0 -873
- egse/aeu/arbdata/FccdRead.arb +0 -2
- egse/aeu/arbdata/FccdRead_min_points.arb +0 -2
- egse/aeu/arbdata/HeaterSync_FccdRead.arb +0 -2
- egse/aeu/arbdata/HeaterSync_ccdRead25.arb +0 -2
- egse/aeu/arbdata/HeaterSync_ccdRead31_25.arb +0 -2
- egse/aeu/arbdata/HeaterSync_ccdRead37_50.arb +0 -2
- egse/aeu/arbdata/HeaterSync_ccdRead43_75.arb +0 -2
- egse/aeu/arbdata/HeaterSync_ccdRead50.arb +0 -2
- egse/aeu/arbdata/Heater_FccdRead_min_points.arb +0 -2
- egse/aeu/arbdata/ccdRead25.arb +0 -2
- egse/aeu/arbdata/ccdRead25_150ms.arb +0 -2
- egse/aeu/arbdata/ccdRead31_25.arb +0 -2
- egse/aeu/arbdata/ccdRead31_25_150ms.arb +0 -2
- egse/aeu/arbdata/ccdRead37_50.arb +0 -2
- egse/aeu/arbdata/ccdRead37_50_150ms.arb +0 -2
- egse/aeu/arbdata/ccdRead43_75.arb +0 -2
- egse/aeu/arbdata/ccdRead43_75_150ms.arb +0 -2
- egse/aeu/arbdata/ccdRead50.arb +0 -2
- egse/aeu/arbdata/ccdRead50_150ms.arb +0 -2
- egse/alert/__init__.py +0 -1049
- egse/alert/alertman.yaml +0 -37
- egse/alert/alertman_cs.py +0 -234
- egse/alert/alertman_ui.py +0 -603
- egse/alert/gsm/beaglebone.py +0 -138
- egse/alert/gsm/beaglebone.yaml +0 -51
- egse/alert/gsm/beaglebone_cs.py +0 -108
- egse/alert/gsm/beaglebone_devif.py +0 -130
- egse/alert/gsm/beaglebone_protocol.py +0 -48
- egse/bits.py +0 -318
- egse/camera.py +0 -44
- egse/collimator/__init__.py +0 -0
- egse/collimator/fcul/__init__.py +0 -0
- egse/collimator/fcul/ogse.py +0 -1077
- egse/collimator/fcul/ogse.yaml +0 -14
- egse/collimator/fcul/ogse_cs.py +0 -154
- egse/collimator/fcul/ogse_devif.py +0 -358
- egse/collimator/fcul/ogse_protocol.py +0 -129
- egse/collimator/fcul/ogse_sim.py +0 -431
- egse/collimator/fcul/ogse_ui.py +0 -1108
- egse/command.py +0 -699
- egse/config.py +0 -410
- egse/confman/__init__.py +0 -1015
- egse/confman/confman.yaml +0 -67
- egse/confman/confman_cs.py +0 -239
- egse/confman/confman_ui.py +0 -381
- egse/confman/setup_ui.py +0 -565
- egse/control.py +0 -442
- egse/coordinates/__init__.py +0 -531
- egse/coordinates/avoidance.py +0 -103
- egse/coordinates/cslmodel.py +0 -127
- egse/coordinates/laser_tracker_to_dict.py +0 -120
- egse/coordinates/point.py +0 -707
- egse/coordinates/pyplot.py +0 -195
- egse/coordinates/referenceFrame.py +0 -1279
- egse/coordinates/refmodel.py +0 -737
- egse/coordinates/rotationMatrix.py +0 -85
- egse/coordinates/transform3d_addon.py +0 -419
- egse/csl/__init__.py +0 -50
- egse/csl/commanding.py +0 -78
- egse/csl/icons/hexapod-connected-selected.svg +0 -30
- egse/csl/icons/hexapod-connected.svg +0 -30
- egse/csl/icons/hexapod-homing-selected.svg +0 -68
- egse/csl/icons/hexapod-homing.svg +0 -68
- egse/csl/icons/hexapod-retract-selected.svg +0 -56
- egse/csl/icons/hexapod-retract.svg +0 -51
- egse/csl/icons/hexapod-zero-selected.svg +0 -56
- egse/csl/icons/hexapod-zero.svg +0 -56
- egse/csl/icons/logo-puna.svg +0 -92
- egse/csl/icons/stop.svg +0 -1
- egse/csl/initialisation.py +0 -102
- egse/csl/mech_pos_settings.yaml +0 -18
- egse/das.py +0 -1247
- egse/das.yaml +0 -7
- egse/data/conf/SETUP_CSL_00000_170620_150000.yaml +0 -5
- egse/data/conf/SETUP_CSL_00001_170620_151010.yaml +0 -69
- egse/data/conf/SETUP_CSL_00002_170620_151020.yaml +0 -69
- egse/data/conf/SETUP_CSL_00003_170620_151030.yaml +0 -69
- egse/data/conf/SETUP_CSL_00004_170620_151040.yaml +0 -69
- egse/data/conf/SETUP_CSL_00005_170620_151050.yaml +0 -69
- egse/data/conf/SETUP_CSL_00006_170620_151060.yaml +0 -69
- egse/data/conf/SETUP_CSL_00007_170620_151070.yaml +0 -69
- egse/data/conf/SETUP_CSL_00008_170620_151080.yaml +0 -75
- egse/data/conf/SETUP_CSL_00010_210308_083016.yaml +0 -138
- egse/data/conf/SETUP_INTA_00000_170620_150000.yaml +0 -4
- egse/data/conf/SETUP_SRON_00000_170620_150000.yaml +0 -4
- egse/decorators.py +0 -415
- egse/device.py +0 -269
- egse/dpu/__init__.py +0 -2681
- egse/dpu/ccd_ui.py +0 -508
- egse/dpu/dpu.py +0 -786
- egse/dpu/dpu.yaml +0 -153
- egse/dpu/dpu_cs.py +0 -272
- egse/dpu/dpu_ui.py +0 -668
- egse/dpu/fitsgen.py +0 -2077
- egse/dpu/fitsgen_test.py +0 -752
- egse/dpu/fitsgen_ui.py +0 -399
- egse/dpu/hdf5_model.py +0 -332
- egse/dpu/hdf5_ui.py +0 -277
- egse/dpu/hdf5_viewer.py +0 -506
- egse/dpu/hk_ui.py +0 -468
- egse/dpu_commands.py +0 -81
- egse/dsi/constants.py +0 -220
- egse/dsi/esl.py +0 -870
- egse/dsi/rmap.py +0 -1042
- egse/dsi/rmapci.py +0 -37
- egse/dsi/spw.py +0 -154
- egse/dsi/spw_state.py +0 -29
- egse/dummy.py +0 -258
- egse/dyndummy.py +0 -179
- egse/env.py +0 -278
- egse/exceptions.py +0 -88
- egse/fdir/__init__.py +0 -28
- egse/fdir/fdir_manager.py +0 -85
- egse/fdir/fdir_manager.yaml +0 -51
- egse/fdir/fdir_manager_controller.py +0 -228
- egse/fdir/fdir_manager_cs.py +0 -164
- egse/fdir/fdir_manager_interface.py +0 -25
- egse/fdir/fdir_remote.py +0 -73
- egse/fdir/fdir_remote.yaml +0 -37
- egse/fdir/fdir_remote_controller.py +0 -50
- egse/fdir/fdir_remote_cs.py +0 -97
- egse/fdir/fdir_remote_interface.py +0 -14
- egse/fdir/fdir_remote_popup.py +0 -31
- egse/fee/__init__.py +0 -114
- egse/fee/f_fee_register.yaml +0 -43
- egse/fee/fee.py +0 -631
- egse/fee/feesim.py +0 -750
- egse/fee/n_fee_hk.py +0 -761
- egse/fee/nfee.py +0 -187
- egse/filterwheel/__init__.py +0 -4
- egse/filterwheel/eksma/__init__.py +0 -24
- egse/filterwheel/eksma/fw8smc4.py +0 -661
- egse/filterwheel/eksma/fw8smc4.yaml +0 -121
- egse/filterwheel/eksma/fw8smc4_cs.py +0 -144
- egse/filterwheel/eksma/fw8smc4_devif.py +0 -473
- egse/filterwheel/eksma/fw8smc4_protocol.py +0 -81
- egse/filterwheel/eksma/fw8smc4_ui.py +0 -940
- egse/filterwheel/eksma/fw8smc5.py +0 -111
- egse/filterwheel/eksma/fw8smc5.yaml +0 -105
- egse/filterwheel/eksma/fw8smc5_controller.py +0 -307
- egse/filterwheel/eksma/fw8smc5_cs.py +0 -141
- egse/filterwheel/eksma/fw8smc5_interface.py +0 -65
- egse/filterwheel/eksma/fw8smc5_simulator.py +0 -29
- egse/filterwheel/eksma/fw8smc5_ui.py +0 -1068
- egse/filterwheel/eksma/testpythonfw.py +0 -215
- egse/fov/__init__.py +0 -65
- egse/fov/fov_hk.py +0 -712
- egse/fov/fov_ui.py +0 -861
- egse/fov/fov_ui_controller.py +0 -140
- egse/fov/fov_ui_model.py +0 -200
- egse/fov/fov_ui_view.py +0 -345
- egse/gimbal/__init__.py +0 -32
- egse/gimbal/symetrie/__init__.py +0 -26
- egse/gimbal/symetrie/alpha.py +0 -586
- egse/gimbal/symetrie/generic_gimbal_ui.py +0 -1521
- egse/gimbal/symetrie/gimbal.py +0 -877
- egse/gimbal/symetrie/gimbal.yaml +0 -168
- egse/gimbal/symetrie/gimbal_cs.py +0 -183
- egse/gimbal/symetrie/gimbal_protocol.py +0 -135
- egse/gimbal/symetrie/gimbal_ui.py +0 -361
- egse/gimbal/symetrie/pmac.py +0 -1006
- egse/gimbal/symetrie/pmac_regex.py +0 -83
- egse/graph.py +0 -132
- egse/gui/__init__.py +0 -47
- egse/gui/buttons.py +0 -378
- egse/gui/focalplane.py +0 -1281
- egse/gui/formatter.py +0 -10
- egse/gui/led.py +0 -162
- egse/gui/limitswitch.py +0 -143
- egse/gui/mechanisms.py +0 -588
- egse/gui/states.py +0 -148
- egse/gui/stripchart.py +0 -729
- egse/gui/switch.py +0 -112
- egse/h5.py +0 -274
- egse/help/__init__.py +0 -0
- egse/help/help_ui.py +0 -126
- egse/hexapod/__init__.py +0 -32
- egse/hexapod/symetrie/__init__.py +0 -138
- egse/hexapod/symetrie/alpha.py +0 -874
- egse/hexapod/symetrie/dynalpha.py +0 -1387
- egse/hexapod/symetrie/hexapod_ui.py +0 -1516
- egse/hexapod/symetrie/pmac.py +0 -1010
- egse/hexapod/symetrie/pmac_regex.py +0 -83
- egse/hexapod/symetrie/puna.py +0 -1167
- egse/hexapod/symetrie/puna.yaml +0 -193
- egse/hexapod/symetrie/puna_cs.py +0 -196
- egse/hexapod/symetrie/puna_protocol.py +0 -131
- egse/hexapod/symetrie/puna_ui.py +0 -434
- egse/hexapod/symetrie/punaplus.py +0 -107
- egse/hexapod/symetrie/zonda.py +0 -872
- egse/hexapod/symetrie/zonda.yaml +0 -337
- egse/hexapod/symetrie/zonda_cs.py +0 -172
- egse/hexapod/symetrie/zonda_devif.py +0 -415
- egse/hexapod/symetrie/zonda_protocol.py +0 -119
- egse/hexapod/symetrie/zonda_ui.py +0 -449
- egse/hk.py +0 -765
- egse/icons/aeu-cs-start.svg +0 -117
- egse/icons/aeu-cs-stop.svg +0 -118
- egse/icons/aeu-cs.svg +0 -107
- egse/icons/aeu_cs-started.svg +0 -112
- egse/icons/aeu_cs-stopped.svg +0 -112
- egse/icons/aeu_cs.svg +0 -55
- egse/icons/alert.svg +0 -1
- egse/icons/arrow-double-left.png +0 -0
- egse/icons/arrow-double-right.png +0 -0
- egse/icons/arrow-up.svg +0 -11
- egse/icons/backward.svg +0 -1
- egse/icons/busy.svg +0 -1
- egse/icons/cleaning.svg +0 -115
- egse/icons/color-scheme.svg +0 -1
- egse/icons/cs-connected-alert.svg +0 -91
- egse/icons/cs-connected-disabled.svg +0 -43
- egse/icons/cs-connected.svg +0 -89
- egse/icons/cs-not-connected.svg +0 -44
- egse/icons/double-left-arrow.svg +0 -1
- egse/icons/double-right-arrow.svg +0 -1
- egse/icons/erase-disabled.svg +0 -19
- egse/icons/erase.svg +0 -59
- egse/icons/fitsgen-start.svg +0 -47
- egse/icons/fitsgen-stop.svg +0 -48
- egse/icons/fitsgen.svg +0 -1
- egse/icons/forward.svg +0 -1
- egse/icons/fov-hk-start.svg +0 -33
- egse/icons/fov-hk-stop.svg +0 -37
- egse/icons/fov-hk.svg +0 -1
- egse/icons/front-desk.svg +0 -1
- egse/icons/home-actioned.svg +0 -15
- egse/icons/home-disabled.svg +0 -15
- egse/icons/home.svg +0 -13
- egse/icons/info.svg +0 -1
- egse/icons/invalid.png +0 -0
- egse/icons/led-green.svg +0 -20
- egse/icons/led-grey.svg +0 -20
- egse/icons/led-orange.svg +0 -20
- egse/icons/led-red.svg +0 -20
- egse/icons/led-square-green.svg +0 -134
- egse/icons/led-square-grey.svg +0 -134
- egse/icons/led-square-orange.svg +0 -134
- egse/icons/led-square-red.svg +0 -134
- egse/icons/limit-switch-all-green.svg +0 -115
- egse/icons/limit-switch-all-red.svg +0 -117
- egse/icons/limit-switch-el+.svg +0 -116
- egse/icons/limit-switch-el-.svg +0 -117
- egse/icons/location-marker.svg +0 -1
- egse/icons/logo-dpu.svg +0 -48
- egse/icons/logo-gimbal.svg +0 -112
- egse/icons/logo-huber.svg +0 -23
- egse/icons/logo-ogse.svg +0 -31
- egse/icons/logo-puna.svg +0 -92
- egse/icons/logo-tcs.svg +0 -29
- egse/icons/logo-zonda.svg +0 -66
- egse/icons/maximize.svg +0 -1
- egse/icons/meter.svg +0 -1
- egse/icons/more.svg +0 -45
- egse/icons/n-fee-hk-start.svg +0 -24
- egse/icons/n-fee-hk-stop.svg +0 -25
- egse/icons/n-fee-hk.svg +0 -83
- egse/icons/observing-off.svg +0 -46
- egse/icons/observing-on.svg +0 -46
- egse/icons/open-document-hdf5.png +0 -0
- egse/icons/open-document-hdf5.svg +0 -21
- egse/icons/ops-mode.svg +0 -1
- egse/icons/play-green.svg +0 -17
- egse/icons/plugged-disabled.svg +0 -27
- egse/icons/plugged.svg +0 -21
- egse/icons/pm_ui.svg +0 -1
- egse/icons/power-button-green.svg +0 -27
- egse/icons/power-button-red.svg +0 -27
- egse/icons/power-button.svg +0 -27
- egse/icons/radar.svg +0 -1
- egse/icons/radioactive.svg +0 -2
- egse/icons/reload.svg +0 -1
- egse/icons/remote-control-off.svg +0 -28
- egse/icons/remote-control-on.svg +0 -28
- egse/icons/repeat-blue.svg +0 -15
- egse/icons/repeat.svg +0 -1
- egse/icons/settings.svg +0 -1
- egse/icons/shrink.svg +0 -1
- egse/icons/shutter.svg +0 -1
- egse/icons/sign-off.svg +0 -1
- egse/icons/sign-on.svg +0 -1
- egse/icons/sim-mode.svg +0 -1
- egse/icons/small-buttons-go.svg +0 -20
- egse/icons/small-buttons-minus.svg +0 -51
- egse/icons/small-buttons-plus.svg +0 -51
- egse/icons/sponge.svg +0 -220
- egse/icons/start-button-disabled.svg +0 -84
- egse/icons/start-button.svg +0 -50
- egse/icons/stop-button-disabled.svg +0 -84
- egse/icons/stop-button.svg +0 -50
- egse/icons/stop-red.svg +0 -17
- egse/icons/stop.svg +0 -1
- egse/icons/switch-disabled-square.svg +0 -87
- egse/icons/switch-disabled.svg +0 -15
- egse/icons/switch-off-square.svg +0 -87
- egse/icons/switch-off.svg +0 -72
- egse/icons/switch-on-square.svg +0 -87
- egse/icons/switch-on.svg +0 -61
- egse/icons/temperature-control.svg +0 -44
- egse/icons/th_ui_logo.svg +0 -1
- egse/icons/unplugged.svg +0 -23
- egse/icons/unvalid.png +0 -0
- egse/icons/user-interface.svg +0 -1
- egse/icons/vacuum.svg +0 -1
- egse/icons/valid.png +0 -0
- egse/icons/zoom-to-pixel-dark.svg +0 -64
- egse/icons/zoom-to-pixel-white.svg +0 -36
- egse/images/big-rotation-stage.png +0 -0
- egse/images/connected-100.png +0 -0
- egse/images/cross.svg +0 -6
- egse/images/disconnected-100.png +0 -0
- egse/images/gui-icon.png +0 -0
- egse/images/home.svg +0 -6
- egse/images/info-icon.png +0 -0
- egse/images/led-black.svg +0 -89
- egse/images/led-green.svg +0 -85
- egse/images/led-orange.svg +0 -85
- egse/images/led-red.svg +0 -85
- egse/images/load-icon.png +0 -0
- egse/images/load-setup.png +0 -0
- egse/images/load.png +0 -0
- egse/images/pause.png +0 -0
- egse/images/play-button.svg +0 -8
- egse/images/play.png +0 -0
- egse/images/process-status.png +0 -0
- egse/images/restart.png +0 -0
- egse/images/search.png +0 -0
- egse/images/sma.png +0 -0
- egse/images/start.png +0 -0
- egse/images/stop-button.svg +0 -8
- egse/images/stop.png +0 -0
- egse/images/switch-off.svg +0 -48
- egse/images/switch-on.svg +0 -48
- egse/images/undo.png +0 -0
- egse/images/update-button.svg +0 -11
- egse/imageviewer/exposureselection.py +0 -475
- egse/imageviewer/imageviewer.py +0 -198
- egse/imageviewer/matchfocalplane.py +0 -179
- egse/imageviewer/subfieldposition.py +0 -133
- egse/lampcontrol/__init__.py +0 -4
- egse/lampcontrol/beaglebone/beaglebone.py +0 -178
- egse/lampcontrol/beaglebone/beaglebone.yaml +0 -62
- egse/lampcontrol/beaglebone/beaglebone_cs.py +0 -106
- egse/lampcontrol/beaglebone/beaglebone_devif.py +0 -150
- egse/lampcontrol/beaglebone/beaglebone_protocol.py +0 -73
- egse/lampcontrol/energetiq/__init__.py +0 -22
- egse/lampcontrol/energetiq/eq99.yaml +0 -98
- egse/lampcontrol/energetiq/lampEQ99.py +0 -283
- egse/lampcontrol/energetiq/lampEQ99_cs.py +0 -128
- egse/lampcontrol/energetiq/lampEQ99_devif.py +0 -158
- egse/lampcontrol/energetiq/lampEQ99_encode_decode_errors.py +0 -73
- egse/lampcontrol/energetiq/lampEQ99_protocol.py +0 -69
- egse/lampcontrol/energetiq/lampEQ99_ui.py +0 -465
- egse/lib/CentOS-7/EtherSpaceLink_v34_86.dylib +0 -0
- egse/lib/CentOS-8/ESL-RMAP_v34_86.dylib +0 -0
- egse/lib/CentOS-8/EtherSpaceLink_v34_86.dylib +0 -0
- egse/lib/Debian/ESL-RMAP_v34_86.dylib +0 -0
- egse/lib/Debian/EtherSpaceLink_v34_86.dylib +0 -0
- egse/lib/Debian/libetherspacelink_v35_21.dylib +0 -0
- egse/lib/Linux/ESL-RMAP_v34_86.dylib +0 -0
- egse/lib/Linux/EtherSpaceLink_v34_86.dylib +0 -0
- egse/lib/Ubuntu-20/ESL-RMAP_v34_86.dylib +0 -0
- egse/lib/Ubuntu-20/EtherSpaceLink_v34_86.dylib +0 -0
- egse/lib/gssw/python3-gssw_2.2.3+31f63c9f-1_all.deb +0 -0
- egse/lib/macOS/ESL-RMAP_v34_86.dylib +0 -0
- egse/lib/macOS/EtherSpaceLink_v34_86.dylib +0 -0
- egse/lib/ximc/__pycache__/pyximc.cpython-38 2.pyc +0 -0
- egse/lib/ximc/__pycache__/pyximc.cpython-38.pyc +0 -0
- egse/lib/ximc/libximc.framework/Frameworks/libbindy.dylib +0 -0
- egse/lib/ximc/libximc.framework/Frameworks/libxiwrapper.dylib +0 -0
- egse/lib/ximc/libximc.framework/Headers/ximc.h +0 -5510
- egse/lib/ximc/libximc.framework/Resources/Info.plist +0 -42
- egse/lib/ximc/libximc.framework/Resources/keyfile.sqlite +0 -0
- egse/lib/ximc/libximc.framework/libbindy.so +0 -0
- egse/lib/ximc/libximc.framework/libximc +0 -0
- egse/lib/ximc/libximc.framework/libximc.so +0 -0
- egse/lib/ximc/libximc.framework/libximc.so.7.0.0 +0 -0
- egse/lib/ximc/libximc.framework/libxiwrapper.so +0 -0
- egse/lib/ximc/pyximc.py +0 -922
- egse/listener.py +0 -73
- egse/logger/__init__.py +0 -243
- egse/logger/log_cs.py +0 -321
- egse/metrics.py +0 -98
- egse/mixin.py +0 -464
- egse/monitoring.py +0 -95
- egse/ni/alarms/__init__.py +0 -26
- egse/ni/alarms/cdaq9375.py +0 -300
- egse/ni/alarms/cdaq9375.yaml +0 -89
- egse/ni/alarms/cdaq9375_cs.py +0 -130
- egse/ni/alarms/cdaq9375_devif.py +0 -183
- egse/ni/alarms/cdaq9375_protocol.py +0 -48
- egse/obs_inspection.py +0 -163
- egse/observer.py +0 -41
- egse/obsid.py +0 -163
- egse/powermeter/__init__.py +0 -0
- egse/powermeter/ni/__init__.py +0 -38
- egse/powermeter/ni/cdaq9184.py +0 -224
- egse/powermeter/ni/cdaq9184.yaml +0 -73
- egse/powermeter/ni/cdaq9184_cs.py +0 -130
- egse/powermeter/ni/cdaq9184_devif.py +0 -201
- egse/powermeter/ni/cdaq9184_protocol.py +0 -48
- egse/powermeter/ni/cdaq9184_ui.py +0 -544
- egse/powermeter/thorlabs/__init__.py +0 -25
- egse/powermeter/thorlabs/pm100a.py +0 -380
- egse/powermeter/thorlabs/pm100a.yaml +0 -132
- egse/powermeter/thorlabs/pm100a_cs.py +0 -136
- egse/powermeter/thorlabs/pm100a_devif.py +0 -127
- egse/powermeter/thorlabs/pm100a_protocol.py +0 -80
- egse/powermeter/thorlabs/pm100a_ui.py +0 -725
- egse/process.py +0 -451
- egse/procman/__init__.py +0 -811
- egse/procman/cannot_start_process_popup.py +0 -43
- egse/procman/procman.yaml +0 -49
- egse/procman/procman_cs.py +0 -201
- egse/procman/procman_ui.py +0 -2081
- egse/protocol.py +0 -603
- egse/proxy.py +0 -522
- egse/randomwalk.py +0 -140
- egse/reg.py +0 -585
- egse/reload.py +0 -122
- egse/reprocess.py +0 -675
- egse/resource.py +0 -333
- egse/rst.py +0 -135
- egse/search.py +0 -182
- egse/serialdevice.py +0 -190
- egse/services.py +0 -212
- egse/services.yaml +0 -51
- egse/settings.py +0 -379
- egse/settings.yaml +0 -980
- egse/setup.py +0 -1180
- egse/shutter/__init__.py +0 -0
- egse/shutter/thorlabs/__init__.py +0 -19
- egse/shutter/thorlabs/ksc101.py +0 -205
- egse/shutter/thorlabs/ksc101.yaml +0 -105
- egse/shutter/thorlabs/ksc101_cs.py +0 -136
- egse/shutter/thorlabs/ksc101_devif.py +0 -201
- egse/shutter/thorlabs/ksc101_protocol.py +0 -69
- egse/shutter/thorlabs/ksc101_ui.py +0 -548
- egse/shutter/thorlabs/sc10.py +0 -82
- egse/shutter/thorlabs/sc10.yaml +0 -52
- egse/shutter/thorlabs/sc10_controller.py +0 -81
- egse/shutter/thorlabs/sc10_cs.py +0 -108
- egse/shutter/thorlabs/sc10_interface.py +0 -25
- egse/shutter/thorlabs/sc10_simulator.py +0 -30
- egse/simulator.py +0 -41
- egse/slack.py +0 -61
- egse/socketdevice.py +0 -218
- egse/sockets.py +0 -218
- egse/spw.py +0 -1479
- egse/stages/__init__.py +0 -12
- egse/stages/aerotech/ensemble.py +0 -247
- egse/stages/aerotech/ensemble.yaml +0 -205
- egse/stages/aerotech/ensemble_controller.py +0 -275
- egse/stages/aerotech/ensemble_cs.py +0 -110
- egse/stages/aerotech/ensemble_interface.py +0 -132
- egse/stages/aerotech/ensemble_parameters.py +0 -433
- egse/stages/aerotech/ensemble_simulator.py +0 -27
- egse/stages/aerotech/mgse_sim.py +0 -193
- egse/stages/arun/smd3.py +0 -111
- egse/stages/arun/smd3.yaml +0 -68
- egse/stages/arun/smd3_controller.py +0 -472
- egse/stages/arun/smd3_cs.py +0 -112
- egse/stages/arun/smd3_interface.py +0 -53
- egse/stages/arun/smd3_simulator.py +0 -27
- egse/stages/arun/smd3_stop.py +0 -16
- egse/stages/huber/__init__.py +0 -49
- egse/stages/huber/smc9300.py +0 -904
- egse/stages/huber/smc9300.yaml +0 -63
- egse/stages/huber/smc9300_cs.py +0 -178
- egse/stages/huber/smc9300_devif.py +0 -345
- egse/stages/huber/smc9300_protocol.py +0 -111
- egse/stages/huber/smc9300_sim.py +0 -547
- egse/stages/huber/smc9300_ui.py +0 -973
- egse/state.py +0 -173
- egse/statemachine.py +0 -274
- egse/storage/__init__.py +0 -1004
- egse/storage/persistence.py +0 -2295
- egse/storage/storage.yaml +0 -72
- egse/storage/storage_cs.py +0 -214
- egse/styles/dark.qss +0 -343
- egse/styles/default.qss +0 -48
- egse/synoptics/__init__.py +0 -412
- egse/synoptics/syn.yaml +0 -9
- egse/synoptics/syn_cs.py +0 -195
- egse/system.py +0 -1408
- egse/tcs/__init__.py +0 -14
- egse/tcs/tcs.py +0 -874
- egse/tcs/tcs.yaml +0 -14
- egse/tcs/tcs_cs.py +0 -202
- egse/tcs/tcs_devif.py +0 -292
- egse/tcs/tcs_protocol.py +0 -177
- egse/tcs/tcs_sim.py +0 -177
- egse/tcs/tcs_ui.py +0 -543
- egse/tdms.py +0 -171
- egse/tempcontrol/__init__.py +0 -23
- egse/tempcontrol/agilent/agilent34970.py +0 -109
- egse/tempcontrol/agilent/agilent34970.yaml +0 -44
- egse/tempcontrol/agilent/agilent34970_cs.py +0 -116
- egse/tempcontrol/agilent/agilent34970_devif.py +0 -182
- egse/tempcontrol/agilent/agilent34970_protocol.py +0 -99
- egse/tempcontrol/agilent/agilent34972.py +0 -111
- egse/tempcontrol/agilent/agilent34972.yaml +0 -44
- egse/tempcontrol/agilent/agilent34972_cs.py +0 -117
- egse/tempcontrol/agilent/agilent34972_devif.py +0 -189
- egse/tempcontrol/agilent/agilent34972_protocol.py +0 -101
- egse/tempcontrol/beaglebone/beaglebone.py +0 -342
- egse/tempcontrol/beaglebone/beaglebone.yaml +0 -110
- egse/tempcontrol/beaglebone/beaglebone_cs.py +0 -117
- egse/tempcontrol/beaglebone/beaglebone_protocol.py +0 -135
- egse/tempcontrol/beaglebone/beaglebone_ui.py +0 -681
- egse/tempcontrol/digalox/digalox.py +0 -107
- egse/tempcontrol/digalox/digalox.yaml +0 -36
- egse/tempcontrol/digalox/digalox_cs.py +0 -112
- egse/tempcontrol/digalox/digalox_protocol.py +0 -55
- egse/tempcontrol/keithley/__init__.py +0 -33
- egse/tempcontrol/keithley/daq6510.py +0 -662
- egse/tempcontrol/keithley/daq6510.yaml +0 -105
- egse/tempcontrol/keithley/daq6510_cs.py +0 -163
- egse/tempcontrol/keithley/daq6510_devif.py +0 -343
- egse/tempcontrol/keithley/daq6510_protocol.py +0 -78
- egse/tempcontrol/keithley/daq6510_sim.py +0 -186
- egse/tempcontrol/lakeshore/__init__.py +0 -33
- egse/tempcontrol/lakeshore/lsci.py +0 -361
- egse/tempcontrol/lakeshore/lsci.yaml +0 -162
- egse/tempcontrol/lakeshore/lsci_cs.py +0 -174
- egse/tempcontrol/lakeshore/lsci_devif.py +0 -292
- egse/tempcontrol/lakeshore/lsci_protocol.py +0 -73
- egse/tempcontrol/lakeshore/lsci_ui.py +0 -389
- egse/tempcontrol/ni/__init__.py +0 -0
- egse/tempcontrol/spid/spid.py +0 -109
- egse/tempcontrol/spid/spid.yaml +0 -81
- egse/tempcontrol/spid/spid_controller.py +0 -279
- egse/tempcontrol/spid/spid_cs.py +0 -136
- egse/tempcontrol/spid/spid_protocol.py +0 -107
- egse/tempcontrol/spid/spid_ui.py +0 -727
- egse/tempcontrol/srs/__init__.py +0 -22
- egse/tempcontrol/srs/ptc10.py +0 -875
- egse/tempcontrol/srs/ptc10.yaml +0 -227
- egse/tempcontrol/srs/ptc10_cs.py +0 -128
- egse/tempcontrol/srs/ptc10_devif.py +0 -118
- egse/tempcontrol/srs/ptc10_protocol.py +0 -42
- egse/tempcontrol/srs/ptc10_ui.py +0 -906
- egse/ups/apc/apc.py +0 -236
- egse/ups/apc/apc.yaml +0 -45
- egse/ups/apc/apc_cs.py +0 -101
- egse/ups/apc/apc_protocol.py +0 -125
- egse/user.yaml +0 -7
- egse/vacuum/beaglebone/beaglebone.py +0 -149
- egse/vacuum/beaglebone/beaglebone.yaml +0 -44
- egse/vacuum/beaglebone/beaglebone_cs.py +0 -108
- egse/vacuum/beaglebone/beaglebone_devif.py +0 -164
- egse/vacuum/beaglebone/beaglebone_protocol.py +0 -193
- egse/vacuum/beaglebone/beaglebone_ui.py +0 -638
- egse/vacuum/instrutech/igm402.py +0 -92
- egse/vacuum/instrutech/igm402.yaml +0 -90
- egse/vacuum/instrutech/igm402_controller.py +0 -128
- egse/vacuum/instrutech/igm402_cs.py +0 -108
- egse/vacuum/instrutech/igm402_interface.py +0 -49
- egse/vacuum/instrutech/igm402_simulator.py +0 -36
- egse/vacuum/keller/kellerBus.py +0 -256
- egse/vacuum/keller/leo3.py +0 -102
- egse/vacuum/keller/leo3.yaml +0 -38
- egse/vacuum/keller/leo3_controller.py +0 -83
- egse/vacuum/keller/leo3_cs.py +0 -101
- egse/vacuum/keller/leo3_interface.py +0 -33
- egse/vacuum/mks/evision.py +0 -86
- egse/vacuum/mks/evision.yaml +0 -75
- egse/vacuum/mks/evision_cs.py +0 -101
- egse/vacuum/mks/evision_devif.py +0 -316
- egse/vacuum/mks/evision_interface.py +0 -60
- egse/vacuum/mks/evision_simulator.py +0 -24
- egse/vacuum/mks/evision_ui.py +0 -704
- egse/vacuum/pfeiffer/acp40.py +0 -87
- egse/vacuum/pfeiffer/acp40.yaml +0 -60
- egse/vacuum/pfeiffer/acp40_controller.py +0 -117
- egse/vacuum/pfeiffer/acp40_cs.py +0 -109
- egse/vacuum/pfeiffer/acp40_interface.py +0 -40
- egse/vacuum/pfeiffer/acp40_simulator.py +0 -39
- egse/vacuum/pfeiffer/tc400.py +0 -113
- egse/vacuum/pfeiffer/tc400.yaml +0 -83
- egse/vacuum/pfeiffer/tc400_controller.py +0 -140
- egse/vacuum/pfeiffer/tc400_cs.py +0 -109
- egse/vacuum/pfeiffer/tc400_interface.py +0 -70
- egse/vacuum/pfeiffer/tc400_simulator.py +0 -24
- egse/vacuum/pfeiffer/tpg261.py +0 -81
- egse/vacuum/pfeiffer/tpg261.yaml +0 -66
- egse/vacuum/pfeiffer/tpg261_controller.py +0 -150
- egse/vacuum/pfeiffer/tpg261_cs.py +0 -109
- egse/vacuum/pfeiffer/tpg261_interface.py +0 -60
- egse/vacuum/pfeiffer/tpg261_simulator.py +0 -24
- egse/version.py +0 -174
- egse/visitedpositions.py +0 -398
- egse/windowing.py +0 -213
- egse/zmq/__init__.py +0 -28
- egse/zmq/spw.py +0 -160
- egse/zmq_ser.py +0 -41
- scripts/alerts/cold.yaml +0 -278
- scripts/alerts/example_alerts.yaml +0 -54
- scripts/alerts/transition.yaml +0 -14
- scripts/alerts/warm.yaml +0 -49
- scripts/analyse_n_fee_hk_data.py +0 -44
- scripts/check_hdf5_files.py +0 -192
- scripts/check_register_sync.py +0 -47
- scripts/create_hdf5_report.py +0 -295
- scripts/csl_model.py +0 -436
- scripts/csl_restore_setup.py +0 -230
- scripts/export-grafana-dashboards.py +0 -50
- scripts/fdir/cs_recovery/fdir_cs_recovery.py +0 -59
- scripts/fdir/fdir_table.yaml +0 -70
- scripts/fdir/fdir_test_recovery.py +0 -11
- scripts/fdir/hw_recovery/fdir_agilent_hw_recovery.py +0 -73
- scripts/fdir/limit_recovery/fdir_agilent_limit.py +0 -64
- scripts/fdir/limit_recovery/fdir_bb_heater_limit.py +0 -61
- scripts/fdir/limit_recovery/fdir_ensemble_limit.py +0 -33
- scripts/fdir/limit_recovery/fdir_pressure_limit_recovery.py +0 -71
- scripts/fix_csv.py +0 -80
- scripts/n_fee_supply_voltage_calculation.py +0 -92
- scripts/playground.py +0 -30
- scripts/print_hdf5_hk_data.py +0 -68
- scripts/print_register_map.py +0 -43
- scripts/sron/commanding/control_heaters.py +0 -44
- scripts/sron/commanding/pumpdown.py +0 -46
- scripts/sron/commanding/set_pid_setpoint.py +0 -19
- scripts/sron/commanding/shutdown_bbb_heaters.py +0 -10
- scripts/sron/commanding/shutdown_pumps.py +0 -33
- scripts/sron/tm_gen/tm_gen_agilent.py +0 -38
- scripts/sron/tm_gen/tm_gen_heaters.py +0 -4
- scripts/sron/tm_gen/tm_gen_spid.py +0 -13
- scripts/update_operational_cgse.py +0 -268
- scripts/update_operational_cgse_old.py +0 -273
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import logging
|
|
2
|
-
import importlib
|
|
3
|
-
|
|
4
|
-
from argparse import ArgumentParser
|
|
5
|
-
|
|
6
|
-
from egse.procman import ProcessManagerProxy
|
|
7
|
-
from egse.control import is_control_server_active
|
|
8
|
-
from egse.zmq_ser import connect_address
|
|
9
|
-
from egse.setup import get_setup, Setup
|
|
10
|
-
from egse.settings import Settings
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
logger = logging.getLogger(__name__)
|
|
14
|
-
logging.basicConfig()
|
|
15
|
-
|
|
16
|
-
parser = ArgumentParser()
|
|
17
|
-
parser.add_argument('cs_name', help='Name of the CS in the config')
|
|
18
|
-
args = parser.parse_args()
|
|
19
|
-
|
|
20
|
-
SETUP = get_setup()
|
|
21
|
-
SETUP = SETUP['gse']
|
|
22
|
-
|
|
23
|
-
devices = {}
|
|
24
|
-
devices = Setup.find_devices(SETUP, devices=devices)
|
|
25
|
-
|
|
26
|
-
cs_name = args.cs_name
|
|
27
|
-
|
|
28
|
-
for key, value in devices.items():
|
|
29
|
-
if cs_name in key:
|
|
30
|
-
proxy = value[0]
|
|
31
|
-
args = value[1]
|
|
32
|
-
module_name = proxy[7:].rsplit(".", 1)[0]
|
|
33
|
-
|
|
34
|
-
module = importlib.import_module(module_name)
|
|
35
|
-
|
|
36
|
-
ctrl_settings = module.CTRL_SETTINGS
|
|
37
|
-
transport = ctrl_settings.PROTOCOL
|
|
38
|
-
hostname = ctrl_settings.HOSTNAME
|
|
39
|
-
if module_name == "egse.aeu.aeu" or "egse.tempcontrol.agilent.agilent3497" in module_name:
|
|
40
|
-
name = key.split(" ")[1].upper()
|
|
41
|
-
commanding_port = ctrl_settings[name]["COMMANDING_PORT"]
|
|
42
|
-
else:
|
|
43
|
-
commanding_port = ctrl_settings.COMMANDING_PORT
|
|
44
|
-
|
|
45
|
-
if is_control_server_active(connect_address(transport,
|
|
46
|
-
hostname,
|
|
47
|
-
commanding_port)):
|
|
48
|
-
logger.info("False positive: CS seems to be online")
|
|
49
|
-
else:
|
|
50
|
-
try:
|
|
51
|
-
with ProcessManagerProxy() as procman:
|
|
52
|
-
procman.start_cs(cs_name, False)
|
|
53
|
-
|
|
54
|
-
except Exception as e:
|
|
55
|
-
logger.error(f"Could not start {args.cs_name}")
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
logger.info(f"finished {__name__}")
|
|
59
|
-
|
scripts/fdir/fdir_table.yaml
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
# This file hold the configuration of the FDIR system
|
|
2
|
-
# Each entry represents a predefined FDIR situation.
|
|
3
|
-
# The entries hold:
|
|
4
|
-
# - priority: only FDIR signals with a higher priority that the current state of the FDIR manager
|
|
5
|
-
# are acted on (idle = -1).
|
|
6
|
-
# - script: the mitigation script to execute with its arguments.
|
|
7
|
-
# - actions: description of the mitigation actions performed by the script. This information is
|
|
8
|
-
# shown in the alert pop-up on the client.
|
|
9
|
-
|
|
10
|
-
# Just for testing
|
|
11
|
-
FDIR_TEST:
|
|
12
|
-
priority: 1
|
|
13
|
-
script: /fdir_test_recovery.py
|
|
14
|
-
actions:
|
|
15
|
-
- don't worry
|
|
16
|
-
- just a test
|
|
17
|
-
|
|
18
|
-
# Hardware failures
|
|
19
|
-
# Are called whenever the CS loses its connection with the device
|
|
20
|
-
# Usually recovers by trying to reconnect to the device and gettings its IDN
|
|
21
|
-
# If the CS is unable to retreive an IDN from the device, it will alert an operator
|
|
22
|
-
FDIR_AGILENT_HW:
|
|
23
|
-
priority: 1
|
|
24
|
-
script: /hw_recovery/fdir_agilent_hw_recovery.py
|
|
25
|
-
args: [agilent_index]
|
|
26
|
-
actions:
|
|
27
|
-
- shut down heaters regulated by this DAQ
|
|
28
|
-
- alert operator
|
|
29
|
-
|
|
30
|
-
# Control server failures
|
|
31
|
-
# Are called whenever proxies can't reach a control server
|
|
32
|
-
# Usually recovers by trying to restart the control server
|
|
33
|
-
# If the CS can't be restarted, it will alert an operator
|
|
34
|
-
FDIR_CS_STOPPED:
|
|
35
|
-
priority: 1
|
|
36
|
-
script: /cs_recovery/fdir_cs_recovery.py
|
|
37
|
-
actions:
|
|
38
|
-
- alert operator
|
|
39
|
-
|
|
40
|
-
# Hardware errors
|
|
41
|
-
# Are called when a device raises an error flag
|
|
42
|
-
# Recovery depends on the type of error
|
|
43
|
-
# An operator will be alerted if scripts is unable to recover within a set amount of time
|
|
44
|
-
FDIR_TC400_ERROR:
|
|
45
|
-
priority: 1
|
|
46
|
-
script: /error_recovery/fdir_tc400_error_recovery.py
|
|
47
|
-
actions:
|
|
48
|
-
- alert operator
|
|
49
|
-
|
|
50
|
-
# Housekeeping limit violations
|
|
51
|
-
# Are called when a upper or lower limit on some HK variable is crossed
|
|
52
|
-
# Recovery depends on the type of error
|
|
53
|
-
# An operator will always be alerted in this case
|
|
54
|
-
FDIR_PRESSURE_LIMIT:
|
|
55
|
-
priority: 1
|
|
56
|
-
script: /limit_recovery/fdir_pressure_limit_recovery.py
|
|
57
|
-
actions:
|
|
58
|
-
- close gate valve
|
|
59
|
-
- close LN2 valves
|
|
60
|
-
- Turn off IG filament
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
# Pealing of heaters, which leads to high resistance.
|
|
64
|
-
FDIR_BB_HEATER_LIMIT:
|
|
65
|
-
priority: 1
|
|
66
|
-
scripts: /limit_recovery/fdir_bb_beaglebone_limit.py
|
|
67
|
-
args: [agilent_index, channel_index]
|
|
68
|
-
actions:
|
|
69
|
-
- shut down heater and corresponding PID channel
|
|
70
|
-
- alert operator
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import logging
|
|
2
|
-
from argparse import ArgumentParser
|
|
3
|
-
|
|
4
|
-
import sys
|
|
5
|
-
from numpy import mean
|
|
6
|
-
from time import time
|
|
7
|
-
|
|
8
|
-
from egse.hk import get_housekeeping
|
|
9
|
-
from egse.state import GlobalState
|
|
10
|
-
from egse.system import EPOCH_1958_1970
|
|
11
|
-
from egse.tempcontrol.beaglebone.beaglebone import BeagleboneProxy
|
|
12
|
-
from egse.tempcontrol.spid.spid import PidProxy
|
|
13
|
-
|
|
14
|
-
# This script is triggered when one of the agilent DAQs becomes unresponsive.
|
|
15
|
-
# This script is called with the agilent index as argument.
|
|
16
|
-
# All PID channels driven by a sensor connected to the DAQ are disabled.
|
|
17
|
-
# All corresponding heaters are set to the last value given by the PID.
|
|
18
|
-
|
|
19
|
-
log = logging.getLogger(__name__)
|
|
20
|
-
logging.basicConfig()
|
|
21
|
-
|
|
22
|
-
log.info(f'running {__name__}')
|
|
23
|
-
|
|
24
|
-
parser = ArgumentParser()
|
|
25
|
-
parser.add_argument('device_index', type=int, help='DAQ device index [0 - 3]')
|
|
26
|
-
args = parser.parse_args()
|
|
27
|
-
|
|
28
|
-
# Try to get the setup from the SM.
|
|
29
|
-
setup = GlobalState.setup
|
|
30
|
-
|
|
31
|
-
# Try to get device proxies.
|
|
32
|
-
bb_proxy = BeagleboneProxy()
|
|
33
|
-
pid_proxy = PidProxy()
|
|
34
|
-
|
|
35
|
-
if not bb_proxy.is_cs_connected():
|
|
36
|
-
log.crticial("Could not connect to Beaglebone proxy")
|
|
37
|
-
sys.exit("Could not connect to Beaglebone proxy")
|
|
38
|
-
if not pid_proxy.is_cs_connected():
|
|
39
|
-
log.crticial("Could not connect to PID proxy")
|
|
40
|
-
sys.exit("Could not connect to PID proxy")
|
|
41
|
-
|
|
42
|
-
pid_channels = []
|
|
43
|
-
for l in setup.gse.spid.configuration.heaters.values():
|
|
44
|
-
pid_channels.extend(l)
|
|
45
|
-
|
|
46
|
-
# Turn off all PID channels controlled by this DAQ and set the heater power to the last value.
|
|
47
|
-
for (channel, agilent_idx, _, beaglebone_idx, beaglebone_ch, _, _, _) in pid_channels:
|
|
48
|
-
|
|
49
|
-
if agilent_idx == args.device_index:
|
|
50
|
-
|
|
51
|
-
# Calculate the average duty cycle over the last minute before shutting down
|
|
52
|
-
hk_name = f"GSRON_PID_CH{channel}_OUTPUT"
|
|
53
|
-
timestamp, values = get_housekeeping(hk_name=hk_name, time_window=60)
|
|
54
|
-
if time() - (float(timestamp[-1]) - EPOCH_1958_1970) > 30:
|
|
55
|
-
sys.exit("Retrieved duty cycles are more than a minute old")
|
|
56
|
-
|
|
57
|
-
values = [float(val) for val in values]
|
|
58
|
-
duty_cycle = mean(values)
|
|
59
|
-
|
|
60
|
-
# Read heater power before disabling PID channel.
|
|
61
|
-
pid_proxy.disable(channel=channel)
|
|
62
|
-
log.info(f'Disabled PID channel {channel}')
|
|
63
|
-
|
|
64
|
-
# Set heater power to last value.
|
|
65
|
-
|
|
66
|
-
bb_proxy.set_duty_cycle(beaglebone_idx, beaglebone_ch, int(duty_cycle * 10000))
|
|
67
|
-
bb_proxy.set_enable(beaglebone_idx, beaglebone_ch, True)
|
|
68
|
-
log.info(f'Set heater {beaglebone_idx}.{beaglebone_ch} to (fixed) {duty_cycle * 100} %')
|
|
69
|
-
|
|
70
|
-
else:
|
|
71
|
-
log.info(f"PID channel #{channel} not associated with DAQ #{args.device_index}")
|
|
72
|
-
|
|
73
|
-
log.info(f'finished {__name__}')
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import logging
|
|
2
|
-
import sys
|
|
3
|
-
|
|
4
|
-
from argparse import ArgumentParser
|
|
5
|
-
|
|
6
|
-
from egse.confman import ConfigurationManagerProxy
|
|
7
|
-
from egse.tempcontrol.spid.spid import PidProxy
|
|
8
|
-
from egse.tempcontrol.beaglebone.beaglebone import BeagleboneProxy
|
|
9
|
-
|
|
10
|
-
# This script is triggered when one of the agilent channels violated the rate of change limit.
|
|
11
|
-
# This script is called with the agilent index and channel index as arguments.
|
|
12
|
-
# The corresponding PID channel and heater are turned off.
|
|
13
|
-
|
|
14
|
-
log = logging.getLogger(__name__)
|
|
15
|
-
logging.basicConfig()
|
|
16
|
-
|
|
17
|
-
log.info(f'running {__name__}')
|
|
18
|
-
|
|
19
|
-
parser = ArgumentParser()
|
|
20
|
-
parser.add_argument('hk_name', type=str, help='HK metric name')
|
|
21
|
-
args = parser.parse_args()
|
|
22
|
-
|
|
23
|
-
# Try to get the setup from the SM.
|
|
24
|
-
with ConfigurationManagerProxy() as cm:
|
|
25
|
-
setup = cm.get_setup()
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
bb_proxy = BeagleboneProxy()
|
|
29
|
-
pid_proxy = PidProxy()
|
|
30
|
-
|
|
31
|
-
if not pid_proxy.is_cs_connected():
|
|
32
|
-
log.critical(f"Could not connect to PID proxy")
|
|
33
|
-
sys.exit(f"Could not connect to PID proxy")
|
|
34
|
-
if not bb_proxy.is_cs_connected():
|
|
35
|
-
log.critical(f"Could not connect to Beaglebone Black proxy")
|
|
36
|
-
sys.exit(f"Could not connect to Beaglebone Black proxy")
|
|
37
|
-
|
|
38
|
-
agilent_model = 0 if args.hk_name.split('_')[1] == 'AG34972' else 2
|
|
39
|
-
agilent_num = 0 if int(args.hk_name.split('_')[2]) == 0 else 1
|
|
40
|
-
agilent_channel = int(args.hk_name.split('_')[3][1:])
|
|
41
|
-
daq_num = agilent_model + agilent_num
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
pid_channels = []
|
|
45
|
-
for l in setup.gse.spid.configuration.heaters.values():
|
|
46
|
-
pid_channels.extend(l)
|
|
47
|
-
|
|
48
|
-
# Turn off all PID channels controlled by this DAQ and set the heater power to the last value.
|
|
49
|
-
for (pid_channel, agilent_idx, channel_index, beaglebone_idx, beaglebone_ch, _, _, _) in pid_channels:
|
|
50
|
-
|
|
51
|
-
if agilent_idx == daq_num and channel_index == agilent_channel:
|
|
52
|
-
log.info(f"Temperature sensor {agilent_channel} of DAQ {daq_num} was associated to PID channel {pid_channel}")
|
|
53
|
-
log.info(f"PID channel {pid_channel} was associated with heater {beaglebone_idx} channel {beaglebone_ch}")
|
|
54
|
-
|
|
55
|
-
log.info(f"Turning off PID channel {pid_channel}")
|
|
56
|
-
# log.debug(f"pid_proxy.disable({pid_channel})")
|
|
57
|
-
pid_proxy.disable(pid_channel)
|
|
58
|
-
|
|
59
|
-
log.info(f'Disabling heater {beaglebone_idx} channel {beaglebone_ch}')
|
|
60
|
-
# log.debug(f"bb_proxy.set_enable({beaglebone_idx}, {beaglebone_ch}, False)")
|
|
61
|
-
bb_proxy.set_enable(beaglebone_idx, beaglebone_ch, False)
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
log.info(f'finished {__name__}')
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import logging
|
|
2
|
-
import sys
|
|
3
|
-
|
|
4
|
-
from argparse import ArgumentParser
|
|
5
|
-
|
|
6
|
-
from egse.confman import ConfigurationManagerProxy
|
|
7
|
-
from egse.tempcontrol.spid.spid import PidProxy
|
|
8
|
-
from egse.tempcontrol.beaglebone.beaglebone import BeagleboneProxy
|
|
9
|
-
|
|
10
|
-
# This script is triggered when the resistance of a heater becomes too high (because of pealing).
|
|
11
|
-
# The corresponding PID channel and heater are disabled.
|
|
12
|
-
|
|
13
|
-
log = logging.getLogger(__name__)
|
|
14
|
-
logging.basicConfig()
|
|
15
|
-
|
|
16
|
-
log.info(f'running {__name__}')
|
|
17
|
-
|
|
18
|
-
parser = ArgumentParser()
|
|
19
|
-
parser.add_argument('hk_name', type=str, help="HK metric name")
|
|
20
|
-
args = parser.parse_args()
|
|
21
|
-
|
|
22
|
-
# Try to get the setup from the SM.
|
|
23
|
-
with ConfigurationManagerProxy() as cm:
|
|
24
|
-
setup = cm.get_setup()
|
|
25
|
-
|
|
26
|
-
bb_proxy = BeagleboneProxy()
|
|
27
|
-
pid_proxy = PidProxy()
|
|
28
|
-
|
|
29
|
-
if not pid_proxy.is_cs_connected():
|
|
30
|
-
log.critical(f"Could not connect to PID proxy")
|
|
31
|
-
sys.exit(f"Could not connect to PID proxy")
|
|
32
|
-
if not bb_proxy.is_cs_connected():
|
|
33
|
-
log.critical(f"Could not connect to Beaglebone Black proxy")
|
|
34
|
-
sys.exit(f"Could not connect to Beaglebone Black proxy")
|
|
35
|
-
|
|
36
|
-
agilent_model = 0 if args.hk_name.split('_')[1] == 'AG34972' else 2
|
|
37
|
-
agilent_num = 0 if int(args.hk_name.split('_')[2]) == 0 else 1
|
|
38
|
-
agilent_channel = int(args.hk_name.split('_')[3][1:])
|
|
39
|
-
daq_num = agilent_model + agilent_num
|
|
40
|
-
|
|
41
|
-
pid_channels = []
|
|
42
|
-
for l in setup.gse.spid.configuration.heaters.values():
|
|
43
|
-
pid_channels.extend(l)
|
|
44
|
-
|
|
45
|
-
# Turn off all PID channels controlled by this DAQ and set the heater power to the last value.
|
|
46
|
-
for (pid_channel, agilent_idx, channel_index, beaglebone_idx, beaglebone_ch, _, _, _) in pid_channels:
|
|
47
|
-
|
|
48
|
-
if agilent_idx == daq_num and channel_index == agilent_channel:
|
|
49
|
-
log.info(f"Resistor {agilent_channel} was associated to PID channel {pid_channel}")
|
|
50
|
-
log.info(f"PID channel {pid_channel} was associated with heater {beaglebone_idx} channel {beaglebone_ch}")
|
|
51
|
-
|
|
52
|
-
log.info(f"Turning off PID channel {pid_channel}")
|
|
53
|
-
# log.debug(f"pid_proxy.disable({pid_channel})")
|
|
54
|
-
pid_proxy.disable(pid_channel)
|
|
55
|
-
|
|
56
|
-
log.info(f"Disabling heater {beaglebone_idx} channel {beaglebone_ch}")
|
|
57
|
-
# log.debug(f"bb_proxy.set_enable({beaglebone_idx}, {beaglebone_ch}, False)")
|
|
58
|
-
bb_proxy.set_enable(beaglebone_idx, beaglebone_ch, False)
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
log.info(f'finished {__name__}')
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import logging
|
|
2
|
-
|
|
3
|
-
from egse.stages.aerotech.ensemble import EnsembleProxy
|
|
4
|
-
# This script is triggerend when the gimbal motor tempertature is too high.
|
|
5
|
-
# The gimbal is moved to the resting position and is disabled.
|
|
6
|
-
from egse.state import GlobalState
|
|
7
|
-
|
|
8
|
-
log = logging.getLogger(__name__)
|
|
9
|
-
logging.basicConfig()
|
|
10
|
-
|
|
11
|
-
log.info(f'running {__name__}')
|
|
12
|
-
|
|
13
|
-
# Try to get the setup from the SM.
|
|
14
|
-
setup = GlobalState.setup
|
|
15
|
-
|
|
16
|
-
# Get resting position values from the setup.
|
|
17
|
-
position = setup.gse.ensemble.resting_positions
|
|
18
|
-
|
|
19
|
-
with EnsembleProxy() as ensemble:
|
|
20
|
-
|
|
21
|
-
# Move to resting position.
|
|
22
|
-
ensemble.move_axes_degrees(position['X'], position['Y'])
|
|
23
|
-
while ensemble.is_moving():
|
|
24
|
-
pass
|
|
25
|
-
|
|
26
|
-
log.info('moved to resting position')
|
|
27
|
-
|
|
28
|
-
# Disable motors.
|
|
29
|
-
ensemble.disable_axis('X')
|
|
30
|
-
ensemble.disable_axis('Y')
|
|
31
|
-
log.info('disabled axes')
|
|
32
|
-
|
|
33
|
-
log.info(f'finished {__name__}')
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import logging
|
|
2
|
-
import sys
|
|
3
|
-
|
|
4
|
-
from time import time
|
|
5
|
-
|
|
6
|
-
from egse.hk import get_housekeeping
|
|
7
|
-
from egse.system import EPOCH_1958_1970
|
|
8
|
-
from egse.vacuum.beaglebone.beaglebone import BeagleboneProxy
|
|
9
|
-
from egse.vacuum.instrutech.igm402 import Igm402Proxy
|
|
10
|
-
# This script is run when the pressure in the vessel is too high.
|
|
11
|
-
# Indicating something wrong with the pump(s) or a leak.
|
|
12
|
-
# First the gate valve is closed. Then the LN2 valve. and finally the IGM402 filament is disabled.
|
|
13
|
-
|
|
14
|
-
MAXPRESSURE = 1.5E-6
|
|
15
|
-
|
|
16
|
-
log = logging.getLogger(__name__)
|
|
17
|
-
logging.basicConfig()
|
|
18
|
-
|
|
19
|
-
log.info(f'Running {__name__}')
|
|
20
|
-
|
|
21
|
-
# Try to connect to the Beaglebone Valve controller and IGM402 pressure gauge proxy
|
|
22
|
-
|
|
23
|
-
valves = BeagleboneProxy()
|
|
24
|
-
igm402 = Igm402Proxy()
|
|
25
|
-
if not valves.is_cs_connected():
|
|
26
|
-
log.critical(f"Could not connect to Beaglebone Black proxy")
|
|
27
|
-
sys.exit(f"Could not connect to Beaglebone Black proxy")
|
|
28
|
-
if not igm402.is_cs_connected():
|
|
29
|
-
log.critical(f"Could not connect to IGM402 proxy")
|
|
30
|
-
sys.exit(f"Could not connect to IGM402 proxy")
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
# Get the most recent values from the housekeeping
|
|
34
|
-
igm402Timestamp, igm402Value = get_housekeeping("GSRON_IGM402_IG_P")
|
|
35
|
-
tpg261Timestamp, tpg261Value, = get_housekeeping("GSRON_TPG261_P_1")
|
|
36
|
-
|
|
37
|
-
igm402Age = time() - (float(igm402Timestamp) - EPOCH_1958_1970)
|
|
38
|
-
tpg261Age = time() - (float(tpg261Timestamp) - EPOCH_1958_1970)
|
|
39
|
-
|
|
40
|
-
# Ensure that these values are not too old
|
|
41
|
-
if igm402Age > 60:
|
|
42
|
-
raise Exception(f"IGM402 HK is more than 60 seconds old")
|
|
43
|
-
|
|
44
|
-
if tpg261Age > 60:
|
|
45
|
-
raise Exception(f"TPG261 HK is more than 60 seconds old")
|
|
46
|
-
log.info(f"IGM402 - Current value: {igm402Value}, Max: {MAXPRESSURE}")
|
|
47
|
-
log.info(f"TPG261 - Current value: {tpg261Value}, Max: {MAXPRESSURE}")
|
|
48
|
-
|
|
49
|
-
# Make sure that both pressure gauges are exeecuding their limits
|
|
50
|
-
if float(igm402Value) > float(MAXPRESSURE):
|
|
51
|
-
if float(tpg261Value) > float(MAXPRESSURE):
|
|
52
|
-
# Close the gate valve
|
|
53
|
-
log.info("Closing Gate valve")
|
|
54
|
-
# log.debug("set_valve, MV001, False")
|
|
55
|
-
valves.set_valve('MV001', False)
|
|
56
|
-
|
|
57
|
-
# Close the LN2 valves
|
|
58
|
-
log.info("Closing the LN2 valves")
|
|
59
|
-
for i in range(1, 5):
|
|
60
|
-
# log.debug(f"set_valve, MV01{i}, False")
|
|
61
|
-
valves.set_valve(f"MV01{i}", False)
|
|
62
|
-
|
|
63
|
-
log.info("Turning off IG filament")
|
|
64
|
-
# log.debug("set_filament_enable, False")
|
|
65
|
-
igm402.set_filament_enable(False)
|
|
66
|
-
else:
|
|
67
|
-
log.info(f"TPG261 is still in a safe range: {tpg261Value}")
|
|
68
|
-
else:
|
|
69
|
-
log.info(f"IGM402 is still in a safe range: {igm402Value}")
|
|
70
|
-
|
|
71
|
-
log.info(f'Finished {__name__}')
|
scripts/fix_csv.py
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
Small script to fix some problems with CSV files.
|
|
3
|
-
|
|
4
|
-
All the functions are written for a specific problem, you might need to run the script for
|
|
5
|
-
several functions to fix different problems.
|
|
6
|
-
|
|
7
|
-
Synopsis:
|
|
8
|
-
|
|
9
|
-
$ python3 fix_csv.py original_input.csv out.csv --function newlines
|
|
10
|
-
$ python3 fix_csv.py out.csv out2.csv --function vbar
|
|
11
|
-
|
|
12
|
-
"""
|
|
13
|
-
def fix_newlines_in_fields(input_file, output_file, delimiter: str = ','):
|
|
14
|
-
"""
|
|
15
|
-
Sometimes we have seen that a field contains a newline character (usually due to an error
|
|
16
|
-
in processing the response from a device where the trailing newline was not removed). This
|
|
17
|
-
function tries to fix that problem.
|
|
18
|
-
|
|
19
|
-
Args:
|
|
20
|
-
input_file: the original CSV file where the problem occurs
|
|
21
|
-
output_file: the file with the fixed lines
|
|
22
|
-
delimiter: the delimiter that is used for the CSV [default=',']
|
|
23
|
-
|
|
24
|
-
Returns:
|
|
25
|
-
None.
|
|
26
|
-
"""
|
|
27
|
-
|
|
28
|
-
with open(input_file, 'r') as fd:
|
|
29
|
-
lines = fd.read().split('\n')
|
|
30
|
-
fixed_lines = []
|
|
31
|
-
prev_line = None
|
|
32
|
-
|
|
33
|
-
for line in lines:
|
|
34
|
-
if prev_line is None:
|
|
35
|
-
# We assume the first row in the CSV file has the correct number of fields
|
|
36
|
-
expected_num_delimiters = line.count(delimiter)
|
|
37
|
-
prev_line = line
|
|
38
|
-
elif prev_line.count(delimiter) < expected_num_delimiters:
|
|
39
|
-
prev_line += line
|
|
40
|
-
else:
|
|
41
|
-
fixed_lines.append(prev_line)
|
|
42
|
-
prev_line = line
|
|
43
|
-
|
|
44
|
-
if prev_line is not None:
|
|
45
|
-
fixed_lines.append(prev_line)
|
|
46
|
-
|
|
47
|
-
with open(output_file, 'w', newline='\n') as fd:
|
|
48
|
-
fd.writelines([f"{x}\n" for x in fixed_lines])
|
|
49
|
-
|
|
50
|
-
def fix_vertical_bar(input_file, output_file, delimiter: str = ','):
|
|
51
|
-
"""Removes all vertical bar '|' characters from the file."""
|
|
52
|
-
|
|
53
|
-
with open(input_file, 'r') as fd:
|
|
54
|
-
lines = fd.read().split('\n')
|
|
55
|
-
fixed_lines = [line.replace('|', '') for line in lines]
|
|
56
|
-
|
|
57
|
-
with open(output_file, 'w', newline='\n') as fd:
|
|
58
|
-
fd.writelines([f"{x}\n" for x in fixed_lines])
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
if __name__ == '__main__':
|
|
62
|
-
|
|
63
|
-
import argparse
|
|
64
|
-
|
|
65
|
-
parser = argparse.ArgumentParser(description="Script to fix several CSV issues")
|
|
66
|
-
|
|
67
|
-
parser.add_argument("input_file", help="Path to the input file")
|
|
68
|
-
parser.add_argument("output_file", help="Path to the output file")
|
|
69
|
-
|
|
70
|
-
parser.add_argument('--function', default='newlines', choices=('newlines', 'vbar'),
|
|
71
|
-
help="Function to apply to the input file. Default: 'newlines'")
|
|
72
|
-
|
|
73
|
-
args = parser.parse_args()
|
|
74
|
-
|
|
75
|
-
if args.function == "newlines":
|
|
76
|
-
fix_newlines_in_fields(args.input_file, args.output_file)
|
|
77
|
-
elif args.function == "vbar":
|
|
78
|
-
fix_vertical_bar(args.input_file, args.output_file)
|
|
79
|
-
else:
|
|
80
|
-
print(f"Invalid function argument given: {args.function}.")
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import pandas
|
|
2
|
-
from math import isnan
|
|
3
|
-
from egse.hk import read_conversion_dict
|
|
4
|
-
from egse.fee.n_fee_hk import ORIGIN
|
|
5
|
-
|
|
6
|
-
filename = "/Users/sara/work/Instrumentation/Plato/data/PLATO-MSSL-PL-FI-0063_1.1_N-FEE_PFM_HK_Calibrations_File.xlsx"
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
def print_temperature_calibration(filename: str):
|
|
10
|
-
table = pandas.read_excel(filename, sheet_name="HK & DAC Calibrations",
|
|
11
|
-
usecols="B, E, F, I, J",
|
|
12
|
-
names=["mssl_names", "gain1", "offset1", "gain2", "offset2"])
|
|
13
|
-
|
|
14
|
-
mssl_names = table["mssl_names"]
|
|
15
|
-
gain1 = table["gain1"]
|
|
16
|
-
offset1 = table["offset1"]
|
|
17
|
-
gain2 = table["gain2"]
|
|
18
|
-
offset2 = table["offset2"]
|
|
19
|
-
|
|
20
|
-
hk_name_mapping = read_conversion_dict(ORIGIN, use_site=False)
|
|
21
|
-
|
|
22
|
-
for index in range(len(mssl_names)):
|
|
23
|
-
mssl_name = mssl_names[index]
|
|
24
|
-
|
|
25
|
-
if isinstance(mssl_name, str) and "[" in mssl_name and "]" in mssl_name:
|
|
26
|
-
mssl_name = mssl_name.split("[")[0]
|
|
27
|
-
egse_name = hk_name_mapping[mssl_name]
|
|
28
|
-
|
|
29
|
-
is_temperature_calibration = "_T_" in egse_name or "TRP" in egse_name
|
|
30
|
-
if is_temperature_calibration:
|
|
31
|
-
print(f"\t{egse_name} ({mssl_name}):")
|
|
32
|
-
# print(gain1[index], offset1[index])
|
|
33
|
-
|
|
34
|
-
if "TSENSE" in mssl_name:
|
|
35
|
-
print(f"\t\tcounts_to_temperature_gain: {gain1[index]}")
|
|
36
|
-
print(f"\tcounts_to_temperature_offset: {offset1[index]}")
|
|
37
|
-
|
|
38
|
-
else:
|
|
39
|
-
print(f"\t\tcounts_to_resistance_gain: {gain2[index]}")
|
|
40
|
-
print(f"\t\toffset: {offset2[index]}")
|
|
41
|
-
print(f"\t\tresistance_to_temperature:")
|
|
42
|
-
|
|
43
|
-
if "CCD" in mssl_name:
|
|
44
|
-
print(f"\t\t\tmethod: polynomial")
|
|
45
|
-
print(f"\t\t\ttemperature_to_resistance_coefficients: XXX")
|
|
46
|
-
else:
|
|
47
|
-
print(f"\t\t\tmethod: callendar_van_dusen")
|
|
48
|
-
print(f"\t\t\tstandard: EN60751")
|
|
49
|
-
print(f"\t\t\tref_resistance: 1000")
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
def print_supply_voltage_calibration(filename: str):
|
|
53
|
-
table = pandas.read_excel(filename, sheet_name="HK & DAC Calibrations",
|
|
54
|
-
usecols="B, T, U, E, F",
|
|
55
|
-
names=["mssl_names", "gain1", "offset1", "gain2", "offset2"])
|
|
56
|
-
|
|
57
|
-
mssl_names = table["mssl_names"]
|
|
58
|
-
gain1 = table["gain1"]
|
|
59
|
-
offset1 = table["offset1"]
|
|
60
|
-
gain2 = table["gain2"]
|
|
61
|
-
offset2 = table["offset2"]
|
|
62
|
-
|
|
63
|
-
hk_name_mapping = read_conversion_dict(ORIGIN, use_site=False)
|
|
64
|
-
|
|
65
|
-
for index in range(len(mssl_names)):
|
|
66
|
-
mssl_name = mssl_names[index]
|
|
67
|
-
|
|
68
|
-
if isinstance(mssl_name, str) and "[" in mssl_name and "]" in mssl_name:
|
|
69
|
-
mssl_name = mssl_name.split("[")[0]
|
|
70
|
-
egse_name = hk_name_mapping[mssl_name]
|
|
71
|
-
|
|
72
|
-
is_temperature_calibration = "_T_" in egse_name or "TRP" in egse_name
|
|
73
|
-
if not is_temperature_calibration:
|
|
74
|
-
print(f"\t{egse_name}:")
|
|
75
|
-
|
|
76
|
-
if not isnan(gain1[index]) and not isnan(offset1[index]):
|
|
77
|
-
print(f"\t\tgain: {gain1[index]}")
|
|
78
|
-
print(f"\t\toffset: {offset1[index]}")
|
|
79
|
-
elif not isnan(gain2[index]) and not isnan(offset2[index]):
|
|
80
|
-
print(f"\t\tgain: {gain2[index]}")
|
|
81
|
-
print(f"\t\toffset: {offset2[index]}")
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
def print_n_fee_calibration(filename):
|
|
85
|
-
print("temperatures:")
|
|
86
|
-
# TODO Print sub-sections
|
|
87
|
-
print_temperature_calibration(filename)
|
|
88
|
-
|
|
89
|
-
print("")
|
|
90
|
-
|
|
91
|
-
print("supply_voltages:")
|
|
92
|
-
print_supply_voltage_calibration(filename)
|
scripts/playground.py
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import logging
|
|
2
|
-
|
|
3
|
-
from egse.aeu.aeu import CRIOProxy
|
|
4
|
-
from egse.tcs.tcs import TCSProxy
|
|
5
|
-
|
|
6
|
-
LOGGER = logging.getLogger("egse.test.tcs")
|
|
7
|
-
|
|
8
|
-
while True:
|
|
9
|
-
|
|
10
|
-
time.sleep(1.0)
|
|
11
|
-
|
|
12
|
-
with TCSProxy() as tcs_proxy, CRIOProxy() as aeu_crio:
|
|
13
|
-
|
|
14
|
-
try:
|
|
15
|
-
trp1_avg = float(tcs_proxy.get_housekeeping_value("tou_rtd_tav").value)
|
|
16
|
-
except ValueError:
|
|
17
|
-
LOGGER.warning(f"TRP1 Value Error in cdaq alarms: trp1_avg should be a number, got {trp1_avg}."
|
|
18
|
-
f"\nTerminating...")
|
|
19
|
-
if trp1_avg == "tbd":
|
|
20
|
-
LOGGER.warning("Got TBD for TRP1_AVG.\nCheck if the task is well running.\nTerminating...")
|
|
21
|
-
break
|
|
22
|
-
trp22_avg = float(tcs_proxy.get_housekeeping_value("fee_rtd_tav").value)
|
|
23
|
-
except ValueError:
|
|
24
|
-
LOGGER.warning(f"TRP22_AVG ValueError: trp22_avg should be a number, got {trp22_avg}."
|
|
25
|
-
f"\nTerminating...")
|
|
26
|
-
if trp22_avg == "tbd":
|
|
27
|
-
LOGGER.warning("Got TBD for TRP22_AVG.\nCheck if the task is well running.\nTerminating...")
|
|
28
|
-
break
|
|
29
|
-
|
|
30
|
-
aeu_standby = aeu_crio.get_operating_mode() == OperatingMode.STANDBY # True means aeu is in standby mode
|