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)
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))