From 8f9c43ad99466a0aa3a455f1dcff7189912c9f7b Mon Sep 17 00:00:00 2001 From: Holler Mirko Date: Tue, 2 Jul 2024 14:16:40 +0200 Subject: [PATCH] omny galil --- csaxs_bec/deployment/device_server/startup.py | 4 +- csaxs_bec/device_configs/omny_config.yaml | 6 +- csaxs_bec/devices/omny/galil/ogalil_ophyd.py | 69 ++++++++++++++++--- 3 files changed, 65 insertions(+), 14 deletions(-) diff --git a/csaxs_bec/deployment/device_server/startup.py b/csaxs_bec/deployment/device_server/startup.py index 1b47efc..99cadeb 100644 --- a/csaxs_bec/deployment/device_server/startup.py +++ b/csaxs_bec/deployment/device_server/startup.py @@ -2,8 +2,8 @@ import os def setup_epics_ca(): - os.environ["EPICS_CA_AUTO_ADDR_LIST"] = "NO" - os.environ["EPICS_CA_ADDR_LIST"] = "129.129.122.255 sls-x12sa-cagw.psi.ch:5836" + #os.environ["EPICS_CA_AUTO_ADDR_LIST"] = "NO" + #os.environ["EPICS_CA_ADDR_LIST"] = "129.129.122.255 sls-x12sa-cagw.psi.ch:5836" os.environ["PYTHONIOENCODING"] = "latin1" diff --git a/csaxs_bec/device_configs/omny_config.yaml b/csaxs_bec/device_configs/omny_config.yaml index f8db749..86d8897 100644 --- a/csaxs_bec/device_configs/omny_config.yaml +++ b/csaxs_bec/device_configs/omny_config.yaml @@ -194,7 +194,7 @@ oosax: - 0 - 0 port: 8082 - sign: 1 + sign: -1 deviceTags: - omny enabled: true @@ -213,7 +213,7 @@ oosaz: - 0 - 0 port: 8082 - sign: 1 + sign: -1 deviceTags: - omny enabled: true @@ -346,7 +346,7 @@ otrackz: - 0 - 0 port: 8083 - sign: 1 + sign: -1 deviceTags: - omny enabled: true diff --git a/csaxs_bec/devices/omny/galil/ogalil_ophyd.py b/csaxs_bec/devices/omny/galil/ogalil_ophyd.py index 0e819dc..5149c83 100644 --- a/csaxs_bec/devices/omny/galil/ogalil_ophyd.py +++ b/csaxs_bec/devices/omny/galil/ogalil_ophyd.py @@ -119,6 +119,61 @@ class OMNYGalilController(GalilController): else: return(0) + def _ogalil_tempdisabledebug(self): + #sock_put(_ogalil_debugging_host_and_port_str[ogalil_no][],"WH\r\n") < 1) { + #ret_str = sock_get(_ogalil_debugging_host_and_port_str[ogalil_no][],_ogalil_prompt_str) + # printf("%s _ogalil_redirect_debug_output(%d): expected \"IHx\" received \"%s\"\n",\ + #cmd_str = sprintf("CF %s\r\n",substr(ret_str,3,1)) + #if (sock_put(_ogalil_debugging_host_and_port_str[ogalil_no][],cmd_str) < 1) { + #cmd_str = sprintf("CW 2\r\n") + #if (sock_put(_ogalil_debugging_host_and_port_str[ogalil_no][],cmd_str) < 1) { + print("not yet implemented") + return 0 + + def _ogalil_folerr_reset_and_ignore(self, axis_Id_numeric: int) -> None: + self.socket_put_confirmed(f"folaxerr[{axis_Id_numeric}]=0") + self.socket_put_confirmed(f"folerr=0") + self.socket_put_confirmed(f"IgNoFol=1") + +# # ---------------------------------------------------------------------- +# def _ogalil_set_axis_to_pos_wo_reference_search(mne, pos_mm) '{ + +# printf("be careful. this routine does not yet take the user motor direction into account\n") + +# global _ogalil_mne_controller_no +# global _ogalil_mne_axis_no +# _ogalil_get_controller_and_axis_number(mne) + + +# local pos_encoder +# _ogalil_put_confirmed(_ogalil_mne_controller_no, "IgNoFol=1") + + +# # pos_mm = pos_encoder / _ogalil_encoder_steps_per_mm +# pos_encoder = pos_mm * _ogalil_encoder_steps_per_mm +# # rotation stage +# if(_ogalil_mne_controller_no == 2 && _ogalil_mne_axis_no == 2) +# { +# pos_encoder = pos_mm * _ogalil_encoder_steps_per_degree +# } + + +# _ogalil_put_confirmed(_ogalil_mne_controller_no, sprintf("DE%c=%d",_ogalil_mne_axis_no+65, pos_encoder)) + +# _ogalil_put_confirmed(_ogalil_mne_controller_no, sprintf("DP%c=_TP%c*ratio[%d]", _ogalil_mne_axis_no+65, _ogalil_mne_axis_no+65, _ogalil_mne_axis_no)) + +# _ogalil_put_confirmed(_ogalil_mne_controller_no, sprintf("folaxerr[%d]=0",_ogalil_mne_axis_no)) +# _ogalil_put_confirmed(_ogalil_mne_controller_no, sprintf("axisref[%d]=1",_ogalil_mne_axis_no)) +# _ogalil_put_confirmed(_ogalil_mne_controller_no, "folerr=0") + +# _ogalil_put_confirmed(_ogalil_mne_controller_no, "IgNoFol=0") + +# read_motors(7) +# }' + + def _ogalil_folerr_not_ignore(self): + self.socket_put_confirmed("IgNoFol=0") + def _ogalil_switchsocket_switch_all_on(self): if not self._ogalil_switchsocket_are_all_on(): for j in range (1,5): @@ -139,19 +194,15 @@ class OMNYGalilController(GalilController): return(returnvalue) def show_status_other(self): - if self.get_digital_input(5): - print("Digital input 5 test.") - else: - print("Digital input 5 test.") swver = float(self.socket_put_and_receive("MGswver")) - print(f"Ogalil OMNY firmware version {swver:2.0f}.") + allaxref = bool(self.socket_put_and_receive("MGallaxref")) + tempab = bool(self.socket_put_and_receive("MGtempab")) + timeab = bool(self.socket_put_and_receive("MGtimeab")) + IgNoFol = bool(self.socket_put_and_receive("MGIgNoFol")) + print(f"OMNY galil firmware {swver:2.0f}, TempAbort: {tempab}, Allaxref: {allaxref}, TimeAbort: {timeab}, Ignore Folerr: {IgNoFol}\n") if self.sock.port == 8083: self._ogalil_switchsocket_status() - - - - class OMNYGalilMotor(Device, PositionerBase): USER_ACCESS = ["controller"]