def __init__(self, callback): self.gladefile = os.path.join(__location__, "gui", "addtag.glade") self.builder = Gtk.Builder() self.builder.add_from_file(self.gladefile) # Automatically connect signals to functions defined above # not needed in commandline self.builder.connect_signals(self) self.mission_element_combo = self.builder.get_object( "missionElementCombo") self.tag_type_combo = self.builder.get_object("tagTypeCombo") self.tag_name_entry = self.builder.get_object("tagNameEntry") #Populate dropdowns self.elements = list(get_registered_elements().keys()) self.elements.sort() populate_combo_box(self.mission_element_combo, self.elements) self.set_tag_types([]) #Get the main window self.window = self.builder.get_object("addTagWindow") self.window.set_type_hint(Gdk.WindowTypeHint.DIALOG) self.window.show() #Link callback self.callback = callback self.log.debug("Window created")
def __init__(self, parent): self.gladefile = os.path.join(__location__, "gui/testwindow.glade") self.builder = Gtk.Builder() self.builder.add_from_file(self.gladefile) self.parent = parent self.t = None self.last_frame_time = None self.fps_hysteresis = TimedHysteresis(1.0) #1 second hysteresis # Automatically connect signals to functions defined above self.builder.connect_signals(self) self.mission_element_combo = self.builder.get_object("missionElementCombo") self.tag_type_combo = self.builder.get_object("tagTypeCombo") self.tag_name_entry = self.builder.get_object("tagNameEntry") self.progress_bar = self.builder.get_object("progressBar") self.percent_text = self.builder.get_object("percentText") self.test_info_text = self.builder.get_object("testInfoText") self.spin_button = self.builder.get_object("spinButton") self.spin_button.set_numeric(True) adjustment = Gtk.Adjustment(value=1, lower=1, upper=50, step_incr=1, page_incr=0, page_size=0) self.spin_button.set_adjustment(adjustment) self.spin_button.set_value(1) self.skip_value = 1 #Add information about the test about to be run self.populate_info() #Populate mission element dropdown self.elements = get_registered_elements().keys() self.elements = sorted(self.elements) populate_combo_box(self.mission_element_combo, self.elements) #Get the main window self.window = self.builder.get_object("testWindow") self.window.set_type_hint(Gdk.WindowTypeHint.DIALOG) self.window.show() #Disable the trees to prevent modifications self.parent.video_tree.set_sensitive(False) self.testing = False self.log.debug("Window created")
def __init__(self,db): # parent was parentwindow # self.parent = parent self.t = None self.last_frame_time = None self.fps_hysteresis = TimedHysteresis(1.0) #1 second hysteresis self.load_db(db) self.skip_value = 1 #add info about test to be run self.populate_info() self.elements = get_registered_elements().keys() #Disable the trees to prevent modifications #self.parent.video_tree.set_sensitive(False) self.testing = False print("Test from cmdline created")
def __init__(self, callback, location): self.gladefile = os.path.join(__location__, location) self.builder = Gtk.Builder() self.builder.add_from_file(self.gladefile) # Automatically connect signals to functions defined above self.builder.connect_signals(self) #Populate dropdowns self.elements = get_registered_elements().keys() self.elements = sorted(self.elements) populate_combo_box(self.mission_element_combo, self.elements) self.set_tag_types([]) #Get the main window self.window = self.builder.get_object("addTagWindow") self.window.set_type_hint(Gdk.WindowTypeHint.DIALOG) self.window.show() #Link callback self.callback = callback self.log.debug("Window created")
def get_frames(self, vision_enable=True): melements = get_registered_elements() frame_count = 0 for vid in Video.get_all(): tgs = vid.get_tags() if len(tgs) > 0: self.log.info("Loading video id %d" % vid.id) #if(self.parent != None): # self.parent.video_box.load_video(vid) # XXX The below sleep was added to prevent a "Bus Error" # XXX when running a test with a lot of disabled tags - Alex S. # TODO FIX sleep(0.1) for tag in filter(lambda t: t.active, tgs): frame_list = tag.get_frame_list()[::self.skip] if len(frame_list) > 0: #Carry out testing on this tag self.log.info("Testing tag #%d (%d frames)" % (tag.id, len(frame_list))) frame_list.sort() tag.clear_test_results() if vision_enable: if not melements.has_key(tag.mission_element): self.log.warning( "Skipping tag %s; not a mission element." % tag.mission_element) continue m_element = melements[tag.mission_element]() m_element.init( ) #Turn on vision for this mission element for frame in frame_list: #The test of the frame if vision_enable: yield frame, tag, m_element else: yield frame, tag frame_count += 1 self.status_callback(frame_count) if self.has_aborted(): break if vision_enable: m_element.deinit( ) #Turn off vision for this mission element self.log.info("Waiting for module shutdown") sleep( 1 ) # We sleep here because vision will reset the enabled flag if vision is stopped and started too qucikly # This happens if we immediately stop and start the same vision module # TODO: Refactor to fix this (or fix this behavior in vision) # Testing could potentially time out if a vision module does not shut down within # this period if self.has_aborted(): break if self.has_aborted(): break