Example #1
0
def add_attribute(aname, rw=READ, tp=DevString, query='auto', extra=None):
    '''Adds a scalar attribute.
       If no read function is defined, create_rfun() will be used to generate
       a suitable default.
    '''
    extra = PS.get_attr_extra(aname, extra)
    rfun_name = 'read_' + aname
    CLASS.attr_list[aname] = [[tp, SCALAR, rw], extra]

    if not hasattr(DEVICE, rfun_name):
        # creates generic read function
        rfun = create_rfun(aname, query=query)
        setattr(DEVICE, rfun_name, rfun)
Example #2
0
def add_attribute(aname, rw=READ, tp=DevString, query='auto',
      extra=None):
    '''Adds a scalar attribute.
       If no read function is defined, create_rfun() will be used to generate
       a suitable default.
    '''
    extra = PS.get_attr_extra(aname, extra)
    rfun_name = 'read_'+aname
    CLASS.attr_list[aname] = [[tp, SCALAR, rw] , extra ]

    if not hasattr(DEVICE, rfun_name):
        # creates generic read function
        rfun = create_rfun(aname, query=query)
        setattr(DEVICE, rfun_name, rfun)
Example #3
0
def add_ec_attr(aname,
                mnemonic=None,
                rw=READ,
                tp=DevDouble,
                extra=None,
                qconv=None,
                wconv=None,
                query='auto'):
    '''Adds a scalars attribute to the server that roughly corresponds
       to a mnemonic being read or written.
       If no read_XYZ function exists, one will be created by create_rfun().
       Likewise, if no query_XYZ functions exists, one will be created.
    '''
    extra = PS.get_attr_extra(aname, extra)

    rfun_name = 'read_' + aname
    qfun_name = 'query_' + aname
    if mnemonic is None and not hasattr(DEVICE, qfun_name):
        msg = "neither mnemonic given to add_ec_attr %s nor query method defined" % (
            aname, )
        raise Exception(msg)

    CLASS.attr_list[aname] = [[tp, SCALAR, rw], extra]

    if not hasattr(DEVICE, rfun_name):
        rfun = create_rfun(aname, query=query)
        setattr(DEVICE, rfun_name, rfun)

    if not hasattr(DEVICE, qfun_name):
        if qconv is None:
            qconv = CONVERT[tp]
        qfun = create_ec_qfun(mnemonic, conv=qconv)
        setattr(DEVICE, qfun_name, qfun)

    if rw == READ: return

    wfun_name = 'write_' + aname

    if not hasattr(DEVICE, wfun_name):
        if wconv is None:
            wconv = CONVERT_WRITE.get(tp, str)
        wfun = create_ec_wfun(mnemonic, conv=wconv)
        setattr(DEVICE, wfun_name, wfun)
Example #4
0
def add_ec_attr(
        aname, mnemonic=None, rw=READ, tp=DevDouble,
        extra=None,
        qconv=None,
        wconv=None,
        query='auto'
        ):
    '''Adds a scalars attribute to the server that roughly corresponds
       to a mnemonic being read or written.
       If no read_XYZ function exists, one will be created by create_rfun().
       Likewise, if no query_XYZ functions exists, one will be created.
    '''
    extra = PS.get_attr_extra(aname, extra)

    rfun_name = 'read_'+aname
    qfun_name = 'query_'+aname
    if mnemonic is None and not hasattr(DEVICE, qfun_name):
        msg = "neither mnemonic given to add_ec_attr %s nor query method defined" % (aname,)
        raise Exception(msg)

    CLASS.attr_list[aname] = [[tp, SCALAR, rw] , extra ]

    if not hasattr(DEVICE, rfun_name):
        rfun = create_rfun(aname, query=query)
        setattr(DEVICE, rfun_name, rfun)

    if not hasattr(DEVICE, qfun_name):
        if qconv is None:
          qconv = CONVERT[tp]
        qfun = create_ec_qfun(mnemonic, conv=qconv)
        setattr(DEVICE, qfun_name, qfun)

    if rw==READ: return

    wfun_name = 'write_'+aname

    if not hasattr(DEVICE, wfun_name):
        if wconv is None:
            wconv = CONVERT_WRITE.get(tp,str)
        wfun = create_ec_wfun(mnemonic, conv=wconv)
        setattr(DEVICE, wfun_name, wfun)