Skip to content
Snippets Groups Projects
OpUtils.py 1.52 KiB
Newer Older
# Module OpUtils
# Usefull function for operation



###############################################################################
# FUNCTIONS ON DEVICE PROXY
###############################################################################

def searchattr(prx, attr, ignorecase=True):
    """
    Search in a tango device proxy for an attribute name.

    PARAMETERS
    ----------
    prx: tango.DeviceProxy
        Proxy to the device.

    attr: string
        String to search for.

    ignorecase: bool
        Case insensitive.
    """
    if ignorecase:
        return [a for a in prx.get_attribute_list() if attr.lower() in a.lower()]
    else:
        return [a for a in prx.get_attribute_list() if attr in a]

def captureattr(prx):
    """
    Capture all attributes in the device, return a python dict.

    PARAMETERS
    ----------
    prx: tango.DeviceProxy
        Proxy to the device.

    RETURN
    ------
    attrs: dict
        keys are attributes names, values are values.
    """

    attrs=dict()
    attrlist=prx.get_attribute_list()

    R= prx.read_attributes(attrlist, wait=True)
    for r in R:
        attrs[r.name.lower()]=r.value

    return attrs



###############################################################################
# FUNCTIONS ON TANGO DATABASE
###############################################################################

###############################################################################
# FUNCTIONS ON ARCHIVER
###############################################################################