def connect(self): connected = False openmv.disconnect() for i in range(10): try: # opens CDC port. # Set small timeout when connecting openmv.init(self.config.get("main", "serial_port"), baudrate=self.baudrate, timeout=0.050) connected = True break except Exception as e: connected = False sleep(0.100) if not connected: if platform.system() == "Linux" and not os.path.isfile(UDEV_PATH): error_msg = ( "Failed to open serial port.\n" "Please install OpenMV's udev rules first:\n\n" "sudo cp openmv/udev/50-openmv.rules /etc/udev/rules.d/\n" "sudo udevadm control --reload-rules\n\n") else: error_msg = ("Failed to open serial port.\n" "Please check the preferences Dialog.\n") self.show_message_dialog(gtk.MESSAGE_ERROR, "%s%s" % (error_msg, e)) return # Set higher timeout after connecting for lengthy transfers. openmv.set_timeout(1 * 2) # SD Cards can cause big hicups. # check firmware version fw_ver = openmv.fw_version() self.fw_version = fw_ver ide_ver = (FIRMWARE_VERSION_MAJOR, FIRMWARE_VERSION_MINOR, FIRMWARE_VERSION_PATCH) if (fw_ver[0] != FIRMWARE_VERSION_MAJOR or fw_ver[1] != FIRMWARE_VERSION_MINOR): self.connected = False self.show_message_dialog( gtk.MESSAGE_ERROR, "Firmware version mismatch!\n" "Please update the firmware image and/or the IDE!") else: self.connected = True self._update_title() map(lambda x: x.set_sensitive(True), self.controls) # Interrupt running code openmv.stop_script() # Enable Framebuffer openmv.enable_fb(True) # Disable connect button self.connect_button.set_sensitive(False)
def connect(self): connected = False openmv.disconnect() for i in range(10): try: # opens CDC port. # Set small timeout when connecting openmv.init(self.config.get("main", "serial_port"), baudrate=self.baudrate, timeout=0.050) connected = True break except Exception as e: connected = False sleep(0.100) if not connected: if platform.system() == "Linux" and not os.path.isfile(UDEV_PATH): error_msg = ("Failed to open serial port.\n" "Please install OpenMV's udev rules first:\n\n" "sudo cp openmv/udev/50-openmv.rules /etc/udev/rules.d/\n" "sudo udevadm control --reload-rules\n\n") else: error_msg = ("Failed to open serial port.\n" "Please check the preferences Dialog.\n") self.show_message_dialog(gtk.MESSAGE_ERROR,"%s%s"%(error_msg, e)) return # Set higher timeout after connecting for lengthy transfers. openmv.set_timeout(1*2) # SD Cards can cause big hicups. # check firmware version fw_ver = openmv.fw_version() self.fw_version = fw_ver ide_ver = (FIRMWARE_VERSION_MAJOR, FIRMWARE_VERSION_MINOR, FIRMWARE_VERSION_PATCH) if (fw_ver[0] != FIRMWARE_VERSION_MAJOR or fw_ver[1] != FIRMWARE_VERSION_MINOR): self.connected = False self.show_message_dialog(gtk.MESSAGE_ERROR, "Firmware version mismatch!\n" "Please update the firmware image and/or the IDE!") else: self.connected = True self._update_title() map(lambda x:x.set_sensitive(True), self.controls) # Interrupt running code openmv.stop_script() # Enable Framebuffer enable_fb_check = self.builder.get_object("enable_fb_check") self.fb_enabled = enable_fb_check.get_active() openmv.enable_fb(self.fb_enabled) # Disable connect button self.connect_button.set_sensitive(False)
def disconnect(self): try: # stop running code openmv.stop_script() except: pass openmv.disconnect() self.connected = False self._update_title() self.stop_button.set_sensitive(False) self.connect_button.set_sensitive(True) map(lambda x: x.set_sensitive(False), self.controls)
def disconnect(self): try: # stop running code openmv.stop_script(); except: pass openmv.disconnect() self.connected = False self._update_title() self.stop_button.set_sensitive(False) self.connect_button.set_sensitive(True) map(lambda x:x.set_sensitive(False), self.controls)
def task_upload(self, state): buf = state["buf"] xfer_bytes = state["xfer_bytes"] xfer_total = state["xfer_total"] # Send chunk chunk = min(60, xfer_total - xfer_bytes) openmv.flash_write(buf[xfer_bytes:xfer_bytes + chunk]) xfer_bytes += chunk state["xfer_bytes"] = xfer_bytes state["bar"].set_fraction(xfer_bytes / float(xfer_total)) state["bar"].set_text("Uploading %d/%d" % (xfer_bytes, xfer_total)) if (xfer_bytes == xfer_total): openmv.bootloader_reset() openmv.disconnect() return False return True
def task_upload(self, state): buf = state["buf"] xfer_bytes = state["xfer_bytes"] xfer_total = state["xfer_total"] # Send chunk chunk = min (60, xfer_total-xfer_bytes) openmv.flash_write(buf[xfer_bytes : xfer_bytes+chunk]) xfer_bytes += chunk state["xfer_bytes"] = xfer_bytes state["bar"].set_fraction(xfer_bytes/float(xfer_total)) state["bar"].set_text("Uploading %d/%d"%(xfer_bytes, xfer_total)) if (xfer_bytes == xfer_total): openmv.bootloader_reset() openmv.disconnect() return False return True
def task_init(self, state): openmv.disconnect() try: # Attempt to connect to bootloader openmv.init(self.port, baudrate=self.baud, timeout=0.050) if openmv.bootloader_start(): openmv.set_timeout(1) state["next"] = self.task_erase state["bar"].set_text("Erasing...") self.cancel_button.set_sensitive(False) except Exception as e: openmv.disconnect() if self.flash_msg: state["bar"].set_text("Connecting to bootloader...\ \n ") else: state["bar"].set_text("Connecting to bootloader...\ \nDisconnect and re-connect cam!") self.flash_msg = self.flash_msg ^ 1 sleep(0.100) return True
def task_init(self, state): openmv.disconnect() try: # Attempt to connect to bootloader openmv.init(self.port, baudrate=self.baud, timeout=0.050) if openmv.bootloader_start(): openmv.set_timeout(1) state["next"] = self.task_erase state["bar"].set_text("Erasing...") self.cancel_button.set_sensitive(False) except Exception as e: openmv.disconnect() if self.flash_msg: state["bar"].set_text("Connecting to bootloader...\ \n ") else: state["bar"].set_text("Connecting to bootloader...\ \nDisconnect and re-connect cam!") self.flash_msg = self.flash_msg ^ 1 sleep(0.100) return True
def reset_clicked(self, widget): if (self.connected): openmv.reset() openmv.disconnect()
def reset_clicked(self, widget): if (self.connected): openmv.reset() openmv.disconnect()
while(True): img = sensor.snapshot() # Take a picture and return the image. sensor.flush() """ # init pygame pygame.init() # init openmv if 'darwin' in sys.platform: portname = "/dev/cu.usbmodem14221" else: portname = "/dev/openmvcam" connected = False openmv.disconnect() for i in range(10): try: # opens CDC port. # Set small timeout when connecting openmv.init(portname, baudrate=921600, timeout=0.050) connected = True break except Exception as e: connected = False sleep(0.100) if not connected: print ( "Failed to connect to OpenMV's serial port.\n" "Please install OpenMV's udev rules first:\n" "sudo cp openmv/udev/50-openmv.rules /etc/udev/rules.d/\n"
while(True): img = sensor.snapshot() # Take a picture and return the image. sensor.flush() """ # init pygame pygame.init() # init openmv if 'darwin' in sys.platform: portname = "/dev/cu.usbmodem14221" else: portname = "/dev/openmvcam" connected = False openmv.disconnect() for i in range(10): try: # opens CDC port. # Set small timeout when connecting openmv.init(portname, baudrate=921600, timeout=0.050) connected = True break except Exception as e: connected = False sleep(0.100) if not connected: print("Failed to connect to OpenMV's serial port.\n" "Please install OpenMV's udev rules first:\n" "sudo cp openmv/udev/50-openmv.rules /etc/udev/rules.d/\n"