Skip to content

Commit 8491643

Browse files
committed
Moved uncommitted changes from backup-before-filterrepand added new changes for repeated view
1 parent e46d1bf commit 8491643

File tree

8 files changed

+344
-622
lines changed

8 files changed

+344
-622
lines changed

src/dt4acc/core/views/shared_view.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,15 @@ def get_view_instance():
2222

2323
if server_type == "tango":
2424
from ...custom_tango.views.result_view import ResultView
25+
# For Tango, prefix must be in format: server_name/instance_name
26+
# Check for TANGO_SERVER_NAME and TANGO_INSTANCE_NAME env vars first
27+
server_name = os.environ.get("TANGO_SERVER_NAME", "SimpleTangoServer")
28+
instance_name = os.environ.get("TANGO_INSTANCE_NAME", "test")
29+
prefix = f"{server_name}/{instance_name}"
2530
elif server_type == "epics":
2631
from ...custom_epics.views.result_view import ResultView
32+
# For EPICS, use DT4ACC_PREFIX or username
33+
prefix = os.environ.get("DT4ACC_PREFIX", getpass.getuser())
2734
else:
2835
raise ValueError(f"Unsupported server type: {server_type}")
2936

src/dt4acc/custom_tango/enhanced_tango_server_complete.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,14 @@ def main():
266266
# Ensure server type is set for shared view system
267267
os.environ["server"] = "tango"
268268

269+
# Set Tango server/instance names for view prefix (required for device names)
270+
server_name = "SimpleTangoServer"
271+
instance_name = "test"
272+
os.environ["TANGO_SERVER_NAME"] = server_name
273+
os.environ["TANGO_INSTANCE_NAME"] = instance_name
274+
print(f"Setting Tango server name: {server_name}/{instance_name}")
275+
logger.info(f"Setting Tango server name: {server_name}/{instance_name}")
276+
269277
# Set DT4ACC_PREFIX for PV naming - use a sensible default if not set
270278
if "DT4ACC_PREFIX" not in os.environ:
271279
default_prefix = "BESSY" # Default prefix for BESSY

src/dt4acc/custom_tango/heartbeat_monitor.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,14 @@ def main():
122122
# Ensure server type is set for shared view system
123123
os.environ["server"] = "tango"
124124

125+
# Set Tango server/instance names for view prefix (required for device names)
126+
server_name = os.environ.get("TANGO_SERVER_NAME", "SimpleTangoServer")
127+
instance_name = os.environ.get("TANGO_INSTANCE_NAME", "test")
128+
os.environ["TANGO_SERVER_NAME"] = server_name
129+
os.environ["TANGO_INSTANCE_NAME"] = instance_name
130+
print(f"🔧 Setting Tango server name: {server_name}/{instance_name}")
131+
logger.info(f"Setting Tango server name: {server_name}/{instance_name}")
132+
125133
# Set DT4ACC_PREFIX for PV naming - use a sensible default if not set
126134
if "DT4ACC_PREFIX" not in os.environ:
127135
default_prefix = "BESSY" # Default prefix for BESSY

src/dt4acc/custom_tango/ioc/devices/power_converter_device.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from dt4acc.custom_epics.data.constants import special_pvs, cavity_names
88
from dt4acc.core.command import UpdateManager
99
from bact_twin_architecture.data_model.identifiers import DevicePropertyID
10+
from dt4acc.custom_tango.ioc.devices.async_wrapper import run_async_in_background
1011

1112
logger = get_logger()
1213

@@ -195,8 +196,8 @@ def current_setpoint(self, value):
195196
"""Set current setpoint (:set in EPICS)."""
196197
try:
197198
self._current_setpoint = float(value)
198-
# Use EPICS update handler
199-
handle_device_update(self.name, "set_current", value)
199+
# Use EPICS update handler with async wrapper to avoid coroutine warning
200+
run_async_in_background(handle_device_update)(self.name, "set_current", value)
200201
# Update readback to match EPICS behavior
201202
self._current_readback = value
202203
logger.info(f"Updated current setpoint to {value}")
@@ -230,8 +231,8 @@ def frequency(self, value):
230231
try:
231232
if self.name in cavity_names:
232233
self._frequency = float(value)
233-
# Use EPICS update handler for master clock
234-
handle_device_update("master_clock", "reference_frequency", value)
234+
# Use EPICS update handler for master clock with async wrapper to avoid coroutine warning
235+
run_async_in_background(handle_device_update)("master_clock", "reference_frequency", value)
235236
logger.info(f"Updated frequency to {value}")
236237
else:
237238
logger.warning(f"Frequency control not available for non-cavity power converter {self.name}")

0 commit comments

Comments
 (0)