def autogenerated_code(self, tag): """ returns the autogenerated code given the address and model of a device """ model = self[tag]['model'] ##1/ check if an IVI driver works string_visa = """from pyhardware.drivers.visa import {0} instrument = {0}(logical_name, address, simulate, timeout=100) """ ###2/ check a visa driver for name, visa_driver_type \ in list_all_child_classes(VisaDriver).iteritems(): if model in visa_driver_type.supported_models(): return string_visa.format(visa_driver_type.__name__) string_serial = """from pyhardware.drivers.serial import {0} instrument = {0}(logical_name, address, simulate) """ ###3/ check a serial driver for name, serial_driver_type \ in list_all_child_classes(SerialDriver).iteritems(): if model in serial_driver_type.supported_models(): return string_serial.format(serial_driver_type.__name__) string_ivi = """import pyivi from pyhardware.drivers.ivi import {0} driver = pyivi.ivi_instrument(address, model=model, simulate=simulate) instrument = {0}(logical_name, driver) """ for name, ivi_driver_type \ in list_all_child_classes(IviDriver).iteritems(): if model in ivi_driver_type.supported_models(): return string_ivi.format(ivi_driver_type.__name__) return """no supporting drivers in ivi, visa or serial, sorry..."""
def contextMenuModels(self, point): """ context menu when models column right-clicked """ def change_model(new_model): pic = PyInstrumentsConfig() itm = self.tree_widget.itemAt(point) pic[itm.val("logical_name")]["model"] = new_model pic.save() self.refresh() class ChangeModel(QtGui.QAction): def change_model_to_mine(self): change_model(str(self.text())) def add_model_in_menu(menu, model): model_action = ChangeModel(model, self) model_actions.append(model_action) model_action.triggered.connect( \ model_action.change_model_to_mine) menu.addAction(model_action) menu = QtGui.QMenu(self) ivi_menu = QtGui.QMenu("ivi", self) menu.addMenu(ivi_menu) ivi_drivers = list_all_child_classes(IviDriver) ivi_types_menu = [] soft_modules = [] modules_menu = [] model_actions = [] for driver in ivi_drivers.values(): type_menu = QtGui.QMenu(driver.__name__) ivi_types_menu.append(type_menu) ivi_menu.addMenu(type_menu) for module in driver.supported_software_modules(): #if module in map(lambda x: x.name, CONFIG_STORE): soft_modules.append(module) module_menu = QtGui.QMenu(module) modules_menu.append(module_menu) type_menu.addMenu(module_menu) for model in software_modules[ module].supported_instrument_models(): add_model_in_menu(module_menu, model) serial_menu = QtGui.QMenu("serial", self) menu.addMenu(serial_menu) serial_drivers = list_all_child_classes(SerialDriver) serial_drivers_menu = [] for driver in serial_drivers.values(): driver_menu = QtGui.QMenu(driver.__name__) serial_drivers_menu.append(driver_menu) serial_menu.addMenu(driver_menu) for model in driver.supported_models(): add_model_in_menu(driver_menu, model) visa_menu = QtGui.QMenu("visa", self) menu.addMenu(visa_menu) visa_drivers = list_all_child_classes(VisaDriver) visa_drivers_menu = [] for driver in visa_drivers.values(): driver_menu = QtGui.QMenu(driver.__name__) visa_drivers_menu.append(driver_menu) visa_menu.addMenu(driver_menu) for model in driver.supported_models(): add_model_in_menu(driver_menu, model) # visa_drivers = list_all_child_classes(VisaDriver) # for driver in visa_driver.values(): # driver_menu = QtGui.QMenu(driver.__name__) # model_action = ChangeModel(model, self) # model_actions.append(model_action) # model_action.triggered.connect( \ # model_action.change_model_to_mine) # module_menu.addAction(model_action) self.exec_menu_at_right_place(menu, point)
def contextMenuModels(self, point): """ context menu when models column right-clicked """ def change_model(new_model): pic = PyInstrumentsConfig() itm = self.tree_widget.itemAt(point) pic[itm.val("logical_name")]["model"] = new_model pic.save() self.refresh() class ChangeModel(QtGui.QAction): def change_model_to_mine(self): change_model(str(self.text())) def add_model_in_menu(menu, model): model_action = ChangeModel(model, self) model_actions.append(model_action) model_action.triggered.connect( \ model_action.change_model_to_mine) menu.addAction(model_action) menu = QtGui.QMenu(self) ivi_menu = QtGui.QMenu("ivi", self) menu.addMenu(ivi_menu) ivi_drivers = list_all_child_classes(IviDriver) ivi_types_menu = [] soft_modules = [] modules_menu = [] model_actions = [] for driver in ivi_drivers.values(): type_menu = QtGui.QMenu(driver.__name__) ivi_types_menu.append(type_menu) ivi_menu.addMenu(type_menu) for module in driver.supported_software_modules(): #if module in map(lambda x: x.name, CONFIG_STORE): soft_modules.append(module) module_menu = QtGui.QMenu(module) modules_menu.append(module_menu) type_menu.addMenu(module_menu) for model in software_modules[module].supported_instrument_models(): add_model_in_menu(module_menu, model) serial_menu = QtGui.QMenu("serial", self) menu.addMenu(serial_menu) serial_drivers = list_all_child_classes(SerialDriver) serial_drivers_menu = [] for driver in serial_drivers.values(): driver_menu = QtGui.QMenu(driver.__name__) serial_drivers_menu.append(driver_menu) serial_menu.addMenu(driver_menu) for model in driver.supported_models(): add_model_in_menu(driver_menu, model) visa_menu = QtGui.QMenu("visa", self) menu.addMenu(visa_menu) visa_drivers = list_all_child_classes(VisaDriver) visa_drivers_menu = [] for driver in visa_drivers.values(): driver_menu = QtGui.QMenu(driver.__name__) visa_drivers_menu.append(driver_menu) visa_menu.addMenu(driver_menu) for model in driver.supported_models(): add_model_in_menu(driver_menu, model) # visa_drivers = list_all_child_classes(VisaDriver) # for driver in visa_driver.values(): # driver_menu = QtGui.QMenu(driver.__name__) # model_action = ChangeModel(model, self) # model_actions.append(model_action) # model_action.triggered.connect( \ # model_action.change_model_to_mine) # module_menu.addAction(model_action) self.exec_menu_at_right_place(menu, point)