From c1a2955282ced4ffb1769dbe2f60ee5c960e47e0 Mon Sep 17 00:00:00 2001 From: Chris Garnier Date: Fri, 14 Nov 2025 13:50:20 -0800 Subject: [PATCH] added error handling to catch the exception raised get searching for a PV that doesn't have a corresponding device in the lattice --- simulation_server/beamdriver.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/simulation_server/beamdriver.py b/simulation_server/beamdriver.py index 7471131..db26028 100644 --- a/simulation_server/beamdriver.py +++ b/simulation_server/beamdriver.py @@ -260,7 +260,7 @@ def __init__( self.virtual_accelerator = virtual_accelerator self.server = server - + self.omitted = [] # get list of pvs that should be updated every time we write to a PV self.measurement_pvs = self.get_measurement_pvs() @@ -307,7 +307,14 @@ def update_pvs(self, pv_list): print("PVs updated.") def read(self, reason): - value = self.virtual_accelerator.get_pvs([reason])[reason] + try: + value = self.virtual_accelerator.get_pvs([reason])[reason] + except AttributeError as e: + if reason not in self.omitted: + self.omitted.append(reason) + print(f"Error getting param for {reason}: {e}, do not use {reason}") + return 0 + self.server.set_pv(reason, value) try: self.setParam(reason, value)