cgse 2024.7.0__py3-none-any.whl → 2025.0.2__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-2025.0.2.dist-info/METADATA +38 -0
- cgse-2025.0.2.dist-info/RECORD +5 -0
- {cgse-2024.7.0.dist-info → cgse-2025.0.2.dist-info}/WHEEL +1 -2
- cgse-2024.7.0.dist-info/COPYING +0 -674
- cgse-2024.7.0.dist-info/COPYING.LESSER +0 -165
- cgse-2024.7.0.dist-info/METADATA +0 -144
- cgse-2024.7.0.dist-info/RECORD +0 -660
- cgse-2024.7.0.dist-info/entry_points.txt +0 -75
- cgse-2024.7.0.dist-info/top_level.txt +0 -2
- egse/__init__.py +0 -12
- egse/__main__.py +0 -32
- egse/aeu/aeu.py +0 -5238
- egse/aeu/aeu_awg.yaml +0 -265
- egse/aeu/aeu_crio.yaml +0 -273
- egse/aeu/aeu_cs.py +0 -627
- egse/aeu/aeu_devif.py +0 -321
- egse/aeu/aeu_main_ui.py +0 -903
- 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 -233
- egse/alert/alertman_ui.py +0 -600
- 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 -122
- egse/alert/gsm/beaglebone_protocol.py +0 -46
- 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 -132
- 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 -1058
- egse/confman/confman.yaml +0 -70
- egse/confman/confman_cs.py +0 -240
- egse/confman/confman_ui.py +0 -381
- egse/confman/setup_ui.py +0 -565
- egse/control.py +0 -632
- egse/coordinates/__init__.py +0 -534
- egse/coordinates/avoidance.py +0 -100
- egse/coordinates/cslmodel.py +0 -127
- egse/coordinates/laser_tracker_to_dict.py +0 -122
- egse/coordinates/point.py +0 -707
- egse/coordinates/pyplot.py +0 -194
- 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 -1240
- 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 -514
- egse/device.py +0 -269
- egse/dpu/__init__.py +0 -2698
- egse/dpu/ccd_ui.py +0 -514
- egse/dpu/dpu.py +0 -783
- egse/dpu/dpu.yaml +0 -153
- egse/dpu/dpu_cs.py +0 -272
- egse/dpu/dpu_ui.py +0 -671
- egse/dpu/fitsgen.py +0 -2096
- 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/__init__.py +0 -33
- egse/dsi/_libesl.py +0 -232
- egse/dsi/constants.py +0 -296
- egse/dsi/esl.py +0 -630
- egse/dsi/rmap.py +0 -444
- egse/dsi/rmapci.py +0 -39
- egse/dsi/spw.py +0 -335
- egse/dsi/spw_state.py +0 -29
- egse/dummy.py +0 -318
- egse/dyndummy.py +0 -179
- egse/env.py +0 -278
- egse/exceptions.py +0 -88
- egse/fdir/__init__.py +0 -26
- egse/fdir/fdir_manager.py +0 -85
- egse/fdir/fdir_manager.yaml +0 -37
- egse/fdir/fdir_manager_controller.py +0 -136
- egse/fdir/fdir_manager_cs.py +0 -164
- egse/fdir/fdir_manager_interface.py +0 -15
- egse/fdir/fdir_remote.py +0 -73
- egse/fdir/fdir_remote.yaml +0 -30
- egse/fdir/fdir_remote_controller.py +0 -30
- egse/fdir/fdir_remote_cs.py +0 -94
- egse/fdir/fdir_remote_interface.py +0 -9
- egse/fdir/fdir_remote_popup.py +0 -26
- egse/fee/__init__.py +0 -106
- egse/fee/f_fee_register.yaml +0 -43
- egse/fee/feesim.py +0 -914
- egse/fee/n_fee_hk.py +0 -768
- egse/fee/nfee.py +0 -188
- egse/filterwheel/__init__.py +0 -4
- egse/filterwheel/eksma/__init__.py +0 -49
- egse/filterwheel/eksma/fw8smc4.py +0 -657
- 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 -82
- egse/filterwheel/eksma/fw8smc4_ui.py +0 -940
- egse/filterwheel/eksma/fw8smc5.py +0 -115
- 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 -1065
- egse/filterwheel/eksma/testpythonfw.py +0 -215
- egse/fov/__init__.py +0 -65
- egse/fov/fov_hk.py +0 -710
- egse/fov/fov_ui.py +0 -859
- 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 -138
- 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 -1285
- egse/gui/formatter.py +0 -10
- egse/gui/led.py +0 -162
- egse/gui/limitswitch.py +0 -143
- egse/gui/mechanisms.py +0 -587
- egse/gui/states.py +0 -148
- egse/gui/stripchart.py +0 -729
- egse/gui/styles.qss +0 -48
- 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 -137
- 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 -195
- egse/hexapod/symetrie/puna_protocol.py +0 -134
- egse/hexapod/symetrie/puna_ui.py +0 -433
- 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 -414
- egse/hexapod/symetrie/zonda_protocol.py +0 -123
- egse/hexapod/symetrie/zonda_ui.py +0 -449
- egse/hk.py +0 -791
- 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 -71
- 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/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 -179
- egse/logger/__init__.py +0 -243
- egse/logger/log_cs.py +0 -321
- egse/metrics.py +0 -102
- 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 -165
- 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 -834
- 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 -605
- egse/proxy.py +0 -531
- egse/randomwalk.py +0 -140
- egse/reg.py +0 -585
- egse/reload.py +0 -122
- egse/reprocess.py +0 -693
- egse/resource.py +0 -333
- egse/rmap.py +0 -406
- egse/rst.py +0 -135
- egse/search.py +0 -182
- egse/serialdevice.py +0 -190
- egse/services.py +0 -247
- egse/services.yaml +0 -68
- egse/settings.py +0 -379
- egse/settings.yaml +0 -980
- egse/setup.py +0 -1181
- 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 -71
- 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 -1401
- egse/stages/__init__.py +0 -12
- egse/stages/aerotech/ensemble.py +0 -245
- 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 -188
- egse/stages/arun/smd3.py +0 -110
- egse/stages/arun/smd3.yaml +0 -68
- egse/stages/arun/smd3_controller.py +0 -470
- 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 -920
- 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 -113
- 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 -1067
- egse/storage/persistence.py +0 -2295
- egse/storage/storage.yaml +0 -79
- egse/storage/storage_cs.py +0 -231
- egse/styles/dark.qss +0 -343
- egse/styles/default.qss +0 -48
- egse/synoptics/__init__.py +0 -417
- egse/synoptics/syn.yaml +0 -9
- egse/synoptics/syn_cs.py +0 -195
- egse/system.py +0 -1611
- egse/tcs/__init__.py +0 -14
- egse/tcs/tcs.py +0 -879
- 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 -180
- 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 -114
- egse/tempcontrol/agilent/agilent34970_devif.py +0 -182
- egse/tempcontrol/agilent/agilent34970_protocol.py +0 -96
- egse/tempcontrol/agilent/agilent34972.py +0 -111
- egse/tempcontrol/agilent/agilent34972.yaml +0 -44
- egse/tempcontrol/agilent/agilent34972_cs.py +0 -115
- egse/tempcontrol/agilent/agilent34972_devif.py +0 -189
- egse/tempcontrol/agilent/agilent34972_protocol.py +0 -98
- egse/tempcontrol/beaglebone/beaglebone.py +0 -341
- egse/tempcontrol/beaglebone/beaglebone.yaml +0 -110
- egse/tempcontrol/beaglebone/beaglebone_cs.py +0 -117
- egse/tempcontrol/beaglebone/beaglebone_protocol.py +0 -134
- egse/tempcontrol/beaglebone/beaglebone_ui.py +0 -674
- egse/tempcontrol/digalox/digalox.py +0 -115
- egse/tempcontrol/digalox/digalox.yaml +0 -36
- egse/tempcontrol/digalox/digalox_cs.py +0 -108
- egse/tempcontrol/digalox/digalox_protocol.py +0 -56
- 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 -79
- 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 -76
- egse/tempcontrol/lakeshore/lsci_ui.py +0 -387
- 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 -723
- egse/tempcontrol/srs/__init__.py +0 -22
- egse/tempcontrol/srs/ptc10.py +0 -867
- egse/tempcontrol/srs/ptc10.yaml +0 -227
- egse/tempcontrol/srs/ptc10_cs.py +0 -128
- egse/tempcontrol/srs/ptc10_devif.py +0 -116
- egse/tempcontrol/srs/ptc10_protocol.py +0 -39
- 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 -159
- egse/vacuum/beaglebone/beaglebone_protocol.py +0 -192
- egse/vacuum/beaglebone/beaglebone_ui.py +0 -638
- egse/vacuum/instrutech/igm402.py +0 -91
- egse/vacuum/instrutech/igm402.yaml +0 -90
- egse/vacuum/instrutech/igm402_controller.py +0 -124
- 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 -100
- egse/vacuum/keller/leo3.yaml +0 -38
- egse/vacuum/keller/leo3_controller.py +0 -81
- 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 -313
- egse/vacuum/mks/evision_interface.py +0 -60
- egse/vacuum/mks/evision_simulator.py +0 -24
- egse/vacuum/mks/evision_ui.py +0 -701
- 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 -37
- egse/vacuum/pfeiffer/tc400.py +0 -87
- egse/vacuum/pfeiffer/tc400.yaml +0 -83
- egse/vacuum/pfeiffer/tc400_controller.py +0 -136
- egse/vacuum/pfeiffer/tc400_cs.py +0 -109
- egse/vacuum/pfeiffer/tc400_interface.py +0 -70
- egse/vacuum/pfeiffer/tc400_simulator.py +0 -35
- egse/vacuum/pfeiffer/tpg261.py +0 -80
- 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 -59
- egse/vacuum/pfeiffer/tpg261_simulator.py +0 -23
- 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 -52
- scripts/check_hdf5_files.py +0 -192
- scripts/check_register_sync.py +0 -47
- scripts/check_tcs_calib_coef.py +0 -90
- scripts/correct_ccd_cold_temperature_cal.py +0 -157
- scripts/create_hdf5_report.py +0 -293
- scripts/csl_model.py +0 -420
- scripts/csl_restore_setup.py +0 -229
- scripts/export-grafana-dashboards.py +0 -49
- scripts/fdir/cs_recovery/fdir_cs_recovery.py +0 -54
- scripts/fdir/fdir_table.yaml +0 -70
- scripts/fdir/fdir_test_recovery.py +0 -10
- scripts/fdir/hw_recovery/fdir_agilent_hw_recovery.py +0 -73
- scripts/fdir/limit_recovery/fdir_agilent_limit.py +0 -61
- scripts/fdir/limit_recovery/fdir_bb_heater_limit.py +0 -59
- 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/ias/correct_ccd_temp_cal_elfique.py +0 -43
- scripts/ias/correct_ccd_temp_cal_floreffe.py +0 -43
- scripts/ias/correct_trp_swap_achel.py +0 -199
- scripts/inta/correct_ccd_temp_cal_duvel.py +0 -43
- scripts/inta/correct_ccd_temp_cal_gueuze.py +0 -43
- 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/remove_lines_between_matches.py +0 -188
- 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/correct_mgse_coordinates_brigand_chimay.py +0 -272
- scripts/sron/correct_trp_swap_brigand.py +0 -204
- scripts/sron/gimbal_conversions.py +0 -75
- scripts/sron/tm_gen/tm_gen_agilent.py +0 -37
- 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,62 +0,0 @@
|
|
|
1
|
-
BaseClass:
|
|
2
|
-
egse.lampcontrol.beaglebone.BeagleboneInterface
|
|
3
|
-
|
|
4
|
-
ProxyClass:
|
|
5
|
-
egse.lampcontrol.beaglebone.BeagleboneProxy
|
|
6
|
-
|
|
7
|
-
ControlServerClass:
|
|
8
|
-
egse.lampcontrol.beaglebone.BeagleboneControlServer
|
|
9
|
-
|
|
10
|
-
ControlServer:
|
|
11
|
-
egse.lampcontrol.beaglebone.beaglebone_cs
|
|
12
|
-
|
|
13
|
-
Commands:
|
|
14
|
-
|
|
15
|
-
# Definition of the DeviceInterface
|
|
16
|
-
|
|
17
|
-
disconnect:
|
|
18
|
-
description: Discconect from the Valve Controller.
|
|
19
|
-
|
|
20
|
-
connect:
|
|
21
|
-
description: Connect to the Valve controller.
|
|
22
|
-
|
|
23
|
-
reconnect:
|
|
24
|
-
description: Reconnect to the Valve controller.
|
|
25
|
-
|
|
26
|
-
is_simulator:
|
|
27
|
-
description: Ask if the control server is a is a simulator.
|
|
28
|
-
returns: bool | True if far en is a simulator.
|
|
29
|
-
|
|
30
|
-
is_connected:
|
|
31
|
-
description: Checl of Valve Controller is connected.
|
|
32
|
-
|
|
33
|
-
set_lamp:
|
|
34
|
-
description: Sets the lamp to the given state
|
|
35
|
-
args:
|
|
36
|
-
state: int | State of the lamp
|
|
37
|
-
cmd: "{state}"
|
|
38
|
-
|
|
39
|
-
set_interlock:
|
|
40
|
-
description: Sets the interlock to the given state
|
|
41
|
-
args:
|
|
42
|
-
state: int | state of the lamp
|
|
43
|
-
cmd: "{state}"
|
|
44
|
-
|
|
45
|
-
get_lamp_on:
|
|
46
|
-
description: Returns the on state of the lamp
|
|
47
|
-
returns: bool | True if lamp is on
|
|
48
|
-
|
|
49
|
-
get_laser_on:
|
|
50
|
-
description: Returns the on state of the laser
|
|
51
|
-
returns: bool | True is laser is on
|
|
52
|
-
|
|
53
|
-
get_lamp_module_fault:
|
|
54
|
-
description: Returns the state of the fault of the lamp
|
|
55
|
-
returns: bool | True is there is a fault
|
|
56
|
-
|
|
57
|
-
get_controller_fault:
|
|
58
|
-
description: Returns the state of the fault of the controller
|
|
59
|
-
returns: bool | True is there is a fault
|
|
60
|
-
|
|
61
|
-
fix_controller_fault:
|
|
62
|
-
description: Fixes the controller fault
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
# Control server for the BeagleBone Black valve controller
|
|
2
|
-
|
|
3
|
-
import click
|
|
4
|
-
import logging
|
|
5
|
-
import sys
|
|
6
|
-
|
|
7
|
-
import zmq
|
|
8
|
-
from prometheus_client import start_http_server
|
|
9
|
-
|
|
10
|
-
from egse.control import ControlServer
|
|
11
|
-
from egse.settings import Settings
|
|
12
|
-
from egse.lampcontrol.beaglebone.beaglebone_protocol import BeagleboneProtocol
|
|
13
|
-
from egse.lampcontrol.beaglebone.beaglebone import BeagleboneProxy
|
|
14
|
-
|
|
15
|
-
logging.basicConfig(level=logging.DEBUG, format=Settings.LOG_FORMAT_FULL)
|
|
16
|
-
|
|
17
|
-
logger = logging.getLogger(__name__)
|
|
18
|
-
|
|
19
|
-
CTRL_SETTINGS = Settings.load("BeagleBone Lamp Control Server")
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
class BeagleBoneControlServer(ControlServer):
|
|
23
|
-
|
|
24
|
-
def __init__(self):
|
|
25
|
-
super().__init__()
|
|
26
|
-
|
|
27
|
-
self.device_protocol = BeagleboneProtocol(self)
|
|
28
|
-
|
|
29
|
-
self.logger.debug(f'Binding ZeroMQ socket to {self.device_protocol.get_bind_address()}')
|
|
30
|
-
|
|
31
|
-
self.device_protocol.bind(self.dev_ctrl_cmd_sock)
|
|
32
|
-
|
|
33
|
-
self.poller.register(self.dev_ctrl_cmd_sock, zmq.POLLIN)
|
|
34
|
-
|
|
35
|
-
self.set_hk_delay(CTRL_SETTINGS.DELAY)
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
def get_communication_protocol(self):
|
|
39
|
-
return CTRL_SETTINGS.PROTOCOL
|
|
40
|
-
|
|
41
|
-
def get_commanding_port(self):
|
|
42
|
-
return CTRL_SETTINGS.COMMANDING_PORT
|
|
43
|
-
|
|
44
|
-
def get_service_port(self):
|
|
45
|
-
return CTRL_SETTINGS.SERVICE_PORT
|
|
46
|
-
|
|
47
|
-
def get_monitoring_port(self):
|
|
48
|
-
return CTRL_SETTINGS.MONITORING_PORT
|
|
49
|
-
|
|
50
|
-
def get_storage_mnemonic(self):
|
|
51
|
-
try:
|
|
52
|
-
return CTRL_SETTINGS.STORAGE_MNEMONIC
|
|
53
|
-
except:
|
|
54
|
-
return 'BBB_GSM'
|
|
55
|
-
|
|
56
|
-
def before_serve(self):
|
|
57
|
-
start_http_server(CTRL_SETTINGS.METRICS_PORT)
|
|
58
|
-
|
|
59
|
-
def after_serve(self):
|
|
60
|
-
self.device_protocol.beaglebone.beaglebone._dev_gpio.close()
|
|
61
|
-
self.device_protocol.synoptics.disconnect_cs()
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
@click.group()
|
|
65
|
-
def cli():
|
|
66
|
-
pass
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
@cli.command()
|
|
70
|
-
@click.option("--simulator", "--sim", is_flag=True, help="Start the BeagleBone Valve Controller Simulator as the backend.")
|
|
71
|
-
def start(simulator):
|
|
72
|
-
"""Start the BeagleBone Lamp Control Server."""
|
|
73
|
-
|
|
74
|
-
if simulator:
|
|
75
|
-
Settings.set_simulation_mode(True)
|
|
76
|
-
try:
|
|
77
|
-
control_server = BeagleBoneControlServer()
|
|
78
|
-
control_server.serve()
|
|
79
|
-
|
|
80
|
-
except KeyboardInterrupt:
|
|
81
|
-
logger.info("Shutdown requested...exiting")
|
|
82
|
-
|
|
83
|
-
except SystemExit as exit_code:
|
|
84
|
-
logger.info("System Exit with code {}.".format(exit_code))
|
|
85
|
-
sys.exit(exit_code)
|
|
86
|
-
|
|
87
|
-
except Exception:
|
|
88
|
-
|
|
89
|
-
logger.exception("Cannot start the BeagleBone Valve Control Server")
|
|
90
|
-
|
|
91
|
-
return 0
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
@cli.command()
|
|
95
|
-
def stop():
|
|
96
|
-
"""Send a 'quit_server' command to the Control Server."""
|
|
97
|
-
|
|
98
|
-
with BeagleboneProxy() as proxy:
|
|
99
|
-
|
|
100
|
-
sp = proxy.get_service_proxy()
|
|
101
|
-
sp.quit_server()
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
if __name__ == "__main__":
|
|
105
|
-
|
|
106
|
-
sys.exit(cli())
|
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
import logging
|
|
2
|
-
import struct
|
|
3
|
-
import time
|
|
4
|
-
import socket
|
|
5
|
-
import errno
|
|
6
|
-
import os
|
|
7
|
-
|
|
8
|
-
from egse.command import ClientServerCommand
|
|
9
|
-
from egse.exceptions import DeviceNotFoundError
|
|
10
|
-
from egse.settings import Settings
|
|
11
|
-
|
|
12
|
-
LAMP = 50
|
|
13
|
-
EX_INTERLOCK = 20
|
|
14
|
-
|
|
15
|
-
LAMP_ON=66
|
|
16
|
-
LASER_ON=61
|
|
17
|
-
LAMP_MODULE_FAULT = 67
|
|
18
|
-
CONTROLLER_FAULT = 65
|
|
19
|
-
|
|
20
|
-
logger = logging.getLogger(__name__)
|
|
21
|
-
ctrl_settings = Settings.load('BeagleBone Lamp Control Server')
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
class BeagleboneCommand(ClientServerCommand):
|
|
25
|
-
def get_cmd_string(self, *args, **kwargs):
|
|
26
|
-
out = super().get_cmd_string(*args, **kwargs)
|
|
27
|
-
return out + '\n'
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
class BeagleboneDeviceInterface:
|
|
31
|
-
def __init__(self):
|
|
32
|
-
|
|
33
|
-
# Perform SRON gssw imports here to avoid issues at other THs
|
|
34
|
-
from gssw.config.configclient import ConfigClient
|
|
35
|
-
from gssw.common import addLoggingLevel
|
|
36
|
-
from gssw.hal.hal import Hal
|
|
37
|
-
from gssw.hal.halclient import HalClient
|
|
38
|
-
from gssw.lib.device import Device
|
|
39
|
-
|
|
40
|
-
self._is_connected = False
|
|
41
|
-
|
|
42
|
-
# InitGssw does something to zmq that breaks cgse logging.
|
|
43
|
-
# So instead I copied the essentials here.
|
|
44
|
-
configClient = ConfigClient(os.getenv('GSSW_CONFIGURATION_FILE'))
|
|
45
|
-
config = configClient.config
|
|
46
|
-
addLoggingLevel('data', 15)
|
|
47
|
-
|
|
48
|
-
hal = Hal()
|
|
49
|
-
hal_client = HalClient(hal, config)
|
|
50
|
-
hal_client.requestHal()
|
|
51
|
-
|
|
52
|
-
self._dev_gpio = Device('gpio_gsm', config, hal)
|
|
53
|
-
|
|
54
|
-
def connect(self):
|
|
55
|
-
self._is_connected = True
|
|
56
|
-
|
|
57
|
-
def disconnect(self):
|
|
58
|
-
self._is_connected = False
|
|
59
|
-
|
|
60
|
-
def reconnect(self):
|
|
61
|
-
if self._is_connected:
|
|
62
|
-
self.disconnect()
|
|
63
|
-
self.connect()
|
|
64
|
-
|
|
65
|
-
def is_connected(self):
|
|
66
|
-
return self._is_connected
|
|
67
|
-
|
|
68
|
-
def set_lamp(self, state):
|
|
69
|
-
try:
|
|
70
|
-
logger.info(f"Lamp source is now: {'ON' if state == 1 else 'Off'}")
|
|
71
|
-
self._dev_gpio.setMultiple([('GPIO_PIN', LAMP), ('GPIO_VALUE', state)])
|
|
72
|
-
except Exception as exc:
|
|
73
|
-
logger.error(f'Could not turn on the light source: {exc}')
|
|
74
|
-
raise exc
|
|
75
|
-
|
|
76
|
-
def set_interlock(self, state):
|
|
77
|
-
try:
|
|
78
|
-
logger.info(f"Lamp external interlock is now: {'ON' if state == 1 else 'Off'}")
|
|
79
|
-
self._dev_gpio.setMultiple([('GPIO_PIN', EX_INTERLOCK), ('GPIO_VALUE', state)])
|
|
80
|
-
except Exception as exc:
|
|
81
|
-
logger.error(f'Could not turn set interlock: {exc}')
|
|
82
|
-
raise exc
|
|
83
|
-
|
|
84
|
-
def get_lamp_on(self):
|
|
85
|
-
try:
|
|
86
|
-
lamp_on = self._dev_gpio.getSetMultiple([("GPIO_PIN", LAMP_ON), ("GPIO_VALUE", None)])
|
|
87
|
-
return bool(not lamp_on[0])
|
|
88
|
-
except Exception as exc:
|
|
89
|
-
logger.error(f'Could not read lamp state: {exc}')
|
|
90
|
-
raise exc
|
|
91
|
-
|
|
92
|
-
def get_laser_on(self):
|
|
93
|
-
try:
|
|
94
|
-
laser_on = self._dev_gpio.getSetMultiple([("GPIO_PIN", LASER_ON), ("GPIO_VALUE", None)])
|
|
95
|
-
return bool(not laser_on[0])
|
|
96
|
-
except Exception as exc:
|
|
97
|
-
logger.error(f'Could not get laser state: {exc}')
|
|
98
|
-
raise exc
|
|
99
|
-
|
|
100
|
-
def get_lamp_module_fault(self):
|
|
101
|
-
try:
|
|
102
|
-
lamp_module_fault = self._dev_gpio.getSetMultiple([("GPIO_PIN", LAMP_MODULE_FAULT), ("GPIO_VALUE", None)])
|
|
103
|
-
return bool(lamp_module_fault[0])
|
|
104
|
-
except Exception as exc:
|
|
105
|
-
logger.error(f'Could not get lamp module faults: {exc}')
|
|
106
|
-
raise exc
|
|
107
|
-
|
|
108
|
-
def get_controller_fault(self):
|
|
109
|
-
try:
|
|
110
|
-
controller_fault = self._dev_gpio.getSetMultiple([("GPIO_PIN", CONTROLLER_FAULT), ("GPIO_VALUE", None)])
|
|
111
|
-
return bool(controller_fault[0])
|
|
112
|
-
except Exception as exc:
|
|
113
|
-
logger.error(f'Could not get controller faults: {exc}')
|
|
114
|
-
raise exc
|
|
115
|
-
|
|
116
|
-
def fix_controller_fault(self):
|
|
117
|
-
# 1. Close interlocks
|
|
118
|
-
self.set_interlock(True)
|
|
119
|
-
# 2. Turn on lamp
|
|
120
|
-
self.set_lamp(True)
|
|
121
|
-
# 3. Wait for a second
|
|
122
|
-
time.sleep(2)
|
|
123
|
-
# 4. Disable lamp
|
|
124
|
-
self.set_lamp(False)
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
def main():
|
|
128
|
-
bbb = BeagleboneDeviceInterface()
|
|
129
|
-
|
|
130
|
-
print(f"Lamp state: {bbb.get_lamp_on()}\n"\
|
|
131
|
-
f"Laster state: {bbb.get_laser_on()}\n"\
|
|
132
|
-
f"Module fault: {bbb.get_lamp_module_fault()}\n"\
|
|
133
|
-
f"Controller fault: {bbb.get_controller_fault()}\n")
|
|
134
|
-
# bbb.set_lamp(True)
|
|
135
|
-
|
|
136
|
-
# while not bbb.get_lamp_on():
|
|
137
|
-
# pass
|
|
138
|
-
|
|
139
|
-
# while not bbb.get_laser_on():
|
|
140
|
-
# pass
|
|
141
|
-
|
|
142
|
-
# print(f"Lamp state: {bbb.get_lamp_on()}\n"\
|
|
143
|
-
# f"Laster state: {bbb.get_laser_on()}\n"\
|
|
144
|
-
# f"Module fault: {bbb.get_lamp_module_fault()}\n"\
|
|
145
|
-
# f"Controller fault: {bbb.get_controller_fault()}")
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
if __name__ == '__main__':
|
|
150
|
-
main()
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
from egse.control import ControlServer
|
|
2
|
-
from egse.protocol import CommandProtocol
|
|
3
|
-
from egse.settings import Settings
|
|
4
|
-
|
|
5
|
-
from prometheus_client import Gauge
|
|
6
|
-
|
|
7
|
-
from egse.lampcontrol.beaglebone.beaglebone import BeagleboneController
|
|
8
|
-
from egse.lampcontrol.beaglebone.beaglebone import BeagleboneInterface
|
|
9
|
-
from egse.lampcontrol.beaglebone.beaglebone import BeagleboneSimulator
|
|
10
|
-
from egse.lampcontrol.beaglebone.beaglebone_devif import BeagleboneCommand
|
|
11
|
-
from egse.synoptics import SynopticsManagerProxy
|
|
12
|
-
from egse.system import format_datetime
|
|
13
|
-
from egse.zmq_ser import bind_address
|
|
14
|
-
|
|
15
|
-
COMMAND_SETTINGS = Settings.load(filename='beaglebone.yaml')
|
|
16
|
-
SITE_ID = Settings.load("SITE").ID
|
|
17
|
-
|
|
18
|
-
gauge_lamp_on = Gauge("GSRON_LAMP_LAMP_ON", "")
|
|
19
|
-
gauge_laser_on = Gauge("GSRON_LAMP_LASER_ON", "")
|
|
20
|
-
gauge_lamp_module_fault = Gauge("GSRON_LAMP_MODULE_FAULT", "")
|
|
21
|
-
gauge_controller_fault = Gauge("GSRON_LAMP_CTRL_FAULT", "")
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
class BeagleboneProtocol(CommandProtocol):
|
|
25
|
-
def __init__(self, control_server:ControlServer):
|
|
26
|
-
super().__init__()
|
|
27
|
-
self.control_server = control_server
|
|
28
|
-
|
|
29
|
-
if Settings.simulation_mode():
|
|
30
|
-
self.beaglebone = BeagleboneSimulator()
|
|
31
|
-
else:
|
|
32
|
-
self.beaglebone = BeagleboneController()
|
|
33
|
-
|
|
34
|
-
self.load_commands(COMMAND_SETTINGS.Commands, BeagleboneCommand, BeagleboneInterface)
|
|
35
|
-
|
|
36
|
-
self.build_device_method_lookup_table(self.beaglebone)
|
|
37
|
-
|
|
38
|
-
self.synoptics = SynopticsManagerProxy()
|
|
39
|
-
|
|
40
|
-
def get_bind_address(self):
|
|
41
|
-
return bind_address(self.control_server.get_communication_protocol(),
|
|
42
|
-
self.control_server.get_commanding_port())
|
|
43
|
-
|
|
44
|
-
def get_status(self):
|
|
45
|
-
status_dict = super().get_status()
|
|
46
|
-
status_dict['lamp_status'] = {
|
|
47
|
-
'lamp_state' : self.beaglebone.get_lamp_on(),
|
|
48
|
-
'laser_state' : self.beaglebone.get_laser_on(),
|
|
49
|
-
'module_fault' : self.beaglebone.get_lamp_module_fault(),
|
|
50
|
-
'controller_fault' : self.beaglebone.get_controller_fault()
|
|
51
|
-
}
|
|
52
|
-
return status_dict
|
|
53
|
-
|
|
54
|
-
def get_housekeeping(self) -> dict:
|
|
55
|
-
|
|
56
|
-
hk_dict = dict()
|
|
57
|
-
hk_dict['timestamp'] = format_datetime()
|
|
58
|
-
|
|
59
|
-
hk_dict['GSRON_LAMP_LAMP_ON'] = self.beaglebone.get_lamp_on()
|
|
60
|
-
hk_dict['GSRON_LAMP_LASER_ON'] = self.beaglebone.get_laser_on()
|
|
61
|
-
|
|
62
|
-
# Send the HK acquired so far to the Synoptics Manager
|
|
63
|
-
self.synoptics.store_th_synoptics(hk_dict)
|
|
64
|
-
|
|
65
|
-
hk_dict['GSRON_LAMP_MODULE_FAULT'] = self.beaglebone.get_lamp_module_fault()
|
|
66
|
-
hk_dict['GSRON_LAMP_CTRL_FAULT'] = self.beaglebone.get_controller_fault()
|
|
67
|
-
|
|
68
|
-
gauge_lamp_on.set(hk_dict['GSRON_LAMP_LAMP_ON'])
|
|
69
|
-
gauge_laser_on.set(hk_dict['GSRON_LAMP_LASER_ON'])
|
|
70
|
-
gauge_lamp_module_fault.set(hk_dict['GSRON_LAMP_MODULE_FAULT'])
|
|
71
|
-
gauge_controller_fault.set(hk_dict['GSRON_LAMP_CTRL_FAULT'])
|
|
72
|
-
|
|
73
|
-
return hk_dict
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
Device control for the EQ-99 Manager that controls the Hamamatsu Lamp.
|
|
3
|
-
|
|
4
|
-
The main entry point for the user of this package is through the `Eq99Proxy` class:
|
|
5
|
-
|
|
6
|
-
```python
|
|
7
|
-
>>> from egse.lampcontrol.energetiq.lampEQ99 import LampEQ99Proxy
|
|
8
|
-
```
|
|
9
|
-
|
|
10
|
-
This class will connect to the control server of the filter wheel and provides all commands to
|
|
11
|
-
control this device and monitor its settings and status.
|
|
12
|
-
|
|
13
|
-
We have also provided a graphical user interface (GUI) to monitor and manipulate the filter wheel.
|
|
14
|
-
For this, execute the following command from the terminal. We assume hereby that your environment
|
|
15
|
-
and `PYTHONPATH` are set up properly.
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
$ python -m egse.lampcontrol.energetiq.eq99_cs
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
"""
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
BaseClass:
|
|
2
|
-
egse.lampcontrol.energetiq.lampEQ99.LampEQ99Interface
|
|
3
|
-
|
|
4
|
-
ProxyClass:
|
|
5
|
-
egse.lampcontrol.energetiq.lampEQ99.LampEQ99Proxy
|
|
6
|
-
|
|
7
|
-
ControlServerClass:
|
|
8
|
-
egse.lampcontrol.energetiq.lampEQ99_cs.LampEQ99ControlServer
|
|
9
|
-
|
|
10
|
-
ControlServer:
|
|
11
|
-
egse.lampcontrol.energetiq.lampEQ99_cs
|
|
12
|
-
|
|
13
|
-
UserInterface:
|
|
14
|
-
egse.lampcontrol.energetiq.lampEQ99_ui
|
|
15
|
-
|
|
16
|
-
Commands:
|
|
17
|
-
|
|
18
|
-
# Each of these groups is parsed and used on both the server and the client side.
|
|
19
|
-
# The group name (e.g. is_simulator) will be monkey patched in the Proxy class for the device or service.
|
|
20
|
-
# The other field are:
|
|
21
|
-
# description: Used by the doc_string method to generate a help string
|
|
22
|
-
# cmd: Command string that will eventually be send to the hardware controller for the
|
|
23
|
-
# device after the arguments have been filled.
|
|
24
|
-
# device_method: The name of the method to be called on the device class.
|
|
25
|
-
# These should all be defined by the base class for the device.
|
|
26
|
-
# This method should exist in the subclass of the CommandProtocol base class.
|
|
27
|
-
|
|
28
|
-
# Definition of the the DeviceInterface
|
|
29
|
-
|
|
30
|
-
connect:
|
|
31
|
-
description: Connect the Filter Wheel hardware controller
|
|
32
|
-
|
|
33
|
-
reconnect:
|
|
34
|
-
description: Reconnect the Lamp hardware controller.
|
|
35
|
-
|
|
36
|
-
This command will force a disconnect and then try to re-connect to the controller.
|
|
37
|
-
|
|
38
|
-
disconnect:
|
|
39
|
-
description : Disconnect from the Lamp controller. This command will be send to the
|
|
40
|
-
Thorlabs Control Server which will then disconnect from the hardware controller.
|
|
41
|
-
This command doesn't affect the ZeroMQ connection of this Proxy to the
|
|
42
|
-
control server. Use the service command `disconnect_cs()` to disconnect
|
|
43
|
-
from the control server.
|
|
44
|
-
|
|
45
|
-
is_connected:
|
|
46
|
-
description: Check if the Thorlabs Hardware Controller is connected.
|
|
47
|
-
|
|
48
|
-
is_simulator:
|
|
49
|
-
description: Ask if the control server is a simulator instead of the real LampEQ99Controller class.
|
|
50
|
-
returns: bool | True if the far end is a simulator instead of the real hardware
|
|
51
|
-
|
|
52
|
-
get_id:
|
|
53
|
-
description: Retrieve the rSCPI Identification for the Lamp.
|
|
54
|
-
returns: str | The IDN for the given device
|
|
55
|
-
|
|
56
|
-
info:
|
|
57
|
-
description: Retrieve basic information about the Lamp and the Controller.
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
# Definition of the device commands
|
|
61
|
-
|
|
62
|
-
ldls_reset:
|
|
63
|
-
description: Resets the instrument to the factory default and the ouput is shut off. The unit remains in
|
|
64
|
-
remote mode
|
|
65
|
-
returns: None
|
|
66
|
-
|
|
67
|
-
lamp_errors:
|
|
68
|
-
description: Returns a comma delimited list of error codes with a string description included.
|
|
69
|
-
If no error has occurred, a 0 is returned.
|
|
70
|
-
returns: dict | ErrorCode and ErrorMessage
|
|
71
|
-
|
|
72
|
-
set_lamp:
|
|
73
|
-
description: Turns the lamp output on or off
|
|
74
|
-
args:
|
|
75
|
-
_enable: bool | "0" disables "1" enables
|
|
76
|
-
cmd: "{_enable}"
|
|
77
|
-
returns: None
|
|
78
|
-
|
|
79
|
-
get_lamp:
|
|
80
|
-
description: Returns the output state. Will return true as soon as the turned on process has started, even if
|
|
81
|
-
the lamp has not yet turned on. To determine the lamp and laser state use get_lamp_state
|
|
82
|
-
returns: bool | 0 OFF 1 ON
|
|
83
|
-
|
|
84
|
-
set_lamp_time:
|
|
85
|
-
description: Resets the lamp runtime to the new value in hours.
|
|
86
|
-
args:
|
|
87
|
-
_time: float | the number of hours from 0 to 999
|
|
88
|
-
cmd: "{_time}"
|
|
89
|
-
returns: None
|
|
90
|
-
|
|
91
|
-
get_lamp_time:
|
|
92
|
-
description: The number of hours accumulated while the lamp was on. The value is in hours.
|
|
93
|
-
returns: int | number of hours
|
|
94
|
-
|
|
95
|
-
get_lamp_status:
|
|
96
|
-
description: Returns the LDLS condition register. The condition register reflects the state of the instrument at
|
|
97
|
-
the time the condition register is read.
|
|
98
|
-
returns: dict | with all the bit status TBW
|