def setManualFocus(camm, focusPoint): focusList = [ 'Near 1', 'Near 2', 'Near 3', 'None', 'Far 1', 'Far 2', 'Far 3' ] conf = camera.Config(camm) root = conf.get_root_widget() child = root.get_child_by_name("manualfocusdrive") child.set_value(focusList[focusPoint]) conf.set_config()
def rti_capture_cb(self, widget, data = None): chooser = gtk.FileChooserDialog('Select output folder', self, gtk.FILE_CHOOSER_ACTION_CREATE_FOLDER, (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT, 'Capture', 99)) chooser.set_default_response(99) chooser.set_current_folder(self.outdir) response = chooser.run() filename = chooser.get_filename() chooser.hide() if response != 99: return if filename == None: self.info.err('Select a destination folder', '') return # filename is "base/project-name" # we remember the base for next time, we make the standard directory # structure below project-name self.outdir = os.path.dirname(filename) project = os.path.basename(filename) # remove a trailing '/', if any, it'll confuse os.path.dirname() if filename[-1] == '/': filename = filename[:-1] if os.access(filename, os.W_OK): self.info.err('Destination folder exists', 'Pick another name or delete %s.' % filename) return for i in ['assembly-files', 'finished-files', 'original-captures', 'jpeg-exports']: target = os.path.join(filename, i) if not os.access(target, os.W_OK): try: os.makedirs(target) except Exception as e: self.info.err('Unable to create folder', 'Create %s failed with %s' % (target, repr(e))) return # record camera settings try: f = open(os.path.join(filename, 'camsettings.txt'), 'w') f.write('Original capture by RTI Acquire 1.0\n') f.write(time.ctime() + '\n') index = self.dome_picker.get_active() name = self.leds.get_names()[index] f.write('Lights "%s"\n' % name) rect = self.preview.get_selection() if rect: f.write('Selection "%d %d %d %d"\n' % \ (rect.left, rect.top, rect.width, rect.height)) config = camera.Config(self.camera) config.prettyprint(f, config.get_root_widget()) f.close() except Exception as e: self.info.err('Unable to create camsettings.txt', 'Create %s failed with %s' % (target, repr(e))) return self.target = os.path.join(filename, 'original-captures') self.action('Full capture to %s ...' % self.target, self.rti_capture)
def __init__(self): gtk.Window.__init__(self) self.connect('destroy', self.destroy_cb) self.config_window = None self.live_hide_timeout = 0 self.light_hop_timeout = 0 self.busy = False self.leds = ledmap.Ledmap(os.path.join(source_dir, 'data', 'led-maps.txt')) logging.debug('loaded %d maps', len(self.leds.get_names())) for name in self.leds.get_names(): bytes = self.leds.get_bytes(name) logging.debug('%s: %d lights', name, len(bytes)) # where project directories get written, see RTI cap above self.outdir = options.outdir self.lights = lights.Lights() # try to reset the lights ... if this fails, disable dome controls try: self.dome_controls = True name = self.leds.get_names()[0] self.lights.set_triple(self.leds.get_bytes(name)[0]) except lights.Error as e: logging.debug('no lights found, disabling dome controls') self.dome_controls = False self.vbox = gtk.VBox(False, 0) self.add(self.vbox) self.vbox.show() fixed = gtk.Fixed() self.vbox.pack_start(fixed, False) fixed.show() self.camera = camera.Camera() self.preview = preview.Preview(self.camera) fixed.put(self.preview, 0, 0) self.preview.show() self.preview.connect('motion_notify_event', self.preview_motion_cb) if options.verbose: try: config = camera.Config(self.camera) config.prettyprint(sys.stdout, config.get_root_widget()) except: logging.debug("No Camera detected: unable to print config") eb = gtk.EventBox() fixed.put(eb, 0, 0) eb.show() self.progress = progress.Progress() self.progress.set_size_request(preview_width, -1) eb.add(self.progress) eb = gtk.EventBox() fixed.put(eb, 0, 0) eb.show() self.info = info.Info() self.info.set_size_request(preview_width, -1) eb.add(self.info) eb = gtk.EventBox() fixed.put(eb, 20, 380) eb.show() self.play_image = gtk.image_new_from_stock(gtk.STOCK_MEDIA_PLAY, gtk.ICON_SIZE_SMALL_TOOLBAR) self.pause_image = gtk.image_new_from_stock(gtk.STOCK_MEDIA_PAUSE, gtk.ICON_SIZE_SMALL_TOOLBAR) self.live = gtk.Button() self.live.set_image(self.play_image) self.live.set_tooltip_text("Start/stop live preview") self.live.connect('clicked', self.live_cb, None) eb.add(self.live) self.live.show() self.toolbar = gtk.HBox(False, 5) self.toolbar.set_border_width(3) self.vbox.pack_end(self.toolbar) self.toolbar.show() button = gtk.Button() quit_image = gtk.image_new_from_stock(gtk.STOCK_QUIT, gtk.ICON_SIZE_SMALL_TOOLBAR) quit_image.show() button.set_tooltip_text("Quit RTIAcquire") button.connect('clicked', self.destroy_cb, None) button.add(quit_image) self.toolbar.pack_end(button, False, False) button.show() if self.dome_controls: self.dome_picker = gtk.combo_box_new_text() for name in self.leds.get_names(): self.dome_picker.append_text(name) self.dome_picker.set_active(0) self.dome_picker.set_tooltip_text("Select lighting system") self.dome_picker.connect('changed', self.dome_picker_cb, None) self.toolbar.pack_start(self.dome_picker, False, False) self.dome_picker.show() self.light_picker = gtk.SpinButton(climb_rate = 1) self.light_picker.set_numeric(True) self.light_picker.set_wrap(True) self.light_picker.set_increments(1, 1) self.light_picker.set_tooltip_text("Pick light") self.light_picker_refresh() self.light_picker.connect('value_changed', self.light_picker_cb, None) self.toolbar.pack_start(self.light_picker, False, False) self.light_picker.show() button = gtk.Button() menu_image = gtk.image_new_from_stock(gtk.STOCK_PREFERENCES, gtk.ICON_SIZE_SMALL_TOOLBAR) menu_image.show() button.set_tooltip_text("Camera settings") button.connect('clicked', self.config_cb, None) button.add(menu_image) self.toolbar.pack_start(button, False, False) button.show() button = gtk.Button('Focus') button.set_tooltip_text("Focus camera automatically") button.connect('clicked', self.focus_cb, None) self.toolbar.pack_start(button, False, False) button.show() photo_image = gtk.image_new_from_file( os.path.join(source_dir, 'data', 'camera_24.png')) photo = gtk.Button() photo.set_image(photo_image) photo.set_tooltip_text("Take single photo") photo.connect('clicked', self.photo_cb, None) self.toolbar.pack_start(photo, False, False) photo.show() if self.dome_controls: photo = gtk.Button('RTI Preview') photo.set_tooltip_text("Take preview RTI image") photo.connect('clicked', self.rti_preview_cb, None) self.toolbar.pack_start(photo, False, False) photo.show() photo = gtk.Button('RTI Capture ...') photo.set_tooltip_text("Start full RTI acquisition") photo.connect('clicked', self.rti_capture_cb, None) self.toolbar.pack_start(photo, False, False) photo.show() self.info.msg('Welcome to RTI Acquire', 'v1.3, March 2014') self.show()
def focus_cb(self, widget, data = None): config = camera.Config(self.camera) root = config.get_root_widget() focus = root.get_child_by_name('autofocusdrive') focus.set_value(1) config.set_config()