コード例 #1
0
ファイル: openmv-ide.py プロジェクト: wminarik/openmv
    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)
コード例 #2
0
    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)
コード例 #3
0
ファイル: openmv-ide.py プロジェクト: wminarik/openmv
    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)
コード例 #4
0
    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)
コード例 #5
0
ファイル: openmv-ide.py プロジェクト: wminarik/openmv
    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
コード例 #6
0
    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
コード例 #7
0
ファイル: openmv-ide.py プロジェクト: wminarik/openmv
    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
コード例 #8
0
    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
コード例 #9
0
ファイル: openmv-ide.py プロジェクト: wminarik/openmv
 def reset_clicked(self, widget):
     if (self.connected):
         openmv.reset()
     openmv.disconnect()
コード例 #10
0
 def reset_clicked(self, widget):
     if (self.connected):
         openmv.reset()
     openmv.disconnect()
コード例 #11
0
ファイル: openmv-fb.py プロジェクト: michaelchi08/openmv
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"
コード例 #12
0
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"