#!/usr/bin/env python # This file is part of the OpenMV project. # Copyright (c) 2013/2014 Ibrahim Abdelkader # This work is licensed under the MIT license, see the file LICENSE for details. # # Openmv module. import struct import sys,time import serial import pydfu import platform from array import array from PIL import Image __serial = None __FB_HDR_SIZE =12 # USB Debug commands __USBDBG_CMD = 48 __USBDBG_FRAME_SIZE = 0x81 __USBDBG_FRAME_DUMP = 0x82 __USBDBG_FRAME_LOCK = 0x83 __USBDBG_FRAME_UPDATE = 0x04 __USBDBG_SCRIPT_EXEC = 0x05 __USBDBG_SCRIPT_STOP = 0x06 __USBDBG_SCRIPT_SAVE = 0x07 __USBDBG_TEMPLATE_SAVE = 0x08 __USBDBG_DESCRIPTOR_SAVE= 0x09 __USBDBG_ATTR_READ = 0x8A __USBDBG_ATTR_WRITE = 0x0B __USBDBG_SYS_RESET = 0x0C __USBDBG_SYS_BOOT = 0x0D __USBDBG_TX_BUF_LEN = 0x8E __USBDBG_TX_BUF = 0x8F ATTR_CONTRAST =0 ATTR_BRIGHTNESS =1 ATTR_SATURATION =2 ATTR_GAINCEILING=3 def init(serial): global __serial __serial = serial __serial.baudrate =12000000 def _rgb(rgb): return struct.pack("BBB", ((rgb & 0xF800)>>11)*255/31, ((rgb & 0x07E0)>>5)*255/63, (rgb & 0x001F)*255/31) def fb_size(): # read fb header __serial.write(struct.pack(" 2): #JPEG num_bytes = size[2] else: num_bytes = size[0]*size[1]*size[2] # read fb data __serial.write(struct.pack("') sys.exit(1) with open(sys.argv[1], 'r') as fin: buf = fin.read() s = serial.Serial("/dev/openmvcam", 115200, timeout=1) init(s) exec_script(buf) tx_len = tx_buf_len() if (tx_len): print(tx_buf(tx_len)) s.close()