From 8ad86fbbf1e1884d8c3a8b9910e3add64dd6cfe0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Romain=20BRON=C3=88S?= <romain.brones@synchrotron-soleil.fr> Date: Mon, 27 May 2024 08:30:43 +0200 Subject: [PATCH] fix: Group command call Use a DeviceData object --- FofbTool/Operation.py | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/FofbTool/Operation.py b/FofbTool/Operation.py index 8513c7c..c9bed0c 100644 --- a/FofbTool/Operation.py +++ b/FofbTool/Operation.py @@ -202,6 +202,13 @@ def ack_combpm(cellnodename): ADDR_CCCFG=0 # Register address of Libera Electron ADDR_FAICFG=0x2000 # Register address of Libera Electron +def electron_group_writefadata(group, listargs): + + args = tango.DeviceData() + args.insert(tango.DevVarLongArray, listargs) + r=group.command_inout("WriteFAData", args) + return r + def electron_init_fa(bpmlist): """ Configure FA register of Libera Electron @@ -230,11 +237,11 @@ def electron_init_fa(bpmlist): # Configure : bpmid, tframe, mgtpower, mgtlb, bfrclr - pbpm.command_inout("WriteFAData", [ADDR_CCCFG, 4, 5, bpmid, 6000, 0, 0, 6000]) + electron_group_writefadata(pbpm, [ADDR_CCCFG, 4, 5, bpmid, 6000, 0, 0, 6000]) # Ack rise - pbpm.command_inout("WriteFAData", [ADDR_FAICFG, 4, 1, 9]) + electron_group_writefadata(pbpm, [ADDR_FAICFG, 4, 1, 9]) # Ack fall - pbpm.command_inout("WriteFAData", [ADDR_FAICFG, 4, 1, 8]) + electron_group_writefadata(pbpm, [ADDR_FAICFG, 4, 1, 8]) return True @@ -266,14 +273,14 @@ def electron_start_next_trigger(bpmlist): return False # Write start, tframelim=zero, no debug data - r=bpms.command_inout("WriteFAData", [ADDR_FAICFG, 4, 1, 8]) + r=electron_group_writefadata(bpms, [ADDR_FAICFG, 4, 1, 8]) for _r in r: if _r.has_failed(): logger.error("Failed to apply command WriteFAData on bpm {}".format(_r.dev_name())) return False # Write Enable ITech FAI - r=bpms.command_inout("WriteFAData", [ADDR_FAICFG+4, 4, 1,1]) + r=electron_group_writefadata(bpms, [ADDR_FAICFG+4, 4, 1,1]) for _r in r: if _r.has_failed(): logger.error("Failed to apply command WriteFAData on bpm {}".format(_r.dev_name())) @@ -301,21 +308,21 @@ def electron_stop_com(bpmlist): bpms.add(bpmlist) # Write Disable ITech FAI - r=bpms.command_inout("WriteFAData", [ADDR_FAICFG+4, 4, 1, 0]) + r=electron_group_writefadata(bpms, [ADDR_FAICFG+4, 4, 1, 0]) for _r in r: if _r.has_failed(): logger.error("Failed to apply command WriteFAData on bpm {}".format(_r.dev_name())) return False # Soft stop - r=bpms.command_inout("WriteFAData", [ADDR_FAICFG+8, 4, 1, 0]) + r=electron_group_writefadata(bpms, [ADDR_FAICFG+8, 4, 1, 0]) for _r in r: if _r.has_failed(): logger.error("Failed to apply command WriteFAData on bpm {}".format(_r.dev_name())) return False # Reset User FAI - r=bpms.command_inout("WriteFAData", [ADDR_FAICFG, 4, 1, 0]) + r=electron_group_writefadata(bpms, [ADDR_FAICFG, 4, 1, 0]) for _r in r: if _r.has_failed(): logger.error("Failed to apply command WriteFAData on bpm {}".format(_r.dev_name())) -- GitLab