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/hexapod/symetrie/zonda.yaml
DELETED
|
@@ -1,337 +0,0 @@
|
|
|
1
|
-
BaseClass:
|
|
2
|
-
egse.hexapod.symetrie.zonda.AlphaPlusControllerInterface
|
|
3
|
-
|
|
4
|
-
ProxyClass:
|
|
5
|
-
egse.hexapod.symetrie.zonda.ZondaProxy
|
|
6
|
-
|
|
7
|
-
ControlServerClass:
|
|
8
|
-
egse.hexapod.symetrie.zonda_cs.ZondaControlServer
|
|
9
|
-
|
|
10
|
-
ControlServer:
|
|
11
|
-
egse.hexapod.symetrie.zonda_cs
|
|
12
|
-
|
|
13
|
-
UserInterface:
|
|
14
|
-
egse.hexapod.symetrie.zonda_ui
|
|
15
|
-
|
|
16
|
-
Commands:
|
|
17
|
-
|
|
18
|
-
# Each of these groups is parsed and used on both the server and the client side.
|
|
19
|
-
#
|
|
20
|
-
# The group name (e.g. is_simulator) will be monkey patched in the Proxy class for the device
|
|
21
|
-
# or service.
|
|
22
|
-
#
|
|
23
|
-
# The other field are:
|
|
24
|
-
# description: Used by the doc_string method to generate a help string
|
|
25
|
-
# cmd: Command string that will eventually be send to the hardware controller for
|
|
26
|
-
# the device. This cmd string is also used at the client side to parse and
|
|
27
|
-
# validate the arguments.
|
|
28
|
-
# device_method: The name of the method to be called on the device class.
|
|
29
|
-
# These should all be defined by the interface class for the device, i.e.
|
|
30
|
-
# PunaInterface in this case.
|
|
31
|
-
# When the device_method is the same as the group name, it can be omitted.
|
|
32
|
-
# response: The name of the method to be called from the device protocol.
|
|
33
|
-
# This method should exist in the subclass of the CommandProtocol base class,
|
|
34
|
-
# i.e. in this case it will be the PunaProtocol class.
|
|
35
|
-
# The default (when no response is given) is 'handle_device_method'.
|
|
36
|
-
|
|
37
|
-
# Definition of the the DeviceInterface
|
|
38
|
-
|
|
39
|
-
is_simulator:
|
|
40
|
-
description: Ask if the connected class is a simulator instead of the real device Controller class.
|
|
41
|
-
returns: bool | True if the far end is a simulator instead of the real hardware
|
|
42
|
-
|
|
43
|
-
is_connected:
|
|
44
|
-
description: Check if the Hexapod hardware controller is connected.
|
|
45
|
-
|
|
46
|
-
connect:
|
|
47
|
-
description: Connect the Hexapod hardware controller
|
|
48
|
-
|
|
49
|
-
reconnect:
|
|
50
|
-
description: Reconnect the Hexapod hardware controller.
|
|
51
|
-
|
|
52
|
-
This command will force a disconnect and then try to re-connect to the controller.
|
|
53
|
-
|
|
54
|
-
disconnect:
|
|
55
|
-
description: Disconnect from the hexapod controller.
|
|
56
|
-
|
|
57
|
-
This command will be send to the Hexapod Control Server which will then
|
|
58
|
-
disconnect from the hardware controller.
|
|
59
|
-
|
|
60
|
-
This command does not affect the ZeroMQ connection of the Proxy to the
|
|
61
|
-
control server. Use the service command `disconnect_cs()` to disconnect
|
|
62
|
-
from the control server.
|
|
63
|
-
|
|
64
|
-
info:
|
|
65
|
-
description: Retrieve basic information about the Hexapod and the Controller.
|
|
66
|
-
|
|
67
|
-
get_general_state:
|
|
68
|
-
description: Retreive general state information of the hexapod.
|
|
69
|
-
|
|
70
|
-
reset:
|
|
71
|
-
description: Reboot the controller. This command reboot the controller and the Ethernet communication is
|
|
72
|
-
closed. The controller takes about 2 minutes to initialize. The configuration changes (commands
|
|
73
|
-
of “CFG” family) will be lost if no CFG_SAVE command were sent since last configuration
|
|
74
|
-
modifications The system reboot command is interpreted directly by the operating system of the
|
|
75
|
-
controller. STOP and CONTROLOFF the hexapod before sending the command.
|
|
76
|
-
|
|
77
|
-
homing:
|
|
78
|
-
description: Start the homing cycle for the Hexapod PUNA. Homing is required before performing a control
|
|
79
|
-
movement. Without absolute encoders, the homing is performed with a hexapod movement until
|
|
80
|
-
detecting the reference sensor on each of the actuators. The Hexapod will go to a position were
|
|
81
|
-
the sensors are reached that signal a known calibrated position and then returns to the zero
|
|
82
|
-
position.
|
|
83
|
-
Whenever a homing is performed, the method will return before the actual movement is finished.
|
|
84
|
-
The homing cycle takes about two minutes to complete, but the homing() method returns almost
|
|
85
|
-
immediately. Therefore, to check if the homing is finished, use the is_homing_done() method.
|
|
86
|
-
|
|
87
|
-
stop:
|
|
88
|
-
description: Stop the current motion.
|
|
89
|
-
|
|
90
|
-
clear_error:
|
|
91
|
-
description: Clear all errors in the controller software.
|
|
92
|
-
|
|
93
|
-
activate_control_loop:
|
|
94
|
-
description: Activates the control loop on motors. It activates the power on the motors and release the
|
|
95
|
-
brakes if present. The hexapod status Control on switches to true when the command is successful.
|
|
96
|
-
|
|
97
|
-
deactivate_control_loop:
|
|
98
|
-
description: Disables the control loop on the servo motors.
|
|
99
|
-
|
|
100
|
-
jog:
|
|
101
|
-
description: Starts a JOG-type movement on the actuator defined by the arguments. A JOG type movement is a
|
|
102
|
-
movement done without using the kinematic of the hexapod. It's a relative movement along a
|
|
103
|
-
defined actuator. The actuator number is defined by the "axis" variable. The increment "inc"
|
|
104
|
-
can be positive to extend the actuator or negative to retract the actuator.
|
|
105
|
-
|
|
106
|
-
Arguments
|
|
107
|
-
|
|
108
|
-
axis(int) number of the actuator (1 to 6)
|
|
109
|
-
inc(float) increment to achieve in mm
|
|
110
|
-
|
|
111
|
-
* Note this is a maintenance feature.
|
|
112
|
-
* Note for this command the home do not necessary has to be completed. It is important to
|
|
113
|
-
realize that moving the actuator XX mm doesn't correspond to move XX mm in the hexapod workspace
|
|
114
|
-
|
|
115
|
-
set_speed:
|
|
116
|
-
description: Set the speed of the hexapod movements according to vt and vr arguments.
|
|
117
|
-
|
|
118
|
-
vt is the translation speed of the hexapod in mm per second [mm/s]
|
|
119
|
-
vr is the angular speed of the hexapod in deg per second [deg/s]
|
|
120
|
-
|
|
121
|
-
The parameters vt and vr are automatically limited by the controller between the factory
|
|
122
|
-
configured minimum and maximum speed
|
|
123
|
-
cmd: "{vt} {vr}"
|
|
124
|
-
|
|
125
|
-
sequence:
|
|
126
|
-
description: Execute a sequence of several points.
|
|
127
|
-
First, it checks if limits are enabled (get_limit_state) and if not it enables them (user_limit_enable?? or machine_limit_enable??).
|
|
128
|
-
Secondly, it checks if all points of the sequence are reachable (not outside the limits/workspace).
|
|
129
|
-
Eventually, it moves hexapod following the sequence step by step (and reads the step n+1 after that the step n is complete).
|
|
130
|
-
After a step it waits for "time_sleep" seconds before reading the next step.
|
|
131
|
-
cmd: "{file_path} {time_sleep}"
|
|
132
|
-
|
|
133
|
-
get_speed:
|
|
134
|
-
description: Retrieve the configuration of the movement speed.
|
|
135
|
-
|
|
136
|
-
vt is the translation speed of the hexapod in mm per second [mm/s]
|
|
137
|
-
vr is the angular speed of the hexapod in deg per second [deg/s]
|
|
138
|
-
vt_min, vt_max are the limits for the translation speed [mm/s]
|
|
139
|
-
vr_min, vr_max are the limits for the angular speed [mm/s]
|
|
140
|
-
|
|
141
|
-
get_temperature:
|
|
142
|
-
description: Retrieves the value of the 6 PT100 temperature sensors in C.
|
|
143
|
-
The security temperature limit has been factory set to 60 C.
|
|
144
|
-
The controller will be in error state and thus the hexapod movement will stop if the
|
|
145
|
-
temperature limit is exceeded. In that case, clear the error before using the Hexapod again.
|
|
146
|
-
returns: list | list of floats with the temperature values
|
|
147
|
-
|
|
148
|
-
perform_maintenance:
|
|
149
|
-
description: Starts a maintenance cycle. The mode selects the type of movement.
|
|
150
|
-
|
|
151
|
-
Arguments
|
|
152
|
-
mode = 1 Jog to zero, no other parameter is required for this mode. The Machine zero position
|
|
153
|
-
is reached by moving each actuatorin JOG mode without inter-axis interpolation (kinematic
|
|
154
|
-
disabled). Backlash compensation is not performed with this mode. This is a maintenance
|
|
155
|
-
command that should be used only in case of kinematic error or failure of one/several
|
|
156
|
-
actuators.
|
|
157
|
-
mode = 2 Move along a single operational axis, the parameter axis is needed to define the
|
|
158
|
-
operational axis. The movements are executed in the machine coordinate system. The sequence
|
|
159
|
-
is (1) movement to machine zero (2) movement to axis operational negative limit (3) movement
|
|
160
|
-
to axis operational positive limit (4) movement to machine zero). The operational limits are
|
|
161
|
-
factory defined.
|
|
162
|
-
mode = 3 Move allong all the operational axis one after the other, No other parameter is
|
|
163
|
-
required for this mode. Movements are executed in the machine coordinate system. The sequence
|
|
164
|
-
execute the sequence alon a single operational axis, one axis after another. The axis order is
|
|
165
|
-
Tx, Ty, Tz, Rx, Ry, Rz.
|
|
166
|
-
|
|
167
|
-
axis(int) defines the movement around the selected axis
|
|
168
|
-
cmd: "{axis}"
|
|
169
|
-
|
|
170
|
-
goto_specific_position:
|
|
171
|
-
description: Ask to go to a specific position.
|
|
172
|
-
* pos=1 User zero
|
|
173
|
-
* pos=2 Retracted position
|
|
174
|
-
* pos=3 Machine zero
|
|
175
|
-
cmd: "{pos}"
|
|
176
|
-
|
|
177
|
-
goto_retracted_position:
|
|
178
|
-
description: Ask the hexapod to go to the retracted position.
|
|
179
|
-
|
|
180
|
-
goto_zero_position:
|
|
181
|
-
description: Ask the hexapod to go to the user zero position.
|
|
182
|
-
|
|
183
|
-
is_homing_done:
|
|
184
|
-
description: Check if homing is done.
|
|
185
|
-
|
|
186
|
-
is_in_position:
|
|
187
|
-
description: Check if the actuators are in position.
|
|
188
|
-
|
|
189
|
-
move_absolute:
|
|
190
|
-
description: Starts the movement defined by the arguments.
|
|
191
|
-
|
|
192
|
-
tx(float) position on the X-axis [mm]
|
|
193
|
-
ty(float) position on the Y-axis [mm]
|
|
194
|
-
tz(float) position on the Z-axis [mm]
|
|
195
|
-
rx(float) rotation around the X-axis [deg]
|
|
196
|
-
ry(float) rotation around the Y-axis [deg]
|
|
197
|
-
rz(float) rotation around the Z-axis [deg]
|
|
198
|
-
|
|
199
|
-
Move/define the Object Coordinate System position and orientation expressed in the invariant
|
|
200
|
-
user coordinate system.
|
|
201
|
-
|
|
202
|
-
The rotation centre coincides with the Object Coordinates System origin and
|
|
203
|
-
the movements are controlled with translation components at first (Tx, Ty, tZ)
|
|
204
|
-
and then the rotation components (Rx, Ry, Rz).
|
|
205
|
-
|
|
206
|
-
Will raise an error code if the following conditions are not met
|
|
207
|
-
* there is no motion task tunning (motion task running)
|
|
208
|
-
* home is completed (home complete),
|
|
209
|
-
* the control loop on servo motors is activated (control on),
|
|
210
|
-
* the hexapod is not stopping
|
|
211
|
-
cmd: "{tx} {ty} {tz} {rx} {ry} {rz}"
|
|
212
|
-
|
|
213
|
-
move_relative_object:
|
|
214
|
-
description: Starts the movement defined by the arguments.
|
|
215
|
-
|
|
216
|
-
tx(float) position on the X-axis [mm]
|
|
217
|
-
ty(float) position on the Y-axis [mm]
|
|
218
|
-
tz(float) position on the Z-axis [mm]
|
|
219
|
-
rx(float) rotation around the X-axis [deg]
|
|
220
|
-
ry(float) rotation around the Y-axis [deg]
|
|
221
|
-
rz(float) rotation around the Z-axis [deg]
|
|
222
|
-
|
|
223
|
-
Move the object relative to its current object position and orientation. The relative movement
|
|
224
|
-
is expressed in the object coordinate system.
|
|
225
|
-
|
|
226
|
-
Will raise an error code if the following conditions are not met
|
|
227
|
-
* there is no motion task tunning (motion task running)
|
|
228
|
-
* home is completed (home complete),
|
|
229
|
-
* the control loop on servo motors is activated (control on),
|
|
230
|
-
* the hexapod is not stopping
|
|
231
|
-
cmd: "{tx} {ty} {tz} {rx} {ry} {rz}"
|
|
232
|
-
|
|
233
|
-
move_relative_user:
|
|
234
|
-
description: Starts the movement defined by the arguments.
|
|
235
|
-
|
|
236
|
-
tx(float) position on the X-axis [mm]
|
|
237
|
-
ty(float) position on the Y-axis [mm]
|
|
238
|
-
tz(float) position on the Z-axis [mm]
|
|
239
|
-
rx(float) rotation around the X-axis [deg]
|
|
240
|
-
ry(float) rotation around the Y-axis [deg]
|
|
241
|
-
rz(float) rotation around the Z-axis [deg]
|
|
242
|
-
|
|
243
|
-
The object is moved relative to its current object position and orientation. The relative
|
|
244
|
-
movement is expressed in the (invariant) user coordinate system.
|
|
245
|
-
|
|
246
|
-
Will raise an error code if the following conditions are not met
|
|
247
|
-
* there is no motion task tunning (motion task running)
|
|
248
|
-
* home is completed (home complete),
|
|
249
|
-
* the control loop on servo motors is activated (control on),
|
|
250
|
-
* the hexapod is not stopping
|
|
251
|
-
cmd: "{tx} {ty} {tz} {rx} {ry} {rz}"
|
|
252
|
-
|
|
253
|
-
check_absolute_movement:
|
|
254
|
-
description: Verifies if the movement defined by the arguments is feasible in absolute coordinate system.
|
|
255
|
-
After command execution, when the command execution has been successful, the result of the vali-
|
|
256
|
-
dation returns
|
|
257
|
-
0 when target position is valid
|
|
258
|
-
Positive value when the validation shows limitations
|
|
259
|
-
Negative value when the validation fails
|
|
260
|
-
cmd: "{tx} {ty} {tz} {rx} {ry} {rz}"
|
|
261
|
-
|
|
262
|
-
check_relative_object_movement:
|
|
263
|
-
description: Verifies if the movement defined by the arguments is feasible in user coordinate system.
|
|
264
|
-
After command execution, when the command execution has been successful, the result of the vali-
|
|
265
|
-
dation returns
|
|
266
|
-
0 when target position is valid
|
|
267
|
-
Positive value when the validation shows limitations
|
|
268
|
-
Negative value when the validation fails
|
|
269
|
-
cmd: "{tx} {ty} {tz} {rx} {ry} {rz}"
|
|
270
|
-
|
|
271
|
-
check_relative_user_movement:
|
|
272
|
-
description: Verifies if the movement defined by the arguments is feasible in user coordinate system.
|
|
273
|
-
After command execution, when the command execution has been successful, the result of the vali-
|
|
274
|
-
dation returns
|
|
275
|
-
0 when target position is valid
|
|
276
|
-
Positive value when the validation shows limitations
|
|
277
|
-
Negative value when the validation fails
|
|
278
|
-
cmd: "{tx} {ty} {tz} {rx} {ry} {rz}"
|
|
279
|
-
|
|
280
|
-
get_coordinates_systems:
|
|
281
|
-
description: Retrieve the definition of the User Coordinate System and the Object Coordinate System.
|
|
282
|
-
Returns tx_u, ty_u, tz_u, rx_u, ry_u, rz_u, tx_o, ty_o, tz_o, rx_o, ry_o, rz_o where the
|
|
283
|
-
translation parameters are in [mm] and the rotation parameters are in [deg].
|
|
284
|
-
|
|
285
|
-
get_actuator_length:
|
|
286
|
-
description: Retreive the current length of the hexapod actuators in mm.
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
get_user_positions:
|
|
290
|
-
description: Retreive the position of the Object Coordinate System in the User Coordinate System.
|
|
291
|
-
|
|
292
|
-
get_machine_positions:
|
|
293
|
-
description: Retreive the position of the Platform Coordinate System in the Machine Coordinate System.
|
|
294
|
-
|
|
295
|
-
get_actuator_state:
|
|
296
|
-
description: Retreive general state information of the actuators. For each of the six actuators, an integer
|
|
297
|
-
value is returned that should be interpreted as a bit field containing status bits for that
|
|
298
|
-
actuator.
|
|
299
|
-
|
|
300
|
-
get_limits_value:
|
|
301
|
-
description: Retreive the current limits that have been set to the hexapod. The argument "lim" determines
|
|
302
|
-
the workspace in which the limits wants to be retrieved.
|
|
303
|
-
args:
|
|
304
|
-
lim: int | 0 = Factory, 1 = machine cs limits, 2 = user cs limits
|
|
305
|
-
cmd: "{lim}"
|
|
306
|
-
returns: list | list of floats with the limits set to the selected workspace (factory, machine, user)
|
|
307
|
-
|
|
308
|
-
get_limits_state:
|
|
309
|
-
description: Return workspace limits enable state
|
|
310
|
-
returns: dict | Limit states of the different work spaces (factory, machine and user)
|
|
311
|
-
|
|
312
|
-
machine_limit_enable:
|
|
313
|
-
description: Enables (1) or disables (0) the machine workspace limits of the hexapod.
|
|
314
|
-
|
|
315
|
-
machine_limit_set:
|
|
316
|
-
description: Sets the machine workspace limits of the hexapod.
|
|
317
|
-
|
|
318
|
-
user_limit_enable:
|
|
319
|
-
description: Enables (1) or disables (0) the user workspace limits of the hexapod.
|
|
320
|
-
|
|
321
|
-
user_limit_set:
|
|
322
|
-
description: Sets the machine workspace limits of the hexapod.
|
|
323
|
-
|
|
324
|
-
set_default:
|
|
325
|
-
description: Restores the default configuration parameters. The command can be used to restore factory
|
|
326
|
-
default parameters. The restored configuration is not automatically saved. refer to the command
|
|
327
|
-
CFG_SAVE to save the parameters in order to keep them after a controller power off. The
|
|
328
|
-
calculation of the hexapod position is suspended during the command execution.
|
|
329
|
-
|
|
330
|
-
configure_coordinates_systems:
|
|
331
|
-
description: Change the definition of the User Coordinate System and the Object Coordinate System.
|
|
332
|
-
The parameters tx_u, ty_u, tz_u, rx_u, ry_u, rz_u are used to define the user coordinate system
|
|
333
|
-
relative to the Machine Coordinate System and the parameters tx_o, ty_o, tz_o, rx_o, ry_o, rz_o
|
|
334
|
-
are used to define the Object Coordinate System relative to the Platform Coordinate System.
|
|
335
|
-
|
|
336
|
-
No motion task shall be running when executing this parameter.
|
|
337
|
-
cmd: "{tx_u} {ty_u} {tz_u} {rx_u} {ry_u} {rz_u} {tx_o} {ty_o} {tz_o} {rx_o} {ry_o} {rz_o}"
|
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
The Control Server that connects to the Hexapod ZONDA Hardware Controller.
|
|
3
|
-
|
|
4
|
-
Start the control server from the terminal as follows:
|
|
5
|
-
|
|
6
|
-
$ zonda_cs start-bg
|
|
7
|
-
|
|
8
|
-
or when you don't have the device available, start the control server in simulator mode. That
|
|
9
|
-
will make the control server connect to a device software simulator:
|
|
10
|
-
|
|
11
|
-
$ zonda_cs start --sim
|
|
12
|
-
|
|
13
|
-
Please note that software simulators are intended for simple test purposes and will not simulate
|
|
14
|
-
all device behavior correctly, e.g. timing, error conditions, etc.
|
|
15
|
-
|
|
16
|
-
"""
|
|
17
|
-
import logging
|
|
18
|
-
|
|
19
|
-
if __name__ != "__main__":
|
|
20
|
-
import multiprocessing
|
|
21
|
-
multiprocessing.current_process().name = "zonda_cs"
|
|
22
|
-
|
|
23
|
-
import sys
|
|
24
|
-
|
|
25
|
-
import click
|
|
26
|
-
import invoke
|
|
27
|
-
import rich
|
|
28
|
-
import zmq
|
|
29
|
-
|
|
30
|
-
from egse.control import ControlServer
|
|
31
|
-
from egse.control import is_control_server_active
|
|
32
|
-
from egse.hexapod.symetrie.zonda import ZondaProxy
|
|
33
|
-
from egse.hexapod.symetrie.zonda_protocol import ZondaProtocol
|
|
34
|
-
from egse.settings import Settings
|
|
35
|
-
from egse.zmq_ser import connect_address
|
|
36
|
-
from prometheus_client import start_http_server
|
|
37
|
-
|
|
38
|
-
logger = logging.getLogger(__name__)
|
|
39
|
-
|
|
40
|
-
CTRL_SETTINGS = Settings.load("Hexapod ZONDA Control Server")
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
class ZondaControlServer(ControlServer):
|
|
44
|
-
"""ZondaControlServer - Command and monitor the Hexapod ZONDA hardware.
|
|
45
|
-
|
|
46
|
-
This class works as a command and monitoring server to control the Symétrie Hexapod PUNA.
|
|
47
|
-
This control server shall be used as the single point access for controlling the hardware
|
|
48
|
-
device. Monitoring access should be done preferably through this control server also,
|
|
49
|
-
but can be done with a direct connection through the PunaController if needed.
|
|
50
|
-
|
|
51
|
-
The sever binds to the following ZeroMQ sockets:
|
|
52
|
-
|
|
53
|
-
* a REQ-REP socket that can be used as a command server. Any client can connect and
|
|
54
|
-
send a command to the Hexapod.
|
|
55
|
-
|
|
56
|
-
* a PUB-SUP socket that serves as a monitoring server. It will send out Hexapod status
|
|
57
|
-
information to all the connected clients every five seconds.
|
|
58
|
-
|
|
59
|
-
"""
|
|
60
|
-
|
|
61
|
-
def __init__(self):
|
|
62
|
-
super().__init__()
|
|
63
|
-
|
|
64
|
-
self.device_protocol = ZondaProtocol(self)
|
|
65
|
-
|
|
66
|
-
self.logger.debug(f"Binding ZeroMQ socket to {self.device_protocol.get_bind_address()}")
|
|
67
|
-
|
|
68
|
-
self.device_protocol.bind(self.dev_ctrl_cmd_sock)
|
|
69
|
-
|
|
70
|
-
self.poller.register(self.dev_ctrl_cmd_sock, zmq.POLLIN)
|
|
71
|
-
|
|
72
|
-
def get_communication_protocol(self):
|
|
73
|
-
return CTRL_SETTINGS.PROTOCOL
|
|
74
|
-
|
|
75
|
-
def get_commanding_port(self):
|
|
76
|
-
return CTRL_SETTINGS.COMMANDING_PORT
|
|
77
|
-
|
|
78
|
-
def get_service_port(self):
|
|
79
|
-
return CTRL_SETTINGS.SERVICE_PORT
|
|
80
|
-
|
|
81
|
-
def get_monitoring_port(self):
|
|
82
|
-
return CTRL_SETTINGS.MONITORING_PORT
|
|
83
|
-
|
|
84
|
-
def get_storage_mnemonic(self):
|
|
85
|
-
try:
|
|
86
|
-
return CTRL_SETTINGS.STORAGE_MNEMONIC
|
|
87
|
-
except AttributeError:
|
|
88
|
-
return "ZONDA"
|
|
89
|
-
|
|
90
|
-
def before_serve(self):
|
|
91
|
-
start_http_server(CTRL_SETTINGS.METRICS_PORT)
|
|
92
|
-
|
|
93
|
-
@click.group()
|
|
94
|
-
def cli():
|
|
95
|
-
pass
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
@cli.command()
|
|
99
|
-
@click.option("--simulator", "--sim", is_flag=True, help="Start the Hexapod Zonda Simulator as the backend.")
|
|
100
|
-
def start(simulator):
|
|
101
|
-
"""Start the Hexapod Zonda Control Server."""
|
|
102
|
-
|
|
103
|
-
if simulator:
|
|
104
|
-
|
|
105
|
-
Settings.set_simulation_mode(True)
|
|
106
|
-
|
|
107
|
-
try:
|
|
108
|
-
|
|
109
|
-
controller = ZondaControlServer()
|
|
110
|
-
controller.serve()
|
|
111
|
-
|
|
112
|
-
except KeyboardInterrupt:
|
|
113
|
-
|
|
114
|
-
print("Shutdown requested...exiting")
|
|
115
|
-
|
|
116
|
-
except SystemExit as exit_code:
|
|
117
|
-
|
|
118
|
-
print("System Exit with code {}.".format(exit_code))
|
|
119
|
-
sys.exit(exit_code)
|
|
120
|
-
|
|
121
|
-
except Exception:
|
|
122
|
-
|
|
123
|
-
logger.exception("Cannot start the Hexapod Zonda Control Server")
|
|
124
|
-
|
|
125
|
-
# The above line does exactly the same as the traceback, but on the logger
|
|
126
|
-
# import traceback
|
|
127
|
-
# traceback.print_exc(file=sys.stdout)
|
|
128
|
-
|
|
129
|
-
return 0
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
@cli.command()
|
|
133
|
-
def start_bg():
|
|
134
|
-
"""Start the ZONDA Control Server in the background."""
|
|
135
|
-
invoke.run("zonda_cs start", disown=True)
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
@cli.command()
|
|
139
|
-
def stop():
|
|
140
|
-
"""Send a 'quit_server' command to the Hexapod Zonda Control Server."""
|
|
141
|
-
|
|
142
|
-
try:
|
|
143
|
-
with ZondaProxy() as proxy:
|
|
144
|
-
sp = proxy.get_service_proxy()
|
|
145
|
-
sp.quit_server()
|
|
146
|
-
except ConnectionError:
|
|
147
|
-
rich.print("[red]Couldn't connect to 'zonda_cs', process probably not running. ")
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
@cli.command()
|
|
151
|
-
def status():
|
|
152
|
-
"""Request status information from the Control Server."""
|
|
153
|
-
|
|
154
|
-
protocol = CTRL_SETTINGS.PROTOCOL
|
|
155
|
-
hostname = CTRL_SETTINGS.HOSTNAME
|
|
156
|
-
port = CTRL_SETTINGS.COMMANDING_PORT
|
|
157
|
-
|
|
158
|
-
endpoint = connect_address(protocol, hostname, port)
|
|
159
|
-
|
|
160
|
-
if is_control_server_active(endpoint):
|
|
161
|
-
status = "[green]active"
|
|
162
|
-
else:
|
|
163
|
-
status = "[red]not active"
|
|
164
|
-
|
|
165
|
-
rich.print(f"ZONDA Hexapod: {status}")
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
if __name__ == "__main__":
|
|
169
|
-
|
|
170
|
-
logging.basicConfig(level=logging.DEBUG, format=Settings.LOG_FORMAT_FULL)
|
|
171
|
-
|
|
172
|
-
sys.exit(cli())
|