def register(instance_name, *device_names): """Register device with a SDPSubarray device server instance. If the device is already registered, do nothing. :param instance_name: Instance name SDPSubarray device server :param device_names: Subarray device names to register """ # pylint: disable=protected-access try: tango_db = Database() class_name = 'SDPSubarray' server_name = '{}/{}'.format(class_name, instance_name) devices = list(tango_db.get_device_name(server_name, class_name)) device_info = DbDevInfo() device_info._class = class_name device_info.server = server_name for device_name in device_names: device_info.name = device_name if device_name in devices: LOG.debug("Device '%s' already registered", device_name) continue LOG.info('Registering device: %s (server: %s, class: %s)', device_info.name, server_name, class_name) tango_db.add_device(device_info) except ConnectionFailed: pass
def main(): db = Database() """Add device server motor""" new_device_name = "x/foo/motor" new_device_info_motor = DbDevInfo() new_device_info_motor._class = "DS_Motor" new_device_info_motor.server = "DS_Motor/aalonso" print("Creating device: %s" % new_device_name) new_device_info_motor.name = new_device_name db.add_device(new_device_info_motor)
def register_master(): """Register the SDP Master device.""" tango_db = Database() device = "sip_sdp/elt/master" device_info = DbDevInfo() device_info._class = "SDPMasterDevice" device_info.server = "sdp_master_ds/1" device_info.name = device devices = tango_db.get_device_name(device_info.server, device_info._class) if device not in devices: LOG.info('Registering device "%s" with device server "%s"', device_info.name, device_info.server) tango_db.add_device(device_info)
def register_subarray_devices(): """Register subarray devices.""" tango_db = Database() LOG.info("Registering Subarray devices:") device_info = DbDevInfo() # pylint: disable=protected-access device_info._class = "SubarrayDevice" device_info.server = "subarray_ds/1" for index in range(16): device_info.name = "siid_sdp/elt/subarray_{:02d}".format(index) LOG.info("\t%s", device_info.name) tango_db.add_device(device_info) tango_db.put_class_property(device_info._class, dict(version='1.0.0'))
def register_subarray_devices(): """Register subarray devices.""" tango_db = Database() LOG.info("Registering Subarray devices:") device_info = DbDevInfo() # pylint: disable=protected-access device_info._class = "SubarrayDevice" device_info.server = "subarray_ds/1" for index in range(16): device_info.name = "sip_sdp/elt/subarray_{:02d}".format(index) LOG.info("\t%s", device_info.name) tango_db.add_device(device_info) tango_db.put_class_property(device_info._class, dict(version='1.0.0'))
def register_pb_devices(num_pbs: int = 100): """Register PBs devices. Note(BMo): Ideally we do not want to register any devices here. There does not seem to be a way to create a device server with no registered devices in Tango. This is (probably) because Tango devices must have been registered before the server starts ... """ tango_db = Database() LOG.info("Registering PB devices:") dev_info = DbDevInfo() # pylint: disable=protected-access dev_info._class = 'ProcessingBlockDevice' dev_info.server = 'processing_block_ds/1' for index in range(num_pbs): dev_info.name = 'sip_sdp/pb/{:05d}'.format(index) LOG.info("\t%s", dev_info.name) tango_db.add_device(dev_info)
# -*- coding: utf-8 -*- """Python script to register device""" from tango import Database, DbDevInfo # http://pytango.readthedocs.io/en/stable/database.html db = Database() # Define the tango Class served by this DServer device_info = DbDevInfo() device_info.name = 'sip_SDP/test/1' device_info._class = 'Test' device_info.server = 'Test/test' print('Adding device: %s' % device_info.name) # NOTE: This also adds the server defined by device_info.server to the db db.add_device(device_info)
from tango import Database, DbDevInfo import sys print(sys.argv[1]) device = sys.argv[1] #sys.exit(0) # A reference on the DataBase db = Database() # The 3 devices name we want to create # Note: these 3 devices will be served by the same DServer new_device_name1 = "event/station/" + device #new_device_name2 = "px1/tdl/mouse2" #new_device_name3 = "px1/tdl/mouse3" # Define the Tango Class served by this DServer new_device_info = DbDevInfo() new_device_info._class = "EventStation" new_device_info.server = "EventStation/" + device # add the first device print("Creating device: %s" % new_device_name1) new_device_info.name = new_device_name1 db.add_device(new_device_info)