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
egse/alert/gsm/beaglebone.py
DELETED
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
import logging
|
|
2
|
-
import time
|
|
3
|
-
|
|
4
|
-
from egse.decorators import dynamic_interface
|
|
5
|
-
from egse.device import DeviceInterface
|
|
6
|
-
from egse.proxy import Proxy
|
|
7
|
-
from egse.settings import Settings
|
|
8
|
-
from egse.alert.gsm.beaglebone_devif import BeagleboneDeviceInterface
|
|
9
|
-
from egse.zmq_ser import connect_address
|
|
10
|
-
|
|
11
|
-
logger = logging.getLogger(__name__)
|
|
12
|
-
|
|
13
|
-
CTRL_SETTINGS = Settings.load("BeagleBone GSM Control Server")
|
|
14
|
-
DEVICE_SETTINGS = Settings.load(filename='beaglebone.yaml')
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
class BeagleboneError(Exception):
|
|
18
|
-
pass
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
class BeagleboneInterface(DeviceInterface):
|
|
22
|
-
""" BeagleBone base class."""
|
|
23
|
-
@dynamic_interface
|
|
24
|
-
def set_alert(self, pin):
|
|
25
|
-
NotImplemented
|
|
26
|
-
|
|
27
|
-
@dynamic_interface
|
|
28
|
-
def unset_alert(self, pin):
|
|
29
|
-
NotImplemented
|
|
30
|
-
@dynamic_interface
|
|
31
|
-
def get_alert(self, pin):
|
|
32
|
-
NotImplemented
|
|
33
|
-
|
|
34
|
-
@dynamic_interface
|
|
35
|
-
def toggle_watchdog(self):
|
|
36
|
-
NotImplemented
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
class BeagleboneSimulator(BeagleboneInterface):
|
|
40
|
-
""" BeagleBone simulator class. """
|
|
41
|
-
|
|
42
|
-
def __init__(self):
|
|
43
|
-
self._is_connected = True
|
|
44
|
-
|
|
45
|
-
def is_connected(self):
|
|
46
|
-
return self._is_connected
|
|
47
|
-
|
|
48
|
-
def is_simulator(self):
|
|
49
|
-
return True
|
|
50
|
-
|
|
51
|
-
def connect(self):
|
|
52
|
-
self._is_connected = True
|
|
53
|
-
|
|
54
|
-
def disconnect(self):
|
|
55
|
-
self._is_connected = False
|
|
56
|
-
|
|
57
|
-
def reconnect(self):
|
|
58
|
-
if self.is_connected():
|
|
59
|
-
self.disconnect()
|
|
60
|
-
self.connect()
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
class BeagleboneController(BeagleboneInterface):
|
|
65
|
-
|
|
66
|
-
def __init__(self):
|
|
67
|
-
super().__init__()
|
|
68
|
-
|
|
69
|
-
logger.debug('Initalizing BeagleBone Controller')
|
|
70
|
-
|
|
71
|
-
try:
|
|
72
|
-
self.beaglebone = BeagleboneDeviceInterface()
|
|
73
|
-
self.beaglebone.connect()
|
|
74
|
-
except BeagleboneError as exc:
|
|
75
|
-
logger.warning(f"BeagleboneError caught: Couldn't establish connection ({exc})")
|
|
76
|
-
raise BeagleboneError(
|
|
77
|
-
"Couldn't establish a connection with BeagleBone controller."
|
|
78
|
-
) from exc
|
|
79
|
-
|
|
80
|
-
def is_simulator(self):
|
|
81
|
-
return False
|
|
82
|
-
|
|
83
|
-
def is_connected(self):
|
|
84
|
-
return self.beaglebone.is_connected()
|
|
85
|
-
|
|
86
|
-
def connect(self):
|
|
87
|
-
if not self.beaglebone.is_connected():
|
|
88
|
-
self.beaglebone.connect()
|
|
89
|
-
|
|
90
|
-
def disconnect(self):
|
|
91
|
-
self.beaglebone.disconnect()
|
|
92
|
-
|
|
93
|
-
def reconnect(self):
|
|
94
|
-
self.beaglebone.reconnect()
|
|
95
|
-
|
|
96
|
-
def set_alert(self, pin):
|
|
97
|
-
self.beaglebone.set_alert(pin)
|
|
98
|
-
|
|
99
|
-
def unset_alert(self, pin):
|
|
100
|
-
self.beaglebone.unset_alert(pin)
|
|
101
|
-
|
|
102
|
-
def get_alert(self, pin):
|
|
103
|
-
return self.beaglebone.get_alert(pin)
|
|
104
|
-
|
|
105
|
-
def toggle_watchdog(self):
|
|
106
|
-
self.beaglebone.toggle_watchdog()
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
class BeagleboneProxy(Proxy, BeagleboneInterface):
|
|
111
|
-
def __init__(self, protocol=CTRL_SETTINGS.PROTOCOL,
|
|
112
|
-
hostname=CTRL_SETTINGS.HOSTNAME,
|
|
113
|
-
port=CTRL_SETTINGS.COMMANDING_PORT):
|
|
114
|
-
super().__init__(connect_address(protocol, hostname, port))
|
|
115
|
-
|
|
116
|
-
if __name__ == "__main__":
|
|
117
|
-
bb = BeagleboneProxy()
|
|
118
|
-
bb.set_alert(0)
|
|
119
|
-
bb.set_alert(1)
|
|
120
|
-
bb.set_alert(2)
|
|
121
|
-
|
|
122
|
-
time.sleep(2)
|
|
123
|
-
|
|
124
|
-
bb.get_alert(0)
|
|
125
|
-
bb.get_alert(1)
|
|
126
|
-
bb.get_alert(2)
|
|
127
|
-
|
|
128
|
-
time.sleep(2)
|
|
129
|
-
|
|
130
|
-
bb.unset_alert(0)
|
|
131
|
-
bb.unset_alert(1)
|
|
132
|
-
bb.unset_alert(2)
|
|
133
|
-
|
|
134
|
-
time.sleep(2)
|
|
135
|
-
|
|
136
|
-
bb.get_alert(0)
|
|
137
|
-
bb.get_alert(1)
|
|
138
|
-
bb.get_alert(2)
|
egse/alert/gsm/beaglebone.yaml
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
BaseClass:
|
|
2
|
-
egse.alert.gsm.BeagleboneInterface
|
|
3
|
-
|
|
4
|
-
ProxyClass:
|
|
5
|
-
egse.alert.gsm.beaglebone.BeagleboneProxy
|
|
6
|
-
|
|
7
|
-
ControlServerClass:
|
|
8
|
-
egse.alert.gsm.beaglebone.BeagleboneControlServer
|
|
9
|
-
|
|
10
|
-
ControlServer:
|
|
11
|
-
egse.alert.gsm.beaglebone_cs
|
|
12
|
-
|
|
13
|
-
Commands:
|
|
14
|
-
|
|
15
|
-
# Definition of the DeviceInterface.
|
|
16
|
-
|
|
17
|
-
disconnect:
|
|
18
|
-
description: Disconnect from the PWM Controller.
|
|
19
|
-
|
|
20
|
-
connect:
|
|
21
|
-
description: Connect to the PWM Controller.
|
|
22
|
-
|
|
23
|
-
reconnect:
|
|
24
|
-
description: Reconnect to the PWM Controller.
|
|
25
|
-
|
|
26
|
-
is_simulator:
|
|
27
|
-
description: Ask if the control server is a simulator.
|
|
28
|
-
returns: bool | True if far end is a simulator.
|
|
29
|
-
|
|
30
|
-
is_connected:
|
|
31
|
-
description: Check if PWM Controller is connected.
|
|
32
|
-
|
|
33
|
-
# Definition of the device commands.
|
|
34
|
-
|
|
35
|
-
set_alert:
|
|
36
|
-
description: Sets one of the available alerts
|
|
37
|
-
args:
|
|
38
|
-
pin: uint | 0 - 2
|
|
39
|
-
cmd: "{pin}"
|
|
40
|
-
|
|
41
|
-
get_alert:
|
|
42
|
-
description: Gets the current state of the alerts
|
|
43
|
-
args:
|
|
44
|
-
pin: uint | 0 - 2
|
|
45
|
-
returns: bool | state of the alert
|
|
46
|
-
|
|
47
|
-
unset_alert:
|
|
48
|
-
description: Unsets one of the available alerts
|
|
49
|
-
args:
|
|
50
|
-
pin: uint | 0 - 2
|
|
51
|
-
cmd: "{pin}"
|
egse/alert/gsm/beaglebone_cs.py
DELETED
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
# Control server for the BeagleBone Black heater 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.alert.gsm.beaglebone_protocol import BeagleboneProtocol
|
|
13
|
-
from egse.alert.gsm.beaglebone import BeagleboneProxy
|
|
14
|
-
|
|
15
|
-
logging.basicConfig(level=logging.DEBUG, format=Settings.LOG_FORMAT_FULL)
|
|
16
|
-
|
|
17
|
-
logger = logging.getLogger('BeagleBone GSM')
|
|
18
|
-
|
|
19
|
-
CTRL_SETTINGS = Settings.load("BeagleBone GSM 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(10)
|
|
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 'BB_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
|
-
|
|
62
|
-
|
|
63
|
-
@click.group()
|
|
64
|
-
def cli():
|
|
65
|
-
pass
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
@cli.command()
|
|
69
|
-
@click.option("--simulator", "--sim", is_flag=True, help="Start the BeagleBone Simulator as the backend.")
|
|
70
|
-
def start(simulator):
|
|
71
|
-
"""Start the BeagleBone Control Server."""
|
|
72
|
-
|
|
73
|
-
if simulator:
|
|
74
|
-
Settings.set_simulation_mode(True)
|
|
75
|
-
try:
|
|
76
|
-
control_server = BeagleBoneControlServer()
|
|
77
|
-
control_server.serve()
|
|
78
|
-
|
|
79
|
-
except KeyboardInterrupt:
|
|
80
|
-
logger.info("Shutdown requested...exiting")
|
|
81
|
-
|
|
82
|
-
except SystemExit as exit_code:
|
|
83
|
-
logger.info("System Exit with code {}.".format(exit_code))
|
|
84
|
-
sys.exit(exit_code)
|
|
85
|
-
|
|
86
|
-
except Exception:
|
|
87
|
-
|
|
88
|
-
logger.exception("Cannot start the BeagleBone Control Server")
|
|
89
|
-
# The above line does exactly the same as the traceback, but on the logger
|
|
90
|
-
# import traceback
|
|
91
|
-
# traceback.print_exc(file=sys.stdout)
|
|
92
|
-
|
|
93
|
-
return 0
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
@cli.command()
|
|
97
|
-
def stop():
|
|
98
|
-
"""Send a 'quit_server' command to the Control Server."""
|
|
99
|
-
|
|
100
|
-
with BeagleboneProxy() as proxy:
|
|
101
|
-
|
|
102
|
-
sp = proxy.get_service_proxy()
|
|
103
|
-
sp.quit_server()
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
if __name__ == "__main__":
|
|
107
|
-
|
|
108
|
-
sys.exit(cli())
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
import logging
|
|
2
|
-
import os
|
|
3
|
-
from threading import Timer
|
|
4
|
-
|
|
5
|
-
from egse.command import ClientServerCommand
|
|
6
|
-
from egse.settings import Settings
|
|
7
|
-
from egse.setup import load_setup
|
|
8
|
-
|
|
9
|
-
WATCHDOG = 7
|
|
10
|
-
|
|
11
|
-
GSM = [8, 80, 78]
|
|
12
|
-
|
|
13
|
-
logger = logging.getLogger(__name__)
|
|
14
|
-
ctrl_settings = Settings.load('BeagleBone GSM Control Server')
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
class BeagleboneCommand(ClientServerCommand):
|
|
18
|
-
def get_cmd_string(self, *args, **kwargs):
|
|
19
|
-
out = super().get_cmd_string(*args, **kwargs)
|
|
20
|
-
return out + '\n'
|
|
21
|
-
|
|
22
|
-
class BeagleboneDeviceInterface:
|
|
23
|
-
|
|
24
|
-
def __init__(self):
|
|
25
|
-
|
|
26
|
-
setup = load_setup()
|
|
27
|
-
|
|
28
|
-
# Perform SRON gssw imports here to avoid issues at other THs
|
|
29
|
-
from gssw.config.configclient import ConfigClient
|
|
30
|
-
from gssw.common import addLoggingLevel
|
|
31
|
-
from gssw.hal.hal import Hal
|
|
32
|
-
from gssw.hal.halclient import HalClient
|
|
33
|
-
from gssw.lib.device import Device
|
|
34
|
-
|
|
35
|
-
self._is_connected = False
|
|
36
|
-
|
|
37
|
-
# InitGssw does something to zmq that breaks cgse logging.
|
|
38
|
-
# So instead I copied the essentials here.
|
|
39
|
-
configClient = ConfigClient(os.getenv('GSSW_CONFIGURATION_FILE'))
|
|
40
|
-
config = configClient.config
|
|
41
|
-
addLoggingLevel('data', 15)
|
|
42
|
-
|
|
43
|
-
self._availability = setup.gse.beaglebone_heater.availability
|
|
44
|
-
|
|
45
|
-
hal = Hal()
|
|
46
|
-
hal_client = HalClient(hal, config)
|
|
47
|
-
hal_client.requestHal()
|
|
48
|
-
|
|
49
|
-
self.dev_gpio_name = "gpio_gsm"
|
|
50
|
-
self._dev_gpio = Device(self.dev_gpio_name, config, hal)
|
|
51
|
-
|
|
52
|
-
self.watchdog_state = False
|
|
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_alert(self, pin):
|
|
69
|
-
if pin >= 3:
|
|
70
|
-
logger.info("Alert out of range (0 - 2)")
|
|
71
|
-
else:
|
|
72
|
-
GSM = [8, 80, 78]
|
|
73
|
-
logger.info(f"Settings Alert {GSM[pin]}")
|
|
74
|
-
self._dev_gpio.setMultiple([("GPIO_PIN", GSM[pin]), ("GPIO_VALUE", True)])
|
|
75
|
-
unset = Timer(10.0, self.unset_alert, args=(pin,))
|
|
76
|
-
unset.start()
|
|
77
|
-
|
|
78
|
-
def unset_alert(self, pin):
|
|
79
|
-
if pin >= 3:
|
|
80
|
-
logger.info("Alert out of range (0 - 3)")
|
|
81
|
-
else:
|
|
82
|
-
logger.info(f"Unsettings Alert {GSM[pin]}")
|
|
83
|
-
self._dev_gpio.setMultiple([("GPIO_PIN", GSM[pin]), ("GPIO_VALUE", False)])
|
|
84
|
-
|
|
85
|
-
def get_alert(self, pin):
|
|
86
|
-
if pin >= 3:
|
|
87
|
-
logger.info("Alert out of range (0 - 3)")
|
|
88
|
-
else:
|
|
89
|
-
logger.info(f"{GSM[pin]} ")
|
|
90
|
-
alert = self._dev_gpio.getSetMultiple([('GPIO_PIN', GSM[pin]), ('GPIO_VALUE', None)])
|
|
91
|
-
return alert[0]
|
|
92
|
-
|
|
93
|
-
def toggle_watchdog(self):
|
|
94
|
-
self._dev_gpio.setMultiple([('GPIO_PIN', WATCHDOG), ('GPIO_VALUE', False if self.watchdog_state else True)])
|
|
95
|
-
self.watchdog_state = not self.watchdog_state
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
def main():
|
|
100
|
-
bb = BeagleboneDeviceInterface()
|
|
101
|
-
|
|
102
|
-
# bb.set_alert(0)
|
|
103
|
-
# bb.set_alert(1)
|
|
104
|
-
# bb.set_alert(2)
|
|
105
|
-
|
|
106
|
-
# time.sleep(1)
|
|
107
|
-
|
|
108
|
-
print(bb.get_alert(0))
|
|
109
|
-
print(bb.get_alert(1))
|
|
110
|
-
print(bb.get_alert(2))
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
# time.sleep(10)
|
|
114
|
-
|
|
115
|
-
# print(bb.get_alert(0))
|
|
116
|
-
# print(bb.get_alert(1))
|
|
117
|
-
# print(bb.get_alert(2))
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
if __name__ == '__main__':
|
|
122
|
-
main()
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import logging
|
|
2
|
-
|
|
3
|
-
from egse.alert.gsm.beaglebone import BeagleboneController
|
|
4
|
-
from egse.alert.gsm.beaglebone import BeagleboneInterface
|
|
5
|
-
from egse.alert.gsm.beaglebone import BeagleboneSimulator
|
|
6
|
-
from egse.alert.gsm.beaglebone_devif import BeagleboneCommand
|
|
7
|
-
from egse.control import ControlServer
|
|
8
|
-
from egse.protocol import CommandProtocol
|
|
9
|
-
from egse.settings import Settings
|
|
10
|
-
from egse.system import format_datetime
|
|
11
|
-
from egse.zmq_ser import bind_address
|
|
12
|
-
|
|
13
|
-
COMMAND_SETTINGS = Settings.load(filename='beaglebone.yaml')
|
|
14
|
-
|
|
15
|
-
logger = logging.getLogger(__name__)
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
class BeagleboneProtocol(CommandProtocol):
|
|
19
|
-
def __init__(self, control_server:ControlServer):
|
|
20
|
-
super().__init__()
|
|
21
|
-
self.control_server = control_server
|
|
22
|
-
|
|
23
|
-
if Settings.simulation_mode():
|
|
24
|
-
self.beaglebone = BeagleboneSimulator()
|
|
25
|
-
else:
|
|
26
|
-
self.beaglebone = BeagleboneController()
|
|
27
|
-
|
|
28
|
-
self.load_commands(COMMAND_SETTINGS.Commands, BeagleboneCommand, BeagleboneInterface)
|
|
29
|
-
|
|
30
|
-
self.build_device_method_lookup_table(self.beaglebone)
|
|
31
|
-
|
|
32
|
-
def get_bind_address(self):
|
|
33
|
-
return bind_address(self.control_server.get_communication_protocol(),
|
|
34
|
-
self.control_server.get_commanding_port())
|
|
35
|
-
|
|
36
|
-
def get_status(self):
|
|
37
|
-
return super().get_status()
|
|
38
|
-
|
|
39
|
-
def get_housekeeping(self) -> dict:
|
|
40
|
-
|
|
41
|
-
hk_dict = {'timestamp': format_datetime()}
|
|
42
|
-
|
|
43
|
-
self.beaglebone.toggle_watchdog()
|
|
44
|
-
# logger.info("Send a pulse to the watchdog")
|
|
45
|
-
|
|
46
|
-
return hk_dict
|