def __init__(self, views=None):

        if views is None:
            print('load views from database ...')
            views = ft.get_class_devices('PanicViewDS')
            views.append(ft.get_tango_host())

        print('ViewChooser(%s)' % views)
        self.view = ''
        self.views = fd.dicts.SortedDict()
        for v in views:
            if ':' in v:
                self.views[v] = v
            else:
                desc = ft.get_device(v).Description.split('\n')[0]
                self.views[desc] = v

        Qt.QDialog.__init__(self, None)
        #self.setModal(True)
        self.setWindowTitle('PANIC View Chooser')
        self.setLayout(Qt.QVBoxLayout())
        self.layout().addWidget(Qt.QLabel('Choose an AlarmView'))
        self.chooser = Qt.QComboBox()
        self.chooser.addItems(self.views.keys())
        self.layout().addWidget(self.chooser)
        self.button = Qt.QPushButton('Done')
        self.layout().addWidget(self.button)
        self.button.connect(self.button, Qt.SIGNAL('pressed()'), self.done)
        self.button.connect(self.button, Qt.SIGNAL('pressed()'), self.close)
Esempio n. 2
0
def is_attribute_code_pushed(device,attribute,\
        event=ft.EventType.ARCHIVE_EVENT):
    """
    Returns True if it is code pushed
    Returns False if it is not pushed but available anyway
    Returns None if attribute has no events
    """
    if isString(device): 
        device = ft.get_device(device)
    cb = lambda *args: None
    r = None
    try:
        e = device.subscribe_event(attribute,event,cb)
        device.unsubscribe_event(e)
        if not device.is_attribute_polled(attribute):
            # Pushed by Code
            return True
        # Pushed by Polling
        return False
    except:
        # No events available
        return None
def check(filename, device='', brief=False):
    """ compare .json files to a real device """
    if not device:
        device = file2dev(filename)

    data = json.load(open(filename))
    vals = dict((str(k), v['value']) for k, v in data['attributes'].items())
    for k, v in vals.items():
        if type(v) == unicode:
            vals[k] = str(v)

    diff = []
    dp = ft.get_device(device)
    attrs = dp.get_attribute_list()
    for k, v in vals.items():
        if not fn.inCl(k, attrs):
            diff.append((device, k, v, None))
        else:
            try:
                w = dp.read_attribute(k).value
                if w != v:
                    diff.append((device, k, v, w))
            except Exception, e:
                diff.append((device, k, v, e))